pax_global_header00006660000000000000000000000064152654425730014527gustar00rootroot0000000000000052 comment=fc1b1299e7b5aab58368ce92620dc7eec2a50db5 unyt-3.2.0/000077500000000000000000000000001526544257300125305ustar00rootroot00000000000000unyt-3.2.0/.editorconfig000066400000000000000000000004441526544257300152070ustar00rootroot00000000000000# http://editorconfig.org root = true [*] indent_style = space indent_size = 4 trim_trailing_whitespace = true insert_final_newline = true charset = utf-8 end_of_line = lf [*.bat] indent_style = tab end_of_line = crlf [LICENSE] insert_final_newline = false [Makefile] indent_style = tab unyt-3.2.0/.git-blame-ignore-revs000066400000000000000000000003031526544257300166240ustar00rootroot00000000000000# automated linting (black + isort + blacken-docs) 982fc992fa6cb636d87ccc445e695cb5f964eb12 # flynt + pyupgrade 381650d795922aeba997cbe46685d3ca21ccba51 d707555f9386c5b7fe8f50b12d52257375f9840a unyt-3.2.0/.gitattributes000066400000000000000000000000361526544257300154220ustar00rootroot00000000000000unyt/_version.py export-subst unyt-3.2.0/.github/000077500000000000000000000000001526544257300140705ustar00rootroot00000000000000unyt-3.2.0/.github/ISSUE_TEMPLATE.md000066400000000000000000000004731526544257300166010ustar00rootroot00000000000000* unyt version: * Python version: * Operating System: ### Description Describe what you were trying to get done. Tell us what happened, what went wrong, and what you expected to happen. ### What I Did ``` Paste the command(s) you ran and the output. If there was a crash, please include the traceback here. ``` unyt-3.2.0/.github/dependabot.yml000066400000000000000000000006031526544257300167170ustar00rootroot00000000000000version: 2 updates: - package-ecosystem: github-actions directory: /.github/workflows schedule: interval: monthly cooldown: default-days: 7 groups: gha-patches: update-types: - patch - package-ecosystem: uv directory: / schedule: interval: monthly cooldown: default-days: 7 groups: uv.lock-patches: update-types: - patch unyt-3.2.0/.github/workflows/000077500000000000000000000000001526544257300161255ustar00rootroot00000000000000unyt-3.2.0/.github/workflows/bleeding-edge.yaml000066400000000000000000000025061526544257300214670ustar00rootroot00000000000000name: CI (bleeding edge) # this workflow is heavily inspired from pandas, see # https://github.com/pandas-dev/pandas/blob/master/.github/workflows/python-dev.yml # check stability against dev version of Python, numpy, and matplotlib # and sympy pre-releases (but avoid pre-releases of sympy's dependencies) on: push: branches: - master pull_request: paths: - .github/workflows/bleeding-edge.yaml # Run every Wednesday at 0:01 UTC schedule: - cron: 1 0 * * 3 workflow_dispatch: jobs: build: runs-on: ubuntu-latest name: CPython-dev timeout-minutes: 60 concurrency: group: ${{ github.ref }}-dev cancel-in-progress: true steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Setup Python uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: python-version: '3.15' enable-cache: false - name: Configure uv run: | echo "UV_PRERELEASE=allow" >> "$GITHUB_ENV" echo "UV_INDEX=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" >> "$GITHUB_ENV" echo "UV_INDEX_STRATEGY=unsafe-best-match" >> "$GITHUB_ENV" - run: uv sync --group test - name: Run tests run: uv run --no-sync pytest -vvv unyt unyt-3.2.0/.github/workflows/ci.yml000066400000000000000000000125551526544257300172530ustar00rootroot00000000000000name: CI on: push: branches: - master pull_request: workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false - name: Setup Python uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: python-version: '3.14' enable-cache: false - run: uv build unyt-module-test-function: runs-on: ubuntu-latest needs: [build] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Setup Python uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: python-version: '3.14' cache-suffix: test-module - run: uv run --group test python -c "import unyt ; unyt.test()" test: runs-on: ${{ matrix.os }} needs: [build] strategy: fail-fast: false matrix: os: [ubuntu-latest] python-version: - '3.11' - '3.12' - '3.13' - '3.14' - '3.15' sync-args: [null] pytest-args: [null] label: [null] # Test all on ubuntu, test ends on macos and windows include: - os: macos-latest python-version: '3.11' sync-args: null pytest-args: null label: null - os: windows-latest python-version: '3.11' sync-args: null pytest-args: null label: null - os: macos-latest python-version: '3.15' sync-args: null pytest-args: null - os: windows-latest python-version: '3.15' sync-args: null pytest-args: null label: null # with integration deps - os: ubuntu-latest python-version: '3.14' sync-args: --group integration pytest-args: null label: integration # with lowest dependencies - os: ubuntu-22.04 python-version: '3.11' sync-args: --resolution=lowest --group integration pytest-args: null label: oldestdeps # with doctests - os: ubuntu-latest python-version: '3.11' sync-args: --group doc pytest-args: --doctest-modules --doctest-plus label: doctests steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false - name: Setup Python uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: python-version: ${{ matrix.python-version }} - name: Install test env run: uv sync --group covcheck ${{ matrix.sync-args }} - name: Run tests shell: bash # for windows compat run: | uv run --no-sync coverage run --parallel-mode -m \ pytest --color=yes ${{ matrix.pytest-args }} - name: Upload coverage data # only using reports from ubuntu because # combining reports from multiple platforms is tricky if: startsWith( matrix.os , 'ubuntu' ) uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: unyt_coverage_data-${{matrix.os}}-${{matrix.python-version}}-${{matrix.label}} path: .coverage.* if-no-files-found: ignore include-hidden-files: true coverage: name: Combine & check coverage. runs-on: ubuntu-latest needs: [test] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: python-version: '3.14' - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: pattern: unyt_coverage_data-* merge-multiple: true - name: Check coverage run: | uv tool install coverage coverage combine coverage html --skip-covered --skip-empty coverage report --skip-covered --format=markdown >> "$GITHUB_STEP_SUMMARY" coverage report --fail-under=99 - name: Upload HTML report uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: unyt_coverage_report path: htmlcov docs: runs-on: ubuntu-latest needs: [build] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false - name: Setup Python uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: python-version: '3.11' - run: uv sync --group doc --group test - name: Build docs run: | uv run --no-sync --directory=docs \ python -m sphinx -M html "." "_build" -W - name: Upload build uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: unyt_docs path: docs/_build/html if-no-files-found: error unyt-3.2.0/.github/workflows/publish.yml000066400000000000000000000015451526544257300203230ustar00rootroot00000000000000name: Publish to PyPI on: push: tags: v* pull_request: paths: - .github/workflows/publish.yml jobs: pypi-publish: name: Upload release to PyPI runs-on: ubuntu-latest environment: name: pypi url: https://pypi.org/p/unyt permissions: id-token: write steps: - name: Checkout Source uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Setup Python uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: python-version: '3.14' enable-cache: false - name: Build distributions run: uv build - name: Publish package distributions to PyPI if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2 unyt-3.2.0/.gitignore000066400000000000000000000026631526544257300145270ustar00rootroot00000000000000# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # setuptools_scm generated file unyt/_version.py # Distribution / packaging .Python env/ build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ *.egg-info/ .installed.cfg *.egg # this can probably be removed at some point # https://github.com/pypa/pip/issues/6213 pip-wheel-metadata/ # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover .hypothesis/ .pytest_cache/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder target/ # Jupyter Notebook .ipynb_checkpoints # pyenv .python-version # celery beat schedule file celerybeat-schedule # SageMath parsed files *.sage.py # dotenv .env # virtualenv .venv venv/ ENV/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ # Autogenerated API Documentation docs/modules/ # benchmark outputs benchmarks/*.json benchmarks/*.png # Pycharm config .idea/ unyt-3.2.0/.mailmap000066400000000000000000000010301526544257300141430ustar00rootroot00000000000000Nathan Goldbaum Nathan Goldbaum Nathan Goldbaum Nathan Goldbaum Kacper Kowalik Kacper Kowalik (Xarthisius) Kyle Sunden ksunden Kyle Sunden Kyle Sunden John ZuHone jzuhone Ricarda Beckmann RicardaBeckmann unyt-3.2.0/.pre-commit-config.yaml000066400000000000000000000025701526544257300170150ustar00rootroot00000000000000minimum_pre_commit_version: 1.15.0 ci: autofix_prs: false autoupdate_schedule: monthly exclude: "^(\ paper/.*.py\ )" repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v6.0.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: no-commit-to-branch - id: check-shebang-scripts-are-executable - id: check-executables-have-shebangs - id: check-yaml - id: check-toml - repo: https://github.com/astral-sh/uv-pre-commit rev: 0.12.23 hooks: - id: uv-lock # TODO: replace this with ruff when it supports embedded python blocks # see https://github.com/astral-sh/ruff/issues/8237 - repo: https://github.com/adamchainz/blacken-docs rev: 1.20.0 hooks: - id: blacken-docs additional_dependencies: [black==24.10.0] - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.16.10 hooks: - id: ruff-format - id: ruff-check args: [--fix, --show-fixes] - repo: https://github.com/pre-commit/pygrep-hooks rev: v1.10.0 hooks: - id: rst-backticks - repo: https://github.com/codespell-project/codespell rev: v2.4.3 hooks: - id: codespell args: [--skip="*.pdf", -L, 'smoot,copin,celcius,ue,bu,dne,ond'] unyt-3.2.0/.readthedocs.yaml000066400000000000000000000012401526544257300157540ustar00rootroot00000000000000# .readthedocs.yaml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required version: 2 # Set the version of Python and other tools you might need build: os: ubuntu-22.04 tools: python: "3.12" commands: - asdf plugin add uv - asdf install uv latest - asdf global uv latest - uv sync --frozen --group doc - uv run --no-sync python -m sphinx -M html "." "_build" -W # Build documentation in the docs/ directory with Sphinx sphinx: configuration: docs/conf.py # If using Sphinx, optionally build your docs in additional formats such as PDF # formats: # - pdf unyt-3.2.0/AUTHORS.rst000066400000000000000000000024571526544257300144170ustar00rootroot00000000000000======= Credits ======= Contributors ------------ * Daniel Bates * Ricarda Beckmann * Andrei Berceanu * Josh Borrow * Yi-Hao Chen * Bili Dong * Sam Dotson * Bing Gao * Nathan Goldbaum * David Hannasch * Chris Havlin * Peter Hayman * Cameron Hummels * Thomas Hisch * Paul Ivanov * Suoqing Ji * Lee Johnston * Ben Kimock * Kacper Kowalik * Iason Krommydas * Nathan Musoke * Andrew Myers * Kyle Oman * Osnippet * Clément Robert * Will Roper * Simon Schopferer * Sam Skillman * Britton Smith * Josh Soref * Kyle Sunden * Ben Thompson * Matthew Turk * Miguel de Val-Borro * Jeroen Van Goey * Mike Zingale * John ZuHone This library was adapted from `dimensionful `_ which was written by Casey Stark . unyt-3.2.0/CONTRIBUTING.rst000066400000000000000000000162261526544257300152000ustar00rootroot00000000000000.. highlight:: shell ============ Contributing ============ Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given. Code of Conduct --------------- The development of ``unyt`` happens in the context of the `yt community code of conduct `_. If for any reason you feel that the code of conduct has been violated in the context of ``unyt`` development, please send an e-mail to confidential@yt-project.org with details describing the incident. All emails sent to this address will be treated with the strictest confidence by an individual who does not normally participate in yt development. Types of Contributions ---------------------- You can contribute in many ways: Report Bugs ~~~~~~~~~~~ Report bugs at https://github.com/yt-project/unyt/issues. If you are reporting a bug, please include: * Your operating system name and version. * Any details about your local setup that might be helpful in troubleshooting. This includes things like Python version and versions of any libraries being used, including unyt. * If possible, detailed steps to reproduce the bug. Fix Bugs ~~~~~~~~ Look through the GitHub issues for bugs. Anything tagged with "bug" and "help wanted" is open to whoever wants to implement it. Implement Features ~~~~~~~~~~~~~~~~~~ Look through the GitHub issues for features. Anything tagged with "enhancement" and "help wanted" is open to whoever wants to implement it. Write Documentation ~~~~~~~~~~~~~~~~~~~ unyt could always use more documentation, whether as part of the official unyt docs, in docstrings, or even on the web in blog posts, articles, and such. Submit Feedback ~~~~~~~~~~~~~~~ The best way to send feedback is to file an issue at https://github.com/yt-project/unyt/issues. If you are proposing a feature: * Explain in detail how it would work. * Keep the scope as narrow as possible, to make it easier to implement. * Remember that this is a volunteer-driven project, and that contributions are welcome :) Get Started! ------------ Ready to contribute? Here's how to set up ``unyt`` for local development. The ``unyt`` test suite makes use of ``uv``, which makes it easy to run tests on multiple python versions. This guide uses ``uv`` extensively, but note that you do not have to use ``uv``-managed Python interpreters, see uv's documentation https://docs.astral.sh/uv/concepts/python-versions/#requiring-or-disabling-managed-python-versions 1. Fork the ``unyt`` repo on GitHub. 2. Clone your fork locally:: $ git clone git@github.com:your_name_here/unyt.git 4. Setup a development environment $ cd unyt/ $ uv sync 5. Create a branch for local development:: $ git switch -c name-of-your-bugfix-or-feature 6. Edit files in the ``unyt`` repository, using your local python installation to test your edits. 7. When you're done making changes, check that your changes pass linting, and run the tests $ pre-commit run --all-files $ uv run --group test pytest unyt --doctest-modules --doctest-rst --doctest-plus 8. Commit your changes and push your branch to GitHub:: $ git add . $ git commit -m "Your detailed description of your changes." $ git push origin name-of-your-bugfix-or-feature 9. Submit a pull request through the GitHub website. Testing unyt ------------ We use the ``pytest`` test runner as well as ``uv`` to manage running tests on various versions of python. To run the tests on your copy of the ``unyt`` repository using your current python environment, run ``pytest`` in the root of the repository using the following arguments:: $ cd unyt/ $ uv run --group test pytest unyt --doctest-modules --doctest-rst --doctest-plus These enable testing the docstrings and doctest examples scattered throughout the unyt and its documentation. Integration tests require additional dependencies, which you can get by passing the following additional argument to ``uv run``: ``--group integration`` If you would like to run the tests on different Python versions, add ``--python=``, where ```` can be a version number or a path. Pull Request Guidelines ----------------------- Before you submit a pull request, check that it meets these guidelines: 1. The pull request should include tests for functionality that is not already tested. We strive for 100% test coverage and pull requests should not add any new untested code. You can generate coverage reports locally by first generating coverage statistics with ``pytest`` through ``coverage`` as ``uv run --group covcheck coverage run -m pytest``. To generate reports from the coverage statistics, you can use ``uv run coverage report`` to print to screen or ``uv run coverage html`` to generate an html that you can open in a browser. 2. If the pull request adds functionality the docs should be updated. If your new functionality adds new functions or classes to the public API, please add docstrings. If you modified an existing function or class in the public API, please update the existing docstrings. If you modify private implementation details, please use your judgment on documenting it with comments or docstrings. 3. The pull request should work for Python 3.11, 3.12, 3.13, 3.14 and 3.15 Check in the GitHub interface for your pull request and make sure that the tests pass for all supported Python versions. Deploying --------- A reminder for the maintainers on how to deploy. Make sure all your changes are committed (including an entry in HISTORY.rst and adding any new contributors to AUTHORS.rst). The version number must also be updated, preferably in its own PR. The preferred way to do it is through ``uv version --bump ``. If doing a bugfix release, you may need to create a - or checkout an existing - backport branch named ``vX.Y.x`` where ``X`` and ``Y`` represent the relevant major and minor version numbers, and the lowercase ``x`` is literal. Otherwise you may just release from the development branch. Once you are ready, create a tag: $ git tag vX.Y.Z # where X, Y and Z should be meaningful major, minor and micro version numbers In any case, take care that the version number for the tag matches what was chosen for the version number. If the tests pass you can then subsequently manually do a test publication:: $ uv build # builds a source distribution and a wheel under dist/ $ uvx twine check dist/* $ uv publish --publish-url https://test.pypi.org/legacy/ Then, using a fresh environment here, and from outside the repository, test the result:: $ uv sync --only-group test $ uv pip install unyt --reinstall --only-binary --index https://test.pypi.org/simple/ --index-strategy=unsafe-best-match $ uv run --no-sync python -c "import unyt; unyt.test()" $ uv pip install unyt --reinstall --no-binary --index https://test.pypi.org/simple/ --index-strategy=unsafe-best-match $ uv run --no-sync python -c "import unyt; unyt.test()" Finally, if everything works well, push the tag to the upstream repository:: $ git push upstream --tag # assuming the mother repo yt-project/unyt is set as a remote under the name "upstream" unyt-3.2.0/HISTORY.rst000066400000000000000000001327231526544257300144330ustar00rootroot00000000000000======= History ======= 3.2.0 (2026-10-16) ------------------ This new release of ``unyt`` fixes bugs discovered since the v3.1.0 release, as well as including new features. * The instructions for how to test release artifacts before publication have been amended (`PR #623 `_). Thanks to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Make ``np.squeeze`` return the correct type for the shape of the result (`PR #628 `_). Thanks to Kyle Oman (@kyleaoman on GitHub) for the contribution. * The computation of the MD5 digest of ``UnitRegistry`` no longer raises a ``ValueError`` on FIPS-enabled systems (such as certain HPC systems, `PR #643 `_). Thank you to Bing Gao (@binggao1230 on GitHub) for the contribution. * It is now possible to develop other classes that can handle multiplication and division operations with the ``Unit`` class (`PR #640 `_). Thanks to Kyle Oman (@kyleaoman on GitHub) for the contribution. * ``np.digitize`` is now unit-aware (`PR #644 `_). Thank you to Bing Gao (@binggao1230 on GitHub) for the contribution. * The documented ``dtype`` argument in ``Unit.get_conversion_factor`` is now honored (`PR #661 `_). Thank you to @youdie006 on GitHub for the contribution. * Python 3.15 is now supported (`PR #671 `_). Support for Python 3.10 has been dropped (`PR #673 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contributions. * Binary ``ufunc`` operations between ``unyt_array`` objects and other array-like objects are now properly handled (`PR #674 `_). Thank you to Kyle Oman (@kyleaoman on GitHub) for the contribution. * Conversions between temperature interval units and temperature units are no longer allowed, as they have no physical meaning (`PR #676 `_). Thank you to @shaneraphel on GitHub for the contribution. * ``unyt_array`` objects now properly return ``NotImplemented`` in array interoperability methods (`PR #677 `_). Thank you to Iason Krommydas (@ikrommyd on GitHub) for the contribution. * If a ``unyt_array`` is created from another ``unyt_array`` and a new ``dtype`` is specified, the new requested ``dtype`` is now used (`PR #679 `_). Thanks to Will Roper (@WillJRoper on GitHub) for the contribution. * The conversion factors for the nautical mile and knot units were slightly inaccurate and have been fixed (`PR #680 `_). Thank you to Shubham Padkonde (@Shubham-Padkonde on GitHub) for the contribution. * Multiplying a ``float32`` array by the ``Msun`` unit no longer promotes the array to ``float64`` (`PR #681 `_). Thank you to Will Roper (@WillJRoper on GitHub) for the contribution. 3.1.0 (2026-01-12) ------------------ This new release of ``unyt`` fixes bugs discovered since the v3.0.4 release, as well as including new features. * Fix the implementation of ``np.block`` so that multiplication is not used to attach units to the result (`PR #571 `_). Thank you to Kyle Oman (@kyleaoman on GitHub) for the contribution. * Increase the ability for subclasses of ``unyt_array`` to manipulate function calls, in particular so that the result of a binary operation of an ``unyt_array`` with a subclass will return the subclass (`PR #572 `_). Thank you to Kyle Oman (@kyleaoman on GitHub) for the contribution. * Add the angular units "spat", "turn", "pla", "gradian", and "gon" (`PR #573 `_). Thank you to John ZuHone (@jzuhone on GitHub) for the contribution. * Use ``uv`` to run the test suite instead of ``tox`` (`PR #574 `_ and `PR #594 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contributions. * Start testing against Python 3.14 in CI (`PR #581 `_ and `PR #594 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contributions. * Fix incompatibilities and deprecations with NumPy 2.4 (`PR #595 `_, `PR #597 `_, `PR #607 `_, `PR #614 `_). * Switch build-backend from ``setuptools`` to ``flit-core`` (`PR #601 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Fix histograms with mismatched units of input and bins (`PR #610 `_). Thank you to Kyle Oman (@kyleaoman on GitHub) for the contribution. * Fix a bug where ``np.average`` would strip units on sum of weights when input and weights shapes differ (`PR #611 `_). Thank you to Kyle Oman (@kyleaoman on GitHub) for the contribution. 3.0.4 (2025-03-13) ------------------ This new bugfix release of ``unyt`` fixes bugs discovered since the v3.0.3 release. It also adds support for foe and bethe units: * Add foe and bethe units (`PR #521 `_). Thank you to Michael Zingale (@zingale on GitHub) for the contribution. Following is a list of all bug fixes and documentation fixes included in the release. * Fix incompatibilities with numpy 2.1 (`PR #512 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Fix stephan-boltzmann constant accuracy and add radiation constant (`PR #520 `_). Thank you to Mike Zingale (@zingale on GitHub) for the contribution. * Fix raising a unyt array to an array power in sensible cases (`PR #524 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Typo fixes and documentation fix (`PR #529 `_). Thank you to Jeroen Van Goey (@BioGeek on GitHub) for the contribution. * Fix return units from numpy.ftt functions (`PR #531 `_). Thank you to Josh Borrow (@JBorrow on GitHub) for the contribution. * Fix incorrect output unit for ``np.prod`` with an axis argument (`PR #537 `_). Thank you to Kyle Oman (@kyleaoman on GitHub) for the contribution. * ``np.histogram*`` functions give correct units when weights and/or density are set (`PR #539 `_). Thank you to Kyle Oman (@kyleaoman on GitHub) for the contribution. * Fix an issue where ``np.histogramdd`` could create infinite recursion on some inputs (`PR #541 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * ``linspace`` and ``logspace`` give incorrect results or crash with some inputs (`PR #544 `_). Thank you to Kyle Oman (@kyleaoman on GitHub) for the contribution. * Fix typo in array function implementations (ftt -> fft) (`PR #547 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Apply_over_axes no longer assumes user-supplied function preserves units (`PR #548 `_). Thank you to Kyle Oman (@kyleaoman on GitHub) for the contribution. * Allow subclassing in ``unyt_array.__array_func__`` (`PR #550 `_). Thank you to Kyle Oman (@kyleaoman on GitHub) for the contribution. * Fix unit handling for ``np.take`` and ``unyt_array.take`` (`PR #551 `_). Thank you to Kyle Oman (@kyleaoman on GitHub) for the contribution. * Fix a regression where ``np.linspace`` 's num argument would be ignored for ``unyt_array`` instances (`PR #553 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Handle ``np.vecdot`` as a ufunc rather than an arrayfunc (`PR #557 `_). Thank you to Kyle Oman (@kyleaoman on GitHub) for the contribution. * Fix an issue where hdf5 io wouldn't roundtrip properly for a ``unyt_quantity`` object (`PR #560 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Make ``test_unique_values`` order-agnostic and fix testing against numpy 2.3 dev (`PR #565 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. 3.0.3 (2024-07-02) ------------------ This new bugfix release of ``unyt`` fixes bugs discovered since the v3.0.2 release. * Fix defects when running test suite in isolation from the project's pytest configuration (`PR #495 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Drop test case for unpickling old pickle files as too sensitive to upstream changes (`PR #498 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Fix signature incompatibilities in nep 18 wrapped functions (`PR #500 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Fix an incompatibility with sympy 1.13.0rc1 (`PR #504 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Adjust doctests to changes in array repr from numpy 2.0 (`PR #506 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * TST: declare np.unstack as subclass-safe (fix incompatibility with Numpy 2.1) (`PR #509 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. 3.0.2 (2024-03-13) ------------------ This new bugfix release of ``unyt`` fixes bugs discovered since the v3.0.1 release, and is intended to be compatible with the upcoming NumPy 2.0 release. * Fix minimal requirement on setuptools_scm (`PR #471 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Explicitly forbid destructive edits to the default unit registry (`PR #475 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Fix an issue where array functions would raise ``UnitInconsistencyError`` when operands' units differ by some dimensionless factor (`PR #478 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Implement and test array functions new in numpy 2.0 (`PR #483 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Fix compat with numpy dev for ``np.trapezoid`` (previously named np.trapz) (`PR #486 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Implement missing support for ``np.cbrt`` (`PR #491 `_). Thank you to @yuyttenhove for the contribution. * Fix compatibility with numpy 2.0 copy semantics (`PR #492 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. 3.0.1 (2023-11-02) ------------------ This new bugfix release of ``unyt`` fixes a few bugs since the v3.0.0 release. * Fix an issue where array functions would raise ``UnitConsistencyError`` on ``unyt_array`` objects using non-default unit registries (`PR #463 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Fix an issue where array functions would crash (``AttributeError``) when passed non-``ndarray`` array-like objects (e.g. Python lists) (`PR #464 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Fix backward compatibility for calling ``numpy.histogram`` with implicit range units (`PR #466 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. 3.0.0 (2023-11-01) ------------------ This new major release of ``unyt`` fixes a number of issues and adds a number of new features. Major contributions include: * Support for Python 3.8 has been dropped. * Support for Python 3.12 has been added. * Support for NumPy <1.19.3 has been dropped. * Support for SymPy <1.7 has been dropped. * A new ``unyt_dask_array`` class, which implements a subclass of standard `dask arrays `_ with units attached, has been added (`PR #185 `_). See :ref:`dask` for more details. Thank you to Chris Havlin (@chrishavlin on Github) for the contribution. * A number of new metric and non-metric units have been added in `PR #441 `_. Thank you to John ZuHone (@jzuhone on GitHub) for the contribution. * A number of common values for the solar metallicity found in the literature have been added as new metallicity units (`PR #315 `_). See :ref:`metal_conversions` for more details. Thank you to John ZuHone (@jzuhone on GitHub) for the contribution. * The "liter" unit has been added (`PR #305 `_). Thank you to Nathan Goldbaum (@ngoldbaum on GitHub) for the contribution. * The following common systems engineering units for energy have been added: ``MMBTU``, ``therm``, ``quad``, and ``Wh`` (`PR #294 `_). Thank you to Sam Dotson (@samgdotson on GitHub) for the contribution. * The ``@returns`` decorator (documented in :ref:`checking_units`) now allows dimension-checking of multiple return values (`PR #435 `_). Thank you to Daniel Bates (@db434 on GitHub) for the contribution. * A number of PRs to support `NEP 18 `_, including the following (thank you to Clément Robert, @neutrinoceros on GitHub, and Nathan Goldbaum, @ngoldbaum on Github, for the contributions): - `PR #200 `_. - `PR #293 `_. - `PR #295 `_. - `PR #304 `_. - `PR #309 `_. - `PR #313 `_. - `PR #316 `_. - `PR #317 `_. - `PR #319 `_. - `PR #320 `_. - `PR #324 `_. - `PR #325 `_. - `PR #329 `_. - `PR #338 `_. - `PR #348 `_. - `PR #351 `_. - `PR #352 `_. - `PR #388 `_. - `PR #394 `_. - `PR #395 `_. - `PR #396 `_. - `PR #397 `_. - `PR #398 `_. * A fix for for the LaTeX representation of Planck units (`PR #379 `_). Thank you to Peter Hayman (@haymanpf on GitHub) for the contribution. * A fix for a bug that prevented the conversion of dimensionless arrays to their corresponding `AstroPy Quantities `_ (`PR #437 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * A fix for a bug in subtraction of temperature quantities that resulted in ``degC`` units being returned instead of ``delta_degC`` units (`PR #413 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Fixes for issues with the comparison of temperature quantities (`PR #408 `_ and `PR #412 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Support for versions of NumPy < 1.19 has been dropped in this version (`PR #403 `_). Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * A number of PRs to support NumPy 2.0, thank you to Clément Robert (@neutrinoceros on GitHub) for the contributions: - `PR #434 `_. - `PR #442 `_. - `PR #443 `_. - `PR #445 `_. - `PR #448 `_. - `PR #455 `_. - `PR #456 `_. 2.9.5 (2023-02-22) ------------------ * Fix a regression where arrays elements with dtype ``'int8'`` would not compare to floats as intended. See `PR #371 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) and Nathan Goldbaum (@ngoldbaum on GitHub) for the contribution. * Raise an error in case an array element is assigned to a new value with incompatible units. See `PR #375 `_ and `PR #376 `_. Thank you to Nathan Goldbaum (@ngoldbaum on GitHub) for the contribution. 2.9.4 (2023-02-06) ------------------ * Make ``unyt_quantity.from_string`` parse ints. See `PR #278 `_. Thank you to Nathan Goldbaum (@ngoldbaum on GitHub) for the contribution. * TST: migrate from tox-pyenv to tox-gh-actions #344 See `PR #344 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Correctly test string comparison depending on numpy version #358 See `PR #358 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Multiple fixes for ``unyt_quantity.from_string`` - fix a bug where ``unyt_quantity.from_string`` would drop part of the unit expression - fix a bug where ``unyt_quantity.from_string`` would choke on unit expressions starting with ``'*'`` or ``'/'`` - fix a bug where ``unyt_quantity.from_string`` would choke on space-separated unit expressions - fix roundtrip for ``unyt_quantity.from_string`` and ``unyt_quantity.to_string`` methods - simplify unit regexp (``'**/2'`` isn't a valid exponent) - fix a bug where malformed string input would be incorrectly parsed by ``unyt_quantity.from_string`` See `PR #362 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution, and to Chris Byrohl (@cbyrohl on GitHub) for the report. 2.9.3 (2022-12-07) ------------------ * Fix a future incompatibility with numpy 1.25 (unreleased) where comparing ``unyt_array`` objects to non-numeric objects (e.g. strings) would cause a crash. See `PR #333 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) and Nathan Goldbaum (@ngoldbaum on GitHub) for the contribution. 2.9.2 (2022-07-20) ------------------ * Fix an issue where taking powers of units was backwards-incompatible with previous versions of ``unyt`` when the exponent is not zero. See `PR #249 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * The import time for ``unyt`` has been reduced by skipping version checking of other packages. See `PR #251 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. 2.9.0 (2022-07-14) ------------------ * Dropped support for Python 3.6 and 3.7. * Added support for Python 3.8, 3.9 and 3.10. * Fix an issue where SI prefixes of the ``degC`` units would give incorrect values in conversions. See `PR #176 `_. Thank you to Lee Johnston (@l-johnston on GitHub) for the contribution. * Fix an issue when using ``matplotlib_support``, plot an empty unyt array, would result in an error when changing units. See `PR #180 `_. Thank you to Josh Borrow (@JBorrow on GitHub) for the contribution. * Fix an issue where units would be printed twice in formatted strings with an ``unyt_array`` embedded. See `PR #188 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Add a method to parse a ``unyt_quantity`` from a string expression. See `PR #191 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Fix an issue where a ``unyt_array`` with dtype int8 could not be converted to a different unit. See `PR #197 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * The import time for ``unyt`` has been reduced. See `PR #199 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Fix an issue where taking an ``unyt_array`` or ``unyt_quantity`` to a zero power would retain the units of the original array or quantity instead of converting to a dimensionless array. See `PR #204 `_. Thank you to Josh Borrow (@JBorrow on GitHub) for the contribution. * Add support for coercing iterables of ``unyt_array`` objects with nonuniform dimensionally equivalent units to a single ``unyt_array``. See `PR #211 `_. Thank you to Nathan Goldbaum (@ngoldbaum on GitHub) for the contribution. * Add the civil engineering units ``pli``, ``plf``, ``psf``, ``kli``, ``klf``, and ``ksf``. See `PR #217 `_. Thank you to @osnippet on GitHub for the contribution. * Fix typos in constants and unit prefixes. See `PR #218 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Fix an issue where multiplying a 1-element ``unyt_array`` would return a ``unyt_quantity``. See `PR #225 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) for the contribution. * Add the Rydberg constant ``R_∞`` and unit ``Ry``, add the dimension ``angular_frequency`` and the unit ``rpm``, and increase the precision of Avogadro's number. See `PR #228 `_. * Fix an issue where ``np.divide.reduce`` would return incorrect units for ``unyt_array`` instances. See `PR #230 `_. Thank you to Kyle Oman (@kyleaoman on GitHub) for the contribution. 2.8.0 (2020-10-05) ------------------ * Dropped support for Python 3.5. * Add ``delta_degC`` and ``delta_degF`` units to support temperature difference arithmetic. See `PR #152 `_. Thank you to Lee Johnston (@l-johnston on GitHub) for the contribution. * Fix an issue where a subsequent load of the unit registry with units that are equal but not identical leads to a crash. See `PR #158 `_. Thank you to Matthew Turk (@matthewturk on GitHub) for the initial bug report and fix. * Add force unit ``kip`` and pressure unit ``psi``. Thank you to P. Talley (@otaithleigh on GitHub) for the contribution. See `PR #162 `_. * Fix an issue where arithmetic operations on units defined in different registries and having the conversion defined in one direction would lead to a crash. See `PR #164 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) for the initial bug report and fix. 2.7.2 (2020-06-29) ------------------ * The ``unyt.returns`` and ``unyt.accepts`` decorators now work correctly for functions that accept or return data with dimensionless units. See `PR #146 `_. Thank you to Simon Schopferer (@simfinite on GitHub) for the initial bug report and fix. * Data used in the tests are packaged with the source distribution and ``unyt.test()`` is now itself run as part of unyt's continuous integration tests. See `PR #149 `_ and `PR #150 `_. Thank you to Miguel de Val-Borro (@migueldvb on GitHub) for the initial bug report and fix. * The ``degC`` and ``degF`` units now render as ``°C`` and ``°F`` by default, ``°C`` and ``°F`` are now recognized as valid unit names as well. Thank you to Lee Johnston (@l-johnston on GitHub) for the contribution. * Use a more canonical representation of the micro symbol when printing units with the micro prefix, avoiding issues with displaying unit names in Matplotlib plot labels. See `PR #153 `_. Thank you to Matthew Turk (@matthewturk on GitHub) for the bug report and fix. * Add more alternative spellings for solar units. See `PR #155 `_. Thank you to Clément Robert (@neutrinoceros on GitHub) for the initial bug report. 2.7.1 (2020-02-17) ------------------ * Fix compatibility with ``unyt_array`` subclasses that do not have the new ``name`` argument in their initializer. See `PR #140 `_. * Fix an issue where custom units added to a unit registry were not restored correctly when reloading a unit registry from a JSON or pickle representation. See `PR #140 `_. 2.7.0 (2020-02-06) ------------------ * The ``unyt_array`` and ``unyt_quantity`` classes now have a new, optional ``name`` attribute. The primary purpose of this attribute is to enable automatic generation of matplotlib plot labels. The ``name`` attribute is propagated through unit conversions and copies but is not propagated through mathematical operations. See `PR #129 `_ and the documentation for details. * Add support for the ``Neper`` and ``Bel`` units with logarithmic dimensions. This includes support for the ``decibel`` unit. Note that logarithmic units can only be used with other logarithmic units and must be applied and stripped manually. See `PR #133 `_ and `PR #134 `_. * Add support for the SI unit of inductance, ``H``. See `PR #135 `_. * Fix formatting of error message produced when raising a quantity to a power with units. See `PR #131 `_. Thank you to Lee Johnston (@l-johnston on GitHub) for all of the above contributions. * Fix incorrect unit metadata when loading a pickled array saved by ``yt.units``. See `PR #137 `_. 2.6.0 (2020-01-22) ------------------ * Matplotlib support is no longer enabled by importing ``unyt``. Instead, it is now necessary to use the ``unyt.matplotlib_support`` context manager in code where you want unyt to automatically generate plot labels. Enabling Matplotlib support by default in the previous release caused crashes in previously working code for some users so we have decided to make the plotting support optional. See the documentation for more details. We are sorry for introducing a new feature that broke some user's code. See `PR #126 `_. Thank you to Lee Johnston (@l-johnston on GitHub) for the contribution. * Updated the contribution guide to include more details about setting up multiple Python versions for the ``tox`` tests. 2.5.0 (2020-01-20) ------------------ * Importing unyt now registers unyt with Matplotlib's interface for handling units. See the `Matplotlib `_ and `unyt `_ documentation for more details. See `PR #122 `_ and `PR #124 `_. Thank you to Lee Johnston (@l-johnston on GitHub) for the contribution. * Updated the LaTeX formatting of solar units so they do not get rendered italicized. See `PR #120 `_. Thank you to Josh Borrow (@JBorrow on GitHub) for the contribution. * Reduce floating point round-off error when data are converted from integer to float dtypes. See `PR #119 `_. 2.4.1 (2020-01-10) ------------------ * Add support for the latest releases of h5py, sympy, NumPy, and PyTest. See `PR #115 `_. * Fix the hash implementation so that identical units cannot have distinct hashes. See `PR #114 `_ and `PR #117 `_. Thank you to Ben Kimock (@saethlin on GitHub) for the contribution. 2.4.0 (2019-10-25) ------------------ * Improve performance for creating quantities or small arrays via multiplication with a unit object. Creating an array or quantity from data that does not have a numeric dtype will now raise ``UnitOperationError`` instead of ``UnitDtypeError``, which has been removed. See `PR #111 `_. * Comparing data with units that have different dimensions using the ``==`` and ``!=`` operators will no longer raise an error. Other comparison operators will continue to raise errors. See `PR #109 `_. * Fixed a corner case in the implementation of ``clip``. See `PR #108 `_. Thank you to Matthew Turk (@matthewturk on GitHub) for the contribution. * Added ``%`` as a valid dimensionless unit with a value of ``0.01``, also available under the name ``percent``. See `PR #106 `_. Thank you to Thomas Hisch for the contribution. * Added ``bar`` to the default unit lookup table. See `PR #103 `_. Thank you to Thomas Hisch (@thisch on GitHub) for the contribution. 2.3.1 (2019-08-21) ------------------ * Added support for the ``clip`` ufunc added in NumPy 1.17. See `PR #102 `_. 2.3.0 (2019-08-14) ------------------ * Added ``unyt.dimensions.accepts`` and ``unyt.dimensions.returns``, decorators that can be used to ensure that data passed into a decorated function has units that are dimensionally consistent with the function's expected inputs. See `PR #98 `_. Thank you to Andrei Berceanu (@berceanu on GitHub) for the contribution. * Added ``unyt.allclose_units`` and improved documentation for writing tests for code that uses ``unyt``. This is a wrapper for ``numpy.allclose`` that also checks the units of the input arrays. See `PR #94 `_. Thank you to Andrei Berceanu (@berceanu on GitHub) for the contribution. 2.2.2 (2019-07-03) ------------------ * Fix erroneous conversions of E&M units to their "native" unit system, for example, converting Gauss to CGS units would return Tesla and converting Tesla to MKS units would return Gauss. See `PR #96 `_. 2.2.1 (2019-07-02) ------------------ * Add support for loading JSON unit registries saved by ``yt.units``. See `PR #93 `_. * Correct the value of the ``light_year`` unit. See `PR #93 `_. * It is now possible to define a ``UnitSystem`` object with a quantity. See `PR #86 `_. * Incorrect units for Planck units have been fixed. See `PR #85 `_. Thank you to Nathan Musoke (@musoke on GitHub) for the contribution. * Updated value of Newton's constant to latest CODATA value. See `PR #84 `_. 2.2.0 (2019-04-03) ------------------ * Several performance optimizations. This includes a slight change to the behavior of MKS/CGS E&M unit conversions that makes the conversion rules slightly more relaxed. See `PR #82 `_. 2.1.1 (2019-03-27) ------------------ * Fixed an issue with restoring unit registries from JSON output. See `PR #81 `_. 2.1.0 (2019-03-26) ------------------ This release includes a few minor new features and bugfixes for the 2.0.0 release. * Added support for the matmul ``@`` operator. See `PR #80 `_. * Allow defining unit systems using ``Unit`` instances instead of string unit names. See `PR #71 `_. Thank you to Josh Borrow (@JBorrow on GitHub) for the contribution. * Fix incorrect behavior when ``uhstack`` is called with the ``axis`` argument. See `PR #73 `_. * Add ``"rsun"``, ``"lsun"``, and ``"au"`` as alternate spellings for the ``"Rsun"``, ``"Lsun"``, and ``"AU"`` units. See `PR #77 `_. * Improvements for working with code unit systems. See `PR #78 `_. * Reduce impact of floating point round-off noise on unit comparisons. See `PR #79 `_. 2.0.0 (2019-03-08) ------------------ ``unyt`` 2.0.0 includes a number of exciting new features as well as some bugfixes. There are some small backwards incompatible changes in this release related to automatic unit simplification and handling of dtypes. Please see the release notes below for more details. If you are upgrading from ``unyt 1.x`` we suggest testing to make sure these changes do not significantly impact you. If you run into issues please let us know by `opening an issue on GitHub `_. * Dropped support for Python 2.7 and Python 3.4. Added support for Python 3.7. * Added ``Unit.simplify()``, which cancels pairs of terms in a unit expression that have inverse dimensions and made it so the results of ``unyt_array`` multiplication and division will automatically simplify units. This means operations that combine distinct dimensionally equivalent units will cancel in many situations. For example .. code-block:: >>> from unyt import kg, g >>> print((12 * kg) / (4 * g)) 3000.0 dimensionless older versions of ``unyt`` would have returned ``4.0 kg/g``. See `PR #58 `_ for more details. This change may cause the units of operations to have different, equivalent simplified units than they did with older versions of ``unyt``. * Added the ability to resolve non-canonical unit names to the equivalent canonical unit names. This means it is now possible to refer to a unit name using an alternative non-canonical unit name when importing the unit from the ``unyt`` namespace as well as when a unit name is passed as a string to ``unyt``. For example: .. code-block:: >>> from unyt import meter, second >>> data = 1000.0 * meter / second >>> data.to("kilometer/second") unyt_quantity(1., 'km/s') >>> data.to("metre/s") unyt_quantity(1000., 'm/s') The documentation now has a table of units recognized by ``unyt`` along with known alternative spellings for each unit. * Added support for unicode unit names, including ``μm`` for micrometer and ``Ω`` for ohm. See `PR #59 `_. * Substantially improved support for data that does not have a ``float64`` dtype. Rather than coercing all data to ``float64`` ``unyt`` will now preserve the dtype of data. Data that is not already a numpy array will be coerced to a dtype by calling ``np.array`` internally. Converting integer data to a new unit will convert the data to floats, if this causes a loss of precision then a warning message will be printed. See `PR #55 `_ for details. This change may cause data to be loaded into ``unyt`` with a different dtype. On Windows the default integer dtype is ``int32``, so data may begin to be recognized as ``int32`` or converted to ``float32`` where before it was interpreted as ``float64`` by default. * Unit registries are now associated with a unit system. This means that it's possible to create a unit registry that is associated with a non-MKS unit system so that conversions to "base" units will end up in that non-MKS system. For example: .. code-block:: >>> from unyt import UnitRegistry, unyt_quantity >>> ureg = UnitRegistry(unit_system="cgs") >>> data = unyt_quantity(12, "N", registry=ureg) >>> data.in_base() unyt_quantity(1200000., 'dyn') See `PR #62 `_ for details. * Added two new utility functions, ``unyt.unit_systems.add_constants`` and ``unyt.unit_systems.add_symbols`` that can populate a namespace with a set of unit symbols in the same way that the top-level ``unyt`` namespace is populated. For example, the author of a library making use of ``unyt`` could create an object that users can use to access unit data like this: .. code-block:: >>> from unyt.unit_systems import add_symbols >>> from unyt.unit_registry import UnitRegistry >>> class UnitContainer: ... def __init__(self): ... add_symbols(vars(self), registry=UnitRegistry()) ... >>> units = UnitContainer() >>> units.kilometer km >>> units.microsecond μs See `PR #68 `_. * The ``unyt`` codebase is now automatically formatted by `black `_. See `PR #57 `_. * Add missing "microsecond" name from top-level ``unyt`` namespace. See `PR #48 `_. * Add support for ``numpy.argsort`` by defining ``unyt_array.argsort``. See `PR #52 `_. * Add Farad unit and fix issues with conversions between MKS and CGS electromagnetic units. See `PR #54 `_. * Fixed incorrect conversions between inverse velocities and ``statohm``. See `PR #61 `_. * Fixed issues with installing ``unyt`` from source with newer versions of ``pip``. See `PR #63 `_. * Fixed bug when using ``define_unit`` that caused crashes when using a custom unit registry. Thank you to Bili Dong (@qobilidob on GitHub) for the pull request. See `PR #64 `_. We would also like to thank Daniel Gomez (@dangom), Britton Smith (@brittonsmith), Lee Johnston (@l-johnston), Meagan Lang (@langmm), Eric Chen (@ericchen), Justin Gilmer (@justinGilmer), and Andy Perez (@sharkweek) for reporting issues. 1.0.7 (2018-08-13) ------------------ Trigger zenodo archiving. 1.0.6 (2018-08-13) ------------------ Minor paper updates to finalize JOSS submission. 1.0.5 (2018-08-03) ------------------ ``unyt`` 1.0.5 includes changes that reflect the peew review process for the JOSS method paper. The peer reviewers were Stuart Mumfork (`@cadair `_), Trevor Bekolay (`@tbekolay `_), and Yan Grange (`@ygrange `_). The editor was Kyle Niemeyer (`@kyleniemeyer `_). The ``unyt`` development team thank our reviewers and editor for their help getting the ``unyt`` paper out the door as well as for the numerous comments and suggestions that improved the paper and package as a whole. In addition we'd like to thank Mike Zingale, Meagan Lang, Maksin Ratkin, DougAJ4, Ma Jianjun, Paul Ivanov, and Stephan Hoyer for reporting issues. * Added docstrings for the custom exception classes defined by ``unyt``. See `PR #44 `_. * Added improved documentation to the contributor guide on how to run the tests and what the PR review guidelines are. See `PR #43 `_. * Updates to the text of the method paper in response to reviewer suggestions. See `PR #42 `_. * It is now possible to run the tests on an installed copy of ``unyt`` by executing ``unyt.test()``. See `PR #41 `_. * Minor edit to LICENSE file so GitHub recognizes it. See `PR #40 `_. Thank you to Kyle Sunden (`@ksunden `_) for the contribution. * Add spatial frequency as a dimension and added support in the ``spectral`` equivalence for the spatial frequency dimension. See `PR #38 `_ Thank you to Kyle Sunden (`@ksunden `_) for the contribution. * Add support for Python 3.7. See `PR #37 `_. * Importing ``unyt`` will now fail if ``numpy`` and ``sympy`` are not installed. See `PR #35 `_ * Testing whether a unit name is contained in a unit registry using the Python ``in`` keyword will now work correctly for all unit names. See `PR #31 `_. * The aliases for megagram in the top-level unyt namespace were incorrectly set to reference kilogram and now have the correct value. See `PR #29 `_. * Make it possible to take scalars to dimensionless array powers with a properly broadcasted result without raising an error about units. See `PR #23 `_. * Whether or not a unit is allowed to be SI-prefixable (for example, meter is SI-prefixable to form centimeter, kilometer, and many other units) is now stored as metadata in the unit registry rather than as global state inside ``unyt``. See `PR #21 `_. * Made adjustments to the rules for converting between CGS and MKS E&M units so that errors are only raised when going between unit systems and not merely when doing a complicated unit conversion involving E&M units. See `PR #20 `_. * ``round(q)`` where ``q`` is a ``unyt_quantity`` instance will no longer raise an error and will now return the nearest rounded float. See `PR #19 `_. * Fixed a typo in the readme. Thank you to Paul Ivanov (`@ivanov `_) for `the fix `_. * Added smoot as a unit. See `PR #14 `_. 1.0.4 (2018-06-08) ------------------ * Expand installation instructions * Mention paper and arxiv submission in the readme. 1.0.3 (2018-06-06) ------------------ * Fix readme rendering on pypi 1.0.2 (2018-06-06) ------------------ * Added a paper to be submitted to the Journal of Open Source Software. * Tweaks for the readme 1.0.1 (2018-05-24) ------------------ * Don't use setup_requires in setup.py 1.0.0 (2018-05-24) ------------------ * First release on PyPI. * unyt began life as a submodule of yt named yt.units. * It was separated from yt.units as its own package in 2018. unyt-3.2.0/LICENSE000066400000000000000000000027611526544257300135430ustar00rootroot00000000000000 BSD 3-Clause License Copyright (c) 2018-, yt Development Team 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. unyt-3.2.0/README.rst000066400000000000000000000072671526544257300142330ustar00rootroot00000000000000==== unyt ==== .. image:: https://img.shields.io/pypi/v/unyt.svg :target: https://pypi.python.org/pypi/unyt .. image:: https://img.shields.io/conda/vn/conda-forge/unyt.svg :target: https://anaconda.org/conda-forge/unyt :alt: conda-forge .. image:: https://github.com/yt-project/unyt/actions/workflows/ci.yml/badge.svg?branch=main :target: https://github.com/yt-project/unyt/actions/workflows/ci.yml .. image:: https://github.com/yt-project/unyt/actions/workflows/bleeding-edge.yaml/badge.svg?branch=main :target: https://github.com/yt-project/unyt/actions/workflows/bleeding-edge.yaml .. image:: https://readthedocs.org/projects/unyt/badge/?version=latest :target: https://unyt.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status .. image:: http://joss.theoj.org/papers/dbc27acb614dd33eb02b029ef20e7fe7/status.svg :target: http://joss.theoj.org/papers/dbc27acb614dd33eb02b029ef20e7fe7 :alt: Code Paper | .. image:: https://raw.githubusercontent.com/yt-project/unyt/master/docs/_static/yt_logo_small.png :target: https://yt-project.org :alt: The yt Project A package for handling numpy arrays with units. Often writing code that deals with data that has units can be confusing. A function might return an array but at least with plain NumPy arrays, there is no way to easily tell what the units of the data are without somehow knowing *a priori*. The ``unyt`` package (pronounced like "unit") provides a subclass of NumPy's ``ndarray`` class that knows about units. For example, one could do: >>> import unyt as u >>> distance_traveled = [3.4, 5.8, 7.2] * u.mile >>> print(distance_traveled.to('km')) [ 5.4717696 9.3341952 11.5872768] km And a whole lot more! See `the documentation `_ for installation instructions, more examples, and full API reference. This package only depends on ``numpy`` and ``sympy``. Notably, it does *not* depend on ``yt`` and it is written in pure Python. Code of Conduct --------------- The ``unyt`` package is part of `The yt Project `_. Participating in ``unyt`` development therefore happens under the auspices of the `yt community code of conduct `_. If for any reason you feel that the code of conduct has been violated, please send an e-mail to confidential@yt-project.org with details describing the incident. All emails sent to this address will be treated with the strictest confidence by an individual who does not normally participate in yt development. License ------- The unyt package is licensed under the BSD 3-clause license. Citation -------- If you make use of unyt in work that leads to a publication we would appreciate a mention in the text of the paper or in the acknowledgements along with a citation to our `paper `_ in the Journal of Open Source Software. You can use the following BibTeX:: @article{Goldbaum2018, doi = {10.21105/joss.00809}, url = {https://doi.org/10.21105/joss.00809}, year = {2018}, month = {aug}, publisher = {The Open Journal}, volume = {3}, number = {28}, pages = {809}, author = {Nathan J. Goldbaum and John A. ZuHone and Matthew J. Turk and Kacper Kowalik and Anna L. Rosen}, title = {unyt: Handle, manipulate, and convert data with units in Python}, journal = {Journal of Open Source Software} } Or the following citation format: Goldbaum et al., (2018). unyt: Handle, manipulate, and convert data with units in Python . Journal of Open Source Software, 3(28), 809, https://doi.org/10.21105/joss.00809 unyt-3.2.0/benchmarks/000077500000000000000000000000001526544257300146455ustar00rootroot00000000000000unyt-3.2.0/benchmarks/README.txt000066400000000000000000000002331526544257300163410ustar00rootroot00000000000000The data for a benchmark performed with unyt 1.0.1, Pint 0.8.1 and astropy 3.0.1 are available on figshare: https://doi.org/10.6084/m9.figshare.6399875.v1 unyt-3.2.0/benchmarks/bench.py000066400000000000000000000167601526544257300163100ustar00rootroot00000000000000import matplotlib matplotlib.use("agg") from collections import OrderedDict import contextlib import io from matplotlib import pyplot as plt import numpy as np import os import pyperf import subprocess import sys @contextlib.contextmanager def stdoutIO(stdout=None): old = sys.stdout if stdout is None: stdout = io.StringIO() sys.stdout = stdout yield stdout sys.stdout = old def run_perf(args, json_name): if os.path.exists(json_name): return args = args + ["-o", json_name] print(args) p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = p.communicate() print(out.decode()) print(err.decode()) def make_plot(extension): ratios = OrderedDict() stddevs = OrderedDict() benchmarks = OrderedDict() np_bench = pyperf.Benchmark.load(open("{}_{}".format("numpy", extension))) np_mean = np_bench.mean() np_stddev = np_bench.stdev() for package in setup: if package == "numpy": continue benchmarks[package] = pyperf.Benchmark.load(open(f"{package}_{extension}")) mean = benchmarks[package].mean() stddev = benchmarks[package].stdev() ratios[package] = mean / np_mean stddevs[package] = ratios[package] * np.sqrt( (np_stddev / np_mean) ** 2 + (stddev / mean) ** 2 ) fig, ax = plt.subplots() packages = list(ratios.keys()) ax.bar(packages, ratios.values(), yerr=stddevs.values()) fig.suptitle(extension.replace(".json", "").replace("_", " ").title()) ax.set_ylabel("numpy overhead (x time for numpy); lower is better") plt.savefig(extension.replace(".json", ".png")) plt.close(fig) if ratios["unyt"] != min(ratios.values()): rvalues = list(ratios.values()) svalues = list(stddevs.values()) unyt_index = packages.index("unyt") min_index = rvalues.index(min(rvalues)) if ratios["unyt"] > 3 * svalues[min_index] + rvalues[min_index]: for package in ratios: script = get_script(benchmarks, package) with stdoutIO() as s: exec(script) res = s.getvalue().replace("\n", "") print( "{}: {} +- {} ({})".format( package, ratios[package], stddevs[package], res ) ) print(get_script(benchmarks, "unyt")) def get_script(benchmarks, package): meta = benchmarks[package].get_metadata() setup_s = meta["timeit_setup"][1:-1] bench_s = "print(" + meta["timeit_stmt"][1:-1] + ")" script = setup_s + "; " + bench_s script = script.replace("; ", "\n") return script setup = OrderedDict( [ ("numpy", "import numpy as np"), ("pint", "from pint import UnitRegistry; u = UnitRegistry()"), ("astropy", "import astropy.units as u"), ("unyt", "import unyt as u"), ("quantities", "import quantities as u"), ] ) base_args = ["python", "-m", "pyperf", "timeit"] shared_setup = "import numpy as np; import operator" base_setups = OrderedDict( [ ("small_list", "data = [1., 2., 3.]"), ("small_tuple", "data = (1., 2., 3.)"), ("small_array", "data = np.array([1., 2., 3.])"), ("big_list", "data = (np.arange(1e6)+1).tolist()"), ("big_array", "data = (np.arange(1e6)+1)"), ] ) op_ufuncs = OrderedDict( [ ("operator.add", "np.add"), ("operator.sub", "np.subtract"), ("operator.mul", "np.multiply"), ("operator.truediv", "np.true_divide"), ("operator.eq", "np.equal"), ] ) for bs in base_setups: for package in sorted(setup): print(package) setup_s = "; ".join([shared_setup, setup[package], base_setups[bs]]) args = base_args + ["-s", setup_s + " "] if package == "numpy": args.append("np.array(data)") else: args.append("data*u.g") json_name = f"{package}_{bs}_create.json" run_perf(args, json_name) if "list" in bs or "tuple" in bs: continue args = base_args + ["-s", setup_s + "; data=np.asarray(data); out=data.copy()"] if package == "numpy": args[-1] += "; " else: if package != "pint": args[-1] += "*u.g" args[-1] += "; data = data*u.g " args.append("data**2") json_name = f"{package}_{bs}_square.json" run_perf(args, json_name) args[-1] = "np.power(data, 2)" json_name = f"{package}_{bs}_npsquare.json" run_perf(args, json_name) args[-1] = "np.power(data, 2, out=out)" json_name = f"{package}_{bs}_npsquareout.json" run_perf(args, json_name) args[-1] = "data**0.5" json_name = f"{package}_{bs}_sqrt.json" run_perf(args, json_name) args[-1] = "np.sqrt(data)" json_name = f"{package}_{bs}_npsqrt.json" run_perf(args, json_name) args[-1] = "np.sqrt(data, out=out)" json_name = f"{package}_{bs}_npsqrtout.json" run_perf(args, json_name) make_plot(f"{bs}_create.json") if "list" not in bs and "tuple" not in bs: make_plot(f"{bs}_square.json") make_plot(f"{bs}_npsquare.json") make_plot(f"{bs}_npsquareout.json") make_plot(f"{bs}_sqrt.json") make_plot(f"{bs}_npsqrt.json") make_plot(f"{bs}_npsqrtout.json") for bs in base_setups: if "list" in bs or "tuple" in bs: continue for op, ufunc in op_ufuncs.items(): for bench, bench_name in [ (op + r"(data1, data2)", op + "12.json"), (op + r"(data2, data1)", op + "21.json"), (ufunc + r"(data1, data2)", ufunc + "12.json"), (ufunc + r"(data2, data1)", ufunc + "21.json"), (ufunc + r"(data1, data2, out=out)", ufunc + "12out.json"), (ufunc + r"(data2, data1, out=out)", ufunc + "21out.json"), ]: for unit_choice in [("g", "g"), ("kg", "g")]: for package in sorted(setup): print(package) setup_s = ( "; ".join([shared_setup, setup[package], base_setups[bs]]) + "; " ) if "out" in bench: if package not in ("pint", "numpy") and "equal" not in bench: setup_s += f"out=data*u.{unit_choice[0]}; " else: setup_s += "out=np.array(data); " if package == "numpy": setup_s += "; ".join( [r"data1 = np.array(data)", r"data2 = np.array(data)"] ) if unit_choice[0] != unit_choice[1]: _bench = bench.replace("data1", ".001*data1") else: setup_s += "; ".join( [ f"data1 = data*u.{unit_choice[0]}", f"data2 = data*u.{unit_choice[1]}", ] ) _bench = bench args = base_args + ["-s", setup_s + " "] json_name = "{}_{}_{}{}".format( package, bs, unit_choice[0], unit_choice[1] ) run_perf(args + [_bench], json_name + "_" + bench_name) make_plot(f"{bs}_{unit_choice[0]}{unit_choice[1]}_{bench_name}") unyt-3.2.0/codemeta.json000066400000000000000000000030321526544257300152020ustar00rootroot00000000000000{ "@context": "https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld", "@type": "Code", "author": [ { "@id": "0000-0001-5557-267X", "@type": "Person", "email": "ngoldbau@illinois.edu", "name": "Nathan Goldbaum", "affiliation": "University of Illinois at Urbana Champaign" }, { "@id": "0000-0003-3175-2347", "@type": "Person", "email": "jzuhone@cfa.harvard.edu", "name": "John ZuHone", "affiliation": "Harvard-Smithsonian Center for Astrophysics" }, { "@id": "0000-0002-5294-0198", "@type": "Person", "email": "mjturk@illinois.edu", "name": "Matthew Turk", "affiliation": "University of Illinois at Urbana Champaign" }, { "@id": "0000-0003-1709-3744", "@type": "Person", "email": "kowalikk@illinois.edu", "name": "Kacper Kowalik", "affiliation": "University of Illinois at Urbana Champaign" }, { "@id": "0000-0003-4423-0660", "@type": "Person", "email": "anna.rosen@cfa.harvard.edu", "name": "Anna Rosen", "affiliation": "Harvard-Smithsonian Center for Astrophysics" } ], "identifier": "", "codeRepository": "https://github.com/yt-project/unyt", "datePublished": "2018-08-13", "dateModified": "2018-08-13", "dateCreated": "2018-08-13", "description": "Handle, manipulate, and convert data with units in Python", "keywords": "units, python, numpy, sympy, quantities", "license": "BSD", "title": "unyt", "version": "v1.0.7" } unyt-3.2.0/docs/000077500000000000000000000000001526544257300134605ustar00rootroot00000000000000unyt-3.2.0/docs/Makefile000066400000000000000000000012171526544257300151210ustar00rootroot00000000000000# Minimal makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = -W SPHINXBUILD = python -msphinx SPHINXPROJ = unyt SOURCEDIR = . BUILDDIR = _build # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) .PHONY: help Makefile # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). .DEFAULT: @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) clean: -rm -rf $(BUILDDIR)/* -rm -rf modules/ unyt-3.2.0/docs/_static/000077500000000000000000000000001526544257300151065ustar00rootroot00000000000000unyt-3.2.0/docs/_static/mpl_fig1.png000066400000000000000000000405131526544257300173150ustar00rootroot00000000000000‰PNG  IHDRàh�7( sBIT|dˆsRGB®ÎégAMA±� üa pHYsÄÄ•+8tEXtSoftwarematplotlib version3.1.2, http://matplotlib.org/%‹¡J@ŒIDATx^íÝ|�gÿð+F‚H£Ä‚PB„±BR£jU{…–ª´5þU­ö­¢^#¶R¡ŠÚ­ÚoÅ ‘ª!%BD"ƒ ÙÿünO5ËÉÉ9¹¾ýø8Ïó;‰žäœs�{<÷m’‘ DDD”£òiQb阈ˆHÀDDDzÀ&""Ò0‘0€‰ˆˆô€LDD¤ `"""=`阈ˆHÀDDDzÀ&""Ò0‘0€‰ˆˆô€LDD¤ `"""=`阈ˆHÀDDDzÀ&""Ò0‘0€‰ˆˆô€LDD¤ `"""=`阈ˆHÀDDDzÀ&""Ò0‘0€‰ˆˆô€LDD¤ `"""=`阈ˆHÀDDDzÀ&""Ò0‘0€‰ˆˆô€LDD¤ `"""=`é�IF&ívžÐ·o_˜™™!�=l""£’––†êÕ«ã³Ï>ÓΞ<À&&&Ø·o´3DDdh ,ˆwß}ñññÚÓç¸X±bˆ‰‰ÑŽˆˆÈP½öÚk¸}û¶vdxòÜpzzºv‹ˆˆH8 ‹ˆˆHÀDDDzÀ&""Ò0‘0€‰ˆˆô€LDD¤ `"""=`QŽJLNCd\’v”w1€‰ˆ(ÇDÇ'£×²?Ðoù1Ä&&kgó&0åˆ?¯D£�Çal?u­ìKÁ¢PA­’71€‰ˆHç¾Úæ�FßþŽè„d\žÞãÞ®Ž|&&Z5ob‘΄F%bÈj_Lù̓šVÆá -P¡x­š·å¹Ý� }÷ ""Cq,è†üè‡3—£°rh# lj«U^ C?×iÇÆÆâüùóHIIA‘"EP¯^=u>11/^D\\ìììP¼xqu^ìÝ»Wm˜/LMMaee…*Uª _¾�uÙˆ900jc}Ùá¨aÆ077×îñd `""ÝJKÏ€ÇÿñÉZ?4®^+5€]™×´ê«Ã~Š­[·ÂÓÓSý�‚ƒƒUHΞ=;wîÄŒ3pèÐ!ÌŸ?#GŽT÷— íØ±£Ú³·P¡Bؼy3\\\°}ûvUÏ"ÁÛ¤IT¨PeË–Err2fÍšíOÆ&"Ò�àÈxLØrŽ‡à“¶vø¬m /jªU_-ðSH WZ¥&Ú@»ü„2eʨVì�!CЬY3Œ1BÕU£F Lš4 ýúõÓÎÜ©‚Z‚YZÈ/‚LD¤§BcÐi¾7nÞIÂwÝjÁ½U5­¢†þ~®ÓIXE‹ETTŽ=Š9sæà­·Þ‚­­- .¬jÒ­ü¤ü?wîBBBþ¾B¾N~ðµjÕR­`www$%=þ¢î°°0lÙ²E…õž={Ô¿MDD¯ÎÝ”4Lúå êLÙ‹ª¥ŠÂJ�‡¯1Ðù,耀L�:K–,A›6m´³÷<­ñ=yòd >\;z˜„÷âÅ‹qåÊx{{ÃÇÇZõaâëׯW!¼aÆûãËDDôò®Ç$¢Û⣘½7ƒ]*a×hWTÉ az¶�]¹re¬ZµJ�늾}ûÂÙÙù]ÐÒ¥`ii‰øøx5yëYV¯^�+V`ÿþýÚ™'c4Ñ«q00îëþDÀõ8,ì[C\ªh•œÁ.è§×nÝ“��€»wïjG÷º’³ÏnÎ"­e éìá+]Ì—/_V­f™U­U///TªTI;"""]ûxÃI´øï Ã7çtÊñð5:m�7—.]RAzíÚ5ØÛÛcÁ‚êÒ$é^>vìJ–, WWW5ÙJ.I’�–ÙÒrÜ»woí;Ç�GÏž=áçç§.orssƒµµµj%Ë' ™m--ìga ˜ˆèß»t3Ÿÿz?¿Š±oUÔÎ5ñšž–”4ô÷s�ð�7Ô¬g¹¼ÈÂÂŽŽŽê¼üÀ|}}Õ9™ -ÿ 2¡JŽ¥u+-a,×g‘`–°ÌŒ–ïçï﯂XfYW­ZUý"ž˜ˆèßÙã#מÄÅk·±ÅÝ]ë–Ó*úÁ60 `"¢“”š†ÿl?‡©[Ï¢¥£5V j„ò¯ëÿŠC?×ù,h""2\çÂnã½ÅG1uçy|Ñ­~Þ4W„¯1` ˜ˆˆëPàMô\êƒøä4xôªƒA¯x-ç—Å0•Û‰)p_wo~wu+¾Ž SÛæºð5 `""ºïrDº,<‚¼/cT«7°ÓÝÖ¯±ËYÀDD¤ì8}í<ãØå[Xáæ„y½ëjÒ0Q—žž�Áž¾è8ßÅÌMëÑ=TЪ¤+ `"¢<ÌÿZ,:/<‚ŸŽ]ÁçjàÀ¸æ(P€Ñ�8 šˆ(�Úpâ*Æm:��[ Øûqs¼U£”V1 œMDD%.)#×ø¡ç£p,_ ‘s»\ø0QrürÞ™ï�¥ƒð]ïºØ8¬ Š›?Xö—r˜ˆ(�Øv* íçÆé°X¬ÚãÞ¶ƒY�üZ•r˜ˆÈÈEÞ¹‹AžÇÑyþ´²+‰KSÛ¡»“�V%}a1ÿÌÖ®\^´ùÏ0LlWë‡9ò»œs0‘‘’={¥Ë90<ë†4´nµ´ å `""#“œ’†n‹Ž ÷²c¨ZÚQ]СvY­J¹˜ˆÈˆø^¾…6‡°Û?Ó»9`ïXW­B¹ â "2K^”m瓘Œƒã[ a¥âZÅ8q!""Ò«¨¸dô]îƒa?ž@óê%3¯‹Ñ‡¯1`0¯óáè0ÿ06û…bQÿúXóA#^Ûk ÀDDê'Ÿ`¼»è(®F%`ëð¦ø¨ùÈgb¢U)·c˜°è¼·äú/?Žwë–ÃåiЮ–µV%CÁ&"2 ¾Á·ÐÖã0öŸ�À7]°bPC˜rû@ƒ¤ÓßÚÁƒQ»vm”+WMš4ATT”:öìY´k×666ضm›:—å­·ÞBéÒ¥ñú믫¯Û½{·VyXDDÞyç”-[‹/Öίe‡.¡Óü#ˆŽOÆ–áM1©ƒ½V!C¤Ó677ÇÚµkqåÊL™2%J”@RRbccÑ¿ØÙÙáêÕ«Ú½ï‘ûnÞ¼ÑÑÑ CÛ¶mµÊòõ-[¶„³³³ s,X°@«—ø¤T¼5û>Zó'W.�Й�ðfµ’Z• •NØÉÉ (P Ú´i£ÎI°6mÚ}úô�µõ?Ç,âââ0oÞ<|ûí·8wîœvöa���055ÅØ±cQ¼xq|óÍ7ðôôÔªOg Dd@ÞD‹ÿîÇŸWbàÑ«~ÑT«�¡ÓùÀ�´fåbi Ì L™2ZHKKÓn=УG´jÕ ùòåS-\ùšG…„„ÀÊÊ fffê¸bÅŠ U·µqãFº–––°°°@©RÜtšˆ ÃŒÝçÑuáQü}3‡Ç·ÀˆUµ �p×®]U`JK«÷Ö­[Zåñ¤;ùÃ?Äĉñý÷ß«®ë—ѽ{wÈb_Òm}çÎܼyS«åN×cÑqÞ!üßæ3èV¿<¢=:£f9K­JÆBç,-Yi}vêÔ ÅŠƒ———V¹WËŸÿÉŒK+799)))Ú™{dò–¹Ô„Œ—/_^Ý~–<¶ò&˜ßþ C»¹‡qðïH¬ÜË8ežåЙ1Òi˸¬L¤’•ÙÎ2¦+ãÂBfDËx¯ü���€ôôt5>¼jÕ*$&&"<<={öT“­ ,ˆ   Œ3FÝ·zõêj2×ܹsÕ×Lž<nnnêûª…^Ñk™â“Ò°s” 4©¤UÈé4€%x]]]akk«f)ÇÄĨÛ>>>êR#™Á¼dÉÔ©S§OŸV—-_¾UªTQ_·téR5ÁJH(«à•±\iI{{{ÃÞÞîîî5j”º‘¡ ŠˆC›91òç“Ü´2þþ¶\8ËÙèq7$""=:�÷Wú">9 ÚVǘ·8Ñêyq7$""úWfí D×…G�/Ÿ ~Õ”á›Ç°LD”Ãd%«·çÂéÐô¨oƒÕ4Ò*ô"Ø&"¢ç¶ãô54ûn?B£°´}†oÆ&"Ê!Ÿm>�ÞËŽ!6!Ll 7g[­By˜ˆHÇ.GÆÃ5³Õ;ë�âb«Ör®dUT«R^Å&"Ò¡uǯ ÝÜCð¿vk‡4Ƭu´ åu `""™¶3ƒVúÂÌ4?öŽqQËJeá,h"¢WÌÿZ,†üxÇ/GcB[;LíZK«Ð«ÄYÐDDtß®³×ñöœC¸sKúÖcøÒ1€‰ˆ^‘/õG÷% ´…v¸»à×ÊZ…èŸØMDô’®Ç$¢Å $:nM+baŸúZ…t‰]ÐDDyØF¿4�á…ä´t¬Ü€áKÏ�LDô/ ÿÉWøÂ4>™ÐïÕ·Ñ*DÏÆ&"zAç®ÝFݯ÷âGŸ+ÿ¶ÎÓÖÅ kU¢çÃ&"zË¡ý¼Ãˆ¸“„�Ú`JçšZ…èÅ0€‰ˆžÓ¤-gðÑš?Q.³µ»g¬+Ú9Xk¢ÇYÐDDÏà…A«|xý¾Ìlñþ_»Z…ô‰³ ‰ˆŒØ&¿P¼=÷0’Se–sC†/½2 `"¢'»á/ôYæ‡r¯a÷hWôlXA«½~»šV¡ÜÌÐßÏuÀ[·n…§§§ú!«�œ={6vî܉3fàСC˜?>FŽ©î/?È-Zà�7ÞPÁzãÆ ¬X±Bg'ÁÛ¤IT¨PeË–Err2fÍš›g/Ç&¢ìæþ~Ów]€E¡øa`¸V+©U(·c?…´p¥Ujbb¢Žåï   ”)SFµb‡ ‚fÍšaĈª.-å��T®|o ¯~ýú¡\¹r*¬³‹ŒŒDÇŽ±}ûvXYYigŸ˜ˆ²ŒZ{ öÿ�65KcQßú¨\²¨V!C`èïç:.Z´(¢¢¢pôèQÌ™3o½õlmmQ¸paUË—/Ÿjéf)X°àýð uOg‘¯“|­ZµT+ØÝÝIIIZõaaaaزe‹ ë={ö¨›ˆò¶C�¨úÙN¬8r ûÔÃî1o2|)Çé|V@@¦N�Š%K– M›6ÚÙ{žÖø–îk :T;ó€„÷âÅ‹qåÊx{{ÃÇÇZõaÒ¢^¿~½ á 6ÀÌÌL«Q^ôãÁè0ïÌ ÀÏ6Æðq唽XZ·«V­‚‹‹‹:îÛ·/œ��ïwAg‘Öªt?_½zUµtŸeõêÕj¬xÿþýÚ™'c4Q•ùV7dµ~8„µ­±l@”±,¤É± ú)ÂÃõ[÷H—òÝ»wµ£{]Éò'»Ÿ~ú ãÇ�Çõë× _éb¾|ù²j5ËXqtt´V¼¼¼P©R%툈èaþa±x}̯Øòg(¦u«�ßF¹0|IïtÚ7nœº¬H.Aºvíìíí±`ÁuiÒðáÃqìØ1”,Y®®®øòË/ÕŒf¹o�:uÔ%K²�;wÆÀ�qüøqôìÙ~~~êò&777X[[#>>^}’ÙÖÙÇ�Ÿ„-`¢¼E&Y}ñ‹?ª–*Š™Ý9ËÙˆúû¹NX.#’YÏr�®……Õyù�ùúúªs2Zþ¤fjjªÎËli¹´Hj2ÉJ.C’k‡å{Õ¨QC}?– –YÖU«V}¨µü4 `¢¼£óoì8s-ª—Â/5Uã¾d<À†LdüÞDŸeÇ�–|ÓŸTÑ*dL ýýœKQ‘Q™ºãÞ]t%ÌM±}TS†/åZ `"2 I©iäy Ÿo=«ºœw�v�S¥®#@”[° šˆ Þ®3×ñÁ�'Ÿ”Š…}ë¢o#^‘° šˆHOÒÓ3°hÿEt]tŠÁÖM¾d0ÀDd�¢ïÇ0â'?¼çT;F» …])­J”û1€‰Èà º…bî¿âÀù|?À ?½ßÅ‹˜jU"ÃÀ&"ƒ‘ž‘�»ÐrÖ4©RÛF5Å�79Ë™ 'a‘Áh5û€jõv­WkÞo³‚ùµ åEœ„ED¤cÛO_C‰Ñ[qéfÖi„MܾdðÀD”«MÜ|F­jUµÌkØá *h"ÃÆ&¢\)6!Ý—Uc¾ïÕ+‡í#›¡fYK­Jdø8LD¹ÎÆ!øè§?3ß¡€•n Ðѱ¬V!z€cÀDD¯ˆ,'9sÏôþÞul,Õr’ _2V `"Ê¢â¥ËùŒÿù$†7¯‚_G6C®åLFŒLDz÷{@8¬Æü‚S¡1Ø0¢)æõ©s3îÝKÆ�LDzs75 “9‹ö‡TWóÎQ.èîd£U‰Œ'a‘^¤¦¦£ÙÌý8…ÁM+aÙ@'ä31ѪDÏÆIXDD/hÝñ«°½1 ÉØ>ª~pkÀð¥<‡LD9Ê}ÝI|ð£/U.�]£]Ñ¡¶µV!Ê[ÀD”#®Ç$¢ý¼Ã˜ïuCšVƯ#šÂÖÊ\«å=&"�ó�(»611Áõë×Q¦Lu,!ܨQ#Œ9RÇÅÅ©–orr²:>~ü8F�…}ûö¡hÑ¢êœðõõŰaÃpôèQ˜™™aÓ¦M˜6müüü´{<™¥¥¥ p"zõn'ÞëržûûßèÓ¨¾îì€*%¼v‰^%Ž?ÃæÍ›ÕÉÔÔ¸¾"--M»uÏ©S§Pºtií*ŒåóÁ£?à��XYY©ð+VDhh¨ºý¨�7ªà—൰°@©R"Ò…˜Äd¸ÌØ�yû.âãÖÕ°æƒÆ _¢§ÐywíÚU¦qŸ>}pëÖ-­òl¯¢qÞ½{wõ}¤Õ{çÎܼyS«Ñ«²ìÐ%”þø·Ì»Ø?®9fõ¨£UˆèItÀùòåS­ÏN�:¡X±bðòòÒ*÷jùó?rttDxx¸vDGG«Ö«´ ³“É[äY]Õ2Æ\¾|yuûYr°Ç�Èè%¥¤cðÊãµî/´¶/…Ýc\áZµ¤V%¢§Ñi{zz",, )))j¶ó¹sçàää¤j2#ZÆ|åï„„¤¦¦ªq^kkkLš4IåСCÑ¢E u>((cÆŒQ÷­^½ºšÌ5wî\Ò“'O†›››ú¾D”3.†Ç©M<�c|›jØü‘3ÊXÖªDô,: ` ^WWWØÚÚªYÊ111ê¶���ë•ÌK–,A�:upúôiõ5.\@@@€ÿ0`¦OŸ®Î'&&"88X¯ŒåJKÚÛÛöööpwwW“µˆ(gÌÛ‡¯öàïˆ8œúâm|Ý¥g9½ ®„EDÏíV\¦í À¬=�èÙ°¦¿ë€JVœhEúaèïç `"z.n܆›§/|·cv?'¸·ªŠüù¸ƒé�¡¿Ÿë|¾•G.£ú„HHJÅñ)m1¶u5†/ÑKbÑݼ}C~<�A+}14³Å»s´+ØתDô2ØMD�uõVZí‡/~=‹�Îá=¡*–0תD¤KœM”G�ŽÂ?žÀ©KQøah# nj«Uˆ gA‘AIOÏÀœßÑàË=(T ?¦·gøé˜(‘k{ûþp ¯ÿ c;ÔÀ÷f¨nýðvŸD”3ž+€¿ÿþ{4lØPíçknnŽJ•*©­eg""2 gÂbá:s?¶þ†9=ê`væŸEÍ´*å´§ðï¿ÿŽråÊáàÁƒ˜:u*©öö­Zµ**T¨ öî•m‰(wJNM×ÛÎÂqÊØZÅ™)ocLëjZ•ˆôå©“°Nœ8¡B¶T©RÚ™’=yëÖ­«ZƆ€“°(/ ¿�ˆ!?úa¯ÿMôiT‹ûÖ‡YAîÛKÆÁ¨'a999©~é†nÖ¬™Á„/Q^â}1íæzc—ÿ Ìëíˆn ¾D¹È3Ç€¥‹ù»ï¾ÓŽîINNFÍš5‘??_ÌD¹Ñ§ÿ›ßíGJznþ÷ u­¢Uˆ(·xfûøø¨IXòGÈxo›6mT/^¼X�#¢Ü!(2ý–ì½�Õò xOh…×͹œ$Qnô\ q\¼xí۷ǪU«0aÂ51kݺuZÕ°p ˜ŒÕ¾€¾æ/†Å`óÈfx·~y­BdœŒ~!ŽÐÐPõ —.] ggg(PK–,Á•+WT�ˆô+)5S~=‹·¦ïGùb…puVg†/‘xf xРA8{ö,,--Uà–.]iiiê`xzzj÷4 l“1 ¸q7�ƶ¿®á‹Nöø´�, ÔªDÆÍÐßÏŸÀQQQˆ��W·eÒUzz:äKäOáÂ…Q²dIU3 `22˹ǒ£¸s7szÕÁÍ*k¢¼Á¨øÔ©S011AíÚµµ3“E9þþûoUÜ¥H±±±8þ¼š¸U¤HÔ«WO«ÜëÚFÑ¢EQ§Ní,°wï^˜™Ý[�ÇÔÔVVV¨R¥ òå{Ð[.-pY$""B}�²R×ó\Å&Cwçn ¾øÕsD»ZÖX>Ð e- kU¢¼Ã¨xÏž=X¸p¡ ¶Æ�ÃÖÖV…ã�7pòäI E‹;vìýÐÌnëÖ­ª‹Z~H¶’³gÏÆõë×Õx²ò¹sç0|øpŒ5J…i‡Ô’—… ÂæÍ›áââ‚íÛ·kßñ Þ&Mš¨EBÊ–-«.‹š5klll´{<˜ Yð­x¼¿ò|‚nap³J˜ß»næYîÛKy“Q°�·oß>üòË/¸páTðÉ}úôQ·Ÿ$..N…·´¢…üƒþýû«Õ³¾úê+$&&ªû\»v eÊ”Q÷ËR£F ur¿~ý´3÷HË»cÇŽ*˜¥…ü"Àd¨v�¹�±þBHT<–pBïFµ QÞdôü²nݺ¥‚ûرcªE½{÷nÕZ–ZV«YZ×ÒŠîÙ³§:Ò2–³„ø£d\ºW¯^8sæ ,ˆ.]º`æÌ™�m…‡……©[º³å¾ @xx¸V%ÊýdûÀakü°üPT*ï‰ÍQ�‹à|?ó2¤—%ÝÔ²‘ƒ\ºÔ¶m[¤¦¦ª1Üìa)-`iYg7yòdÕ5ý82n,‹€È¥P²µ,âáá¡U‚õë×cË–-ذaÃcCš(· ¸vï.:Ï#—ñíkààx†/‘±Ðy 8;ÙAiùòåjœWZÆOjË'¹ìIf_Ëä­gY½z5V¬X�ýû÷kgžŒ]Ðd(6ù…âÓ�§påV<þ7ÖoÙ?~ü8\]]Õ±�Ö²L¾Ê¾r¿Ë—/«‰Z2«:::Z«^^^j�b"cŸ”ŠÑëN¢û|o8”} ‘sº0|‰Œ�N[ÀãÆ�Ã¥K—T�Ê$+{{{,X°@Í‚nÚ´©šˆ%]ÔÆ ƒ»»»ú銖±_™|Õ»wouNHHK ÙÏÏO]ÞäæækkkÕJ–O@2Ûºråg_É0åf'‚£0qËì?ÓÞ­…Ñ­ªr#¢'à$¬§�Ë•‚‚‚ÔuºpttÔ*÷Æfe ÷Ñ뀥u+×ÛÙÙ©‰SY$˜¥,3£åûùûû« –ñcéÚ–_Äó`Snµãô5¸yúf>¿�Åýê¢Gƒ'_a@D `ƒÃ¦Ü&2> 7žÆÞ—ÑÍ©¼ºÄ¨Xî`Dô,†þ~®óYÐDôd×bÑiÞ¬÷ Á„¶vØ4Ì™áK”G0€‰ôdƒoÚÏ÷Æùë±X÷AcLïÁ ?0QKNMC�¥GÑk™lK˜#z^Wtt,«U‰(¯`å ¿àh´ó8Œ§¯cjWüþñ›Z…ˆòNÂ"Ê!Ëaò/þˆJHÆÁO›£q•Z…ˆþ NÂ"¢§ŠÉ Ü?Ã�•¾xÓÎ 1ó:3|‰ˆL¤K#Ðaž7ÖŸÁ‚~NXóA#.X@«Q^Æ&Ò‘uǯ¢ËÂ#ŽŒÇÖáM1¢EäÏÇ—ÝÃw¢WìZL"z,ù}–ù KkMk�öµ¬µ*Ñ= `¢WÈïJ”šåüûùp|ݹ&Vjĵœ‰è±ÀD¯È‡ƒÐqþDÜI–�œ1¹cM­BDôO¼ ‰è%%$§¢Ë¢£ð G;kü6ª™V!"]âeHDyØá¿#Ðò¿àt szÔaøÑsc ˜è_š¹ç<¦ï:�´tÀ{B 8”³Ô*D”Ø&ÊcnÄÞEçù‡1~Óit­[Qs;3|‰è…1€‰^€lšßnÞax]ˆÀJ·†X>Ð ùò™hU"¢çÇ&zN‹\DÏï}p;1ÛÝ›a`ÓJZ…ˆèÅq ˜è‚"â0bíŸØsö>jþö­§UˆHŸ8LdÄd–sÛ¹‡pòj fõpdøÑ+Ã&z‚9ÿ Dç…G ]D¿�l†±­í^vA=":>m=îµz»×/�5Ck"ÊMØMdDvŸ½×™ûqõV–ô«Ïð%"�ÑiÕÂ=pà€:Ÿ]HH¬¬¬TøŠŠ+"44TÝ~”»¿¯……ÅC­mÊÛ¾ÛsWCÁü&Ø3Ö•áKD9JçܵkW˜Ľ{÷VAY @­úOÒ�üá‡bâĉøþûïU×õËèÞ½;¤‘/­Þ;wîàæÍ›Z…òª€k±h6à Ÿm>‹1­«âô”6hP©¸V%"Ê:`iÉJë³S§Nª%ìïï¯&N�>}Z»Gæb@*Uúç²~ÒÊMNNFJJŠvæܺuKÕ„Œ—/_^Ý~–kÿÏåK‰Èøp‘mý3mæBbr*<Ý0|‰È`0€É`}ºá/ôþÞ5ÊX`×hWôiTQ«å~ì‚&ƒ#Ûº|·±‰)ø¨yÌèV[«Q^Â.h¢´êh0œ§{Á¢P¬ÒˆáKD‹LCÕºúÊ+ï -Ñ¡vY­BDdxÀ”ëÉ,çêŸïÂo§®á›.8ñyk77ÕªDD†‰L¹Úü}£ã|o¤¤g`ëpgŒkS]«60åZ£×ŸÌüój•{ {ƺ¢¹])­BDdø8 šrï¿#0xå „Å$bF·ZÙ²ªV!"z€³ ‰^¡Õ«µœ ›æÇÚ!�¾Dd´À”k|¸ú®ðE³7¬°k´ :×)§UˆˆŒ» Iï®ÝA³ï~GF† Æ·µÃÄv5´ Ñ“± šè%,:p ÍfìCe«¢Ø2Ü™áKDy˜ô¦ëÂ#µöO8V(†ýŸ¶à,g"ÊSÀ”ãFÀfüoø#èõ­¯Oš£h¡Z•ˆ(o`SŽúvGº.>‚b…M±mdS|øf­BD”·0€)G¤¤¥cðJ_LÚz®UKa×4´-¡U‰ˆò�΂Ž��Åùóç‘’’‚"EŠ ^½zZ Epp0Š-Š:uêhg�K—.áæÍ›�ÿ­š5kÂÒÒR«<�––†ÀÀ@DDD¨û¥§§£aÆ077×îñdœ�óöž½ŽÁ?žÀ�»©˜ß«8Ûj"¢ÏÐßÏuÀ[·n…§§§ú!IØJHΞ=ׯ_‡³³³ äsçÎaøðá5j”úA¶hÑo¼ñ† Ö7n`ÅŠê8; Þ&Mš B… ([¶,’““1kÖ,ØØØh÷x2pÎIÏü.;| cÖ�‚£M1Líê€V5JkU"¢—Ã~Џ¸8Õ*511QÇòwLL ú÷ï�ºuë⫯¾Bbb¢ºÏµk×P¦L¡råÊêþýúõC¹rå0cÆ uœ%22;vÄöíÛaee¥�}> àœ‘”š†Až¾Xçs½WÄüÞõP¢(w0"¢WÇÐßÏu:,ÝËQQQ8zô(æÌ™ƒ6mÚ¨.å={öà³Ï>S÷)\¸°j~ü$l¿ZŸm=ƒ…û/¢z ü0À å‹i""Ý2ô÷s�°\F$³šå:] 8::j•{c³2†›ý:`iåJÀÊli¹´HÆŠe’•\†$³¥å{Õ¨QC}?– –ñcéÚÎÞZ~ð«q'1¬:� ~!Фfu¯ +‹BZ•ˆH÷À†üò¶d†î‡kþ„ßõ©��[WãFDdÔØ&½ûñh0ªMØŽÛI©8úEŒkcÇð%"ÊåÀ,âN>\}=�ãýo`×h4©RB«Qn¦Ó>xð j×®�råÊ¡I“&ˆŠŠÒ*À”)SÔyWWWíÌ=IIIèÖ­Š/Ž9sæhgÿ)""ï¼óÊ–-‹Å‹kgóŽÐè4›±_Írþ¢SM,Øå_/¢U‰ˆ(·Ói›››cíÚµ¸råŠ Ü%îµÎfΜ‰5kÖ =zô@©Rvà©V­ììì‰U«VaâĉZå�ØØX´lÙÎÎÎ8{ö,<<<°`Á­jÜdÈ~Îÿ. ÒÄ(V¤Ž}Ö _½SS«‘¡ÈÑIX&&&ˆ‹‹S»cÇ8::ªó¥K—ÆÖ­[ѰaC)RÉÉÉêüñãÇ1jÔ(ìÛ·E‹>ØÞ×ׯ ÃÑ£Gaff†M›6aÚ´iðóóÓîñd–––*À Ñ�Ä|ø“¶ž CÇÚÖø¾¿^77ÕªDDy 'a=ÃæÍ›ÕÉÔÔÞÞÞªU|ãÆ�ûá+jÔ¨�ÐÐPÕš•0Î"ÝÐòùàÑpHH¬¬¬TøŠŠ+ª¯œ�7ªà—൰°x¨µmHN‡Ä¨…5~>‚/:ÙcÝÐ& _""¦óîÚµ« L âÞ½{« ,P €V}ºWÑ8ïÞ½»ú>Òê½sçnÞ¼©U ÇÔ�¨?õwܼ}¿m‡ÿkW8Ë™ˆÈ é<€óå˧ZŸ�:uR-a5qêôéÓÚ= Æ‚Ë—/„‡‡kg�èèhÕz•¯ËÎÆÆ·nݺßU-cÌòõÏ#{Ü_ÚõØD|ô“>ßrýWÀ¡ -Q¹äƒ®x""2\: `OOO„……!%%Û¶mSáëää„#F¨–©t-Ë f E™P%-ckkkLš4I�:t(Z´h¡Æƒ‚‚0fÌ$$$ zõêj¶ôܹsUHOž<nnnÚ¿jü®D¡½Ça,Ùû7– ¬O·†°¶,¤U‰ˆÈÐé4€%xå2#[[[5K9&&FÍ„þä“OгgO¤2K:{·ð… T‹XÆ €éÓ§«ó‰‰‰VÁ+c¹^^^jLÙÞÞîîîj²–1HOÏÀü}Ãé‹=(˜?ÎLo‡\ªhU""2\Š2¹•€ÿÛrk}®bLëjø¬}u”´`«—ˆèq }48—¸‹vóãzl¾íê€OÞ¶Ó*DDô8†À:Ÿ„EO—œš†)ÛüaÿåT*aŽÓ_´føå `=’ËŠº/ù3vŸÇÀ&•°s´ 쬞ñMDDƉ¬'\ŒT kì:{³»;båà†(bú|×G‘ácëÁø�§Ðì»ýHNKCØÌŽø¨ÅZ…ˆˆò p ŽŒCÿŽaæÿ.`xfèß’³œ‰ˆò(΂Î!ÎßÄGkþÄùÐ¬Ñ =œžoå.""z<΂¦§JIKÃ׿ù£Å·ûPÚÒ ÁÿíÄð%""°.�¿q=–øàËmþ˜ÔÕÛ2[¾K˜kU""ÊËØ­#\¼…nKŽâvb æôªƒ!.•µ ½ 삦‡Ä'¥â“ Áyú>Ô.o‰óÿiËð%"¢`¿BWnÅ£ËÂ#X|à>jQE-¬Q¾x­JDDôøÙsöÚy†÷ÅH|?À ‹úÖG>nšODD�Ç~Iéøð'?µ‘‚¹Y~DÏí‚~�+jU""¢Çc¿„€ë·ÑmÑQüp8ÚTÇ¡q-PÈ4¿V%""z2΂þ—¶ž ÅÇëO!82»Ç¸ �ƒµV!"¢œÀYÐyÌ�»)óóI¼ëá {ë×1§3׈ˆ^øÈ5½ý~8�}ãÛžµ±y¸3¬,Ì´*Ñóc¿óBàT±8Vjˆÿkg�B9ÞKDDÿÇ€‰ˆÈ q ˜ˆˆˆ^˜ˆˆHtÚ-]���HJJÂ믿{{{­rÏÙ³gqëÖ-T©RåËßÛ¢/22ýõ ,ˆ|ùò¡@�°±±¹_Ï’�� ¾wLL LLL�––†–-[jÕ'c4‘q0ô÷s�ð¨Q£¤Â÷Ô©S9r$>üðCU=z´ Z Öàà`L›6 ®®®8qâ¾þúkXXX 556lÀܹsÕý³;|ø°ºÿ Aƒ�˜˜¨Xîû, `""ãÀ~ŠK—.©€533S-Û2eÊ >>¦¦¦ª…Ž%J`Ë–-X¼x1vîÜ©Îg‘¯iÚ´)víÚ…Ê•ÞQèèÑ£èÕ«®^½ª�y> `""ã`èïç:–®e _!]ÆÒª•ci±Jî+VLÕäïcÇŽáÆ�ê8˼yóP¯^½„¯� 677WÝÓ¶¶¶ðððÐ* S¿}ûvìÙ³… Ö*DDDú“#—!ÅÆÆÂÉÉ 3gÎD—.]Ô¹Î�;«ñ_ Ø3gÎàï¿ÿÆ¡C‡ [i1/]ºTÝ÷Qò=£££Q¡Bœ}3iUd}º4FòØŒ±å”�±?Gù4lyá5ø<Àÿ‚1òÒÍÿ¼³Ï ‘<6yŒÆÌØŸ£| ¶¼ð|ù§dÒnÓs’ñæš5kjGÆG&ÃÉc”)þÆH—üþ]_ܘûs”¯AÖ^ƒÏƒcÀDDDzÀ.h"""=`éÇ€_ÐÆ�ÕÎMrýZ­Zµ´³†I6¿X·n~üñGuͶ��Š)¢U¡6Y²d‰ÚJ²Y³fÚYÃ$#-ßÿ½zœuëÖUçd·®o¾ùüñªW¯Ž¢E‹ªó†F–m•ÍH~ùåu,×ÉË,aY+}Á‚j3Y°¦lÙ²ªnhd‰Z¹\Eà‘µâe1�,žžžª&³jåùk(dƒeË–©KqäzØJ•*i•'¿îä1Êù•+W¢P¡B�ݤ&·�õdœ+V¨ e¼Wž“²¿¼ß¬]»Víç.Ë ËîxYäýH~ŸòœnÔ¨‘vÖx±ü.\¨Vò’�%¾ýö[µ‡±!“7fyS“µºåÅ Zd‘Ý©z÷î­‚I6°èׯŸV1Lò† †Ÿ~úIË"0òæV®\9µ`…ü ‘l@Ò­[7õÁIƒÌ,•Ë;’““ÕïLöÜ–MMºvíªîkhd‰YÙC\Þ¨K–,©VדE|ĤI“ÔŒÆ�«ý éšÒ³gÏª×Ø¶mÛZÁïi¯;¹6Xö<—ש¬}Ÿõ�+7’E“d‰aù]ÍŸ?ÿþ%U°¾¾¾*\�9‚æÍ›«óBÞ�ÜÝÝÕbMò!cüøñZňÉ$,z>™-¤ ???u;ó <#óE¢þ6™A¬nÛØØdd¾ù©Û¢@�™/íȰDEEed¶z3-Z”ѱcGu.ó ;cÈ�!ê¶�úªU«´#Ñù!"#3x22ßèz.8p@=¦,™32CX;2™¡“ñé§ŸjGê5—Zê¶¼}…††ªÛþþþ™­¬ŒÌÖ–:6&LÈøä“O´£Ç¿îþüóOu[oRR’º½ÿþŒÌ†@Fbb¢:έäÿ=óRFæBíÌÃä1e~`T·ÍÌÌÔó8‹Ô²#¶€_€,y–µÝ¡,¥&Sé¥+ÉHw¬ìP%kp˧UéžÎÞý%ŸX¥•lh2ŸãèСƒêê“ßWÖ'qY‡ÜÕÕUÝmÚ´QëŒooo¬_¿'NT-§¬^™Ì@z¨KV.i¹|ù²vd8¾úê+µkšì–Ö·o_¼ùæ›èÔ©“ê^—V¿ô`YK–³5´×£,Ó›E^�{ÝÉsõܹs°¶¶¾ß]+à ҥ›ÛïÓ®õ•¡YrS‡´˜åÚàìòÈ{­!¾ç¼ðs’n=YkZÆkDÖ&ÿvMéÜDBJ–½“nu!/y\ TÇBÆœ²¿YŠ/¿üRuÑÊx™¼ye�qËc‘7í,2þk¨ ´jÕJ�©É‰tñÉÉ2'³êïOÞœƒƒƒÕ›±Œ“J÷¥<6ù0œ}ìÐ^�²îóã^wL�>^Yï[~6†úxåñH7ú¢E‹ÔñãÖ¼6Ôçì‹`?'yÂKëIÞÜ„Œ±É“?û&†ªJ•*jǪ±cǪci)ÊŸ¬±6!· m�¼qÉNY2ÏP~O}úôÁæÍ›UkW&…d•†l‰ihäC„ÌIÒʕǩZ¿aaaê¼�†Œš&MšàçŸÆÇŒ©S§ªÇ8sæLØØØ¨Õ°²Þ¸åw-¯GC›H'ï+òG<éu'OHÏ”ü^³È‡iäöÇ+ŒäƒBö]í䃮­­­úÀ/¯I!­{¹_vòü5Ô‰ƒÏ‹üd€Lú²}¢ì”½ËÄÐȇ éÒ“­!G�¥�½§W¯^÷'AH«CºÆ²wÙé­�™ÏÒ])/zi!Êâö{öìQ]{2›]Zÿ²Ç´tãʇC#­{y. y\H²’Ld‘®ËÇ«Ž2UöÞ64òAIZ÷BÇñãÇïÏ–^ ù ™,¯EC{Ö•?YdáÑ×�³³³ÚÁMZÀkÖ¬QµY³f¡víÚê=(7“FB>0™-ûÀËï«G�êœ�Þù`üÉ'Ÿ¨c™`&çÝÏèÈ@0=™ ”ù„ÈÈ|!d8::fœ:uJ«&™"O�âÅ‹gd¶œÔmooo­š‘Q¿~}u^&gýñÇÚYÃ5wîÜŒ hGjr�Lü�Ç÷Í7ßhg KfË6#ó�+#óÍ*£F�¿ýö›VÉP“Ê2[½… Ê8p`®Ÿ°ó82�ÎÁÁ!#3€Ô™<—Ī&"3[úêõ˜ÙRθ|ù²:oäÿU^oYä5¸wï^U{Òënß¾}j’VÁ‚3Þ~û팈ˆ­’ûÈd8™0—ý1zxxdd~ÐW·­¬¬î¿ç«¯É éŒjÕªe)RDý<.\¸ Î3.EIDD¤ì‚&""Ò0‘0€‰ˆˆô€LDD¤ `"""=`é˜ÈÌ™3G­Îö8jYk˜ˆr0‘�;}ú´Ú7ûZÁÙÉr…²½›lMHD¹˜ÈÀÍž=[-'šEv�9tè�ZÊP–¦”%ýºwï®ÖP&¢ÜƒLdÀd;:Yó9kCYÚÍÍ Ë–-ÃäÉ“ïoç&ëïîÛ·OÝ&¢Ü�LdÀ¢¢¢Ô&²‹ŽøñÇ1bĬ^½»wƒƒ:/ܾ}[Ý&¢Ü�LdÀ$|e7�¬-í&Mš„qãÆ¡]»vj§ ¬‰W2>,ûÌÊ~D”;0€‰ ˜L°’½V³¶{kÙ²¥ÚYBXZÁ²çª�™ÐÖ²0å `"&™)RDm¸/¶nÝŠsçΩ –}�³6q—™Ò²·.å `"÷þûï«ë€…LÊêÕ«—Ú˜¾ZµjX´h‘:/­á�?þXÝ&¢Ü�û8y ¿÷Þ{ؼy³væa7nÜP=aÂ/^\;KDúÆ&2±±±ª+Z&Z=*55wïÞUãÅD”{0€‰ˆˆô€cÀDDDzÀ&""Ò0‘0€‰ˆˆô€LDD”ã€ÿ¬ñ2PhÆNIEND®B`‚unyt-3.2.0/docs/_static/mpl_fig2.png000066400000000000000000000362311526544257300173200ustar00rootroot00000000000000‰PNG  IHDRàh�7( sBIT|dˆsRGB®ÎégAMA±� üa pHYsÄÄ•+8tEXtSoftwarematplotlib version3.1.2, http://matplotlib.org/%‹¡J;ÚIDATx^íÝ\U÷ð»»qêlQìÀÆ_�5�“M�ŠÎ©3çÂYsÖŒÍÖ)Æfàì »Ä&Dòþïûó\k*pëùîÇ{Ï{aÇýç9¿8çØèô@DDDI*™ö�ˆˆˆ’˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDdVÀ���>|8 .Œ ::Z«¼¿sçΡcÇŽÈ�;7êÖ­‹K—.iàÌ™3pvvFþüùááá¡-%""kf•�B… á»ï¾ƒ···¶ô‰‡bïÞ½jyxx¸¶ôíNŸ>�ÚµkãÆ�pssC‰%´Ê“ÀïÒ¥ J–,©êDDD6:=í±Õ9tè� KOOO¤L™R…c¯^½`gg‡ÈÈH„„„`÷îÝÚ«ßM¦L™pâÄ ôÂU«VEŸ>}´%DDd­¬z 8**J}·±±Qßùå|òÉ'X¹r%Ö­[‡4iÒÀÝÝ]ÕÞ…´ ?~üBøŠØØXíY;NÂÒK–,™ ã‹/bðàÁÈž=»ú:ränß¾­^S¡BÔ¶¶¶O¿äy³fÍTÝÀËË �;wV?KDDô:VÀ)R¤Pá+_¨ò}Ñ¢E¸wïÞÓ/™¤%Ž;†¸¸8Ô†/yþï¿ÿªºðññA§N�°`Á888hKŸ‘ߟŒœ9sªÓ‘fÏž�òåËãÔ©SªFDDÖɪgA 'a˜ˆˆÈ¬® Zf)§J•JMÄ"""ó$“[K•*…aÆiKÌ�Õ°ÌZÞ±c‡š|EDDæI®^غuëwºd°©1‰–Ó€‚‚‚P¦L™×ž'+§ É ä‚rή�\³YÎǵ··GÆŒµ¥¯'—ˆ”YÐDDdÞ2dÈ ®ßo®L"€åé–0•» ½Šœ6´k×.uÓÃE.zö쩞ËA.šŸ«O™ûŒˆˆž0÷ý¹Ñ'auèн{÷F±bÅþs¡ ƒßÿ9räxá;wîÄÚµk±oß>lÚ´ éÓ§Ç”)S´*‘i3jK`fÉ’E]îñuc²Û·oWÄX¾|¹º� �ŒãÊ� äÖ‚þù§öì™›7obõêÕê’‘[¶lQ7X ""26£°\Jºœg̘¡ÆpS§N�lÙ²iÕ'îß¿�¹sçbýúõê¹tSK` ìçÃTZÀ¯êŠ�ñe¹º•„°\&R~‘±-€—-[¦ZµùóçW—}”K9ʬ¶çɘ®„g¹råÔØ°¼&oÞ¼ê>½2áêù±„¯Œ¼L®Ï,¿cþüù˜7o'`‘I0Z�=ZÍ|>þ¼ê®\¹òÓë#ûúúª›4iÒäékä6ò¹A¾„¯““<<<ÔëÅ„ Ô�ˆˆˆÌ�ÑXN%’S‚Ò¥K§Z®r§ iåJ—±Ìx–{ó y�Ô3gά^#ß…¼ÆÅÅŽŽŽpvvV­b퉈ˆL�Iœ†©Z½Ò-«#á+³¢Ÿ¯•«ž\ºtIÝ�HÆ‹ ç—.]Z…õÛð4$""Ë`îûs«»˜ˆÈ¸"¢bƒlé>lR¬¹ïÏ�zY— ð(|:ç:ÏõFHD”¶Ô:1€‰ˆ(I»ç©^ø÷ä-Ô·Ï�ô©_<óÅÚ0€‰ˆ(ÑýàqUÙŽ GQð× ƒ•B²×\ýÐZ0€‰ˆ(ÑøFÀuÉaŒ^Ÿ;�×�º(�%­Vµnœ„EDD‰Âûê¸.>ŠÓ¾�XøeUtu,¬U'a='6N‡ß¶\Dµ¶À.Ur\ß4ÁÃ×0€‰ˆ(Á\»ŽŽsbઓØ¢ 6ô­…’¹þ{™`b4%�“þÁh1}/î†FbB›²èW¿„VIì‚&""«ö8:ÃמFùÑ[QËŽãrÀC¬îW ­*äÕ*ÆÁYÐDDdÑ"cb1bíi4™°²¦…ßo.F_KÀ&"¢×:wó!þ7k?Æl¼€QmÊb]oGäËœF«Ò‡`4½’§Ï]´ÿã £b1õÓòøÜÄ.'É.h""²(#¢ÑÏý8jO؃ 3ãâ˜&&¾–€LDDOùÞ CËû0o¯/úÖ/†�ýj!wv9'0)NÝ‚óT/xû>Àün•0­C­B‰�LDdåââtè¾à0šOß‹Lv¶™Ú í+Ъ”XÀDDVìl@\fìÃ_Þ×1¢YiìT)x9É$ÁYÐDDVjå‘ô÷)ø=x„­ßÔAƒÒ9´Šyà,h""2+a‘1è³ô(ÚÏØ�rù2áþ”–f¾–€LDdEùâ“é{ñÇž«˜Ð¡Võ¬Ž,v¼–³10€‰ˆ¬„ÇÉ›h:Í §n†`Ù—Õ0¨QI¤J‘\«RRcY¸û¡�ñù‚Cp™¾õKfÇ•1Îh[)¿V%caY°³úÖ®œ^ôϱ›øÎ¹4Vô¬�ŒiÙål ÀDDjù¡ªËÙçNÜ]«bl›²Z…L˜ˆÈÂDEÇ¢ÍÌ}è0ÇÅs¦GàÔ–höQ­J¦‚LDdAû>@㩞Ø|öƵqÀÖNZ…L /ÄADd!þØs£=Î!8" {×E•BY´Šeâ…8ˆˆÈ¨âÐiîAô\|uJeGð´–¾–€LDdÆv^¸ƒfÓ½ðÏQÌìRK{Tå¹½f‚LDd¦þ:x ­gîÇ�ÀGXÓÛ½êC2­J¦ŽLDdfn=ÂÿfïC—¹‡ÐºB^øŽmç²¹µ*™ “˜„åáá�K—.¡gÏž°³³Ó–Ê=*ã°mÛ6ìÚµ ‘‘‘¨^½:Úµk§jAAA˜;w.®\¹‚dÉ’!$$K—.Uµ7á$,"2g‡¯=@÷…G�o–ÀðföZÅú˜ûþÜ$ØÆÆeË–Å–-[�;÷³£¸Ç�cáÂ…ˆŠŠBÆŒñûï¿ÃÅÅ#FŒ€��J–,©Â988Xý>ûì3í'_�LDæjŽçŒ\w)’Ù`©k5Ô.‘]«X'ðˆ��E¹rå0gÎ|÷ÝwX±bråÊ¥UÿËÝÝS¦L�··7._¾ŒR¥JáÆ�GñâŵW½˜ˆÌMxd \fìÅî‹÷Ðü£|½×eøZ£µ€¥U:räHÕ*�ŽŽ~ŒoZ___5î+cÂ/ûñÇU·ô«Bøyì‚&"Sw+$®‹cãé;ø¢VaÌù¬¢~)O/z[Àï©ÿþjòThh(Ž;¦f8ûùù©0^¹r¥Ú¨ªëYÆŠÅòåËU—µ�ng \!?'cÃmÛ¶UωˆÌÕú7á<Å {.ÝÇÂî•õá[I¿”ák‰ŒÀÒòM‘"…z,­Þ»w类héJîÓ§üýýU«xèСȒ% räÈ�Í›7cõêÕêgΜ9ƒ  }úô*¼{ôè�-Z¨‘9š±ó2>�sá‘±ØØ·>«^H«�%2‰Ó�’» ‰ÈÔ\½†^ÅÖówѧN1LïXA«Ð›° šˆˆÞÛŸ{h4Ù§n>Äävå¾V„LDd$“¶ú ÕŒ}H–Ìëû:¢Îr¶&ì‚&"JbAáQh4EßêõF»Šù±¤GU­Bï‚]ÐDDoN æ„]ðz„?ºTdøZ10QöÏ)t˜ã��GQ8ð]=t«QX«�5b%2ßûápÒ·z'mó�k­ÂðŸØ…²¥Óªd­ÀDD‰ÈýÐu8OñÄÙ€‡XæZ “Ú•×*díÀDD‰dìÆóø|áa¤²MŽ­ýk¡MÅ|Z…ˆ³ ‰ˆÜÙ€¸.>‚C¾AÒ¤$Æ´*«U(!q4=µéÌ-ua�[Á�1»ÓÇ _z-0Qù~ÝY´�}9ӧ†~µÐéˆV!ú/vA} [Á¨ûënøE ›cAÌè(·¤ÄÆ.h""+¶ê¨ÇïDTlu¯Ìð¥xc½§ÞE×ù‡a›<ö ©‡ÿU̯UˆÞŽLDôŽÎu‹bLë�´ ™vAY�…û|Q}ÜNdJk‹å_UeøR¢aiºÌõÆ—KŽ"æ´Ø;¸.œòh¢„Ç&"«wÄ7%†oĆӷ0Nßâ=4¼2ÛÙjU¢ÄÁ&"«6eûE4ÿ}/d2ÌÚ¯ñM£O D‰ŒLDV«ï²ã°â$Êçψ-ý�àT"»V!J|œMDVÇÓç¾Xx!�1ñ¡wÝbZ…Ì gA™‘Å®¡Ù4OØ¥N�å_Ucø’Ñ0€‰È:ètp]|ÝæB�’9Ô…5Z|ÄYÎd<ì‚&"‹wöfjNØ…d6Àà&¥0DÿEæ�]ÐDD&ì÷]—PK¾%r¤ÃšÞŽ _2l‘Årù}¯:··n©XÛËQ�û’å` ˜ˆÈÄìñ¹‹¼ƒÖÃÛ7³;Œmj3|Éä0€‰È¢ŒÙp­gîGV;[üÛ×=jÕ*D¦…LD!2&Ÿ/ðƈ5gT—ó&·Z¨T(‹V%2=&"³·éô-ôX|á‘1˜Ñ©:U-¤UÈ’™ûþÜ$ØÃ×.]BÏž=agg§-âââ°mÛ6ìÚµ ‘‘‘¨^½:Úµk§U�°°0Œ;ÑÑÑèØ±#Ê—/¯U^�Ld9âât˜½ç ¾Yy dÆ/­Ë¢nÉZ•,'a%,Z´è?2** ¾¾¾È“'� ׉'âçŸÖª@Íš5‚L™2©p–בuxƒNó¼ñõ_Gñ¿Jù°Á­×̊Q[À±±±(W®æÌ™ƒï¾û+V¬@®\¹´ê¹»»cÊ”)ðööƼyó0sæL=zTÕ† ‚€€,Y²D=¶€‰ÌŸ÷Õ¨=q72§µÅ�ŸØÃµ6'ZY#¶€?ÀСCáêꊢE‹ª.æ×™5k–êž^°`~úé'µìòå˨\¹²z,6l¨‚ùmlll´GDdnâôí…ñ›Î£Þ¤Ý¨^4+<ú:2|Él-€wìØ¡Z¬nnn°µµEš4i�=û«oV¬X1/^÷îÝÃÍ›7Õ²ˆˆõ32v®={fÕªU*t3f̈ôéÓ#GvQ™«†“÷`Øš3p.››Ýj¡2g9“3ZŸ:u k×®U¡(ÝλwïFН>Q^Z·ÄêÕ«ñÕW_©e2.|ãÆ õX\¸pA…ôËÚ¶m ée—±âÐÐPܽ{W«‘¹ø÷T²º­Á•»aXæZ÷¬�T)“kU"ód´îß¿?‚ƒƒU(;vLM¢òóóS3šW®\©úõ¥•{òäI5V,–/_޼yóªÇ�7ÆÖ­[U J÷µtM÷ë×OÕÞÄ&}Ñ;øîŸÓè8ÇÅseÀ†~µÐ¾r­BdÞŒÀÒ-lhñJ(J�JWô­[·Ð§Oøûû«`•qâ,Y²¨®ãÍ›7«V°�É[2!«`Á‚Èš5+jÔ¨�Ö­[«™¿�GQh;{¿óýßÇyñoŸš(“'£V%2¼™œUGüÐë¯cú=°°[e4/ÇûöÒq4Q‘ËINÜrþ<ˆòù3ªËI2|ÉR1€‰È$†K—ó ^~½ëź>59Ë™,˜ˆŒnûù;ÈÖ-Núcå׎˜ÖñcØ¥âíɲ1€‰ÈhÇÄbäÚ3h:ÕSu5oì[ m+åתD–�“°ˆÈ(bbâPsâ.x_ DwÇB˜Óµ’ñJuô8 ‹ˆè¹º�Œnkü( ÿö­‰yÝ*3|Éê0€‰(Iõs?Ž‹£j‘¬Øäæ„fåÖ*DÖ…LDIâVpšNóÂô�—áêXë¾vDálÏîÿMdm8LD‰nÁ>_¸-?;ÛäXÙ³jçMQèÃq ˜ˆè5BGã{�3è¾è0ê”Ȇ�ßÔaøiØ&¢Dá�®ó½±óÔ-ŒhU#š—Fª¼ƒ%¶€‰ˆ^²æ˜?ò\?}oR?µt`ø½„LD æaD4¬8ŽÖ³ö£c�BêZÎ ísiU"z» ‰(AGD¡öøÝ8‚þ ŠcR»òZ…(q° šˆ¬ÞÏ+ÈùÍzØØè°kP†/Q<0€‰è½EFÇ¡ûÂCèë~ ís`s'8Ï®U‰èMÀDô^.ß S7QX°ÿ7.�zÕ@®Œi´*½ Ç€‰è�MÛáƒÁÿœFŽô©Ôµœ?Ê—I«%Ž‘Õx‰oW�€›û ´,Ÿžƒê0|‰Þ[ÀD/o?D·‡qðÂüÖ¹úÕ/ŽäÉx#2¶€‰Èâ-Üç‹RC6àQd �n‚ K0|‰>˜ˆ^ëîÃÇp]|Ÿ/<Œ/õ-Þ�nN¨\8‹V%¢Á.h"z¥ÂÑp²'®Ü ÃÈæeð} {­BdØMD%NLþëÖ (2t#²¤µÅáá ¾D‰€LDO…<ŠBÇ91bÍY´©˜›ÔB…™µ*%$0)'oÃyšVñÇO.e°Ìµ2¦±ÕªD”ÐÀD„Ÿþ=‡Jc¶ã~h®ŽmŠAMJq–3Q"cY±€àôZr£Ö�A×±wH]Ìj§U‰(1q4‘•:r-=ÁÉ+�˜÷eUtw,¬UˆÌgA‘Y‰‹ÓaòvTþ~ R§HŽóãš2|‰Œ€LdEäÜÞNó¼ñÍŠЬ46ô«‰R¹3hU"JJì‚&²§o† Åt/܉ĸÖeÑ¿a ­BdžÌ}þÞ…óçÏÃÏÏwîÜA¾|ùP @+V )S¦Ô^ezÀdm¢bb1fãyü´þj—Ì�?»TDñœéµ*‘ù²ºŽŽŽÆ¢E‹àáá�ÐÐP¤I“Fm„   ʶ¶¶èÓ§Z´h¡ý„ia“5¹ó0®‹�bëÙ»èX5fuªˆT)“kU"ófu|îÜ9Œ;V…¬½½=Ò§v$ýàÁøúúbÞ¼yøê«¯P¾|y­b:Àd-ö^¾�~ËŽãô­ÌèP_:Õ*D–ÁêØÜ1€ÉÈMó'o»û<éá9¨2ÛñŠVdy¬2€OŸ>�ãÇ�¿v¬Wƃ‘,™éM²f“%»z? £ÖžÅRïëp«_?¸8 cÓ�“Aô!¬2€.\ˆ3f mÚ´Ú’g$t¥ºL™2X¹r%ììÞ~U�‘#GâСCpwwG–,Ïî5‰éÓ§«1çG�aÀ€ªë[øûû£[·n8|ø0R¤H�ÀÀ@ÄçŸÂ&Kµãümô^z>7ƒñOŸšh]1ŸV!²LVÀñÑ®];˜Õ«W×–¼ÚîݻѱcG5{zÅŠÈ�;·VnÞ¼‰ùóç«ß•5kVÔ«WmÚ´Á÷ß�Ë—/£dÉ’ˆ��Õ^? `²4‘1q»á~X}õÊæÆÂîU‘?K­Jd¹Ì}þÎ}ÄW¯^ŰaÃpûömmÉ‹nݺ… & }ûö(]º´¶ôÕä¦ÁƒcÇŽˆ‹‹ƒ�͋ϛ7¯jKÐfË– ={öĉ'´ê'NĤI“Ô©PDÖæüí‡h7{?~X£Z—ÅÚ>Ž _"3ñÎ,-Tézþøã�QµjU|ûí·?~<úöí T®\9räP-ÕL™2i?õj#FŒÀO?ý„ìÙ³«îc9…éM–,Yòôô&yíСCÕÏž9sFµ ããå�'2W2˹þ¯»±óÂ]ÌéVI�÷¦OÍñ^"sñA]Ð7nÄž={T«·`Á‚øä“OTÇǬY³ð×_©ï cÆŒÁ¨Q£TËùUš4i‚âÅ‹«1áWéܹ3òäÉ£ZßÏ[µj•ê–® ieçÊ• —.]ÒªDæ'ôq4F­;‹)Û}à\67æv­„<Ùê%ëÃ1à÷´nÝ:,^¼XµHƒƒƒÕ$,é²öööÖ^ñL—.]�*U*Ì�;W[ò_DXXþøãmÉ«e̘!!!Ú3"óríA8¾Xx¯>@÷š…0½CýRöê�ub'Õ‚•µœÚ$“¬† ¢º»%|åŠ[k×®Õ^ýÄ�®&fíÚµ 4P§F½í✄EæjÓéÛ°òüÃ1÷³JèPµ V!²NV7 +1Èx®\UKN'’S�®]»¦.y)³ Ïž=‹“'Oª±ÞtéÒ¡iÓ¦êgät§ŸþYu)�=4É+o}(¹}à—KŽ Ù4OdL�ÁÓZ2|‰,€I´€“[ÀdNÎ<ÄÐÕ§°áÌ- n\ #›Û#5¯åL¤° ÚÌ0€É\ü}Ôß®:‰ë±m€ØçÒ*D$ØMD *<2nîÇÑvú^8äÉ€û“[2|‰,˜È„¹—ûðû®ËÿiyüÓ«²¦ã�ˆ,˜ÈDl8ç©^8~=î®U1¸I)Þ»—È‚1€‰Œì~x$z,<ŒæÓö¢vÉì¸2Öí*ЪDd©ÀDFt> -¦íÊ£~Ò¤$þîY™Ò²Ë™È0€‰Œdåa?4�¾n…À½G5Œû_9­BDÖ€L”Ä¢bbÑî�ýøtÎAÎj‡ i­Ð¼\­JDÖ‚L”„Ž^ R­6œº…1­°ý›ÚZ…ˆ¬ /ÄA”Dæz]Åȵgø( {¾­ƒjE³j"z¼½Q°>p?›ç ×…‡Q»d6Osaø˜(1íö¹‡fÓöbÅ?üÞ¹–ö¨Š4)ShU"²f `¢Dâ~èZÎØ‡k÷ñ¦·#¾®[É“ñ#GDOpo@”À‚#Ðnötœs-ËçÆÕ±MÑ´ln­JDô˜(½¨f9o¿p?º”ÁÂÏ«òr’DôJ `¢2Ïë*šO߇{¡‘XÝ«F6/£Uˆˆþ‹§!} GQ1h9s?vž¿g‡ÜXß·¦V!¢ÄÄÓ�ˆ¬˜×¥{¨÷ën¾ú“Û•gøQ¼±Lôž&n¹€q›. 6Ø;¤.òfÔ*D”Ø&²2·CÃeºÿ} ­*äCà†/½30Ñ;P7ÍŸæ…�ïaa·*˜Ûµ’%³ÑªDDñÇ&ЧY»/£ýŸñ0"ÿö«‰®Ž…´ Ñ»ã0Ñ[\½†¯—Ö3·Ñ«N1Ìèô±V!"câ0‘“YÎM¦xâø�`LjWŽáKD †Lô“·ùÀeÆ>HÑú>51 aÉ'"¢À.h¢—…G¡ÉÔ'­Þ¶óa©k5­BD¦„]ÐDdó™Ûpš¸ 7<ÂìξD”hØ&ÒŒX{Ów\†]êØ7¤. gK§UˆÈ±Ldæä~½uô­Þñ›.âsǘ؂áKD‰ŽLVmÅa?uûÀSþ!XæZS>-¯Uˆˆ˜¬Ö„-Ðu¾7R&·Á–Nh[)¿V!"J|&«s> ®KŽâà•@|Û¤8Ƶ.§UˆÈœp ˜ÈŒl9{�¦xÂ/03;Ìð%"£a“Õíqÿ›uYíl±¡_M|éTD«%=vA“Å»ó0u~݃ë÷ÃñYõB˜Ý¥¢V!"sÆ.h"öÏQ8ŽÛ�ˆ¨,ü¼ ׈L˜,VŸeGñÙüCHf£Ã�ïê£]eÎr&"Óa\¶lY¤OŸÚ’'ѱcGäÌ™Y²d�‹‹ nß¾­U�ùóç#Mš4H—.ºté¢-%kwþÖCTüi+ì»�� KÀgLSäΔF«™£ð¤I“P´hQT©RÉ’½¸:ò\øÂ… *ŒS¦L‰±cǪÚÉ“'áææ†k×®áþýûØ·oV¯^­jd½æíõEÓi^¸õ0«zVÃ�-´ ‘i1j{{{cݺu˜9s&"""´¥ÏdÊ” Í›7GæÌ™ÕóZµjÁßß_=Þ²e 5j¤ZÇ©S§ÆÈ‘#1}útU#ë4ríiô\r¹2¤ÆV7'4-›[«™£°t%ÿüóÏØ´iR¥J…äÉ“«nè×¹xñ"f̘�¡C‡ªçÒ]�?ÿ³1½Ò¥K«×¼ìæÍ›ªeüï¿ÿªÐ–.k²,G¯¡ü�Û0aËEüàb�CëÃ!_F­JDdšŒÀ‹-Â�ðã�?bÀ€*<»uë¦U_‰V­ZaРA¨T©’Z&A*Ë BCC_à~~~X±b… á•+Wª°'˱æ˜?OñT³œt«ŒaMíµ ‘i3Z;;;ã—_~AñâÅQ¤H¤M›¥J•ÒªÏDEE¡\¹r>|8\]]µ¥@±bÅpèÐ!í°cÇ5Žü²jÕª©– [óæÍCpp°V!s÷íÊèðçA”Ε›ÜœÐ±jA­BDdúLâB¾¾¾hÓ¦ <==‚Æ�«kž°Ö„]‰ˆF¯:E1¾ÍGZ…ˆ¬ /Ä‘¤ë¸wïÞjÖ³lО={ª �‰‰QËT÷ñÎ�;qâÄ õ3666ðòòR§ áàÁƒo _2‹ö_C�q;‘>u ¸»Veø‘Ùâ¥(ÉlÈE5V¾�²y3bë€ÚÈbÇ."kÆ0Q"“YÎ¥FlÂú“ø¹¥ŽŒhÈð%"³Ç&“6}Ç%4Ÿ¾Ñq:¬é]ƒÿw¢‘9b“Ér[q\ÿueófÀ–N¨S2‡V!"2&“³÷Ò=t_x7ƒ#0¾MYô©W\«=Ã1`¢´äÀ5u-ç4¶É±Ìµ*׈,˜LÆWKŽ ëüèY,6¹Õ‚Kù¼Z…ˆÈò° šŒî|@(jNØ�΃›”ÄwÎ¥µ Ñë± šèÌÜ}5Çï@‘lé°ºw †/Y 0M«ûÐwÙ1”+� »¾­ËYÎDdUÀ”ä¼|î!ÿàõ8põfvú;ÖAºÔ)´*‘u`S’úeÃy´šµ™ÒØÂ£�#¾ª]T«Y0%‰èØ8t_xÃל�SñØÔ¿ªΪU‰ˆ¬gAS¢Ûzæº/>‚ÐÇ1˜þiy|V£°V!"zœMôqúc»?�ˆèy `J0:ý6_@Ý_w¡rá¬ðèS½8Ë™ˆè•8 ‹LÃßö`Çù»p)ŸË¿¬†T)“k"¢„ÇIXdõ6� @öëàs'K{TÅš¯¾DDoÁ¦2lÍi|:×E²ÛaCßšèPµ€V!"¢7aÓ{ �ˆFûÙ0vãy´,ŸW…¯C¾LZ•ˆˆÞ†cÀôÎVõÃWK�AÞ9óºVâ}{‰È(8LV#*&“¶^D»?¢lžŒØÐ¯&׈è=1€)^BE¡­>x¿u?Ž/k�Gßš¨Êk9½70½Õ® w‘©ÿZ¿„å½k`f§ŠH—Š·$"ú `z­È˜8ŒZw�§x¢™Cnlp«‰ö•9Ë™ˆ(!p½R\ljNÜ…ƒWѵZÌíVÉ“ÙhU""ãã$,²8+�ø!½Û<‹‚Ç×5° {U†/QcÓ ÜÜ�ãó‡P¥`Vlt«…æå8Ë™ˆ(10€I¹�Ó½0mÇetw,‚u}Q4{:­JDD �cÀ„Eû}ÑÏýÒØ&W7Q¨S2‡V!"2]&³ƒÖŸC·‡Q³D6lÿ¦6׈(‰°l¥nG ÛüCØ~2ÃZ9`T3{ÞÁˆˆÌ [ÀdvÖ�¸‰|ßxàÚƒplTcZ–eø%1° }ƒ�+O¢åÌ}ø´jltsB‡ÜZ•ˆˆ’» ­ÄÈ(8�ß�S!èW¯¦|ZA«™'sߟ›Dûùù!((eÊ”Aòä/v…âÆ�ˆ��E©R¥`gg§–GEEáâÅ‹xðàlllðøñc4nÜXÕÞÄx®×U|½ôJåN�©>F�Ùµ ‘ùb'€œ9s"UªTðööFîÜ/v‰N™26lÀöíÛ±yóæ§!+á+�ܽ{wDDD¨ß´i“ª½‰5ptlzýuK½o n©ì˜ûYeäÉ”F«™7ðêСƒ Ò={ö`Ù²eÈ•+—VyBZÀY²d�½½=¦M›† ¨å—/_FéÒ¥­žÇ—µðÕ{ap]r;ÏÝÁÐf¥1²™½:Ï—ˆÈR˜ûþܨ“°¤u+á:`À½:÷7&&NNN*°/]º¤ZÂR“Ñ2Žü6–2 Ú?èêOòÄ•»¡ÞÜ?|RF«YsߟóJXfFþ\S¶û`Ðß§P±`fÌìø1*z2SœˆÈš˜ûþÜh]ÐôîB#¢Ñi®7†­9ƒVòb³›׈ÈL1€ÍÄ)¿`4™ê…å‡ü0ª…=Ü¿¬ŽÌv¶Z•ˆˆÌ Ø ŒÙxÇlÇ݇�qùg u.�œåLDdÖÀ&ìVH„º–óˆÕ§Ñ¹Zx©Çs{‰ˆ,'a™¨£×ÑcÑœ¸ˆ9®•Ñ£VQ­BDD‚“°(AÅÅé0}Ç%Tµ)“'ÃéqÎ _"" Ä6!7¡Ë|ou-çþMKcC¿špÈ“Q«‘%a´‰8çi^¸‰_Z9``£’Z…ˆˆ^…]ÐôA¢bb1Úã,ì¿ß‚BYípjTC†/‘`‘œVÔvöŒß|]«ÂF·Z(™;ƒV%""KÆ6’—ï« kl:s¿µ-‡…Ý« ­m ­JDD–ŽlƒW�DÍ »‹››£WÝbZ…ˆˆ¬8 ]»†.ó¼1qÛEôÖ‡®×àzÈžþíwp"""ËÃYÐId÷…»èµô.øcÅ×5Ñ®R>­BDD é�¢ccñãú³¨ûËä̘ ×~mÁð%""pbºp;ífÄ÷g1¼•<ô-ß‚Yí´*Y3vA'’— Íìýx�ÉŸ–‡k­"Z…ˆˆ» éá‘1¸òjŒÛ��òeÄ…Ÿš0|‰ˆè?À èúƒp´œ±³v_A¯ºEÕ…5òeI«U‰ˆˆža'�-gnÃyªö^¾�??«„™�*"™ ošODD¯Æþ@q:¾ú먺‘‚]ªäšÒ�«ÔªDDD¯Æþço=D›™û1Ïë*†4.ÏAu‘Ú6¹V%""z=΂~OkŽûã›'qí~86÷¯…ƹµ %΂¶2¡�£Ñùq´žºö¹3àÞd†/½3ð;�sz;ÏóÆÔ—ðKû�ðOïÈ–>•V%""Š?ð;°K�• fÁÂÏ«`¨³=R§äx/½Ž‘Yâ0½30‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""2« à)Rh�ˆˆÈœÙØØh�Ì“Õ]ŠRþ`™3gFLLŒ¶äÝÈÏçÌ™wïÞE\\œ¶Ôôp=^²dÉ�#Gܹs¦ü±áz&¼4iÒ UªT 1éuµ–õ”ýFll¬z¦¾›#« à„�>}z„††jÏL×3áq›&,sYÏÍ›7ãï¿ÿÆÜ¹sµ%¦‰ëi^8üäèËp=·iÂ2—õ”Ö–©÷Ю§ya¿si­q=·iÂ2—õŒŒŒDxx¸öÌtq=ÍKòÑzÚcŠ'{{{”)SF{fº¸ž �Û4a™ËzÊmïd=óå˧-1M\OóÂ1`"""#`4‘0€‰ˆˆŒ€]ÐÏ‘IóçÏÇ•+Wкuk899i•¹»»cß¾}¨]»6Ú¶m«-…:mìØ±ˆŽŽFÇŽQ¾|y­’°Þ¶ž2ÃpçÎ�ðôôT“š6mŠ:uê¨ZPP�šú/?+çaÊyxK—.UµÄ çxNš4I]¥{÷î(V¬˜Vyâñãǘ={6.\¸ ÖçáÇêßfkk«êÇ�WÛ;eÊ”6lìììÔò„ö¶õ<{ö,æÌ™£¶§¬§œÇX¡BtêÔ 7nÜÀ¯¿þªÎ-—¯Â… cèСÚO&œG�aË–-Ø¿?>þøc´k×É“'תÏÈßÿçŸVÛÒÅÅå…÷GRlÏø¬§L¾Ú¸q#¼½½Õ©H:t@©R¥T-©¶§Æ’%KÔÿ³yóæê3ý2ùŒŒ9RmWYŸ¼yóbĈê} 6mÚ¤þ-òyïÚµk¢\ì'>ë¹uëV,_¾©S§VÏ3eʤþþU«VUµõë׫ƒ¼‡[¶l‰-Z¨×%$ù¯ZµJígŠ-Н¿þZ«üמ={°fÍõY“Ï\Ú´iÕrÙÆ‹-‰'ЬY34iÒD-·Dlkä8¤gÏžjÇ!oœÎ�;ãàÁƒZõ™1cƨ�­T©F�¥ÂàfÍšêÃ*oüêÕ«#**J«$œø¬§¿¿?þøãµc+T¨�zsˇOÜ»wƒƧŸ~ŠF�¡qãÆjyb��¬lÙ!È)+VÔ*ÏDDD`À€øä“OԺȗa&á\­Z5µ=e»ÊöM ñYϬY³ªÿ¿ÈÈA�$ÈÎF\¼xQ…³�¬ÿ«~>!ܺu 6lÀõë×1}útµ3}ù»Êº(P@=PË“j{Æg=wíÚ…þùêyåÊ•U0ˆ¤ÚžâÌ™3ê ÀÃÃãégäer‘ùwH˜ÉúT©Råiø®^½Z…ÌG}„… ªÏVbˆÏzÊß»^½zê=Ú¾}{µŸ’uŠ—/_VÁ+ï 9¨I ²O”÷™üÍV¬X�=zh•íÝ»]ºtQû09'¸W¯^Z4h,X ¶iïÞ½±víZ­b�¤L:ݱcÇteÊ”ÑéA=×ï`uú�•zlàçç§+Y²¤ú.Ž9¢Ó‡œz¬oUêôGûê±ÐuúpÔž%œø¬çËfÍš¥svvV�/]º¤Ó·Ft7oÞÔùøø¨e‰å—_~Ñé�`µg:]›6mtú¨öì ý‘½ôÀ¨uÑïxµ¥OtìØQ7dÈí™N§oa¨oB‹Ïz>Oß QÛÐ`Û¶mº9rèô>º«W¯jK�¼äo®?ÀÓ–<£ß9ëråÊ¥=ÓéþüóO�£££zœTÛÓàMëù2}(è~ÿýwõ8©·§�í2pà@íÙ‹ä3£?(Ô]¹rE§1méú Óé[¿êñƒtöööÿy'¤7­çóô8º‚ jÏtº¯¾úJ§<õoзNµ¥‰O>Û¯úÿé[åOß{²/Óˆéô:___]éÒ¥Õ¶ú9]‘"EÔcKİFHê’ˆ†îéÓ­zl Ý@3fTÝ�¢xñâOÏc”.]9Š7hذ¡:bMhñYÏ—Iw´¡RZ—r,Ý�_|ñ…:N,²M¤Åe ­‡—[ëú÷ êÆ—.S9Ú­Q£ÆÓKÓépРAõXÈïÒï µg '>ëù¼Å‹¿°^ÒÓ ‡áÇ«VÒ�?þ¨UǛΟ”í#­yƒºuëâܹsêqRmOƒøžç)]ŽG�UŸ‘ÔÛSH«íud8DºÒe=dhÉÍÍM«<é./Q¢„z,û…téÒ©ýDbyÓz>O>ßÒ’4Ð7¨Z¨²/�®ßÄ&Ýò²�”——Év3 9ȾL.Izûömµ?•¿¿a+ëý¶ý›9ckdüÖjBK÷èódG! ]¤òÁ4ŒmI÷™áM#dl-1N4�Ïz>oÊ”)з"žvñÈyw2¾"Ýe»wïVÝ…(‰Avòa2xÕ6‘óõGÂj�¶oß®^#a,d SvhríØøî€ÞE|ÖÓ@†dçÕ·o_m ÔØŸŒ±É6•ƒ.¿<|ø°VMZò^xþ}(ãj2'AÈ{')¶ç»’ñ_ë3™)mO‘'OÕe.ë#ãÚ+W®Tá"¤{ݰ½ ûÃ~ÂX¤ëÿÀ�/Œ¿ê[ÀX·nþúë/È¥~úé'5N›XdAô¥{ùU^~ŸÊ{QÞŸ†á Ã>Vöo†÷¯%bkòçÏ�û÷ï?}ÈÑX®\¹ÔcÙ1ˇË0V%㩆֚¼VŽê d NŽþZ|ÖÓ`ÆŒ˜5k–jùHË]È[þBƱ¤õ)Á—d½|||´gÀùóçŸîd dž…nݺ©ñm!G¿ò3r$,;ÄŸõ4�–±üýŸŸØ$;ù²S)W®œ³K,²£—K8vøÏ“ B×®]Óž=igÏž]=–÷cRlOƒ7­§�L”›£È˜ARoO!ïCøîËä3c˜ $ÿ–ZµjáôéÓê¹Ì �ƒX!ï ù\>_‰áMëi Ÿ{?ž¬¿áï ½"Bö_‰ÁËËKõf:tEŠÑ–¾(wîÜO·›l³¨Æ�ü½å¹a+û·lÙ²©ÇIú¡I§ Pãk×®UÏ[´h¡6l˜z¼bÅ �¾5¦Ó‰éêÔ©£›0a‚Z.ã¼ 4P�Oœ8¡Ó‰îÎ�;:}«B� ýóÏ?ª–�Þ¶ž!!!êñÔ©Su•*UR�Ÿ'c@2¦%d,S¿óÓyxx¨ç MÆòô�¾5©Æ�ôºãÇ�ëô<ÝÒ¥KÕkôGë:}(¨Çú‚NºiÓ¦©çú–†ÿ‘í)ÛUßJÕ�:uJÕR|ÖÓ S§Nºo¿ýV{ö„>”ÕX¶�qÏ”)Sêô;hõ<1Èø^õêÕu¡¡¡ê¹lCÃzêCU§o5<ýËë&Mš¤'Õö4xÓzêw°º/¾øB�M¾,©·§pss{alUê}!ä½p÷î]õXÆ€õa¦þmBæy|þùçê±Ì©R¥ÊÓuO oZO!û© *èôÕÚ’'vïÞ­¶¹øá‡Ô¾A^›ÐÎ�;§Ó¼ê<==µ%ÏÈþPêBö�²ïk֬ѕ-[Vmcù V®\Y7oÞûì3õØ1€Ÿ#¡&ôGߺ–-[êÂÂÂtúÖ„Nß‚Ð�‘Û3>ë¹xñbµ\Ö#C† ê±á@!©¶§�I?ϯg–,YtûöíÓ 0@§oÅ©×üñÇj}2eʤ˙3§NßZWË…L«]»¶ÎÖÖöµÁ“ⳞB&„Éçèå‰O5kÖTÛY¶©<–ƒŠÄP´hQµ~òÿ‘ýS±bÅžN\“F‰áo¨sqqQ¯)T¨Ð cÙ'È�¸lS}k]5:,Ï&""2Ž˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€Ldäò‚ÿý·öìíä Br{Å·]—X®’¶mÛ6í%%0‘?~¼ºG|¥K—NÝ6/Ís×Û}¹ÌŸÜÖˆ’/ÄAdäf†;oÉuƳdÉ¢ZÅ©S§FÙ²eÕ}_e¹ÜÜ\®ï,°—ûBËý  �%”å"ùríëç¯S.wø‘ë?OV"J| `"çîî®nP.w™3gV·¾,X° ºð}óæÍ‘2eJœ:uJµ’å4rÃ}¹•Ÿ§§§º«”Ü¢Ðp»?évþý÷ߟފR~¯Ü¾N–QÒa4‘‰“[àU¬XQ{öä6˜uêÔÁœ9s0yòdüöÛoèÔ©6lØ BY¾KkWîÃ*wò‘p–;Ì|ùå—X¶l™zíܹsµßöäöÒ2&¢¤Å&2qÒõ,�j ÝÏ5jÔP�ånrcýÂ… «çE‹ÅåË—_¸ ÜBSn~îàà ž—.]ê±�ßmì{ØY#0‘‰³··W÷õ5�Q#C`Ê÷¸¸¸§÷‡–ÇrÞ—Éòçæù×H`îLDI‡LdâÚ´iƒ-[¶hÏ€¨¨(¨B¾Ë$+ÃT W cy.Ë¥þüc!uyn ¿Û0>LDI‡Ldâ¤[Yf3ïØ±C=—1Û 2¨ÇiÓ¦U]ËÉ’=ù(ËëòçϯÆ~e¹|O•*•z,cÁBN=2tG‹ &¨IYD”´8 šÈ H+õÌ™38p ¶$aÈ,j™´5nÜ8m %0‘™�S‹2f̨=Káááªe,3«‰(i1€‰ˆˆŒ€cÀDDDFÀ&""20‘0€‰ˆˆŒ€LDD”ä€ÿ3öL] IEND®B`‚unyt-3.2.0/docs/_static/mpl_fig3.png000066400000000000000000000404751526544257300173260ustar00rootroot00000000000000‰PNG  IHDRàh�7( sBIT|dˆsRGB®ÎégAMA±� üa pHYsÄÄ•+8tEXtSoftwarematplotlib version3.1.2, http://matplotlib.org/%‹¡J@~IDATx^íÝ \Í÷ÿðW¡�–‘KÈuD.¹ä5—m†™û-~cæ¶1ÿùÙl¿æg„as‰æ¾™ûor ‘f.‰F¢BJºèþïýñ�˜ëætúž^Ï=<:ßïûT;Õ9¯ó¹|?³Ì, ""¢\e®}$""¢\Ä&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""2³Ì,Úí|¡_¿~°´´D>{ØDD&%==5kÖÄ'Ÿ|¢�ÑŸ|Àfffسgµ3DD¤7… ÂÛo¿�„„íŒþä».^¼8bccµ#""Ò«—^z ·nÝÒŽô'ß�gddh·ˆˆˆŒ‡“°ˆˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20媤”tDÅ'kGù˜ˆˆrMLB z/>‚þKŽ".)E;›?1€‰ˆ(Wü~9<bëÉkhëXÖ… i•ü‰LDD÷ù–4ýê7Ä$¦àÒôŽÿFM˜›™iÕü‰LDD�„¡+ý0å× nQ?n�Š%ŠjÕü-ß톤÷Ý3ˆˆôâhðM ýÁ§/Ecù°¦Ô¢ŠVy1ôþznÐŽ‹‹Ã¹sç�ššŠ¢E‹¢aÆê|RR.\¸€øøx888 D‰ê¼Ø½{·Ú0_XXXÀÖÖÕªUƒ¹ùýƺlÄ„ÈÈHµ±¾ìpÔ¤IXYYi÷x<0‘a¥gdÂóAøpµ?šÕ,ƒåƒáìKZõÅa?ÁæÍ›áåå¥~H!!!*$¿ùælß¾3fÌÀ�0oÞ<Œ5JÝ_‚´S§NjÏÞÂ… cãÆ�puuÅÖ­[U=›oóæÍQ±bE”+W)))˜5kìííµ{<˜ˆÈpB¢ðñ¦SXw,¶wÀ'ík¡D1 ­úb1€Ÿ@Z¸Ò*5ÓÚåcpp0Ê–-«Z±C‡EË–-1räHUX­Zµ0iÒ$ôïß_;sWTT” j fi!?0‘aœ ‹Eçy>¸q;_w¯ �¶5´ŠaèýõÜ “°Š+†èèh>|³gÏÆk¯½†*Uª H‘"ª&ÝÊ�Ëÿ³gÏ"44ô/á+äóä_·n]Õ öðð@rò£/êǦM›TXïÚµK}o""zqcÒϧQÊnT/] SÚ<|M�ÁgAbêÔ©X´hÚµk§�½ëI�ïÉ“'cĈÚу$¼.\ˆË—/ÃÇǾ¾¾ðôôÔª’_»v­ áuëÖÝ_&"¢îZlº/<Œovaˆkeìã†jY!LO—«³ «V­Š+V¨q]ѯ_?¸¸¸ü¥ Zºlll��� &o=ÍÊ•+±lÙ2ìÝ»W;óxì‚&"z1öEÂcÍï¼�oûÕÇP×jZ%w° ú """´[w%&&âÎ�;ÚÑݮ䜳›³IkYB:gøJó¥K—T«YfUÇÄÄhÀÛÛ•+WÖŽˆˆÈÐ>Xw­ÿ»È4Ã�Ù�s=|M�A[ÀãÇ�ÇÅ‹U�^½zŽŽŽ˜?¾º4Iº—�=ŠR¥JÁÍÍMM¶’K’$¤e¶´÷éÓGûJÀ±cÇЫW/øûû«Ë›ÜÝÝagg§ZÉòHf[K ûiØ&"úû.ވǿ9ƒŸŽ]Á¸×j`J—ÚxÉHKJêýõÜ |ýúu5ëY./²¶¶†“““:/?0???uNfCËÿ‚L¨’ciÝJ@KËuÀÙ$˜¥,3£åë¨ –YÖÕ«WW¿ˆgÁ&"ú{v\èÕ'páê-lòpE·嵊q0€u†LDô|’ÓÒñŸ­g1uó´q²ÃŠÁMQáeã_Q¢÷×sƒÏ‚&""ý:~ ï,<Œ©ÛÏáÓîuñˈy"|M[ÀDDôH‚n ×w¾HHI‡gïúü‚×rþ§Ø&""“r+)kNàÕ¯÷£A¥—q~jû<¾¦€LDD÷\ŠŒG×oa©Ï%Œnû ¶{¸Âî%v9˜ˆˆ”m§®¡ƒçA½tËÜ�1·O­B†À&"Êç2221ÄË�æù ¸•â<»¡WãŠZ• …LD”�\�C—oáÇ£—ñ°o|+,ÈhÈ œMD”O­;~ã7œBèÍDìþ ^«UZ«ègA‘®Ä'§aÔ*ôúö0œ*GÔœ®º _SÀ&"ÊGŽ]ŠÆ[ó|ðÝþ`|ݧÖoŽV÷—ý¥ÜÃ&"Ê'¶œ Ç›sâTxVk†ño8À²`­J¹�LDdâ¢nßÁ`¯cè2ïÚ:”ÂÅ©ÐÃÙ^«’±0€‰ˆLX@VkW./Úø{8&v¨…µÃ]`S”]Îy˜ˆÈDÉž½Òå�5C›bZ÷ºZ…ò0‘‰IIMG÷‡ÐgñQT/c�hÏ®èX¯œV¥¼‚LDdBü.ÝD;ÏØ�éÝë`÷87­By â "2ßí¿ˆ)[Î"6)û'´F“Ê%´ŠiâBDDdTÑñ)è·ÄÃ8ŽV5K!vnW“_SÀ&"Ò1ïsè8ï 6ú‡aÁ€FXõnS^Û« `""�úÑ7o/8Œ+щØ<¢Þoõ ÌÍÌ´*åu `""� �IÄ;‹aÀ’cx»Ay\šÖêÚiUÒ 0‘Žø…ÜD{σØ{._v«ƒeƒ›À‚Ûê’Akû÷ïG½zõP¾|y4oÞÑÑÑêü™3gСCØÛÛcË–-ê\¶×^{ eÊ”ÁË/¿¬>oçÎ�ZåA‘‘‘xë­·P®\9,\¸P;KDdº¸ˆÎó!&!›F´À¤ŽŽZ…ôÈ lee…Õ«Wãòå˘2e J–,‰äädÄÅÅaÀ€pppÀ•+W´{ß%÷ݸq#bbbŽöíÛk•ûäóÛ´iæžžž˜?¾V%"2- Éixí›}xÕïhVµ$ÂfvÆ«5JiUÒ+ƒ°³³3êÔ©ƒ‚ ¢]»vêœk‹-зo_ØÙýuÌ">>sçÎÅW_}…³gÏjg Œ7%J”À—_~ ///­údfœ @D:²?èZÿw/~¿ ÏÞõñóÈZ…ôÎàÒš•‹¥%0÷íÛ‡²eËj ==]»u_Ïž=Ѷm[˜››«®|ÎÃBCCakk KKKu\©R%„……©Û[¿~½ ]X[[£tin:MDú0cç9tûö0þ¼‘€ƒZcdëêZ…L�Á¸[·n*0%ˆ¥Õ{óæM­òhÒ�üÞ{ïaâĉøþûïU×õ?Ñ£GÈb_Òm}ûömܸqC«åM×â’Ðiîü߯ÓèÞ¨b<» vy­J¦Âà,-Yi}vîÜÅ‹‡···V¹[+PàñŒK+7%%©©©Ú™»dò–¹Ô„ŒW¨PAÝ~š|¶ò&é̯„£ÃœƒØÿg–iŒÅ�³ÎrèÌ4€e\V&RI€ÊlgÓ•qa!3¢e¼W>&&&"##C�¯X±IIIˆˆˆ@¯^½Ôd«B… !88cÇŽU÷­Y³¦šÌ5gÎõ9“'O†»»»úºDDzõ­÷ô^ì‹„ätlíŠ�Í+k2E ` ^777T©REÍRŽ��U·}}}Õ¥F2ƒyÑ¢E¨_¿>N�:¥.=Z²d ªU«¦>ï»ï¾S¬„„rHHˆ ^Ë•–´��ááá�Ñ£G«ûéMpd<ÚÍÞ�Q?�À�UñçWàÊYÎ&�»!Ñþ Hük¹RÒñqûšû'Z=+î†DDDˬÝAèöí!˜››á×Ñ-¾ù [ÀDD¹LV²zcΜ ‹EÏFöXùnS­Bσ-`""zfÛN]E˯÷",&ß hÄðÍÇÀDD¹ä“�§ÐgñQÄ%¦àÈÄ6pw©¢U(?bØ¥¨¸eµzgý/C]«¨µœ+ÛÓª”_1€‰ˆ hͱËè0ç®ÞÂê¡Í0«g}­Bù˜ˆÈ@¦mÄàå~°´(€Ýc]Õ²’DÙ8 šˆè ¸‡¡?DZK1ø¸½¦v««UèEâ,h""ºgÇ™kxcö\‹½ƒEý2|é±ÀDD/Èg¿ Ç¢#(cm‰m®x×­ªV!ú+vAýC×b“Ðú¿û“÷•ðmßFZ… ‰]ÐDDùØzÿP´˜á�”ô ¬Ò˜áKÏŒLDô7�øÑƒ–ùÁ¢€9}Üï4²×*DOÇ&"zNg¯ÞBƒ/vãߢð†Î}ÙvÅ‹hU¢gÃ&"z‹ã͹y;ë‡7Ç”.µµ Ñóa=£I›NãýU¿£|Vkw×87t¨c§UˆžgA=…H4¯ðCÐµÛø,«Åûji2&΂&"2aüÃðÆœƒHI“YÎM¾ôÂ0€‰ˆcܺ?Ðw±/ê” ;Ǹ¡W“ŠZ…èŸc4ÑCB¢âÑbÆ^ÄßIèÖÕ0õízZ…òvA™�å‡.¡ùto/j�ŸÞkÊð%ƒai,9Ša+ýaÿrQøLh�uÊi¢Ï ]Ðqqq8wîRSSQ´hQ4lØP�OJJÂ… ”(QB�/^Ä�7 ÿ[µk׆���V¹/==AAAˆŒŒT÷ËÈÈ@“&M`ee¥ÝãñØMD;~)}—ø"*>ÿîèˆÞ¨¡U(/Óûë¹AxóæÍðòòR?¤��’ß|ó ¶oߎ3fàÀ�˜7oF�¥î/?ÈÖ­[ã•W^QÁzýúu,[¶Lç$ÁÛ¼ysT¬XåÊ•CJJ fÍš{û§/Ç&¢œæüvÓwœ‡uá‚X:¨1Üj”Ò*”×1€Ÿ@Z¸Ò*533SÇò188eË–U­Ø¡C‡¢eË–9r¤ªKK944U«ÞÝ«ÿþ(_¾¼ 뜢¢¢Ð©S'lݺ¶¶¶ÚÙgÃ&¢l£WŸÀü½¢]í2XЯª–*¦UHôþznÐ1àbÅŠ!::‡ÆìÙ³ñÚk¯¡J•*(R¤ˆª™››«–n¶B… Ý _‘˜˜ø@÷t6ù<ùÁ×­[Wµ‚=<<�œœ¬UŽM›6©°Þµk—úÞD”¿ŠDõO¶cÙ¡Kø¶oCìû*×r�Á'abêÔ©X´hÚµk§�½ëI�oé¾À°aô3÷Ix/\¸—/_†��|}}áéé©U$-êµkת^·n,--µ åG? Aǹ`U¸ ~z¯F´~pˆ‹(·äêuÀÒº]±b\]]Õq¿~ýàââr¯ :›´V¥ûùÊ•+ª¥û4+W®TcÅ{÷îÕÎ<» ‰ò©¬—º¡+ý±ô`0:Ö³Ãâ��QÖ¦°V$=bôDDDh·î’.å;wîhGw»’å_N?þø#&L˜€k×®=¾ÒÅ|éÒ%Õj–±â˜˜­x{{£råÊÚуÂãðòØ_°é÷0Lë^¿Žveø’Ñ´<~üxuY‘\‚tõêU8::bþüùêÒ¤#FàèÑ£(UªÜÜÜðÙgŸ©Írßúõë«K–$d»té‚AƒáرcèÕ«üýýÕåMîîî°³³CBB‚z$³­sŽ?[ÀDù‹L²úôçT/] 3{8q–³ Ñûë¹AX.#’YÏr�®µµ5œœœÔyù�ùùù©s2Zþ¤faa¡ÎËli¹´Hj2ÉJ.C’k‡åkÕªUK}=– –YÖÕ«W µü$ `¢ü£Ë|l;} ­k–ÆÏï·Pã¾d:À:Ã&2}ûƒn ïâ£HϾìêˆw]«i2%z=çR”DdR¦n;‹·FI+ lÝ‚áKy˜ˆLBrZ:{Å¿7ŸQ]Î;Ƹ¹ò_× Ê+ØMDº·ãô5¼ûÃq$$§áÛ~ Я)¯ŠÈØMDd$™X°÷º-8„Š%ŠbóÈ _Ò 0éÒ�Ô4ô[z#ôÇ;ΰmŒ+Z;”ÖªDy˜ˆtçhðM÷øûÎEâû�Îøñ_ÍP¢¨…V%Ò0éFFf&fìD›YûмZIlÝC_å,gÒ'NÂ""ÝhûÍ>ÕêíÖ°|8> KKKlذÓ¦Mƒ¿¿¿v�dz±±QND/Þ­¤»]Îs~û}›VÄ]ê Z©ûÏ]¢‰cÀO±qãFõC²°°À¾}ûî…¯HOO×nÝuòäI”)SF;‚ cyðð844¶¶¶*|E¥J•¦n?lýúõ*ø%x­­­Qº4ÇŸˆ !6)®3öbîž øàõXõn3†/Ñ<€»uë¦S‚¸oß¾¸yó¦VyºÑ8ïÑ£‡ú:Òê½}û6nܸ¡UˆèEY|à"Ê|ðkÖ›ÝLìß ³zÖ×*Dô8`sssÕúìܹ3Š/ooo­r·V Àýq!'''DDDhG@LLŒj½J :'™¼%AžÝU-cÌ*TP·Ÿ&{܉L^rj†,?†ÑkþÀ뎥±s¬ܪ—ÒªDô$ `///„‡‡#55UÍv>{ö,œ��UMfD˘¯|LLLDZZšçµ³³Ã¤I“TP6 ­[·V烃ƒ1vìXußš5kªÉ\sæÌQ!=yòd¸»»«¯KD¹ãBD¼ÚDÁëp&´«��ï» ¬M­JDOcЖàussC•*UÔ,娨XuÛ××W�õÊ æE‹¡~ýú8uê”úœóçÏ#00P�ÿ8Ó§OWç“’’¢‚WÆr¥%íããGGGxxx¨ÉZD”;æî B�ÏwáÏÈxœüô |ѵ.g9='®„EDÏìf|2¦íĬ]AèÕ¤"¦¿]•m9ÑŠŒCï¯ç `"z&ç¯ß‚»—|ÏEà›þÎðh[̹ƒ�Þ_Ï > ‹ˆôoù¡K¨ùñ6$&§áØ”ö÷z †/Ñ?Ä&¢Çºqë†þpƒ—ûaXV‹wû74®RB«Ñ?Á.h"z¤+7ðúì¸�É�jã³ÎŽZ…(o`4™”Œ¬÷äÿÝ}Uÿo;Jµ€ß¤×¾DÀ&¢{âSÐw±/þ½9ÝUÀÎq®hPñe­JD/˜ˆ”“WbÑaîA¬?†ÿt©�ÕC›Á¦ˆ…V%¢�LDøÏÖ³pžú¢n§ xڛ߾&g9˜(»›„÷WúãÓ_Î`�K%ø|Ü•JZiU"2$΂&Ê§Ž‡DãÝŽãäÅh,ÖCZTÑ*DúÀYÐD¤+™˜ý[¶ … @àô7¾DFðذl–ýúu,XP;óWj§"ÙA/ئüL®íýxÓiütìŠZÍjÒ›µP²˜¥V%Ò½¿ž?6€e§¢ºuëjG�'[~ùå—ÚQÞǦüêtx:Ï;ˆëqɘþv]ŒÍ `"=3Ù.hÙ§wĈj_ÞÇý;wîÂÂÂ´Ï ¢¼(%-Ÿm9§)»PŶNOyƒáK”<¶,�ZµjigþJö÷½rå êÕ«§�Éûئü$âV†þà�Ý7зi,ì×–…¸o/™“mˆøiii¸sçŽvæAï½÷Š/®«ð%ÊO|.D¡Ã츎¹}œ°Ì½ ×(yâ,è�7¢]»vÚÑ}ï¿ÿ>¶mÛ¦Q^óÑú?ðê×{‘š‘Žÿ} Ãܪi"Ê+žÀŸ~ú)J—.�¡C‡jg€‘#GÂÏÏOMÒ"¢¼%8*ý—ŬÝAÝæø|Ü/[q9I¢¼è™âhÚ´)ºví 333,\¸êò#=â0™ª=�×1bÕ �ÅÆQ-ñv£ Z…È4éýõü‰£œ\ïÛ¦M„„„¨cùížúÁ&S“œ–�iÛÎâóM§Ñ¦®–i ûE´*‘é2é^ºt)æÎ�«&[%$$ÀÜÜ… V“³"##ñçŸj÷Ô0™’Àë·0qÃ)lùã*>íìˆ�Ú9Àºp!­JdÚL:€e´¬†U @¾BZÃ"55U«VU·õ„L¦Bf9÷\t·ï¤avïúx·¥þž�Dÿ„Éð�7Ô5¾ÎÎÎÚ™¿Š‹‹ÃÙ³gѼysí̃¤.‹uHX-Z 6Ô*P xH—¶Œ%ׯ__; ìÞ½––w—Ƴ°°€­­-ªU«vï €�e2ƒ‚‚T+\þ÷åMA“&M`eõô]\À¤w·ï¤âÓ_0ç· t¨k‡%ƒœQΆ]Δÿ˜lïÛ·cÇŽÅüùó‘’’¢‚.§B… áÈ‘#8v옺\éQ6oÞ ///õC’°•�üæ›opíÚ5¸¸¸¨@–—·F�­¾GÇŽU—·tuË×uuuÅÖ­[µ¯x—¯„~ÅŠQ®\9õÿ7kÖ,ØÛÛk÷x<0éYÈÍükùqøßÄ�–•1¯Oƒ¬³Ü·—ò'“ àS§N©ð«P¡Â½nçœdFôíÛ·1pà@L�:U;û ™¨%­R¹¯��²zÖ€РA|þùçHJJR÷¹zõ*Ê–-«î—MVá’µ¦û÷ï¯�¹+** �:uRÁ,-äçÁ&½Úqú:Æ­û¡Ñ X2Ð}šVÒ*Dù“Éð‹róæMœ?G�Å®]»°sçNÕÅ,?´ì®æfÍšaܸqèÕ«—:Ò2–³„øÃd™ÌÞ½{ãôéÓª%.—HÍœ9óÞ×Ë)<<\}oéΖûÊYb“H/dûÀá«ü±ä@0W. Ÿ‰­P¨W´"Ò{?q!Ž!00Pµ�-Z„öíÛ«Ô2†›3,¥œ˜˜¨Ý5yòdÕ5ý(2n,×#_¾|>>>ðõõ…§§§V}Phh(Ö®]‹M›6aݺu� i¢¼*ðê-¼½à¼]Âÿ½Y û'0|‰L…Á[À9U¯^K–,Qã¼Ò2~\ XÞÑØØØ¨KŸdòÖÓ¬\¹Ë–-ÃÞ½{µ3�Ç.hÒ‹ þaøhýI\¾™€ÿ�sÃkŽÑåwl?ÁÃ]½2f,Áúúë¯cúôéê\rr²šÈåææ¦Ž…´–eü9gøÊý.]º¤&jɬjY$$›··7*W®¬é[BrƬ9�ó|P§ÜKˆšÝ•áKd‚ Ú?~<.^¼¨‚T&Y9::ªYÕ2 ºE‹j"–tQ>ês¤+ZÆ~eòUŸ>}Ô9!!--duy“»»;ìììT+YÞÉlëg¹.™-`ÊËŽ‡Dcâ¦ÓØ{]cÚVçFD�ÁIXO ‹x«YÔÖÖÖprrÒ*wÇfe ÷á뀥u+×Ë2—2q*›³´€ef´|=Y�Z‚XÆ�¥k[~Ï‚LyÕ¶SWáîå—õ÷ ,ìß=WÔ*Dô( `�aS^•�Œ‰ëOa©Ï%tw® .1*^”;=�Þ_Ï > šˆ/ðj:Ï=„µþ¡ø¸½6 waøå `"#YçŠ7çùàܵ8¬y·¦¿sˆ†ˆL˜(—¥¤¥£çw‡Ñ{±/ª”´BÌÜnèäTN«Q~Á&ÊEþ!1èàyÛN]ÃÔnuðÛ¯j"Êo8 ‹(—,9ŒÉ? :1û?j…fÕJj"ú;8 ‹ˆž(6+p.=Š¡Ëýðªƒ-bçvaø˜È�öE¢ã\¬=Šùý�±êݦ(R¨ V%¢üŒLd kŽ]A×o!$*›G´ÀÈÖÕPÀœO9"º‹¯D/ØÕØ$ô\t}û¢k};O{oÖµÓªDDw1€‰^ ÿËÑj–óoç"ðE—ÚX>¸)×r&¢Gb½ K£Ó¼Cˆ¼�ŒMï»`r§ÚZ…ˆè¯xÑ?”˜’†® Ã;0êØá×Ñ-µ /C"ÊÇþ‰6ÿÝ¿à›˜Ý³>׈ž[ÀDÓÌ]ç0}Ç9¤g>·F�ò6Z…ˆr[ÀDùÌõ¸;è2ï &l8…n * zN†/=70Ñs�Mó;Ì=ïó‘XîÞK9ÃÜÜL«=;0Ñ3Z¸ïz}ï‹[I©ØêуZTÖ*DDÏ�cÀDO�‘«Ç®3×ñ~«Wðm¿†Z…ˆŒ‰cÀD&Lf9·Ÿs'®ÄbVO'†/½0 `¢Ç˜ý¿ tùö¤‹è×Q-1îu‡»"¢€]ÐD‰IHA{Ï»­Þ�*`ÕÐfZ…ˆòvA™��g®Ãmæ^\¹™ˆEý1|‰È` Àû÷ïG½zõP¾|y4oÞÑÑÑZ˜2eŠ:ïææ¦�¹ëµ×^C™2eðòË/«úÎ�;µÊƒ"##ñÖ[o¡\¹rX¸p¡v–èïû÷ϧÑë»#¸™Õ>üm0¤e­BDôâ4€­¬¬°zõj\¾|YnÉ’%Õù™3gbÕªU DÏž=Qºtiu^È}7n܈˜˜„‡‡£}ûöZ徸¸8´iÓ...8sæ <==1þ|­Jô|d¿ÞVY­Þ;Îcp‹*¸:³3ªØÓªDD†‘«cÀfffˆ��‡ƒƒ¶mÛ'''u^Z¼ëׯW­a;;;¸ºº¢~ýúèÚµ+Õ}ròóóÃðáÃqøðaXZZbÆ ˜6müýýµ{<ž��� p"±Ö/S¶ âÖ|7 z8Ûk"Êë8üÒš•’……|||T«øúõë÷ÂWÔªU !!!ê¶´ˆÛ¶m sssÕÂÝ·oŸ:ŸShh(lmmUøŠJ•*!,,LÝ~˜»¿¯µµõ­mÊß¾Þuƒ–E¡fØ5Î�áKD¹ÊàÜ­[7˜Ä}úôQAY°`A­úWÒ�üÞ{ïaâĉøþûïU×õ?Ñ£GH#_Z½·o߯�7´ åW�WãÐr†7>Ùxc_¯ŽSSÚ¡qåZ•ˆ(w<€¥%+­ÏÎ�;«–p@@€š8uêÔ)íY/ˆ��¨\ù¯ËúI+7%%©©©Ú™»ìííqóæMU2n\¡BuûiòÙUWô�]×ñÆœ�N‚þ 1ýíû=1DD¹É ìåå¥&RI€nÙ²E…¯³³3FŽ©Z¦Òw/3˜%eüWZ©+V¬@RR"""ЫW/5ÙªP¡BÆØ±c‘˜˜ˆš5k"99sæÌQ“µ&Ož wwwí»=šŒõ¾³ðJZY`›GK s«ªUˆˆrŸAX‚W‚µJ•*j–rll¬š ýᇪp• •YÒÙÝÂ2>¼dÉT«VM}Þwß}‡/¿üRÕ$”eœX‚WÆr½½½Õ˜²LÒòððÀèÑ£Õýˆq+ µ>݉¯wžC¿¦ñÇgí¸} WÂ"“¶Ñ? o<�´Œt|ÝÝ =s¢‘©à,h¢|½‚¦¾ »âE´*QÞÀ&“²ÔçÞœ{×n%cýðfø¢k­BD”·0€ÉdLþù4†¯ôGÙ— c÷7¼Y×N«å=œ„Eºç9ÿZq�×âðYgG|òæ_—/%"ÓÃIXDF´ù÷0´›sI)iðroÌð%"Ý`“n}´îôùÞµÊZcÇ7ômZI«å}ì‚&Ý‘í]¿Þ‹¸¤T¼ßªft¯§Uˆ(?a4Q.Zq8.Ó½a]¸ Ö mÊð%"Ýb“nÈ¢ÃVG¹â…áóqt¬WN«é˜ò<™å\óß;ðëÉ«ø²kÿ÷ë(ae¡U‰ˆô‰LyÚ¼=¢Ó<¤fdbóŒoWS«é˜ò¬1kOdýûuË¿„]ãÜÐÊ¡´V!"Ò?΂¦<ÇçÏH Y~á±I˜Ñ½.Fµ©®Uˆˆîã,h¢h呵–s‹X=´)׈L˜òŒ÷VÇ e~hùŠ-vŒqE—úåµ ‘éa4]àÕÛhùõoÈÌ4Äö˜Ø¡–V!"zùDݧH‘"ªe¼ÿ~uœ¾"11%J”ÐŽî377W?øºuëªV°‡‡’““µêƒÂÃñiÓ&Öò}åû‘aù…Äàe�Íð>‰�±zh3†/ÑC > +00S§NÅ¢E‹Ð¾}{¤¥¥©1\KKKíP-` Ûœ¤û: Æ ÓÎÜ'Á¾páB\¾|>>>ðõõ…§§§V}Phh(Ö®]«Bxݺu|_z±2³þûzç9´þï^4®R[F¹à}Îr&"z¤\]вzõêX²d :v숛7oÞ ÃfÍšaܸqèÕ«—:–Öªt?_¹rEµtŸfåÊ•j¬xïÞ½Ú™Çc´á¼þÍ~ì ¼�.õËá§aÍ`Y¨€V!"zñØýÚ­»nß¾­º _ýuLŸ>]�“®ãcÇŽáÕW_UÇ?þø#&L˜ &jå _¹ß¥K—Ôä,™U£UoooT®\Y;¢Ü¶ãÔU”÷ ‚"ncÕ»M±yd †/ÑS´<~üxuY‘\‚$“¬1þ|®-Z´P±¤‹zøðájWZBW.K’Ò²]ºtÁ AƒTHK Ùßß_]Þäîî;;;$$$¨w@2Û:çøñã°üb}²ù4¾Ý{5ËZcé@gÔ©P\«–Þ_Ï Àr‘Ìj–ët­­­áää¤UîŽÍÊnÎ뀥•++³¥åÒ"+–IVr’Ì––¯U«V-õõd|X‚XÆ�¥k;gkùIÀ/Æí¤T¼»â8Öù‡b`óʘգl­ kU""Ãcë øŸÛ”ºï­úò—³t�3÷í%"£Ðûë9—¢¤g–’–ŽY»Ï£çw¾¨[ÎÛx•áKD”KØΧÂc“à¾ì~;yŸt«ƒO;:r#"Ò¶€Iw~ù#>Ø‚�› Ø1¾¦v­Ëð%"Êe à|äö�4|¸î$º.8„ÞM+bû7´¯c§U‰ˆ(7± :Ÿ¸•”·ûpêj<Ú¼‚9½h""}b4åyK£Ô¸-È4Ë„÷G­¾DDyØ„¥¦gàÝ~½æÚ:–ÆŽ1nhU£”V%""cb›¨àÈx´÷<ˆ¥/aÜë5°qx ”+^D«‘±q ØÍóþ6œ‚­µ~Õõí_Ö*DD¦ƒcÀ”gD'¤dïIx¬9�ÎNvØÿQk†/Qۉø3â¶ZXãð¹|Ý·>x½w0""“Æ0݇CPãã­¸•œ†ÃŸ¶Ãøv _"¢<ެc‘·“ñÞÊãäu ÿjý vŒqEój%µ*åe àýû÷£^½z(_¾<š7oŽèèh­L™2E�wssÓÎÜ•œœŒîÝ»£D‰˜={¶vö¯"##ñÖ[o¡\¹rX¸p¡v6ÿ‹IDË{Õ,çO;ׯ’A�Qáå¢Z•ˆˆò:ƒ°••V¯^�Ë—/«À-YònëlæÌ™XµjѳgO”.}ž5jÀÁÁQQQX±b&Nœ¨Uî‹‹‹C›6màââ‚3gÎÀÓÓóçÏת¦M†ìgÿï<*O܆âE âè'mñù[µµ*éE®NÂ233C||¼ ØmÛ¶ÁÉÉI�/S¦ 6oÞŒ&Mš hÑ¢HIIQç�;†Ñ£GcÏž=(Vìþæð~~~>|8> KKKlذÓ¦Mƒ¿¿¿v�dz±±Q®G·“RñÞ�þØ|"�êÙáûÎxÙÊB«å/œ„õ7nT?$ øøø¨Vñõë×ï…¯¨U«ÂÂÂTkVÂ8›tCËûƒ‡À¡¡¡°µµUá+*Uª¤>ÿQÖ¯_¯‚_‚×ÚÚú�Ö¶žœ �U küt,ŸvvÄša;DD:fðîÖ­› L â>}ú¨ ,X° V}²Ñ8ïÑ£‡ú:Òê½}û6nܸ¡Uôcêö@4šúnܺƒ _uÀÿu¨…‚œåLD¤k`sssÕúìܹ³j ¨‰S§N�Òî5\¡BÔ©SÚY &&Fµ^åór²··ÇÍ›7ïuU˳|þ³ÈÅ÷ìZ\ÞÿÑÿÞtý›UÄ��Û j©û]ñDD¤_ `///„‡‡#55[¶lQáëì쌑#Gª–©t-Ë f E™P%-c;;;Lš4I�6lZ·n­Æƒƒƒ1vìX$&&¢fÍšj¶ôœ9sTHOž<îîîÚw5 þ—£ñ¦çA,Úý'j/÷&°³)¬U‰ˆHï À¼r™Q•*UÔ,娨X5úÃ?D¯^½T�Ê,éœÝÂçÏŸW-bÿ8p ¦OŸ®Î'%%!$$D¯Œåz{{«1eGGGxxx¨ÉZ¦ ##óöü çOw¡PsœžÞïºVÓªDDd*¸er%:ÿ·éVû^ÁØ×kà“7k¢”5[½DD�¢÷YÐ à<"ðj:Ì=ˆkqÉøª[|ø†ƒV!"¢GÑ{|=YJZ:¦l €ãg»P¹¤N}ú:׈(`‘\VÔcÑÌØyƒšWÆö1®p°{pÆ7™&°‘¹¥ÖØqæ:¾éá„åCš ¨Å³]MDDúÇ6‚ ëO¢å×{‘’žŽð™�ð~ëW´ å à\�K�bæÿÎcDVèœÐ†³œ‰ˆò)΂Î%ûÎÝÀû«~ǹ°X¬Ù=�Ÿmå.""z4΂¦'JMOÇ¿ õW{PÆÆ!ÿíÌð%""°!�»~=ùâ³-˜Ô­¶dµ|+•´ÒªDD”Ÿ± Ú@Ž\¸‰î‹ãVR*f÷®�¡®Uµ ½삦$$§áÃuÀeúÔ«`ƒsÿiÏð%"¢¿`¿@—o& ë·‡°pßE¼ßºšZX£B‰¢Z•ˆˆè>ð ²ëÌutð<Ÿ Qø~ 3ôks3nšODD�Æþ‡223ñÞ�þj#+ˈ™Óý›UÒªDDD�Æþ¯ÝB÷‡±ô`0>nWÆ·Fa‹Z•ˆˆèñ8 úoÚ|" ¬=‰�¨ìëŠvuì´ å΂ÎgnßIÅØŸNàmO8Ú½„ÈÙ]¾DDôÜÀÏA®éí¿ô(<÷ü‰¯zÕÃÆ.°µ¶ÔªDDDÏŽü¬ „s¥X>¸ þ¯ƒ# âx/ý=&""]â0=70‘´ Zº‚‚‚�œœŒ—_~ŽŽŽZå®3gÎàæÍ›¨V­*T¸»E_TTþøã*Tæææ(X° ìííïÕ³%&&ª¯ 333¤§§£M›6ZõñØMDdôþznÐ=z4‚ƒƒUøž|½{÷Æ•+W´3φLDdôþznÐ1`éZ–ðÒe,­Z9–«ä~ñâÅUM>=zׯ_WÇÙæÎ�‹† þ%|…µ•••êž®R¥ <==µÊƒÂÃÃUÀoݺ»víB‘"E´ ‘ñäÊeHqqqpvvÆÌ™3ѵkWu®K—.jüWöôéÓøóÏ?qàÀ�ÂVZÌß}÷�ºïÃäkÆÄÄ bÅŠ8qâš4i‚óçÏã•W^Ñîq—¯¯/fÏž­ÂZÆŠÿ÷¿ÿ=w«™ˆˆòvA?ƒÆ�ã­·ÞÂäÉ“µ3@jjª G á2eÊ`Ĉøå—_T  ä:uê¨ \ÏbÀ€¨Q£ÆßãQØMDdØý21Jf>ÿë_ÿúK0J°ºººªñ¶mÛTxf‡¯6lþóŸÿhGwIX‡……©ÛÒ–®l!ßÇÛÛõë×WÇDDDy�A[ÀrYÐÞ½{1dÈ5\¢D |ú駪ÅûÑG©Ò2ÓùöíÛX±b޾páªW¯®j Ü_îQB\&_íÙ³+W®TÿlmmqõêU5¾ü믿j÷|<ùˆŽŽÖŽˆˆH¯lllTcL¯ À2¶+­Ô;wî ##CMÀ’VªL„º|ù2BCCÕµ¾NNNjŒ6›t)HËøpN×®]S³¨eœW®ÿ•ûH°Ë$.iiË5ÃO#ãÀrY”„ûß!Ÿ/o nܸ¡“©‘Ç'ÔÒC‘ÝÃ`jäïOþ剛 #0¹NžS¥K—VW˜âããsPÿþésP~FÒó)âããÕG=Ê•1`S#­miµ›ªwß}ï¼óÚ·o¯�1-;wîĆ °dÉíŒé1õ¿Q>õ-?<Ÿ—¢üäÝ—)“VEö»KS$�Í[N9™úß(Ÿƒú–žƒÏ‚ü7˜ò;o!ÝüÏ:û\�ä±Éc4e¦þ7Êç ¾å‡çà³(0%‹v›ž‘Œ7×®][;2=2N£Lñ7Eò¸ä÷÷ðúâ¦ÄÔÿFùÔ·üð|&""2vA˜ˆˆÈ8üœÖ¯_¯vn’ë×êÖ­«�Õ'ÙübÍš5øá‡Ô5Û(Z´¨V…ZØdÑ¢Ej+É–-[jgõIFZ¾ÿþ{õ84h ÎÉn]_~ù%Ž9‚š5k¢X±bê¼ÞȲ­²ÉÏ?ÿ¬Žå:y™%,k¥ÏŸ?_mF" Ö”+WNÕõF–¨•ËUdY+^ÓÉæåå¥j2«Vþ~õBÖ1X¼x±ºG®‡­\¹²VyüóN£œ_¾|9 .üÈMjò YŸA6ÀY¶l™ZÁPÆ{åoRÖá—×›Õ«W«ýÜe¹aÙ/›¼ÉïSþ¦›6mª�5]l?‡o¿ýV­ä%K|õÕWjc=“fyQ“µºåÉ Zd“Ý©úô飂I6°èß¿¿VÑ'y ÇÇ�?þ¨Žeyq+_¾¼Z°B~z$�tïÞ]½q’Ç 3KåòŽ””õ;“=·eS“nݺ©ûê�,1+{ˆË u©R¥Ôêz²ˆ�˜4i’zƒÑ¬Y3µ_¸ž®)=sæŒzŽmÙ²å�üžô¼“kƒeÏsyžÊÚ÷Ùo¸ò"Y4I––ßÕ¼yóî]R%ëçç§ÂõСChÕª•:/äõÈÃÃC-Ö$o2&L˜ UL˜L¢g“ÕBÊô÷÷W·³^À3³ž$꣩°¶¶ÎÌ buÛÞÞ>3ëÅOÝ ÌÌzâhGú�™ÕêÍ\°`Af§N�Ô¹¬ìÌ¡C‡ªÛBê+V¬ÐŽô#ëMDfVðdf½Ð=ð·¸oß>õ˜²e½aÌÌ aíH?²B'ó£�>ÒŽ2Õs.+´Ômyù S·2³ZY™Y­-u¬üqæ‡~¨=úy÷ûï¿«Ûòx“““Õí½{÷ff52“’’Ôq^%ÿïYo�2³Þjg$�)ë £ºmii©þ޳I-ç±)b ø9È’gÙÛÊRj2•^º’L�tÇÊU²·¼[•îéœÝ_òŽUZÉz“õ7ŽŽ;ª®>ù}e¿—uÈÝÜÜÔmÑ®];µÎ¸Þøøø`íÚµ˜8q¢j9e÷ÊdÒ]²rIË¥K—´#ýøüóÏÕ®i²[Z¿~ýðꫯ¢sçΪ{]ZýÒƒ!de,YÎVoÏGY¦7›<ÿõ¼“¿Õ³gÏÂÎÎî^w­ 'H—n^¼OºÖW†~dÉMyÒb–kƒsnÈ#¯µz|Íy àg$Ýz²Ö´Œ×ˆìM"þîšÒy‰„”,{'ÝêBž4ò¸ *¤Ž…Œ9å|±Ð‹Ï>ûLuÑÊx™¼xe�qËc‘íl2þ«×…Ú¶m«ÆÔdˆDºød�dƒ“7‰Ùôúû“ç��õb,ã¤Ò})�MÞ ç;4…磬ûü¨ç�ÓÃ�WÖû–Ÿ�^¯<éF_°`�:~Ôš×zý›} àg$ðÒz’7!clòÇŸs ½ªV­šÚ±jܸqêXZŠò/{¬MÈm½Mâ‘.Ù)KæÊï©o߾ظq£jíʤ�œc¢ÒÂ�-1õFÞDÈœ!­\yœQQQªõ®Î iaÈX°Þ4oÞ?ýô>øàL�:U=Æ™3gÂÞÞ^­†•ýÂ-¿ky>êm"�¼®È?ñ¸ç�lï^¼¼Ï9Ðîó¹g<ç¤3Ä¥¨ôÚ¿DDD”‚ÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDF�ÎK{œ&tïÞfffHcO›ˆÈ¤DGG£lÙ²øæ›o´ýIsœ.]:ìß¿aaaZ éM¦L™ðñÇ#44T+ÑŸ4À9sæDPP�vDDDzõÁàáÇڑþ¤¹1à˜˜í‘ñp‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&"¢ ÿ�í(íbQŠ �ħ‹�£Ç’“�ÔJÓ&0¥ˆn¢¥“3vœ»ƒ&åóÁ"K&­&mbQ²û~›jOþ�a‘ðœÒ£>,‹ôéÒiµi˜ˆˆ’�w@8ú¯<�‰ÛÝÐ×¾œÇ4B‘ÜÙ´Ú´-Í톤÷Ý3ˆˆôâ¤ÇôÿÝ<°|@mô¶/®Õ¼z¿ž'kãÊ•+ˆŠŠB¶lÙP­Z5UŽëׯ#$$666È�;·*ûöíSæ‹Ì™3ÃÒÒ%K–DúôÏë²³»»;üüüÔÆú²ÃQ­Zµ`nn®�‘00QòŠŽ1Àé/w|µÆuÊæÇò¾5aSà­öýa¿Æ–-[°lÙ2õCòòòR!9cÆ ìÚµ S§NÅ‘#G0gÎ 2D�/AÚ¦Mµgo–,Y°iÓ&Ô¯_;vìPõq$xëÖ­‹"EŠ `Á‚ˆŒŒÄôéÓamm­�‘00QòñòŘÍç±þÔm|ÕÂß´(‡ÜÙ3kµïø5¤…+­ÒtÚ@»üëáá� ¨VlÿþýQ¯^=  úòå˘4i.\ˆæÍ›k¥O½®ñ=~üx 4H;z‘„÷‚ póæM¸¸¸àĉprrÒj_$!¾nÝ:Âëׯ6¾LDDïîNP8:.8†ûÜѯ~1ì怒±!L‰KÑYÐ%J”ÀŠ+Ô¸®èÞ½;ìììþÓ-] 9rä@hh¨š¼•˜•+WbéÒ¥8xð V’0vA½‡Ýýà¸ö\¾‚yÝ« ý’ZMÊ`ôkÜ»wO{ôTXX?~¬=íJŽ?»9Ž´–%¤ã‡¯t1{zzªV³Ìª Ôj€ X±bÚ%·‘ëÏ¢Ñ/‡C:ÜŸÙ6ÅÃ×$k xÔ¨Q¸qㆠR___”/_sçÎU·&I÷òÉ“'‘7o^888¨ÉVrK’„´Ì––ã®]»j_ 8uêºtéWWWu{SŸ>}`ee¥ZÉòHf[K ;1l½½÷CðíÖ‹øãÔ-ŒhZÛUÀFZRRï×ód à»wïªYÏr{‘……*W®¬ÊåvúôiU&³¡åA&Tɱ´n% %Œå>à8ÌÒ–™ÑòõÜÜÜTË,ëÒ¥K«_DR0€‰ˆÞÎ^·;²æ,®û>ÄfÇúèPµ�Vc `�a½™ˆ'Ñø¿—0iËE4®l…}k£p.ãßQ¢÷ëy²Ï‚&""ýºäóŸ,8†I»®`BÇŠØ:È>U„¯)` ˜ˆˆ^éˆû}tYt¡‘Ñpú´ ú¾çµœß[ÀDDdR†GÁqíY4øù0ªÍ…«“Z¤ºð5 `""zÆÓ/íçÅo.žÚ¤v9Ö‡ÕìrN `""Rvž¿ƒ–NÎ8éùKûÔÀì®UµJ `"¢4.&Æ€~ËN£Íä4ÏŒ`§èR³ˆVKÉ…LD”†¹ù£Ý¼£Xuò&¾m]‡F5DÆŒŒ†”ÀYÐDDiÔú3·0jãyÜ~†}#¢i¹|Z�>p4éJHÄ YíŠ.óŽ¡ráœðŸÕ^wák ÀDDiÈ)Ï|4Ç‹{àç®U±a`]ä6¾ì/¥0Q±íœZÍvÆyŸ`¬P£>´�YÆ Z-¥40‘‰óô}—�B»9GÑÄ&/nLj‰N5¬µZ20‘ s‹míÊíE›þñÁØ–å°n rdc—sjÀ&"2Q²g¯t9»ß ÁÚþµñSÇŠZ ¥ `""�Žó�¢ëâ“(�ßNíѺRA­–R 0‘ 9íùÍ�Ž`�Û=Léh‹}#´Jm¸‘‰Xtø&n»„ ðHݵŠåÖjLâ ""£ ‰D÷%'0ð÷3hX6/‚f·7ùð5 `"";påZÏqÆ&WoÌïY«?¯Í{{u‚LD¤S«NxáãùÇp+ [Ù㈥�>]:­–R;0‘Îø†á“…GÑsÉ)|\µ<j�–­´ZÒ 0‘Žœöz€NÎ8xÅ?v°ÅÒ¾µ�™ÛêR²þÖ>ŒJ•*¡P¡B¨[·.TùÅ‹ѲeKX[[cÛ¶mª,NÓ¦M‘?~äÊ•K}Þž={´šùùùá£�>BÁ‚±`Á­”ˆÈt->rmçE`h$6²Ç¸ÖåµÒ£d `sss¬Y³7oÞÄĉ‘'ODDD 88={ö„�� nݺ¥�ý”œ»iÓ&ÂÇÇ-Z´Ðjž“Ïoܸ1ìììT˜;99aîܹZ-‘i �x‚¦3áËÕÿ N‰<ðžÖ ÊäÕjI¯’5€kÔ¨[[[d̘Í›7We¬öööèÖ­¬¬þ;f‚Ù³gcòäɸté’Vú"wwwdΜ#FŒ@îܹñã�?bÙ²eZíë¥ã"Ò‘Ãî÷Ñè—ƒøçfœ>­‚?Ûk5¤wÉ>p ­Y¹YZóСC(P €VDGGk�žëܹ3š4i‚ôéÓ«®|ÎËnß¾ KKK˜™™©ã¢E‹ÂÛÛ[=~Ù† TèæÈ‘È—�›N‘>LÝsæõû¡p݃•ÖjÈ${wèÐA¦±´z¼bÅ „‡‡ãÞ½{èÒ¥‹šl•)S&xxx`øðáêܲe˪É\³fÍRŸ3~üxôéÓG}]""½šwà:>]|¡ÑØ5´>zÕ-¦Õ�)JÖ–àupp@ñâÅÕ,å   õøÄ‰êV#™Á¼páBT©RçÏŸW·-Y²%K–TŸ·hÑ"5ÁJH({yy©à•±\iI»¸¸ |ùòpttÄСCÕyDDzãá‚æ3cÈgÑϾ®Mn‰úœålò¸‘v÷ÃgËO#42cZ”Åð¦œh•TÜ ‰ˆˆÞÊô}îè0ï(Ò§O‡íCí¾i [ÀDD)LV²úpÖœ÷BçêÖXùym­†Þ[ÀDD”d;Ïû¢ÞÏá†E=«3|Ó00Q ùfÓyt]|Áa‘8>¶1úØ×j(-b%3OÿP8Ķz§ÿåŽþõ‹«µœ‹Yf×j)­b%£µ§n¢å¬#pó}ˆ5ýë`zç*Z ¥u `"¢dòÓ®Ëè»ü4Ì2gÀ¾áõÕ²’Dq8 šˆè=só FÿßÏà”g Æ´°Á¤µzŸ8 šˆˆžÙ}ñ>œyw‚ca÷j _J˜ˆè=ùn«:-<ŽüfØéXŸ;”Ðjˆþ‹]ÐDDïèNP8ýr·ÃÑǾ(æu«®ÕPrb4Q¶Áõ6ì§@dt Vô«Éð¥$c½¥A«\Ñ{éidÎ�GÇ4Æ'Õ­µ¢Ä1€‰ˆÞÐ%߇¨úÃ>ü~â&Fhƒ+?¶„UάZ-QÒ0€‰ˆÞÀâ#h5Û~�"°a`]LlWA«!z3 `"¢$·ù¾\ý Ŷv÷Žp@K[+­†èÍq4Q"\½ÐwÅi¸ßy„ïb[¼ÿkYN«!câ,h""¶ÑÕÎrFä™å\‹áKï ˜ˆ(#Öÿ‹n‹OÀ¶ÐØ3Ì]jÑjˆÞ» ‰ˆ^âåû©òø †4*‰IWÒj(5a4‘ Y~Ôu§@Îl™ñǵ¾”lÀDDšžKNbÀJWXçÊ—Ñ�ÐÒ¶ VCôþ%ktpp0®\¹‚¨¨(dË– ÕªUSåááá¸~ý:BBB`ccƒÜ¹s«rqãÆ Ü¿ò¿U¡BäÈ‘C«y.::îîîðóóSçÅÄÄ V­Z077×ÎH» ‰èeg<ÐmÉ ø‡DâÛÖå1òÃ2Z ¥fz¿ž'koٲ˖-S?$///’3fÌÀ®]»0uêT9rsæÌÁ�!CÔùòƒlÔ¨J•*¥‚õîÝ»Xºt©:ŽO‚·nݺ(R¤ ,ˆÈÈHLŸ>ÖÖ‰/Ç&¢øfý}Sv_…E–Œø­wM8”É«ÕPjÇ~ iáJ«4]ºtêXþõðð@�T+¶ÿþ¨W¯¬ê¥¥|ûöm”(ñt ¯=z P¡B*¬ãó÷÷G›6m°cÇXZZj¥IÃ&¢8CלÅ܃×мB~Ìï^%òf×jHô~=OÖ1àìÙ³# ÇŽÃÌ™3Ñ´iS/^Y³fUuéÓ§W-Ý8™2ez¾",,ì…îé8òyòƒ¯X±¢j;::"""B«}‘��6oÞ¬ÂzïÞ½ê{QÚvÄÝ¥¿Ù…¥G=1¯[5ìÞ€áK).Ù'a]¾|“&MÂÂ… Ѽys­ô©×5¾¥ûÚÍÍ  ÐJž“ð^°`nÞ¼ œ8qNNNZ틤E½nÝ:Âëׯ‡™™™VCDiÑïǽÐzö˜gɈ?¾¨ƒA�^â"J))z°´nW¬X�úõë«ãîÝ»ÃÎÎîYti­J÷ó­[·TK71+W®TcÅÔJÆ.h¢4*öR×¥+~sö@ëJVXÜ«& äÈ¢U’± ú5îÝ»§=zJº”?~¬=íJ–�øV­Z…Ñ£GãÎ�;/„¯t1{zzªV³Œj5À�P¬X1툈èEn>ÁÈ5|+6ÿã�Ÿ:VÂö¡õ¾dtÉÚ5j”º­HnAòõõEùòå1wî\ukÒ AƒpòäIäÍ›øî»ïÔŒf9·J•*ê–% ÙvíÚ¡wïÞ8uêºtéWWWu{SŸ>}`ee…ÐÐPõHf[Ç?N[ÀDi‹L²šð§JçËŽi�*s–³ Ñûõ©Q;‡ÕG#›|Z-QêÇ&"Ý9éñ9·âÐ?üÚ«V}V¹³eÖj‰ô!Á1`oooµ9BBäÓ2dÈ ÒÐŽéWLìugÚž+øaÇ%Ô*ž?R 59Ñ*ÍÒûõ<ÁŽÛBðud«Ã‡kGúÀ&Ò¯&3©Vo‡j…°ú³Ú0Ë”A«¡´Èd'aåÏŸ_µr_÷qíÚ5íl"¢ä³ã¼/ò Û‚÷C°¦mlhÇð%ÝK0€W¯^­=J˜ìBDD”œÆnº Vµ*]àìt¬�.5‹h5Dú–`׬YSíåû*²¥à¥K—ФI­„ˆèý ‹D§…Ç0u÷e|R­v ©‡ shµDú—`_½z-[¶T›ÞÇ·|ùr :Y²p+/"JÎÜFÉovãàU?lZKûÖ‚¥…™VKd^Û–�òÛ´i£•{÷îUá+ûï&eë?"¢7!ËINÛ{]=�*Ö9Ôr’m*Ôj‰LK¢KQN˜0G�ÅW_}…Ö­[«-‹/®ÕêgA¥N¡‘è³ì¶»zch³2jã|s3nH 3ÙYв¯Ìr–�ò³fͪÂw×®]j_wwwUODô>ü}ù,‡ÿ‰sÞAX?س»Ucø’ÉK°,cÀ:t@®\¹�1cFªÇQQQ –-[`cc£�­l¥�ŸDcҎ˘ºç2ZØZá§Q¡'ZQÒèýzþÚ.hOOO¾²(Gúôé­ÊŸ Å1Ù.è 6¨±^kkk¶ T�åCÊ%|7nܨ�MD”tkOÝBŽa[‰Cëá·>5¾”æ¼v)Jggg5ÖûªSräÈ�zõêáñãÇZ‰>°Ld\ŽkÏâ·£¨]<~ë]Å-͵¢7c²]вÑBÙ²e£•¼HÊ (Àµ ‰(Iî…ã³ßÏ`÷…»Ö¸þ¯ƒ-,²èo‹R“ `SÅ&JyËŽzbØÿÂÐj‰(YØÜÜkÖ¬QëIOœ8yòäQŒž={ªûˆoݺ¥�ýT™2eT¹¿¿¿ÚôaìØ±ZÍsòù�7†��� s'''Ì�;W«%"cÛò�7¬¿ÚŠÛ±!¼oL#ü_{[˜eäö�Dñ%)€%@ýõW–²‡,Ò‘Ð䬸jÔ¨[[[u/qóæÍU™,èaoo�nݺÁÊÊJ•Å Á�;w0yòduß±|σªòød%®Ì™3cĈª¥üã�?bÙ²eZíëÉìn"Jã0bÝY|¼àºÙSk97+_@«%¢ø `___Õ�üí·ßâÌ™3j È—wIJȦM›Ô@¹æ¡C‡ÔÌé8q {Ä9wîòçϯA…«Ì{y�ýöíÛ°´´„™ÙÓÝQŠ- oooõøer?³„®Ü6%ËhæËÇñ'¢ä‰úSböþëÙ¬ V^%óf×j‰èe‰°ŒÕ^¹rŽŽŽ SëBK7²���vÆëÉr–˜ÄÒê}ðà�V“¸÷1A»S§NêëH·õ£G�pÿþ}­†ˆÞ—ÅGn ÿÈí±ov 88ª!¦w®¢ÕQB `Y÷YºŠ%|åÞ`!‹sÄ=NŒt%Kë³mÛ¶È™3§ÚÊ0ŽÔÅÿ:•+Wƽ{÷´£§ÝÕÒz•t|2yK‚|¸:W‘Vø¬Y³TH�?}úôQ_—ˆRÆõ{!håtËŽyató2Øô¥ äȪÕQ¢bƒ.Q£F�2äË—Ï�-[6CõêÕ žžžZÍë-Z´ÈÔ†B… š5kfˆmM«òãÇ�2fÌh(Y²¤!¶åj(]º´ÁÕÕUÕ…‡‡:tè`ˆm-¦OŸ®ÊÄÅ‹ íÚµ3Ķ:¾ÿ¾!¶Um(P €aþüùª,),,,´GDô¶œþ¾j0ûr£ÁzôvùÛ�Z)QÊÒûõ<Ñ•°d“Œ£ i±JkTϸÑÛ{�Ÿv_Æô½îèR«¦|l‹b–œhEÆ¡÷ëy¢,ã­^^^IóMíÀDoçê݇è³ì4N\¹‡=jÀ±IidHÏÛúÈxô~=Ot XÂ4h�šu÷î]õ!ãº2fKDiÃò£ž(;f'Â"žàÔÄѬ ×è%Ú–Û�æÌ™ƒR¥J!oÞ§³喞͛7««ô†-`¢¤»ÿð1ÆýyKœ=0 ~ Lh[…rq¢¥&ß-÷ðʪWqBf5Ë,hY\CoÀDIsëA(šÍ<‚~!ߦ¾k[^«!JL>€eâ•oÜŽrï®t?˪RòXoÀD¯{I˜ñ×UŒÝx5‹åÆüÕPµH.­–(õ0ùîÛ·¯Úð@î–Se YòÏ?ÿDÉ’%µ³ôƒL”°à°H|±ÊžõE»*ñk¯êÈ‘U=]”6˜|_»v áá᪵+!,[ îØ±«V­RO^oÀD¯vîV¾\㊓˜òqEŒüІ­(U3ù~•Ï>û ýúõS»é ˜è¿þoÇ%ü°ýŠ[šã¯‘(šÇ\«!J½ô~=OtWZÀ²KÑ… ÔR’[·nʼn't¿ ¾Aáør¥+&l½ˆÞvEá2¦×(…$ÚnÕªœ��ŸÍx–MõeMf¹7X�Ø&zêŒW>ÿý ÎÝÀoj£Ÿ}q­†HL¾ úäÉ“¨]»¶vô”lÆ {õæÊ¥¿™‘ `Jëbb p:p #c[¾µmòayßš(k¥¿ùD&ßÝ AíÑsß|ó þùç툈ôBîííþÛIŒ\÷/F´.‡�Žõ¾DF’` X6®_³f þ÷¿ÿaòäÉÏî–U°–.]ªfBËþ½zÃ0¥U|‚ÑvŽ3îG¨YÎÛ•ÑjˆôÉd[À¡¡¡pqqQ·�9s®®®8uê”ZKöÖcø¥E‘O¢ñݶ‹¨€{ôè¡Æ}¥%*ËRÊéò„¥¥Z¾|yí¬W Q­RYCZÈ¿AAAèÙ³'ªV­ªnm Wçøúú¢@�ê¼8åʕøqãÔÿC|þþþhÓ¦� fùÿz `Ò«ÝîbÄúq; KzÕ@×ÚEµ¢´Éä8ާ´LßÔƒpõêUµ­áÞ½{±gÏÕÅ,?´¸®æ:uê`ĈèÒ¥‹:Ò2–³„øËdE®O?ý.\Po Ú·o�iÓ¦=ûzñùøø¨ï-ÝÙrn¯^½pïÞ=­–(õ“í®vÅ’#¨Y,\Æ6D¦ \N’HïœèmH²)C“&MPºti5,Ç£F�R3£“âòå˘4i.\ˆ-Z¨e,e 7~XJ 8,,L;zjüøñ nú/]ßÒ5.‹‚È-R'Nœ€“““Vû"YBsݺuؼy3Ö¯_ÿÊ�&J­.û>ÄÇó�bÙQOü¯U9Íð%2‰¶€ûõë‡5jÀÍÍ öööèÖ­:uê¤BXZ¨oBB|É’%jœWZÆ µ€åMŽ9TØËä­Ä¬\¹Rm‘xðàA­$aì‚&½Øèê�¯7œÃÍ¡øk„š–qˆ†(­3ù°Œ³JK4~÷³ŒåÊħļÜÕûèÑ#¬Íš5Ô)ST™Lè’meRWi-Ë䫸á+çyzzª1h™U-«qÅ9pà€ºO™È„F<Á°µgÑiŽ l ~ÿ™í¾D&(ÑðÀ�Õd(Ù ¿fÍš°²²RkAË¢‰…ž´’e3 R™d%“¶æÎ�«fAKkZ&bIµ|GGGõ9Ò--k™|% ~Ä‘�–²ìK,·7õéÓGý¿H+YÞÉlë%¿’-`JÍÎx`ìæ 8xå>~ú¸"†5)Íí‰�&&aÕ®][ �0]´hÑf&¿ŠŒ{xx¨ût-,,^ØÄ_Æfe ÷åû€¥u+÷󯯬‰Sq$˜¥,oäëI—¸±ŒK×¶ü"’‚L©ÕÎó¾è³ìtìß7° GUt®YD«!¢WIGžhRƒ.µbSjã�±Îã7Ot¬QXÝb”3w0"JLš`Ù|An’1\[[[tïÞ]·³‰À”š\ö F¿®¸è„Á JbÊ'Ï{‰ˆèõô~=OtÖ¡C‡Ô)™P%Ovþüùê¾[{%¢··þôm´šã‚+w‚±öó: _¢4&Ѱ¬N% Y-ú|Õ�¦M›â»ï¾S3•õ†-`2¶È'ÑèñÛIltõAÃ2yqàë†Z ½ “oËleYú1>Yùm6g Jë\½ÑÒÉ;ÏßÁ¤¶ø{d­†ˆÒšD[ÀsæÌQ[Êm?Ò – ä>àÎ�;«{�4h 6VÐ ¶€ÉX–8{`üŸn‹ÄáØVo�’y´"z&ß–�‡dÝeÙ˜_îÙ•{wåãìÙ³êÖ$¹§—ˆ¸½~;‰þËO£��%‚f·cøћ݆$÷è YËY¶ Ô#¶€)%r÷øÍpæfft®Š� Š#C¼½­‰èí™| X–|Ì—/Ÿêv–…1ä#kÖ¬jE*"JØÚS·Ð~ÞQxù‡bË { nT’áKDÏ$z5�U°fÍš¥Ö`ŽÿQ½zuí "ŠÏ7(�G·Å'оŠ<~j…V­´Z"¢§ `Yo¹aCÞ&A”®7Ô,翯ÜÃí*`yßÚ\Ë™ˆ^)Ñ1`ïíØ±£ÚË7þüjf™�Õ¦Mµ³‘Þp ˜’ËoÎøv«ÒÅ>^Ó¿6Úä{ZADÉBï×óDXvŠÛ8S¦LªûY6Aزe‹Ú0AoÀô¾…E>AûùÇpàò=´´µÂö¡õ´"JN&À²àƱcÇ^X KÏÀô>9_óè çpõî#üÐÎC›”Öjˆ(¹éýzžè°ìÁ+ÛÑ‹¦í½¢f9_¹ç1�¾DôF à\¹r©Õ®dÖ³Œû¶nÝõêÕSí¥Ewƒ£ÝgŒÞxªFÀ¬v°-¤¿ùDd\‰vAËX¯ŒùÊä+ù�ÓeV·nÝ�'�þVóa4½ Ù4_&Z]¿÷s»VCoûbZ ¥4“65 `z[ ]ǨØVoþ²`iŸhP†³œ‰ŒÉäÇ€ÅèÑ£‘7o^ìܹSmÊÿË/¿ ((H«%2m~!hétƒWÿƒÞu‹áÆäV _"zg‰ðO?ý„Û·o«½%|-,,pôèQxxxhg™.™åÜbÖœ½„é�+c^÷jZ Ñ»I4€çÎ�‹µk×¢B… jQ‘-[6„„„¨ÇD¦jæ_îh7ï(dŒfû�zÑL÷½Qê•hW®\‡V�%xes~iK—4‘) �DíÉc̦óhY¡®Mj…šÅskµDDïG¢“°|||ðÑGáîÝ»(R¤ÂÃÃÕíH?þø£v†¾p½Îž‹w1jã9ø?ŠÀ¤ѯ^q­†ˆR“�„%­\™t%+amÞ¼3gÎÄ'Ÿ|‚… â‡~ÐÎz=i9WªTI}�ºuë" @«&Nœ¨Ê´’§š6mªÖœ–û�¥~Ïž=ZÍ‹üüüÔƒ‚ bÁ‚Z)ÑÛûöÏ è²è8Ķ€�ý¯1׈’—´€_eÿþý†�?þX;z;§OŸ6\¸pÁeˆ Rii«òŸþÙPªT)Cpp°aΜ9†¼yóªr!åÎÎÎÚÑ«lmm ?ýô“áÁƒõu’ÂÂÂB{Dô”§_ˆ¡ÁÏ l0 [{V+%¢ÔNï×ó[À3f|ç…6d‡Ø T_«yóæª,44NNNظq£ê>2dˆÚìÿÈ‘#ª^&wÍž=“'OÆ¥K—TÙËÜÝÝ‘9sfŒ1¹sçVÝá²iDRÈ÷"гîômµ}àyï`µƒÑ¬O«h5DDÉ+Á– W‹/V]ÈåÊ•{áCöN(_¶iÓ&´˜...077WãÉ2¹+Ž|M///õ¸sçÎhÒ¤ Ò§O;;;:tH•Ç'Ýã–––033SDzQ„···zü² 6¨Ð•­åª|ùxÿ&=õóÞ+è½ô$2eH‡½#Щ†µVCD”üœ„%; �3FÝ¡•>%Çr_°ZbdùJ¹XZ¸ƒV_·T©Rj9Ë8²á¿lyØ«W/­ä©õë×cþüùÿ a“^´höîÝ«ŽOŸ>­&†Ý»wO¿Ž±,­Ii×eß`ô_éŠ7ðu‹Ò˜òñó7ƒD¤&; ëÉ“'(Y²¤ÚxAZ¤ñ?Zµj•¤ðÒ’•ÐkÛ¶­úa¹¹¹©‰SçÏŸ×Έ½ ^¾ŒbÅþ»¦®´r###¥•Úw%zµ‰ÛÜðÉ‚ãÈcž;ëa€C ­†ˆÈ¤ :¹,Z´ÈP¢D C¡B… Íš5S³—ãƦÁÊÊÊÛÂÖJ j¶´Ky™2e ›6mÒj †‹/ÚµkgPÇ÷ïß7Ķª  0ÌŸ?_•%gA§=wƒÃ eÇï6dýr£á‹ßÏh¥D¤wz¿žs7$2i›\½1fÓ<‰‰ÆÏ+£sMN´"2&;L¤wCÖ¸¢×ÒSHŸÎ€ãc›0|‰(Ua“ɹ|ç!ªÿß>,;z _5+÷I­`•3«VKD”:0€É¤üæâ‰V³�qça6 ¬ƒÚÛj5DD© ˜LÆø?/`àJWø ö s@«ŠVZ QêÃIX¤{®7ñÙŠ3¸|'ßµ-�oZ•×jˆÈ”q‘mùÇÍgAxä,ëS“áKDºÁ&Ýúzý¿èúë ”+`�ÝÃЭvQ­†ˆ(õc4鎗(êÿ|ÁáQø²aILíXI«!¢´„]ÐD)hÅ1/ØM9‹,±¶m†/é˜tCÕ°ò æÌ—1�ѺRA­†ˆHÀ”êÉ,ç²ßîÆös¾ø±½-Î|Û ¹Í3kµDDúĦTmÎþkh3ÇQ1ld‡QÍËj5DDúƦTkغ³±ÿ¢b¡°w„ÚäÓjˆˆô�³ )Õq¹æ‡~ËÏÀ'(S;VÄ�Æ¥µ"¢ç8 šè=ZyÜK­åœ5s¬é_›áKD&‹L©Æ+Ï ÷ÒÓ¨WÊ»‡ÕG»*…´""ÓÃ.h2ºË¾�Pïç¿a0¤Ãè6Û²œVCD”0vA½ƒù‡n ÞÔý(a™›Ù1|‰(Í`“Ñt˜wC×üƒÊErâà×�8Ë™ˆÒ0¥8gw?X�ÞŽã0¿{5øª!²gɨÕ¥ `JQ“w^F‡G‘3kflb�/”ÔjˆˆÒ0¥ˆ¨èô[~ã¶\„Cé|Ø=¼>jÏ£Õ¥=É: :88W®\ATT²eˆjÕªi5€··7¼¼¼�={vT©RE+nܸ�û÷ïCþ·*T¨€9rh5ÏEGGÃÝÝ~~~꼘˜ÔªU æææÚ ã,è”·ïâôûý =~‚9ŸVA/»âZ ÑÛÓûõ½úÁW¬XQµ‚¡Õ¾ÈÇÇ›7oVa-ßW¾%¯Ó^�È帮øa~¯XÓ¿׈è%É> ëòå˘4i.\ˆ-ZàÉ“'j ×ÌÌL;ª,aŸt_»¹¹aÀ€ZÉsì ,ÀÍ›7áââ‚'NÀÉÉI«}ÑíÛ·±nÝ:ÂëׯáûÒûeˆýïç=WÐè—ƒ¨Y<¶ ±Ã—œåLDôJ)ºeéÒ¥±dÉ´nÝ`iåJÀÊli¹µHÆŠe’•܆$³¥åk•+WN}=– –ñcéÚŽßZ~ðûñ(< Ÿ¯8ƒõ®·Ñ«n1LïT –Y´Z"¢äÇÖð»Ûº_¬þò—ó[ïÜ·—ˆŒBï×s.EIIù$Ó÷]EçE'P±`ìt¬Çð%"zK `J’à°HtŠ Þ¯×žÅ€%°mh=ÔæZÎDDo�L‰:xå>rÿgoâ�Av˜ß½:²›qû@"¢wÁ¦E<‰Á„­Ñ|Ö´¶µÂÎaõÐ¥f­–ˆˆÞ'aÑ+ÅDÇ Þ´ƒ8á€ÞuŠ`IŸZÈ�þéšÞDD©'a‘ÉYæ6,†mÁƒ�Hll‡eýj3|‰ˆÞ30½`ØÚ³è»ìj̓]Ãê£MeÎr&"J `RígÌÞýìK`ë{”Ì›]«%"¢÷�cÀ„Ç<á¸ö_dÍœAm¢ÐÐ&ŸVCD”zq ˜t+$â ¾ß~ }–�F½2–ø{d†/Q a 8�ò GŸ¥§ð÷9_|ÓÁZ—çFD¤+l“îlý×…Gnƒ×ƒPìÕ“ÚWdø¥0pòèñ|µþÚÏ?ŠOkÁ®ahak¥ÕQJbtñ0<Sá¼o0—¬O«j5DDúÄ.hJõ–8{ ïˆm0¤3àÀ× ¾DD©Ø„EEÇàó§1tíY4)Ÿ»‡9 a™¼Z-ØDyø… …“3~söĈfe°i = æÌªÕ‘±q ØÍ9p £7ž‡¥EflRU¬si5DD¦ƒcÀ”j„FÆï98®=‹¶•­pøëF _"¢TŠ-`qíÞ#µ°Æ±+÷ðs·êÙ¬ w0""“Æ0ÝïǼPfÌ<Œx‚cšcTs†/Q*ÇÖ1¿Gøbåô^v Ÿ5*…ÝÃê£nÉ _Q®\9x{{«Ö¬„q醖÷/ÿ€oß¾ KKK¾¢hÑ¢êó_eÆ *ø%x-,,^hmëÉùÛAja�?NÝÆ„¶å±v@]†/‘Ž%{wèÐA¦q×®]UPf̘Q«}½÷Ñ8ïÔ©“ú:Òê}ôèîß¿¯ÕèǤ]—Q}Ò߸ÿð1®On‰ÿµ,‡ŒœåLD¤kÉÀéÓ§W­Ï¶mÛª–°›››š8uþüyí ¨±àÂ… ÃÖÖ÷îÝÓJ�ÀÀ@Õz•Ï‹ÏÚÚ¾\ý®xaÝàzè\#i+wÑ«q4½VTt4~Øî†F“÷#3xýÒ–áKDD àätåî#t^xßmsø¶ØÛò-šÇ\«%"¢´Œ]ÐÉäøõè¸ð†Gaæ§Uп~ ­†ˆˆÞvAÓ B#žà«õÿÂnÊ~T*œWþ¯׈ˆþƒüÝ|ŠöóŽbÁ¡ø²QIµ°FáÜÙ´Z""¢çÀïÉÞ‹wÑÒÉ.×ýñk¯˜ß½:Ò§ã¦ùDDôj àwc0à‹U®j#s³ œÕ=êÕj‰ˆˆ^�ü.ßyˆŽó�á7gŒi^GF5B–Ì´Z""¢„qô[ÚrÖ#×�ƒ—(ö ¯�æ¶VZ ¥΂Nc=ŽÂð?Îâc'”·ú~3Û1|‰ˆè�1€ß€ÜÓÛã·“pÚ “»T¦Av°´0Ój‰ˆˆ’Žü̳dD�¢¹±¼o-ü¯eydÉÄñ^""z;&""]â0½10‘$k´t ¸»»#""¹råBùò嵚§.^¼ˆ dÉ’(\øé}þþþø÷ß‘)S&¤OŸ3f„µµõ³ú8aaaêk!]ºtˆŽŽFãÆ�µÚ„± šˆÈ4èýzž¬gggu~ß¾}®XÎM ˜ˆÈ40€_ãÆ�*`ÍÌÌT˶@� EæÌ™U ÷Þ½{È“'6oÞŒ `×®]ª<Ž|޽½=vïÞ�%^ÜQèØ±cøôÓOqëÖ-­$iÀDD¦Aï×ód–®e _!]ÆÒª•ci±JîçÌ™SÕÉ¿'OžÄÝ»wÕqœÙ³g£Zµjÿ _!Amnn®º§‹/'''­æE>>>*àwìØ�½{÷"kÖ¬Z ‘ñ¤ÈmHÁÁÁ¨Q£¦M›†öíÛ«²víÚ©ñ_ Ø .àÚµk8räÈ a+-æE‹©s_&_300EŠÁÙ³gQ«V-\½z¥J•ÒÎxêĉ˜9s¦ k+þ믿޸ÕLDD©» “ fÍšøè£�0~üx­ˆŠŠRá(!œ?~ 4[·nU�*$�mmmÕ®¤èÙ³'Ê”)óÂ÷xvA™vA¿†LŒ’™ÏŸ}öÙ‚Q‚µ~ýúªE¼sçNžqá+ €ÿû¿ÿÓŽž’°öööV�¥,]ÙB¾Ï�P¥JuLDD”Ú%k Xn :xð úõë§Æ€sçÎ� &¨ï×_­fHËLçG�aÅŠÏøúõë(]º´ªË�áùr�â2ùjÿþýX¹r¥ú°´´„¯¯¯_Þ¾}»vfÂäÿ! @;"""½Ê‘#‡jŒéU²°ŒíJ+õñãLj‰‰Q°¤•*¡nÞ¼‰Û·o«{}+W®¬ÆhãH—‚„°ŒÇwçÎ5‹ZÆyåþ_9G‚]&qIK[îNŒŒËmQîoC>_Þ@Ü¿_='S#ÏOþ¨¥‡"®‡ÁÔÈߟü-Ê 7F`Rœ¼¦òå˧î20ÅçÇ× þ½ëkP~FÒó)BBBÔ¿z”"cÀ¦FZÛÒj7UŸþ9>ùä´hÑB+1-{öìÁÆ�±dÉ­Äô˜úß(_ƒú–^ƒIÁ¥(ß‚¼û2eÒªˆ{wiŠä¹™bË)>SÿåkPßÒÂk0)ÀoÁ”ßy éæOêìs=’ç&ÏÑ”™úß(_ƒú–^ƒI‘ab,í1%‘Œ7W¨PA;2=2Nž£Lñ7Eò¼ä÷÷òúâ¦ÄÔÿFùÔ·´ðL Ž» ‰ˆˆŒ€LDDd~C6lP;7Éýk+VÔJõI6¿X»v-~ÿýwu϶�� ²e˦ÕB-l²páBµ•d½zõ´R}’‘–_ýU=ϪU«ª2Ù­ëÇÄñãÇQ¶lYdÏž]•ë�,Û*›‘üùçŸêXî“—Y²VúܹsÕf$²`MÁ‚U½Þȵr»Š,À#kÅËb:q–-[¦êdV­üýê…¬c°xñbu+ŽÜ[¬X1­&á×�âÆÚ„<ÖÛ$¹pÉNY2ÏP~OݺuæM›TkW&…Ä•†l‰©7ò&Bæ$iåÊóô÷÷W­_U.¤…!cÁzS·n]üñÇ9r$&Mš¤žã´iÓ`mm­VÊ»pËïZ^�z›H'×ù ½îdã é™’ßky"�‚Ôþ|å�‘¼Qˆ¿«�¼Ñ-^¼¸zÃ/¯I!­{9/>ùûÕëÄÁ¤b¿™0 “>„lŸ(»0Åï2Ñy3!]z²5äСCµÒ§>ýôÓg“ ¤Õ!]cñ»lõ@z+dæ³tWÊ‹^Zˆ²¸ýÞ½{UמÌf—Ö¿ì1-ݸò&Do¤u/‹Bž—’ì„$Y¤ëÒÙÙY½q”Ù¨²÷¶ÞÈ%iÝ y§N�z6cXz5äw(dv°¼õvÁ–•�82ŒðòëÎÎÎNíà&-àÕ«W«ºéÓ§£R¥JꔚÉ#!o„Ì‚–}àå÷Õ¹sgU&¤·FÞõÕWêX&˜IÙË;♦¤‘ J±†Ø‚¡råʆsçÎi5ú$@äO wî܆ؖ“zìââ¢Õ Õ«WWå29ëøñãZ©~Íš5ËP³fMíÈ &÷ÈÄy~?þø£Vª/±-[Cì…Ë{±2”+Wΰ}ûv­Æ &•Ŷz Y²d1ôîÝ;ÕOØy™@gkkkˆ õ!“çbƒXÕÉ„ÈØ–¾z=ƶ” žžžª\äÿU^oqòÜ·oŸªKèu·ÿ~5I+S¦L†?üÐàçç§Õ¤>2N&ÌÅŽNNN†Ø7úê±¥¥å³kŽ———úœØ�6”)SÆ�-[6õó¸zõª*7e\Š’ˆˆÈØMDDd `"""#`˜ˆˆÈÀDDDFÀ&""20Q*%+=É‚ ɱޯìT3`À€g ;$D¾ÿ—_~‰#GŽh%Dô¾0€‰ŒL–àË“'�ÚX@¶¡“Dz®lãÖ¨Q£Öt~_dõ,Yž²råÊZÉ«ÙÛÛ«}iSóÖwDzÅ&22YŠP6-—=Pe¹Ey,‹ÐË’„²ù¼,A(k�ËÒ’²4¡,/)ÙõHvqzøð¡:²¥”Én3 µžem^ÙÄAöÙ�#kïÊîJòy~~~ªLöÚ•Ž[¯˜ˆÞ¾ªˆŒ,nz Åø‹ÖËf²vµ„¡¬¡+ëWˆNNNjK¾™3gª ê6mÚ¨Ï P»ÌH×ñ/¿ü‚?üð…µ†ã“íïâÈñ²#ÖìÙ³1eÊÕE'þyDôþ0€‰R‰—ƒR¶¿”Åöå_Ù¢NZÇT{Ë&²K–,Q-bÙ3W‚Rº­eÇ ÙõI>ªW¯®51ûöíS;Ò¬_¿[·n}¶K %0‘ÈV{2>,á*d;¾¦M›ªÇ҂Λ7/þý÷_\»vMµ|eG$KKKÂÒ*NŒlv/öË;?üðC’>‡ˆÞ ˜H'¤…,­`!�©“‰[Ò…-û¬ÊV“²¬ü+�œÙsöìÙ³ª,cÁ}úôQãÎD”|ÀD©„„hüГcéV–%lã âøc³²ïªL”êÒ¥ ¾ùæ5~,e»wïÆ�´³&çìß¿_µ²ef´Œ;Ç…=%0Q*ñÁ¨�ôãH‹Vf)˰™™™z,cÁBnY*Uª”z,jÔ¨¡º¢[µj…£G�ªÍ÷eÃúY³fÁÆÆF;ëEòõãÈ×�0a‚꺖 Þµk׳۟âŸGDï÷&Jƒ:wîŒóçÏcêÔ©h×®�Vú_2Éë»ï¾S-ë3fh¥Dô>0€‰Ò ™°åêêŠråÊÁÎÎN+ý¯={öÀ××WÝ œPKšˆÞ˜ˆˆÈ8LDDd `"""#`˜ˆˆÈÀDDD)ø+˜%?ú)E+IEND®B`‚unyt-3.2.0/docs/_static/mpl_fig5.png000066400000000000000000000406341526544257300173250ustar00rootroot00000000000000‰PNG  IHDRàh�7( sBIT|dˆsRGB®ÎégAMA±� üa pHYsÄÄ•+8tEXtSoftwarematplotlib version3.1.2, http://matplotlib.org/%‹¡J@ÝIDATx^íÝ \Í÷ÿðW.…´\r ¹Î-—Ü/¥æ¶aî3Ìe˜ßÜÉmÌf³ýf˜Ÿ‘ûÆÄ Ã0÷˦\B$æ’0RRºÐE¥ú÷þø61¹lN§ïéõôðp¾ß÷)�êœ×ù\¾Ÿ�YjQ–Ê¥ýKDDDYˆLDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDdf©i´Û9BŸ>}`aa�ö°‰ˆLJrr2ªU«†O>ùD;£?9.€ÍḬ̀oß>ÄÅÅigˆˆHoòæÍ‹wÞy±±±ÚýÉq\¨P!DEEiGDD¤W¯½öîÞ½«éOŽNIIÑn'a˜ˆˆÈÀDDDFÀ&""20‘0€‰ˆˆŒ€LDDd `""ÊRñ‰É�IÐŽr.0e™ÈØD¼·ô(ú.;†èøDílÎÄ&"¢,q2(íÜaûé›he_Vùòj•œ‰LDD÷ÅV?4þúwDÆ%âêŒö˜ðV5ä23Óª9˜ˆˆ æzD<­òÁÔm~øÀ©"}Üe‹Ъ9[ŽÛ Iï»géű€;ô£/Î^�ÀŠÁ�Ñß©‚Vy5ôþznÐŽŽŽÆ… �””„  ^½zê|||<._¾Œ˜˜T­ZEŠQçÅÞ½{Õ†ùÂÜÜ666¨T©råzÔX—�˜/]º„°°0µ±¾ìpÔ¨Q#XZZj÷ȘˆÈ°’SRáöÛ%Œ_ã‹&ÕJ`Å QµäkZõÕa?ÃæÍ›áîI���*$¿ýö[ìܹ3gÎÄÁƒ1þ|Œ9RÝ_‚´C‡jÏÞ|ùòaãÆ�pvvÆöíÛU=�oÓ¦MQ¶lY”*U ‰‰‰˜={6ììì´{dŽLDd8�á±øxÓ¬?Œñm«â“¶ÕQ¤ ¹V}µÀÏ -\i•šiíòo@@J–,©Z±ƒ B³fÍ0bÄURõêÕ1yòdôíÛW;óPxx¸ j fi!¿ 0‘aœ¾…Žó½pû^¾éV ®­ªhÃÐûë¹A'a,X8räæÌ™ƒÖ­[£B… ÈŸ?¿ªI·rfùþüyÿ-|…|œ|ãkÕª¥ZÁ®®®HHxúEÝ!!!Ø´i“ ë={ö¨ÿ›ˆˆ^�ûIɘüëYÔ™º•‹„ßÔ6_S`ðYÐþþþ˜6m–,Y‚6mÚhgzVã{Ê”)>|¸vô8 ïÅ‹#((^^^ðöö†›››V}œ„øºuëT¯_¿þ¯ñe""ú÷nFÅ£Ûâ#øvï% t.�]£]P)-„éù²ttÅŠ±råJ5®+úôéGGÇ¿uAK—‚µµ5bccÕä­çYµj–/_OOOíLæØMDôj¸×µ'á3 ûÔÁ çJZ%k° úBCCµ[ÅÅÅáþýûÚÑî䌳›ÓIkYB:cøJóÕ«WU«YfUGFFjÀÃÃå˗׎ˆˆÈÐÆ­?…ÿÛ¤šáöœŽY¾¦À -à &àÊ•+*Hoܸ{{{,X°@]š$ÝËÇŽC±bÅàââ¢&[É%IÒ2[ZŽ{õê¥}&àøñãèÙ³'|}}ÕåM €­­­j%Ë; ™m--ìça ˜ˆèŸ»r;Ÿn9‡Ÿ�_ÃØÖU0µs ¼f¤%%õþznоuë–šõ,—YYYÁÁÁA�—o˜���:'³¡åK� Ur,­[ h c¹8�³´€ef´|>???Ä2˺råÊêñ"ÀDDÿÌ¿›¹æ.߸‹M®ÎèZ·´V1°Î0€‰ˆ^NƒdüwûyLÛ|-l±òƒÆ(SØøW”èýõÜà³ ‰ˆH¿Î‡ÜÅ»‹�`ÚÎ ø¬[-lî”-Â×°LDDOuðÒmôüα‰Ép{¯>xÅk9ÿ[l‘I¹Ÿ×µ§ðÆ7P·\a\œÖ6Û…¯)`Ñ_®†Å ËÂÃøÁë*Fµz;]�aû»œ �LDDÊŽ37ÑÎíŽ]½ƒå`^¯ºZ… �LD”Ã¥¤¤b »:Ì÷B!KsD»uEφeµ* ˜ˆ(ó»�Î ã§cAø´}uìŸÐyò0²gAåPëO\Ä_Î øNöŽkŽÖÕ‹k}à,h""Ò•˜„¹Ú=�C™BŸÛEwák ÀDD9Èñ«è4ß ßÀ7½êbÃЦ(bùhÙ_Ê: `"¢bëé¼=ï΄DcÍà&˜ðVUXäÉ­U)«1€‰ˆL\ø½ûøÀý8:Ï?ŒVU‹áÊ´vèÞÀN«’±0€‰ˆL˜_ZkW./Úx2“ÚUǺ¡Ž°.À.çì€LDd¢dÏ^ér¾ƒµƒcz·ZZ…²0‘‰ILJF·E‡Ñké1T.a…·.h_»”V¥ì‚LDdB|®ÞA·ƒØíŠÝjbïX­BÙ â "2߸‚©[Ï#*>&¶@£òE´ŠiâBDDdT1‰è³ÌC<�æÕŠ!j^“_SÀ&"Ò1� ¡h?ÿ6ú^Ç¢÷ëcõ‡�ym¯N0€‰ˆtê'ï@¼³è®EÄaóp' kþ:r™™iUÊîÀDD:‡w—ÆûËŽã�º¥quz{´«e«UI/ÀDD:âxmÝÁóB¾êZË?hsn¨Ký©8pµk×FéҥѴiSDDD¨óçÎ�C»ví`gg‡­[·ªséZ·n�%J páÂêãvïÞ­U†N�:¡T©RX¼x±v–ˆÈt-=xçFdl"6 wÂäööZ…ôÈ lii‰5kÖ ((S§NEÑ¢E‘��€èèh¼ÿþû¨Zµ*®]»¦Ýû!¹ïÆ�‰��´mÛV«<"ß²eK8::ª0wss ´*‘i‰Mx€ÖßîǰÕ'ѤbQ\ŸÕoT)¦UI¯ À 4@Íš5‘'O´iÓF�“`urrBïÞ½akû÷1‹˜˜Ì›7_ý5Ο?¯�}Ü¥K—`nnޱcÇ¢H‘"øê«¯àîî®UŸÍŒˆHG\º�ÿóÄÉ (¸½W¿ŽpÒ*¤w8�Ö¬\,-�¹ÿ~”,YR«ÉÉÉÚ­Gzôè�V­Z!W®\ª…+ó¤àà`ØØØÀÂÂB—+Wׯ_W·Ÿ´aúÖÖÖ°²²BñâÜtšˆôaæî èºðþ¼‹C[`D‹ÊZ…L�Á¸k×®*0%ˆ¥Õ{çέòtÒ�>¡¡¡èÙ³§šl•7o^`̘1ê¾ÕªUS“¹æÎ�«>fÊ”)0`€ú¼DDzµÐã2Þ[ê�Ø„dìåŒ~MËk2E ` ^T¨PAÍRŽŠŠR·½½½Õ¥F2ƒyÉ’%¨S§Μ9£.=Z¶l*Uª¤>î»ï¾S¬„„r``  ^Ë•–´——ìííáêêŠQ£F©ûéM@X ÚÌ9€‘?ŸÂ@§Šøóëvpæ,g“ÇÝ�ˆˆŒèÀ¥0üg…b“ñqÛjÓš­^wC""¢döÞKèºð0rå2öQN ߆-`"¢,&+Y½5÷ Î\�B�úvXõac­B/ƒ-`""za;ÎÜ@³oßâ‡îKŽ¢„•v¸:ãC—ŠZ…èïØMDô/ÝŒŠG‹ÿíGpd<8•ÃÂÞõµ » ‰ˆr° ¾Ápšé�Ä䬨�áK/ŒLDô ÿÉý—ûÀõQ±XA­Bz ÷×sƒŽ,X8räæÌ™ƒÖ­[£B… ÈŸ?¿ªåÊ•KµtÓåÍ›÷¯ðqqq�uO§“�“o|­ZµT+ØÕÕ Zõq!!!Ø´i“ ë={ö¨ÿ›ˆr¶ƒ—ÂPù“�X~ø*ö®‡ÝcÞ`øR–3ø$,L›6 K–,A›6m´³=«ñ-Ý×~~~}úÀÑÑñ¯.ètÒZ•îçk×®©–îó¬ZµJ�{zzjg2Ç.h¢*í¥nÐ*_üp(íkÛbi¿†(i�O+’± úBCCµ[I—òýû÷µ£‡]Éò7£Ÿ~ú 'NÄÍ›7 _éb¾zõªj5ËXqdd¤V<<|8Ž;†bÅŠÁÅÅŸþ¹šÑ,÷­S§ŽºdIB¶sçÎèß¿?Ž?Žž={Â××W]Þ4`ÀØÚÚ"66V½’ÙÖÇ�3Ã0QÎ"“¬>ûÕ•‹ĬîœålBôþznЖˈdÖ³\§keeu^¾a>>>êœÌ†–/Ajæææê¼Ì––K‹¤&“¬ä2$¹vX>WõêÕÕç“ña b™e]¹råÇZËÏÂ&Ê9:/ðÂŽ³7Ñ¢Zqü:ÌI�û’é`ë ˜Èô¸t½—Cr ðU{|è\I«�)Ñûë9—¢$"“2mÇy¼³èŠZšcû('†/e[ `"2 ’ñ�û1|ºùœêrÞ5Ú Êÿ}¢ì‚]ÐD¤{»ÎÞć?ž@lÂ,ìS}󪈜€]ÐDDF’’’ŠEž—ÑuÑa”-R›G81|I7ÀD¤K÷“ ÏÇ0â'_¼Û  vŒvF‹ªÅµ*QöÇ&"Ý9p…\·`ÿ…0|߯~úO)`®U‰ô�LDº‘’šŠ™»üÑrö~4­T[G9aМåLúÄIXD¤­¾Ý¯Z½]ë•Æêÿ4†EÞÜZ…r"NÂ""2°ígn èè͸r;k5Æ/C¾¤{ `"ÊÖ&m<«Vµª\ò5ìpuFφeµ ‘¾1€‰([ŠŽKD÷%GÔ˜ï»õJcûÈf¨QÊZ«éÇ€‰(ÛÙp"Ã~:™ö ¬ÐJi¢G8LDôŠÈr’³ö\D¯ï½QÇÎZ-'Éð%SÅ&¢l!"Vºœ�bâϧ0¼y%lÙ ¹–3™00Ýïþ¡°ó+N_�ÂúN˜×»,-¸w/™60Íýɘòë9¼ívPu5ïåŒî ì´*‘iã$,"2ŠRÐl–'ŽD` Sy,íß¹ÌÌ´*ÑóqÑKZ{ü¬GoFT\"¶�j†4døRŽÃ&¢,åºö>üÑ�+Å®Ñ.h_ÛV«å, `"Ê7£âñö¼C˜ïqƒœ*bË'T°±ÔªD9Ç€‰ÈàÜ_ÅèŸÿ€¥yn¬ÚΕ¹o/ý{&"ÊĽûIø|ë9 \éƒæUlà1®9×HcÐ>pàj×®�Ò¥K£iÓ¦ˆˆˆPçÏ�;‡víÚÁÎÎ[·nUçÒ%$$ [·n(R¤æÌ™£�ý»°°0têÔ ¥J•ÂâÅ‹µ³D”]\�ŒG—…‡ñ寳øôm{læˆê¥_ÓªDdж´´Äš5k„©S§¢hÑ¢*`£££ñþûï£jÕª¸víšvT©¢Î‡‡‡cåÊ•˜4i’VyD>¾eË–pttTaîææ† hU"2¶Í'¯Ãnü§…ðÞ�[à¿]jÂ"·$Ê(KÇ€ÍÌÌpóæM”,YRK7nÜ#GŽTÇ111ªå›˜˜¨Ž�?ŽQ£Faß¾}(X° :'|||0tèP9røå—_0}útøúúj÷Èœµµµ p"zõîÆ?ìržûûŸèݸ,¾ì\•Š=zî½J~Ž�7ªo’¹¹9öïßÿWøŠäädíÖC§OŸF‰%´#¨0–÷O~ƒƒƒƒacc£ÂW”+Wׯ_W·Ÿ´aÃü¼VVV(^œãOD†Ÿ癞˜·ï2ƽY«?lÂð%zƒp×®]U`J÷îÝwîÜÑ*Ï÷*çÝ»wWŸGZ½÷îÝÃíÛ·µ ½*K^A‰qÛÒÞì¦ÂsBsÌîQG«Qf À¹råR­ÏŽ;¢P¡BðððÐ*k¹s?rpp@hh¨vDFFªÖ«´ 3’É[äé]Õ2Æ\¦Luûy²°Ç�Èä%$¥`àŠãµö¼i_»Ç¸À¥r1­JDÏbÐvwwGHH’’’ÔlçóçÏ£Aƒª&3¢eÌWþ�‹‹ÃƒÔ8¯­­-&Ož¬‚rðàÁhÑ¢…:€1cƨûV«VMMæš;w® é)S¦`À€êóQÖ¸£6Qp?ˆ‰mª`ã0G”´Î¯U‰èy À¼...¨P¡‚š¥¥n{{{«±^™Á¼dÉÔ©SgΜQsñâEøûû«ñß~ýúaÆŒê|||<UðÊX®´¤½¼¼`ooWWW5Y‹ˆ²Æ¼}—Pó‹=ø3,§?{ _v©ÅYÎD/‰+aÑ »“€é»ü1{Ï%ôlT3Þ©‰ò6œhEÆ¡÷×s0½�‹·îb€»¼/„âÛ¾ àÚª2rçâFdéÓO?U;‘é9}- íæ†×ñßÎ5°fPXç7תDôª=u X66¨X±"<==áää¤Î 6L­f%+[éÇ€‰þî¿ÛÏãËmçQÁÆ¿�sA¹¢–Z…(û2É1`YWYv2dˆZ}jܸqjk@Y¹ŠˆLÇ�¨x [å‹Ï¶œCÇrðú¸×(‹üñN_‰Àƒc S­B¤z=jËFùgÏžU{çÊæ÷Õ«WW;Év~µkׯªU«´{ê˜rº””T¸yü‰qi-߯U‹cÅ QÍöñLjôÀ$X6Η]†$te#}Ù©(%%Eý-\¸0š7o®ÝSÀ”“ɵ½o:‹Ÿ�_S«YM~»:Š´ÐªDúb’lÊÀ”S� ‰FÇù‡p+:3Þ©…1iL¤gz=çBD&.ñA2>ßzS÷ ‚MAœ�ú×(`™°Ð»ñxwÉQÌÜu œÊc÷hgT.a¥U‰È˜žÀË—/g7-‘Îy]G»¹^Øåw óz9`ù€F°ÈËM󉲋§pRRªT©¢f<ôÑGê¤[·niU"Êî>ÚðÞøÆI)ɸý¿NìRI«QvñÌIX.\Àï¿ÿŽ}ûö©c ´oß-[¶DéÒ¥Õ9½á$,2eá1øìW?¬>„Ñ­*ã‹Î5a�?¯V%2-9fôµk×péÒ%¬\¹R]–´`Á-ZT«ê˜LÕ>ÿ[¾ú\ ‰ÂÆ‘ÍðNý2Z…È4å˜6 `25 R0}Çy|±é,ZֲŊ��aW$¿V%2]z=ç,h"ó¿u=–ÁÛÎã³wjáבN _"�` ˜H§d–³„ï½û0ç½:ø°YE­B”3äˆ.èÐÐP5«iÓ¦j›Â­&rɬê  ^½zZåá–‡²ÓRÁ‚Q§Ní,°wï^5ÙKÈ2˜666¨T©’Z3]rr²� ƒ|ù²Df£F�`iùü]\À¤w÷î'á³-~˜ûû%´«e‹eý ”5[½”óäˆŽŠŠÂ’%Kkkk888¨ÙÐfffÚ=žnóæÍpwwWß$ [ Éo¿ý7oÞ„£££ äóçÏcøðáj×%ùRäó*TùòåÃÆ�áìì¬veÊH‚WÞ ”-[¥J•Bbb"fÏž ;;;í™c“žÞ‰ÅVœ€wÀ lVó{ÕM;ûìç!‘©ÊœNf?·jÕ ªe*¡'—$e&&&FµJÓƒZþ•0—Ý–êÖ­‹/¾øñññê>7nÜ@É’%ÕýÒÉ.L“'OFß¾}µ3…‡‡£C‡*˜åëx `Ò«]goaìú?‹eý WãrZ…(gÊ,Û6Lµ\¥+-`!áëáá¡ngæÎ�;¸xñ"Ž;†={ö`÷îݪ‹Y¾ié]ÍMš4ÁرcѳgOu,¤e,-f ñ'IKü½÷ÞS[&æÍ›]ºtÁ¬Y³þú|…„„¨ÿ[º³å¾ýúõS]êDz!Û]í‹eа|QxMj޼¹¹¢‘Þ8ÓYÐW®\A¯^½TànÛ¶M…£,È‘¾âÉ®á§ñ÷÷Ç´iÓTvÛ¶mU+ZÆp3†¥´€ãââ´£‡¦L™¢º¦ŸFÆ�/^Œ   xyyÁÛÛnnnZõqÁÁÁX·n6mÚ„õë×?5¤‰²+ÿwñ΢Ãp?|ÿ÷vu˜Èð%2™¶€cccÑ¢E `U«VU-ÒÜiO|¹-ã·�7FçÎ�µ{¿˜Ê•+cÙ²ejœWZÆ™µ€å�Œ5Ë× “·žgÕªUjýjOOOíLæØMzñ‹ïu|´á4‚îÄâ·±.hmÿø QNg²-`éÞ•ÙÇÒí,ôß¾}õë×Ç;#???Ä2~,]Ûòƒx `Ê®vœ¹�î>i¿ßÀâ¾uÑ£aY­BDOc²œN&PÉ„(¹›\›+3šåú[½bSv›€IÎ௫èÖ ŒºÄ¨P�Go>‰èéL>€…ÜE.ç)SFÿ»«0€);ñ¿��+}qîFF¼Q 3Þ}ÔKDDÏ–#Ø”0€)»XïŒ�7�ATl"Vý§1:8”Ò*Dô"ôþzÎÝ�ˆ²XâƒdôøîÞ[ê� E-9¯+×(be!ßÀH´s;„gnbZךø}ÜZ…ˆrvAe‘e‡0åW?DÄ%âÀGÍѤRQ­BDÿ» ‰è™¢Ò·ßÇ0h…Þ¨jƒ¨y�¾DÄ&2¤ý—ÂÐ~žÖ�Æ‚¾ °úÃÆÈŸ7�V%¢œŒLd k�_C—…‡‹ÍÃ�0¢E%äÎŧ=ÄW¢WìFTî»ï¾ÃW_}¥jÊ2N,Á+c¹jLY&i¹ººbÔ¨Qê~DO ½�êŸíÆ7»/ Oã²øãó6Ü>�ˆŒŽ+a‘IÛè{o<‹)Éø¦›z4äD+"SÁYÐDÙÔÈ5¾è·ü8r™¥âè¤V _"ÊVÀdrüoÞEýÿî…ûákÿf\šö6l åתDDÙ˜LÊ^Wñö¼C¸y7†6Á—]jj"¢ì…L&cʯg1t•/J¾–{G»àíZ¶Z…ˆ(ûá$,Ò=ß Hügå øßŒÆçíñÉÛ_¾”ˆL'aÑæ“×ÑfîAÄ'>€û€† _"Ò 0éÖGëÿ@¯ï½Q½¤v�vAïÆå´ QöÇ.hÒÙ>ÐùODÇ'aXóJ˜Ù­¶V!¢œ„]ÐDYhå‘@8Îð€U¾—ÊűkŒ3U(ªU‰ˆrƒÎ‚ŽŽŽÆ… �””„  ^½zZ¸~ý:Q°`AÔ©SG; \¹r·o߆|Y5jÔ€µµµVy$99—.]BXX˜º_JJ 5jKKKí™ã,謷÷ÜM üñîÝ€ùïÕA?Ç Z…ˆèŸÓûë¹AxóæÍpwwWß$ [ Éo¿ý7oÞ„£££ äóçÏcøðá5j”úF¶hѯ¿þº Ö[·naùòåê8# Þ¦M›¢lÙ²(Uª1{ölØÙÙi÷È8뤤ý —º‚1kOÃÁ®¦u­‰VÕKhU"¢‡ü 111ªUjff¦Žåߨ¨(¼ÿþû¨[·.¾øâ ÄÇÇ«ûܸq%K–D@@*V¬¨îß·o_”.]3gÎTÇéÂÃÃÑ¡Clß¾666ÚÙÃÎ ’ñ�»Öz¡W“r˜ß«ŠäFDôêèýõÜ cÀÒ½�#GŽ`Μ9hÓ¦�êRÞ³g>ùäuŸüùó«–ñ�ÔqzøŠ¸¸8)RD;z$W®\ê_«V-Õ vuuEBB‚V}\HH6mÚ¤ÂZþ_ùÿȰ|#QØu3<.„aQ¿X3¨ ׈è Ÿ„åïï�iÓ¦aÉ’%hÛ¶-.88ëÖ­S!¼~ýúÇþ_zµRÓþ|³ûZüÏ +ÅÖ‘ŽÆYÎDDO•¥KQV®\Ë–-CûöíqçÎ�¿Â°I“&;v,zö쩎¥µ*ÝÏ×®]S-ÝçYµj•+öôôÔÎdŽ]Іóæ·°Ïÿ6:×)…Ÿ7�EÞÜZ…ˆèÕcô3„††j·ºwïžê‚~óÍ71cÆ uNºŽ�?Ž7ÞxCÿôÓO˜8q¢š¨•1|å~W¯^U“³dVudd¤V<<ÛrmæDûš¶Ø1ºz6,«U‰ˆèßà$,zª”ä4›å ï€ôoRË4Bî\×ô&"Ê8 ‹LÎúÁ°½wb±u„#Ü6fø½b `zÌèµ§ð�ûq4*W;G;£ƒg9˜”Ðèxtœóö]Æ@§ŠØ2Ò •ŠÔªDDôªq ˜°òÈU¸®ýùÍs«MšW-®Uˆˆ²/Ž“nÅ$<ÀÛÎc€»šU±ÁïãÞ`øe¶€s¨�¨x X~¿Ÿ¾�OºÖÄgíí¹ƒé [À¤;[þA™q[x'»&4Ç´.µ¾DDYŒœƒÜ»ÿãןF—E‡ñ^ã²Ø9ÚmkÚjU""ÊJì‚Î!îÆ'Âeæ~œ¹ ×–¯cî{uµ ‘>± š²½e‡PlìV¤š¥Âã£æ _"¢l€lÂ’’SðáJŒZ{ ­ì‹c×h4¯RL«‘11€MT@X ں‡®bì›U°q¨JʯU‰ˆÈØ8l‚æ{ü‰‰¿œ��•9¶�l†:v…µ ‘éà0e±‰iÁ{®kO¡£ƒ-|Ô‚áKD”M±l"þ ½§Ö8r!ßô®�qoVáFDdÒØ&£ûñH ª|¼wàÈgm0¡MU†/Q6ÇÖ±°{ ²êú»ÇZ¼Ž]£�Ñ´RQ­JDDÙ™AøÀ�¨]»6J—.�¦M›"""B«S§NUç]\\´3%$$ [·n(R¤æÌ™£�ý»°°0têÔ ¥J•ÂâÅ‹µ³9ÇõÈ84›é©f9Ö±–õoˆ2… hU""Êî À–––X³f ‚‚‚Tà-ú°u6kÖ,¬^½þþþèÑ£Š´O•*UPµjU„‡‡cåÊ•˜4i’Vy$::-[¶„££#Î�;777,X°@«š6²ŸóÛE”Ÿ´… äÁ±OZá‹N5´*éE–NÂ233CLLŒ Ø;vÀÁÁA�/Q¢6oÞŒF�¡@�HLLTç�?ŽQ£Faß¾}(XðÑæð>>>:t(Ž9 üòË/˜>}:|}}µ{dÎÚÚZ¸Ý‹OÂ�Ÿ|±ùT:Ô¶Å÷ï7@aKs­JD”³pÖslܸQ}“ÌÍÍáåå¥ZÅ·nÝú+|EõêÕqýúuÕš•0N'ÝÐòþàÉoppp0lllTøŠråÊ©�š 6¨à—൲²z¬µ­'g‚£ÔÂ?Ægí±vpS†/‘Ž<€»víªS‚¸W¯^*(óäÉ£UŸíU4λwï®>�´zïÝ»‡Û·oký˜¶Óõ§ýŽÛwïãò×íðíª#g9éšÁ8W®\ªõÙ±cGÕöóóS§Îœ9£Ýj,¸L™2¨Y³&BCCµ³@dd¤j½ÊÇedgg‡;wîüÕU-cÌòñ/" {Üÿµ›Ññö“/>Ýt}›”ÅÁ�[¢b±G]ñDD¤_ `www„„„ )) [·nUáÛ AŒ1BµL¥kYf0K(Ê„*iÛÚÚbòäÉêÜàÁƒÑ¢E 5þ€1cÆ ..ÕªUS³¥çÎ�«BzÊ”)0`€ö¿šß ¼ívKöþ‰¥ýëÃ}@#ØZçÓªDD¤w ` ^¹Ì¨B… j–rTT”š =~üxôìÙS©Ì’ÎØ-|ñâEÕ"–ñß~ýúaÆŒê|||<UðÊX®‡‡‡S¶··‡«««š¬e RRR1ߟhðÙäÍ� gg´Ã‡Î•´*™ .E™�\‹ˆÃÿm:ƒ5Þ×0æÍ*øäíj(fÅV/ÑÓè}48›ð¿�vóáft¾îZãߪªUˆˆèiôÀŸ„EÏ–ø S·úÁþó=(_Ôg>{“áKD”0€�H.+ê¾ä(fî¾€þMËcçhgTµ}|Æ7™&°‘½®ÖØuî¾í€ù‹]MDDúÇ6‚‰N£Ù7žHLNFȬÖâu­BDD98 †ÇàýŽaÖo1<-tMlÉYÎDD9gAg‘ýncØê“¸p= ëF4C�/¶r=gAÓ3%%'ãËm~hñõ>”°¶@àÿ:2|‰ˆˆlHnÝC�%Þø|«&w­‰­i-ßrE-µ*ådì‚6�£—ï Û’#¸Ÿ„9ïÕÁ çŠZ…ˆˆ^vAÓcb`üú?à8cj—±Æ…ÿ¶eøÑß0€_¡ ;±è²ð0ï¿‚a-*©…5Ê) U‰ˆˆa¿"{ÎÝB;·CðºŽïû5À¢>õ‘ËŒ›æÑÓ1€ÿ¥”ÔT ùÉWm¤`i‘‘s» o“rZ•ˆˆèéÀÿ‚ÿÍ»è¶è~8€�ÛTÃÁ -�Ï<·V%""ÊgAÿC›O]Ǹu§‹ÝcœÑ¦¦­V!"¢¬ÀYÐ9̽ûIóó)¼ãæ{Û×6§3׈ˆ^ø%È5½}8·}âëžµ±q¸#l¬,´*Ñ‹c¿Ë|yР\¬ø þ¯�=òååx/ý3&""]â0½40‘´ Zº.]º„„„.\öööZå¡sçÎáÎ�;¨T©Ê”y¸E_xx8þøãäÍ›¹råBž�|Œ““víÚ…ŠßQèÈ‘#xï½÷píÚ5íÌ‹a™½¿žt Xº–%|…tK«VŽ¥Å*¹_¨P!U“�;†[·n©ãtóæÍC½zõþ¾B‚ÚÒÒRuOW¨PnnnZåq!!!*à·oߎ={ö þüZ…ˆˆÈx²ä2¤èèh4hгfÍB—.]Ô¹Î�;«ñ_ سgÏâÏ?ÿÄÁƒ [i1÷Ýwê¾O’ω²eËâÔ©ShÔ¨.^¼ˆ×_]»ÇCÞÞÞ˜3gŽ k+þí·ß^ºÕLDDÙ» _@Æ Ñ©S'L™2E;$%%©p”.Q¢†Ž-[¶¨@È5kÖT¸^Äûï¿�*Uª<ö< » ‰ˆL» ŸA&FÉÌçÿüç? F VgggÕ"Þ±c‡ ÏôðƒÆÿû_íè! ëëׯ«ÛÒ–®l!ÿ�‡‡êÔ©£Ž‰ˆˆ²;ƒ¶€å² OOO 8P�)RŸ}ö™jñ~ôÑGj†´Ìt¾wïV®\ùW_¾|•+WVµÜ¹-÷(!.“¯öíÛ‡U«V©¿666¸qã†_Þ¶m›vÏÌÉס‘^Y[[«Æ˜^4€elWZ©÷ïßGJJŠš€%­T™„àà`u­¯ƒƒƒ£M'] Â2>œÑÍ›7Õ,jç•ëå>ì2‰KZÚrÍðóÈ8°\%áþOÈÇˈ۷o«ÇdjäñÉ/µôP¤÷0˜ùý“ßEyâfÁL–“çTñâÅÕU¦øøøÔ¿û”ï‘ô|Š˜˜õ¯eɰ©‘Ö¶´ÚMÕ‡~ˆwß}mÛ¶ÕΘ–Ý»wã—_~Á²eË´3¦ÇÔGùÔ·œð|\Šò�w_¦LZéï.M‘<6Sl9edê¿£|ê[Nx¾ð?`Êï¼…tó¿èìs=’Ç&�Ñ”™úï(Ÿƒú–žƒ/"÷Ô4ÚmzA2Þ\£F íÈôÈd8yŒ2ÅßÉ㒟ߓ닛SÿåsPßrÂsðEp ˜ˆˆÈØMDDd `"""#àðKÚ°aƒÚ¹I®_«U«–vVŸdó‹µk×âÇT×lW­Z ЪP ›,Y²Dm%Ù¬Y3í¬>ÉHË÷߯gݺuÕ9٭뫯¾ÂÑ£GQ­Z5,XP�×Y¶U6#ùõ×_Õ±\'/³„e­ô ¨ÍHdÁšR¥J©ºÞȵr¹Š,À#kÅËb:éÜÝÝUMfÕÊï¯^È:K—.U—âÈõ°åË—×*™?ïä1Êù+V _¾|Oݤ&»�õdœåË—« e¼W~'e~y½Y³f�ÚÏ]––ÝñÒÉë‘ü<åwºqãÆÚYÓÅðKX¸p¡ZÉK6–øúë¯ÕÆz&/Ìò¢&kuË“A6´H'»SõêÕK“l`Ñ·o_­¢Oò†ŠŸ~úIË"0òâVºtiµ`…|ôH6 éÖ­›zã$�Af–Ê剉‰êg&{n˦&]»vU÷ÕYbVö—êbÅŠ©Õõd1yòdõ£I“&j¿p=]SzîÜ9õÛºuëc+ø=ëy'×Ëžçò<•µïÓßpeG²h’,1,?«ùóçÿuI•¬��� ×Ç£yóæê¼�×#WWWµX“¼É˜8q¢V1a2 ‹^LZ )Õ××WÝN{OM{’¨M…••UjZ«Ûvvv©i/~ê¶È“'OjÚG;Ò—ˆˆˆÔ´Voê¢E‹R;tè Î¥½`§4HÝR_¹r¥v¤io"RÓ‚'5í…î±ßÅýû÷«Ç”.í cjZkGú‘:©}ô‘v”ªžsi¡¥nËË×õë×Õm??¿Ô´VVjZkKëÅÇœ:~üxíèéÏ»“'OªÛòxÔmOOÏÔ´†@j||¼:ήäkO{ƒ”šö†P;ó8yLioÕm õ{œNj�M[À/A–Ê2½éäù÷´ç�ü®ž?¶¶¶u×Êp‚téf÷Çû¬k}eèG–Ü”Ç!-f¹68ã†<òZ«Çל—Á~AÒ­'kMËx�Hß$⟮)��HHɲwÒ­.äI#�+oÞ¼êXȘSÆ ½øüóÏU­Œ—É‹Wú·<yÑN'ã¿z] U«VjLM†H¤‹OÖH–18y“˜N¯??yq T/Æ2N*Ý—òØäÍpƱCSx>ʺÏO{ÞI0=ùxe½oùÞèõñÊã‘nôE‹©ã§­y­×ßÙ—Á~Aò /­'yq2Æ&¿ü7‘ЫJ•*©«ÆŽ«Ž¥¥(ÓÇÚ„ÜÖÛ$yá’�²dž¡üœz÷î��7ªÖ®L É8&*- ÙSoäM„ÌIÒʕǮZ¿!!!ê¼�†ŒëMÓ¦MñóÏ?cܸq˜6mšzŒ³fÍ‚���Z +ý…[~Öò|ÔÛD:y]‘¿"³ç�lðòóêÑ£‡:'¤·FÞ�?^Ë39÷äŽx&G‚éÅÈ¥´_ˆÔ´'BªƒƒCêéÓ§µŠ>Éù(R¤HjZËIÝöòòÒª©©õë×WçerÖÑ£Gµ³ú5wîÜÔ† jG©jr�Lü�Ç÷ÕW_igõ%­e›šö•šöb•Z½zõÔmÛ¶i•T5©,­Õ›š/_¾Ôþýûgû ;O#èjÖ¬™š@ê¯LžK bU“ ‘i-}õ|Lk)§^½zU�×ùZåù–þWžƒ{÷îUµÌžwûöíS“´òæÍ›úÖ[o¥†……i•ìG&ÃÉ„¹Œ�ÑÍÍ-5í�¾ºmccó×kN`` ú˜´�N­R¥Jj�Ô÷ãâÅ‹ê¼)ãR”DDDFÀ.h"""#`˜ˆˆÈÀDDDFÀ&""20‘0€‰tFV†:uê”v”9YGWîKDÙ˜Hgd ¿¹|_Â÷äÉ“Úe7 `"‘åPÏž=«6`xֆ철,Û(;e$KÊ’²æpÑ¢EÕòœDd `"‘ Ùe >YßZÖzÎLpp°Z_6-È(}÷»wïªÅî;uꤎ‰(ë1€‰tdß¾}j£…çùã�?P¤Hõ7#!„ø‚D¿Q>D*� E¥-¡A%4JižNœ&Ž]ÛqìIüÛóº3sŸçµι“q<~µEbKG÷œ}t÷Ù¿ý_{ïµÖn ÔŸxöªïæ¿ôÈ�4qÍâA(å� 4ã0Œn¦ ¹‰Î;€›ß[ É?ú ƒyAð—ÀòÇ>ð•8 _¿™6Ü•*—A�MÀmÀX>jÄ@ ˜&� @ˆ—ÀM@Ý Ü™ß‡@ùfã �eÙ|Øø×h#Ú9Ðñüšì ­²W¹ÿù@–Aì~¨å [E°":°'DÕ´Ô�Àð.pxèßÐÏ]V2­�Àg—A`5¨Œ'‹Þšh¡PMû®ŠhË’i¯ϸå¸küTGµ&èÝÀNà4ð:ð6Ðý¿ú ˆ<”�îÄæh¶ø[̓kvõ&µ´¸š€DÛ5~<í–{Áèâ�ÒÚù#ÅÕ�¦[ŠõŒêV`sô pëO<ûK‡q½ Xz�Ñ[nÕæìf’ؤ"º§snè«Ó/n]5«Š,­T®ZS´±;’´KÛûS�‡[ï$¼jç@iýÌËõ-³…±n,¨n"MÖ¡:¼àÞ÷à„74d‰–VØå«ŸÉò~­Tâ0¼B‘-dsBúýµ;��{¶¹÷=xVýÀÞ·ü?žyå¶uQ³j" ŠI­1ijLšQ5€zÆø·__¼ÔH÷=ç¥Ú˜;ê4­_ˆ�û<ëTkw¢ï~ë1n_ M¾Üþ�>= ¬fåíÁæêN~dø°:yãeI�èJµþ}îþøÅGf��n gë'I� × ün¿à…‘gRëÖ`#*ÆI÷Ÿo»�¿81§Ö$Š®^36sëîO¿]­Ï©ãtnú“jÓÇ@ cø€yýZbŸ_ äð_Àh·SŽ_ynÛЇ÷Nïîž6¨XD ínq¨9_uÃØ'qÐê<‹Øž5/<>[íD©qŒ Àg¶4ºŸë¼ºõùK/=5²çüIÅ¢ê�)™©|y1ך+)åæ„O¿C¶R‘?º¥ðÞÑ# ·(àĉS�kÖ�$ñt³¯zGÃxrYD„“çºÎ«“m_D° k+Aú‰ �^5é]8ºaO²ñdìöX*uC׋ ˆÆa@’xËæÈ,ÙÆ¸RI€Þ qâÁ~à9à1DÐÖ|=Þ÷ãÛ���% ê$‰câÔaÜUýh ’YªB7Z©ÐI!ÃÓ/7ƒ‹S¡c¬U~õžz´kURYìôã´TׄÍêWÊZÝó{ýniûÙcþh;ùÎã÷Û‰£ÛóQ Qý"û¯¢ÀÅ•�Ì¿ùgàÓ@QT¥søàÖÙÝ÷Ÿ¸%uŒªˆ¥æ8DdátÏa*B+(Ðï§òãWgƒÔ*"B©äêÞ‡n Ým¾W}m¡±ØÑ¹°\ ®ð`- v¹§Öü Q=ód!ˆ{hf1"ÈÈø¬_;‘ÿÄ7æ;.·ÅŸû6ÛŸ�9|üôˆÑÄõ’Ä÷béYH3½N÷ ½ÂáÌÉE÷Ü©EODPU6l®ÅfÍpü®ë!{}·æ/6Š­NQ�T¡·Ê_œzmënm®²šÛ¨ã¸Þ'>ûhñë{ù›ß§üø‡á׊ ù‹Eà_ò9ƒMSgß‘Sã�(1ê핻̥ÐÊH›}x0ET•ƒoLºÝDDÀq wÝ;Ö÷‹®žìNz>ú‘À­VÛ�ÊüÂ�XEÔÓÔ”I¼¥�DAÊ•ÕöØȵˆ•ø!ph0qßžœ¯<;WvíUJ½8ñB9™I]u-Ž &9ÌÍöÍÛ?›õ³mF/&w~hU¨63êS]Äx${ ¦².¬Õæ†�8q¹"°ŠE©�Ìõ`–@rU¦�oV€N;Ï9·*IU¬ëÚv½º¨ï&–Ù”º¯Ô\]2«c‡çü™©ž›™ÜùáUac¤`5w18Û3�<Ú;‹Rü�–ë½¹U~·,'qQsO|±^´±(R~¸p®³ÒzýïÀ‰Ìl„Ÿžš©½3Ý  _)õ{Rjs¨�—(ŠO S9øÆt!I,ªP©xö®½ã¡\¹?0 ?k;L¯-àÝë5™_UŒ"`£F”Gûï­ÿÊÔ K6‹À§€_¹–2—�䪜¾¨̶Cï»G§K± ÐnÔZÑ´ÓãhHõ¬/)“gÛÎɉ…¥I¾iK=^¿q(±ö «A€v*m9œ¯ù˜û7¨ã/÷¶<¬ydñغ¯N½°iȆfÌÞ«Í™•QàIà|öa•�_~µôŒ€uŒ]l Ï'ÇmdNF¬/¦œ>4´Z±×5ì¹w¬ïå*E€ÐÂñ¶ÃißÃ;—¹�Š`Tå�ÖÄ­2ýÒ†’�D3wæQ²˜çŠPü �\•w€ÿ€lÒ÷ç›õÇßiÉ%¿ÞT’ÀK«ÃM{(‰wÌ¡·fTQ«Œ¯.%Ûw6"µWåX‚IÞëæ"YÑ;TX<±ög_[çjŠBø °æFHÉ&ý,€XkÞ;tdÃ?y[';N‰*Q1ˆÚåá¹}Ï4åÝ3×��w�†õá‚Õks\ö¡HeiE‚0òsVT>¹ðöºÏÍËCˆq²�»´\•ArUÞþ;k]àÒäšg�](<µjÏ{‘¸V€vàG?8×1ýÈŠ* ×}û«éËUs3++sÙ³@-jW‹­N1334q»ypÓ=Ý3C©˜ØÜ·üï×ò2#² ² @{Éþçïx²´cú™ÚŽÓj{rºU84Ù¬d¢rïíÕèÓÛ‹Éj?å&X.+ê€l÷L%Z¬û½ÐÏ`D‡Ónዳ?ÝØHºž"ø°z Š¹N»//†NÏœÜykÕ·Æï?ó\mÛÙçOL 5;¡/�ëØ‡kõVíD¤[ý„ÛË)žY!ñu]Ð1g‡ëÍÏ×Lš…ÕÑ­ý©áGŽŒZKGÝ7`¸*Hn^2g2AûÝRúÊsÛû8úÞŽ‹OM̪ŠUeݪroÛ¶ ÚNÛÙßÓõIÂΡ”aïý ñ†Y¬¢·ùx�´Pn¶*ƒzkh�X=·ü|¾ìFëO<{]E~¼1xHOÙ¢§OT[G�.ÎÌ6D#ÂÇnŸ®—Ã…ÆðBk®<¯/õÓ‘K!»* ›K–¢É¼€•€Ä¼_�¤*Í®�m¥~§â…‘7Peu¼X¾»s¦šfªÔ€­×5­\•&Yà•f±ÊB-þÑSãéþç×G¾ªR({»wl¼dTEE´SjÏK}&z=ízl¶1®¥l(f@…”ly/Ý%�8QNžé¸(踋©¨S\l/e=M��ý 5“-‹B–¾rœëÉá¸.dññ§ÈÒ¦b'OtæÒ(ªô¶ÇÛ¿þ¥ý·&‹A#é *©ï¥¡_ìë´µîÙžWkÃÂHJŽbÈ|2Œ0u©ç98@æpÎ/Ææî;jñøX`Í¥g&6QµÜ×±ijeÞÑ µ­3šEbpðº 6Mq\·E6¹Õ:ª™íº^â=ò¹W/îúøäëŵM£š¬Ž[¥¢�=ŒÑ¨Xˆ" úr6Æ�ì»�Z© £ee¬ ŒúJ݇_›)t{©#ÌÎÇæ§‡ünßJ23?™ã½„—NΔŸzóÔX:<:wdÝî ùžÛ\d™*É2�õË^zÞ›þ¾ü=§T®÷ÄçÍòú…c…ñfÑÆ¬J:…‚&®uÝ´_*öãÄ‹ä\Œs&tÌbjûŵYrüÛ@ï†@rˆbþ§Çòê²£‡çÉ€¸ÖB¶Êíʯ[ñRë¨e$éx·‡Ó¥íý©ÊÆp¶2–´ŠCièš8.*"Fcã¤óN)˜4Îó]Ë«þøæ2³ú7à÷ã0ì¯ÿ¨ ÙzYv~8‡R@=µ”lèTÓЩØÐñmbR1Ú1~ÚtKÉ¢)¤*‚£Ö�§€§ó_–@ò�æ#x‚lm”€,nþ°.¯›Í•ya¥ÔÌ5€„l7^Gv¤·X”\EÉ+QE²'%ËîLÉÎ\ƒ† ü°8œw¶ÜM–¯å�±Àߤ׹Ô`�j9ÌÙ^UÉë…,\éòþYåy²³K–C,'Kdßuýyø*0w37µ¼OƒKYáLq¥C¢Ƚy7]ãÛód>×ßS¿ÄM‚]µó+�xd^äCd ±�ÀP>"sdG? ‹Ob€_6È/Z–Ï‘AqrˆAe‡A”øÿ`Pþ _+»/Ã%tEXtdate:create2016-06-14T20:46:12-05:00 ØLh%tEXtdate:modify2016-06-14T20:46:12-05:00Q…ôÔtEXtSoftwareAdobe ImageReadyqÉe<IEND®B`‚unyt-3.2.0/docs/_static/yt_logo.png000066400000000000000000001651611526544257300173020ustar00rootroot00000000000000‰PNG  IHDR ³æõi1bKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEà 2ž°X° IDATxÚìÝwœœÕ}/þÏ9Ïô²½H»ZUTPolÓD/Ƹ`bŒmŒ�ÇvÛIî+=ʽñ}åÚ\“žŸãëà Š-Û¡ju+ ê]Ú>;[¦—ç9ç÷ÇŠ¸€`µ;;;Ï<Ÿ÷륗(ÒìÌ÷<í3§DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"X"""* ¯ây'}`)å#–e­cÓ �‹% ""¢B>� !nrØg^Ãf'º„‹K@DDDDD DDDDDÄBDDDDDÄBDDDDD DDDDDD DDDDDÄBDDDDD DDDDDD DDDDDÄBDDDDDÄBDDDDD DDDDDÄBDDDDDÄBDDDDD DDDDDDçb ¨l­Yã¦û‘pÁ/|Èe´ôAJC{‘ׯ¾†på!T–6!­<òþ¡ß�\Ɇ4Zžg¡‰ˆˆˆ†O°dZKüû¦0ü¨T « eBWBë4üÐ:Hcìß”² DÐih™†@Z¥!‘€– ‡iÅáv'�ÎÇaÕÅZˆ¨Ìù¥”)G=L ñ˲~Ȧ'b!;ZµÅ…YV-L«BÖA¨:(Q�z@T@‹28fuèƒÀ,9eB¢F`Ç7bÕ*Ń�ˆ@@ˆ@ˆ éÑ-Up[M°Ð©› Ð�Úò£¡¬¡p""P2aF!EiÅ—o퇚1€0€1€½ŸµkôO…RSLD3 ü,Ì¥ž±Ê„ݪÚÕ %ºáIvãØÞ>öš9×nª…PÓc„š  �=E&†è„D;²¹h;\™aqˆˆ„„ˆ„ÊÏ?®ó¢Æ3³5JÔ±(%! ¡Û¡¬£>×yÜ»2Á²ÙÏšmõÈçæÃR³L+ΪS4jú qJ�ô9¤kÛ¸21€0€1€Piúá³�ðB¨…Pr" RW­ t¤8 K��©Oã·oëcaˆˆ„„ˆ„ÆÇ¬«‡t-�!B‹ ,ˆ#® ƒ8 ¥ÏÀ­Oáè®.Nr'"";kÖx� /‚a¬€S9�Üá¤Î@ë3Pò$<Ö ÝÝÎ@BD D 4z�¯›WA‹%ÐÒË‚ÐE®Y@�ƒ”Ç sÇqÿííÜŸ„ˆ@ˆˆ„†gÕfª¥Ðú(p^�äJ’ô CÆ:Æ9$D DÄBïö/kB¨ª¹ WC£’¡ŠBZÇ¡õq˜Þ£Ü�„ˆ„„ˆ@œlͶzäÒ×AÉe€p³ 4¦¤² Ä@�À!|ö¦n…ˆ„„ˆ„œàÿ½TŸ¸Z®€’¡ñ¹ê¨>} 0ÁÓw÷Þk±(D D TNžØ^ �º‘ÁƒJŽT9@œpÙÔA|ùî8‹BÄÂBÄBvµ¦µ¹èÍ€¸Š»”S©_�´p†>„Œy_º#¢1€0€1€�ü Õ�ÐÀÕPê&.¥K6…°CŠƒpœâP-""*EOnZ��ÂB ‹Aet¥JúmÀxÞÞ #D D 4Þ~øl#ü��A‰Ù,•7�†Ð‡ 䛜ÄNÄÂBÄBÅöƒV7üƒ·Aèk Á æä0* !Ö›8¹çV­R¬ �•ÇÖOƒ÷BËzƒx5S)‡!䛸ÿÆ#‚a„ˆ„„ˆ„ â­núop=´`1Œ1€0€1€ÐYýòlhëÓ€¨b1ˆ†CÅ`ˆ7‘Uûð¥[ϳD D 4ZK<ñòMÐêföz�ôЧ»!ä›Èä[ñÛ·õ± D D ô^žØ^ •¹ZLe1ˆ D4€³hE_~?~ÿŽ,‹BÄÂBÄBðøÆP¸~ƒh,è< yZïʼnG¸’ˆ3­ÚâÂe¹�CW±DE #¢ùÜ^|éŽëAÄÂBÄâ �­B@a:‹A4na¤ ÂÚ‹Xl?¾~o‚õ ba!b)Ok67#£ä*WD%s•4!ÅA˜úU|áÆãB³(D D åáÉM aêûáf1ˆJñŠ©±¦k'\9À‚1€0€1€Ø“Ö«7Ý�›¸Ä.‘ Heò´ÜƒÏ­<Æ^""ûXµJbÆGî�+X "[^EÍ^"";„�-.Ì0? -²Dv¿šj è€ÚƒÏÝú„àr¾ÄÂBD %ä×yQíy³X ¢²»²õŠHß.ÜM? B DÄ2¾þeMáêßÄ$ƒ¨¬¯° ЇaªÝøâ-G9W„@@ˆˆ¤ø~°±~ñ€ƒÈIW[�;aµµâÁ3,1€0€1€ÐØ[³%„¬ù»Ð¢‘Å rìU7 aíGÞ³®ìbAˆ„„ˆ„ÆÆ÷wùQ—ü* šY "ºë3€µ�“Ö‰„„ˆ„ ëÑ->¸¬‡ ÑÂbÑ{ˆÂÀTT½Š»–§Xba!b¡‘[³Æƒ\Íï@a‹ADïEV&€7ß+øüµ�,1€0€1€Ð¥ùA«þ¾¯’჈.ñê¬OB™;ñ…ÛÞæð,ba!b¡¦µÀã›>ÏM‰h”“@o‡Õþ*WÏ""º¸ÿ\ÿQãz‚ˆ sµVY@¿Óó \9À‚ýÒc믌O³D4Wm¡�@a¾pó9„@@ˆìÆÅØ£ëç@ÈO�ûÑXÐ�Ðb.€¹X½ñ „x÷ßx˜»¬‘mB;KP@?Úо-½,�¡» ÅVœ0öcÕJ“¡qÆ"b)Š5»üȤ¾  –Å ¢ñ¹¢ë„Ü…ÊÊÜO„@@ˆJ•d @k�lâ~†"ßk‘Aé[0Ð÷WX½á>¬ÙVÏ¢QÉ…v– Voº·²DTbWx¡ ‹—ñå[:X*ö€Ñûâ$ôÑzbÃL(ÜÌBQÉÑ�Ðr1ÜXŒÕÏ@êõ¸ÿ–ã, �khg FáÑ-U0òßd�Å "{\õ5W΢±Æ"bkÖÈÔ|ÀdƒˆìG·Ab3î¿émba!b±ƒÕ›nƒÆM,Ù›…Ð;pÒ»›KøH©ú�õ-ðˆo@IƒÅ ¢² u?´µ ©º=xhyž!"�RñƒV7}߆–\Þ’ˆÊð®pa/‘ÿv|ûÃi„@@ˆ �û€\òeµÿ.†"*[ïì%Ò�ü3<¶ñV¬ÙågQˆˆ¨ ¡�%¸ÿ¹i¤þhÁºÑ¥gW•—^�{ÏП”~+/$'S)Þ%²€Þ…ªÌÜuwW§a]îØBD …°f—™Ä²‚Åpð]ÕÊ͹~o}.î©Éǽuù¤7h¥ÝA+ïòYyW@g]~+çòhÓåµLCj-Ü0 Cëa�k9é¶”†ÎnS +ÜfÚåɧ…ÇL ¯™t{Ì´ô˜ƒ._~Àä¼Á|�»2qWä`hlé l‡;¸ ÷rh1€0€�7"®lò†g¨É§ÜÓr=þI©¾À„쀿!÷׿ãþj3í÷¨ü˜.<ðÎëûÌü/ÏÍÜðþnJzòI—'7`³QW(õ„3½îp¶ËÎtzj3ÝÞpŽ­K£xÄòÁÂÍP©k±z#{Dˆˆhäw–`Û8¿Ç¡Wå§%õÍIu…¦¦zB-™¾ðÄÜ`0de¼åøYóÒ°¢®`º×[‘êq…Óžªt{ &}ÊÛ�йü\~•.õîÁ¡Yt1ì!"�QÑZâ±�ß„�M,†½¹´)f¤{óâ³Ò]•S3=U•fy†�K•�Þ\�¯"Ùí®Hµyj“gýµ©C¡Iñ´t+V‡Dˆ„„ˆ¤˜Vo¼Z|”…°§)©^ÿ•ñ“5 m5“³½•eqï–aR:â®Hž÷ÔÅOëâG�ñc�æ¤É¹&tÑ b½Ž\f3¾|wœaa!"�‘xtK\ÖCƒß’Û„K›âŠØ™ÊeñSµ—':kkÌ$—- ¼�ªÛS‘8ç­�Ÿ Lˆ 5ÇÎøêÒì&¡_ÞUT�ÛQ•ÞÆ"b¹T?Þø ¤˜ÇB”6 `IìtåÕƒÇ&ÛêfÖêOVºÍv_Uüœ§6~<ÐÛW1)6à q'mÞ]††f™®Íxpe†aa!"�²ú¥Ë ]_e!J×ôL¯ÿ¶È&Ï5p.GéÐZ ÇNœôÕ OØž2È@â仌JAÊ-HTíÀCËy0€0€ÈEŸ Voø&`4³¥Å­•XÙ°îº�#§¥z«8ÁúÝ�ÌIcÿ[¡Iý­3ú\>ˆ:în£�b+ŽÛ±j%W]ca!b¡_óãõË �ûXˆÒј�{>y½ùŠØ©‰A•s³"öÎ÷ì!q0©ûlƉ�¯aÕ*Nba!b!¬Yc Só?Ô²ãoJª×wtoóòØé‰n­$+Rž�¤Û[‘8œØÿzxZtÅ´A>•:ák>wëÁ®L"{rÃu0å],Äøš›<úDdßäyñŽz>›8KBzsÇ‚ûÞ ·ôí©¸¬Ÿ›$–9‰Nhs>Û›,ˆó|—õ‰?…–c|4å¼÷uíž²4~f‚ԚǧÃ)!t�»"ùVhRôÕŠÑáIqöŽ”kÑg¡­ñùÛN° D Îñ؆;y Q|µù„ûþ®�SVÄN5 tƒ†/{,41úFpJßýÜ©½,ƒÈQXr¸±�Å`a!b)o�nñÁ0ÿ>£x\Z‰{»_m¾µïí©•ç.å4lyiXGúZ+¦GvTÍìKJŸÅª”Ë�IkHy¦^‡nв D åiõ¦›¡q+ Q<Ëb§+¿ÐµsfC.d5hTaDHu:Pßÿf`Jtk͜ި›«j•©,@¿Žlf=¾|wœaa!b)?hu#ÐÿçÐ"ÄbŒ½š|ÊýåŽW¦/‰Ÿ�À}<¨Ð,!ô_Cÿ¾Š)½[«FÊäN5´«z~~ÿŽ, ÂÂBÄbOl¾–þ 1ö®î?Ró@çÎÙ!•õ°4Ö´hóVÆöUM‹¼Rqy¤ËWŇW[ß±t°6ãs·î„œÿÃÂBÄbSkÖÈTÿ) ªx8ŒáÝHååï´¿<ýªÁSÍìõ ñ#«t³gÄÎw.ÔKÜC„„„ˆÄžžzùJäÕ§y(Œ�Åɳ_9ÿÊœj3ég5¨XBª“�úþÖðôȦšù®¦e×;˜>—ëyÜ·ò ‹ÁÂBÄbOlü#Xb…±ñÉîÖ‰Ÿì}}&—Ö¥R•‘nëh`bé‘ÕsúL!ù�ºíîdê8à{Ÿ¿¶“Å`a!b)m?Ù<9ý»< /¨2Æ7Ïo˜5?ÞÖÀj�]$ _ö­PsïÎÊY‘½ÓY[ÝÍ _E.µ�+f1€0€1€”®'6–^Äà°¦gzýß<·n^}.Áåuɶ"žP²5|Y÷¦Ú¹=N^· ©r€ñ ’•[ðÐrÎóaa!b)!?Ú†7õP’›ßЇcÇ«§í•y>n*HeB ¡Oùú·VÏêÚZ=¯7Ï!Z6¹»©A±÷ßô*'ª3€0€1€”nÖýÆ ~ÑHNÑå©Ll¯œÝ±¡~~OBú,V¤ÄI}2ó>{W/‹ÁÂBÄR|?~i¤ëA6îéøÆÙõ—}hðd3«AN”—†õV°%òrÝÜνÁ©1V¤”) 0vÀçß„{?œf=@@ˆ@Ї“Ï >þèôºÙKâg¸Œ1€^w8µ§jZ׆šÅ]ntXÊw¾$¶à¸±«Vš,ÈØzôQŒI 7›áÀ7Ï¿8óŠÁÓM¬ѯ³„ЇƒM½[ªævÙÏ]Kõ¨"°\Ïã‹7d1@@ˆ@Æ0€¼x ÷o±é>ˆŠ!ê ¥vTÍì\[·¤3ɹ"%J�€ð=Ë� @@ˆ@ÆÆêM_�Æ,6ýÈÃÇž]7{)‡]]’Œt[o„'w¿P·¸ý„¿1ÅŠ”ÚÝPk@ïCl`-¾~/W8ca!b)�5[BÈš-$›~d¾v~Óôk�µ°D#×å©L¼\3·í¥ÚE=ÜW¤Ôè4„µŸ»u'„àè9"�QzlãÕ€ø8›}d>ÕózÓ==¯Ïd%ˆ #áòæö†§u?W¿´�»­—œ¸ŒçðÙ•GX "�‘{|Óס0�Í~énì?X÷¥Žms%7$*¸w&­¿T¿¨�Kù–õ6´\‹nв D —fíÚü« ÁáW—haòlÅ�}i¡[Y«A4¶º<‰—kæqxVi… Bï†Ùñ|0Ãz0€0€1€ Ï�×/ƒ4îc“_šÆì çoOþ|YHe=¬Qñ$\ÞÜîŠË:Ÿi¸¢½Ïàž"¥@"è ¸ÿ¦W!Ã!ÈX½þ~hc ›|øÜZ‰ïÿÉâ–Ü@«A4>òBªCÁI‘_4^qî8WÏ*‘ ¢ÏÂPÏà¾[ϳ D ïmÕ*‰^-lòáû6÷ú *Z œÖõo¬š×¾­fn”Ë3�÷Ýó²½^÷ZÜ»’Ëö2€0€1€ü†Ç¶Nò_gsß�‘ý�ŸëÞ=‡• *=ÝžŠÄ¶Ê9/Ö/êNK7³ÈøFáe{OîÙ‰U«Ø DÄrÁê�wB‹•lîá¹<ÕüÓÓÏ-ukÅ ûD%,áòævTÎnº~IGÌ4Y‘q "í°\OãÁ•gX "b[ÿ-Àhfs0/òò»Ç~º´! ²Dö�—†ÕžÚõóÆ+Ïs?‘ñ¼£j %Zá7^pø°,"rxyôQ\-ÿ“ËïÏ×Ú6θfàø$V‚È~,!ôÛÁ–NXgR§¡½›:9=€¬ŸÃøm6õ[;]ùíó/-âfƒDö¦µÀñPCôÙºeçö…¹±á8Þa; ­§ñ…[O3€0€‘“Èã›o‡Ò7²©ß_…™v}ïÄSË*ÌŒ�Õ *ç=U±uu‹Ïqå¬ñºËj ) '×âÁ• D' KÒÓØÌì+[§3|•Ÿ–Ü@ÅC¯Ìÿþ±Ç—Ý=ÐàÒŠ=œE½ K/‚aþÛx5V­âp`"r¼ò¾­ÚâÂŒüßBK›úâ–%ÏTüáé—pc_¢r7è d6ÖÌ;ÿ|Ãâ®,¸„ï8Üu; Å/pÿ�gËøS²„ˆ @æ¹\®‰vûpzÎ’ jŵwô5W\ÛŽ@ù,wéÒJ<|üÉ¥�¹Xˆ§Qñ%3yãH[´è«Îe¤;ÿ¦§¡÷5ߤÞä¸~û ?|Ãyx¼Î C[kåñCbÛ†]b ·ìV-ÓZ{µÖÏ;ìT~DJ¹ŽW4ç2Ms'€4+1ÌçÏáü!Ã0(¥ž²Ý§;´âÐÞ¾f×ù�ú3_9P.ÀgzöLbø ?öŸ¬ûùÎ#-ãùƵ+¼¦>¢¯¿ý1'µ¹xî©+pô­y`¿sùø–Rê[,ƒ£Mp†e(`±,ëgRÊï˜îô‚‰=[––KiÊ xo‰¾5…§ ëØWZ¸•%]¦’†RRj%…áRJHeIiAJ(!ÕÐó¬PJRbX›ZJmIhH¡5¤¶ © 5,C(H©M)´%¥² C™B(Ëúg%…­Ÿávn¯uòq¥—_û&Ï.""�÷Ì þÀß;¾bÑZñÊ SôõwÚ~üîƒ][g¸•eð4pp¨€nÓ’®œéòXJº,Ëpç-ÃmZ†¡´4,Ë0,% ¥ ¡Jsyf-¡-iXy·aå ò\Ò2¥aå܆eº +çq™9—Ë*Å÷~è\$ØÑ8÷äÎë;ï9Ì3‘ˆˆä=)¥þŸ”ò/Ô:¾j›×.…ÍȂĹð¼DG=O�r nSžœéòæL—;o¹Ü¦éòX¦á6•Ëm)©”½÷} Â¥,—Ë´\þ÷ )y·aæÝn3ç2̬Ûeæ=.3íqçóãN¶¼u®ÎÉǧž½à0*ksï6ò—šéEÐÒÒ•Êù©œïW ­3O>í÷dÓ>w.åõæ²WAW¿Ûqð|u&g:wdýÄN,ùp7�@""�Ò à _vüƒà¡7æéh÷NÔ6fìô¾%€OEZ¹9£-†¾lÞHg=þlÎãÍ… ¡À�äÆš†ðes_6穾ðŸ,—a¥=î\ÊïÉÆ¾LÆçÉ�æGl{Ûáï®¼Ž½DD ã”úž”òA8bõ÷a™n±ö©ùú‹ßlµÓÛ¾©ï­ú \v·$ys¦+�ÉzüÙ¼'�Íz<Ù¼‡a£t¦e„LËJeü Ñ,·a%½žL"èË$Þì¥Ì%éè‹{Ou„[L�'«o¿ç(�*""�á:ªµ~Aq—Ó‹'Zw,ÑŸûÝ}pÙg­Û{Læa_Ç_6ç ¦³ž`*ëõçò^#ÏÉlHò–Q‘O+é ä¼î\"èKýéÔôŽlܪNkçÎÁÒs—D°"Ï£ˆˆˆdø7­f�ˆUˆ ÏÌÐwüÖq;¼ÝÇŽWOÈ ²÷cœø³9O8™öúÓY_(“÷@iɪ”O6ï©Éæ=5}ñJÓe˜±�? ûÒIŸ/÷ë×O…W�u8{ï�›?ÁáWDD —l›b�Öú*§Pl[¿Ô.䣽o´ð�/_ÎtSi_(•õú3YŸa1p8æÂjZ®š�DEÍ@¢Âræ`(�ê«ð§²Oþµã�•ƒÉ¬Ç±Å™8© ó–Fy”1€ŒÄ÷¬q|»Ú&áõpÅÕ]¥ü6ç&χ¦¦z«yÈ� -‚‰¬7”ÎxCÉ´ß“·Ü¬ yËUÓ¯¨é�Wd½îÜ?ì?åèèô‡nàÎçDD #cYÖI)O¸ÌéE›ž^¢¯¸úÅR~�Ÿˆìoá¾cp™–Q‘Hù+’Y_ “õ ›oêGc+Kùö·÷9w¤×—Ö·~ò8�""�gàŸ@Žœ­;ÏnÃÄ)ÉR|5ù”ûòdG÷Âð˜¦Q‘HûCÉ´?˜Îyßo£?¢_õ̹¨/ïà�:qþÜ“íÞ€Å#�ˆÈÙF5&])õ(€^ÇWQ)C<ûä¢R}{·÷í›`hÅù£  }±ðŒs=�3Ow55F«ƒ©œ�áƒ.Å mQ¿S?»ð ªôw�=¹äŠØéJ DDÎ5ÚÝ“Sþ À_:½�bÿîÅ:•| � Yjïíª�Óx¨� �+%+)e2ã%³>­9¼ŠFî�hÂ}"–vìŽõ³&Õ ¶ÔUd‘¨øö¹Ÿ Ô÷?>á#'š’<:ˆˆöŒ5ÚPJý3€´ã+™ÍøÅº5³Kím­—ÆÐ3g�;ÄH ¡oZ}&âØÉ熔ú¦ÅÓ¢?ϵ’+ûM¾ràÄÄuu‹Î<[¿¤Ó.žîDD PJýXJùל½ÿDl Jl^;Mßò‰SÅþÑ3SÁ°Ê:fÒ«€õÑx¨~ ^¥¹|çXò¨P)†~  .©åŠˆÞõ¾Þçç¦40`P1 ýÔÀÀ… s ú³y¹«'æØÉç §Ö÷׆ù±zý€Ê¹ïéy}æÊ�ÃÍ?k¼âäÖÊËûx‚94€`è;Æð7ޝî+/,Å8�%‰³Žéý§2ÞÆžþjoÞâf…|h¯P  J ý^  Bõ^”³€ ,ß#¤Ä5Õ@ß…ßû14ôë=-�/À]p…2ÄðQ4éŒ/ïìsì^‹§7öU}%±04wc©>!€/À�°Pu ¥äÙ Çö~L¬ §çM©/ÉU¨„ÐX”8×øð±§V|¦g÷$—V¼æø¨4€[$0[õ€�m(¥ñÒ–¨c‡_-ŸÙ ú<–ÝÞ÷üD{ýßÿÉŠ¯¶¿<=¨2êIDT&–e­ÐéørêèLœ;1f“Ä›òý¶ †Rrrg´N–û°+À õt|Án0€É‚C«llëžAoO4çØØ›O±íR·n­äuýGZ9úäwõîoäÑLDT@À¿8¾ÚZI±öÉÅcõò Ù˜íHSwµÛ´Êw·z× à‹rh9{:ÊÆÓë{»÷Çä†Êäìæº”Ý?GØÊx?Ûµ{Îÿ>¹fÑÌt7¯&"²y�Rê_$œ^pñæë ��É#g�·õ ³*žòW$ÒåwÓ÷˜waŽOÀ| x¹O9éÈËÝ{<ù|JYmô7-Ý[µêÔ/–ÿþùõ—…LçîhODdû À8¾â¹¬O¼ðÔå…ÆÍËJ3mÛ‰”RiÑ�U•U[WahcÀ/ÀurhGr*KϼÔëËç�¹A¦Ïã²®›×ÒWnŸKjˆ žl~äøSËo‹¾ÕÀ£œˆÈžJ©G˜N/ºØýrÁ—ämÊ z¥¶ïPC4VáÊ›åñMãwIྠûtpˆUÙ{aKıﮚÝÜëó¸U¹~¾�•ñ>йýò¿;¹fÑìwS'"²]pÀ/_õÁþñÊ S ù’�Yû.#i(%kc‰�½Så…àñé s;Z¸9 Sì{;î>yƹÃtnZ<µ× ŸsJº·ê/O?»ŒÃ²ˆˆì@ ”úË`óÚ‚.É[›‹Û6€4DcaÛn6h˜+€û/³rœg^tnïÇŒ Õñi�Õi§|^Ckñ¡Á“Íß?6´Z­#"²I°Wk½Åé…çOMÃá7 ¶ o­™¶åX©”¨Š%íÙûq™~K×K ‚ÁÉRi%6íìsìÞ7,šqâ竬ç³]»ç|ç8‡eÙ%€@Jù0Kˆuk–굪L{ö€ÔÄRÛíù1À½rhÃÀ*'{qK¯/•¶yTy\êÖ©µi'·ÿÔìଇÚ^žæWyvˆ•r±,ëEo:>€zc¢Ýùö´ÒÌØ²¤*–´Ï·‡! møQ¨cð à¹�Çö~|lrmzFÏ@me"åwò1`h-®82ù‘cO\qÝàážDD%@h!Ä?8¾ú–ékŸš_ˆ—òéœí&Ezs¦ËŸ7K?8– àþ 8}.m8œpäÞÀ'§Ô§…‚˜ÔÕW[K8~R¥™ò}õü–súó›rö]„ˆ¨œ,Ëz@›Ó@´îX3;êvðYö[¶2‘ô+UâK×ø¤VÈ¡ BtÁ½Ôã×Ú™ŸýÊúpvjÈg4Dsd°ºv âQÌJv×þÝñŸ¬øRÇÖ©n­ØUJDTJ@À?;¾± ±á™£}¯ÎÛîñ8˜Ê–ö𕥸—+[Ñ»Y–ƺ—£ŽztÏÔ†_›û¡”MÑXU}_,Ì£pk%oî;8å{ÇŸ\º4~¦‚!"*�¥Ô¿tz#ˆmëG½$¯ÇÌ»ìuàiáÏæJs˜‚À¸JŽóB¥jëž~o´ß™“Žë}nkåĪ컯çZ4DcU ÑA>p_И‹…þèì‹KþäÌósjÌ·$%"*… àGŽo…®¶Ix}Ç„Ñ=3›¶ê ¦²¡Jp«¾Ÿ’ÀTözÐÅ=³¾×±½wO®KââçG}_¼’!ä—4%Î5~ïÄSËïˆh`EˆˆJàû]¥Ô#Žåì›ÔƧGµ$¯ÛR¶ þL¶ô&ï6àã—Ö¥÷íËË]­Îœdl�{¦ÖàÒ»õ}ñʉ‘�J-¿0³žÏwî¸üžüůPœQFD 㬠ÀÇ�g£ýlp¤�(„½fÃz³%¶úU €»%àãE�Þß3">Óræìó�4Vd'ø=j8¶f Q1±·¿ŠG̯›™î®Y`õ×±Däd%1o@)õ])åg8÷«g¥ ±öÉEú«ºë’ˆ6mW7_¾„Víªp›p„6 ÃÚ�Î~õé© ©Kùó5ýɰÐ@G}õ�œ_úÝÛ—œËß²ø|�;”\]Õ‰c¾údY}ÀLÆ�þ;_uX³~S)õ�nGd l@ÐZoBÜääÆûw/Ö©äkÍKú{6œ)í)•pà ÏÞ·bî3mi—?ûÄ€×úHCeîRÿ^õ@2,D[cu?� !~�[ùT çûë�mó¶WÍi{´ùš3Y¸UY|ÀTÜqçˆ"€Ç8Ñ0•Ì“«aßs|kd3~±î§s.¹…e«·RJ�ÿ±'Ü(� /4<ϼqlïÇ'¦Ö¦å¯4•±d¨)2ÀáXïuýÖ×õiyäèW|hðkDD Ådšæo8½AÄŽMË.¹mö�™;W"+v-@3'œÓð¤ÒJlÞÙïÈYB.—Пújc£ˆ_Õ‰ð¤îþjI©O>åû½óýÉ™ççT™ öÉHѾ…ø¾ã[d ·Û_j¹”¿¢l6Ë0K`˜€e 4|ë^îõ¥Ò–#šë¯ªÎÖÎö(Üc£ˆ•±dhRwCÈÅî�–ìý.¿±ÿ 'ªH1X–õçÚüÜ%mL˜…[)-ƒ%u D¦kàf¡á{n£s‡_Ýsç…�ÏÃ>aÍ£ !©Ps{BÞOXe=¿Ý¾uÞßœþÅü¦œ3—|&¢òVjÅòþ €£çƒˆ³'gè«pÙ¼a¯c ©¤¶l±¶¼a©ñ}ò¯0•[œ—³œÈY–Èk@kÀÔ¦ÐÈ+ú–P†1 .ã—YÞ ÐÙž0Þ:âÌa1Sš}æ•K~eò¹À]°I'Fö½GÕ`2$µÆùÆNÚ}³’ݵß9ñ³ªõuóϬ™ð¡6¥X"bJ©H)ÿ€s'ãi-ÄókëoþÍ+ÃOn†rÃdÜýW'/ølkY%�ÌKdÕ;¿²–DÖÈi�Œ’ÈZ…î\÷¿væÖøäí éwm|.Ü$—ÙëVÄR¡f¥EûÄÚ>ÙçSyãîžý3–ÆÎÖý{óÊc'ü�)V…ˆ@ /à‡þØÉ #¶.ЃÑ]¨¬Ö²—yaŸ©èZëñ{ü¯0™½¥2Ry‰„åBÊHšIÓ@Ò20ûÿ)KáÀž.G¿òz¤¾û–ºÌE¿IXi~ìaOH"Ý}º�=!¨%ÓWùW§ž^öJõåçWO¼æl^HͪH!oøJýƒ”òxÛ2ù¼G¬ýÉ|ý¹¯ïÎ7 —Ë&ŸÍÇù*óØûQ2ç¹âyƒ¦ ±œÄ i i¹. �*GÞˆxãƒYG¦Ö›®®ÉTU¾ÏÞÀ‡$àQÀ«#;­+c© E[#{B>ˆ[+ysßÁ)‹çë~Ô|ͱÁ)1V…ˆ@ §ÀSprãˆ×¶.Ñ÷=´†ëïìá¶Kü€…qúæN˜ÉÞ�qis ÄrÂFÞÀ`Þ@Ü4`‡¯p[·¶sòùY&� ¶(Œ¤Q+cé CÈð4äbÁ?9µnÉÞÊ©�ÿÚ|ãÉ´á±X"²“’}SJ= ÀÙ]̱�*±ù¹éÃù£I—'g—�eI1>ßq7ð¤/S tgÜ8óc{o뻪°«/Œƒ1?Χ=ˆÙ$|Ä2òøÁ^G®BtÙÔ€¹d~8?ì¿0G mì9âÍ ÓÁIÝÑž=Ã#„ÆòØé‰ÿ÷ē˯ˆ�¬dEˆˆ¤0ÞÖZ¯w| mY7¬%y“ÒŸ·ËGÒã5kÇ^�•Ü…Àq0æÇöHë»+ÑÚÄ餱¼aÛoönïð+˙߃ÜsGÃ¥Ovž%€[åÐòa# !S:£µ\îi¸ªó)ß·ÎnXü‡ç^œå·r+BD £dÆÃNo Ñyn2¼ZÿA.!=¶ j¼&Ì71€.Eý9‡ã>l‹„±ñBà8“ô"f–Ï3Ðþ�ŽÜùÜï“ú£7]dòù™.€ÛĈø†é@s÷` CÈ%Ü'~¥7dÅà‰*V„ˆ@FÁ4ÍÍö9½‘ÄK¿XòA&éò™vù<–‡9 ^µ £j7 tgÜ80À¦ž 슆q*áCÜ,Ï/]Oís÷v%]NlëÛ®¯Í„‚ÆÈÏÓ)¸MŽ8„TÆ’ÁI�ýåûæù�‹ØBD £}ø‚½ GÞš‹®¶÷�½sùm3$ï2,)‹< «\ýj²Jà\ʋףlèªBkçÓdUùOæßëàÉçŸÉð«ß4YwʯeX‘H&uFB.õ~�¡Þ�‡�?µlYòL+BD #`YÖ§ÝJÊ2ÄÚ§¼ßéum@”:gyVc†K_èéØ×ÀæîJ¼5èGOÎã¨1¹Œ)îíväð«ùsBùù³C…éQmÀ�bT!dJgo�„æ |‰j̤ÿO½¸äkç7M÷"ÏåÿˆˆäR3€rzC‰ý»#›¹h—z—¯:c§Ï“wÅ2ÆQÑh0gà`Ì�M=hí¢3ãqì2toìîôå²–#zï¹½¡°;mO”À]#ï &2þÉ�ÑZ†�Ü7„Æ5ƒÇZ>úÔ²y‰¶0+BD —@)õCQG·T*/ý|ÖÅþw›§:k§�“s9€ðÖûÞí N&¼Ø cG4Œ3I/rŠ_–îÛáÌáW¡ ¡o½®¶ð×’FÜ-‡æb�0„Li�Ö Å2uùDàÏÎ>·ä«í/OwkÅÈ0%ü»ÓKl_¿ìbÿ/mx¬”�VÂʹ\Å !Þs-ÏZc~lî©Ä‘¸ “óUßéHçO º�øÙ?zc]Úï£E"êðÑ‘‡�@*ãŸÒ©cáÍ^C\פåïNüdÉeÉnîˆDD á”úG·Vow#öliºØÿ޹ü¶éɹÝÅ žìÀÐÒ¹{ûx¥§g’^(Íšü¦×_ió;uìÙ§n¯O�éhÀÇFÑ’Îù¦uDê¥â·ø#Õ”ÿÕ™§—}¡sW‹dg'1€| nO:½ÁÄÆg.º1aŸ;”¶ËçÈzŠÜâvöóJwÆ�]½!슆Ñåà¹DY oîétäð«%óC¹™Óƒc^Ö�.„øÓ9ïÔŽÞz©8VpÄ—C­äíÑ7¦ÿíñ5‹&e£>V„ˆ@Þïá@©ïÎÞ�Jœ::g�¿çÒŠOØ6=DŸ;¯‹¹¯Ë™ÇK_ÖÀîh­ýAôç] ÷wxÄ›ˆåù`ûé;‹÷FBÈô¶H½Á2*ÓÒ½Uß9ù_ËïŽì›ÀjÈÅÕZ¿èèÓJŠçŸZô^ÿ«Ý[�´ÍǀЯ»8K»á¸=@’y‰×¢Aìî £/ç OëÖ6Gö~BnU3R6[Ì‘Mï„�~ÿîÍæ=ÓÏu7¸MN` �ÊŸéÞ3û¯O==¯&ŸâÅ‚ˆ@ÞóÁUëï9½ÑÄ›¯/D<ö®ÅYMÚNŸ#íógΊƒ¾ø·4p$îÃ¶Þ D<.I| #OŠz�øÙ—]ÝœŽZ>½=Fw¦ˆÇM½Z¢w„U÷ä-÷´ó‘oÎd÷Þ(ÍIuÖ}ïäS˯<\ÃjÈ»mBìqt«å²>ñÂSsó?Ÿò6¤´�¾êO«ÄtÆaÑŸ3°£7Œ“ Ÿ³Ç)ŽPë¶v¿²œ7;F�+VNJ@VI´ö±¯?³XQý…%zGØâ6-×ÔöH½�!dÔfÖóÐùWüá¹gù7/$"�ßôˆÓNìÚü®%y.¿™4¼¶Y +é÷'€ä�ržu­5p8îÃîh˜ËéŽÂ»:9wÆÜšlmcÐúÕÿÖ™ñ`[o}Ù"Ou£Žå ! � »ýF}o�ÆòØé‰ß=þÔ²¹Éö+BD X–õ 'Ýr±�jñòÚ©¿ùŸ{Ü)»|„¼ËeYÅÚ�0Wž $§^ë âTÂÇ•­Fáô‘>woWÒ‘ß ¯XÙòžC7Ó–�=}a�ûŠàGB Ó2&wD‚™ Ý.Dsä�?;³vÉg»vObW1€\È þÞñ­÷òÚw-ÉÛî«LÚé#$‹5 +_~ÍŸ´$vô†ÐË/}GÍ©“Ï+ª¼ÖÜ%õí5ÕŽ%|ØÛ€YŒ ê£ !–%'·GëC錗GõèZÉ»z÷ÏøÛS?[Ø”`M߇^qÍ2¬YÃ.h¢2 PJý€^'7žh;3 ‡÷ÿÚ„ÁSþƸ­¢ý¾â,œ+¯¶�ç%v÷†�¶x¿­lÚ‡öõ8røÕÒkšÓÂøàÛ@WÖƒ�ÑŘP'€OH`„{uK¥åäŽh}E"Íý- dZ*Rý�?»âŽè�Vã"¤¦a:²Õ_Á¿¬á°5¢r Rþ?§7 X÷³%¿úïÇ‚M¶ ±�?#‹±Hª|(¥-�WûBÈr „‚xcw‡/—µ·S¥”+®Ÿ4ì•ó¦�Ñ t¦‹ÐãV}abúCˆPZLîê««�%‚< çòÆç;w\þÇg×Íö[9~óñž)DÌ@EÕ·°fs3‹AT¾J©�vrŠCoÌC´û¿¿é;ã«Kg¤Û²Ëû7]†•r»Æ~€Ô`y´·ÒÀë µG‡#‡_ÍZP—­¬õ_ÒZW–ö q2Q„Î…j|\#ŒZkѬnè ó(/œ¥ñ3æõ÷9ðd%²úkxlý|ƒ¨L€«Ý‚–éÏ=¹à¿Pt{+9 ë7ÅÊ£¹�'|ˆs¥«‚‰t$Œó§9‰fÅ�“G¼`Å‘¸oø¡Çºc±JŸ4€Šv¥E}4^Õé¯âÑ^85fÒÿggž[ú¥Ž­S%¿ y�/„|�o¾…Å *Ï¥Ôÿ½ðÜíX¢uÇb˜ÙÿnË6ouÂNï?ôŽ}´ÿ¬x^ç›gymËy¿—«ªó[³æ×ŒjfT[Ú‹×ú‚c¿_HCñ*FþÕÉpKg´F@ õ…ah-nî;8å�øÙÂÆì W{WJß‚Ç7|?håJ!Då@ÓZ¯ut+&ãbýÓ—½ó¯'|lÕ’x²¦!Æö1¦ †` p©ÝR–Â�W»9üjùµÍiQ€¯®{sn쌆‘ë)4á ñFÑ�Q‘H§tFk¥b)¤é©Hõßžüù²¯f5ÞëB##ØÿUüh‡•Y�Öúa§7¤Ø¾þ¿—ä}# «Ëž$–—ˆr³Á‚ŠdäÉÃQGn¬våõ-cösJâÕ¾0z³cü\ï¿0«qä/áÉ[îim½ ÞO¬B›˜ÿŹ–°ïAIò&§k$�²`YÖ3Ž;:€œ88m§Bp<Ðh«uŸ4„N©1ý!Ýöl×ö4çwZëÖv¿²œ7£¦nBМqyí˜mËiiàõ¾0ºÆz¯¯>f“Fþ çÊ›®émцPŠ»¦š[åÙ»tћ݅ÉéOl¾Ÿ“Ó‰¤L¾[ðˆ£[S))žj¼j¶Ý´ë�Š1 =ö|àìÎòUhûwu8rLÛ×OJ�õU_ah¯�ó©1În· `òÈCˆ´,9¥£·¾šRñŸX89�@Êçù[= Û~Ï]bÿ«‹�JºŽ‡š’)éÉÛé½'üÞ¬é6Ì1û½š b#IK"É¡êuêpÔíN9nF¿Ë-õÒ�4en˜ÆÐªmcBp‡¦�êÍŠI‘ÁêÆè`Ï*îC‹˜Oæ›ø�õ-,1€Ø[À¿9ºE³¿X÷Ó9J§ ýv{û± ìzA4l× ɰ÷£ÐönsæäóùË3�°»¨{& àljŒG8I·ÀœQ<*-êúâ•-ÝýÜ+„ŠK£ñ»øñKóX b±ó Jý€¤“UìØ´ Þ6Û.€ †ÇxV‡½H,ÏÕB šÏÓ¦8´¯Ç‘ïVÜÐ’�Ÿûö §“cB€•0otÙ¡"– Nm�ÔI.ÓKE}p‘®°ú¥kX b±¯>�9ºUzëäö -¯Wΰ]Iù<ù¬×=f“dqÖ^$ÁáWõÆ®_.k9îîÆæ�9efõ¸ @<óãd¢!ä: \5ºæ ¤r>.ÓKE§!¡]wã± Ÿ†wß IDATÖ ÀÄbË/”z€åèkÙæg–vxª²}®`Únソ*˜³�HÛ'„$,Þ‡ ißÎG¿ZqCKj¼ßѸ'Eè|Z*�kÅP !oÞrO?i dr\‚ŽŠýXv%žØôe<ú(7":¥µ~ÆÉ +Ξœ�«Ž'ôÙí½÷…‚)k¬öÑÎÙ#€ä”@ž#A ¦»=áj;=è¸I5¯¡—|¸©$6&=÷ád1BÈ| Ü*€Q,5`˜–1­=R_™HqS=*.%fÃÝòu<º¥ŠÅ ›ÑZÿG·¬ÖB<ÿÓÅoVL¶]ÑRèX80vóxl@òœ [P¯¿rÞçmý�Eš˜öú]%óÉ�Ä}8/B™.�;%0š> ¥eKWm}_ŒK¥R‘C&ÂÈÿ>Ölnf1ˆÄfÏBˆNn\qpï‚׬êt^¶ŽÖWNH)Ææ¡é†6+(q–ê^n)¼õj—3÷þ¸nRÉ Ã<–(RiÀÇ$0Š> ­µhˆÆª¦tFk…â·TÔG´ dõ×ðø¦¹¬1€ØËÃŽnÝ|Þ“yþg—Ÿò5 Øí­g<.3îsgÇäų:Kÿ«pSñY§Pííñ&b9Ç�gk™Q™ožVi–â{;–ðáH1BHƒ>n¡Ñ½L(‘Ìèè©wsr:“†_Äã>ÂbˆMX–õ€ÃNn`ñúÖ¥ûƒÍQ;¾÷�ŠðØMF?QúÄÒ iuèÞW\7þ“ÏßÏÉbõ„Tø¤ÔŒîe¼é¼wz'§SÑCˆ„’ŸÀêõ‡f/1€Øâ´B<âèŽÇ*_ުŽ׬Á°?m�ÕÎè'tÉÃ’¼ÍD¬?#OŠz�ö¹}—Z°¢1[êïóX‡Ãñ"äÃÐ…2yt'–+oÓÚ# U±T€g÷‰Æ¸«7>€´r‡Zb)u–e= ÓÉ�œØºia‡¯:f»k-€¾Š1Z’7‹’ŸŒîb)ˆÖmí~¥œ×�´øÃM�Ïe‹~*áÅáXBˆÀ˜;Ê“KiÑ鯙¨äFE~l›�ÀÀïaM+�=b)qYÿêäF�ç&oèÊÛr_”hU(aÆØôU/õÂ1X…ðÆ®çM>ÀU7”öð«w…�d‘Bˆpýè7,TJ‹š�DÅÔÎÞ:ƒ;§S1i4!×ÿ <ºe‹A %L)õ¯Nnè»öO²ãû¶¤ÔáÀØ´Ý äJ÷³» �Q?ÔŽº£Ý)—Ó>÷ÔYU¹ú¦�í¾t8•ôâíX‘¦ë,•À å”ò`"ãŸ~®»Á—3]<ã¨x6¢nóëxbÓtƒ@JW€G�ÜЙ£‡gÎ9[6^m8ޱX’7àtéNñ ŽÂ�֭Μ|¾âúÉi»¾÷³Å !s$p§F9CÈ“·ÜSÛºÉ w¯¦b†?¾‚'6,f1ˆ¤TÏS¥¾ÀtlK+ËXÓz¶ÂŽo='¥«� �”n/ƒ€Ï°@#“M›âðþÇ=†*ñæ¡é9Ëž›KôV…ãc°�u;€¾Ò !Aƒ»ŽÔþ]¾\Ör\'Ò’�4¥¥Ëþ—ööŒûŠBjp�Fý0(ê#ÕS:£œBE !B@‹�r™^b)QJ©ï9¹±U:xîP·-‡¤d=.3ô�Ͱ’ƒ e@v8oø•+V¶¤ËåótfK¯w½+‘ŠÖÊ–,™b%H"ÅŒ0$ˆH9$âäp熹9tW½†”DŠ f0=7t�ß'„™¾}ªêVŸ× ý)Kÿ¥„tÎßœÅÁ|°Þeª¸½Ñ‚ cîÒˆ+€�*°zú/‘mEÝ:w \_CýBˆ’б ùàñðÔ�D�©(ƒå!™'<‰Žõ„ÝÕxï9‡­˜pÚ�»[p®2ý«bêìµOÊäón7ÏéÇ;^>ä­ØuC/…aV+À0ݺV\(­#ÑPëH,À@¡1D©DæÁÚöøþ6êB�©t]À)™'ý—{‚ÕzïÃA_‚±89Y™aX~›N•°¦êóé'÷K÷öÏpè‹VÔåÍj_¤`ÅþˆZ©ÒØæ¾•œnÀëššDÚ3«?\gÕ4 �!J´¢ .ñØ´³Žƒ R!ïcß�yÒ/^¨Œ&íÕxïy‡­˜p;Œo°0Ry"De€×B•°¦Â©C£öT¢ ÝÞ¶ê––,SÍmv´hÁkQ7 ¥!u ¸W�~r:g¶`ŸÓ7J¥z‰z;JùÂWðäöN ‚H ëú¥Ý“„`ϺX[­÷?ªIÌHE¬c•y  0¬)qpG¿táWŠÂ°z}KV[E ^�x�/•ñø„ ,˜þç©WÛ‡Çjë£ã^ú¦¥yàÃ…¢ö§x¼{1 A¤üäü³Ì¿÷Lm¶P¬Êù/Ú,ÚøLô¹ €x剿�N@&íœÆrÊÅ3Q»lvÏ_V›¯ 9¥©X�ÐTì+¥QÜ®72L;&R€ÕE’þŽ�±Z…Jõ%�Y!ð9<Ò½–Æ‚ Rf8çß��Õþb¡h}ùØ¥PµÞÿHÈ—0¼;ºp´òH�£H;Õ$9¸cÀɹ�ÎîooÏÈfsJS±g̃´^¢ÇÐ¥`›þå<™œsNïH½ƒJõ¥@@ýx¬û4 �ò’ðï2Oþ–£=õBTçKӢŢÇ|®”á~Céʲծø(dR}mPºøú@­SŸ{]° ã|gu¯�y�(åan‡Ü£¾é_ÊVÔ­s ¡xÊMß^¢DBäCx¬›$@Ê çüë¤}½O;÷Ÿ®Ú2}£_ 3VAéŽWž(«§S�«ráTÄÉXd³ûúõ­Y¦È»•繂½Æò%,0UË€ûT ÝŽ ÖŽ[Fc…Jõ¥!ëðøÖOSÃB‚Hùèðs™`óá õÕzïšEÕÃ~OÒð Ÿ@®²Âxêl$@®Æ¡]Ò�~¨ª"VÝÒœ•}îuˆz1œ-a4“À‡ Ê àO{fõŽÖÛ š…¾ÍÄÌ‹u% �?Æ÷R A¤pο @Èjÿ›ý‘šË#ñªuÜÂ_R³¨Æ–‰*¼%B*ˆ€M‡M¡®èW"ŸÕØ™#£Ò �E]õy¯ßA p8îFo¦„5~;/Ä€�uä‹¶Îþ‘o*K¥z‰|iØb¸ã_ÂÃÛi½$@ÊÀq!Ä+2À‹‡.4Të½ …‰Ñ�oÜð µÒ*Æ€F;�‚\‰#{…¼.]øÊ ··fhök?pb܉ ©ûS p¿bH¿‹.”ΑhmS8^Ã@Ú’˜qå>jáϰi»‡ƒ RbTU}Pfû÷¿9OçªöØ?æsgòv«±r!àDe=ü›�ú²^Q€ H×û£¶Ñ­Í^"UúœM:p<î‚(åA¦‡ŸT�ÅÓ×Áœ Œ§|�ýcuM§8}b¦½ äô¯à‘î�A¤„hš¶ÀQYí/jº²åpõ6&€¡úš¸btYÞcbBˆT!›‡JoDgî{–þK éâ˜WßÖš¥üÊôem8uCã%<Sܦw0À€éÊsûGë]™œ�f”˜éG TüÛÜDCA�)!Œ±oÊlÿö=õšÎ«6„%ípâ.»±É¸yG+Èág@3UÃúî”ïôÃbUD×Í-9šý÷'\°boă\©£óWªW-ê–YƒcuÔ=�˜q8|€åÏðÄË4 �¡ëú“zeµ?‘ÉÛöœéóW³ £!ÿ¸P .(pB™ÊIHoqæéËú[hšÎN¼>,]åÒÕ�9—×JÇa“ ©©Øñ–¶WÔXª—º§¥BÀ®ÿ<¶y. A¤4|WæØväRC5ßÞfÑb5—å-8R9ÄgåÔ”ð·8s(lK' ÒícknoËÒìOžœ®`_´Ä½B€ß”ê]mL©Þ‰îé£Ô=�˜a¢ØËñÈKËh0 %€sþ}ã²Úi$î9Ý®ê޼#A_R·ªÆzè§�ªÒá¦dô·9¸³_ºð«†V�Ö>×O±xS}—À�ýQoiËôÂcµ|L\Ó¿œ­¨Yç „ëý‰´‹f•˜9 ëgñÄËkh0 3OÀ¿É<Õܘ¸¢ðá`MÜЋjTV–J=A0É*ÎD¥KνaC•Þ½fŸj¢LïÙ¤£ôÝŸZpŸ1¥zÁ…Ò2 µ E‚ŒS÷tbƾ0 8ÿ=<Ù} Ad¦Xο…‰VtRräâHp4ž¶U³ qŸ+“vÙŒMÐ=+€peˆ•mNz~p×€Sp¹zˆÚìªXqS3%ŸO“ )öÇJ\! øM©Þ.c>חʺçô�ÖY‹•ê%fH„0†">ŽÇ¶}˜ƒ 2³ ø™¼L°Í‡/ÖU»ÃuÁ˜¡ éÀžÊ9uèpKžŒÎ�#{¥ ¿Z¾¶)kwZˆiÎOTÈÊè%~ *nT€»ŒéžnÏísûF¼Tª—˜Y!²�DAdÆ�pþ J@_1ì:ÝW›+jU½6r6‹ó{†^tÀ¥Ê!•#d•÷䙈-ÎJ÷Öw͆VJ>7�¤¦bï˜Ñ|–Òleâ4$hÀƒ\çj;•ê%J!BÝöI û#H€Ì'„[e5>“+X_=Þ¬v;FB¾dÁj1ÖKß+€ 9™ã‘7瀄ÉçísýÅæŽ�¶gcÉsû¢^\N—á!à^˜g„s8Qª·�òBˆ…݄Ǻ?A"„ 2C¨ªú�Ìöo=z±¡Ú�€8˜®78!}ÀÉÊP u]Ê’¼¹L‘�=–.ÜdõúVJ>Ÿ!€S 'NÄ�¥Þø¬> ë`ÀAŒw"/¤ÞZÐ,4³ÄŒ‰�'º?… ’ b4š¦u8,«ý#±´óèÅáª?ÎOºœ¹”Ûa¬ãv@rø0Ç#_.È‘½ƒŽbA—êí›ÓmåK×4Rʦ7kÇþ¨^†åµD>iL÷t{¾h›Û?ZOy!ÄŒÁYæÞôiA~$AÄp�ÏØ×e¶ÿ¥ƒçÌ`Ç`½?ÎfܱEÀþÊ8iràRå:9²[¾äó75å¬v•’ÏKÀXÁŠ]a/b…2ä…üº{ºwÊ !f\„(+ðD÷çðÀv:m#H€‰®ë›ôÈjÿé¾HÍÀX¢êß -}4ä3¶Áä©Ê(ËË0[¢Æ„C½ ËÀå„\] õþ(59®`_¤ M �·º§«À�tOÿ­¼…òBˆ!l1æéŒí$B F¢ø¶¬Æ !Øó«»1áÛDüÞTÖi3.„EØÁ+¢VZ›+»*Gcƒ;äK>Ÿ5?P¨köÈ—ìSn¿ M �Ç�(y» K6Sª×›ÊºgS^Ȍҥ…CÒ¯c´Ïãû­´ F=„8ÿ!€¸¬ö¿öÆ@(•-˜¢Üé@}0 #C±Fœ.¿ã¯0`ž}A4MgÇ_vÈö\½¡�Jï–‘¾¬{Ƽ¥ï ð{ `€kûë¼�TÎA³j<‹Š‘Ðßônžo\Γ&ÎÀÿ¾ó"å$@ " à_e5¾XÔ,ÛŽ^ª5ƒ-y›E ÝdŸ²å?iwåMŸ rêà¨=“*Jµgy|6¾ôúê|^fšŠ=c„sexã{«{úÜéûµŠÎÕöá±ZÊ ™V%.6=pé©¥ž“³3=Çl¬_ÂÓÈ%H€ò�âü[¨˜ºG¥gëñžZ�›ã­ÎhÈ—Ì9­Æä¼V¹ sM^ëÐÎéj]77g mÓ•@�+ØóâlÒQúÐK+€(À:ãòBÚ†"!Ê 1ž9™ÑÀ?\xjy]>i“rë„Úö°i¯“VAdúŒxRVãÉŒs߃5f±§¿>Š�.ÄY ”_„´: ð˜´/Èx$«\<•êhŸ1FáWÈ…”ûcnh¥~'Ã,S€�)€®�/•uÍê×[5M¥Y5–æ|Üû�—~¹rnzÄ%é´#›ú3<ºÅM«� 2M8ç_CÅôÀ.=¿:|É4 vy›­ñûŒ ÅÚÉ˾:æ›´;úÁ�NÁåªB;wI(¬wQòyÎ[±£\¥z[ØD^HÝô/åÈl³ûà ®\ÁF³j,5ZÆñ÷—Ÿ]¹fü¼_Ê`J3˜ú§xî ‹VAdzœBl–ÕøÁ¡HàÍÁˆi6’Ñ�/‘·[�«_p¤üú´ÉQ„ߪ™LýGöÊ×ûc͆V:ý¨`r\Ákå*ÕëaÀ=Æä…XŠºÚ90ZïO¤ÉQ4‡(Zþ²¿{éÆÈñz)@ Ñè—I„$@¦û]âA™íßt¨×4or€Áú@ÌÀP¬ƒˆ•ù-=ûÌå·ž?=f‹…³R…‰ø}ÑŠ:ê|^ûȉq'ŽÆ\ÐË‘òAX?ý¼ÆÁÚÂñ`CdÜG³j,ªàÊg‡ö,úìÐÞ6)€)͈ÅþÏ=G"„ 2 ^eŒ½.«ñgÏõ7D’ÓÔùÎ8lű€�¡X:€WÊß$`ÓÑè(šfÝØ9 ÝéǪ[[²L¥í¹ZÈÙ°kÌ‹²i[bL^ç‚ÕF“5ƒc!…sJN7Ò‡À‡#GgÿUß–yŠ”_kÖ‚˜ƒDAdš|SVÃ×ÕŸô˜É¦‘�/ahƒÂ'ÊŠµÈ—…<ˆ\ºÈÞ8–*ù\QV¯o¡ð«*#­©Øña([†w4æ…xÒ9לþp½�’Ó çÆñ Íþ™%v%ô½X b¶?¥êX �kD×õ_¸ «ýN\h*èæz;fxƒÂ×�(¯M.•c¶ Ò�ìt ºToc,¯ËÕ�Ò¼¨êçƒÇÝ8wB”ú$ÔÀ¼[¾h›Ýnpçr”œn0‹3µ\xz©GËJØ•^mA!ýEêB�¹Æg €oKk|6ëzòtÄj&›ò6‹6\Wc\·û"€Wô²‡bÍóä`WªÛ�=²G¾äón§Ò»ÕNoÖŽ}ò¥ÖÎo÷ ¹qúy!jQW;Æê‰•R5˜Îì˜ÿ/>µ¼®˜²Jg'ËŠå±rÌrW×�Õ©£öLJ®J1‹ºêóž;%Ÿ›”¡œ {ƼȔ:/ÄÅ€O¨ÀBc’Óçö�Ö{29r ÄÊuõÏûº—Þ5vB†…Ê,m_À¦MTð€1iñÎù×Èé0Ážß{²nÜâ0](Ö`]M¼`U�k¤ñš"å=™ïÍ©VÏ�Õ¡]ò…_ݰ¡5ÂÔ$5;ǼÉ•8µIp»¬›~rº¢sµ}h¬ÎŸÈPOQ…`4¼{ѧ‡_k•Ï™Âl䃟Ã÷Zi%�!&ÇBˆç¥`'.}Þ5¿ßtv)Šh E„bP𔆉…e”ª*WIBúx$«\<“êmXm£[›½ Tazt®à`Ì�³É2D.S€� ˜æùÅDçôuN7��Ž™óå�WfKçœ Ì‡kü�±iõŸ!BLê;#ÄCÒ_(Ø_Ú}¢vÔæK›Í´ŒÃV Xš7 à`yË�EÔÛ+ßÇ=°sÀ)¸�ê«´fCk–vc¹¸�r”'/¤C™HNŸ¦tx»szÛH$È ¨sº�¬��mû�}/É×5]ˆ…(?‹ Ý�1 v1Æ^“V€íÛÞõ‹P×%3Ú6æ÷¦R§q… ` ¼Žõ2ÖJî Â�£’õþ°ÚTѵŽ:ŸËÈPΆ]c^¤K�îbÀ}*Ð<ýKùYwçUÈ2šÕã—šÿóÅgY—KÜq,Åœ›î‡ QK„˜ _—ÖòD<°ûØïEG}ÌŒæõ7¢šÕbL[�‰ªXeìò`WUp(ÖùÓ[l,+ÕüÒÕ 9§Û*@HIZS±+ê)}^ˆÀÇT`ÑôýPï�2… 1 `yŒV*£*Ö`ϸe°')UxÁò³6‡…’ω÷$§+Øña0[⯅"¤�4D%R£eÿõò3+dÝR‰�} �¼´ŒV ⽉xLVãÙ�Ý]ùÇ“ 7˜6!?éræÂ~�qù GÐW>Ô¡ \ç+ÿKøƒ;¤‹_³�’ω«ø]ŽÄßjZXÊmÂ`£,&R‰xxÞö·—_\¾8Ýç‘èË @Q?�Ç6Ï¥@„x8çÐ¥4>“ò°-¿œ·;°0ú¦«!bV3GB5‰ŒËaŒó(tó‰¾2Ñì, ÉQ¾ÚÀš¦³û‡2}UÚçú Mí> 1 .¤8/qrºà6XG"¤qó‚õ?õl^¾*}YžnôB±@¨_À£[fÑ Bü.…ÏÈj<Ûµµ ~ØrÛy³&¤@oC0ªYUcÈ,€­zißp¾‹e58Ê4]§ö�Ú3)¹êܯ¾­•N?ˆ)ñvrz¶ÔÉéËÞª�e¡9¨4ì¼hù«ž-ËnŠŸ Èc5³ÊðÈË-´H€ïéB|UZãG›q`gcŸ=”3sBºnQxOch Fåƒ 8\>½fQ€åþò¤/ÜÕ'Uø•ÓmåKW7æi§$¦JBS±gÌ‹X©“Óç(ÀÇ”‰æ…DEaåºúçÝKo�žI$BPø—ðè–zZ$@ˆw²Ÿ1¶GVãÙÖ§»ÀÌ é�sØŠÃu5Æu€ß/€¡òƒÔÚutºKëÇÆ²ê¥7âR••\ySSÖjW)ùœ¸&ò\Á¾ˆC¥NNodÀ'TÀGsPi¨B°?Ú±äŽØ©ZiŒÌEùÞî§@„x'I+@.œY€Þ Þ<¬ÜÌ éñyÒq�Ó˜£` /kµEÞ,|–Ò¥0ÜÑï\"_œQò91}8€Ãq7Î%K|$pŸ 4Q^H%Š�Ïî\ü™DgX´/á¹ç\´H€o¡ëú3ÎÈùtä {þ§Ë`w`aô WSÄÌæ5cy»Õ˜,î €måë¢0 +˜.M—t{mHªð«Y …ºf�œE*Ãy3åÀñ¸ ¢”Þ�‰p¬Y$B*Q„|npçâ�cǤ1Z°Œ;¾€ï´Ò B¼ýµ`ì[²Ï޽¾™¤~кá\QQMëtq0ÑÛãªbŒ�ƒö•/Ä­r,ñÍ|Y®Ä©Þ IDATó§"¶ØXV•é{qÆö Â@ú²6ì�º¡•²÷Ÿ à.XB"¤âœ:!ØgFö.øðØyDgpÅ>!hA’!@×õG Ki|>çdÏÿl ÚüùWý ûÌlnÁbÑûQÆ JJ?*€ å!m®Z�3[šwÿN¹’Ï=>_²ªž’Ï Ã+X±'â)m…,`½ÜH>_%Š�O�ì[ðQ™Dˆ`Ëðx÷'iöI€o¹á¾'«ñlï+]oÿù‰æ›úÌœ�L4) ؤðÄÊ—q]MîÊÉ¥‹ìÍccv™¾]ëš³Š…¶\bfH½U!k¼PâCÅ.¸]™$DE‰�O í[øñðáF‰DÈZ<ºåvš} Îùÿ�’ÒøøX­²ksû„3B:Œ†j �Ó˜0›"€Í|BÆ–•«üéÙ$ït º4. c «o£äsbfÉs¯E½Í•8~!î¦^!•·ïÜ?üú‚{›ä1Z¹¿´šfŸDüXVãŶg} ²;°0zÄÝ>bv›û‚QÃ’Òcv”/ËkåX\c¼ß|d÷€Tæ. åƒõ.J>'f]cnôdJ|ÀØ©÷P¯�J!¿?r`þý#¯ËѸO0«zÞ²�fŸˆôpο@“ÑvÖ{~Þ8ñë.­?h»íBÆb/˜Ùf¡L$¥ëƒ’ÒÏ àxùDH‡+�V§qÇ0ƒ=ã–ÁÞ¤TKn¸�N?ˆîANŽ;q*áœøK©¨g"ÄMsPQÏa|<|xÖ*‡Ó¥¨P•?Æ/wÐì“‘�Kž–vó{iÓŠ·ÿ·xŠ?«_cúP¬‚Å¢÷6#`=þ÷ §|"diM>«1zêÀ«ýR%Ÿû}áòZJ>'JÎå´‡â.”´ÕN�Ÿ X¬J!=:çÓÃ’ˆ0+8ÿ<~²½–fŸˆÔpο&íÆwêðuˆÿ&áxkpiø´«eÌìvg\ŽüPmMÜ�‹ ݈—')]a@W ë4w MÓÙÉ#Ri\kK–©´Õåa8gÃþH‰Ëô:iÜ+U„|dìèœß—'Ë­ð%üè/Í> ™9ÈÛ!¥åÅ¢�=ûäu¿ýO?h¹ý\ŽYM–õ{Sã>·1Eò^*_Rº[åXQ3½6í'÷�Ø3©¢4ûŽ¢0\¿¾…¯ˆ²)N”éÍéTªŠDˆÀ=áÃsï=Ð,‡ÅjV÷ç±i“�fŸˆÌ<$í¦·Gtí×O¿»·ðl}×lhðÇ3N[Î�‹Å¼ÂK×ý[Ô;Š˜ã¹vSí”+üjÁŠº\MÐÉAe&¥©Øñ@"ýO¼�ùäèÁyŸ”§:V;ŠÁ?„´øI€È‰®ë/8%çÓ/ácÛ~5ç·ÿ険UÃõ1³›.ÀDcmD³¨Æœø\À�òù´ <9ÔÚŠS×NcYõÒ›q©ÞBݸ¡�N?ˆŠ!««Øõ`œD‰Ü;z`ÞÆ±cr4+Ô±�¿r?uK'"+‚1öMi­ßñb×oÿ•ø—¶ oÕôåI‹…÷5…Æ 0c”ÃÁòuJg XÈÀ¥Níóîèw.¤Yî�Z§>wI¨‚¨ ò\ÁÞˆáœJƒ!»(ûÌÈÞwENÔËá�‰Uxüå;iæI€H‰®ë�’Ñv6Ô߆#ûÞ±ÑõÛC¹ÍÁe—e°?ã°{‚Ƙ1^øË—Ç¡·)«)¨Ê$E޽6$UøÕšÛZ3´Ã•À�˜½ ‹'"Øg‡w/¼=z6$‡ÅâƒxrÛJšy 2’ðϲ϶üâw¾ø?m^Ûßgó'd°?éqæFk}ÆTÆÒlá@®<¶x¬+'Ù¤ðÜ©1[l,+Í+WÕ¢ˆ®[Zr ˆJuÜwá\’:ÊŽ*û“¡íKn‹ž6¿ŒA÷S� RÂ9ÿW)mgožZ„á~×;ÇøAËo™"E²î¨ß›ŠU+�‰ÊXe¹Gó'‘”~`‡\Éç‹WÕç=5vJ>'*ž7SœNPÝ\!‚}qhÇ’[bgƒæ!Šœo÷ÓÌ“‘�€É©¾t•=û“eïþçóî†Ì«�E½² Ã`CM,ír“ <$€îòUÆšçÍ¡ÉqåT‡\ºÈÞ8¶Ë´Ìo¸½-CÛQ-\JÛq4æ‚4²‹�/ ¾ºdÍøyó;æ‚y¡ÿßyÑN3OD.?œó¯(Êh;;¼g%ò™ß Çy´é–Þ{ )Ã(èk F v«1IÊçp¨|/Ü—û3ðZÞ»–À¡ÝN­È¥©bþSl•߃Ç6Ï¥Y'" ªª>(«ílÛ¯Þó„ø^ë�od‹&ËXĽÎìhÀ;nÈÅr˜¨Œ•+�Ü䜨Œ¥i:;upD®ð« mtúA˜‚DQÅkr:‰™ñè9û¹ôü²†|ÒÜMc¸¢–?ÂO¶×Ò¬“‘MÓ68&¥¹üæ<\8ûž‰nÃöšÂM7¿!ÓxŒ}ɘßmL~ Àæò•ç�çÍ¡ÿÈ =“*J³Ç´túŠísü”|N˜†´¦boÄ‹´N®‚Ì´´ó¿ô<³Ì¯§-¦6TÀ½ølÚKu©I€Hâˆ3öM) ‚±¶üJÿýr`ÉØ1_ûˆLC2Xˆ§ÜcJ¸ØQ¾ò¼‡wõIµ‰_OÉç„ Éê ^ó Y$wAfê ÷ß_|f©S/˜»¡¬PêPÈ|›6©4ë$@L�®ë?ÁDU,ùÄ׉Ë�Œ_1Iù{ÍwœOXRu”îkE³N[Þ�‹�À�Òƒ ŒäÕ#'S6YæÌî´ˆk›¨ó9aJò\ÁkQÆI„HMk>îû»ÞçY„É“ƒ8f#¸—fœˆ |WJË ;{îÉ%Wúï„Å©ý°yÃY!ä‰Cæ`¢§¹v̰!p¢´"ä—/Ž:¹D –ߨ˜µ9,”|N˜÷!żN"Dzæ§GBÛûÂBÅìË@°5x²ûšq æw:9ÿWã2ÚÎömï‚®]QaðÍߘÛ/Ó˜èŠÂ/7…Æ4‹A=Bv àbiDˆÀKÛ#R%Ÿ¯¡äsBòZÔƒX�¢SdfY²¯þ+=[æ™ÞP Åc¯, 'bv~(§åñÛñRçûýÈ¿µÞviÔæKKõ°·Zôž¦ÐWÕé+ [Ã3ÿ’~ÏÁqÛÐH^¥cž¿ÐÔîÓ@ sû¢^Dò$BdæÆñ ÍŸÜÑaj#€›6iÆI€˜Îù7¤4þ•çºÞï¿ó°òï·¬?«3&U˜KÎa+ö7Æ„b@*¹àE>Q!kyzó¨TÉç«×Óé!Ù³Jûc$BdçƒÑS�¿?òz‹ÉEˆ YåsøþA+Í8 33`“Œ†³þË�8~à}ëoŸv·¥^ ­¸(ÛØ$]Žü`]0jH£Â€t 33:.‘ÔÙîýq»,sãòXùu«ò IEȉ©¹gôðÜ»"ÇëÍí (ÍpEï£Ù&bîM�ó¯¡l…SËüßòÔŠ«ýÌO×ö¿ájŠÈ66qŸ+cX£Â€øDéƒyfkØ™/ÈÓ>yåMÍY«]¥äsBZr êÅhŽ^Ë cŸÞ³ð¦Ä¹€© Ê*<Ò½–fœˆ™9!„Ø&åFvöØbŒ½oøð­Žž•­4/`p£Â0€-ºá� ŸëË~Å€Õ¨÷!¹p0æÆ‰iQ…`Úÿê’Åé>�É=æ�ãÑmí4ã$@ÌûeVÕ‡¤4\׬ì¹'—^íÇâª[ûa󆳜ÉwR4XˆÇ=Nc’ñ{¼¢vÞvö\ÚòæÅŒE–¹˜½ P¨kòè´c²#޹é$Dbl¼¨þuï¶ëšs&Á°@aŸÃã/úhÆI€˜MÓ¶8"£íìÐî•(䯺.øf�w–ôÈ8FƒM�¨aÝÒß°Ó˜c�M/È•|¾æöö ‚ð›“!òâÑsö¿ë}v©OK[L¼Ð}Ö?¢Né$@Ìëˆ3öu) Ϥ âwöeã‰éÌŽùÿ¦çù…æÞ!Åz<ºõzšm fDðm)-lÆþM“ùѰÝ[øQÓú3B0é†IWq¹µ6\°«ÆÔ³Ú#€3×&B~%Qï¦0\¿¾…’Ï âJ"„ÓÈβTýçwtšüip/y¹…f›ˆ 7qþoâ2Úζ>½r²?»¯fn|gpAŸŒã¤+ ¿ÜTÖ¬ª1�¸_À…©y}C9õðɤM–1Ÿ·$”Ö»(ùœ â}¸3zºããáÃ�&öT¬°ˆ?Æs]4Û$@ÌFÀ÷¥ Ï.@ïïdþ‡Í·]ê³ù2ŽUÑjÑ{šëºE�¾S,t  oò¥±žÞv ‰ê‘­Ù@�Ï ‚ ®ú‡Àï�¾>]ìlдFê"ÿ,x€üi æ‚sþ WØó?]>Ùט"¾Õ¾ñtV±h2®“œÍ¢õ6…ºªN?øA°…£WW\/¼<&Mò¹/àÐ.¯¥äs‚ ˆI  Á¾4´c±©{„ÌGçMwÒl“1ƒ~"£áìØëË�INºœß ÃŸ´qÝY&åBÉ8lžæ@ ›¾)`¢[zìýEÈÞã¶‘°<%o®_ß’e*m›A“ÅÆuõ?öl]Ú\0q�•}�tϧÙ&b*8ç_äkº‡|ÎÉžÿÙ¢©üÊ«ÁÅ‘Ýþ¹ý²®•´ÃQèm F„bÀzÉx†ïSèø)‰’Ï•áú[)ùœ bªxyÞöÿ]~~©›çÌùÂJ0E|šš’1g…›e4œí}yÕTç-w\¼l¯�˺X’.gn !��â3žÓ'²‘ÞE|¼¨ìÞoâ7ZïbÁŠº\MÐIõ}‚ ®�úBÂý·—_Z¤˜ÕóÌaý åƒ�1ªª>(¥áñHHÙµ¹}*¿¢1E|£sãé¤ê�6VÜãÊÔ£Œ±é‹�€§u ùÎK=»-â(¹4ñnkoo§Ó‚ ˆi° 3úbÿŽNÓ(ØÌYwÍ4 Ó iÚvÆØ~mÛžéšêï„­žâ÷Zo?­á€W«vó¹2ƒõ51¦$Bžã'"oñ\wXšð«@�SŸ³(TA1-n‹žîØ9^ob¯åƒxbë<ši fâ›2Íz/ÌÁ™£S.ãwÔÛ™x¶¶ë‚Ì &êó¤‡êjbŠ"$މp¬pâLÊzîRÆ"Ë8®¹­-C»%A„ÏtüÁðÞËÒ=æÌ—Œ�³OãG»½4Û$@L�®ë? ¥CÍ6ÿbùµüÞ¦†Žx;‡e^7Ÿ'=ò“𬎧^ KSz×bUĪ[›s´AƒUpå+=ÝKL[K0/l¹OAF³MÄÀw¤ §�\‡øØ5mTßîøÀ¹a›/%óÂó{S£‰�ܨκ_�H#@–¬jȹ½vJ>'‚0ÏÛþöòó×9yÑœ¾¨À|<Þ½žfšˆ)àœÿï¡å¢X´±gŸ¸îZ~5+ÿzÇݧdmRø6á /ñ{§Ý-~Û@Üž,èÒìk6´Rò9AäLÍ�…„çÿí}q¡iÇ�‰»ñè¶všiúΘ� €ïËh8Û¿« ºvMÇ™ýöPNs‰“Ò`¸®f<ê÷LK„<}Yžäóú�Ö¹ X¤m‡ ˆ÷£.™õP¬Íµq]j î³C{ÛLiWT(ø4¾ó¢�fšHõ¯gο @¾˜ôTÂǶýjεþú^ß¼ØË�޲¯Ÿ¡:ÿx¼Æ}M!i}™¼z$–²É2V«×·fhÇ!âj84ÍÚ: ÒH\w�›}{ôtÈœN«EÀúqše f`ÀãRZþê‹]Óùõ·®¿|ÎÙ•} ÔbqßÔEÈS=a§�ä ÉfWE×:J>'brøiwËh,@#1uøÜð®E‹RƒnS(Ø<±}Í4 �êÔœ?@ºÄX6Ü߆#ûê¯}Ü€ot|èì¸Å%½c9Ð05Âðb_Tšäó¥«s—U€ b’øÇÓžúȸ�FbêX¹®~e`ëuA-c5§ÑîÅ»H ’©zÞB¼ £álË/VNç÷ãOñëwŸ((V�DH ó{’“ùÙ=£ã¶‘lA•el(ùœ ˆk¡.𬩋&¨Ä5(fÓûÂ"‹ÐÌ—RÙzöÓxàò½I€T¹˜â!)È›§a¸ß5�kœs6di¼å •èëüñÉä„<Õ3&Mòyë,_±uŽŸ’Ï ‚¸&bÉš@2í¢‘˜:³2áÀ í1iå(eæ­£Ò¼$@ªž�Œ±}ÒYÍu•=ûÄòé^æ•àÂÈ–Ðu—iM䄼ßIH,_Tv�Ä¥©â±êV:ý âÚ\°æ‘XЛÉ:h4¦Î�‘Ó�ëbg͙ԯó»ð£­Í$@ˆjçë2Íï]�LÚ2Ýë<Ö|KÏqOë(-£‰“�+‰�gû¢Ž"—ã¸Èá´ˆk›(ùœ ˆiª°ö¡hÈ•+Xi0¦øŒg_Úµ¨5oƦ·Š û ¶o·È<Ç$@ª]HëúÓÎKgx.ëb[~>º—á¾Ñy÷ƒö@’VÓÛ"Äý;cñ|Ÿ<áWË×6em %Ÿ1}¸PÚ†#u6MSi0¦†ƒ-Ý»u±&ì”.Xúµ‘!ªZƒø–Œ†³ÝÝ]F\'+ÿZûÆ“IÕ‘§å ÖÞ!BŽGSÖs‰¬4ojVßFáWA‡¥¨«ýá:•sò¹¦Hs>æýrß+sLjÞmøñ‹sd�[ú2˜ÎùÃÆ¤3<2Ú€=[[�¸Ôˆ½¦ð�ö�,2…ÓŠz§yZ¢äóŽyþBS»O£@„‘ØŠºµcp¬VU>™*7Ž_hþèØ‘Ó&ƒj¹_Ö.é$@ÌAÀ÷d4œu?×eÔµNº[R�7Ý|V€žo‹��3Õ=“fs\}[�~1#8³{ÛP”º¥_¿7ºÞ‚Œ › %¿åc$@ˆª…sþ]Ò9Oìò›sqál�Q×Û\Þá_ÐK+j‚Ÿ�$”dQ—bŸpy¬|éš Ã#bÆð¤²®¦p¼†FbjX¹®þeï¶%Í„áÀŒ­Ác¯, BT+a�JgµŒ½ðÓF^òßÚo¿ô†«)BK Øq²·V[WÞÜœµXUJ>'bF ÆS¾úxÊC#1ÅqÓÒοêß:ßt† ÆÀôûd Å"b"8ç_ÇDa'©`'.E2n5n�;ï>3jó¥e^OƒÑ¤ýâH\Žn¾Œ’Ï ‚(õ‘q¿?™uÒHL�ëRu÷�¼Þb>޲~˜Q­œB<#�Õ…‚�=÷ä#/™VúƒwŸL+6i»aw½\+„³ uM�¶‚ J�à‚µŒFC®LÎN£15>:vxÎÒT¯ù^Žq¬Å#Ýóe™G fÛÔ„ø?2ÚÍömï‚®š=Þoå¾ÝþÁEEÕå[G¯¿1’ÅÞ6´gh÷ ¢´§`mÑZGA³Ð`LUög¯,öðœ¹z«Æ`�4¡X$@ÌÇ~ÆØ^é¬NÄlû �F_ö„§=ùï�·œáŒI•°ÿÜpM<�³É`k0`å·® Rò9A%Ç¢ ¥}€z„L•@1ãørÿ«æë¡¡#ˆ�õ. Dµò�”Vo¾k&.ûjpqäÅЊ‹2 å«Ç{¤I>¿çCuÙë2hw’!¢ôX5ÝÒ18V˨GÈ”X•¸Øtר‰zÓƱOnï$BTŸ€Öõgœ‘Ín6ÐÓ‰ãfÄq~¢qmÿk5sdÇñtÎrº/ì—ÁVEaøä]õYÆ€¥þ,æ{r´�QrœÙ‚½e$ ‘˜0ºo^s!n®�%Á´âýx`»©CóH€˜àÛ2ζüråL]û»:ÖÕdúŽó¯¿Òt.Å›¸›®÷å[›ì¿Îñ™çÍa‰�Ša1E X­Idݵñ$•ç�v^´üeïæE¡™ë™%”:ÌÑ7�!ªO�pþcÃÒ �³ÇctÈ93c |­ó#gì�¤™Çpïy’ÏïÛØø;j£Ó�Çõ�4mŽALžÅ 0 |ãXÂïMe4 “§#­ùƒáý­&4í<º¥Þ¬óFÏXó’ð/ÒY­köÜ“KgêòYÅÊlÿÈÉ„ÅaÊX�Ó½a÷`4é’a©Ô×Úô[o¨yÏÄ�G7†’°)AWÅ àŽé»TBÖ> 9r+ êä¹+zlÖ²t�ÏTF X *÷B˜37ˆˆ‰áœ€tÍôØ¡Ý+QÈÏØÚ±{ u|øDŽY5³�Ýöòt>¿÷îú¬¢\y_ØtÜLÁ¡’!bÌfÀõøŠ\(ÑZ+UÆš4ªìË}¯.t›­4¯Îæà±m«H€ÕFÀ�¥³:“ò°-¿œ7“qÎÙ�ù—Ö §tfžWä¹¢¦¾0”a‰X,LÜ»±îªÉ^+ÇM¡$<êQHÄ$X­ìQEÝÒ68V«Pe¬IÐÒÎ/÷o7_i^†�aÓvÓå‘19œó¯�Î{b»¶vÍôg쯙¼ñ¦7Ìñ|Ø}ª/�+hª ëcý��|mÐ6)ñèTÖÕ&Qg+Ò†BÄ՜ʼnP¬šé_Š*cM�ë—š>=Qg*£„âBQÿ ¢Ú¸$„xZ:«G›±GÓLÌæÐ²Ñîàâ3 ÙΓò„_Ý·±~J¥®T¬¦©WAWÇÁ€»C’Ò}‰¬».šðÒ Nž?~m~c~Ü\�t¹X…Ÿ¾lªÓ  „øšŒv³­O¯,Åçü¸yýåC¾ÙCÕT;íÊMÎ"Ö©L/AWa­´à¬q¡´ FjUªŒ5iî šÛœ3Y—twáñ}æ0…�]ןpZ6»ÙÑ}Ë‘N”¤žzVþ?;?~rØæKUÓí?7TOçl2¬‡;næü5VCTCÀ®ã¦Ú\*UÈ"â}¼¬(€5ŒlEÝÚ:LIé“ÅÁ‹ê_ôw/0•£Ë™°ÝM„¨&cì›ÒY]È;Ø ›–êãR§öO³î9³¸«&QàÕã=ò$Ÿ¤ÞÐyq«7Õ¦à7_K‚ ŒÂÅ€)€ÑûžtÎU§¤ôIbÊP,!®Ç£;f‘!ª]×0$›ÝlïË%mâ¶zŠv~øDZ©üº­ãéœåtߘ_†u0§Ó©u]ç5|NìŠÀÚP ­Î‚ Þ“ÜlLæX},UãMe4¨“ãžð¡¹�f ÅŒ…{ðÀUíÓ‘‹<€ïJgu<Rvmn/åG^rÔf¿Þ¹ñX^©ìWã/»Òt.E>õ}23¶‘2`¹?ƒ…Þ‚ ޓ딉ÄôéúŸ\°–ÑhÈ^Ð()}8xQýó�—ç›Ë*Ö‚·®&BT œó�’Ín±í™®RæWsú_[*»[úkgåH>w:ñÑ;kg\Ìñä°ÊŸ†B%²‚x/nUΜU](íÑ�©Súd˜— Þi¶…š~7~¸jOÂH€ÈG À¿Ëf4ë½0gŽKý¹ûjæÆn¾å g¬âjÜžî »£I— óÿ¡õ¡œÇ­–d�E¬ %àT©BAïÂàƒ `ÀÙ…-_´µR§ôIsÿèþ¹~=mžS#Á<°´ÝF„¨8çß ]Ö,{é+Êñ¹/–Œ=UwýùJ�í'.SçóÁ_>– IDATÂk帹6 ¿•*dñ.jp£1ÞTÖŠ'=4¨WÇ£åm_Ø9ÛdÝmxbWUŠP rrÀ/¤ gŽ,A|¬,‰h¿¬_=ØXÔS)c‘+jÊá #Aæ}É|wñº…ž’˜HNO¢ÅAÉéA¼‹e 0ÛÒ86î÷dsvÔ«³*q¹iíøyó^Š<³‘Q=š™sù‹6öÌוëãÔ²áò¾š9ƒ•0»NõrM•aÚ?¹¬®l%‘¬d0ßCÉéA¼‹ 0¢¥œkŽ…¬š{út`øÌÈÞyvMäÿ*+ðäöN DµpH±]ºÍçÀ®.èZÙ’öþ¹íCçzf—½òΓ½R„_y¬ªØ˜ ä°‡eÌ™çÍau •:§ñ6v6‘b€lP5]mŽh�¹¡BÊõ©á×[Mc�` šöˆê*H@DbEyP:£S ÛúÔÜr}<ðíŽ;Ï�ô´Ž–ë£Iû¥á¸�¬6¶„²NU8&€8PÆh¨zG·SðPçt‚ ~½10àzcüFW¶à¨�¤|4¨WçöÈÉŽ¶|Ä<½TëÄÝ×UÓ-“‘]×_pL6»ÙÎÍ]åü|�YÄ×:>röMWC¤Ÿ¿íÈÅZ!É\ß7«ö7áW½xZRå³Þm帹6…{A€.è0æRuñ¤Ï›¡|�«a\ù“��sLe”!DÕøõ$@$‡1ö-éŒêoÅ¡Ý å¼…"SÄÿœõ‰Sœ ÑÒîO¯¿9(Eï�Awa¾ÏõÎjo¿â@¬|"Ä¢\LS^Ao=ˆÜ®EŸhR ªœ“wf†j×�Ÿ1O1¡Ô቗W‘!ª]ןÐ'Ý~¿íW+Ë}E¦ˆÿ5ëc§zÁñR}æëç†jÆÓy› s|_çJï&<Å�¾òžÍóæÐEM ‚'n3Æ%S‹º¥}(¤A½:÷¿n®„t�»ðýƒV D5Pð¥ ožZˆ¡w¹ï#«Xù?u~üä°­¦$Ýé_=Þ#Eòy�ÍÂ?ØÌ_ñòžçÀáò&l6ýºi!å…„ôt2`‘Aù ™œ³.šðÒ ¾?�bÆñéÁ½m& 5ðÅo$BTœó0.—Ѻʞûé²J¸•„Å©ýã¬OÛ<é™üœñtÎr¦oÌ/Ãô~¬=”µ)Wé>/ìÀ«å,ãµr¬«M¡ÖFy!!=ëÀ ]º>š¨qçr6Ô÷gCìL{s!nž¼™"¿?\ñ ö$@`"(åG²Íï]�LÚR ÷µºŠÿ8ë“Ç"6Of¦>ãåc—CšÎMðÃÜÛ1…Þ§ð¬”1%次¼‚ ¬6(Ùt`­C±åƒ\eÈWþpp÷,óX¤¸am¿•Qpp,yÈe]lóÏçWÊí„­žâ?µìø¸Å5#^èÞ³R„_­®ó:=Ž©Å4 xJbeNì7ýB¬Ô/„ 䥉+ŒyWdÑtKëp4@ƒúþ,Oõ5,K÷˜¨„1¿Ï=çªä;$B¼M?€M²ÍötWTňA‡?ÿÕÎ�OYì†v¬8ÕvE“Næô÷:ë¯í)þ–é/¯ó_ï(âæÚ¼Ê !i¹A ªWèIç\µñ”›õ}|üáàž9¦qŠ9s ḅQë•󯡬ý¢Ë@d´{¶VTGÔKŽÚìÿîüøÑ”bœÙ~â²§!»•ohòç¯ùyÏ àDyEˆ[åXW›D›³‚ $Dp‡1]Ò !2pä VØ+Óš�û>9QoƒnÁ¦½ÎJ^âñ6Ç…ݲͺŸëª´{ºè¨Í~mÖGŽe 8 É5åÈ…)J2~¼#”µ°i†.»ÊŸœ®0`™?ƒ¥5YP¥^‚��Z㺤ƒ Ö6 2ÚNÞ‡O„Ì2MY^ÎȤ*ö„ñTU}H:rù͹¸p¶¦Òî뜳!ó¿ 8 Ùu²7�+hªÙçQaLܾ|Öˆa<-€u _ÞCÁvW7“°«”BÒÑ¥µÍµå‹¶†ð¸�õÊø´œãÞáƒÍ&z0ÞŠoTæ) âhš¶À©Œ‚±~º¢oí¢£6ûÕŽ�›ŽÙyªOŠð«Åm¡qÖÑhF„bP(a/€_r Z^´ë¸¥6I¥z B6€ÛUÃB±ji¯'“³ÓÀ^™;¢§Ú}ZÖb’ä@]f ¢:–+cß�Îæ—aϸšÓun<–~²íØå�¦›¿ÊI½ß•[1»19ÙŸO9ùË-õ£»jœ§~@ÛøDæT9ý’·B²ys´±„™™£³ŒÛÞÇÆÖ¢ù{E] ªìþ�‚(ü DUÀ9e¿[bröÄbŒ9«á^ϸšÓÿ§ã£GSªãiÑûÎH~uë’ŽðTÃ9›E»ØÚ0’ô8�KN?/€§u Qþ1™íÉá–Ú¼A˜”[`P†ŸªëJëh<@ƒúÞ¬HšèhÇÃÛ;I€ÕÀI!Ä©,Ö5 {î‰eÕr»çÝ ™šõ±c ‹#§zÂî¡hÒiöi²ª ¿cYG䚦XQDoSh,òƙŒØc6éÀÅòçbx¬ëj“ètçA„ ñ0`•q§ ®LÎY“¤P¬÷hf;±êëI€ÕñåSÕe³™Ú³…|Õ|?.9j³ÿ0û“GcwvûñËRœ~¬œÓõ¹Út®1¬Iö4"\aƨ†€Í¢"ú…( XâËâú@6…Ô Ât,W3ýšÆÆý*§ªXïÅŠä¥ÆæBÜä–à‡›Ë^|€qU4M{…1¶_*£3iÛüóùÕt˃6þ¿ÕàÔ¡‹#RT5¹sŬ°×Iz\ÙKm #«�y!‡ð¬d˽Øà(âÖ:JP'Ó¡¸É87NÕtµ9¯¡�}�±‚Ý3zÀÝÑ8¬7�!ª…oÉf0ÛÝÝUm÷}eKgA‚dÂæ 7³¤½.mÔõÞÊ M;m9ÃnrÀ&Œ–_„Ø�5Á4zsÔ3„ ÌD'Ú�ûVûSY·—¾'7$.6ù´´ÅÆpýÆr7&$BL ]×7¸(•Ñ£ƒMØ¿£©ªDÓÁ]×É05ë—v„ _ã…÷´Ö† mZ˜ð4ŽW@漕 î£u‚0ë`Ðk'Îk‹ùzWñ.l\W?>Òlk7úŠe­øI„˜´àŸe3šm}ºzNAÞ8Àp«ÙçÄfQù†¥íÑ™¸öÛM ‚aTrº`·^æ@±ü§!^+Ç͵IÌvçé4„ Ì€ŸK�û6ÛŠºµ>œðÑÀþ.·Äζ:yÑ$¾³¸…QpÎÿ @D&›Ù…³óÑ{Á[÷Úý´§«ç7GÜÛŒ¾Â�û\™Ë-u#šUÕ »èø¯ˆR½ ù²XJÂ¥ÒiAT=×+€�5¬BãI¯+W°ÒÀ¾7/Xïk0‡5j ÝV¶ê^$@ˆ©�ð©,\aÏ?¹¼âïSË+ìÔ‘Å2LÉd;ŸO—ŒÃV<ßÞ0’q˜ðs詌ªT›ŽõuT®— ª€ <Ó`Í£±UÐ{7â§[Íã<ó›H€Õ±T9ÿ6€œL6³£¯/G:QÑo‚Ø+/v"“ö˜}.:ëý©-¡L©>OW~¹¥n,îs§ »hÀ o•ê­€gûÛåz×Òp¨älÄ5:ìåg¡Ôw9{¾hÆÍÿ\™*µÅ”ë†ñó~sX£,Ç7ö–¥o bªŒxB*‹ y{þ§‹*ú÷¾,EøÕ­KÛÃ¥þL&±�†€qy!ÀD©Þ§t Yc[ç(b}m-Žír1ERz¸S Àc3»ê#‰‹¦«4Ãï䃑-æ°„YQŸ.K” bÊpÎä:—e¯m¯Üdôá~ë=?Çìsà°YôõKÚbåúü¸Ï�¹ØV7\°Ø/d’eQV2XHÃAÍ bÒDrâ£w(€�®±Â…Ò¡Þ ïf~v8Ô–�˜¥\ñj Dµð†âE©,ŽGBìÕ—:*RmþÅbHнöÆ-c›µ¬^qÎfÓ.¶6Œ¤ÜãÂÀr˜ÉÚÃ+FÖ×;ŠX_—D›“rCb2Œç¦ñ ©+gð)ˆ?•s¹r9Íòo9ÏB°�3GI^Î:ðØÎ’· B\Bˆ‡¤3ú•g+ò„}]Šð«;WtŽUÂ}èŠ"zšk#á�7Θ�!YÇ*+$Ë¢,óg±6H•²âªû‚&0š¯�TÁ&0°¶‘à‚5��ûi–ߥóÆÏ7Ùa’’¼¢x= ¢ZØÁÛ'“Á¬÷Âlœ9¬¨›Ú·½ñHÈìc?§1�œÕÈVÒ=�k’=Í¡°n1Ð;¯°�,ÚuÜZ—ÄuQ'ˆ+Á¹ÀP®‚šdß`¬{gÏí�DÚõÿ³÷ÞaR\w¾÷÷œª®î®ŽÓ“g``Èå,@€dke¯-Ë–¼öúÚ{½ÞëÝv×»Þ×zîóz_ï^‡u¶×AW¶e�…‚•�da Iˆ ‘AÀ0À “»§sªªsÞ?zP„îžîªßçyô¿–9é/€Ù¶çm~Åê%3êf}Ѿlogóˆ¡*fùN6žÀPCç}Ÿ"pqc‹BYhT²—p8Å|I€ŒUÈZz]r>+«¬u4N éoâ’DO›*Íúw K®BíšO„¨²~⨧“A¶á�Y“ú^ÛÝ€¡�v7õœÎH¢#¨«Z°9�V<<­u8é÷”·cû üΆkË4U/bYs ]T²—p0ùœÉÀ)³†ŽVat—÷lìÏæ½�tÎC³^"`åÝ¥zí!ʘ¨Zž+ â¬Bü@ÎIcfÏ=1©%yÙÓë‘|¾bq÷h]î ÎE_{St¸9CùCÀØ*€Ò!*—X8Q²×¯R’ºÓQU&�6æ\Æxý”+ºjëË--ÿËù¶X’š¾‰ËǵØc$r.y¤*ÕÎH€å`À½Žñ`ÿlß49qŸf�³½¯Î·»‰Cº»xÉÜŽD=�a,ìÏ™ÚRÞ�, `«¶€tm�7â¶peS syz¸8¦”7ù¹È$‹¯/ùh±ÆR$ZÐ^Þ Ñ †Nf©,ï 2'šlÑDpI½*/8éA”gÍ ñmÔLÑÐ*=d7¬_2)ŸûÇG»‘ÍøínßËLS8¯û7©9w…B²N ’ÕS[ÛŽ3`–?�e- tzŠtst(œ;K�dÒo�ñ¢R{_°O«æX"HÕðJ¸…¡^;Ô`��¬J ¢\”R>ì(rhß< óUýƒ_|ÚöáWœ1¹rq·mŠT,$«àIYs êàQ$ÎkÈâ Ër$ŠÂ†•Ï™Ü4K‰èÁ‘±jìx5�en£«–+’Lûhµ—¸4yØaXLÌÄÚ+^Z˜Q6¤”ßrÔ€…¥°‡~³¸ªŸ9Ô¯³ãGfØÝ´ ºšã-aŸí^ŸW$$ (%¨ßo£µwækt[¸ª)…y�z]êœæ�ÑüëgªD­yA€Å埓¦h*È!ig˜›hòZµèþ:ݳ W�ËT¼)! ¢œ¼À{ÑIf;6/F6Sµ€_öøºp@'ÚçMµëØ*’5à~l5 É0Ó_ °,' Åy‰èñ±üë‡ÏŒYƒçй(sð®jZjSÉç§ÂÉ�¬”ß›)ë…M›%ð $kó,Øî5pus óy(ÔMÝVx¼ªã&tl8÷ºêH[5*@üº*ðR!ž *¦pü™RE×¢tÀ£©l ¢ü Dˆÿ `ØIcfÏ<\Y/H*éb‡öε»w·Œ7ø½Ž‹Íœ‹ãí�±ÁÖp œ•÷à6`­öÖæyPaÀLËšS˜ê¥ü» 9Ð2:�~=PH oÕè‹ð „aqËâÍã©­|àÂÔ{D*X$@ˆú#à'Ž GÍBϾŠu†eO®› ÃÐìnÇ‹í›|~*Ä‚þÌÁ©­Ãy¯«PÖ üI@¦6Çîæ‹ÂY\Ù”D£f€¨oÜ^Õq$:’UO–â£VÓ"¦q iãáTÖO¹ À‚t¿]B¥ñ›GšH€u…â¨Ù£N�’±GW±æ=lÛ&Û‡_µ„õüâm)§ïCSÍ#SZGÆ"�ce®$t\ÖdóÂ7t \Ò˜ÁÅ‘‚.Ê!RGÏ=Kbt ózì•Y«Õi9€¹åÿnŠeñH<íø\�æbÚ×QŒ»í±¨=³H€õF ÀÝN0Û½}Ñò{)^ÛÝ€¡�v·ßÕ ¦�P• = `¸1”ì�ÒXþõ³ÀÙ¾WçÛÝnKf¶Å‚^�^s¿ çâX{ct  ê”rCµ€tíž–ºô–µ$1—*fÕz@sä$õI¾.@ YãG¬Ù•¹ls<íødô™Ù¡{Œ„û°æù6 DÝ!¥ü7G 8�lä�¯+Û›öÇ?t#gÿ.³+Ïë¥ÝòþŒý™ž©­Ãy·«ü¥¢Ž¸O»j³oÈIÌòç±¼9…þ<ŠÙ«Ya·#ÈÈ@Z-äJ/¡j¾|we°´‚¡Ò9�“×ÈÊ»§eÇìá âFE¤* ¢ÒleŒ=ï(ÑõÀÝÓ!Å@Y.öâ3¶O>ó»š3´U>˜¼¦šGºZFb �$ãe>Ýl’ÀC¯íƒ“Æ%Î ä±¼%�9~òˆÔ¤ 9Ó"„Dï�˜.VãN]*†M *É»$sÔaXRT$„Q ¾å¤Á2!–ã¿ÿåó`òèY]h¨_gÇ�̰»½®Y8�¼§ó,“ƒM¡Ä‘öÆQÓ¥”¿^íJ}C^©moÈI!2;Pòˆ�©1ÒàqìdÚ3¦€Z'¬îÊ\VÏ=¾|^sò˜™ Úd(Ý•È!BT˲°ÏIcæã'>�lÃÏÀpðŒ…Ìãk@Ø»³¬Û¥X×,œ£]rúduOápWëp2¨§Ë~ñ“]Ô°€ñÚÏ%~³™éσShÖ¤ »›ÓÕ³oÂR½gT& "ãG{Aº 1{Œ_0/Ö=_ö~ $@ˆj cÿá°1ߎ/^‚;öK0¹ëŒÈŽ-¶¿º`vGÔç¡fg,î9—}­‘ñ¾ÎÆQË¥”¿ƒü0JÞ�P½5.1o"4k†¯@9"“ˆÇç’.Mqd%¬Ñ¡ŒÉ*.VÃ÷h©Ì¥ƒ™œW5-Å©{ ¹�òùEÞãÏç§‘!êó dY÷tÐ�½œóÿ‚›o¶ÐóÂpl=­ß~ñ™N$b»iÅâéc´;Ξ¤îÍìjNù½åÏ¥±ì”ÀZ«ÔȰps‰s‚9\Û’À‚ •ï�´³mЙy �ÀÞ-Cn7¯ý5ƒUÊ,’ÌèN]ÿŒIÌOõÛà ¢°. D½Rð#‡�ùË\¸óN�[W¬…"_<å×sOÚÞûÁ[:]3Ï9A[£<ÎÅñöÆXk$j*¬ü¿€?àidëã`¥r‰é¾RùÞùÁ< ‘jjpnÖþW†ë§ Twå\…¡dÖçä=0'?bb�< D�„ø1€´ƒ†Ü¡(ÊÇKŠ‚Iܺò(xô+w±ž½sìnë’kv|}æGw?šÓG»£Œ:!¨g{ºÚ†2º'W‘8(�ßÖ~ÉÞ7£0 ÛWÀòæ$†rÔY½J4¶èŽ5ôñÞ¤«°Pá7aV ŪšaºüÙ¼Û©ë`Z~Ìo‹�0ÖŽï?VÖy$BT“qw9lÌÿã-ºõÚgÁåý`xÏW±ìñûçÁ0ì]=DÓ rõÇ™L•?žzí‘»Û®Üop:– SU¬£�Mci^”ü™›$p¿ŒÖO˜ÿë ›S¸ !ƒ&Í ÅRA" R>1R?^�ŽÊ]º!‘q¬¤¥�´ÇØ%8µN DÝ"„øJ5vò’¸ä-?¼måfXæÝ€|×ÓÛ¶ÉöáWrÁù{à ¾>þ'šŽ|sÚ‡v$T=O»¤ŒŠ?èÏžÚ:œ÷º ù€Q÷×O’ú› hõ¸¸1ƒË“h÷Aùêå§©Íg:yü=5æ¢Nz{åv@0›×›Wt|/�´W•·K–U¦’!ªÍQ¿wÒ€9ç_yÇÿ⺽~ˆ·& ¿¶»#v·‰¼ö#»ßþ³}¾©é¿ŸõÉíû|�Ô¤Œ4Õì™Ò:2Ü\!oˆD)Iýwp´þr,4�¥ Y¬h-55tQÂzÙˆ´zíÕ�•ç^NÔGøQGÏÈB²°C“Ñ)xW!f�®ð\´‘!ê!Ä·6ä›L}ÇOïXy*ÿ1 ã'Ä6<°Ðö⣽ë8,�¾Ûß%U¯ù�î�ì{¨eI�ؤÝR>ÆÂ%oHF×*ãeJxL‹ºèòvÜoê%2?Hy"å ©Õg9ݵtïïêãàÝÀJ�Ñ+%FœŒÞ�¶I'BÔ=Û¤”4^•sþ_ßõo>}í0¸ñ}0 À,p¶oÇ|Û[ã²åïÛE¸¯åÒþïM]µ3ÍÝEÚ.壠©æÑΖÑÁæÐ¸¨„7úåO¶»² IDAT½CŠõ¸Y%º},kIáâHŠÂ³ÎFÔyUºíRÚ¾;¥íÞŸvÕüeÚ*·Òµ‚¡éù¢#;£OÉÅì!@ÚÊÙ�1)pÎ�æù"Þ«ÎÈmJ­ÿ„?ü[r6OÖóx³rÕÇŸÊ?Ýœ™øÇÙŸÜvÄÓ2N;¦¼ÄÂ�ôái­Ci¿·2•²Nö¹Ï×ïù³ÉmaiC×´$1ÓŸ‡FáY§Ms‡n:Ý¿Z['^�ÎÊ^>”vfV‹‘²G–`üß�! D]cYÖcö:hÈEQn}Ï¿½ù²œ|ä·öÏýXtán¸=§Ûuù�¯Ïüèî§" Ž•ñÅ ÀPUëX{ãXk$*^™x£4€ xÈÆê7¢NWæòXÑ’ÄâP .“Ð)ÒÞt|©±�/�{ê ÒXi’÷:qþÃFÖ>eˆ³�Q÷gQÆØ·5`)¿¼g4G+“rµ­ À˜”«oÚ}º¿f2Uþªãê£?èZ¹3«RHV¹Iõì¡®Öá¤ß“­Ø‡œ°NPÇuÎ8¦èE\Ö”ÆÕMItû ÔeýƒˆãÕš”À·~¬öûA4UöH¨–ª;°'HØÌx쳘YÙò@H€“†eYkô;hÈóUU½ö]7"çÀeçÁË)ݽ˜9/q¦¿ÿRhVü_f|ü•~w8I»§¼˜ªbõµ7EO´EÆ,µBÙ×À> üÖö×OÃ÷Âï˜ÌaEK4d(Wä=è˜FvìMkϾ¯í÷@…ƒ¤Â™œã¼ +g#ˆU6? b21üÈa¢ë+ïñWaûÁ_¹j×Ù^b@ þiÖ§v¼žÝ/é¸Wvâ=whjëPÒïÍTìCrž•ÀZ è¯ï›è)²´!‹e-¥R¾TAë ZÚuÓ¥)TÑÀ7ÜÈdk¼'D¸Â‡q†a¹¤àa3m�ŒR‰�!l�âÇN/cìCæ½íÇW¼ËÏì…/�’+nò2þpoál¯D¢è°ÎAãÕ9çŸEQ>…ª¼sšÄîôÙ=˜2#]©ë ´^0ø�î_Ñ‚ÚNå'?ÑÀp 9«XÉ^(xIk,àµúOT;*—˜¢qac+[XÊ¢E3lÿ î>§�B%ßÄX¬Èÿ雇ƒ¢×·^yåï1LMÂQçOŸYPm3¯(Ky@ˆÚ8¤Jy˜1öW€c2‹çJ)È9ÿ>€©¶éGo{ÓçT<Ï'ê Ï6ž3ÔZH¨S ãAÚU"Íù2.KpÝ0]²R•Š(½…=!�0ö»-p]:uݾ’g„A"+ìçq{U¹ã…Ao.kÐKÏ ú‡ j"aò+. ×–8+¢T­®¢|°‚ÛUÌ»�ÓP爯9±Ç7Õ…ìÁƒkI€vaÀŒ±o˜1–ð[‹®@(.¿øÁ«sî° È—C³bq—ž9's"â’‚<å>;0&“~o>ëuô\AS„¬Üs$ à€F$ÐȪòvv2ÅH‡×ÀL_ . *“È Ë&Q…G“êP_ÊE;è ö̸t¯*Ï÷×NŽŒ°«òX(\¤|Þ¼SæºÏݘz50=n‹Á¸p¿¿÷ Â6¨ª:"¥¼ÍAC^›‡AÊK—oÁÒËOTûs{½-Ù­¡™#³3þ3ã¥ÝU~Š.Õû3`z¡èf•¬‹œ@é­ì8€fnûjvÆŸ*Ðê11ÃW@³Û€¦HX‚¡PÇz:›*ò;FÝ´sÞÊæWîPÀ%Îó׆7@2àÕÊ .$‹…ýi§Ìó€Ö�Úš1n‹Áyëï=D„° BˆÆØG´9dÈö7ãÜ’õÕ'àŸœ 8)ÅcmŒÌ’çä‡ÂŠ”ä ©À~=IÝ2U­hVö w À^YòŒ´p1Ûß!¼ŠD“ÛÄ4_Ó|„]\L¢ 9Ì:òŽxt—|é©ã:í™wòⶸ»1¬‰sj \±ðJåˆ"„éÁ¹#j1÷4&m#@ G°þÞ}$@›�YyÀŸ“%lp‹š5ÿ5|èæ}“úì÷w¤·»Gæä†ýa3K•x*€©pèÙ¼[+z�‚¦X Ë’(UÌÚ+K­L› :ÃÎ*®7¼#­î"tU‚A¢Pã¹#^ŸKîÙ2ìɤŠô"à]Ø´5îf`¸`Ñ$—,f¶Ug%å½Z!¯9#¤ßIm 䋉cý½;H€ö:´J¹�1ö!²F�ÏåÇ?óGtͬ‰¤»¤ª›ÏF�7¤Â5Õù3Bá–?_t£’aYÀ J9" €&渺ŽE"¢™èÔK¹#Ín¾$ã£Yåøá„F;åÝÙ¶+©õ ”«.n(*Ê$y·dõˆ©*fÚç)8anûµ†Ô–Ь˜-ÃYܳ•a7cL°ŠLQÇ„"1ù…x®¦JÞ�W|ÓGçäý!3GÞ�ŠÀ�õ¸‹ñ€žu™wÍÊ8MÇQÊ‘Z˜# ̳‰p­7 ’VOE@ã¦ÌIÖݪÊå+›('ë}8Ô›u=¿%®�¿0Pl¹ª¯!‹¨JÈÄ­BŽ}Y'Ìk¿'’zÙ.²ˆõ÷¾H„°RÊÝŒ±ÿ €ˆõ:‡W®z ‹.ªÅï–p鿯†ùÃ>Yݹ‘0wNéçê¾IP¸Lô\Þ­½… WË:)DúIˆ¼Y�x‰°f•š Nä�D4 U@�„)YU«l…Übóût£(hϽc1Cyäé1ocØeÍ›Uå¼C;ª#@\BðÑH0UÏse Á™‚êÕTñ~ÿî„'’¶�a�XïŸH€v¤Èkp9™¢QTS~韞€î¯ÙØ^Ávø»ûý�cs3A¿U °�JmfM5ÇÃ�´P˜Ðó®–õf!r@–rCšIÌ TøU�f·‰)º�™þ¦ê4jüª€Ê$*ç)aœaàXÒ5r"­Òl|€0%Û¸yÜs '«^²4dxÜUJÖ᪔áH°x@Ï …‹z›ŸLÞPÝz¸åG�nŸáÑTsNgä}=9½žæ¸m’ЙÖßûG „-™Èù2­Ñ:œ»síÅÊ?­¾ë˜+`<9wHa–937¢Ü�Ê‘õ¸‹ñ /ë’y Ó…J À1ûeÉÒäl�È{áâ%QÒè6Ñ1á)™éÏ£ÝSœ&´‰ó¡)ùÙç•H`ÏÖaònŸ"Gûó꓊yº»¼fW‡ÇªøÆdI¼W‰œO+ê(}x<£Ý·i_ûÏŸ|uÆ®£#á¼a* §·$>H€ôµ�¿˜ž°Çª” ëï}ú¬_ˆÐö&j”îp™¢ÎnMËnÜUOß×d\Þ×riÿ ¡9c_<ñ윙ّšÅ ÙZU¬þÖ†ñXÈ—i‹‡½¹båûBdl’À 8Ÿçp"€Â€ K èzg“î‚`Èš9‹#k)ÈšyÁP°8 §Ð«dÞÒæ¢×ç¹ uE?UG Ê_ÿó�†ËÎþ᯻SÓ:+(DrÕM;ñ 5á«ý988ÕÝr¸õÕ#CKœ~Übžk–m$cR20vV‹…Q³!þçüvPEýÐØ<‚ ¯ªÇ¯ÞçnÌmÆM»VÅv7rèåÙº(R׿ ‘õhÅ#SZFB™¬·m$VM«òÏ¢4€?I`›œÇ€ù >mÜ\­Yh€…’›ém/ dI¤ƒ! ÁQ”¼ôÿ°$“^ØXxnã%£Ÿ&/nOºoúâ.í–�´e¿x딌O¯@XV•[º Q³»0_4øó{ûžÛÓ×|dxÜV×b.ûÉÖ­ãÎjL$@ˆZf�”rcl5™¢NîK]½³Þǰ!²ptKhÆø_žxnÆùÉ£í ’&¶B$|z.ÙíÍ7ÆÓ¾æh2ÄEBà2^�ÀV 8—çq*wQFN&¿{”“ûæ�g”Û?Ô�#rf†d÷Ü?è{ô™1ïníLÿùê–¼¦±òݤªœ¥ FÍ�C÷õ=»ûhÓöÃÑ‚a–% <¯ÚÈC~õlÅ×5�ªªƒRJ ê\®¢üÒ¿< �·îo´y®‰—B³£ƒZ89'7ò ƒ^ÖTîÈŠ¬Ç]LýÁ¼CC5¼žJ}DöH  @#gk5èhu‹‡Ÿó¦3…a�!¹¼`›¶ÄÝëö&ÓŸ;C7=o¨¾3g‡RÕÜý@´!�žl{¦sE婽M¿ØðêôG·îèKù,!Ni}žJȦЬ¡ãÞ¦œm Ïaýš³jšI„¨i„½Œ±´“5j¹`én,»á°�ÆÔçiÌÿ1²`0lfùÔB4H%{+¸×9“)Ÿ7Ÿô{rÃR\†Y�Ð `xBˆdDà¦ù¨è¡“ÑX‘ïØ›¦êsgI¾ Ø«{RÚïÖG¢ŸÑ嵂~õÌ„ˆð¢<Ë÷Ú§}e£‘@j2n­ÑTÖõì®c�÷=¿§óÞg÷LÛut8œÊ�~èí©�'÷�iÃ6 /Ç6á÷žUIz«GÔÁÊ}[Jùk²D� �å7î¶ã¸rÜ%~Ú¹üȆÆEƒŸØ8›’Ô+KAÓŒÞΦ±@:ïi‹%BZÉ#Ry,{%°ÏfXÌK½DˆŠpÓ‡[swß?ä‚BËrŸÊ ¶ö‘aý÷��è->´¼9¿âŠHA÷žFžHLUîK.…dªaqÃ¥VEö ÄRîÍN„_ínè‰û¥¬Îú;á ٫㻚=ëÒÉ$@ˆšÇ²¬µœó0�¬Q£´užÀ’KFì<Ä#ž¦Ü×fÜ´ëšØ¾ÆO ož²òôž¼‚¤üž|Ú¯åãY_c<R «:{ à€Cè°˜ÓÉ÷Un:ÛÜÖ† ϽEy[³_�yóN ˪–ÊÅ`s81ö§[c©`(•ñU¼£ú›)Ø)K ë³°�Í$DÎÆ€OÜКý÷Ÿ ’5ªËÈXQy|cÔûøÆ¨t·"§{=欀ǜÔÍÙ!¯97è5Ý.QéïÂߣԹ0–ȸci÷h"ëIfµh"« '2žÁXZÏͺ(¤4ì æìµq¥À�wRá„ÿÁ9ÿ[PÕþÚ «oÚåtlŒÌ�n ψß1ðüôˇ;),«².Õêomk¤š£ñP8[ðŠjzD,dé¿fó0�S]É3࣫›ó?[ÓïO¤L*É;‰d ÛWȸöÅ3. úúϽ —-^Í kªhö¸D“Û%Z¼šÕèVE£Gœ¥”èÐTÁø\ŠTXi;B g YËb†UÚ§iK²TÑ` ÃâGûcMæé|QMçM%W0ÔD. nÓu/íwG26 eyáH„¨'†üÀçÈ5">Ú»ŽcîÂq²�æëÇSVö<Þ´dàÓC/tŸ›>ÑLV©,yM5ûÚ›¢Ñ|Qk�&Bz¶Pý—£(uXß<žµˆš›SE÷rù©[³?ûõ ?Y£öÈY‚KçÕc•ý[{ÀŽ{šì%@$Ê"@è�QW!þJ•û‰ZàŠkw’ÞJ¯§)÷�éÙ÷ý©«vŽhÁ Y¤òd=Z±·³yôxgãhÁíšœr—'óÖXÀ#V)¡—*Ìž·¼=ð)t_'lÉ!½9k³!•å¹F„¨7H)'3Ô_F®üóÃdˆwç¥Ð¬øßÍ»mÛoÚ.=�UÝE²HåIéÞüá®Ö‘ãíM“'D$€>� à·°K”:­ï‰ß§È›nhÍ‘%»‘æîb\õ¶ãeé\O„¨;¤”ß"+ÔÀ<,º`747½µ|„iZ2üßæÜºå©È‚cãd¯j¿çu!’wk“'þâ(UϺÛ6 �¼"ïÅg?Ñ‘ñé Y‡°'<‘”íeʲxtH€õÈFÆØËd†I„1)¯¿i7âÔÈp�õ«Ž«�þãìOmÙéï&‹TOˆôtµ Ÿh�ŒÜ®É"€ÃxD÷XÀf¤h~ÞL0 È›ohÉ’%;qØÛš°Ý 8y@gCM 'Ù1õºç&ɧǀ.|sú ¾;íº�ÃZ0M©q¿ž;ÜÕ:<š5¹áp¯LäŠ<*€#’²Ú&øü-S2� .²aöù;ì'@`Qá\,Ëú=€²ÄäÀãñ·6“%ÎŒ-�ñÿ>ï¶íwu\¹oÜ¥S†@•˜Íîå'[ˆHÇ$ð„(…h½ €QgG ùt.ÿË-�$Ì {œS{6\Ï*%¡ßÛ¾Gf˜ú¬Tüaܶú~ë·à’Ðg€À†ÈÂѯ̹c˺æ‹f¸f�UªC§çzºZ‡O´GÆ&5Gä$9”*h­›H\ß*€¤3ÅÈÍÖ’›1ÕkÒ*%ê�~w8U€ =z–R–R DàÄ/Œ‘%ªÎN@à/Voó|L%³œãò�Ö ÿçÜ[¶ü©a^%ªW�¸_Ïõtµ ›Ò4’ñ{j£ Ó8€­X#€uΫ¢Å9Ãß|®‹¼ DÝsÈÛ·ç&}S§Ê³€ú¶õ}vc,à*2EÕ0…ŸÁ›Sh¸+�îÙ†=G% gŒº€Ÿy®‰mÁîñ—‚³†›Ì´ÒVŒû@¶¬E—jÅz6íóä!˜Ç´\�5`û,€ãvËRsj Èlÿê°{ªÇÚ¹/åê,P³d¢æY8½%1§3òŽ ÷µ]rdD Ù¯»´Ãú5gí±'Q×!~€RQ�ûŽ”xÇ_0&pÛŠ €õ3@PrúY0ä ¾ÝuýÁ¯Oÿø¶=þÎQ²HõÈy´b_{cìpgópÒïÍ€ÕHÑ\¥*ZOàW𔎈“~H[òµ¯ÌHy=œÊòuIš»‹{ý]ö«uÇew¬.Ky@ˆz'Ûà|2EåQå+Bˆ#ïùÖ¯‰á–Ïm‡eµ¬‰,væÄ4¿ñ|xÞh�·y¼«ÕCfÎCV©Òy_UD2 ç’~=«HÉ܆áb²F¼Q@ Àa”òF†&z‹„˜­žèA¿*…Ë—_M¸iEµÌ»y@vºF^ ÍŽÚn°ÃXoY Ð�„¨{„ß²¬=¦iþñÿÕÍËÒ¸}Õ/q˜(�ÙÎŽ�éɯÎúÔŽ_t^½wD fÈ"Õ£ ©fkÃø¡imƒ±°?)¥¶î3&€cž™hvø´ôÀ&»î3ŸhÏ.˜ã£â DݱÝ?-jË�)¼ly·ä!ì@ÀRÆØ<2EEùÿ¤”/œò¿^ïnú«�FÀ"d¾3Gèõ¶d74/HsO®+õ{…á"ËTÁ¹Lû<…XÈ—ªbj–¡*–¬­ç§5q'ì°Kƒ0è´úL%b ˜7K7Þ0¦ Æ"j”·{@ ®X?�rí!“)ö[µRìÃú{‘!ˆ7ègŒ}ŽÌP1 Éç§×©¸” ¾{Ž$Áä,HF÷œ³¹÷Kà°Þšy¢å¼IÅ“�ž#!RUû3†¬G3b¡@ÚÐ\†f™ŠjŠÚK”–’(yGvJ Gé‰'~�•6hiÔ„Ûv¥4Z�D=�]úÔÑ?Eαgþž›ñàšÁr\Š*Lvacì%)å¥dŠŠ°À™ÝP“6ãî§�‰O¼›Ìy¶Ï€R‘gŒ]ÝÙr}tçô#K9"U$ðæâoNϵÆñ”?˜Éé�5z´�ˆÉRv€.tèd€§öÕÈn›’yyGB{uOšDQó<™7dÛÁiJ¹.Eo# ÛÀ9�¸™,Q‰¯øk” ‚ž9Þ“Ã÷lÇÞÞ"€ ´³ŸÆpPoÏlh\4`‚ºòc·´è¾^E U±’=êÉ™p-�KY»§z¥îI=vHà¨,Õ–µéa ¸di¨øðScÞBQPij¢¦x³$©zòÿÙµ¢GÚ2dP8üÂ#ظ±,££�LØLƒðf“)ÊÊ~!Ä‚‰#Jy¸ëÙ6(Å[¥“Ì[>Ü0ø‡‡w¶^?¾sºß,ÐÛâɸ Á›’Y=Où5ÃrÕÙ¦2 @jëëmøSÔý÷ÿz8L«Œ¨%>}õ¹Ç>|á¬Qx*²àد:®>jË�2y·¯üa¹.GoÊ[ÉsƘ àÃdвò¿¥”[ÊzŇîNã–·Bz‹`b&$#oH° ÈýþŽô³‘ùƒniYùq¿‹<"Õ¾ ÉŒG+ÆÂ�tN× \æ6LõðÂÏB)\ë€=Ø+K�—y ¸à�ܯ7sºnÅ&ß{0CyODÍpÒ"Áðóök&\ºiOÂö`ý=Êv9Z:„ÍðrÎ�h&S”…¬b €ñŠ}ÂoŸœ Sù$:ÈÜeÞ VQùHt{ûò±}S‚<"“…Ë4•H"ãkHfüŠ)êWê(å�´hc@cõ»² !ñW_=аeG’Ö3Qœô€Ô[£_Ÿññ=¶¨eüŸ½~k¹.GoÆ»a2Æ|®!S”…»¥”k+ú ¿_“Ä-7l�©›P¥¬²m®È=¾©É Í  ©º Q¿[šT|¤ÊÎeF÷b þ´áR Í´Õõ7J’ãöÉR…­ã(%¸çd)„Ë]Ù÷šŒ1\yQ¸øÔó1O*m‘甘tNz@îé¸òÐ wCÞ¶Uä“X¿&]¶½LK‡°!�^™â,NB\`[õäÎÓ�àø8$æ�õË�K FU³jo¡¨5ÆSþP:ï…�ö9H´0  @3š*ºuèhNýÌßî�ds�cˆIåÓWŸ{ìüË—öþݜ۶Ûv� YܶâëU-Ë£ghé6$Ç›àB2ÅY±CJùõª~âƒ÷ä°þžíøØ§‡ÁØL€Q˜E9囪fåW®3?î£>"“ƒ©*VÒ¯ç¢aF¨Š©ZBQ-äëPò’ô8(K•¶öK _qE ( ÐpV¯@Ã.1£K7ŸÙóP“Bb2Y8½%±÷¼U{émû ¹‹gî,ç%I€¶DJ¹Ÿ1öeP©×3¿ß0ö/RÊW&åÃׯÆçnÞ‚"÷Bò)4•"y"“{¯bLf=š1òe’OŒ ·aªLÚÈ+R�0à0J�ÚwHàÈDÇöqy”‰ûÔ…I÷T�ÕÞâ¶6¾4NÞº««¥˜¤ÐÅI†C²@2çmH¥}�¼áB:çY­Lüd¥�®{ãÏîwþÊš†ôoýìX€V1œ³rùÖ½·þãsö¥õï¸cõ ‚85.äœo!3œ?BüMÍ|›ŸmsÁ—XX+ 8yn+ÈùÉÞÐ�ÑW¦ÎÉ 7’5&wÑT#‰´/˜ÎéªiQ7JÕ¸|¬”å§ðßy¢ÏÏ3C$ž‰ê¿0¸î¦§ÍO}a§}ˆ$n»ö—û²$@[£(Ê&)ååd‰ÓC±Àîšûbw?Ó E| ‚M£Yª,çfNøoól’ IDAT}uÊÂL_KMwövþ\ÞLç¼�TÖ§Z’ÂK߯÷öõûï:D"„¨.òº›ž’ŸúÂ.Û�±í¸}ÅoË~>£¥CØÎyÀ§È§s¯a›¤”߬É/÷à=)üþž­ØÓ;È锤^9F´`qSxÎØv÷ˆOäÑVLø�™LŠ.ÕJù¼ùX(�.j.Ca’iõÒä° \Ò,rlKÑ}�¨³æÁ¹çÛw€â9¬¿w ÜW%w.ak,Ëz˜s¾À9d�Sæg5®�$€­øÎ‹{МZ ð˨“zå8¦7徯¯>ÜVHÿØÈÖ)§z;4aÐË«IDr&ãA=êYż!�õ†ÒŸ^05G勼 _˜Û‘aŒáGûOøi¥ÄYÂ……Pa_%.MÂþû‡sÀŸ‘%N‰¨âóÌšÿ¦OþÒÄú5pÃí{¡È6€5ÐôUŽ´ê±¶†fŒ?ݸà„d0¦äã>�šÖ„Éz4c<èÏ$ýž¬P¸P…¥(–tìóýüÆ€áw)róhÊMz‰Šck;ŒO\¿¹"W¦•C87çü(€62Åò-!ÄÿªËo¾æéùòc Ó4VaSÁàÞÙºb|ïÔˆ™ñ’Ej O¾èjÈä¼þLV× –#K,??œÐþqÛ‘pƤf…D_Ø9„ËûqÛÊŠò€NÀbŒy,'S¼ÿ}Tñ9ѺüöÜ3Š[þl3„nAŠé…eUtSA‘ûýé'šÎ;1 …“ VF�Y�Nzµ�©*"­{ ±P �ôyrBå–Ó<#ÓüëŠÖPá…‘„;mXt? *ƒ]= LJ½÷ãá_+ryZ9„CˆpÎ� ¸à÷RR>%¥\e‹Á¬}®…âŸCbÍlõ˜‘óÞ0º½ó‚do»K :ðÕ z¾è ¦rz —õ:Å3-üï^î ïOS³M¢üÏN»z@8Žà¶k\©Ë“„p 9ÆX€‹Èïq¯áü¤”ûm1˜uwe±þží¸é³#�¢ `Ô)¹ Œ«ºùrhVlSüAUšV»‘Ô]¢çL a¨ŠHû&<#=khŠÉ ™fZ lúRRWycWcΔ’툥©BQ^l›b>‡õkŽWêêä!œD7çü ¨úÛ»1$„è`Øndk×*(/SVC�©&.)زñ½M«£{¦vÆ©Su £ÁCé¬7�Î{ü¹‚ž}F^Ij_{åHh¼`’‡Ž( ¶ô€0)ÀŒÿ·}(Y±{-ÂAÄcçX@¦xß•R>cË‘­['±~Íq|ô¶—Á¤ ŒO½|© ‚1ôx[³õ4ŃVNi2Ò:#û×Þ!Š1™skF" ç¢‘@:ïÖ à\ª–àÜFb¤Ëç¶VuF »c×p¾Hg âì±¥DîÅí×½\Q�C+‡ppη’ÞzNBÌpÌ£ýùC­p{nê 3 tçǼ7ŽnŸ²4u¼•ú‰ÔîbÑLç=z.ïñç 7lÐkDH`ÝÑïw÷öò– ³qæGu[æ€È_⎕ ɦMG8EQ6J)¯&KLÜf¤|DJy£ãþë ³!ù�h§UP}|"¯¬ÝÓrUâ@Gk1IÅ!êÉ|é‚ÛŸË»}¹‚Çk˜®zn~x<�WþŸW�)7„ rRˆz^üî¼S�!ˆò �¤”��%&nŒÝ`YÖ£U_¿~ú"H\Éè<¤ÿçkþyCˆÓÁíɉۿü0®XÕoŸ· ln[±¡âgZ=„ÏÜœóÝ \8>~e9Ú ßÌ�ˆûjHk9$§"“Ds!¥]ÛÝzYü@gÈÊ»É"ux+šª?›w빂[ÏݪY?‚d8_äßÙÓØp"æ¡êÄû+oWQžwñyË—¶ ÒT°ÏéHJpÏ¿âÖ+ÇI€DPåsRÊ_’%ð5!Ä7È Üýt#¸ü0€…�Œî�“çÀUcûWÆ÷vvgÇè8hAâÍÝ®:$;bi׿ïî ì‹g¨oñVT—!—\üªí„Çëª@Àí«~Q•�¢ÕD8õ¹È9? ÃÁ60…Ó Ðrx¿}r*LåC�˜MƘ\fäǼ«¢»Ú/Nô´{„AÞ©:G‚{³y·7WÔ¼…¢¦ ­Kþ )ñûccÞ_ô ç¨Z–ãq¹ŠrÉe¯ÈO~~;[ó¶'3ŠÛ¯;L„ *çü«þÕÁ&X'„¸™VÂûðë ³a±l cr9™´~yò`{G!N=EìrÞ�€;oºô|Á­LÍ“ËkS¨²Fr� !ÙïzG¼wòEóõqœbÖ rñ%;ä'þr;ZÚs6ߌ}¸ýÚïUïã¹4pÎ�päa†s~­išÏÐ2ø¤dXóä"€_É›É “ÏüLŸel_û’Ôñ7yEìw’éÅ‚Ë�74½`ºÜCsE“wfÉY»ïȨwMϰ/Z !b{Á„¼ðêWäGnÛƒPCÑϼ·_·“ATçþ]ëÀ¡÷!f\B¤T1KÈU’A&7 ~uì@ãÕñí”+bó³w¾èò‹š§`ªî¢éÒŠ†K³„RMo‰!${´?êþuϰïP2Gâ×ng‚¶ÎÖ«_‘×ßtŠê¤JG6ý[¥Kï’!ˆ7˜2‘ â´dÃÿ)„ø6Mÿð³m.øãWÀ’Ëæ%ƒÔÝù1ïêè®ö S½­ºY žN90B2OÞPµ¢éò†ª —fZªf˜j¥sK^Mj÷Ô7�¦Ü’´oÝâÑTkÉìÎÑÞU·?;°ø*gæD2ëܾúÅj¿T GÃ[Ç»ÉACÎ !¦ˆÒìŸ�<¢#¦-ã—ŒªåÔª4ÙE‰Þð²ø¾öù™M\ÒsαkÁ´·i(®¢P݆©ºLCÕ Kq–ªZ–‚2­�Ù‚òà±1Ïú£ÞÁ,%¬×És3ÛÃÉ+æO�^¼`Zô'³þìÕ�éIgC¦‘mø¾x�A„ ª¸8ç{œã 1ß+„¸ƒ¦¾L¬ÝB>± L\É(6¼†˜RˆzV�íj»0ÕÛ2©¯ñN�¢š×L¡¸„©”þ,Õ°E ®˜W$¸bYüTÄŠ�À汤öÀÑQï¦á„;OM kŽöH wáì¶è5 §ÇZþ¢Á¸øéÔ{^ Îw®UÄ#¸cÕŸª~ø¢åH8ú¤ª× !wÔ­Fˆ+¼@³_f~ñD¶’_DB¤¶àXï ]?к(}¼E½¥&No ÁT!¸j ®Á$c¦ä €*$ãB0&Á¸�¬`Zì¥1}cïp`ÛÀ¸/kXtO˜$ZþÜÒ™mãWÌŸ›Þ~½„®Å¸øEûUû6Fæ;7€ËqVÿ w.3I€D57cO0ÆV;hÈû„Ôž„ˆc9™¸~yâ`ë¬ìp„B´ˆJS4-öÊá¡àöž�ð�¾h0–&o\%q©Š˜ÝN.ênMœ?«=Ù ¼£a y>N"îë¶MÊù‹–*á`ærÎ÷;l|Yñ#šú*°ö‰Šl9¤r$HˆÔ m…„vMb_Ë%ñžÖÖbÒO!ªÁñѸgûááÐîc#Á#Cñ€a’wälP8“S›B™Ù� ©s§5§NkI»]ê{Vs2?í\±çŰÃÅ“Cèyá;Õ¬|E„ pÎ à‹rFÑ A³_E~þP+<Þå_BB¤vY˜>X6¾¿uqª¯EE**@TÓlÿ¨ï@_ÔðDÌß;’ðç ÔÛæýÐTEtµÓ³Û"ésºšÓó»Ó^ÍuJ‡è"wY?é\¶gshVœAøn»vߤéZÊ„Ciàœ÷ð9é(,„øM= â½9YEëªøk­ó3ýÍ.)h®ˆª!÷:óõŽ$ôþѤ>KéE‡zIÎd[ƒ?×ÙÈNo gçM‰¤gµGr ç§]ø8ÍÝÅïN»n÷>_gšÄzqÛµ“ A„pæÞãü«þÕIcB\`;Íþ$s׳mPÍUB2º×0A3£^?ØxAêHóÌìHD©bÃ;‚8‰%;>šðNx��&¼CãÏp"ãKä<–°G¥-ΘŒø=ÅÖ_®½ÁŸïh æ§5³³Úrª¢œu—•QÍŸùæôwhá‚㓜ÿ·®8F„ ª‹‹sÞ`ªcî7Œmµ,ë"šúZ"Æ2€-%!Rû„Í´ëÊø¡È©#ͳ²#Nb„¨a2M»ÆSîÑDNKf´h*§�§òîX*§e †Ë¬�RÀŒ1øÜ.Ãçu™~·fuÍh x‹Ía½ÐöZÃz±­!PÐT¥"í{½MñoNû³½IÕkÒªñ2îXµnÒ×Má4Eù´”ò×N3cìó–eý’f¿¦…ȪšUtãîkbû›ÏOmé(ŒÈ"D­’ΕX:늧 j2o¨‰LÞ•Í•BÑâyÃTò¦É³S1 “­7 -KrcâÏœ1©¹¸—ËâŒAQ˜ôhJégª*…IÍ¥Š G3C>�Ô53äs›aŸ×û=æd67‡füxÊÊÃãÔ«˜ÈBÊë3$@¢úd³”òb 91‘|ž¡Ù¯aÖ>A�]°K 9%¡Ö‘¹*¾¿yi¼·yj1$‹Ääc0.~ßrᡇšÏ"k¼ Ëø>{ýÖšÐB4„ø‚sþ¼ÃÆü!Ä£©¯~ùPš~˜¼‚kd�úavnX¿rü@ËÒô±æÆbZ'‹DõW}¹t­Ü»_ï —no†£·®ø1« o ÂQ0ÆcŒ]ï¤1 !ØC³_gÜó¤\½B\ 0/¤¾8';à»4~¨iQº¯‰zŒDu8 ·�}·kÕkIÕGùo9üH�¢üüåª�šùJ4+„ƒXÌ9ÕIëž1ö¼eYWÑÔ×1wÝå�Òu˜¸ ’ÑA¶™Rˆz®HlZ˜î�LÏ�†©û:A”ƒqñXóâÞûZ.í'k¼«y·¯|´¦¾Í á8çk|ÂQ÷Ænµ,ë74û6àÎgUÌ0ÎäJ@i$ƒÔ'3ëº<þZ¤TÚw´A¡>#qVœpG’?šzí�^OSެñ®âcSÔïbÙ²šò ‘!œÂ\Îù>ÀQ àÆ„SPÝs;±v­‚|x À—h!ƒÔ/A3§^–89?ÕÛ47;q K!«Ä©a1.6DýMÛEý&S©ÊÕ»ŸòMÅ÷k)ôŠá(8çwø ‡ û›Bˆ¯ÒìÛ)~ûÌBy5›F©oÜ0ø¥±C ç§Ž6ÍË Füf� Ä{Ы7�ÿ¢cÙ¡#äõø€çÅg®}¶6µAØŸ©œóÜô@·„³¥éwk›©^I½DìÃÜì€ïâÄÑÈÜ܉†i¹±0ua' ­º‹7-=òhÓ’aAæx8zqxÓOpç�5i*º¡ö߃œÿÀ—�4f)åz)åÇhöÆÝO7‚[W‚±‹¨„¯}ˆY×%‰C‘%éc‘™Ù¡ˆW˜Ô'†p‚1¹Å?cð®Î+z©ÂÕ©|dyë;øüu±ZýŠ$@»ÓÂ9? ÀQeL9ç+LÓü#M¿Cyd›ŽXü2py9$£NݶÚÛÀ9ÉþÀù©ãásSG›¦A 'ì˽y|MÛå=Ô×ã´$Û}¸cÕ¶Zþ†$@»Ä¿ à6ì}Bˆs:•8ž“ ëŒ]ÉÚÈ ö£­�Ð.MŽœ›êoœ•iЄA‰ì„-èw‡“÷µ^zd{°;AÖ8-ññ2îXµ®Ö¿% ÂÎ4sÎ{8í ð—„?¡é'ÞÂ=Ovƒóe�8’ѽ߆¨R°sÓÇ‹S} ssƒá)ùXÐEe~‰:cX ¦i^r왆cd�ÓDŠä#?À/0H€Ä$Á9ÿ>€¿qذS¥w“´ˆwå—: áj0œÁém¹�ñ ƒÏO÷dƒ”ÌNÔ:CZ0ýxÓâãOGŽR‚ù�è³p›ÿ�›k7ïƒá¦qÎ_àvظ¿'„ø[š~âY»-„bâ2Hq1uXw>‘W'û‚‹2} s3ƒ ­Å¤ŸòGˆÉ¦O 'k:ïøÆÈü(YãLOóRÂÅ~ŽO]{°~ôA؇öý°„sôÐ N]ˆ¬UPž (WB²édçÐZHiç§{à Òý ݹÑPƒ™ñ’Uˆj`pÅÚéïy¬iñ J./Ò|Ÿ¹îéºÒL4k„ ™Ã9ß ÀQ¥*¥”÷K)?AÓOœ1¿~f„¼R,(<Ëi4RÚ‚L_`^n(4#3ê0’~…rHˆ22®úr›C³n^4WýY¤ˆ=¸}åÝ`¬®Ü™$@ÛÁ[Ç»Éq· !.ð"­â¬ùåCx|À’—,Lq&^aðsÓÇ ²ƒ¡™áÐÔ|,è‘õ !N ƒ+Ö^½sì¹ðÜá—óÇ)¿£¬§ø>¸c?ÁÍ7ëï«„½8Ÿs¾Õik›1¶Õ²¬‹hú‰²òzx¿’Ï&ƒÓ²cÞEÙ¾àœìPhzn4ÔhdtÊ#!ÞŽ” ýîPrshÎІæsGÒÜc‘UÊýà1s?À_~$UŸÚ‰ ìu‚1¶Ú�ãþ¤eYki•#Ït¢h^ ÁϘ‹ B¥<’yù~ÿÌÌH + tÆý+ï&Ë8Á �yš;ýÓÆþš;6ä È*Y¸=?ÀÍW�Öíh » ªê2!„»BÌ`Ò* */Džõ#W¸œ_ ÉCdâíÍŒ:;;â›� LÏFý�…X€<%öÄ`\ôêÍã;õiÑçÃs££î@‘¬Ri¤Ký>»ìh]k(šHÂ&(œóW,ràØÿ‡â;´ˆªrç�³®˜ÈK Ù¢$§ÎΑ(±ã.=ßãmßíŸ2þbxvŒÂ«ªyj—¼Ÿ¹~WÝ…f“°œó/ø‘‡BL5$&“5�Á´ó\ 2qª¢dFnXïÎGõöü¸Þ^Løš�”4s&µCTóg�¹›’{}�ñ­�ãäå˜LñÁÀg®}Éá%l@çü €&ŽýBˆ¯Ñ j)~óÔ,@¹B,„dä!N¯UTfäFôéùQ}Jq\oÏ'|-Ť²²N�Ü+ŠÁ¸t‡SGô–Äkž¶ä®ÀôdÌ¥S¹ÜZàëqû ÛTº¤�LÔ=œóø’‡žBt¢U@Ôä!ÊŒŸ™Ò»rq½ÍLxóiOÄL{ÂfƲrnêYrzd¹f yB鮆ôQ½%}HoM÷zs&SÉýTkâƒÉÿÿöî<Øî²¾ãøçûý�»%7ÉMH‰A ˜B:"¨`‹D VV)hÇ"èh;­ÓNÛ©�êè×Z(A*Á¥A0E– ²*(&A K 7¹Û9¿ï·äBQAB–{Ïò~Í0a˜!÷œÏóœœç“ßïù=:}ñMõ¶Y4¸}ÝýµØ¡ƒÃ¾ç3P׸*‚à’vÜÐ>}h]çnC;§ mìœ\ÝÔ9ihsgOms縲¿£­ J˜rC1vàù¶îþ5ãûžnïé_Ý1±oU甾g:&p+U#(ô]�¶hyÓõ*F =�Ín2³£Zð­—ñ&I¿d apU£hêà†ö©µõ�“7·M*ûÚ{ª›ÛÇ•í=Õ¾ö}lYm늡¶ÎhŒÃK³ì³öj¥£º±è\ß6fðùJ÷àóíÝkÚÇ<ÝÑ3ølûÄÁª9W4¶YÇ :}ñ-M¹~ctѰ)Pœ™W·êR."Î` !½ô-¢ˆy’„‚ºYó¹Ô3Ø×ÖSöUzª/´�¯öµ�‰j¥³¬ú˜ªtÄ`Ñ‘µ¢+jEgT )mL­Z‘§Š(½#ÊB’Ú£V˜½úž•A«Ô$SÍ,†Š¶R’¬½n9`m忢£6hme_Ñ^ë÷¶²¿ÒQ[_Œ©®+ÆT{;ÆU{+ìÍhZ–)•×êŒcnkÚ·È(£Au»ûC’öhÁ÷ž1_ÒCL4¼ÏÝÙ¥]7 Ô¥Í$-^>BfWëôE?nê·ÉH£¹û$}¸ß{f^“™ïb é\tÍTuŽY i�ÒÆ€ÖZÜÄ�¼ík:õˆGš¾g1Úh@ov÷Û¥Ö<ø,"Jú1ÓMkÉ×ìC÷Rh�ÒæKÖF(š[ö«¬üG£ŸpNA³êp÷û%ÍmÉ?ž2¯ÍÌ™hËî£uë’´@²  ¿Ý×k°ï"}àÄg[åS@ÐPÜý3’þ¢Uß?W?ÐÒ¸E @Ó­Äs•†º.Ó9‡mj©·ÍÈ£�,t÷;%µäs2óºÌ<ži€–—éúú-s”¹@©¹Ü¢ AËÇÝêX÷-�rJÙro�ÑGƒhw÷{%íתDÄJº›©¼ÌWïiÓ˜ççÉŠƒ¥|“‚Gú¨ûÕwÈuC30HASq÷OIúD«¾ÿ̼>3ßÉL~�eËÆh]Ç<™–lo¥ñ ÞVÞ}ò¸\§-~¬µcê\¥R9""¾¯½õJ[Îýx³¤»˜ ÀVºty�¼�@ÔÁ×ù“J»\g-ZKêÛTw@Òn-ûÇUæ73ód¦°�.ºfªººP–*} �ÙÕv¦w¨còVÜïAA£q3»Ñ̵peDì/éçL`¸tùnj‹ùÊr�Ò'€�+6Kö �yßã4Dûp_"éï[<†K"âf°ƒeš®¸q/©8@Ò~<ÖÀN(�ËkWêôã6’�ámî~‹Zw߇$ EÄI+™ÀN´d‰köa3¥Ü_¥ö—¬‡PlÇ꺦,oÒ‹—Ë, „‚Æ0mø‘»ÓZ<‡ #â£L`„½t›V ´©`«y>!·¥:uѳ„AAãèv÷[%Ôâ9lŠˆ½%­aJ£\FÚ˹ŠÜWi3 À+˪ »I�Ý~«–, ò € qfö-3;‘(ô·ñOÄÔ‘‹¿7IÚwxßÈœ3`Ëj:W©£ã*�òÖ烂ãt>IhuDì#©�(€:uéòµýTh…ÍRÊ h5±Yn7è´Ew±×ƒ‚Æ,“ôY’�Ì쬲,¿F@ƒøÒÒn�ë™#i®ÜöQX¡ÍüE�!Å�êw£N9´Ÿ@( h@EQœ”™ß”øDI÷GÄIÜ? 4¢%K\{/œ.uÌSÄ<Éf ÐLâqY\£3Žyš,( hP•J娈¸VR'iHî~T­V»™$€&qÙÍ»Èr®ÌæIÚS© ¡�¸bŽ^™-ÓéGý”0( hìòñŽˆX&‰Û$eæ²Ì<�$€&õÕ{ÚÔÝ;S‘ûJ¶¿Ò' Pï+å|An·jzq›Ž8¢F 4vùXß‘4†4$Iƒ±¿¤Çˆh/=â7ö‘l/¥q*P?+ä>™Ý®ÞÁ[uÁqƒBAƒ+ŠâÄÌü†¸íêå>C @‹Zº¼[em¶†lYÎæ4v`´VÆ1(+nUõW?ÔÙgMÀÝÏ“t¡¤‚4^òdDÌ‘´™(l)$?œ¢¾�}äš-·½x²°³Åfyq‡¢v‡Î<šïc šD‡»QÒ¹Dñ[B³?)Ëò*’ðŠ^|²–µÏÞr»–f)�ÍìÀŽP¨WQ»MïÒ)§ äµâîÇGÄ…’Ö2”umFQßÊÌ…Dñ›2syfI¶ÚK›Ùm¥fËôNe^÷ ø)eüPguŸÌxô=dë¸û’N“´IÒW"â³’Ö0¤uç­î¾TÒT¢øµˆ8PÒCD`›-]Þ­ªöVÔö‘ro¥O"à•�Q*ía©¼Sgó8�P@^¯ÝÜý Ií/ûo}’.ŠˆÏHZÍÐŽºŠ»ÿ¥¤OJj#ŽWôéˆø+b°C]qýx©}†2gq…�¤Ø(³{U«Ü¡³�XO�m+°î7¼°}%ƒ’.‰ˆOKZÅ�ŠùEQ\’™Å«Zû gØy.]Þ©¢6Kî3åž2íÎ4ÿ 7SÊGe~§¿ý-YÂmV�íÒæî+%½áµênfþÀÝ?_–åu’’ᑱù˜¤Ðo^�ÂoðÌŽž—0²2]_¿aºÒgÉÛf*ÊÙJçL&4KñxVæj z�Î=¦—@( ;DQï>CâõxDÒ—"â2mÙ3‚ï-îþo’ö#Š×ô�ˆx1¨—ݼ‹,fÉs¦¢˜-iBAµêõ²xHQù±Îz·áS@vJ¹-3ÛÆÿ}“¤¯EÄ—$ýœáß!ö7³2³ã‰b«¬‹ˆy’ž! uëÅ}$‘»«°-¿¦u êgA¨^)V?Ñ‹WÉŒ;]( ;͸ûý;ä�›Ý�™WFÄU,·É^îþIIï“äıÕóîeY^L¶”ÈfH1C©7RJ0²_¢ù¬¤Ÿ)ãg” Ȉq÷‹%�³ƒÛrx¯È•eY~GÒ¦Åï5×Ý?*élñt«×%3oÌÌcÅ~$ÍâÊe“•Ý3TÆî*b†"g(½ƒ`°ƒ¾9«r­P–�hP³§ƒ2&¹û“’ºvâÏÈÌïºû´Rj ªIDAT·Ë²ü¾¤ç˜"’¤¶¢(NŠˆ™ÙÛ‰c›lˆˆý%ýš(4ïz1M_»«Ú:g¨Íg¨Ìi2Mg“;¶nUš)Ù“ÊxL¿Ð/;ViÉ5‚¡€Œšá3%>=‚?2Ììþ̼1"n”t§¤VûÌt÷s$�+i7>.ÛñA3;»,Ëÿ$ -éŠëÇ+;§Iå4)§)4M¦©’„Óâ…Ãò™­T¿TÏøÇtüOO©…»?&iÖ(¾†�™y‹™-�ˆ{$=¨æ;ÃÁ$ìî'H:AÒ|D¶_f^—™lÒ€—[º´PmÒdU«S%ÛU^™ªÌ]%í*·ø6çªsPÒ¯”¹JeÉ×Êò9•åµUÖh°X£'ô<ÅÑtÄÝ¿(é<† æñˆ8H[¿ÔƒK/íTÇî”1^¥&H9^VŒWF�ÜÇ*£{ËÙ&ÖÕR¹˜jÊ|A® 2_¯ÌuªÅ:U|�ªE¯6õ¯ÓÇ 2�Ð*dÜð£wÇ3Th Õˆ8LÒÝD héÒBCÝc•ÝcåÝrëVUceÖ¥´NYtIꔲKi]RtIÖ)Yûèo ÏªÜú•Ù/Ó€2û%ï—g¿ÒûUä R¾ ÁêFU«/h”�:åÐ~�aî~�¤ &4˜�GÄçˆZÔç¯ïЬ²PoW—†6WÔÕÖ¦š:ÔVñ-ÁÛ”µß,*VüÿU—ZTUäïÞÖ”Vª°A•5ùæªú«Uµ�­©«”:J�üæö]€²�¯mxïdž �bø‘»'ˆÓÎ^‘×ë «T*‹)h0Odæû) X@ʲü0Ã2ïÖ–§š Á Èfv,ÃFafçIº�$°€¸û‡%q˜ÅÅeY^B ¯­7¡w ?zwúÿ™ÝY–å‘’x>:ÀV¨»+ EQœNù@ƒx¢,ËwS>¶^Ý]q÷%ÍghPçú#âpI÷ÀëXï×Ùëy+å Íìý”€/ î~C‚ð‰²,—ÀëWO·`Mw÷U’ÚÔ±/GE`ÕÍwÿåu8Ÿ¶]½\iw÷_IšÊ� eæòÌïd(PG~GJZM;Ö¨^q÷R>Pg¾òAùØ Fó HÅÝWHÚ�a@]|Ìî.Ëò8IkI`çµ+ EQ¼‹ò�z‘™Ë˲\DùhÒç?êÄ×3óI›ˆ 9 Ⱦfö6âÇ(KIÿgH"€�¯2*­ÇýÕÇ$h]CfvnY–—ÀÈ�ÐãîOJKü%ÏEÄ{$ÝF#kÄoÁr÷?¥|`Ý )­Q@LÒŸ;FÉåq˜¤UDФ(Šc%íCìaföÁˆ8SR?qŒžÝ„ç›±÷#êçqª¤ˆ`ô�dØÛÝÕ(ž=‚–syD|HÒf¢¨#Y†$ý—¤’ر“=of' ßrEù¨#Åþ¬ ™ùí̼Ü̺$ÍáŸ�ÖpuD¼33ï# €ú3š2f¹û_K:KRC�íô”™ýyY–×@ýÍ+ë3óºÌ¼ØÌ%í'©‹!Áë’.Šˆ“2óAâ¨oõôHª±EQœ–™�êÅÖL^³{ʲ<_Ò�H€²­¼R©Y–åGÌì�uú1ºÖJúLjø‚¶\d‡˜ëîçI:SÒ8†«åm’ô¹ˆøìð¿€²SŒs÷SÍìœÌ<„ak9’¾ÿ,é9â €Œ¤ùî~®¤Ó%Md›¾x\:\<~M�ÑÔYÅEÄ{‡÷Šð­æ±QÒ—#â_%=K�z3®(ІËÈbq®H£úõpñøŠ¤ Ä@i=Ãeäd3;ZRÃ\ç“ÐìI–eùI5 €4ª)îþžÌ|�™.®ŒÔ“§%]ÿ.éÄ@i6]•Jå-±HÒñ’æ1ü#n@Ò23»¼,ËïIª ¤UÌv÷c3ó3{»ØÄ¾³l’tƒ™]S–å2q~êªT*o�ˆÅfvxf(©B,ÛìII×›Ù—eùIƒD È«[©TFÄá™y¨™-�´ ±¼ªõ™ù?fvsDÜ,éQ"dûÌ,Šâ Ì<832³ù’¦·`©-›Æï’ô£ˆø_I?•T2E@Ù¹z$Í)ŠbßÌœ“™sÍl–¤=%u6Áûë7³‡3ó'’r÷ŸÖjµû$õ2ô €Ô—i’ö,ŠbVfî.i·Ìœîî»eæ4m¹z2Úßk’Ö˜ÙÓ±ÒÌVHZáî+jµÚ I«Ä• P@šÆI“$M”4©(ŠI’&ff÷p9/©}ø×1zÙ9&™é’&¼ì÷zÁÌ^|¬mhËIâ’6JÚdfë%m0³õµZí)Ik†ÿI†v‚ÿ^/vM®YIIEND®B`‚unyt-3.2.0/docs/_static/yt_logo_small.png000066400000000000000000001230631526544257300204650ustar00rootroot00000000000000‰PNG  IHDRéÕ‡Ù+sRGB®Îé pHYs × ×B(›xYiTXtXML:com.adobe.xmp 1 LÂ'Y@IDATxì½”×y.x«ªsOèž<ȉÈEŠD‰²H+˜Ï’lÅçck×öZö;o½çø-I?¿³»oÏÚïÙ«•%[²$ùQÙ’A‚‰ÈLŽ�Cu×~ß­®AÏ g¦»º{0öjªºêÖ ÝûÝÿþÿÿ+D-Ô(P£@�5 Ô(P£@�5 Ô(P£@�sŽÊœ+Q­@5 ”G¯ó0ÊKfÂÛ™ ¿j?j¨Qà†¢@m œ¥ÏY#ô,º–MÕ)À¶L.£Ç iå´o¦¥áˆãx‡Ž£j¨Qࣀ“õQUõ/p8R¹sgëà}üm][¿­8Ö3=ç,’ æhÅ)P-€Žj¸Á(`qV'·~çWsò½É¿×zß:ç¿ÿž¿®Ç{¾ Üp°„¢h²Óów!`˜©â|Ÿý£&-@©÷pʸŒýÑGóÑÃHÂ[�^½ÿðÃVCDó“¯^ý}5VíjîPÀú¾ ^[¿K-¡õ^�ã(•ró2¾�xÄPÍã‘*|t¦�tóó`žµp½)`É8þCN6‘ž$ÇÈ—is]“qLóEçƒg§%ñ0¸E!7P˜#øû§Ýb±×+Fc¡¹\"c¸…¦8ÀÌ:DF7é 9 ‘…ô\q¤…¡§DÆ�#‰#�=KˆG”ì´´|Ä�GÊcäÊ3Í+µG¤�ƒ`ñpþ¿qP RGÍ) µ*ç³ÙìvœGpp š® àñ{#ÌSàà¨ôa€„ W¿ÖSOyE¤±Ÿ¸M¨J;b4 EmB?~»ñ̉ϯÉf€®¾Œ+NjØ4T9·¥J/% % NÒíYuH|eGâ qŠÃPô®‰\»Q&�\N_JH#?j�ãȧƤëùµóYÿ§žÒD:°Ýv#úôMèÎí¨¹ NS2ø­‹,€B`0dqRsUÍTôÝéäc‹*§@2©ñ?LG¡´Ô;«â à0�¿ªÄqAå’PÓ]¢¡¾[|òîðøûÖ…’Gä&“ÌŠQ;G�ÉÀQ›ªG7[±æ6pXò «Sýà×A‘ñnG°Ó‡E8»ÑAÙ@8º˜j3É Cs\Ÿl‘kÒKý�ÀBp"à0Î� 9¿æÁ€Ì„S¥eº 4ãd,Ý⋉šÏsÉÝ#üá.ñÐC&Åú]�ÎHXšU¾e¬q³Hô¹ÅqäƒÆ/¾#ô‡1C~¡@ÈhDð[E‡ã4`~qò¸|®DÊP‚"‰ú¡N*å3ë.”qoê�?Bhé£âót]åDð†ÔÒÈsM&2ÔÂõ¡Àܱ-Y;Ôw¶cäýmt¤M@È.ÐÁ8÷—‚ÈëC¤ªçJ­ÏU9 ¦5ÔaêeÈ•™=xv sT|ñׯËbҌ߯6•1‰R-Žãì8nA5;ŽñÆWž�L^2e\rµÔ«Oî¼¢ÎO!5LQDŒ}ÿÁÖÏ |+£–Ó¿JP´8sZcªqͺ/p®WòAñØ …C=,œéwA“a$jοk\Èôô-ïé ÞøìçúNULN"+��¿øhî`@K¢D%`Ø«Óü~ËšÖÈZÐîD$@ ü3ø­Ö=»Nd´ûÅã/žxîÁS�‡Ðg„¤Ý â[*eë~íl—&8Û}û}ïú¡©´ôŒ7}ìøÍ`Ç©%a7¡¢ò)`ª~9¥Ÿa€-WpXT¼ªrPh™Câs÷w�¿òÞãBª5U©™œ�7ª«ׇã —•êS/4Š„òï+Ð`Ë,sļZÂÚ•ISõË) '(XOC•.(§ˆÐìc0ß!ž|ñ4îí#É£âO€™<ãR­‹X–¦JÞ¬ý)�5Ž£±f8LN##¾ Ј„s ÊÁ0©}£ßèÚ[¦ Ø”ý(ÔÌIpÎ7ƒž›DÐ}E<±óئ½€B&a©µz×µi̵4­Ý)‰³;U±Ô­ßýe½pú¿Ž’4h=™³°,©ìµÈù�š§2XÈG;!FÁq…áÜñåûÎŽG¿1å µ©Êø®þÅìqœs“]ÞµË!.g¿„Ö½ Üä4ª_Ï?K3ÚŽs!ªÀqLÜ·C˜zr�·Äi'524Ó¿ÑmBjì«üÈÕù3;ÀÁy¶¥r½’ùóz´n.øªqÕø®RöÎ#›¥õ)5T”…l€dƒX™½ˆiÌáÖˆ‡v¸oT™]nZò½ógv€Ãt×gˆÇv~óðÛ"h°X¿‘[¼:×É]HÅ3/Ì6MY×Ê`ô5`1ŒÅ8/ÉÌ {…šØ#¾ð17! ©�B�Z[©+éQû3%ª–ÚõñÖ¡e>Àˆ<À�àß $‚‡ÓÈ*œÉq¨&8èŠJ�ç„@ Á]…ï±üÍø´ÚÊ >mɹ\wò{¸u}‚¹¦Ž‹Tˆ©mÉŠf£?�ÕÆw@ö #ó&½¤ÍH @®~©Ú”ç*-Ưª ÖåÛ¿ò¡{}m’#^ ´Ð >^¨j_$¼8\èü`|Œ1\G±×ï l8ØyðlÆ€jH)¢²®<5<p8�+JI#ù”ëdùr€­ZžÍ²u¨Ä‡qÜ9ÈXù¿ô Œ5¹njîg\]à°ºžÛýItŸ…hœa4Êë&×hBG&hô©Z6©h°ÊÔ0š [gSÚÆTܵ0r/NÇÝuzÌåIG]ÞlÒáÍè§‘�Y�„¸¢ùT#©i™„âÔc·žqúScš'Ýëð¤]þÔAÍ¥�ª®ŒÐœHБ´µ! iÅ$T']7 ¡ÜƒÁôg&I³•Ý! Ç-â‰çB'ó *Kƒ²÷:€X­X’«öǤ@õ€Ãš¢|ÿY¬øT)×€‹=4ÖY¶Õ P4¢£¦ÐQ‡5\ýA³“N9v¤ýk£ƒõ�‰þú`b°ÎŸó:ô¨Ëe¤45«³·“B35D2£èª#« WÆpxô˜êM%]�‰�«!>èÄz¼ÍÑwq}\ó¥ûÌjr`b¤Õ6‚ ˇÌ&æ<‚YÏR°lB R; #«Þ ³›Åã; göÕ€ÌÒ·˜GÙT8بEùö>§PG)×P!áçpmŽr³@ fÔ†Ù î¢_óê˜Ã+÷Çú궇.6/ _l®`¸2a|c…y ¥ÆIGFsšêÊÊ©àm¸N‡KÃ�ÃkŒz•ÄåÀ9IQ ÜÇŽúdÔÕó´D»Ý-áÓþÖðón”ÂáÓA ¡t$£vd3œ3‰±Ù @²\Cá5ýu÷]Ý&žÀF¤_Æ}s óÞ2g¯É8 ôƒê‡¥Eñ�ÜÐX \ùì�F ` ‰Ž×ËN™Mh_>Õ¶iädGkì|“[�¸(þ4À!d(˜v€,d…ÐMmä4(å°� |}©Rj¦HHà]Cñ¥CÞºÔ°¯-rºu%¦IwhÞôg$ƒÞÎP·¯-t Ç.W0ÞëôÒ”N‘SZ@„ۦ5”ª‡‰B•98ãnœn†Vl~ï_ú­Q¡Æ}OX¢Új ’>7ðŸÊÅä6 Aï]†ûèLOèsSv‚jÒ’¦ƒÍä28%1tåk#gZ· ZÜ»g�]†ÝpYv@Y–u6Bor ¦D Ħ†)ä$îŽp¿oáè©úÎÑg|má�Ó‡ JŠ)Mä#æŽÌ6'2î!‹êL¯c(î‘м"¾ò©QI¾¹ “-G)>â=»�Š2Êãj‹Ü P°òÇ£r´†@Íõ>´xÊ鹫êQ >£ä20b4Ô¸¿ïíå�‘“­P@*´¾‹ª#ØdB(˜Ðb^É•¸³iG{ôls{ôLËÚ!·~Ÿ»%Úç_2rºnÑð.G¨Ë凸%'Âé çRáÙ‹¡ DHûä÷ ­~›xòù7D4ùºøC¨ØA�L¹Yû¹ÀÞWjP˜ uIçV¨,p˜ÜFV<þœMç6œ HÕî —¡B舦ò»÷,ßÜÿærW6îʨ>= 0åá+Õ�*S•˜˜û>È i^ø¤ÖêÜD_}0ÞÕxÓ°sñ=ŽÖØ€ÑèÉÆå?«ëëµ8‘ˆ$P;sè¯LÑ ¦2@¸¾Hm@¡[x}Pã¾ð²ðŒìÆD�£´9…¹qVãέvSðãÌþÍÊr~¾ü²!>ýå;P•ÛtBSÕ¾SNM\úMéˆû?]x~ÃÚá·—@e .Q´ld¹Å¼,'‹ Á2ù"„ªè€5áÉ„ÝMñË�å¡Óm;F/¶lOŒy[aÌuÌåKF §!‘Û€�~Ђ>œK–ì–BˆñÌý”(æÀW¥l�ƧׂŸ¸øëM¾tØ£CS¡@èX™ ÍÁTdÇdOÅ.”˜zi »Ç��D¯ùðñÀª¾ï×/…Ën” Yˆ®ñ#Pµk¢ië 9ŒÜ�r9:ïzêEñÕd®Pzˆ S­»’гó§DžTÂGÍ߆¶�Çf�êEóAã“~¹Ù›‰»nxÐ u¥š˜s?ΠkÑÜ´TÃT&æZ1z`á’±Ã�wx†Î5®é}5¸bà-OVîØa;“tPTU� 9Kéö±ÜÅN� ˆÓµI<öÜë"ëÚ…•¸“ù(ÿ¨Üà* pcü© QÈU��¦ÿÐDóŸ£Ñ´‚<¦k» Ó‰F]ý0é¾76P÷ås?ÛâÏD<�è74§1 A{“ ¡ˆ5)¹�˜3ˆ‰ÛÊ�}Mk{êïÄö“0‡Ò �Lȵ›ØÎ”I Ï'«p¥Kd3;Åï§ÀÓólNsä�²ÿÔ8޲IX|•á8Í �’õK�u FØQPˆVY®4€Äû¡=Y˜Ž¹>é¹ uú˜7­ùoìéI1ßÀmig2àBøŠ7u­‚ xÉè‘÷ø– ®íùNpù`52”ƒdt­jÚ OÉmR…k@£ˆN¬ ú’xâ…[…ÃñŒøÜŽ ,£4 {1*ÝPdâûS™ÁµbÅ™ M©tBý±ùŽ®®Z–AÃd9kî¸Æzb„+·º,¨•ÈŸ]~yuSâJcZ«K½§9�BDÍÉ”°èކ,e!�á“m°XmÙ6Ð:ÜÐó³àÊþ 5€X�ªÊÕ»…’_%ÌonOÆ)ö{š‚~Qå×S׋tf¥xü¥7ád§ø=%$ÓûÈ?~ü�õy c†›|·š²-+më´»ˆ‹‰Âꪪ~ç¿ÅQI­ÊV¤g‚.ja¢ºŠ„§DœóÎâÛúö�+bÿ¯Râ‘h¡ð"¼I� ×q5 '–˜»\æÆK6¨N«Ð^È5î‹ö×oéc…€%¨L&?éVò•«•̓{P‚Šv~ÎÛ w*:@?…÷8ßË ®ó˜"E¾˜��}*•Õä‹�ƒÀ€EqŽTýªÐ•†Îž½KnkÜÐ÷RóêžýÂp7UaS&jÚg¸½á€åkéƒä/ ‰ TÃB˜úy, Û.ºŸþû—Å�w*b·-!‰±Ivn.ˆ®d Ùý8ȘÑÏS%å2H®â�J ³T<é« Zm‘g¢õÿ‰óïâ +¹ÉÓÜ’ÁìÖ/l…"t=+šÚÜ¢cQ3„õ³\4ÔhØi,]5`|éO~){«dKè>&ÿÙ€G!ÛøÛsOoZ:Ò™‚­Æõ²µ6^KvPb$=väjŽ.… �Ê1’gUÌÙõÖpM+V�Ðp&!ŒM`�õ’ÁòŸg2™Ÿáš6(U ˜‰ŽL_ƒ@üÅõRÅ.Ó�Ì0¼Îñ(”ó'ÆíX&nyß ‹zJ‘yp¥k?¦(_>Ó¶ r¬M‡9ºR©„.PªâoY™ñË`¾ìÀòílVq‚ÅwCÐèNgÀÁéO:ãpê\˜¯;”L`Œa†ïnF²û׉L@ªß<žÇq?¤Þ�­jæ¯É±Vs(ÂéžXXtzá«Ëˆ‘‡²÷µÍÆæ[N—ÒØ˜y?üiP pËÀ;Kp¥ÂäIGs�˜âU2X‰³â rÉ1øRi,£Ã‘L;Ý8é4º1ø:.ºº4û %ïE�Ó”\9ùÀ�|¾lBÑ%±ñ‡C?ÓÔJÎ6nÃî°y¾‹«ÓÝ�›âJG}îDÔãL%*:@ƉҜ¾<DÂJg£7Šc‰²•içåfÖÓIøE#’÷(ï·10(锂²‰íwâ†{• ††i�eí˳Y,û°p•* ËBºSy¶~ãrΖхB©êÁ…×:¦+ßj8ˆ´Å‚GöF“ƒŽ®ŽÖ®¼ôoË�,«7v‰D¬¨ÑÊ\"ïÕ¿6t¼½9~1ˆq Á®Xù`%ŠÔ1õ@.¨9–�)>€ƒ/™rùãI·'™v9Si‡¦ScÄNŒx, A `¸âUNÞÏ“.Œr—W/¬ÎV eKÍm+a¦'''lÂR˜éŒ&=žHÜQë35÷¸R±z_lÐéL½}º›À!Â�X>^‚k34âfjêÞº¬‘J(‰{¼Ô¶dE_2™pÑõÚ”lÜ1�Î8}Æý?ÛH¨j¯�.æG­ZIØš–ßgËÈÖ&ÁÖ#Àuüàq—›q”&™.Ä€³Kù²"2¦)ïìÞh¬Ùt‘ùÌX{®·Ù´zóȉNxW±Ôöä}fJ¡¸çl옧,”,dPò&]õ±¸Ç�ŽéJ¤0)0�BrKf<4uH*rYpn!{Ýx˜˜·|6ñÖ´¿&ÄŸ"M³EЦqÁ)‘?ó5Ç’žáPÌùÖÉŸ_ƒGbH }– �NÈuÂc$/{tÇÍÛNuûãbl¤®h ±ÀU2�¤S¤’9ÕÒ*‹ùèDà�\Îÿ˜K•Ñê¹[6Né¤Ù4_}v�èîj.7ûäl¦HŽš”1D?émhŽ]Â� Ì«%¶MñFi·ÍÁÝX~*‹ëÀY, V]îo[~©¯½µw¤ÉIx©¦44%k@žÀóx©Ù¡sÇuiéTט*™=�D@¶�%pÙ}=#ð*/D½†5*e|=¾êu€«Š…”Í˂ɿr�¥}…ZìùJ�|à`dÏÌf³?ÂõdÑÊï­)G} +†ú¼Êá·×B»2­ÖyB�@I†bl Ÿoqb- EœÝóY9Á º$fÇo Ç|+»‡Z–u,†š<à2Ø! Pdfe‡,$Øãò;,3%% |–_+ëÝÉïONƒ½•Gî]Ì6X‹¡DÚñÓKƒœfŠ8µ7å”Áí0›ÈmëV u¸’ʺž—núËs?Ùö=û–’¤%*3áR€r²ª½;¿(0y°°¸ú…ùgƒ#¿ Û¯]Ú”)»wm4îØqPø°‚s Õ,�IúB�;„/5£Ç•]¶j&BSµs,\�Ö¹I7àÒOUr¬ œz,ì¾E€°2äÌŠ0™&•ùœû¥õ¯-(gay0.ßåÙúÍøüṙdœ!bÀöøpÄ}&’T¸F·nîë‚¶‚Ë¡Ã1à47ë—¶ Ãx‹úëÒu©Qßm=Ï­ûÎÈÑÎmÛ/}+xS?B·`1|+Õ’Ø*uí¥Ù Àdà`žlžèÓÙÇ!ëø \RÈÆ¦Ëfj/p’�Š«Ð°âø�fåøÁ•Æ]:$"!Ÿ ÖdRð¢ñÅUO擱¾úºD¿Óä/‹5)fq?ÙϤÚ¶-cËp¤Á a'߆\Ã04·âÙ…Í?òƬ¢0aVg'•(Ó&FòÌgìØõ¹[‰zÜ䙹óðà7ùR—ñy0Xy°d¦ÇMîŸ@4¡=Œß°¸áŠ5€D›Q^撚’ÐM±-/mfï·‘LgÄ'o]jkôÇô ´G(•ШX‹ùïíúÕÆµÃ«†Þhß~ᩆ¥ÃÐ#+ЂÑZªª élÕªöR¥(P8,�èB&OâøV3.3_ óÐ5ö¼|³Øz'¾ÀÝ_�é‡ìÑàÖD{]F™Á(ÇíìfN.ßL9;Æ‚ 2Ê+dzÖ4d¦ÄÍ’›±H5–†š™Ÿ“U¢EB3r}pgþæ}ß#@؆`fŠÀ¼˜7‚ Ä9¦gÞ�ºžxfÐ)°éC(c˜!†­Àœ2f$Ķ›:Žl<™ÖT¢å¾Y–+ÄÌXóÛ±óÁí ëûžm¿åÂ._+,C3j'TÉà>XÌZ¸±(P8Æk®ãŸÀuünX¦¶ÖØ:§¤ ¨ô„βß|q±qÿ§‹u7_(¤šå#À[±÷ 0{¸ÝŒi�ÙŠú;z‡›œÐŽÐ Pž p†°ï°,ö§´r!UÚqt"B'ÎM8ÓÌ•æ,ä4øÓÈ?ÌY›|dëÓeY,Ž%ˆ.Õ8Ðf‰”ŽÕè†6ÅVâfQýNÕˆ$uåÖ•íñ¥m�¡4¸ ¹î%/MK5žÒüº`_>zhá—#ç›ï n½üݶ͗{°�Î s5 ºûkÓ—<ÊÍÿË©€ƒ\›æ?ÅñÖ=\Ú ð5³â¬�ªÊ>„­Ùta²Aû‚”odŽÆÄˆŸë+ìjS8=i ×wô 7SL˜ˆH‹‹bä`�BD.N3VàXŠà GAnÂâ"—ïN5Ì"ê8 àÒv`È‹®/�EŒ¦µgž�ÌZ*�ÚZå·“Þ…™|óÎõK†ë½î¦,”½ 4ÿñP]Ú“M:7ìZõŸÇN´h¿íÂ7›×ööcOÞ6L_ȘQ…[ óŸfë(\ù Ç·s�9†²9Ú\�‘ˆÉæ§ìüå*qùBÛdÕ,‡Lô,ãìÝêÒCnØN²+–˜9�¦hÌGNƒÚ¨iŠ[”eÕ�€Ák)KÀy!Ž� åÏ¡JÜ‚óBüöâ`rǺÒÑ¢‰ÔÌUžªø¬b4 ëñÙ…�éÛÝŽl’ì5)6C¾üƒöw_yfý?œýÅ–OaúÒð Gb"IUƒ«¬5,¶+ç( 5§¬$ëOòXg^:ø|º8…žº79¯Bqx/ÿ>¯¬³ù«J%G1MÚ,„Ř×·â(¿ë 1J©ÒRÞ~e£qËÝG„³ŽR¹àϤaEUÖ�"Î|«ôŒ†XÒåÀ VÚh ‰ñ4¯Iª…žä6>‰¨kœ„“ë`æ|{êððú’PÓ#ÑÕ]oJÑ�õ)ï=­(Ptk}óŽE­‰áÀ%Œ}Á†1 k… D/î¾+×eUiÿ!:"gZ>s®+ps`ûåï,ÿÉn¬´¡±P*6¬Æ@÷²É (î?ù­ ˜âM§Ð³B÷HÛüûù×|fë¾õ}¬³õ¼*癀ƒ™ý¸øí_1eùK\®äOü:ö[v" rPšì{m�8yd¹¸õîãW  h:ÙPK7cfa½0î¢Á:R�få IÐ ‰-MÉÇðcÊeÉ.ø9¬OR0�ë{“ˆèphÆù®¨û7/�:‚ šÅ4Å.h��˜–t§teYÀ•ÝØÚ� G{ßPП+WZct+PV­sÕ·°AUÖ÷¿ºòoÒÝõ?Jö4¼ ܆h^� †ºaÕ 1+–ò—·ûçm·�;èiŠùõ¤Óƒ~:dÙ~p¨+¬g\¾àóÅ•=¯lWžøæmÂWŸ±p9b Ž—aÏôYd=ˆƒên9�*ʸÇÁüJ®,ÕÂÌÌÌZ~4ð_Àuü/¸E/CamŽaÊÎ_¬0>ø±N±rm·ˆÃCX�ëW5¸³™6 Ö†1¨j…ËÔqÐÈï™Ó&PþÃü^`eË™¯­ß<3žWÎðø7\NÅèL:~öLŸ´ÝEÊ èJ™ }çŸ4%—±²öœ 4Ãòа־± ÚÊåÖÀhÙœê`NK3X àÈúêã�1ç²ø¾Åêï8ÿßm莣¶<\÷bá9_›2Àc;<“EÄñÃà€N*˜ý!4C™/Áj:U+o±Àa�Í=(É“8þ‘wúŠÓªf¹j6<ªA5»ÑX¹öŠõ¹!ygÿ()0>û-§|—˜ I¬À±4®*6#„üòð«B<1| qøÎ ÿ ¬Áà™ä5îQÁ‘‚~™Ó®¢×q&ax0OÔÃvãÈù9dx4¯tE´ ŒXžŠqHK Ý-¸ÄÂȉ¶/^¸Ü¸­åö ÿµýæ®~Õ›éÄJéA üT×Ncä”S_Ä‘ÏíÒâšÄåg°†žç:p\[ƒ*Ü)8H0~Ž8~‚ã÷q”LŽN~Èuô]ñ‰Ã{×*ýÌ"žtE®4GXfh¶\Ì—Â* ´ôiÞ£øˆï¹Æ¤ØÄ½Ø`%Éf*v0+ „’1’rˆaxSƒ‰J ŽÅ2¹fÈòÊøøÓ Yoþ™\sš¢f{ûBt9U®`�qÑF`z�:Eûueý*OvýMuIX<ð#ÑßÂ…—8’‡=öo�yÐÐ^\®$çÁÙùhºîΦÛ{_\óá‹ÍOw¾ïÌ3õ Æ\ȼSã�‡Ü{ã¿+{a“²•-Ä\K�mµØÀ�%§&à:¾•{‰À“kúÅ&3)¥ßznyk×F12äy¢*¶2¤ßn4Љ­dÒû“~b\7²pØ;éöÕŸlÌ®ÐRGôé“’DB‰aµ-9‹þ„K¼;â¯ԋׇëÄ�1�¸œpJРQª0ë.&`˜’iá¹vnä>ð_žÏž0-EëF¦7_H�‚UÖëS´'[šÝz~<¤wc,åôF3Ù P !ÁcÑàh�¦ýòe&P¡`™®sÓ­öèÙ–/œÿé¶¿ìÙ»,…aPóè³ìu¬ÒÕ«•®o2¥KJV�]o7:ôÓ¼�0u'5ŸÏü—BR�ÏPŽîoÉœ8¸R¸]é˜Ó‡é½&'îÐ1õñX0 ì"oßSfÊó)W±:ñSæ‹e&C¹#†QùLØ+Þ¬o,Nbê=–Ö€º†ðÁ¾‰@‘s;,³·€¡P%' 1 ÏHi‡ö\‘BÑ$æ7åh]˜µ÷b%-«û–¼â‚bà5iÅœ>ÂmÇ�|ðk\ ³~ð dMvQ+ÈEà å©·õ¾¸ú°îåC±¾ºø™çZC®º­H^µDJ¦@©À!ûs�vÅâ:˜F¡6_|aèÉSsÊ4â{^Ù !—ë’«.�eV˜U—Þ8R.�2Ä©áÏZÑ:mÄ©“°žX¯›€¡Š£c>ñÚ 8‹Q/¦$  ¬R—¯X a½_ÒM£¯îKcî³ïŽj¾z‡H%qÓf÷¡P´¡¢dÌ—>÷©öÔ²ÅÞ”ž&ôæ%ÈKÒ‹àAóû­¸ð0ÀkÒEAÓÀh`ñÀh’’]½¤ú9§ºÅÞ2>½=rªõ‹çžÚþ�Þw–pƒ®aø!÷QD2ö£–m¨nöKwÝÞ,8XP6#„= š¾…K¦!ïñ¾­Àa.Q§[¤_a©8stÉA š«ZêæKœ¤$Ü.n|ˆýXò{À¤’±Ôe6B…žÄÍó/£^ y àÔà=‹¾ƒóÀbRö¥þdJR(Š%ó§Ž H¡¨JÇÌ¢Ôäd|’�š††uKgõFs#ø8ž˜,£ð S§ÀiË-©Àª6Z†ÉApKûF8ù#M+Ëy0ÍqîÔ}ÜÙý캿=÷ëM[“£Þ˜­w JãT:p57öÑ—�–×¾+]®9�»O©�MÕ’mücîe¦SFÆÛä:<Þ,¿�ÿ�×7EáE;êjLÀ9¼ Ìd•v>ѬžBcBC¾æm61Ê9®}rMÔ©nðU >±³¢88R'ÞñŽÁ¤,΢P¦ ‚†=:s¾üoä‚6ì�d¿³ ŸjŒ §•e«ë3K‰Ã#.eÏP½ÀLHN¹&�'<>h‚L¢ø:•Ž�ƒC¡†%½&xp+û+Tyóž%û ÷±8t´óOÏüdÛ׆N¶÷b§¿–ì·OX07u:E=‘ �yZÛŸøÄïR”.Ä#�Øé/Ee7ß"Ù%„ìËà:~Œ ŸÄÁtŠíß…iÄá/Wî�?á6 Íᆅ#ð†'“¤è…S�wóbG&áu'©Ö-•°G—{œ¿3Æ„Rð� 7�¯qÑèÈ0ÎD]ÂϵY9À˜¹‚?�§qñÌ& †ÒÐ £íD‰Ï/ s¸X ¸|ÿ’d]ƒ+ãÆ´°?å¯ 5ˆÞ¸{<Æsat‹óà´å“ó xp‹Ê8MZÞ=ÔêÀÖ—t¢\­|À`@�94/)Ÿò~øò/6ýçK/®U3i­‚SÊ=ÊÏ)8œfßh4ˆû>ù5ñÜ¡6‡.�“óóW¾nó(E“8¥˜ AÆ•ns¿›{½üïƒ0²±”KÜ»¾Ï×6{HtÏ) —qþI¶mÔ*êu'¸ÓZþ3yÍ’S7Äåó\Ijöù¨”?œ%\ŒxÄù¸S‚†¥ñ(%�bã²”m$âiõè¾9MÑË(;óÅ4G„G B ­XÛœ`t + L¯hp¶[³œGý(»‘‘øƒ$0Îüú¡ ¸†q·�ÝäêG#þå݃­ÎŒîÀ‚ÃJôb$>1°˜Âª\4Q³±vp÷²ožûÅ–Ã= ÃØ‡Š k?üÄ4fþ•K!M ͵D �ü±øÞÓëÅ#˜3Tcj4s¡æL »ÀÁ pì¡7ô'pêÅÁq\ÞÃÙ^¯ÀWñæ®�§!åÐÝÍq5£‡"5+²“�û\I¬¯…K*v‰¼v$# }ºà&ì±–ø:§(1p�§áYJˆ’)-*š*¶æ5ú®D܇ßÂÜ>MÚn�I³X^�Ÿ jˆ{?¶,ÕÜî§PŒ¹(|H€ÆþQŸ8òJÒ3+Ö]þà—æß�˜ïÇ�!\“ópiö¦Y��­|©”KwT<�›Ùyi¯5¤šb]�/œýñöÏ…OµÑ%l]&‘ƒ<ÓþÌA•œ¼ÀLÀùïÅ^¼‡9K¢˜Ü‡ý´çñ›lv‘—c7Aãñ\"ãm+÷»´“9]QÓ~l£pr_ósçÏ.ŠûÚÇ#5�aƵYÐä<át¥>ZO�é6KÍ t€i£ó‘h#I§´ö„|ðj‡ÂýjSFg(gŽ™BQ'Œ?Ê«ü*¯½¹=á„ʇ–§¼Ïƒió OJâ€ã84EKù̪ Šq«8žØ�sQpŒS�fèøÁ1ÜšŽ?+ù- {‚ÔÓ‹ýû×^ØýÐaqñA¶i¼0Vç¥$ƒáj»å +±>ü`c¸ú´èLF`.n¶©¢_±‘ZƒeXx4¡½ýRý�ÁØÖ~?$(¸ÁmDFÓʪÍÁLçÒ†$¶A�ÜF¡zÇà<ýè˜d29YoF–„Î�ïQé“•  NüO鎥àÏÉÎx9H¦Ác+ž| £§.LA©¶¾‘¦¥}ÃXí1V•ԵȱúÁÔ4£Å(a€Å2TíOÅãÏ-—œ‡©®­v³¨~‹È¡À!9Œt:ý6f¿ÎåY×AÊÇSºÜÂäÐ+‡ôŽF¼N˜‘ƒm/ú£°QSþ=\ç‹e ’Ž7t^pREá(¹�±÷f ™¡üÜ3e¨?æÜóâe'5„‰(¬$ЦÂļ8í±„¢;~{Y*ØâKg°.e|ê61ú„_¬+Áã$ÀCr…Àƒ‘(ÙæªãßAÓbëŠâ›9åú–l`x¬aÅ•�VO:£qw=›Õ@¢s"@¬°aÁŸöGâ»¶@] #’«É7ΟJ› »!T†Ú7s¤áï²ú¦&ŠËïÂŽn£®£g/·cŒ›à“4—Ï´',wS£°"%×A!):œY&¶XBœÆ-~~R¢Èsy<‡U(eçN InÃ[‡Ee@2…¬p±&‹½nK{œ D0)¶óM <cÚÂßÒØÍ"„•�ëVàÇ¿C†UŽ! x4и„c¾—ûÚ¥Ðàa½:OÏäUá|[Åd2_�?/~sÂdÜèÆbì.•²9c–çÁu¼™K°Œ&ŽO�^ÇÂz†×Žœm‰Æ]Øx{åR/âdµã¡Ä2A�ìŽ]8zñ£Èé _cºž’ô†ƒc¸´åÂÙV`C´ã[Ç/µÄ’)Gaë^1‰²ý2 ëÂd•!Àã¨My�Ybê}O ÅAEN°ØBꜺ´²´ß•‘È�õ3´eÇ´DÊ™¦P“B¬=~骦f,e) ,ð¸€íoÞçAQIAð`   zš�QãB¡)å`é¡mYq¥¿Í›L¹ªjï�l«,É“¢D@Ù÷‹'^üšøö·�ÒÒôT×V8؇,‘£µøÍê·¶¾_ŽÀþ¹Áí0Þ8Ñí?×3p¢ó%ì,ÆNHYGØíN†üQ.”/ ²Ä4;ެÁÕ§øqmàcʾüðlÀÁÃѼ¢åà‚¶áÁ¸sWnA[¸oÇ´åù›$xÌsõ2i2%9e·Ë-~ca·´=l2±8Zc“Ïe „Ž]Mt8J“¡±�:±ÿéP½7¥Q˜µþ…°s’ë8„X—qÅu€ëö¤D{)ë�¹ÊJ# »�r.h �%o¿l.hKDí 1ó…¢wÜ·4ÕðÀÔÆ~z3Õ‹õ'çA‡Ft?x`Ì+CãBñŠÔ¸à<ddü"÷±?h¦¾ g‚dPTÙ2.MÕ'¨lysv‚l\œEÑ¿Vé”ÈyÐç –«_Ãú–Õ`™aç1×·T 8øÑÙ4ÞAçþ·Åmß'Ë�ÊmBòÚ‘‹-¡X¢dƒ0™Ó‚ž¥§¹q,3öqA)5?/Ã[(*÷í"uò;Ÿå+G«†`Ë|ð!Âx¼Yf Pôò¹Q÷pŸ\І=”§(@ùpÓötÒ×›6¶Æ9²ßEd˜‹b‘‚[?œ‚¡ÝJ¡)~óÙx�H/�z\Ü‚?€3j$ñ$gªN·„+¡²õ¤SÎY4U—ÞèêDZ�À!TªcÁ–ˆ§lU�[ ~øÒ©ª�§àQ-à`Û�ÝF[–j¶ˆ1|êÏÂöKR¥Îå0Þ9ßï9×3p Ì×A£°ˆÇ•x@$ǤÍL®ƒvt†xàa ~Nˆ† |IÑH®I™‰M{êû$ØÕm}R( MÈÔËV§NJ>áÈï�P4ÕÅö{¤Û:ëR°Z_¼@yX'Цú ,¥Ð´j[j\H#>¼AÚó¼ |)•-¼©K·„^:êh†cU—{°„nƒräX•ºäýËÞ·Wº3IužÕ;¦rG‰ØEX™JHt€ û²xò…M&x<2‹_¥ˆR¥š–r�œú˹²È{E”«`vR€Égo»ÜŠ…pÀ%“¥-øÂ7Ùh9eé…QX¤ÎWô ?¨Ù–YBNY^ÇÏaÓÀKB“¸Ž•~p, Y<\”𮵠mï®+ÀDl™È�Z‰I1z¾ðx…¢^E!ѵ[<E�¯XBÓ8…¦Pמ ù$© ‹‘~¤ÿ*”’à±õ ~ÎRÙ¿Çâ˃m�ÃÕ_¢oÒ)+ΖìÚ‘·ÿ?çžÞìÖÎÞ܆P²röþ°­A0–u€ûûŠxì…­óÑ´šÀÁŽÈn—o†ÎüxßVàǤj’Qñâá õ]£õìÚÆÆYj0†jô¶GƧ,\tÁÆK%.·ß‹„‹ ù“¢[ŸrßW[½”¡LÂZÐæoÔ ½ŒÚœnE®KéXâË.ZÑKQû T*m'Çç÷¡;BÊ=a'»ý0SçÞ¹í=ø2×¹4ã ÑTýNœ `,¹GGïHÓ’�a9s¨–Guƒ�æºi­1Õ‰ýlÿîì/·Ü’–[2,,‡ó€#]Ô4vå÷ ª½y¾M[ª ¤;»÷`¡úÌOÞÃÙV jÖC½¾³ýMD ;• pÊòºRƒ­�QiÊD‰(õq¼�XgpP´+sÄyR`tÊ:Ü0x\S—4+7EÜI¯ŽÿdtšÒ‡C)Ç�7.SQ‰u)ö;ºŠBÃtn½wq²1èãn£Ú_›N,pçÔå¦,obÚ{<&�ŒDåL�z¥(ôƒ¸Aë^˜ªc(’¦êÁ�±ÆeWڰ⦪KôYîí“ÑêS-ñ®À×ÏýlëG#= Wœ¾TYàÁ¯ÁÅqÒÚÔñEñÃ�›çxT»)$Èu°ü޲g*‘TV"ÐOö] \K:]%®šµ ÁÆ*§,�þH¤ZkÊÂ,9Eé¯âb7f˜²Kí§@IDATЮ£Ã›‹=iAÏ~%�² à²§kÌ}ñTH« 8 líXZ(ª(M`kHþ^µ¡ÕÜÖ‘õ™�â%æëš^ˆzfVÙRîaù÷€½�œ¦êu!.Ñïo«‹Ã)2¦¬l̨´¬wå« çRª?]Ÿöÿ» ?ßòÐØ¹æ+Ø Šàa»QS ›`Ø+è!_¼*ó˜ûÚÛu.áÃÈ& ÕìðÎE9–%ëÐaÈÕàÅ–‘ñ�ëµKa¸¤ƒ'~,¸d/5˜­LWZ‚#iX–*Y|4kÊB]?ŽÝH™%ž†ZÌ;ˆ5 qiEI )&ð=kAÛÉÃýR(Ê÷Š{ûÚdDŽߎT<#nÿТTK{=¬ôQ˜iÊ~m*Õ½cÙ{�SÛ‡mÞ…?S6’‚rˆ´¿ ¡�Ðf„‘)8Õ2n:E†±XFc) f}“˜ĬXPEû¹xu¯qâÂ/¶|uèx;9�6ä çävr²8�Ýi2Ê—Å÷sÚ–9nç1ÍI¶ ДúÉÑ–ÍÁv`§ c|¡~ýgïö¶v¥{ìÒâ3ÎÅÃw|cG·X'¦@=Í cá_ Ëè®NY¨e�ƒ8± ‰Óxx ΃�—ÙsÔÜØ3ýuLÓz™'…¢1l<5¾  ›JÛ% Y—Ç|}û=‹“õ�n]®K™­¯ŒúØ ,7]ÒHŒë\º¢^IC \ÆÓä r�ï{Q©�â× Ò¼Ó4nS|ñ¿–]†�¯ Ì:?Ðs~VÑ`†ëÊÞÖ³sÍÿvåÍ£šSgæ¶­Lå´…FbŠ#Ð×Ä�ž_0WÁcÖ›¸Žoƒ¶T¸‘ë°ÙÍñ&Y‚TRÑéêïK qª±†E#j{2æ�ˆYt@—ƒ'*ŸÒÞ<”rÁªÔ6VŽc'pìG‘ÙŠ&·$ÜbàmNY‚Xr¿¾>!ÓMY�…¢ýÝ´ÑËW2ZžP41ý�¬Ä¶Ž’Û±OaYŸÙúCá×¹Pî±r�“9{À”æ0Äó­h¾\$G{Lr#tˆ*'DÇÝŠ„‚‰< ׄ4•ÝÚ÷òMuù�•c ‰a<Ìa žÄ”€Ðµ?À¶“­s¸Í.”{›Éí•Ë«ìÙ°0süªqÉÈÑ–;/¨Y8¨@ Y{Wkãh(ØÖ¸ ŸàAaiŽ 8^xPØÂšMnÈhÙ.§š½Ò“r>öTxUŒ†aëhó+h°š ëè2ª±ì¦œsdû^ \ w,œTšÜGx�I™A‚ÑÍ‘½µgçÚ¯ ëèqzËñç�µÁ°ñꑈ}^V’›\3ŸY 6›leK®ã;H‘†Ãdôís,V*!‰§<óÔêþËÚ<˜ÿ­7wuׯëÓ21g9S&ŸÜÄ¥¶àp¸Þ“><,ð zÇ+¨kAêNÜ:x4¡¨¡,j‡OPÖÚF�BQ?z2øðg—'ƒ-¾t%¶u´Q”ëúŠ$8r5u4ºË…”·]‡3:5ŒáBU;ºžÙð…áÓme:¢È‡ûÔnÔåã²F�>zµöU®âõv/V–›TÿOb|Aœe–¾±ö ¬Y<ä´ª€±�®½ôÆ€ŠÆàå‹,¶� ‚‚tù6·u¤¿R)s±“Ø<~‡ßƒV¦ÇáMý8ýzä¾,Õ¸s.;ÈyhÂ~-[¤}Ç, K¯7pðó’©§_Òoæ>ô4‚\ŒéNìJ9®C}c熡þ¾†ÐÉîó4Ç^îüàIX;ÒŒ¼\ð€š$­92´$¼Î”jZ8Ù¢�Õ´{¤0ÊÄE(ØDÊ8{1êzþµ1Gc�&"1snŽ%ªpéÁ|Óm­zÇâÊoëXr�®ã eî©}àA§@ ñI&þåÏ&¾_“-Û^FuÃPÔýÙKOoº%1äëÑ\º-ïérØaí1dhêCâ±Ζ°ôz +åpŠù::×s9J—!ëÀ'N'aÖ�çO6*GßYÝíñ¦:SQ÷cM«úO6Ý~Ñ‘…–Eöèk¾kÑ78ÖÓgi{³t-h_Mk�§-/à›xiÓƺÉ=F¥í†Ï«)r(6› �¾6ݶ áõ9³7‚¥¨ RLx…nÃCÒZ‚8ÉïMx^ΤW±À%qºæM7$ý_½ðÜ‘I8z1ÑgTÉ�š¡@ª¦ÔÁ ÐçÅß?íž aé\~)¸Ìã:X®ò¾UŽoWö¼²Y„Æ<£lòšI;í¼í\oÝšW™*Z~`ûѪQ¸¼´°µ_wiæR|‚¦¿�Àîݬp`2Þ?˜r<þ£^¬v�P3jß$œÛ:†GÒJ]£ó=)•´-ðG~�Ü,°Z^û)�~%oT%Q›Å”�\ÇSxÿ4–ÍìøvdÏ„Aˆ'”�¿X).œénOê ÒZ�I:þG`Åà¡¶{ÏÀ$] gÁ”ÕÐø²K7MÓ//hdcCsƒrÀ�mí/†ã®Ÿvº\ªÃDÜîPàò©pfœ[îjO·-˜ýmí|ŠëôŽ]Ëâ:s±›œ¢I/– šûMTº2äKÙö` ¶½çå›>7z®¥'·íBÉY™òŽ4¸Øãk¿#}xp¾*%'8õ s 8Èupë�ι¬Î,2à:°jiiÊ;on”Œý8zÒù_;¶]:¼å²¦G\˜Lä²´âèDÓôa8ê"ç�Ûô£KáÞ!˜9"4C§Cû0»�ûËòÝÍ·-¼nÛ:Ú-{õß›0ΔÕvh!Ã`@¨½°w°¹…Û/¨ª½=8̤¦þ‹ŽM—•.ø ¼ÿòóëïˆ÷û¯@ÓÒb‡ó (žÆaбJøF>1u¦å=™KÀÁšÈ/ƒ°'q=€Ãš¾ðYé�ã:5,Ê;׈Þ+Mp\�zÖ÷Ï*¹è®ÓýþUƒ–Úõ–_0¶7r< mÁÖ™‘xÊù«‹CÒËW¼ ô§P4¡hK§'»xe @*kTÍ/÷�q]¹æl¡N Ër¹"zAÏ`K žðèØü˾ÐÔT¦šÛ.èu©ïº^^+²æÔÚ–°”öŠE«¿ø!öi¡é�´ù˜:ÿRŸTŽÒ¥æ\8¾äð¨Çã¹(Ö7,üÆLw uà:z»üÊ‘½k�œ¯ŒáhÉÀ­66þ§e9rµDáì­lËR¦mqC~o¼oq[ÿ»Ñ¤vd4¦µ¹ƨÍÞN9†‡Æ wÜ·4Ùð@ƒ S¶¹öYÀë&p)´fÒØO…ÿÖÅ2å'Y•i‹¥i鈞jùëî7Ç…¥%WIJïàÀ’É~Z|÷—õ’Û® ç°9ÛìÀupºÔ”\‡ýA£‡ŒÄ ¡¼µk£ƒ+)èÌù1áØ˜ÂÒCî`üé%9–Ò\iG.™¦ØÃ=°óèq;“?›r”$å-V„Ï\—’ˆšíõ¦ ­ z+CTbîó%zå›3¥Q\Q�½�©ŒcQ÷`«3£Ã¾éúҔÁnqB‡°tõо%_<º KñmY–Jy‡ÜÔ£C8}¦Iú×7çU¶ò”ÎKÜæ%;5ÜŒà'¹4ì«f9]�¯_âȾVåÄÁ•a‚ªY„+�N=îüiÃÒá7:?t‚Ë]¡§ Pµ,"¯PÍ ‡ëž}ç|=Uê1r¹ •zrÓ`,™Û?° l¯Oa[G®Î­…Ù >IMGN¾XÒ½´g¨™¢ÐJÊj#‹ž–*ŠÃ¸³g×êû¢ýõ=àŠÛìÈ;àòk2a’.îO<{³lÓrþ3W›žì_0ûvޏSx¹(Hú7ñ}- xûµMº�ªY+bÁ#s}«mS÷�Ö{ÏVJÓô1Ž_¤ºð: lŽdeYòÙKiÂW>Ü�¸¹MÏF¹"Á6™¯ß`Ç?iåêE:s!"[$dìWë Ç|‹ûGšì�f3 ”Qœ˜¥»>}åÕÕöFýh¯%{#´Ax‚FÍŠöqñÍ]uÒùÆ2Ã\ùM0‰ß 3ôßäêXÆw�’qçמ[&ΜZDÕ,LüÇ ÈiK#4-ÿׂÛΟj¾ý’–‰¬¸±ô@nƒS‰P<éÚ}¢‹ÆçBhØM«Î«ˆA,Ÿ_¿Ú›Ý‚�i×ø#ʶ@\¤P|z#xØI»ôš½GÞ 1å2Dœ×áX sÜ–lF€GãP¨~ÁP¨1­©U@+à”4K‡e)äÿ{ïÞe”Íq÷‡’§,†„¾¢.ó[òý ¬¢�«ÀÁO'ÇXp–AÛïR5[/?²òΛà·_ÇRºAù‚Ä) Q³ºöWXIÛÕ°©×‘ a/‹«œ š–¹Ô7Öxøâ »BÑXÚÞ4… T2füÙ�¶%ššÜz³©Õ qqk0‚`rÅ�e‹.â ±‚ÍÙÒÎs§À{ñc%ÈÅí&s­à‘mkl�Ô<Ê›ØNõ)²0óÃ8ìí¥¿7r¶µWsÛ”wÐ SUÜ)žØµJ®¢-sÊRAJOUyÛ÷%‡ƒ°ß@HüV.û\‡åDLv/å…_¬W.¶R5›ÏuP ì±þbÉ}Çû}+‡Øx”èv�YAã¡>ßËi ¸z|ËÕ Ä“#ßÀ°Éݺ%� Ó‚ Ýr§¸;ƒQû²â6¸.1ï÷ttë{ÁÊWnÿ¹„ç6 æ´…Rn«X€|Sugn|gÉGÂ=�½0 +y!œ”²Šeþ ,𠮣Д®µ˜�ì&à:¾‡k®ž5g˜|b'pà€‡[e?T³æÐ,JÎ�W ìZøÀ1PÝ€9×ð�I‚Û‰Ä=¯½(½À�Û°ÝiÐðhSþå%í©…AO:íA;ü%ŠøÀƒ`D L*1*oqêÒîMŠ»šCrËÉè{FîAÂT>L 3‰LðX�‹;qäË;ðÍéŒcaßH-€ð&¼Zvɤ–†a™¨ë#}û–±!èàŠKîÄÒ¢°g[à!}9\GiÉ”œgÙ•·—§&,ëiÿšKÂ~+áÈAƒ0幟ÂWÇiøê€¬cÖÏ�ﶬé}eáG©ŽÉpØEÍžéœ;àz;Íùƒ�À¹˜%xù`{cÊu0+«��Ù…¶ø,~qã'²Í“š&3äAðÀ¦õâM!I0/«²êµP®!™Eó[ñdÒ¢ÎÊš¥ûaYÚIyÜ*\óniY_›†aªO_9ÑöUJG!(-Ù�Ìf²80MWwÈLè·£„0_€ƒU’e×ñm\³’åq¨fë šE:ÊÁ·¸ôxFÂ<:Óq×wZ×÷¼¾à£Ç2@ <(M¥tíà™9Má—™1Ad>9°Mzá }²‘ÕK[’ ·ŽºNñkm@¬%Ä!üøRÀ™àÁÀçy� –¸ÅÍ™7Cî±–¦Œ„dkà‘G'[—’¸x³”w�áÐÆû—M�w"q¯Nã0óvEþ2-Ž*|ÝÞÒ¿o)ÍÑ)(-YEK®ƒ“­¬Ø(~°s…,\ \‡ìŒ©Qõáç!Ýö¡¿þ*—��¾yµ¤éÜæM¯=¿Nôu'„]�xõª/ÿ_Û†îW™œ‡†í ‡Þ3ö?èB·f‹C¸a§ÁpÊã„—0†ë�¬\Ðݨ S8†� Íz?¡‰bâEõÏà²(̬xðjƒ—×ÅÅû›Ã"¯ N]r…›ô ©…É(H#Ò�-r).Þ‡ƒ~r\†8î8­tô�]i]VLbr>Åþ6¥n½)~!øÇC§:„êʧᖠ¦kŠ`¨§sCÛ{�ŒópñåœOÀÁº±‹@s¡Yaümó£àc§à«ƒaÝë”#ûטÀ�^6M RYàñ�à<^[ø‘ãôhìM«žè¢¬] bA[Êæ4Å¥)b8 nõÚ°¤�ÛX+]íÁáþŽà°œld1%xÐà î�Q¢wX*„)ä|Ä© ¬ÕÅ�PÙ®ô§¤±AåÆœV§9OÙ ¬–·1€ÈdêX–öîDÒÍ) ´ VL<¬Là‡çm±qðà"¡G�ö¸)×H ´ëÅ“»DŠÖ°T‡Ò•¡M¡T¤‹ßž×ñ*"ð›ÚWÍJ)9{ÚóòF1rÕW‡¼9ÅŸ|ðøVˆîÝK|w ah{�_”Ó”$,=­}Š$ Þfëòr+vàÂ'n]jú£ìO 1®r¥©!tiQ뀎}\äæOœ¶(h�-äžµØà©�܃™‘P7ì=¶6Eä:Nc¨u±SV¦9ÇÔý½bå–DEj ¸x?ºRN=+‰M­¦eGÂõMј¬+:e±¸Ž@âJ㟠Ÿj�u4•ÌuàËÓ ,‹aÈ0Þ'éR¤†e¾û» w~£¬ƒ�uà}{�»¾¹±`ùðž6åä‘åR5[Ä x `ÚâM'\ÿï‚­—þ9µzôäÅ!·ðÖ˜¦Øê‹ýõÜÞ…[Vu:X¥�³:¥/Ó!ìU{~QkÜëJ*ilxmÖÛÍ¸Ú Pîч³tR˜{Š“ØÎ™�¥þ„œº´ƒ ‰aêBÚ*´•øÜ;Ûo¥ÔÅjY6áà”Åú2 +· Žª1ea1Uü[;|d¡ÐcÎ;FaÆ©JR™Í⯋å:æp�Vì³fètòó.ÖAÞùô�Å�뀯b†·_½Y$±«=¡˜„È«$ñ±êQ×Û'N/!§J!i1ïNŽÃ—<ŠFSº²}E{bEGp,��ß©œ½ŸÓ—iÜåJ�x„šÂ*d+d‹q˜r�+ˆô#Tîˆ$U @*2Ó"÷ÑyÇí�{lm4 æ?÷a¿€$ƒE¯‚­›$(‡3jYè’š Ã|Ñœ²ÀùOûp¨Ñ¨´–…êYp�ø•Æ?9ßÂ}Yê‹ôPº«A.»7¸¥B{:m3<|õùWó8¨K Æò»¹zñÓÙ f¹�‚+è_yz™8jÁd_S&Œ�”Å ÛhwW‹ïÅŸ/—ý4çyÊw¦x@¡¨Ûi~Ž;Ö-®÷ºSÈIò¹_Üv’’úóÁ¡þÖàè5r¦ÿSt Ý8Ø€§�{°]<Èå¬nˆ‰»š¢¢ùÿoïLÀì*®;ß¾õ¦Þ…�ZXÄŽmƒA`0ŽwÇ�ÄñBœä‹¿d2‰g&™Ìçω™äË$™xòeqì�c0v Þ26Ø` ³šÕ¬’ÐÞê½ß¾Ýùýë¾j==õö^wK-é•T}—wo-çVýëœS§NU§"fu¾\ž°aNnT 1!Q'�qÎ+tç»b+Î,ËH²¥-…³cöòÑã °2 Ά‘——ˈq‚A¯îN-®ƒåzÄ œÍ÷ç²r¶î<ªÂóLÇè5˜š½•tvõ™×uhó¦XBÃûÈ=¬•s"PÞeZ¸� Ûº¬Ì"º†ÚE„ ×áTž5Œ�ò+QŠjeŠ ‚Ái¡¿oWOÇ(z��j½û1`«NÔ¦×ÿ’ rœaÊVé @º1ž½ ›�sŽÍ#EÂîTЗƒ)eµˆwcº¿z^_ìlþHÓ¥U´ô.ó5Ë‚R»oh¬=Àdê,)ñâ܃4å%´Ô•ÞÞyCrOG¦]‡&صÃõ¯pV•N3¹ßä}º’«À!Ú«‹ ¿Z©\åSW®ê9hJÛ„ýìîõ̲tÏejÖ8=ŽûžyìtÓ@ŠÖl«žÌ=”B)j^úÐÅkÇzÛc�bJd�>-é=FZã™í+{ö§["Ùz�Š äÙ{lå]ͺ¼iD-Å*) E�:Îpš¶íE÷‘¥ÃHš­¼~\ÑCb›¤Ž�ðtƒÙàì$0Dä…N.$ʾYŸTôä�¿Òd6Ö=–N,¨m‡8ÄÙP9ùK�'òÕ¡Í›†b¾gñÕQÙFaÚTäð')ø¶nYåüâ±^ÄZŠÖÙ›ØaIªÃfQ¨ê‡ Ö.Â&„jMÍqT¿¬ÖDï‘… ¯¯èêiÓîq iž½‡¼�hä»ðøQª q^cæä`PæBcˆ™¶…û�јœ™—ߨÚÁ Ž¥3ˆÇgú½3VôíË1¦ÓÂÒ9öÇ3I ‡ k©îaÜf!\{tl;\_¨|ÒøÖî3sãÑ,˜ëv3(qÅñ± \ùtçËÁ³òá§ázõ)««¥ëc)H4Ѻƒ¨m#Ôö R2Ln£PñÕBèŸNÙ$¥¥VK¾À^- ¡*ÊÙ;{máÔ£A¿›e]Ë%ë—gV÷.+2뛣’U9Jï¡VýfOçðÞ“ºy»l§l] q�Éé{�l/G�‡ 9µ�¤Ôz xè¸Æ��;§b��çÃ¥ouŠát³Õ™ß2ÉÊrßHÞïËŠÄ$­ï5m0Äã×vN4Ã"Wƒ–ËgÀ¶ øîw�&[Ô�vWö‡JñâHlcr73#X’N×n§+¼Yr�’lsâ™uæ±Ä•c8T7}*@²üOTéŠJJwë j¹´ßlÞôÊó�¾ž^?­A˜>ŠÜ²3œïÑûטœÔm¯Â¸T¸øÌ“‡ZbLÜ!‚˜Š™»³ÿ1�™†)Ù×ђܶ²o&Q]<(õf]v‘–f]ž!êþ4ÔRÞJS܇ֻ\ˆÑØe¬¶í¬(Oµd©r¸G›±oS­9ã}AßÅÍûFS%º€ç¨#éÓ ¢†ýZ®ÛŽecÉ–D®ÒÞ,s*ÌB@A÷Uö¯ÛÞ­,׈’Cr+ç6˜,g°$=Ö�C\‡Úù3°–ÿ^¡¯ærb¬ðÔCg;©dx:_Ø…}¯üb­3´?fÀ¦ÁÙ”(VXÃ鼯-.�vr÷ HÛo¼AiÊ6 ç%º wµ�›=bª­M5þ€öúCê9ÄqÅ©+XIMý¬¶•—1yW�³Ÿ•ÌÖÁª¥ *4a¾=²Œv4Òêu�‘Ñ‚?SÊÎ!¢ñœ–ÞŸA”#[ÛË ×ÁÊj@®£…/-†qA‚æåˈ+Ýé]íç!®Œ1{Sÿv ¦/á‡×=Õùþ“q>î´âŠ­Ò‚þ($¢ö¡®@]ݬäo¥øÊe £yVÍjjö‘{W:¯½°Ú‰c)UËö1ó¨Dœ§“ó|eîÅ:²2¯ñ1żõž·®ímO¤ ·1�Ö¤–(ÎCÃãŽå�C»Wt(…­MµÞ[Zÿ(ó×�*@i¹�šg‹"î#È…|}\Þ3áœÙ&_0®Q ê•¥Á�Èb×]8†yIŸÔ‡]�>ÎøD.(Eq iôÓÔAªU®‡`ú¼O>Lûi[h®.ÃE\‰•F£¥Ú¨\·M‡H&KR‰+##«My§WŽuàPÝÄu(<xüÔ;�¼W¹¬ã ƒ°hÜ|jßS�à«£6X1eûÖå¾Çî[ÁÌ JG¼§7ÐL5m¢m”ô¹§öÉhC v¾Á$!Ñ‘g°=‘zÑ%ÙKƒ1–5Ñ�]GCD9ùø¸‡ê�pœF÷¡ò¨�"B‘›Â³ÚÓÎ̾¬‹{3IêX �Á¼· ( ØLõQ.{…n4aªcÒàý}{R0 T¼žÊ‰Xý$²Š£Ô"�Jf¹ŽB1Ø…»A¡¯G9~›gPò~<¢¯Jïé ?C‡º’”ŽN­ÃñÑà:L¸iÊ$Žà�Ôäe†þ…J-U¯ú g^æ3 ´yÓï8ÅÙ¾•Ù¶‰7û°TDæ-|/<)¥¨gÿQË‘T 1ÓA…‹!¦äq$zÙ†Õ©•½íãXÃJɹ !xdXßòúIÝúºF]£85EÈJò ¥‘îCÆøo¨©ÖPPES”è"¦ �Çù¬{ÑôíZD�Û‘¹ž>Æk ¢ñ j€º –c­[å/ ,Ͼ>,äPgŠÅª¡‰~?,è-�²d™¢Ë_‡á‹9V‚¬HÛÇR‰¨ñŽ>§Tí«³nWj›SʵðÍtŒYÞ8äg®™RòŸbîoÞ ==:T?7ÒV'sÔÏ�^ƒŽ'=dzDÕËr"õN›7…#æÓû¿ô—4€ø#t™V3i¦eø@žÃÖ™„5�ÛH€µ`ÚÕ¼yùº–±DŸ¢—¢�$7Ý;jçAFÆaß®®¶±í'÷¤ã‘œO37êbâ>–q”jY܇tZƮj‚*lúF@4}«…s@ô› Þ }D@„/N›÷Å¡r[gØ-áÖÀ¯yîy„bÁuÚùDégÅ ,Á´©ÍT™.e2d¢j‹C9á4Ê¡|>Ô®p hŠ.+ÕDq8vI>…‹Ÿ›¨wP“ZÞç×·>ã ]u›¢ /À¡ª©Š)üQÁ~&爵¿jé9†‰8KO·½òçƒoy€Åo÷bÒÛ¡Ùß+/œâ¼±¥Ý‰µ°¼”¥ùuZN(ìæSØ}ôžšÊŸóþgò ã�r. ¿u'7Ë ö»Ë`l<;¾²wÿæêzMû‚±Zi{P÷qEø9ÑÚ}èA›ˆÎ+AW”þC\ˆ‰0§%rÆy²”¨Æ3£žm€R•¬æv9üˆ*mL�êíçµ™Àq8±¹˜,ú†vŽ„)ÿT¨}«êZ¥�> ³,3»rXýýNÞÂBe¼R×›vU6öF�± à†p-¸.;—bß®w´ÏÌz4ë3]M·Íqc*¹ãL±eäñªži,ÌJüço5^6ÎuhxI'K̘h Êõί½ã8¶{cÎ/~î)E~§~äToG]õËÈE—lû?ç~ð™»ñ(– µføè!³sÜ4¤Ú"©ÕKt¡·»»z;FÞ\Ù3�ÓJ[¸(åé>4…(ÊÝÍÓß…|Û8ªÁ –•€bM°ýA"¦D^Ç®Àç鹘°·h³(T9²ÆT€Øwj’š×¥ôCaüœ´ºÍ´…`˜ÅçóHQ\»]­ü“‡£É¢_{Ï)QUP¥ˆr²œX3-Kf˃H:iÉäaoçïfÐÐåp°\ôçÆbpõW_fõ�b¿G¾M‡Qñx5o�¤_©Ô´~Â$ì$„Ob”ÚÒþinœß¼î[,¿Ö÷ò³ëÌc *E ˜ŽH™¯Z8ÿÒ{œRà+ËÖøçu¿òô¾ÄÚ¡�ö¬;;�iÙƒÕ8ôÌ„´ £-±ÌVDqºo�ƨ©Ç}ìá¦t÷íÔí4â‹rQÃU´S¸²9öË™ÆÕ>·ý˜¾Ÿ â鄌 Q¾eFÜ›V-뉙Czë©€Ž»s âÚ‡F]__WÀ¹ó¾‘à–­Éh)sSt�…ˆ*zõ ”q¬•Wú&ÈíÉt\—ói¬zß ^—nÉŽÄ5ؘ3cÅp¢*9á&ïPõWÕ:ž‚¾#‚»�ŠOp.77údæ;q¬7xBz>»ÜßÑûŒ›Mmñ?ü“÷9©±«Qß˪´úñM"qì¸SÞvÅžò»?üpÚu+%^ ·ç~عnÿ9lÅÒ•~sMÔ/‹@„FË?c}t4¬Ý$�Þ#Z,eÙbê=¿èz8ÛFÔzÝ–>D£(—&NQ2{K–ïŠòM´ ÕÐIñ‚Ó˜à Íp tÁâR4›dDkû"I7T$¶ßtG‡³¡~¾?ŠœbÎŒ �$gÞQš±³_Yà7—¼¥3Æ]¹Š={P ‘ý)Õj*y_µg™¤oŒY¯’7Ã2—T§Í·ŒF8àæùPWæîeëd¦Pƒ[Ó¾o~KE±hvIç{·<å<ð€ÈpH8ž8UL#�>Õâ׉ fôñNëþ«�ˆ7hÌkÆDŽ“hýu8Á“¹¬û�^3C!I¼å²—œVxyöªÝ�<Ú�&\½óOW^ùê½+?ð\:К ±é5¡2£Sw†Ó¿`j@ÊÒ}Œ¡ûØŠÑØ\Jm*ñE’.Á›º•rñ-šà¢~³aRˆxŠÒ€à\«pÏnO[�‹YÊ/sv»FkbÄ‘(qÆ;5×súC±ô^gwÜ(Ë‹yö ½:/Úð˜ëôuÝïýx8ôÀ#ƒ q"Ë4Õ®~]�y³+â)j{/´7 Ôò…P"[/Œ¿AµÏ —Òp­®‘v£Jë #u:÷³ÌÞ„C¯ã 8¼:ò]Ç?s�d©æ]ûɸ5ç`šëݯd>n›9­«€F´£…#®31êwúW¦Ü ¼†rk3Mó¹¾AdÒÇþR!øåî ûþ ÑeWë™ûý4ŸÙÇg‚5ºXç]]c2YO¶·¤üôx-‡z.TôVÜj[¬oóÆ@Ží•âÌ@ô´D1ŠøäxÎÌÆ\Ù3î\Œ(³‰³¸L[4+#�ìzÇ‚È\Fxͬ´wÆŠmËÂålª„-_½èC†5AcÄøDÙfóýÙÖ–_¼8�Eƒe—Ì*¨y£êRȹ¦f¶µÅQ±NdrÑù4RRž fÙ Švù稞̙|`¶!½ü¸nÜ9P”w[«Þ›'W¥´´NÕ©÷ÃKžÃñ,¢>Y�·¼O­Ï¯1ãDÛMj›?Í”JT31YŸ{í‡_r.Ùø<"K¤Z‰¥YQ­È^^Ê_ ·åÄn®ñÅŠ]é=íQÑEL²2ª?½5sðiê6�Çö‘ÖXºcŒ†�|‘îgȧÙlWHDú�©�LªÕ´Z)ŽÆ&µ~ÕsŠÒé–�ôoõ®äUÞÈ–c rR´àt#Î$4¨ós]®«Z<¬ö,ùÀ¼ÅŸZ@1d!aÀÂ=°7ݳc"‰³›^^¡ñ t ôÀöVŸ›AôùÑÑË/j/®X+–@AiK§•[D6és^¥>ú°•ñ{²4ü„ZT"£3Þ5ë.«È-š{ôЗ*ûrìpÿ`ç†}x¨c­<“g“ÎñÄ#´‹«½gœï~-Iâþj‘¥ÑÎ4ÇÜ�Êc¢£©‚¿)èsúš«úÿècêýù­Ü§ÇU6×=ïâ—8NÛH´éµDæáýµümÛo[sÃS‰5C–ûXŒi[ÊãU’<é·¾AÌm]Õ·OÊSú¯13š8­¸`Xã±ûAŒ}�Hµ³�cŠ«â¶òR¦Š ³XSvVÀ‰œÍ¬ŒÖÆhj÷"¸m¦Ý¸H¬Ñ";‰5Šš©g"Rv(Hñp,¯=½Ó˜´[ŽÊÁ+s Zï†Èâëé ¸©¢ÿÿý²Gž‰ƒþr0ˆ‘?ùÚT§f+h�Õ¿UÎyÇLņóÅ`¸P \͹´ÊOîä®2bH0ɵ�nD%˜Î0EÞÓß2o(©°Œˆ_"lò•¿óë‡$µ¤. ñW¶SªËϵçÃu¨rúJw†f Ç¦ ¼*¥(vî%ïÜå\÷ÁG™ëcüž>¹tå·¾2=E—eîêX{`½/vgö¶k®Þe?�ÊûÓ'2]qæp_ÊSí�ªÙ—,:ì dqš¶†~Cc¸�x�åëTsÌmV4 b‹ ÂÛ <ð �f/˜¾XÁY�(³®¤ŸéÞ.&0ÛàT´?®ÖÐÐýÌl†¸À{ÀÍ’ÈS÷½ ãƒ'·`Ó·y6r”èŸL;¾î¿›F–úÞÝ¢í­þàê“c…¶VY¬Jêð:«¾‹¡�ú ŠUçy¢”¤5=Î+\"a²:‡BE&µ¦,®!8àphÒ(�­p(XÊãßã…í=Ͼ¾·ku_çDU*Øšûa׆½y8²¬�ã0:• Q©ü Ò!ç÷Îò;wÜaŠ ÚÕTC·Ž›`š-{°È+¯UÕjÊ�RõûL§�¿+’G¢žÁ؇>þ˜³þ¬�ˆ)(>Å“OûII/³.)ÁCí«‡R‰ÕÃý…\¸5»Oë7}%Ä— Æ4^¾iŠ Ö#ñ% ñ%�/Ô0€Ç¢àúY0"°ðòÞʹØrìçŒHcDµ´5õžäÆáA?Ùè½rHÔž%ÖÈ.DKü{““ˆ+áPè»Î*€eeŒÙÎWw¸îàþ‰È–×Òþemc&Œ>¼ ÓÜQRô(­~·%î÷ÝóàHèÅWG£ËÚBNWG¤”Ha×`ω0AŒ_83Õ«B¥CRWeÍ—NDrIèлæaƒ ½¨o,°.¼Å�ñtì™×÷ôýàñWVÞúÀ‹½ä¸ôÌU!æâ’Áöìw»ÎÜ+g j#“œÈ!9Os¡ŒLƒÂ›‹Ï}Úùî­ƒÎõ×–©œ&…cú¶¡fèßçCÊ ý|¢tEG¡Î|} ¾° ñ;'¯™pÏ8oë¤RtŽ$`Äzv²å݉þ‰»×¼ï¹Ï žrÒ9~~J[þ@¢äO` I#qáÛ8¨›·Ù¢a,Ív�'[º‡'ZÃLß–ñ1¡öm:nd •åγDùà<‹(G¾VMmîYJ:ÕÏkl°gÚ†¾dn{÷\_¤5Pz×e]¹{:ŒGwdL=Ï¾ÙøQ´�EêXÒõv—÷ÝÇžN{zKÛ»®h�¿ïÚ¾ÌÙ§µæzðü‰À³Qçr¦ì+¥è‚âÄD(%RL•° ÉO�rJü€«î�^Êãr`,Û=8ÖúÊΡöŸ>¿£m0™�üÛâf™–ð®-j‡·�VJWåUÿiÅäàúëIæ(t¢ú‹ÞàÕO`ñÅJãxtBˆÙüšº—^ýŠÓÓ?†jt6n£¶ ât­îCŽZþ¶ïÂ�§·Ÿ:ø‰ýO�rÊès'EJ©`1c•†7‚Õ¾?ŸkÛj4u+]ß^6ˆIÄÓ½H¾%(QeâÌsXŸ0^ÉÞC}ùIî$þ ÏiÏÐã»÷—|pÆÃ{bþÅHhÝãÞÁ²oY{ÀÕ:È{ [{:C-zWwþœ3[ó«N‰º·KÑ"þ1¤9¢¾PÁƒ¿Je4 ¢ù²1Ä<–|édò…�ÉL.<œÌF÷ 'ãoìN<ýú¾øp’“JX»A@æ@2ç/_2Òõ¸¾L�íúh#q8±Ü ‰£h¶Ì»wÜqé�gàP} ×�®ãpÌõZ¢1IxÎ?àê“LÁ’·{ÞÛ^æxÈG¨·š¶Õ‡[^H‡_ 'òŸ[uÕ–�,[¿ã¾ÇOíM½ÞÅ‚_ o×&]ÃæÖ›ÃôÏÛ~.)„ü¥7ñ´>Ô–HõŒN´¶�¦Z‚ÈÛ‡p Zà-Šo!¾Äç8…㪠Q.ö U¸g¾GnÕj_—­ƒËû¢ÅÿüÛËsŸ¿yW´µÅç&3,ö«}¸ÞÌjžWz£ãˆt×®Žœ�ÏÝ7XðýË¿íE©¨èà»$Z>§=^ZÙ-E‚ìî•å‡E›‹ë÷<¾P(ù÷î‰ìxmï²R¡Ú?’ íž½¾ž¥ŠÍâùÖHÐÅÐÍIçKÎH¦èk Ûæ¬Ê™$�‘P•ÏU°}®?˜v#Y«¢9�8KÍQ}L;]ÜLü ¢GYNŽL ;‰)¸t¯þÀ^gõº=N6ƒíÆü8H¡‚¸�vlbNÙÿíÖU#ßN,ûÝ‘Wû.8ðäj6éiCyÊÆa&D Ã"5�Ï_–eûoöu·´µ$»ð§Ù†Ÿ Q¾öPH(gàÀ§Y…½Ä7¸ÓI€¬#öÕ¹5É…pÚˆè5ÍrПܫ/ëN 8†G±Ã %å©÷È‚ý5*RÂPLF["ÀšH֌ПGÇʾ—dz~E‘°Vgð91©“T'¦…KeãÃ¥œ‡Ï‚l9*HVÔ©fÜF"Ò2qXo[ó@\IÑ<‹Ñ=ÌêÜB•ùí8ých‰Œ¸ ™ñFê(3t��ú�‹ôÉÃ>`»á»î#ßrOÛ�A¿!Û ™lÌ» úª2�ò”ùGßã‰åã÷¶¯8Õ—(´ç[¢ÅшÌ'K¨8�¾k^Ý‘Œ¦˜¦)j 4ÖO§Z¢Yœ¹aÄ— ¶ªô®eÁ8s®5YúQžÈ´Œ__Dæí˜w›î%ÊèyE}Åz•-£YÖ�ߨ/ø³Ÿ�û{î8º‰ êImNÏÚt5‹“‚»™HÁ)P�ÜE;bÊ2�¤åE œF =>×�ð®™!ò;ñPÀ G‚::A)"…õiKÑu)Ù!ÔPÂæ¥‚ÉgmžgVõväß¶®oØ F‹?îyë›ÛB‰| ÃA;;7§J˜‡ ºybBC|Øùö-)g#9V™žŸÀ¡¦§zŽñ –s¼„(L�w§%�ÙR&å úå­åŽÈGœ 6bTs:/2‘éÃû�òêf0{’S=‘" U² „Ê?cöeGÛšÁ'RnÍ &"Æt=Èø#AƤPoWœ*ÛCî‘?Ò¹ ÈBÅÑ–x&Í4.=À ɈLSÏT”ÿ€h�® É4_$j=ŒvÊÑ×± "~Q%ÕWT´a–Ò›Wà:°±õã’ $[IDATpú{"Å[¿3O–}­ u2/I›ÔbEcE±[0NŠ?Ál ÑIqdp3üÎoNRGîg1›P$Š´ n›êÏT] +{—å.ZÛ5’ŒõOü]ïù;UጸӺƒˆGÀ•tîøjÓs¸Ž›&“92�g2»£{‚®ãfJ€Â̈/jžG"0¹Ï§ Gïpî½wÌùµË£3ý°µƒoÚBWãë´Û™O�ÄÂH|‰Ñàú™}y&Ü–Õº—[0ÛÞqá.tíøjHbCÅ¢Lu`Å JLQ30Š)œ&K„ÙŽÙpwÇh ‘Æ8ˆ:¡ÉÏîCg‹ë�"U[X~“xQS»Dõ�Œ€Ä¶Z½«8M£;ð­Àõn V™8æÁúSÔž©#N“\÷•—ŠlcuÞ¶ø“Ïp"ñÃOÝ9Âà¸Eß`|ŘŒú19Wc¯; o�ÿ×�p^Úè‰<*PU88UWßGßm€Æ¤Ñ^»U ˆ»þ4QåÁ¶ÅÂïs~À¹~sØùŸ¿9ì|ôý�;†\¿s*÷‘ðŽûPÅdûÑÎ×_F~ŽU·?îXs Ô²j¤ÄhɳP«”EÏb9Ó|m¤1ß î£"”G1nJ2 ƒÅÚÓR T(Á‹¨ÿšlÕ™eÔìÙ~ÈcV–¸�(³ömĺÇQ�3ƒa@D_OïØÀÏ“Á$«+�¸Îª±ÂøD6üÈSÉàŠ¾€«éT£˜|áØ=±ÇšžÖÂù§¯x¢ÿÒ7~íÌÄ1'Ú@ÐD“ؾ­ÎgÖbÊ åìMÕÔõ¾Z ‹¯h¬*â®ï28�‡*1¢ì  >Œý”û}â*y¹Îf&,7Wlrn»g=›~˜ns Ú/4á h�Ù°,Mæ?’ÜÝqÙÀ3«ú“¯uËy,–Xsa …À9‰N l‚Ì�"q£éGïÑžÊÆ:Æ�’L._Žy#0‚;=e â o}!)r$ú•=Æœ~âJR•3`Mû&8бé9ÅJS7fèøéص'¼öcÏÂÛ”}šÁ×z„ÉÇxáØ ªb«uÇXÐóK§3ïý•ÿ§_ÿÔßSv?žf³îzÑN\Qúß�O^{÷!íµ’Ôb�¸u—x_0ÍÐØI—Ð2×qs\=f-döÊOM5“ÿ³‡¦a^eçÐ[TcìüÖ�óÑ?yÂ)JÊuWa]$#îѾÏ+ó F5 .ôFžŽv¥ï^¶~ÀI¬i¥7' Cq³ ›â”Y‰*+T,šÜ ,$G1&Ë He£mD(&q‹eÁ43ÿ=]ˆÆ>µRéCÒƒ¼F7²•¸›¨{R苊êò7*jó®�ó"úƒî®péÒ ÛÊß¹k êÃJ,&§Bü®ç�Ñ ¢³^½�ë[Ûþ_öñ'ïëX=ÜÊ"Éú•¢"xm“¤Ë°Àm V1ª§DÚ%ЪL}‹tä/Ò‘ß͵š¤î/FÓQWú[°^½›£‚îyÁÓ/@¤:×Ã÷�oÜÿ*cÙèÅÞb&$²o·ž<òí–£¿<~NÇ¥CÏŸ¼<ùj·”¨e„IVV᪸jD Lì@¤Q_D¢¹ñ¾h.ÆvméL¬ œ±T.jÜJБ¼­o¤ TT³†£@Bˆ(y™ÇôË� ¢ ‘¤7Ñ4p¯!þdc%ÿ…g´§ÿnóiþ?Øüjk~UÚXè2ÎæKÂet,†ŒOšä”³#zVz{ÇšÓ˜nC•§c@GpýFÞÕè)ƒH}"Õ×´Ö°<�.æÚˆ‹@›îçàrþœô"jê‡uN9„5®èùùÖoÄbï�F'¥Íð1­àðw¼#6K"Œ\Ë�ÊX SõëR­ï~餓G_î‹—Æ£ÚÈXÈÔg¥«h0«_³DÊZ‰1L¯[ñÁÙ†(Ó’JÇXTbFŠ©A•ñ81aš"J šgÕÅÒëwQnE&ßøªwB‰@ùÎÇ÷·þÑ#o´$ð±‹ç2b³:�Hœ©˜¤¿tÁÛw;¸é~E!ž5ö½æzî²ß…DÎ<õáìéÍñ °D ªý¬ÃêóÌìhì=#[{×�lYÞ‘ÛÝÆ++q£¥ÅT¤ª¸¶¿s‚xÅ× ã^±%›�´&³±D: bâ'By¡…¾ƒ}ý _âÕÞ¶r©¨™Žåé0ÊØ'ŒÇþðñ×Ú†rE¿ÀcœŽ'[ Ñ㘠‘XÏt~ç-—ï*ÿ‡Ï}ÓѺ¨F;JLÑB|›9áòß9½nçTŠQÑÅ’ô˜¡ÑTÜ€tÂñ8l¦kûÞ�~ã¤oòã8÷ ¤ß´Ét Fx¿sËOÄ]C‹î‡sD²wµ9°ô# þ ;È( Hì ÚçŽäwFwt�€t§·u†Ê¹ V^b�*¦Ö¦LW T9Ãij{DØí=Ü‚.Ñ›8³Â èðÌ«�HS $JC”TÑ”'\› úÊoNäÂ7oÙÙvûŽ!æf|Î f`†ÑÁÈ8Kï˜÷¼Ç—Ö_UŲÓÖÉ¢•� súyå?ù‹[�ËåØ9@Z*èW�¯ýûJeUý µVÉÒä`åÌr}€óÔf‚o¡ÀÃrÏÂm\DÚVÒ>Œøsª™_ôð—¾wâ±+øŒWКµ bÃ…hvFœÊe€h͉¦rËÿ/Oìm¿pìµ¾c[{Å!æìü&‹ÔÅXS]¥É\áD„Zh`üQ¼gÁ�„cøíŒærayÓÒV4q#ІøS€‰~ˆ°WJ–ütÏpâ¿<½=Q2;Hù�LsŽ">¥xh©p ª‡jÀëXIn(ÅiÕÄèÝøØ³î Ÿº‡Îß÷,ý†ß‡gÿ×��_ýðt܆òZðƦD�‘`¹Ž¿¦¼Dõe 0ß`�ã¿J[±A�³Ru€;îð;7Üà¥ó/÷öa2vâ-†FY9°ÛÂÌÀTr�„v'‚@rïTTuÀ€_ç@¯Ø8—’ïKçBÏ '£î�Þùê^;Wcrdœ„¼|Á‚ˆ ÁŸ\� }.’q`¬'M+3¯x( Ê(€'!˜—ªJ¶$Â|?çJs ¿¦êÏ“Á-_{v_ú¼Õñ‰=|ôç_?sãKhø�”\P2S$…öä³õœ(3?F-n9�5Ùß:¿~Õ`8¦' UX^ÇñPå1}b}ÓF‚m(ûË×’À½D›G#éÍþŽ™*Û|°±|åî3àg¯¤¡nàeq:ž³H:PbL;"{�aË…”rÁ¦÷·ž7¶­ûäñmÝmù�–€D@¯“ Òð訌ë ö£Ú�Ao1½ÖtMÎ$µ0�i:¾.ħMëØÂ�Àù¾d&ºs`´õõ½Ã­[vˆoÙ=ª‰ß)ƒHŸL\ƒp€dLPþÊXG‰=ù™„¸žÚ›[wÒ²ôêþîñÕ]‰Tw[ ÷êÉ×nùÓåíð~í�Ò(`xEÒ_D`,\|å;�O\{çl ¡l}t~¢#BÿJÅo$ÎWÇa¸ FŽÇ™I¹Œô¤�}m[åt‘BµUY|íÞ ´Î+ÉþtµîTt ú‹0 £,«¹ÄÍI™ÊxÙ�—²!Êœ>¶­§7½c¢L¿¨l%b�ËäöáÈp"*gm¨í‡|,:�næ;ÇÊÙÇ�›£Õ;H¿ñ4µÒ‚�Üjÿ�…Òý�pÿÀqq¹�©JY ·üøL»œ�`—ì@ÊfcG ƒ‹öíUq£ á8X%ʬÉODÞ9±¯c=\H D´€Ç‰h£)yÞÔgàPé°\,™§`‚(àJœÎ¥ˆ¯O¸LÇ—)9ftJˆ=Él.˜ÎqŽ­IQö&z—:!Šð$²€R8*Ū[Ò)Å¢¡bA E­4¸}wx§� O;2÷®¸fË×»Nßß]̆&HnÞ ¡ÚàÀµ’ëÜæÜxÍ£3ͤèq­ñØ –èÑrEùþ˜hu�ׂÆ�ŠRt/ Ypj4ÍFߣI¦»’Ä­÷¯Ã™Ð;X ºàˆÃ Ðæ|ZHdzóËYË(]A+¢ŒÙ³  °18/7}ûÄžŽS’;;»3»:…‘˜qF:­“ÁŽeƒrhTá§w) ”J00�¢£€„›Ø�¡4÷j‹�ZÁ» ñ£IG{²ÈT\º¸Ìå`ZðïoY7xÇÊ�[~ëN­(æBò¹rP>­M¹®kµ[¦_ÝQþ©ò¦ÊrXykS5®½yœ_Û}ÜÆsÔUK¡lÇo´êxþàø±y4šÞ¼WË�Ü|çj'–u­¹�ÖY gÊUMe>Ü–Ib¶?bëØ™Î—¡á�I¢í,)Äš|*r%âÌ:@¤'µŒ‡´i2dtÍZvÀÄÙ°�DE³‰w.}'0MY«ÁDϘkz£f¢d:(g‚Ù`köùî‹wüUŸ¼y…ÊËÙÙO aÉ0¯£'¢À–søE!zÍþ¹rÊ÷D#BJýo"ÎW·¡):º€†Ä‚GˆG^L!ÓiƒdÏŽ|·ÜÝË9³H� hí=¼‡>ÎWƒß"Y£V—MÄ'"ÑÔî>? BLj„°Rý@f¨å4¸‘å€H{vk¤4‘^„ò²R…ÍžéVâEŒÁ™ž¦sê§c"ð]TLº¨Y6P,w·�¹ÿξ·n Κòt µ«›ç]'Ós²*ÃùÄu�ÔÊÿDË ôZ§rqA¸ F�{‰šMQ0@â�.¡¿ff ¦Â:ùß[�pü-4 ‹ÙlG”§ˆô š'<\ˆ¨£©]‰3y@dX�Ú(VɽT\†¡Ù¹Éým'eÚºS{ÛZ øO-&ñ¦eù!`NgÞz±ï“lÓR^y%¢ùI ¾pqëúÁGzÎÝù-¼Öë×~¸Œ!è¢ÑmƒŒøZÜYûo¤[w{=Ñ€Ãr±>K´"F£ßD܆"¢­ïfSîà|iqSÕL¢M„íBºÛo;…ô¥‹�õ´#éAð"Q†&¢E£‹`R[4uzMïÊÌ]Ç4¦Z¤q˜æ½&;Û�hë'.Ë ´Ä ÃrB„m'»ÜRH™¾K?b¹q1Lc©ˆ>×Qf”÷J#NI”¿œ7»e‚�™}íë<Ѿ~ÿwZ—�I„릮¬5ói†j�K[ÑkàÅ$ÝñçÓoÕš'HWLæ˜Ù‰–ÛXYÑmh-×|¹ ûþKˆ)�žôj§ü–~Pƒ©¶DU‰oûÉjü_¼•þu>�© Ñ,bŒ¸išËâBTR~x´àNv"ƒjÜZt—aqѹ6¢d]›M¬Än¤#7ÔÒR‰‡ ‘:ŸMhHdf.Ë £{TòSѤÁ E̔Ȥ܅¾e�[·÷7jÏŽÄVŒmo]5t_Û)CÏEµëÛ%P'‰pÚò³ÁbÌôËPŽû}N1ð÷Χ®­WD±‰7L$›À1t4Àh|�2ÿ.q¾º UÝÇ8þ–ë¥Ïm¨ÔµA�å&Z½å@ôûm?XæBç0ï(@\²e¥åB¸C¤—±ö#A[jt#N³øN@b§qÑ,§ã�Ÿ›ˆ®Äе?ÃQù‘xka".�Gä1hij¿®a£„ƒRH* Î%øÃpU�¾¿R;xwõpå— 7#J V”‰Õ)™)d˜2ˆ‹%ãÄSm|8< Æ‹™@<—·gGÃé}ÑÎÔöh{ú'â*ämM@÷£\²º5‹Ikßɇ"ÔMbÊú%çcïÜAe XA½ús>€Cu¬ $¾û$¯âz¾º QÚ¦ñߎ?ãÚ‚“~;öƒâ*6®¯ÜßÁòÓs æ¹ Ó§À�hrDì/óOóÛÁÁøSA‰“°C»OC,f0ñDqš¹!ˆ£ ¨0O³¾˜ J§Ð_Ì;ðuæ:PÌÃð :w˜ôXßbV×êu e¥4�rŽ/–Ñ僱â(;¨íaㇽÁxa{ÐDE¬TEOqæèMIãyÌ4"¥¹ˆÁ _i”ý/ÿ¯ó©_Ú>NÖóDµ'"ÿ§9~‘h9KƒFŽ6�A@ã\8š_�”¿žwahô›€„jþ6lBJQÄÅ&Äé›Y’-§Ëfø iE©® )]­¢K‹îP*8ì;R©¶" FR…}Õu6Ôü1k±•÷Ì5ææ;ˆ¥&›q <;RS˜ªKÙ—i–W›~¹¾=N)ûeçSïÝרN£*esz¼‡ådZþ5^…¨g¹�?8þ;×6ývüuŠZ]È]wEœáÐi4NÔ]ÇŒ.¢ l°Ä‡u*c;�hÑÖÈ4JlufEÍÞèãi>F×:¯º7S°�¡gFjU¤%HTÿÎå‘ 2î’„å+'0k}ÎÉEns~‹5(óÐiÔüx}sóÝOî&¾‹ë…Tˆî4.$Í=D;�qz‚•É~ÎzfWµ¿v“ áÓYd!.d ݱC| ½RS»Ez*£úÒáDŽ»/%îH³_R‚ ¬çç×|×Í x/ŽÏÀa¸8�ÍpÑr œÎ+Øt> pü)�ÜÆt$³\Èa¢ ³2¾è¬?‹†»šñO„jÌâBØL×êD8[?]òÍûs¤€ç¸:bƒãwÀq|‡EkZR¸C÷ê³9&9ÓcÇë3z ô|kÎoU ´ Ï'XÝÆ›€†<|�•æ‚!ù| wÔßõ£J¡ªBÝü£N'ZçøJÌÊøO(:áÒq�b­´hìNñš<�õ?–v®¶œR(=á”Bß76�gÓÓx/Öõ÷xŽ0�ˆy)ÜÆum;<§ó 6�ß8¤h=±¹�™Hi9‘Ú‘NâL)´¸]�ಠè0Ôèa±ýâFdíÍÐ9½É�LIf£Ç@òóã.Áó¹² ñçS×>ožŸçtë”yVÝ\àЈ«tÔ©ŽfPÔ‘ ¡PèÌ¿Äy/ÑŠœÎ+˜tŸ íKIIõUž|½f˜‘Óq"_¹?ês'ÃV¯Çt-”\E1Í€µÆ�…«Vïâ]Ýt�&Gû PxíÍ•1í½ììãïCNòõ‡œOZ³`›• ^à°mF¢¨u¤;ÓäÈÏnôï„�x¢”…P†’Œ©�¡\̵x€º—{“yê�f˜# 'rÓ»›�ÞÕëZµëøV�k!ù*:I”�WR–å£À@áBÍ !Ú1ÀÐ?)á]võÃÏ(Ç=�âq'“ÌùôûÓ†F‹ Ë¨Ðþ°C£ÀafÐ!\¾¿¢$|¹*uu*UT¨·˜ ¢r¨jPÐÓÿ£S¢á8.D°ôuêú1Túª×bÖm!ʽ´Ó°âLíìŒJý¥'CNÛP¿SžêÝS™™Yµ»cd ýýú¾ìy �T,ÅMe¥'ñ:V£mÛ$sTÿXÎBœ– bptN�ÑÛù³Ø�!’øžtVžq®ºJæ!ŽQ~Ö*§Í‹÷§âêÓaŽŸRÇ+¸â}�ŽûeFãûjŠ+Q° 2ßΦN«¨ôÎD„økâ{½Ë «×�w/– ;;‰8+y5 B:üf8…©¸­àÍ÷ô:åü ˜½U|ú“3z6Ä‘`|fÚ$ߊ5dLÌ8mt$¤K“9+|Mùëý#c-�Ÿþ‰“2œ­'ŠH\€ÃØ‚¹ø³ÎÇ®yc2ùÚå“?,þ‰÷¡êËDzèÖ;ø!#;�÷AÀä:Ù]${°’ó°\‚îÔ‚Híµ-Ÿ= (m8°Ò‚µß#jÙ‚Õ;X"¨«òÊì^aršY!1ËÅ·ª,;ù'%0~Ž™Mæj3KÛY· 5ñ>Dµi/ØúoÞ¤BõöW/pР&«yÐê$ 0ì¯ i„V¨=³“ïó ô€ìà¸�Ù‰œOljBTJ�UAÓ¨ZDÕ P°6È=›sYj^D<•hƒÞQþ¶ öþ|�ª‡ê;ð½�ã¶Êµ­—Íp)àÍlÚä9€Ül:ÓáJìü†+ãLУ,/.£Óf}˜ÅûÄ™°ŽÃÅ*FS®tì†'Ne*p°À �QÀ¼Ü1U7GË­Lõ®JN‘<3ü4 �³ß÷öSžýN˜x 8äüÁ{u\n.mâÉZ3™½?  ñYŠüçDÛ¹¦ª�ÀBQy¨Nds!ÐÐQéÙŽ)àxÈÇm5qiÂb†W£P”g¯�pr¯FÚ5N›aÉQÀŽÊ¶`Óq&öw=ÿÏ?ˆ9�P”½[ؼ¹…�ÌâN9§Å%x,ŠS#‰=,iTÊj‡p  ƒ¾7PYc7¹[ô¡°5ººRZf¹Nó|Ò)Sp´ 16ÌJ9×oäzJ®ÁC•o¶²ë™£êJ@8žäx&q&ààçÉ N¨w';$çÊ{®\‚ÞS^¦3WÞ«§ì¼RW0" oü#ÜÆïsT9mÙëJ¨ùðQ§€Ä¸¯6øœë¯w9w°shì{ l´øK=>çJêvà€Òqêvˆc@Ž>°áŸóÒKîR SǪ?õt>�úEĆà־ɹ€`®¿*ËCN«?ž÷ùÙ\¨Œ6þëÂßç†ÓxNc#ç*—MN›áø¡  ¯+P™ ›tÃñuÏü2%w0ùÆ'Xé“v%M]NB'u§©—–L¨"ØŒe²ÏiˆßÍÓ¦!fLh‰ÿh9�Ýp—PÖ]•:ª®ÍФ@¥mjƒùiªj<.®- ÌVÃmðÐÛSãhGàùr³å{$·@˜46’±Ä1[ï#YŽf^M ,y ̵ãK,‘eæoè@T'›ë»<ºäƒ —:þ ¥hHªûÍФ@“5˜ Ç!€phËÄ_pÔ¼ø\•¢<ºäƒO4µþaôߣÄMNcɶf�&æÂ5˜g�_¥  �Â3M¯ÍúÔ›·¡†³h‚F½¤k>"S@#ëLA‰€B�ëÆ™<Æ~“Kõ’�ˆ ¼~™ãƒDbS<�ÍФÀL˜�ã0œS°ï"y¼R‡;Ö¹ ƒê!0|иŒ£@C×ÖøŒÓfhR I�é(0pXnã¹ò«$ ÖÞrM—æR½/°�>C\–êýUê%‡<¯Tîé·fhR I�9P`&à°¯�ÿïâbQÞäÅq<4r›ÙŽK9XÀPÅU PŸO¿Á¹Lƒ›ŠPˆÐ M ÔC�ÙÄqe,E"ÞJ‡Ó6‡+ˆ¬<4£¶~{oD×K%¨LvöGõTÙn0~Uõ©\ 8›â Dh†&ê¡À\;º:ží`qt Þ�\Å}q!6ˆÝWšê�:Î5}]� îB€¡(î€âÊü—UN†ô›ÕuTžjšhR`®¨§c «gÎešöÃÈûèœòŽU�žíÀ*‹î[0ÑõB… ¥Y=K$Né.Ê÷l3~XÉЖÂ`åvóФ@“õP º£Ïõ= ê|ê´ JGæèïD6Òaå7ƒ x zG€¢ wlþöhïë¨`Ó¯>·`¡w¬¢ßm�²ó{pD·s|ÚÞä(P©.sÕOÍÓ&š¨‡Õ¶ž÷ì³VGR;‚¯E4¸ y;@r!Ç5¼€ó”E £¤ÿ"ù<p݃8¢µ4øA˜ MÀ˜$Eó¤I�…¡À|�ÖBéXQ¤Z”ÑïúM U�É::ùzÎWr\NgÇÅ›áL¢¥+‘îA`dÓ )=Í~ÈÙ�@b7ïíàü€â€âeÎß$V�…aª¹–êgšçM 4)Ð  8ª³¯‘j=Gõ3ö\–›òR-/_: @,xpj@CîÔÄAŒåfP¶$S+¶Ì–çTï6ï5)Ф@X à¨ÍÞrÕyÍ·s[�P^M΢–âÍë&™Õ�y‘³:,y›÷tGû‚5t¬>·¿7�M 4)Ф@“M 4)Ф@“M 4)Ф@“M 4)ФÀÿ>ÿìñ]³uKIEND®B`‚unyt-3.2.0/docs/authors.rst000066400000000000000000000000341526544257300156740ustar00rootroot00000000000000.. include:: ../AUTHORS.rst unyt-3.2.0/docs/citation.rst000066400000000000000000000020421526544257300160220ustar00rootroot00000000000000================== Citing :mod:`unyt` ================== If you make use of unyt in work that leads to a publication we would appreciate a mention in the text of the paper or in the acknowledgements along with a citation to our `paper `_ in the Journal of Open Source Software. You can use the following BibTeX:: @article{Goldbaum2018, doi = {10.21105/joss.00809}, url = {https://doi.org/10.21105/joss.00809}, year = {2018}, month = {aug}, publisher = {The Open Journal}, volume = {3}, number = {28}, pages = {809}, author = {Nathan J. Goldbaum and John A. ZuHone and Matthew J. Turk and Kacper Kowalik and Anna L. Rosen}, title = {unyt: Handle, manipulate, and convert data with units in Python}, journal = {Journal of Open Source Software} } Or the following citation format: Goldbaum et al., (2018). unyt: Handle, manipulate, and convert data with units in Python . Journal of Open Source Software, 3(28), 809, https://doi.org/10.21105/joss.00809 unyt-3.2.0/docs/conf.py000077500000000000000000000131111526544257300147570ustar00rootroot00000000000000#!/usr/bin/env python # # unyt documentation build configuration file, created by # sphinx-quickstart on Fri Jun 9 13:47:02 2017. # # This file is execfile()d with the current directory set to its # containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import os import sys import unyt # If extensions (or modules to document with autodoc) are in another # directory, add these directories to sys.path here. If the directory is # relative to the documentation root, use os.path.abspath to make it # absolute, like shown here. # sys.path.insert(0, os.curdir + os.sep + "extensions") # -- General configuration --------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. # # needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = [ "sphinx.ext.autodoc", "sphinx.ext.viewcode", "sphinx.ext.doctest", "sphinx.ext.napoleon", "sphinx.ext.mathjax", "show_all_units", ] # 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', '.md'] source_suffix = ".rst" # The master toctree document. master_doc = "index" # General information about the project. project = "unyt" copyright = "2022, The yt Project" author = "The yt Project" # The version info for the project you're documenting, acts as replacement # for |version| and |release|, also used in various other places throughout # the built documents. # # The short X.Y version. version = unyt.__version__ # The full version, including alpha/beta/rc tags. release = unyt.__version__ # 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 = ["_build", "Thumbs.db", ".DS_Store", "modules/modules.rst"] # 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 = False # -- 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 = "alabaster" # Theme options are theme-specific and customize the look and feel of a # theme further. For a list of options available for each theme, see the # documentation. # # html_theme_options = {} # Add any paths that contain custom 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"] # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = "_static/yt_icon.png" # -- Options for HTMLHelp output --------------------------------------- # Output file base name for HTML help builder. htmlhelp_basename = "unytdoc" # -- 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, "unyt.tex", "unyt Documentation", "The yt Project", "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, "unyt", "unyt 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, "unyt", "unyt Documentation", author, "unyt", "One line description of project.", "Miscellaneous", ) ] autodoc_member_order = "bysource" def run_apidoc(_): try: from sphinx.ext.apidoc import main except ImportError: from sphinx.apidoc import main sys.path.append(os.path.join(os.path.dirname(__file__), "..")) cur_dir = os.path.abspath(os.path.dirname(__file__)) api_doc_dir = os.path.join(cur_dir, "modules") module = os.path.join(cur_dir, "..", "unyt") ignore = os.path.join(cur_dir, "..", "unyt", "tests") os.environ["SPHINX_APIDOC_OPTIONS"] = "members,undoc-members,show-inheritance" main(["-M", "-f", "-e", "-T", "-d 0", "-o", api_doc_dir, module, ignore]) def setup(app): app.connect("builder-inited", run_apidoc) unyt-3.2.0/docs/contributing.rst000066400000000000000000000000411526544257300167140ustar00rootroot00000000000000.. include:: ../CONTRIBUTING.rst unyt-3.2.0/docs/extensions/000077500000000000000000000000001526544257300156575ustar00rootroot00000000000000unyt-3.2.0/docs/extensions/show_all_units.py000066400000000000000000000145521526544257300212720ustar00rootroot00000000000000from docutils.parsers.rst import Directive try: maketrans = "".maketrans except AttributeError: # python2 fallback from string import maketrans import numpy as np from sympy.core.mul import Mul from sympy.core.symbol import Symbol import unyt import unyt.dimensions as dims from unyt import Unit from unyt._unit_lookup_table import name_alternatives, physical_constants from unyt.exceptions import UnitsNotReducible from unyt.unit_registry import default_unit_registry from unyt.unit_systems import _split_prefix all_dims = {} for d in dims.__dict__.keys(): if isinstance(getattr(dims, d), (Symbol, Mul)): if d == "dimensionless": continue all_dims[getattr(dims, d)] = d def setup(app): app.add_directive("show_all_units", ShowAllUnits) app.add_directive("show_all_constants", ShowAllConstants) setup.app = app setup.config = app.config setup.confdir = app.confdir retdict = {"version": "0.1"} return retdict class ShowAllUnits(Directive): required_arguments = 0 optional_arguments = 0 def run(self): lines = [] for name, alt_names in name_alternatives.items(): prefix, base = _split_prefix(name, default_unit_registry.lut) if prefix != "": continue lut_entry = default_unit_registry[name] u = Unit(name) try: dimensions = all_dims[u.dimensions] except KeyError: if u.is_dimensionless: dimensions = "dimensionless" else: dimensions = u.dimensions try: mks_value = (1 * u).in_mks() except UnitsNotReducible: mks_value = "N/A" try: cgs_value = (1 * u).in_cgs() except UnitsNotReducible: cgs_value = "N/A" def generate_table_value(value): if value == "N/A": return value approx_string = f"{value:.4e}" real_string = str(value) fv = value.value close_value = float(f"{fv:.4e}") if (close_value - fv) / fv < 1e-6 and len(str(fv)) > 8: return approx_string if fv < 1e-4 or fv > 1e4 or len(str(fv)) > 8: return approx_string return real_string latex_repr = "``" + u.latex_repr + "``" if latex_repr == "````": latex_repr = "" with np.printoptions(precision=4, suppress=False, floatmode="maxprec"): lines.append( ( name, str(dimensions), generate_table_value(mks_value), generate_table_value(cgs_value), latex_repr, str(lut_entry[4]), ", ".join([a for a in alt_names if a != name]), ) ) lines.insert( 0, [ "Unit Name", "Dimensions", "MKS value", "CGS Value", "LaTeX Representation", "SI Prefixable?", "Alternate Names", ], ) lines = as_rest_table(lines, full=False).split("\n") rst_file = self.state_machine.document.attributes["source"] self.state_machine.insert_input(lines, rst_file) return [] class ShowAllConstants(Directive): required_arguments = 0 optional_arguments = 0 def run(self): lines = [] for name, (_value, _unit, alternate_names) in physical_constants.items(): val = getattr(unyt.physical_constants, name) if val > 1e4 or val < 1e-4: default_value = f"{val:.4e}" else: default_value = str(val) lines.append((name, default_value, ", ".join(alternate_names))) lines.insert(0, ["Constant Name", "Value", "Alternate Names"]) lines = as_rest_table(lines, full=False).split("\n") rst_file = self.state_machine.document.attributes["source"] self.state_machine.insert_input(lines, rst_file) return [] def as_rest_table(data, full=False): """ Originally from ActiveState recipes, copy/pasted from GitHub where it is listed with an MIT license. https://github.com/ActiveState/code/tree/master/recipes/Python/579054_Generate_Sphinx_table """ data = data if data else [["No Data"]] table = [] # max size of each column sizes = list(map(max, zip(*[[len(str(elt)) for elt in member] for member in data]))) num_elts = len(sizes) if full: start_of_line = "| " vertical_separator = " | " end_of_line = " |" line_marker = "-" else: start_of_line = "" vertical_separator = " " end_of_line = "" line_marker = "=" meta_template = vertical_separator.join( [f"{{{{{i}:{{{i}}}}}}}" for i in range(num_elts)] ) template = f"{start_of_line}{meta_template.format(*sizes)}{end_of_line}" # determine top/bottom borders if full: to_separator = maketrans("| ", "+-") else: to_separator = maketrans("|", "+") start_of_line = start_of_line.translate(to_separator) vertical_separator = vertical_separator.translate(to_separator) end_of_line = end_of_line.translate(to_separator) separator = f"{start_of_line}{vertical_separator.join([x * line_marker for x in sizes])}{end_of_line}" # determine header separator th_separator_tr = maketrans("-", "=") start_of_line = start_of_line.translate(th_separator_tr) line_marker = line_marker.translate(th_separator_tr) vertical_separator = vertical_separator.translate(th_separator_tr) end_of_line = end_of_line.translate(th_separator_tr) th_separator = f"{start_of_line}{vertical_separator.join([x * line_marker for x in sizes])}{end_of_line}" # prepare result table.append(separator) # set table header titles = data[0] table.append(template.format(*titles)) table.append(th_separator) for d in data[1:-1]: table.append(template.format(*d)) if full: table.append(separator) table.append(template.format(*data[-1])) table.append(separator) return "\n".join(table) unyt-3.2.0/docs/history.rst000066400000000000000000000000341526544257300157100ustar00rootroot00000000000000.. include:: ../HISTORY.rst unyt-3.2.0/docs/index.rst000066400000000000000000000020761526544257300153260ustar00rootroot00000000000000unyt ==== This is the documentation for ``unyt`` (pronounced like "unit"). ``unyt`` is a Python library for working with data that has physical units. It was originally developed as part of `the yt Project `_ and was split out as an independent project so that other Python projects can easily make use of it. The unyt library defines the :class:`unyt.array.unyt_array` and :class:`unyt.array.unyt_quantity` classes for handling arrays and scalars with units, respectively. In addition, ``unyt`` provides a number of predefined units and physical constants that can be directly imported from from the ``unyt`` namespace: .. doctest:: >>> from unyt import G, Mearth, Rearth >>> v_esc = (2 * G * Mearth / Rearth) ** (1.0 / 2) >>> print(v_esc.to("km/s")) 11.254544657958482 km/s .. toctree:: :maxdepth: 3 :caption: Contents: installation usage unit_listing API Documentation contributing citation authors history Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` unyt-3.2.0/docs/installation.rst000066400000000000000000000043251526544257300167170ustar00rootroot00000000000000.. highlight:: shell ============ Installation ============ Stable release -------------- To install :mod:`unyt`, run this command in your terminal: .. code-block:: console $ python -m pip install unyt If you have a C compiler available, we also suggest installing `fastcache`_, which will improve the performance of `SymPy`_. If you don't have `pip`_ installed, this `Python installation guide`_ can guide you through the process. If you use `conda`_, :mod:`unyt` is available via `conda-forge`_: .. code-block:: console $ conda install -c conda-forge unyt It is not necessary to explicitly install ``fastcache`` if you use ``conda`` because it will be installed automatically as a dependency of ``SymPy``. .. _pip: https://pip.pypa.io .. _Python installation guide: http://docs.python-guide.org/en/latest/starting/installation/ .. _fastcache: https://github.com/pbrady/fastcache .. _SymPy: http://sympy.org/ .. _conda: https://conda.io/ .. _conda-forge: https://conda-forge.org/ From source ----------- The sources for :mod:`unyt` can be downloaded from the `Github repo`_. If you don't need an editable install, the following line is all you need to run .. code-block:: console $ python -m pip install git+https//github.com/yt-project/unyt.git If you would like to make an "editable" where you can directly edit the Python source files of the installed version of ``unyt``, then you can download the latest version from Github either with ``git`` .. code-block:: console $ git clone git://github.com/yt-project/unyt or download the `tarball`_: .. code-block:: console $ curl -OL https://github.com/yt-project/unyt/tarball/main Once you have a copy of the source, you can install it by navigating to the root of the installation and issuing the following command: .. code-block:: console $ python -m pip install -e . .. _Github repo: https://github.com/yt-project/unyt .. _tarball: https://github.com/yt-project/unyt/tarball/main Running the tests ----------------- You can check that :mod:`unyt` is working properly by running the unit tests on your installed copy: .. doctest:: >>> import unyt >>> unyt.test() # doctest: +SKIP Note that you'll need ``pytest`` installed for this function to run. unyt-3.2.0/docs/make.bat000066400000000000000000000013761526544257300150740ustar00rootroot00000000000000@ECHO OFF pushd %~dp0 REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=python -msphinx ) set SOURCEDIR=. set BUILDDIR=_build set SPHINXPROJ=unyt if "%1" == "" goto help %SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 ( echo. echo.The Sphinx module was not found. Make sure you have Sphinx installed, echo.then set the SPHINXBUILD environment variable to point to the full echo.path of the 'sphinx-build' executable. Alternatively you may add the echo.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 unyt-3.2.0/docs/unit_listing.rst000066400000000000000000000002671526544257300167270ustar00rootroot00000000000000.. _unit-listing: Listing of Units ================ .. show_all_units:: .. _constant-listing: Listing of Physical Constants ============================= .. show_all_constants:: unyt-3.2.0/docs/usage.rst000066400000000000000000001674311526544257300153320ustar00rootroot00000000000000======================== Working with :mod:`unyt` ======================== Basic Usage +++++++++++ To use unyt in a project:: >>> import unyt The top-level :mod:`unyt` namespace defines both a number of useful functions as well as a number of units and physical constants populated from the :mod:`unyt.unit_symbols` and :mod:`unyt.physical_constants` namespaces you can use to attach units to NumPy arrays and other common Python data container types like ``list`` and ``tuple``. For an exhaustive listing of units and physical constants defined in :mod:`unyt`, see :ref:`unit-listing`. .. warning:: Both unit symbols and physical constants are defined in the top-level :mod:`unyt` namespace. Some names occur as both unit symbols and physical constants, e.g. ``"me"``, ``"mp"``, ``"E_pl"``, etc. In such cases, the top-level namespace defaults to exporting the physical constant with the duplicate name. This means that there may be a (very rare) case where an :class:`Unit ` object that at one point can be imported from the top-level namespace may at a later point be only imported as an :class:`unyt_quantity ` object with the same name. As described below, there are other ways to import the unit symbols and/or physical constants besides the top-level namespace. An Example from High School Physics ----------------------------------- To see how you might use :mod:`unyt` to solve a problem where units might be a headache, let's estimate the orbital periods of Jupiter's Galilean moons, assuming they have circular orbits and their masses are negligible compared to Jupiter. Under these assumptions, the orbital period is .. math:: T = 2\pi\left( \frac{r^3}{GM}\right)^{1/2}. For this exercise let's calculate the orbital period in days. While it's possible to do this using plain old floating point numbers (you probably had to do something similar on a calculator in a high school physics class, looking up and plugging in conversion factors by hand), it's much easier to do this sort of thing symbolically and let :mod:`unyt` handle the unit conversions. To do this we'll need to know the mass of Jupiter (fortunately that is built into :mod:`unyt`) and the semi-major axis of the orbits of Jupiter's moons, which we can look up from `Wikipedia `_ and enter by hand:: >>> from unyt import Mjup, G, AU >>> from math import pi ... >>> moons = ['Io', 'Europa', 'Ganymede', 'Callisto'] >>> semimajor_axis = [.002819, .0044856, .00715526, .01258513]*AU ... >>> period = 2*pi*(semimajor_axis**3/(G*Mjup))**0.5 >>> period = period.to('d') ... >>> for moon, period in zip(moons, period): ... print('{}: {:04.2f}'.format(moon, period)) Io: 1.77 day Europa: 3.55 day Ganymede: 7.15 day Callisto: 16.69 day Let's break up this example into a few components so you can see what's going on. First, we import the unit symbols we need from the :mod:`unyt` namespace:: >>> from unyt import Mjup, G, AU The :mod:`unyt` namespace has a large number of units and physical constants you can import to apply units to data in your own code. You can see how that works in the example:: >>> semimajor_axis = [.002819, .0044856, .00715526, .01258513]*AU >>> semimajor_axis unyt_array([0.002819 , 0.0044856 , 0.00715526, 0.01258513], 'AU') By multiplying by ``AU``, we converted the Python list into a :class:`unyt.unyt_array ` instance. This is a class that's built into :mod:`unyt`, has units attached to it, and knows how to convert itself into different dimensionally equivalent units:: >>> semimajor_axis.value array([0.002819 , 0.0044856 , 0.00715526, 0.01258513]) >>> semimajor_axis.units AU >>> print(semimajor_axis.to('km')) [ 421716.39764641 671036.20903964 1070411.66066813 1882708.6511216 ] km Next, we calculated the orbital period by translating the orbital period formula to Python and then converting the answer to the units we want in the end, days:: >>> period = 2*pi*(semimajor_axis**3/(G*Mjup))**0.5 >>> period unyt_array([ 152864.59689789, 306828.08975058, 618162.17963649, 1441952.18891597], 's') >>> period.to('d') unyt_array([ 1.76926617, 3.55125104, 7.15465486, 16.68926145], 'day') Note that we haven't added any conversion factors between different units, that's all handled internally by :mod:`unyt`. Also note how the :meth:`unyt_array.to ` method was able to automatically handle the conversion from seconds to days and how the shorthand ``"d"`` was automatically interpreted as ``"day"``. Arithmetic and units -------------------- The real power of working with :mod:`unyt` is its ability to add, subtract, multiply, and divide quantities and arrays with units in mathematical formulas while automatically handling unit conversions and detecting when you have made a mistake in your units in a mathematical formula. To see what I mean by that, let's take a look at the following examples:: >>> from unyt import cm, m, ft, yard >>> print(3.*cm + 4.*m - 5.*ft + 6.*yard) 799.24 cm Despite the fact that the four unit symbols used in the above example correspond to four different units, :mod:`unyt` is able to automatically convert the value of all three units into a common unit and return the result in those units. Note that for expressions where the return units are ambiguous, :mod:`unyt` always returns data in the units of the leftmost object in an expression:: >>> print(4*m + 3*cm - 5*ft + 6*yard) # doctest: +FLOAT_CMP 7.9924 m One can also form more complex units out of atomic unit symbols. For example, here is how we'd create an array with units of meters per second and print out the values in the array in miles per hour:: >>> from unyt import m, s >>> velocities = [20., 22., 25.]*m/s >>> print(velocities.to('mile/hr')) [44.73872584 49.21259843 55.9234073 ] mile/hr Similarly one can multiply two units together to create new compound units:: >>> from unyt import N, m >>> energy = 3*N * 4*m >>> print(energy) 12 N*m >>> print(energy.to('erg')) 120000000.0 erg In general, one can multiply or divide by an arbitrary rational power of a unit symbol. Most commonly this shows up in mathematical formulas in terms of square roots. For example, let's calculate the gravitational free-fall time for a person to fall from the surface of the Earth through to a hole dug all the way to the center of the Earth. It turns out that this time `is given by `_: .. math:: t_{\rm ff} = \sqrt{\frac{3\pi}{32 G \rho}} where :math:`\rho` is the average density of the Earth. >>> from unyt import G, Mearth, Rearth >>> from math import pi >>> import numpy as np ... >>> rho = Mearth / (4./3 * pi* Rearth**3) >>> print(rho.to('g/cm**3')) 5.581225129861083 g/cm**3 >>> tff = np.sqrt(3*pi/(32*G*rho)) >>> print(tff.to('min')) 14.820022043294829 min If you make a mistake by adding two things that have different dimensions, :mod:`unyt` will raise an error to let you know that you have a bug in your code: >>> from unyt import kg, m >>> 3*kg + 5*m # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ... unyt.exceptions.UnitOperationError: The operator for unyt_arrays with units "kg" (dimensions "(mass)") and "m" (dimensions "(length)") is not well defined. while this example is trivial when one writes more complicated formulae it can be easy to accidentally write expressions that are not dimensionally sound. Sometimes this can be annoying to deal with, particularly if one is mixing data that has units attached with data from some outside source with no units. To quickly patch over this lack of unit metadata (which could be applied by explicitly attaching units at I/O time), one can use the ``units`` attribute of the :class:`unyt.unyt_array ` class to quickly apply units to a scalar, list, or array: >>> from unyt import cm, s >>> velocities = [10, 20, 30] * cm/s >>> velocities + 12 # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ... unyt.exceptions.UnitOperationError: The operator for unyt_arrays with units "cm/s" (dimensions "(length)/(time)") and "dimensionless" (dimensions "1") is not well defined. >>> velocities + 12*velocities.units unyt_array([22, 32, 42], 'cm/s') Powers, Logarithms, Exponentials, and Trigonometric Functions ------------------------------------------------------------- The :mod:`unyt` library represents powers using standard Python syntax. This means you must use ``**`` and not ``^``, even when writing a unit as a string: >>> from unyt import kg, m >>> print((10.*kg/m**3).to('g/cm**3')) 0.01 g/cm**3 Formally it does not make sense to exponentiate, take the logarithm of, or apply a transcendental function to a quantity with units. However, the :mod:`unyt` library makes the practical affordance to allow this, simply ignoring the units present and returning a result without units. This makes it easy to work with data that has units both in linear space and in log space: >>> from unyt import g, cm >>> import numpy as np >>> print(np.log10(1e-23*g/cm**3)) -23.0 The one exception to this rule is for trigonometric functions applied to data with angular units: >>> from unyt import degree, radian >>> import numpy as np >>> np.sin(np.pi/4*radian) array(0.70710678) >>> np.sin(45.*degree) array(0.70710678) Logarithmic Quantities and Units ******************************** The logarithmic quantities level-of-power and level-of-field and the units neper and bel are supported. In the next example, we represent the power measurements, ``p``, as a logarithmic quantity at reference level, ``p_ref``, in the units decibel. >>> import numpy as np >>> from unyt import dB, mW >>> dB.dimensions (logarithmic) >>> p = [1, 100]*mW >>> p_ref = 1*mW >>> level_of_power = 10*np.log10(p/p_ref)*dB >>> level_of_power unyt_array([ 0., 20.], 'dB') You can convert the logarithmic quantity back to physical units through exponentiation, just remember to remove the units using the :meth:`unyt_array.v ` property. >>> 10**(level_of_power.v/10)*p_ref unyt_array([ 1., 100.], 'mW') Printing Units -------------- The print formatting of :class:`unyt_array ` can be controlled identically to NumPy arrays, using ``numpy.setprintoptions``: >>> import numpy as np >>> import unyt as u ... >>> with np.printoptions(precision=4): ... print([1.123456789]*u.km) [1.1235] km Print a :math:`\rm{\LaTeX}` representation of a set of units using the :meth:`unyt.unit_object.Unit.latex_representation` function or :attr:`unyt.unit_object.Unit.latex_repr` attribute: >>> from unyt import g, cm >>> (g/cm**3).units.latex_representation() '\\frac{\\rm{g}}{\\rm{cm}^{3}}' >>> (g/cm**3).units.latex_repr '\\frac{\\rm{g}}{\\rm{cm}^{3}}' Simplifying Units ----------------- Unit expressions can often be simplified to cancel pairs of factors with compatible dimensions. For example, we can form a unit with dimensions of length by dividing a unit with dimensions of length squared by another unit with dimensions of length:: >>> from unyt import m, cm >>> m**2/cm m**2/cm The :class:`Unit ` class has a :meth:`simplify() ` method that we can call to create a new unit object to that includes the dimensionless ratio ``m/cm`` as a constant coefficient:: >>> (m**2/cm).simplify() 100*m This will also work for units that are the reciprocals of each other, for example: >>> from unyt import s, Hz >>> (s*Hz).simplify() (dimensionless) Products and quotients of unit objects will not be simplified unless ``simplify()`` is called explicitly. However, products and quotients of arrays and quantities will be simplified to make interactive work more intuitive:: >>> from unyt import erg, minute, hour >>> power = [20, 40, 80] * erg / minute >>> elapsed_time = 3*hour >>> print(power*elapsed_time) [ 3600. 7200. 14400.] erg .. _checking_units: Checking Units -------------- If you write a function that accepts data with units as an argument or returns data with units, you can ensure the dimensional correctness of the inputs or outputs using the :meth:`@accepts ` and :meth:`@returns ` decorators:: >>> from unyt.dimensions import length, time >>> from unyt import accepts, returns >>> import unyt as u >>> @returns(length) ... @accepts(a=time, v=length/time) ... def foo(a, v): ... return a * v ... >>> res = foo(a=2*u.s, v=3*u.m/u.s) >>> print(res) 6 m :meth:`@accepts ` can specify the dimensions of any subset of inputs and :meth:`@returns ` must always describe all outputs. >>> @returns(length, length/time**2) ... @accepts(v=length/time) ... def bar(a, v): ... return a * v, v / a ... >>> res = bar(a=2*u.s, v=3*u.m/u.s) >>> print(*res) 6 m 1.5 m/s**2 .. note:: Using these decorators may incur some performance overhead, especially for small arrays. Temperature Units ----------------- The temperature unit degree Celsius has the symbol ``°C``, but since the degree character is an invalid Python identifier, :mod:`unyt` uses the symbol ``degC``. Printing a degree Celsius quantity will show the correct symbol. >>> from unyt import degC >>> Ta = 23*degC >>> print(Ta) 23 °C The ``degC`` symbol has alternative names ``degree_Celsius``, ``Celsius`` and ``°C``. >>> from unyt import degree_Celsius, unyt_array >>> Ta = 23*degree_Celsius >>> print(Ta) 23 °C >>> Ta = unyt_array([-40, 23, 70], '°C') >>> print(Ta) [-40 23 70] °C These comments also apply to degree Fahrenheit. Performing arithmetic with temperature quantities can be ambiguous. To clarify intent, :mod:`unyt` has the convenience units ``delta_degC`` and ``delta_degF``. >>> from unyt import degC, delta_degC, V >>> t1 = 23*degC >>> t2 = 1*delta_degC >>> print(t1 + t2) 24.0 °C >>> print(t2 - t1) -22.0 °C >>> tempco = 10.0*V/delta_degC >>> print(tempco*2*delta_degC) 20.0 V Unit Conversions and Unit Systems +++++++++++++++++++++++++++++++++ Converting Data to Arbitrary Units ---------------------------------- If you have some data that you want to convert to a different set of units and you know which units you would like to convert it to, you can make use of the :meth:`unyt_array.to ` function: >>> from unyt import mile >>> (1.0*mile).to('ft') unyt_quantity(5280., 'ft') If you try to convert to a unit with different dimensions, :mod:`unyt` will raise an error: >>> from unyt import mile >>> (1.0*mile).to('lb') # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ... unyt.exceptions.UnitConversionError: Cannot convert between 'mile' (dim '(length)') and 'lb' (dim '(mass)'). While we recommend using :meth:`unyt_array.to ` in most cases to convert arrays or quantities to different units, if you would like to explicitly emphasize that this operation has to do with units, we also provide the more verbose name :meth:`unyt_array.in_units ` which behaves identically to :meth:`unyt_array.to `. Converting Units In-Place ------------------------- The :meth:`unyt_array.to ` method makes a copy of the array data. For most cases this is fine, but when dealing with big arrays, or when performance is a concern, it sometimes is preferable to convert the data in an array in-place, without copying the data to a new array. This can be accomplished with the :meth:`unyt_array.convert_to_units ` function: >>> from unyt import mile >>> data = [1., 2., 3.]*mile >>> data unyt_array([1., 2., 3.], 'mile') >>> data.convert_to_units('km') >>> data unyt_array([1.609344, 3.218688, 4.828032], 'km') Converting to MKS and CGS Base Units ------------------------------------ If you don't necessarily know the units you want to convert data to ahead of time, it's often convenient to specify a unit system to convert to. The :class:`unyt_array ` has built-in conversion methods for the two most popular unit systems, MKS (meter kilogram second) and CGS (centimeter gram second). For CGS these are :meth:`unyt_array.in_cgs ` and :meth:`unyt_array.convert_to_cgs `. These functions create a new copy of an array in CGS units and convert an array in-place to CGS respectively. For MKS, there are the :meth:`unyt_array.in_mks ` and :meth:`unyt_array.convert_to_mks ` methods, which play analogous roles. See below for details on CGS and MKS electromagnetic units. .. _metal_conversions: Metallicity Unit Conversions ---------------------------- In the astrophysical context, "metals" are all of the elements that have atomic numbers greater than 2, i.e. everything heavier than helium. The "solar metallicity" is the mass fraction of metals in the solar atmosphere, and is used in a variety of contexts. Often, the metallicity of other astrophysical objects is expressed in terms of the solar metallicity, given by the unit :math:`Z_\odot`. The default mass fraction corresponding to :math:`Z_\odot` in :mod:`unyt` is 0.01295, corresponding to the value used in the `Cloudy Code `_. Metal mass fractions (by definition dimensionless) can be converted to :math:`Z_\odot` (and vice versa): >>> from unyt import dimensionless >>> M_Z = 0.0259*dimensionless >>> M_Z unyt_quantity(0.0259, 'dimensionless') >>> M_Z.convert_to_units("Z_sun") >>> M_Z unyt_quantity(2., 'Zsun') However, the value of this mass fraction conversion must be measured, and various estimates of it disagree somewhat. Different sub-disciplines of astronomy often use different estimates in the literature. :mod:`unyt` provides other metallicity unit conversions to several typical values in use. The available units (and their mass fraction conversion factors) are: * ``"Zsun_angr"``: 0.01937, from `Anders E. & Grevesse N. (1989, Geochimica et Cosmochimica Acta 53, 197) `_ * ``"Zsun_aspl"``: 0.01337, from `Asplund M., Grevesse N., Sauval A.J. & Scott P. (2009, ARAA, 47, 481) `_ * ``"Zsun_feld"``: 0.01909, from `Feldman U. (1992, Physica Scripta, 46, 202) `_ * ``"Zsun_lodd"``: 0.01321, from `Lodders, K (2003, ApJ 591, 1220) `_ These can be used in the same way as above: >>> from unyt import dimensionless >>> M_Z = 0.0259*dimensionless >>> M_Z unyt_quantity(0.0259, 'dimensionless') >>> M_Z.convert_to_units("Zsun_angr") >>> M_Z unyt_quantity(1.33711926, 'Zsun_angr') Other Unit Systems ------------------ The :mod:`unyt` library currently has built-in support for a number of unit systems, as detailed in the table below. Note that all unit systems currently use "radian" as the base angle unit. If a unit system in the table below has "Other Units" specified, this is a mapping from dimension to a unit name. These units override the unit system's default unit for that dimension. If no unit is explicitly specified of a dimension then the base unit for that dimension is calculated at runtime by combining the base units for the unit system into the appropriate dimension. +--------------+--------------------+--------------------------+ | Unit system | Base Units | Other Units | +==============+====================+==========================+ | cgs | cm, g, s | * Energy: erg | | | | * Specific Energy: erg/g | | | | * Pressure: dyne/cm**2 | | | | * Force: dyne | | | | * Power: erg/s | | | | * Magnetic Field: G | | | | * Charge: esu | | | | * Current: statA | +--------------+--------------------+--------------------------+ | mks | m, kg, s | * Energy: J | | | | * Specific Energy: J/kg | | | | * Pressure: Pa | | | | * Force: N | | | | * Power: W | | | | * Magnetic Field: T | | | | * Charge: C | +--------------+--------------------+--------------------------+ | imperial | ft, lb, s | * Energy: ft*lbf | | | | * Temperature: R | | | | * Pressure: lbf/ft**2 | | | | * Force: lbf | | | | * Power: hp | +--------------+--------------------+--------------------------+ | galactic | kpc, Msun, kyr | * Energy: kev | | | | * Magnetic Field: uG | +--------------+--------------------+--------------------------+ | solar | AU, Mearth, yr | | +--------------+--------------------+--------------------------+ Note that in MKS units the current unit, Ampere, is a base unit in the unit system. In CGS units the electromagnetic units like Gauss and statA are decomposable in terms of the base mass, length, and time units in the unit system. For this reason quantities defined in E&M units in CGS units are not readily convertible to MKS units and vice versa since the units are not dimensionally equivalent. The :mod:`unyt` library does have limited support for converting electromagnetic units between MKS and CGS, however only simple conversions of data with a single specific unit are supported and no conversions are allowed for complex combinations of units. For example converting between Gauss and Tesla is supported: >>> from unyt import T >>> (1.0*T).to('G') unyt_quantity(10000., 'G') But converting a more complicated compound unit will raise an error: >>> from unyt import C, T, V >>> (1.0*C*T*V).in_cgs() # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ... unyt.exceptions.UnitsNotReducible: The unit "C*T*V" (dimensions "(length)**2*(mass)**2/((current_mks)*(time)**4)") cannot be reduced to an expression within the cgs system of units. If you need to work with complex expressions involving electromagnetic units, we suggest sticking to either CGS or SI units for the full calculation. There is no general way to convert an arbitrary quantity between CGS and SI units if the quantity involves electromagnetic units. Instead, it is necessary to do the conversion on the equations under consideration, and then recompute the necessary quantity in the transformed set of equations. This requires understanding the context for a calculation, which unfortunately is beyond the scope of a library like :mod:`unyt`. You can convert data to a unit system :mod:`unyt` knows about using the :meth:`unyt_array.in_base ` and :meth:`unyt_array.convert_to_base ` methods: >>> from unyt import g, cm, horsepower >>> (1e-9*g/cm**2).in_base('galactic') unyt_quantity(4.78843804, 'Msun/kpc**2') >>> data = [100., 500., 700.]*horsepower >>> data unyt_array([100., 500., 700.], 'hp') >>> data.convert_to_base('mks') >>> data unyt_array([ 74569.98715823, 372849.93579114, 521989.91010759], 'W') Defining and Using New Unit Systems *********************************** To define a new custom unit system, one need only create a new instance of the :class:`unyt.UnitSystem ` class. The class initializer accepts a set of base units to define the unit system. If you would like to additionally customize any derived units in the unit system, you can do this using item setting. As an example, let's define an atomic unit system based on typical scales for atoms and molecules: >>> from unyt import UnitSystem >>> atomic_unit_system = UnitSystem('atomic', 'nm', 'mp', 'fs', 'nK', 'rad') >>> atomic_unit_system['energy'] = 'eV' >>> atomic_unit_system atomic Unit System Base Units: length: nm mass: mp time: fs temperature: nK angle: rad current_mks: A luminous_intensity: cd logarithmic: Np Other Units: energy: eV >>> print(atomic_unit_system) atomic >>> atomic_unit_system['number_density'] nm**(-3) >>> atomic_unit_system['angular_momentum'] mp*nm**2/fs It is also legal to define a unit system using :class:`unyt.Unit ` instances: >>> from unyt.unit_symbols import Msun, second, megaparsec >>> UnitSystem('cosmological', megaparsec, Msun, second) cosmological Unit System Base Units: length: Mpc mass: Msun time: s temperature: K angle: rad current_mks: A luminous_intensity: cd logarithmic: Np Other Units: Or with a quantity: >>> UnitSystem('quasmological', 3*megaparsec, .8*Msun, 42*second) quasmological Unit System Base Units: length: 3*Mpc mass: 0.8*Msun time: 42*s temperature: K angle: rad current_mks: A luminous_intensity: cd logarithmic: Np Other Units: Once you have defined a new unit system that will register the new system with a global registry of unit systems known to the :mod:`unyt` library. That means you will immediately be able to use it just like the built-in unit systems: >>> from unyt import W >>> (1.0*W).in_base('atomic') unyt_quantity(0.59746607, 'mp*nm**2/fs**3') If you would like your unit system to include an MKS current unit (e.g. something that is directly convertible to the MKS Ampere unit), then specify a ``current_mks_unit`` in the :class:`UnitSystem ` initializer. Equivalencies +++++++++++++ An equivalency is a way to define a mapping to convert from one unit to another even if the two units are not dimensionally equivalent. This usually involves some sort of shorthand or heuristic understanding of the problem under consideration. Only use one of these equivalencies if it makes sense to use it for the problem you are working on. The :mod:`unyt` library implements the following equivalencies: * ``"thermal"``: conversions between temperature and energy (:math:`E = k_BT`) * ``"spectral"``: conversions between wavelength, spatial frequency, frequency, and energy for photons (:math:`E = h\nu = hc/\lambda`, :math:`c = \lambda\nu`) * ``"mass_energy"``: conversions between mass and energy (:math:`E = mc^2`) * ``"lorentz"``: conversions between velocity and Lorentz factor (:math:`\gamma = 1/\sqrt{1-(v/c)^2}`) * ``"schwarzschild"``: conversions between mass and Schwarzschild radius (:math:`R_S = 2GM/c^2`) * ``"compton"``: conversions between mass and Compton wavelength (:math:`\lambda = h/mc`) You can convert data to a specific set of units via an equivalency appropriate for the units of the data. To see the equivalencies that are available for an array, use the :meth:`unit_array.list_equivalencies ` method: >>> from unyt import gram, km >>> gram.list_equivalencies() mass_energy: mass <-> energy schwarzschild: mass <-> length compton: mass <-> length >>> km.list_equivalencies() spectral: length <-> spatial_frequency <-> frequency <-> energy schwarzschild: mass <-> length compton: mass <-> length All of the unit conversion methods described above have an ``equivalence`` keyword argument that allows one to optionally specify an equivalence to use for the unit conversion operation. For example, let's use the ``schwarzschild`` equivalence to calculate the mass of a black hole with a radius of one AU: >>> from unyt import AU >>> (1.0*AU).to('Msun', equivalence='schwarzschild') unyt_quantity(50656851.7815179, 'Msun') Both the methods that convert data in-place and the ones that return a copy support optionally specifying equivalence. In addition to the methods described above, :mod:`unyt` also supplies two more conversion methods that *require* an equivalence to be specified: :meth:`unyt_array.to_equivalent ` and :meth:`unyt_array.convert_to_equivalent `. These are identical to their counterparts described above, except that equivalence is a required argument to the function rather than an optional keyword argument. Use these functions when you want to emphasize that an equivalence is being used. If the equivalence has optional keyword arguments, these can be passed to the unit conversion function. For example, here's an example where we specify a custom mean molecular weight (``mu``) for the ``number_density`` equivalence: >>> from unyt import g, cm >>> rho = 1e-23 * g/cm**3 >>> rho.to('cm**-3', equivalence='number_density', mu=1.4) unyt_quantity(4.26761476, 'cm**(-3)') For full API documentation and an autogenerated listing of the built-in equivalencies in :mod:`unyt` as well as a short usage example for each, see the :mod:`unyt.equivalencies` API listing. Dealing with code that doesn't use :mod:`unyt` ++++++++++++++++++++++++++++++++++++++++++++++ Optimally, a function will work the same irrespective of whether the data passed in has units attached or not: >>> from unyt import cm >>> def square(x): ... return x**2 >>> print(square(3.)) 9.0 >>> print(square(3.*cm)) 9.0 cm**2 However in the real world that is not always the case. In this section we describe strategies for dealing with that situation. Stripping units off of data --------------------------- The :mod:`unyt` library provides a number of ways to convert :class:`unyt_quantity ` instances into floats and :class:`unyt_array ` instances into NumPy arrays. These methods either return a copy of the data as a NumPy array or return a view onto the underlying array data owned by a :class:`unyt_array ` instance. To obtain a new array containing a copy of the original data, use either the :meth:`unyt_array.to_value ` function or the :attr:`unyt_array.value ` or :attr:`unyt_array.v ` properties. All of these are equivalent to passing a :class:`unyt_array ` to the ``numpy.array()`` function: >>> from unyt import g >>> import numpy as np >>> data = [1., 2., 3.]*g >>> data unyt_array([1., 2., 3.], 'g') >>> np.array(data) array([1., 2., 3.]) >>> data.to_value('kg') array([0.001, 0.002, 0.003]) >>> data.value array([1., 2., 3.]) >>> data.v array([1., 2., 3.]) Similarly, to obtain a ndarray containing a view of the data in the original array, use either the :attr:`unyt_array.ndview ` property (or :attr:`unyt_array.d ` for shorts): >>> data.view(np.ndarray) array([1., 2., 3.]) >>> data.ndview array([1., 2., 3.]) >>> data.d array([1., 2., 3.]) Applying units to data ---------------------- .. note:: A NumPy array that shares memory with another NumPy array points to the array that owns the data with the ``base`` attribute. If ``arr1.base is arr2`` is ``True`` then ``arr1`` is a view onto ``arr2`` and ``arr2.base`` will be ``None``. When a :class:`unyt_array ` instance is created from a NumPy array and a :class:`Unit `, data from the NumPy array will be copied: >>> from unyt import g >>> data = np.random.random((100, 100)) >>> data_with_units = data*g >>> data_with_units.base is data False If you would like to create a view rather than a copy, you can apply units like this: >>> from unyt import unyt_array >>> data_with_units = unyt_array(data, g) >>> data_with_units.base is data True Any set of units can be used for either of these operations. For example, if you already have an existing array, you could do this to create a new array with the same units: >>> more_data = [4, 5, 6]*data_with_units.units >>> more_data unyt_array([4, 5, 6], 'g') Working with code that uses ``astropy.units`` --------------------------------------------- The :mod:`unyt` library can convert data contained inside of an Astropy ``Quantity`` instance. It can also produce a ``Quantity`` from an existing :class:`unyt_array ` instance. To convert data from ``astropy.units`` to :mod:`unyt` use the :func:`unyt_array.from_astropy ` function: >>> from astropy.units import km >>> from unyt import unyt_quantity >>> unyt_quantity.from_astropy(km) unyt_quantity(1., 'km') >>> a = [1, 2, 3]*km >>> a >>> unyt_array.from_astropy(a) unyt_array([1., 2., 3.], 'km') To convert data *to* ``astropy.units`` use the :meth:`unyt_array.to_astropy ` method: >>> from unyt import g, cm >>> data = [3, 4, 5]*g/cm**3 >>> data.to_astropy() >>> (4*cm).to_astropy() Working with code that uses ``Pint`` ------------------------------------ The :mod:`unyt` library can also convert data contained in ``Pint`` ``Quantity`` instances. To convert data from ``Pint`` to :mod:`unyt`, use the :func:`unyt_array.from_pint ` function: >>> from pint import UnitRegistry >>> import numpy as np >>> ureg = UnitRegistry() >>> a = np.arange(4) >>> b = ureg.Quantity(a, "erg/cm**3") >>> b >>> c = unyt_array.from_pint(b) >>> c unyt_array([0, 1, 2, 3], 'erg/cm**3') And to convert data contained in a :class:`unyt_array ` instance, use the :meth:`unyt_array.to_pint ` method: >>> from unyt import cm, s >>> a = 4*cm**2/s >>> print(a) 4 cm**2/s >>> a.to_pint() >>> b = [1, 2, 3]*cm >>> b.to_pint() Reading quantities from text ---------------------------- Quantities can also be parsed from strings with the :func:`unyt_quantity.from_string ` function: >>> from unyt import unyt_quantity >>> unyt_quantity.from_string("1 cm") unyt_quantity(1, 'cm') >>> unyt_quantity.from_string("1e3 Msun") unyt_quantity(1000., 'Msun') >>> unyt_quantity.from_string("1e-3 g/cm**3") unyt_quantity(0.001, 'g/cm**3') This method is helpful to read data from text files, for instance configuration files. It is intended to be as flexible as possible on the string format, though it requires that the numerical value and the unit name be separated with some kind of whitespace. User-Defined Units ++++++++++++++++++ Often it is convenient to define new custom units. This can happen when you need to make use of a unit that the :mod:`unyt` library does not have a definition for already. It can also happen when dealing with data that uses a custom unit system or when writing software that needs to deal with such data in a flexible way, particularly when the units might change from dataset to dataset. This comes up often when modeling a physical system since it is often convenient to rescale data from a physical unit system to an internal "code" unit system in which the values of the variables under consideration are close to unity. This approach can help minimize floating point round-off error but is often done for convenience or to non-dimensionalize the problem under consideration. The :mod:`unyt` library provides two approaches for dealing with this problem. For more toy one-off use-cases, we suggest using :func:`unyt.define_unit ` which allows defining a new unit name in the global, default unit system that :mod:`unyt` ships with by default. This function makes it possible to easily define a new unit that is unknown to the :mod:`unyt` library: >>> import unyt as u >>> ninety_pounds = 90.0*u.lb >>> one_pound = 1.0*u.lb >>> u.define_unit("firkin", ninety_pounds) >>> print((3*u.firkin)/one_pound) 270.0 dimensionless This is primarily useful for one-off definitions of units that the :mod:`unyt` library does not already have predefined. For more complex uses cases that need more flexibility, it is possible to use a custom unit system by ensuring that the data you are working with makes use of a :class:`UnitRegistry ` customized for your use case, as described below. Dealing with data types +++++++++++++++++++++++ The :mod:`unyt` library supports creating :class:`unyt.unyt_array ` and :class:`unyt.unyt_quantity ` instances with arbitrary integer or floating point data types: >>> import numpy as np >>> from unyt import km ... >>> int_data = [1, 2, 3]*km >>> int_data unyt_array([1, 2, 3], 'km') >>> float32_data = np.array([1, 2, 3], dtype='float32')*km >>> float32_data unyt_array([1., 2., 3.], dtype=float32, units='km') The ``dtype`` of a ``unyt_array`` instance created by multiplying an iterable by a unit will be the same as passing the iterable to ``np.array()``. You can also manually specify the ``dtype`` by calling ``np.array()`` yourself or by using the ``unyt_array`` initializer directly: >>> np.array([1, 2, 3], dtype='float64')*km unyt_array([1., 2., 3.], 'km') Operations that convert an integer array to a new unit will convert the array to the floating point type with an equivalent size. For example, Calling ``in_units`` on a 32 bit integer array with units of kilometers will return a 32 bit floating point array. >>> data = np.array([1, 2, 3], dtype='int32')*km >>> data.in_units('mile') unyt_array([0.6213712, 1.2427424, 1.8641136], dtype=float32, units='mile') In-place operations will also mutate the dtype from float to integer in these cases, again in a way that will preserve the byte size of the data. >>> data.convert_to_units('mile') >>> data unyt_array([0.6213712, 1.2427424, 1.8641136], dtype=float32, units='mile') It is possible that arrays containing large integers (16777217 for 32 bit and 9007199254740993 for 64 bit) will lose precision when converting data to a different unit. In these cases a warning message will be printed. Integrating :mod:`unyt` Into a Python Library +++++++++++++++++++++++++++++++++++++++++++++ The :mod:`unyt` library began life as the unit system for the ``yt`` data analysis and visualization package, in the form of ``yt.units``. In this role, :mod:`unyt` was deeply integrated into a larger Python library. Due to these origins, it is straightforward to build applications that ensure unit consistency by making use of :mod:`unyt`. Below we discuss a few topics that most often come up when integrating :mod:`unyt` into a new or existing Python library. Unit registries --------------- It is also possible to define a custom database of units completely independent of the global default unit database exposed by the :mod:`unyt` namespace or to create namespaces in your own package that expose listings of units. In these cases it becomes important to understand how ``unyt`` stores unit metadata in an internal database, how to add custom entries to the database, how to modify them, and how to persist custom units. In practice, the unit metadata for a unit object is contained in an instance of the :class:`UnitRegistry ` class. Every :class:`Unit ` instance contains a reference to a :class:`UnitRegistry ` instance: >>> from unyt import g >>> g.registry # doctest: +ELLIPSIS All the unit objects in the :mod:`unyt` namespace make use of the default unit registry, importable as :data:`unyt.unit_registry.default_unit_registry`. This registry object contains all of the real-world physical units that the :mod:`unyt` library ships with out of the box. The unit registry itself contains a look-up table that maps from unit names to the metadata necessary to construct a unit. Note that the unit registry only contains metadata for "base" units, and not, for example, SI-prefixed units like centimeter of kilogram, it will instead only contain entries for meter and gram. Sometimes it is convenient to create a unit registry containing new units that are not available in the default unit registry. A common example would be adding a ``code_length`` unit that corresponds to the scaling to from physical lengths to an internal unit system. In practice, this value is arbitrary, but will be fixed for a given problem. Let's create a unit registry and a custom ``"code_length"`` unit to it, and then create a ``"code_length"`` unit and a quantity with units of ``"code_length"``. For the sake of example, let's set the value of ``"code_length"`` equal to 10 meters. >>> from unyt import UnitRegistry, Unit >>> from unyt.dimensions import length >>> reg = UnitRegistry() >>> reg.add("code_length", base_value=10.0, dimensions=length, ... tex_repr=r"\rm{Code Length}") >>> 'code_length' in reg True >>> u = Unit('code_length', registry=reg) >>> data = 3*u >>> print(data) 3 code_length As you can see, you can test whether a unit name is in a registry using the Python ``in`` operator. In an application that depends on ``unyt``, it is often convenient to define methods or functions to automatically attach the correct unit registry to unit objects associated with an object. For example, consider a ``Simulation`` class. Let's give this class two methods named ``array`` and ``quantity`` to create new :mod:`unyt_array ` and :mod:`unyt_quantity ` instances, respectively: >>> class Simulation: ... def __init__(self, registry): ... self.registry = registry ... ... def array(self, value, units): ... return unyt_array(value, units, registry=self.registry) ... ... def quantity(self, value, units): ... return unyt_quantity(value, units, registry=self.registry) ... >>> registry = UnitRegistry() >>> registry.add("code_length", base_value=3.2, dimensions=length) >>> s = Simulation(registry) >>> s.array([1, 2, 3], 'code_length') unyt_array([1, 2, 3], 'code_length') We can create an array with ``"code_length"`` here because ``s.registry``, the ``UnitRegistry`` instance associated with our Simulation instance has a ``"code_length"`` unit defined. As for arrays with different units, for operations between arrays created with different unit registries, the result of the operation will use the same unit registry as the leftmost unit. This can sometimes lead to surprising behaviors where data will seem to "forget" about custom units. In this situation it is important to make sure ahead of time that all data are created with units using the same unit registry. If for some reason that is not possible (for example, when comparing data from two different simulations with different internal units), then care must be taken when working with custom units. To avoid these sorts of ambiguities it is best to do work in physical units as much as possible. When writing tests, it is convenient to use :mod:`unyt.testing`. In particular, :func:`assert_allclose_units ` can be used to check for floating-point equality. >>> from unyt import assert_allclose_units, m >>> import numpy as np >>> actual = [1e-5, 1e-3, 1e-1] * m >>> desired = actual.to("cm") >>> assert_allclose_units(actual, desired) Custom Unit Systems ------------------- By default :mod:`unyt` uses the SI MKS unit system. However, libraries can create a unit registry using another unit system to expose that unit system to their users by creating a unit registry with a custom unit system. For example, to make CGS units the default unit for all operations, one might use a CGS ``UnitRegistry`` to instancitate the ``Simulation`` class like so:: >>> class Simulation: ... def __init__(self, registry): ... self.registry = registry ... ... def array(self, value, units): ... return unyt_array(value, units, registry=self.registry) ... ... def quantity(self, value, units): ... return unyt_quantity(value, units, registry=self.registry) ... >>> registry = UnitRegistry(unit_system='cgs') >>> registry.add("code_length", base_value=3.2, dimensions=length) >>> s_cgs = Simulation(registry) >>> data = s_cgs.array([1, 2, 3], 'code_length') >>> data unyt_array([1, 2, 3], 'code_length') >>> data.in_base() unyt_array([320., 640., 960.], 'cm') Note that the ``base_value`` parameter of :meth:`UnitRegistry.add ` must be specified in MKS units. All unit data are stored internally in :mod:`unyt` in MKS units. You can also use two helper functions provided by :mod:`unyt`, :func:`unyt.unit_systems.add_constants` and :func:`unyt.unit_systems.add_symbols`, to populate a namespace with a set of predefined unit symbols or physical constants. This namespace could correspond to the names importable from a module or the names of attributes of an object, or any other generic dictionary. One example of doing this would be to make a ``UnitContainer`` class that contains units that are compatible with the ``Simulation`` instance we named ``s_cgs`` in the example above:: >>> from unyt.unit_systems import add_symbols >>> class UnitContainer: ... def __init__(self, registry): ... add_symbols(vars(self), registry) >>> units = UnitContainer(s_cgs.registry) >>> units.kilometer km >>> units.code_length code_length >>> (10.0 * units.kilometer).in_base() unyt_quantity(1000000., 'cm') >>> (10.0 * units.kilometer).in_units('code_length') unyt_quantity(3125., 'code_length') Note how the result of the call to ``in_base()`` comes out in centimeters because of the the CGS unit system used by the :class:`UnitRegistry ` instance associated with the ``Simulation``. Writing Data with Units to Disk ------------------------------- The :mod:`unyt` library has support for serializing data stored in a :class:`unyt.unyt_array ` instance to HDF5 files, text files, and via the Python pickle protocol. We give brief examples below, but first describe how to handle saving units manually as string metadata. Dealing with units as strings ***************************** If all you want to do is save data to disk in a physical unit or you are working in a physical unit system, then you only need to save the unit name as a string and treat the array data you are trying to save as a regular NumPy array, as in this example: >>> import numpy as np >>> import os >>> from unyt import cm ... >>> data = [1, 2, 3]*cm >>> np.save('my_data_cm.npy', data) >>> new_data = np.load('my_data_cm.npy') >>> new_data array([1, 2, 3]) >>> new_data_with_units = new_data * cm >>> os.remove('my_data_cm.npy') Of course in this example using ``numpy.save`` we need to hard-code the units because the ``.npy`` format doesn't have a way to store metadata along with the array data. We could have stored metadata in a sidecar file, but this is much more natural with ``hdf5`` via ``h5py``: >>> import h5py >>> import os >>> from unyt import cm, unyt_array ... >>> data = [1, 2, 3]*cm ... >>> with h5py.File('my_data.h5', 'a') as f: ... d = f.create_dataset('my_data', data=data) ... f['my_data'].attrs['units'] = str(data.units) ... >>> with h5py.File('my_data.h5', 'r') as f: ... new_data = f['my_data'][:] ... unit_str = f['my_data'].attrs['units'] ... >>> new_data = unyt_array(new_data, unit_str) >>> new_data unyt_array([1, 2, 3], 'cm') >>> os.remove('my_data.h5') HDF5 Files ********** The :mod:`unyt` library provides a hook for writing data both to a new HDF5 file and an existing file and then subsequently reading that data back in to restore the array. This works via the :meth:`unyt_array.write_hdf5 ` and :meth:`unyt_array.from_hdf5 ` methods. The simplest way to use these functions is to write data to a file that does not exist yet: >>> from unyt import cm, unyt_array >>> import os >>> data = [1, 2, 3]*cm >>> data.write_hdf5('my_data.h5') ... >>> unyt_array.from_hdf5('my_data.h5') unyt_array([1, 2, 3], 'cm') >>> os.remove('my_data.h5') By default the data will be written to the root group of the HDF5 file in a dataset named ``'array_data'``. You can also specify that you would like the data to be saved in a particular group or dataset in the file: >>> data.write_hdf5('my_data.h5', dataset_name='my_special_data', ... group_name='my_special_group') >>> unyt_array.from_hdf5('my_data.h5', dataset_name='my_special_data', ... group_name='my_special_group') unyt_array([1, 2, 3], 'cm') >>> os.remove('my_data.h5') You can even write to files and groups that already exist: >>> with h5py.File('my_data.h5', 'w') as f: ... g = f.create_group('my_custom_group') ... >>> data.write_hdf5('my_data.h5', group_name='my_custom_group') ... >>> with h5py.File('my_data.h5') as f: ... print(f['my_custom_group/array_data'][:]) [1 2 3] >>> os.remove('my_data.h5') If the dataset that you would like to write to already exists, :mod:`unyt` will clobber that dataset. Note that with this method of saving data to HDF5 files, the :class:`unyt.UnitRegistry ` instance associated with the units of the data will be saved in the HDF5 file. This means that if you create custom units and save a unit to disk, you will be able to convert data to those custom units even if you are dealing with those units later after restoring the data from disk. Here is a short example illustrating this: >>> import os >>> from unyt import UnitRegistry >>> reg = UnitRegistry() >>> reg.add("code_length", base_value=10.0, dimensions=length, ... tex_repr=r"\rm{Code Length}") >>> u = Unit('cm', registry=reg) >>> data = [1., 2., 3.]*u >>> data.write_hdf5('my_code_data.h5') >>> read_data = data.from_hdf5('my_code_data.h5') >>> read_data unyt_array([1., 2., 3.], 'cm') >>> read_data.to('code_length') unyt_array([0.001, 0.002, 0.003], 'code_length') >>> os.remove('my_code_data.h5') Text Files ********** The :mod:`unyt` library also has wrappers around ``numpy.savetxt`` and ``numpy.loadtxt`` for saving data as an ASCII table. For example: >>> import unyt as u >>> import os >>> data = [[1, 2, 3]*u.cm, [4, 5, 6]*u.kg] >>> u.savetxt('my_data.txt', data) >>> with open('my_data.txt') as f: ... print("".join(f.readlines())) # doctest: +NORMALIZE_WHITESPACE # Units # cm kg 1.000000000000000000e+00 4.000000000000000000e+00 2.000000000000000000e+00 5.000000000000000000e+00 3.000000000000000000e+00 6.000000000000000000e+00 >>> os.remove('my_data.txt') Pickles ******* .. note:: Pickle files are great for serializing data to disk or over a network for internal usage by a package. They are ill-suited for long-term data storage or for communicating data between different Python installations. If you want to use pickle files for data storage, consider using a format designed for long-term data storage, like HDF5. Both :class:`unyt.unyt_array ` and :class:`unyt.Unit ` instances can be saved using the pickle protocol: >>> from unyt import kg >>> import pickle >>> import numpy as np ... >>> assert kg == pickle.loads(pickle.dumps(kg)) >>> data = [1, 2, 3]*kg >>> reloaded_data = pickle.loads(pickle.dumps(data)) >>> assert np.array_equal(data.value, reloaded_data.value) >>> assert data.units == reloaded_data.units As for HDF5 data, the unit registry associated with the unit object is saved to the pickle. If you have custom units defined, the reloaded data will know about your custom unit and be able to convert data to and from the custom unit. Handling errors from :mod:`unyt` -------------------------------- :mod:`unyt` sometimes raises exceptions with unique exception types, e.g., to signal invalid operations, like summation of quantities with different dimensions. It is possible to catch any exceptions from unyt as >>> from unyt import cm, s >>> from unyt.exceptions import UnytError >>> a = 1 * cm >>> b = 1 / s >>> try: ... a + b ... except UnytError: ... pass However, it is in general advised to only catch specific exceptions types that are known-possible outcomes. All custom exceptions types live in the :mod:`unyt.exceptions` module and may be imported from there. Performance Considerations -------------------------- Tracking units in an application will inevitably add overhead. Judging where overhead is important or not depends on what real-world workflows look like. Ultimately, profiling code is the best way to find out whether handling units is a performance bottleneck. Optimally handling units will be amortized over the cost of an operation. While this is true for large arrays (bigger than about one million elements), this is *not* true for small arrays that contain only a few elements. In addition, it is sometimes easy to write code that needlessly checks unit consistency when we know ahead of time that data are already in the correct units. Often we can get away with only checking unit consistency once and then stripping units after that. A good rule of thumb is that units should be checked on input, stripped off of data during a calculation, and then re-applied when returning data from a function. In other words, apply or check units at interfaces, but during an internal calculation it is often worth stripping units, especially if the calculation involves many operations on arrays with only a few elements. :class:`unyt_array.name ` attribute +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ The unyt_array has a name attribute for use in structured-data applications or similar applications that require labeled data. For example, Numpy has record arrays and when constructed as shown below, it is possible to retain the units while taking advantage of the labeled record fields. >>> import numpy as np >>> from unyt import unyt_array >>> x = unyt_array([0, 1, 2], "s", name="time") >>> y = unyt_array([3, 4, 5], "m", name="distance") >>> data = (x, y) >>> dt = [(a.name, "O") for a in data] >>> data_points = np.array(list(zip(*data)), dtype=dt).view(np.recarray) >>> data_points[0].time unyt_quantity(0, 's') >>> data_points[0].distance unyt_quantity(3, 'm') .. note:: The name attribute does not propagate through mathematical operations. Other operations such as indexing, copying, and unit conversion, will preserve the name attribute where the semantic meaning of the quantity remains the same. Plotting with Matplotlib ++++++++++++++++++++++++ .. note:: - This is an experimental feature. Please report issues. - This feature works in Matplotlib versions 2.2.4 and above - Matplotlib is not a dependency of Unyt Matplotlib is Unyt aware. After enabling support in :mod:`unyt` using the :class:`unyt.matplotlib_support ` context manager, Matplotlib will label the x and y axes with the units. >>> import matplotlib.pyplot as plt >>> from unyt import matplotlib_support, s, K >>> x = [0.0, 60.0, 120.0]*s >>> y = [298.15, 308.15, 318.15]*K >>> with matplotlib_support: ... plt.plot(x, y) ... plt.show() [] .. image:: _static/mpl_fig1.png You can change the plotted units without affecting the original data. >>> with matplotlib_support: ... plt.plot(x, y, xunits="min", yunits=("J", "thermal")) ... plt.show() [] .. image:: _static/mpl_fig2.png It is also possible to set the label style; the choices ``"()"``, ``"[]"`` and ``"/"`` are supported. >>> matplotlib_support.label_style = "[]" >>> with matplotlib_support: ... plt.plot(x, y) ... plt.show() [] .. image:: _static/mpl_fig3.png The axis label will include the unyt_array.name attribute if set. >>> x.name = "Time" >>> y.name = "Temperature" >>> with matplotlib_support: ... plt.plot(x, y) ... plt.show() [] .. image:: _static/mpl_fig4.png With label_style set to "/", the axis label conforms to the SI standard where the axis label is a mathematical expression rather than a caption. In this case, set the unyt_array.name attribute to the latex expression for the physical quantity symbol. >>> x.name = "$t$" >>> y.name = "" >>> matplotlib_support.label_style = "/" >>> with matplotlib_support: ... plt.plot(x, y) ... plt.show() [] .. image:: _static/mpl_fig5.png There are three ways to use the context manager: 1. As a conventional context manager in a ``with`` statement as shown above 2. As a feature toggle in an interactive session: >>> import matplotlib.pyplot as plt >>> from unyt import s, K, matplotlib_support >>> matplotlib_support.enable() >>> plt.plot([0, 1, 2]*s, [3, 4, 5]*K) [] >>> plt.show() >>> matplotlib_support.disable() 3. As an enable for a complete session: >>> import unyt >>> unyt.matplotlib_support() >>> import matplotlib.pyplot as plt .. _dask: Working with Dask arrays ++++++++++++++++++++++++ :mod:`unyt` provides the ability to wrap dask arrays with :mod:`unyt` behavior. The main access point is the :mod:`unyt.dask_array.unyt_from_dask` function, which allows you to build a :mod:`unyt_dask_array` from a plain dask array analogous to the creation of a :mod:`unyt_array` from a plain :mod:`numpy.ndarray`: >>> from unyt import dask_array as uda >>> import dask.array as da >>> x = da.arange(10000, chunks=(1000,)) >>> x_da = uda.unyt_from_dask(x, 'm') Methods that hang off of a :mod:`unyt_dask_array` object and operations on :mod:`unyt_dask_array` objects will generally preserve units: >>> x_da.sum().compute() unyt_quantity(49995000, 'm') >>> (x_da[:5000] * x_da[5000:]).compute()[:5] unyt_array([ 0, 5001, 10004, 15009, 20016], 'm**2') One important caveat is that using Dask array functions may strip units: >>> da.sum(x_da).compute() np.int64(49995000) For simple reductions, you can use the :mod:`reduce_with_units` function: >>> result = uda.reduce_with_units(da.sum, x_da) >>> result.compute() unyt_quantity(49995000, 'm') But more complex operations may require more careful management of units. Note that :mod:`reduce_with_units` will accept any of the positional or keyword arguments for the array function: >>> import numpy as np >>> x = da.ones((10000, 3), chunks=(1000, 1000)) >>> x[:,0] = np.nan >>> x_da = uda.unyt_from_dask(x, 'm') >>> result = uda.reduce_with_units(da.nansum, x_da, axis=1) >>> result.compute()[:5] unyt_array([2., 2., 2., 2., 2.], 'm') As a final note: the initial Dask array provided to :mod:`dask_array.unyt_from_dask` can be constructed in any of the usual ways of constructing Dask arrays -- from :mod:`NumPy`-like array instantiation as in the above examples to reading from file or delayed operations. For more on creating arrays, check out the `Dask documentation `_. unyt-3.2.0/paper/000077500000000000000000000000001526544257300136375ustar00rootroot00000000000000unyt-3.2.0/paper/apply.png000066400000000000000000002041011526544257300154700ustar00rootroot00000000000000‰PNG  IHDR€ ¿‘^ÙsBIT|dˆ pHYs.#.#x¥?v9tEXtSoftwarematplotlib version 2.2.2, http://matplotlib.org/†ŸÔ IDATxœìÝyt•Õ¹?ð'!aÀ"ŠÀAJ�gE�:ö:ÕŠ¨Å¢Ö +jÑ×á^-^T¨Š8+GœD¯BÕ:CQT@@f2¼¿?\œ'' Nrø|ÖÊZÙûÝïÞÏɉiõ{ö~ó’$I€/?Û°n€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€êXYYYL˜0!¾ýöÛl—ä80P+I’ÄV[mƒ Êv)õÚ7ß|=ôPœp Ѿ}ûØwß}ãÃ?ÌvY´•+WÆþð‡Øh£�¢[·n1f̘l—D[¼xqŒ;6Ž;î¸øÇ?þ‘írÖ‹‚l4,Ï?ÿ||òÉ'ñå—_ÆÿüÏÿDëÖ­³]R½ñä“OÆøñãcüøññþûïG’$Ù.‰Õ :4n¾ù戈øþûï£ÿþ±ÓN;E×®]³\ëÒÔ©Sã¹çž‹§Ÿ~:&L˜+V¬ˆˆˆƒ:(Ë•¬` Vn¸á†ˆˆX²dIŒ92.¼ðÂ,WT¼ñÆÑ¢E‹Øe—]âã�?ŽeË–e»$V3qâÄ´öÊ•+ãÝwß爕+WF×®]ãË/¿Ìv)Yåh Æf̘Ï<óLª}ã�7FYYY+ª_þö·¿ÅW\#GŽŒ;ï¼3ÛåPÁÎ;ïœÖ.,,ŒvØ!KÕ°®5nÜ8fΜ‹/ŽçŸ>š6mší’²B ÔØˆ#¢¼¼<Õž5kVŒ;6‹Õ_p@¶K ‚ÁƒÇ€¢¸¸8ºví÷Ýw_tëÖ­VsLž<¹Žª«[ µîÚ*((ˆæÍ›Çûî»o¶ËÉPVVüq¶Ërœ¨‘¥K—Vº«uøðáY¨¦þkÓ¦M¶K ‚¢¢¢¸ûî»cáÂ…1}úôèׯ_­îŸ5kVôéÓ§Žª«;O=õTœ}öÙÙ.c½k×®]¶KÈpÉ%—ÄÃ?œí2€'jä¾ûî‹ dôOœ81Þ|óÍ,TT¿åçû×­\RZZÇ{lÌŸ??Û¥ÔʬY³bÀ€äQíyyyÙ.!͸qãâšk®I;E .ø/@�Üxã�qÈ!‡d\6lØú.Ö«ÁƒÇĉ³]F­”””Ä1Çß}÷]¶KÙà}þùçq 'D’$Ù.Ø€€5zå•WâÃ?ŒV­ZÅ<�;wN»>f̘øâ‹/²TÔ­Q£FÅu×]—í2jí´ÓN‹I“&e»Œ Þ¢E‹â°ÃÄë�X£U» ÅÅÅ1pàÀ´ë¥¥¥©1�Kž|òÉ8í´Ó²]F­]rÉ%1jÔ¨l—±Á[ºtiyä‘ñá‡f»`R�í€úmöìÙñØc�EDÄþð‡ˆˆ8å”Sâ²Ë.‹+V¤ÆÝvÛmñ_ÿõ_QTT´NÖ]¼xq<úè£ñë_ÿ:Z¶l™ê/--�×^{-¦M›ß}÷]l¶Ùf±çž{Æ[lQ/× vÊÊÊâ…^ˆ6mÚÄî»ïžvmΜ9ñÒK/ÅìÙ³£eË–±ÓN;Åž{îù“žõZVV�5ªôÚÈ‘#ãÌ3ÏŒ’’’µž?"bÉ’%ñÆoÄÔ©Scá…ѬY³èÞ½{ôéÓ'í÷n]X¾|yœ{î¹qË-·¬ÓyçÎ�“&MŠyóæÅwß}­ZµŠM7Ý4öÚk¯ØtÓM×éZ5õÝwßÅk¯½³gÏŽeË–Åæ›oûï¿´nÝz�Ì?{öìxûí·cÖ¬Y±xñâ(..Ž:D¯^½¢mÛ¶k¼ÿË/¿ŒcŽ9&^ýõuRÏ×_o½õV̘1#~øá‡hÑ¢El²É&ѳgÏèØ±ã:YÈ @5.¹ä’$"’_þò—iý H""í릛núIk•——'¯¼òJrâ‰'&Í›7O""ùì³Ï’$I’’’’äoû[²Ùf›e¬IïÞ½“)S¦Ô‹5V©xÿøñã3Æ<ùä“•®Uñ«I“&U®³É&›TzÏATãZW7gΜjk©ìuœsÎ9ÕÞs×]wU»æ[o½•œ{î¹É¦›nšDDr饗¦®Íž=;ùío›4jÔ(cÞwܱVïI’$ÉÔ©S“Ë.»,Ùf›m*}-I’$Çw\�Þ—U_•Y¾|yrñÅ'-[¶L�kݺuRPP�DDR\\œ\xá…ÉUW]•ôéÓ§V¯¡2óæÍK¶ß~û×Ü»wïjç+--Mî¸ãŽdÇwLòòò’ˆHZµj•äçç§æÈËËKvÛm·ä‘GùÉõ×Ô§Ÿ~šôíÛ7iܸqI£F�’V­Z%‘&gœqF2þüä„N¨Õïà*cÇŽMvß}÷Ô}Íš5Ký­Xõš?üðäã�?®rŽ×_=Ùh£�jü^¬þû^ÑË/¿œì·ß~©Ÿ{ãÆ�“âââ´û{õꕼù曵üI¹Ê` J+V¬ˆÛo¿="þÿîßUÎ<ó̸çž{Òúþþ÷¿ÇÀ�kµ#³¬¬,^}õÕ;vl<úè£ñÕW_eŒ™5kVsÌ1Õ>Ït„ ±ÓN;ÅèÑ£ã°Ã[ïk¬­=öØ#®½öÚ>|xÌž=;ãz—.]â˜cŽ©v‡ßW\'NŒ»ï¾;’$‰ˆˆ�wÞ9Î:묵ª©U«Vqíµ×Æ»ï¾>ø`”••­ñž¾}ûF‡â“O>‰Ñ£GÇ?ü°Æ{þùÏÆ<�=öXÌš5«Ò1ãÆ�‹ã�?>.\Xéõwß}7~ùË_ÆÛo¿:t¨r­3fÄèѣ㡇Š÷߿ںÊÊÊbß}÷�^½zÅ'Ÿ|Æ K»~óÍ7¯á•ý¸ëwÿý÷�I“&Ŧ›n7ÜpCuÔQÑ¢E‹())‰—_~9.¾øâ:thDDôîÝ{�s®IIIIêxöqãÆÅSO=•ºÖ½{÷8ï¼óÒÆo¶ÙfUÎ5eÊ”8úè£cÊ”)ѶmÛ¸å–[â˜cމV­ZEIIIŒ?>®ºêª˜0aB¼ùæ›ñ›ßü&úôé£G�®ÑîØµ5räÈøãÿK—.�_ýêWñ§?ý)öÜsÏhÔ¨Q|ýõ×q×]wÅÿ÷ÇO}úÄÕW_;ï¼säççÇÔ©S㢋.Š'Ÿ|2^}õÕØgŸ}b̘1s l'Ð@ý5jÔ¨$"’:$%%%×wÝu׌�lO=õT­Ö¸çž{’m·Ý¶Ê]¬'NLºuë–Úí9hРä /L?ü𤰰0c|Ó¦M“7Þxc½¯Q™Š÷UµÛ4I~ܽYÙÎã·Þz«Æ?ËÃ;,‰ˆ¤k×®ÉâÅ‹k|_uþþ÷¿×êu$I’L˜0¡F;€o½õÖäÎ;ïL~ÿûßWº#òî»ïN5j”l²É&Éù矟ÜqÇÉðáÃÓvg®úêß¿¥µ<òÈ#•þžÖôµŒ?¾F»}+:묳Rãß~ûíJÇ,Y²$UÛšvãÖÖ¥—^Z«Ý¾«{ùå—S;j;vì˜|þù畎+++K.ºè¢´uºuë–LŸ>}½Št×_}j�‹.º¨Êqï¾ûnÒºuëý®RRR’ôîÝ;5vß}÷MÊËË3Æ-Y²$ÙrË-Sã:uê”,X° ÚºWŸwÕïvMôïß?uÏ–[n™,[¶,cLYYYÒ«W¯Ô¸–-[&3gάÑü@îUÚe—]’ˆH.¿üòJ¯¯ ˆWÿÚÿý×z½ .¸ c¾:$=zôH^}õÕŒñ_|ñE²÷Þ{gܳÍ6Û$+V¬ÈÚ«Ô6l¼é¦›2îyüñÇ«½gu[o½uÉm·ÝVã{Ö䫯¾ªõëH’$iÑ¢E�÷$I’m¶Ù&müž{î™4jÔ(9ãŒ3’%K–¤�-++Kúöí›6¾°°0ùæ›o2æý׿þ•¼ûî»É”)S’Aƒ­—xñâÅI“&M’ˆH¶ÞzëjÇNž<9iÔ¨Q½ €?ùä“´ã…_{íµ5ÞSñ¨å=zd¼g?Õ#�<’:†ú ƒª4œ]ÝèÑ£kß}÷Ýic/»ì²*ÇŽ1"mìu×]Wm-kWüʼn'žX娧žz*mìÙgŸ½Æù€Ü–•˜4iR¼ýöÛQXX§žzj¥cŽ=öØŒã^_|ñÅøè£�ÖjÍc�=6£¯sçÎñÏþ3öÙgŸŒk:tˆ_|1¶ß~û´þÿûß©£«³±ÆÚ:餓¢]»vi}�Ù®ÊG}S§N�æÍ›ÇoûÛuVÓ&›l²V÷m´ÑFµ¿Í6Û¤µ'M像›nº)ŠŠŠÒ®åççǰaÃÒŽ/))‰W^y%cÞ�vÚ)vØa‡Øf›mâꫯŽF�Õª®µ1iÒ¤X±bEDD´lÙ²Ú±?ÿùÏãÈ#�¬óšj¢¬¬,Ž>úèÔñ݇vXôìÙs�÷ 6,íïÀäÉ“ãœsÎYguÍŸ??N?ýôH’$òóóãÚk¯]ã1óG}ttéÒ¥Æk<ýôÓií/¾ø¢Ê±»ï¾{ZûÅ_¬ñ: µ a•ºá†""â׿þu´oß¾Ò1Mš4‰“O>9£øðákµf›6m2ú®¹æšhÞ¼y•÷4mÚ4î»ï¾Œ@èÖ[oÍÚk«iÓ¦qöÙg§õ=þøã•>¸¢‡z(""~ó›ßTûZj+?íþµ±6Ï�ŽˆhÑ¢EZ»_¿~Õ>øcÇŽ±ÝvÛ¥õ­éƒEEE±ñÆת®µñõ×_§¾Ÿrÿþýkt_›6mâ’K.Ië»ë®»bÚ´i뤮?ýéO1þüˆˆØgŸ}¢G�5ºoç�w®ñË–-KkÏ™3§Ê±?ÜPÙ3ŪúVа€€ óæÍ‹1cÆDDÄ™gžYíØ3Î8##$¼ÿþûS�MmT6V>¯î¿øEüæ7¿IëûàƒbÆŒYYã§øÃþ�†–––¦Âøê¬ € °NëY_*ÆM›6]ã=ݺuKkóÍ7k¼§I“&µ+l-´jÕ*õýÒ¥Kã¯ýkµã÷Ûo¿uÚ¯­k®¹&­½×^{ÕøÞã�?> Rí²²²6lØO®iþüùqï½÷¦ÚGqD�ï­ø¡‚êôë×/­}ôÑGW9¶âïêâÅ‹k¼NMõíÛ7m�l×4,` í·Þ+W®Œ=zDïÞ½«Û¹sç8ôÐCÓú–/_·ÜrK]–˜¡²c�ß|óÍ·F›6m2ŽÜ9rd,Y²¤Ê{Þ|ó͘>}ztìØ1~ùË_®Óz곊_u?£õi¯½öJ šo¼ñƸ袋¢¤¤¤ÒñM›6�§žzj}•W©¹sçÆ;3j7kÖ,:uêTãûÛµk—ñ·âÙgŸýÉu�5*uœvÄ�Gz×…þýûÇã�?\pA<óÌ3q 'ÔøÞÒÒÒu^Ï>û쯼òJ\pÁñàƒÆ¥—^šÕz€†E ¤)))I…·gœqF�î4hPFßM7Ý+W®\§µUçÀÌØÝûñÇ7¸5""Î=÷Ü(,,Lµ,XwÞyg•ã|ðÁˆø1ÄZÛ#›¢Š;ËË˳TIºÖ­[ÇÀ�Óú†;ì°C¼úê«YªªzãÇ�Ok¯¾‹¹¦vÙe—´öŒ3jt|yu^xá…´v÷îÝÒ|Õ9üðÃcèСqðÁWz=I’xá…â‚ .Èè¯ ½zõŠ¡C‡VúÜòU&MšTå3Ú€ ׆ó_€;vlÌ™3'Z´hQãã„÷ßÿØj«­ÒúæÎ�›:–x}hÑ¢EtîÜ9­ïûï¿opkDDtêÔ)c·ñßÿþ÷JÎòòò=ztD4ÜãŸsÑUW]•ñŒâ)S¦DïÞ½ã„NH{Np}0}úô´vmŸá±Ã;dôÍœ9smKв²²˜8qbZßÚÓ?ÕüùócÈ�!Ñ­[·8öØckt=žx≌q&Lˆ¯¾ú*vÚi§øùÏ^'µP{EEEñì³ÏF�=2®ÝsÏ=±õÖ[Ç-·ÜRov-W|~ò¢E‹j=Çf›m¶Æykcîܹϳ]ŸáëÔ©Sã”SN‰N�:Å}÷Ý—]vY|õÕWñ?ÿó?ë­†Õ}ñÅqÞyçEÇŽcèСqúé§Çܹs«=Ø0 €€”wß}7^ýõu:ß„ ÖÙ|kÒ²eË´v]ì\kDDôèÑ#9ä�´¾aÆeŒ[uü³Ý¿õOûöíã�7Þˆ£Ž:*ãÚ÷ßgœqFì³Ï>urŒxmU|~ò’%KjNgô-_¾|­kúöÛo3ú*ÂuaæÌ™Ñ¿ÿèÑ£GŒ7.n»í¶øðÃcÀ€iÏv^_æÏŸƒ ŠnݺÅwÜ—]vYL›6- ”ñl€0°šn¸!""z÷î‹-ªõ×~ûí—1çúÜ\TT”ÖÞh£�ä« <8­ýꫯÆ;3j—””ÄØ±c£   ãÈhê‡âââ3fLÜwß}±é¦›f\ã�7b—]v‰G}4 ÕýmÚ´Ik'IsçέÕ?ñ³Ÿýl­kªlò‚ Öz¾š¸ýöÛãç?ÿy<ðÀ±×^{Å| X«#±×…qãÆÅV[m#FŒˆ-¶Ø"Þyç�8÷Üs£   +õ ƒˆˆwÛ­ÚMzæ™gF‹-jýuþùçgÌûÄOÄŒ3ÖËk¨xs÷îÝä«ôìÙ3öÜsÏ´¾ë®».õýsÏ=ß}÷]|ðÁ±ñÆ×Yütýû÷��?þ8œqŒñâÅ‹ãè£�ާžz*KÕE¥¿?~øa­æX¶lY�æ­©Êv·N�:u­ç[“ÁƒÇ©§žË–-‹í·ß>ž}öÙh×®]�­·&#FŒˆ#Ž8"¾ÿþûèСC¼ôÒKÑ­[·¬Õ4` "~Üù¶|ùòhß¾}yä‘k5ÇÁœñÚòòò¸þúë×E‰kTqwàÞ{ïÝ ×X]Å]À£G�ޝ¾ú*""z衈püsCQ\\C† ‰©S§Æo~ó›´keeeqöÙgGYYYVjÛ~ûí3ú>øàƒZÍQqÇn³fÍ~Òs©+Û=üî»ï®õ|չ뮻âÿ÷Sí믿>š7o^'kÕÄ‹/¾gŸ}vêî«®ºªÒä•QZZ#FŒˆˆˆÓN;m­�ÍËË‹óÎ;/£ÿÎ;ïŒ~øá'ÕX«ïÜj«­¢}ûö r�Õ~øá±õÖ[§Ú%%%qà 7IJeËâñÇ�Ö­[Çá‡^§5P;cÆŒ‰SN9¥Êë�;wޱcÇÆ­·Þšv´ðŒ3âå—_^%fØ{ï½£°°0­ïÅ_¬Õwúï¹çž?陹:tÈxÆöã�?¾ÖóUeéÒ¥i§lºé¦Ñ«W¯u¾NM%Ig�uV*ü-((¨ô9ÒUñ�ü#fÏžqÚi§ý¤¹Ž?þøŒc_-ZwÜqÇOšwMæÍ›—Úqúé§7È5*ÊËË‹‹.º(­ï¶Ûn‹‡z(utðO ÙÖF’$kSRR²*ÉŽšìÒ}饗Ö8æ´ÓN‹sÏ=7­oÚ´ik]WuÖTsóæÍã?ÿó?Óú^~ùåøöÛok¼ÆG}”Ö>æ˜cj^`%òòò2Ž@ÿç?ÿS¦LùIóVôÈ#�Ä÷ߟjwéÒ¥Úñ5ùý¯ÎšÞ‹×_=íƒ&mÛ¶­v7òO­È=` †‡vXl¶Ùf?i®&MšDÿþý3ú¯¿þú:=Þö±ÇK}ß²eË8餓ä•éß¿tèÐ!Õþî»ïâ�ücD¬ŸãŸ7nœÖž3gNµã—.]óçϯ˒ÖZŰlMáYÅ×±páÂ5®3sæÌxë­·Ö8îŒ3ÎHkW­oÖ¬Y•Ž]}÷oÄ�«ªûÃ}÷ÝWíýU|/*ûý‰øÿÿ TœoÅŠÕ>�¹b=?~HØp €`VZZš¶›®k×®ëdÞm·Ý65j”Ñÿ׿þ5–-[V«¹jr”îý÷ߟ ±÷Ûo¿8p`Ö×øôÓO3úæÎ�[«ºVwúé§GqqqZßï~÷»µž¯6öÙgŸ´ö#�<÷Þ{oƸ… ÆÀ�cĈq衇¦]û¿ÿû¿j×X°`AZ{ÅŠk¬«âϳb¸[Ñ’%K2Ž4ž9sfµ÷tíÚ5òóÓÿÕ¹bàöïÿ;¶Ûn»Œ ôÞ{ïÍØÍYÑêÇo´ÑFqà�V;¾¦ºwïžÖ^ºti<òÈ#i}cÆŒÉxŸn¿ýöø�ÿø�T{Þ¼yqå•W®q½¿üå/©ï�?þøu²û7"¢iÓ¦1|øðŒþsÎ9'®ºêªJ?¼1oÞ¼8ôÐC3ÞëÛo¿=}ôј>}z|ñÅ©þЧ”––Æyç�—ñ¡„òòò¸êª«bäÈ‘iýK—.M ¿+®[ñ½˜0aBÌž=;mÞóÏ??®ºêªJ뉈8ï¼ó*ýÀÃ]wÝÿõ_ÿ•ñ;úÆoTY°H€ ÒÊ•+“SN9%‰ˆÔ×СC×ÉܳgÏNòòòÒæ^õuÔQG% .¬ô¾Ï>û,c|³fÍ’Ç{¬Êµþõ¯%-Z´H""Ùe—]’ T[ÛúX£¼¼<9á„2Ö9òÈ#«½oMÎ9眴ù¦M›ö“æ«©×_½Ò÷òˆ#ŽH† –\}õÕÉñÇŸ'Éã�?žüùÏ®ô½¿æšk’I“&¥Í_^^žtêÔ)mìŽ;îXmMË–-KZ¶l™vÏ/~ñ‹jï¹÷Þ{3jêÙ³gRRRRí}{ï½wÚ=yyyÉi§�–Œ5*9ÿüó“æÍ›'W]uUjü?þñ�ÔØm¶Ù&™;wn¥ó–••%‡rHjì�wÞYmµ±hÑ¢¤I“&iu·lÙ2¹üòË“;ï¼39î¸ã’ÂÂÂäÕW_͸wòäÉI‡Ò^ïÃ?\åZC‡M�=ì°Ã’¥K—®³×±ÊïÿûJ»té’ <89rdrÛm·%gœqFR\\œtèÐ!9í´Ó*½'"’­·Þ:5÷?ÿùÏJÇìºë®É�!C’Ûo¿=ùÓŸþ”tíÚ5iÑ¢EòÊ+¯$­ZµÊø}½ù曓ã�?>9餓Òjá…2æîÞ½{rýõ×'7ÝtS²Ç{$:tHæÏŸŸ$I’|ñÅIaaaÆ=[mµUrÅW$wÞygrÙe—%Ûm·]RPP�<üðÃÉvÛm—6vóÍ7OFŒ‘œqÆÉ°Îß ~Àæ‹/¾H.¸à‚dóÍ7Ï5j”ôë×/2dHòÌ3ÏÔjÞ)S¦$Æ KÎ>ûìdÓM7­2x‰ˆdÓM7MN>ùää£�>J›£²p¶{÷î©ððµ×^KJKK“$I’ùóç'ÿû¿ÿ›%‘üêW¿J¾ýöÛ5ÖY—k<þøãÉ_þò—dÛm·­òµïµ×^É_ÿú×ä†n¨ÕÏ7I’äÃ?L›g}:ï¼óª}OWŒO>ùd’$IFœŸŸŸì±ÇÉW\‘|úé§©yW¬X‘\z饕ÎwÍ5×$+V¬È¨eÑ¢EU‚×^{m²|ùòÔØx ¹òÊ+“~ýúUª­ ÖœŒ5*~äƒ IDAT)++ËXïᇮöuŸtÒIIyyyjüêpD$;vLî¸ãŽäûï¿O�y÷Ýw“_ýêW©1—_~ù:yŸVwÆgTYs~~~rÇwTyï矞ì¶Ûni!ð™gž™|üñÇ©1S¦LIN<ñÄÔߎsÎ9'õÏκVVV– 8p�¿ƒ‘´oß>yç�w2~¯Š‹‹“SO=5yã�72æïׯßçÝ|óÍS^8òÈ#+Ó¸qãä¹çžË¨ý¿øE•ó¶iÓ&yç�wÒî¹è¢‹ÖXÏÆoœŒ7.I’$9÷Üs+“———Üu×]uòžõ—60ãÇ�¯QˆrÄGÔjÞ‘#GÖhÞÕ¿*•…³üqrñÅ'M›6M,«ï¾ûÅ/~‘Œ5ªÆuÖå[mµU­^ÿÚhܸqÉ-·Ü²V÷ÿW_}uÆ®ÛUaâQG•|öÙg©±þóŸ“üüüdÿý÷OF�•|óÍ7ó <8µ³ºª¯fÍš%‡zhêž�&Íš5«öž¢¢¢äüóÏO’$IzôèQ«÷dÙ²e•¾öÊð-Z$×^{mZø›$™ðê_­[·N}  âÇ�¨«BóumñâÅIïÞ½3jèÒ¥Kòì³Ï®ñþòòòäŽ;îÈ/›5k–zŠŠŠ’£Ž:*ùàƒêä5TôÜsÏ%;ï¼s¥?ÛÂÂÂä¸ãŽKæÍ›—$I’\zé¥I^^^Ò§OŸäž{î©vgòÒ¥K““O>9ÉÏÏϘ·mÛ¶ÉàÁƒ“Å‹§ÆÿûßÿNÚ¶m›ñs}å•W*�òäÉ»Ü#"ÙgŸ}Ò>±JYYYrÉ%—Tú¡…–-[&§Ÿ~zjÇp’$É×_�ñ¡ž¶mÛ&cÆŒYÛ5Ѐå%I’@=0sæÌØ|óÍÓú>ûì³èÒ¥K|óÍ71~üøøüóÏ£¼¼<:tèÛm·]l»í¶õn�º2uêÔØf›m¢I“&1wîÜhݺõz¯á‡~ˆñãÇÇ´iÓbåʕѩS§èÓ§OtèÐ!mÜûï¿íÚµ‹öíÛ¯÷ëÊ|ãÇ��¥K—Æ[l|p´lÙ²ÊñI’Ä‚ bÆŒñé§ŸÆÜ¹sSÏ þÙÏ~»ì²Kì¼óÎÏo]—ÊËË㥗^Š÷Þ{/òòòbûí·�_þò—•>£»:Ó¦M‹ýë_1gΜX±bE´k×.:uê={öŒ¦M›ÖQõUûì³Ïbâĉ1gΜÈËË‹N�:EïÞ½£]»v©1o¿ýv´mÛ6ºtéR«y_z饸ú믣mÛ¶Ñ­[·èÕ«WfŒ�;wnŒ7.,X=zôˆ8 ªœ{É’%1nܸ˜1cF´lÙ2öÞ{ïØqÇ«­gΜ9ñ /Ä—_~­ZµŠ.]ºÄ¾ûîEEEcøá‡xì±Çbîܹ±Å[Äþçfå½²O ÔÕ…³ i�º2tèи袋âè£�ŽÑ£Gg» ª»�°NÝ}÷Ýqê©§f¹ ¾4¯¾újLž<9ºvíûï¿¶Ëê)0@=—$I <8""Î=÷ÜÈËËËrE@}%¨ç†“&MŠ�7Þ8N>ùäl—Ôc` Þ(++Ëè+))ipkÔVyyy 80Z¶l›m¶YwÜq1~üøX²dIÜpà qÉ%—DDÄW\Íš5Ëj­@ýV�íV™3gNFß—_~Ý»woPkÔÖ˜1câÖ[o�ˆˆÅ‹ÇC==ôPÚ˜]wÝ5N;í´l”4 võÆ=÷Ü“Ñwÿý÷7¸5jkÞ¼yÕ^ßh£�âᇎü|ÿ T//I’$ÛE®ÿû¿ÿ‹—_~9žy晘4iR¥cöØc�èÕ«W´oß>öØc�Øc�=êÝ?ÅŒ3b‡vˆE‹e\ëÔ©S<õÔS±í¶Û®·z€†K dÕñÇ_«¸ƒŽ!C†Ô»5~ª·Þz+þüç?ÇÛo¿+W®ŒîÝ»Gß¾}ãœsΉ-Z¬×Z€†K �#<@ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ Gd»X“ Ä„ RíN�:E“&M²XkcÅŠ1{öìT»wïÞѺuë,V”{ÀÔ{&Lˆ_ÿú×Ù.€uì±Ç‹#Ž8"ÛeäG@ä0@Žp4õ^§N�ÒÚ�=öXl±ÅYªX+V¬ˆÛo¿=Õ>å”S<Ë`4mÚ´´GVÌ�øéÀÔ{C¢-¶Ø"zôè‘¥j€µ±|ùòh×®]ªýóŸÿ<š6mšÅЍlZ÷ �#ì Î5iÒ$.¾øâ´6°î €¨syyyŽ|€õÀÐ9B �#À9Â3€¨sË—/�áǧÚüã=ꀀõbùòåÙ.rž# r„ G€r„ G€rDA¶ ²'I’(//�$I²] �%yyy‘ŸŸyyyÙ.…u@ ˜’’’X¸pa,\¸0JJJ„¿@äååEaaa´jÕ*Zµj………Ù.‰µ$€ ÄŠ+bÞ¼y±dÉ’l—Ô3I’ÄÊ•+cþüù1þühÞ¼yl²É&ѤI“l—F-y0lJJJbÖ¬YÂ_ F–,Y³fÍŠ’’’l—B-Ù @�kÔ¨Qì°ÃimÖŸ²²²˜={v”––f» )--�Ù³gGçÎ�ýwÝD @�+,,Œ_ÿú×Ù.`ƒ5gΜX±bEZ_~~~GqqqF~¾CCaCU^^%%%ñÃ?Ä?üååå©k+V¬ˆ9sæDÇŽ³X!µ!€VVV‹-JëkܸqtîÜ9 ÄÀ�7nÍ›7��7Þ8>ÿüóX¹reêÚ¢E‹¢¬¬Ì.àÂÇy ‡U|æo^^^têÔIø Tª   :uêyyyiýžÞp€ ‡UÜý[TT�7ÎR5@Cиqã(**Jë[¼xq–ª¡¶|¼‡ç¹)_Å”-²]P åee1kÚÔTû?¶Ø:òÀZ:z§ÎÙ.”Š»öZ¶l™¥J€†¤E‹i?À ‡€:WZZo¾ò|ª½Y—nÑX Pç’$‰²²²´¾fÍše© !©¸¸¬¬,’$É8šúÇÐ�£ÊËË3úù`>P•ý­¨ìo õ�rT’$}vï5QÙߊÊþ¦Pÿ€r„ G€r„ Gd» ~*/OâÛ%+²]FNûYó&‘ŸŸ—í2€"*õí’Ñî’±Ù.#§}ý·£bã–M³]�C �#À9ÂÐÔ¹‚ÂÆqàQýÓÚÀº' ÎåççGë¶í²]äIõxà�Q^^W^yeü÷ÿw”””¤®Í™3'F�Ï<óL¼ñÆѵk×´9Ÿz꩸å–[âòË/�$ùÿÿ?pï½÷ŽK/½4c|DDçÎ�cÒ¤I1lذxøá‡#???FŒ}ûö�Æ�Çý÷ßI’Ā⭷ފˆˆ]wÝ5î¹çžÔ�5ZÃOê/0P¯ :lŸê¯Wsmõÿ(@õ:vì;vŒ:ÄN;íTå¸&MšÄöÛoÛo¿}ÇPé¸ÒÒÒ8î¸ã¢E‹q饗¦úKJJâ¸ãŽ‹×^{-† ={öŒ²²²¸ï¾ûR;qçÍ›ƒ ЧŸ~:mÎM6Ù$.½ôÒøê«¯â¶ÛnKõ÷íÛ·Ê: c÷Ýw�¾}ûÆÃ?'Ÿ|r 80u}«­¶Šˆˆ¢¢¢T_QQQl½õÖUþ  !q4Àl›m¶©ñØÍ7ß¼Êk=zôˆwÜ1.¹ä’hÚ´iªøðá±`Á‚øè£�â¼ó΋ÝvÛ-öÜsÏ1bDüþ÷¿O�{öÙgcöìÊOƒ¹øâ‹Óvå>ùä“k¬õ™gž‰ˆ�º† ‰`¶zX»&59¹°°06Úh£T{ç�wŽqãÆ¥õ­rê©§¦¾O’$&NœX霛o¾yôë×/Õ?~|üûßÿ®²†•+WÆ#�<;ì°Cl·Ývk¬r‰€uª°°0õ}×®]ÓÚ«ëÑ£GZ»ªÀ]tQêû$IbøðáUŽ}æ™gbÁ‚q 'Ô´dÈ`²¢eË–ií%K–T9v‡vˆƒ:(Õ¾÷Þ{ã›o¾©tìƒ>ñÛßþvÝ ˆ€:—ŸŸíÚwL}åçûŸ Syyyµ×œú~Ù²eqË-·dŒY²dI<ùä“qðÁG»víÖy�Pßd»r_AaãØ÷ð£³] Ä�O¾VíõC~Ñq=U@}Ó§OŸØu×]ã­·ÞŠˆˆ#FÄE]�7N�yâ‰'béÒ¥Žfƒ%ê•v›uªöz—.�×S%ÔGƒ޾}ûFDÄܹsãÁL {|ðÁhÓ¦MvØaÙ*²Êœ4Gydl¹å–©ö°aÃRßÿý÷ñÜsÏűÇMš4ÉFy�u`Œüüü¸ð Sí÷ß?^~ù刈;vl¬\¹ÒñÏlÐÀÔ¹òòòøú«Ù©¯òòòl—4`¿ûÝï¢}ûö©öu×]?ÿ¼ÕV[Åî»ïž­Ò ëÀÔ¹Ò’•ñÊ“cR_¥%+³]P…ÒÒÒµº¶>5iÒ$þøÇ?¦ÚO?ýt¼òÊ+ñÊ+¯Ä€j4G^^^êû²²²u^#d‹`×¼yóÔ÷Ÿ~úi•ã&OžœÖN’¤ÎjZ“�FqqqªŽcŽ9&"~Ü\M›6M}ÿí·ß®û!KÀ¸m·Ý6õýO<Ó§OÏ3yòä8ï¼ó¢E‹©¾¹sçV:_Mw /]º4­]›@¹¸¸8˜jýõ×ѧOŸèÔ©S�îïСCêûO>ù$-.--�‡z¨Æµ@}"ØÀýþ÷¿O}¿|ùòèÕ«WÜ}÷ÝñÞ{ïÅ /¼çœsNì±Çñ·¿ý-:wîœ{Ë-·Ä?þñ�øàƒR}¥¥¥1þüT{Á‚U®;cÆŒ´öwß}W«ºÏ>ûì(((HµkzüsDDÏž=Sß—••Å1ǯ¿þz¼üò˱ÿþûWnC}'ØÀ�rÊ)qÔQG¥Ú_}õUœx≱ãŽ;Æ�<ð@<øàƒÑ¯_¿´û-Z<ð@L˜0!Õ÷ÀÄÊ•+Sí &ÄgŸ}–±f’$qýõ×§õ=ýôÓÕÆuèÐ!Ž<òȈˆhÑ¢EÚkX“~ýú¥…Ù/½ôRôìÙ3öÛo¿Øc�=Òž1 ‰`———£G�Ž›o¾9vÛm·hÞ¼y´hÑ"¶Ûn»¸âŠ+bÊ”)q衇FDD·nÝâ‚ .ˆ‰'Æ7ß|�>úhœuÖYñüóÏÇ{ì'œpBÚÜ ,ˆ­·Þ:zõê'NŒˆwoµÕV1räÈ´±3f̈Î�;Ç!‡+V¬¨Qí«ê:ꨣҞe¼&EEEñüóÏÇ�EEEñ³Ÿý,:è xî¹çbÈ�!5žꛂ5 ×åççÇÀ�Óž«[™Ç¼Òþ<0<ðÀ­U“ujjÖ¬YÁsMl¹å–ñÜsÏ­“: ¾°€ëÉ'ŸŒ®]»Æ¾ûî›íR ^°¨ÔÏš7‰¯ÿVógªR{?kÞ$Û%4hS§N�7ß|3þö·¿E^^^¶Ë�zA T*??/6nÙ4Ûe@•†EEEqÊ)§d»¨7 @ƒóꫯƨQ£âôÓO�¶mÛf»¨7ì ÎÆÞ–Ö¨‰ûï¿?n¼ñÆ(..ŽÃ?<Ž=öØøôÓO£o߾ѦM›øË_þ’í¡^Pçò5Š›o‘í2€fÑ¢Eqâ‰'FiiiDD<ÿüó1hРÔõ‡~86Úh£l•õ’# ¨—š5k-[¶¬ôÚ�!C¢_¿~ë¹"¨ÿÀÔK1nܸØsÏ=£¨¨(Ú´i‡rHL˜0!œíò ^r4õÖ^{ío¼ñF¶Ë€C @�+-Yÿ|ùÙT{÷_…�³Xä&0u®¼¼<¾œ9=­ ¬{ž �#ì¦Á9¨ñ”èÑdq¶Ëjay¬ŒOÍIµ�jò^4mâhÖÒäw²]Áú×ãÈlW4vä0@Žä0@Žä0@Ž䈂l@îËËË‹ÖÅÍÓÚÀº' Î5i\üÝaÙ.rž# r„ G€r„gPç’$‰…‹–¦Ú­ZE^^^+€Ü$ Î­XYÃï}2Õ¾ø”ßDÓ&�³X5’”G,ý.ÛUä¶¢�"òØ ¬;` rK¿‹¸¦[¶«ÈmL�hÞ6ÛU9ÄGJr„ G€r„ G€r„€zgþüùQVV–í2 Á)Èvühæ—_W~¡ùÌJ»»téRgµdSiiiuÔQqß}÷ÅüÇd»hPÀõÄæ ¬Õø$IꨀìúË_þ¯½öZ”——g»hp ü?öî;ÊÊêìð=0 iD,(E‚¢ÁW‚DTBD ˆF�K°¼–@HH„Hˆ1šDEE‚ذòÙ5*Œˆc,Å¡Ã0óýáË ‡ú GÎ\×Z³Ö¹÷³ŸýÜׂ%?ö~àcÒ¤I1lذT·»,;€¨p™U«Æñò’j€�͘1#zõê夨`*\ffÕhßúÀT·ü€=ùä“qúé§ÇªU«RÝÊYµjU|ýõ×±÷Þ{§º*)G@%%%1yòä8묳¢iÓ¦Q½zõÈÉɉF�E÷îÝc„ [Ü�»råÊøÓŸþGydì¾ûîQ¥J•ÈÈÈHú¹âŠ+’î¹å–[¢k×®±|ùò¤ñý÷ß?é¾I“&•zÞœ9sâÚk¯�^½z%ÆfΜÇw\Ô®];öÝwß3fÌ&û}ûí·ãºë®‹#Ž8"6l999Q¯^½ÈËË‹ÄÛo¿½UßÛ+¯¼¿üå/£aÆñ�ü#qmòäÉÑ£G�Øo¿ý"7775j§�vZ¼ð e®uê©§–ú¾6ü)+X.***sî Aƒ¶Ø;éG @Ì›7/?üðèÞ½{¼ûî»ñ»ßý.^~ùå?~|´hÑ"&Ož§žzjôèÑ# Ë\ãÓO?�Ö­[Ç5×\M›6�qãÆÅÛo¿�=öXôèÑc“ÏîÕ«W¼ûî»ñ‡?ü!iüÙgŸ�¹sç&~:wîüq 6,Ú¶m­ZµŠaÆÅÂ… #"bܸqÑ¡C‡xæ™g¢   æÏŸç�w^¬Y³&ií%K–Ä©§žmÚ´‰§žz*.¾øâxüñÇã¹çž‹Ë/¿<æÏŸÇ�6mÚD¯^½¢   Tß3gÎŒþýûÇ>ûì:tˆüã‰y ,ˆÎ�;G÷îÝcâĉñÙgŸÅš5kâóÏ?�ñãÇG§N�â²Ë.+¨ÿýï�‘#GFNNNÒx‹-bÊ”)ñÌ3Ï”ê#333Þxã�¸ì²Ëcƒ Šþýûoò;'}9àâã©+ûBó.;· ÒùüóÏãè£�Ž/¿ü24h/½ôRÔ¬Y3""òòò¢[·nѱcÇxñÅã‘G‰o¼1† Vj�3Ï<3>úè£èÝ»wŒ=:1~衇F×®]ã†n(òFD4lØ0ñ³¡&MšDãÆ�“Æ&L˜O>ùdÌŸ??Þ|óͤk/½ôR\pÁqÆgÄ«¯¾ÿùÏ""bÍš5±råÊD¨úÁD—.]â“O>‰SN9%~øáÈÌüolÖ¡C‡¸à‚ â„Nˆ·Þz+|ðÁxóÍ7ãÙgŸ�F�%æ-\¸08à€ØÿýtÄ÷az‡¢aÆqï½÷FË–-cÅŠ1iÒ¤¸ýöÛ£¨¨(""FŽÙÙÙ1|øðĽuêÔ‰K.¹$ âúë¯OŒwéÒ%~þóŸ—úîÖkÛ¶m”””Äm·Ý?ûÙÏbàÀ�›œKzPáÖ®-ŠçfÎNÔÇqhdeù#6Ö¸QýM\h¼Sû*Ÿ#FÄ—_~ûì³O"ü]/###®¼òÊxñÅ#"bÔ¨Q1xðàÈÍÍMÌÉÏÏ�éÓ§GDD÷îÝË|ÎoûÛ˜0aÂõÚ£G�ÄnâC=4òóó#"bñâÅqÁÄóÏ?mÚ´‰‚‚‚¸ì²Ëâ‘G‰³Ï>;~ô£EDÄ·ß~ݺu‹O>ù$5j£G�N ×kРAL�:5Z¶l‹/Ž÷Þ{/N>ùäxñÅ¿îSN9%""ºuëM›6MÜûÐCÅ]wÝýúõKZ³cÇŽñ‹_ü"N8á„Ä.ê#FD÷îÝãè£�Nš{饗ưaÃbÙ²eñøã�Lj#"##c“ßÍ“O>™¸—ÊËÐT¸uÅÅ1cÖ‰ŸuÅÅ©n ØÀœ9sŸ?üðÃ2ç4kÖ,ñyåÊ•ñÑG%]Ÿ;wnâóúÐrc™™™åz,ñA”øüî»ïÆÀ�£M›6Q«V­=ztĨQ£ó|ðADDüêW¿Š5jlrý=öØ#i§ó믿·Þzk©yûî»oRݧOŸRáïz�:uŠÁƒ'ê’’’2dH©y5kÖŒ_ýêW‰zÞ¼y1uêÔMö1vìØØc�=â„NØì<Ò› ’;æ˜cŸ×¨«^½zVÓ IDATRýí·ß&Õî¾å–[bÕªUe®sê©§FÕªU··Õ$ÕªUK|®S§Nœ~úé›�¿dÉ’¸óÎ;õqÇ·ÅgœuÖY±Ç{$ê?ýéO¥Þ�œ•••Tï³Ï>›]óòË/�zõê%ê§Ÿ~:–,YRæ¼ ¿×#FlrÍY³fÅܹs㬳Î*Õ•‹ ’»æškbܸqqç�wÆ”)S¶êžµk×&ÕÇsLb7í»ï¾�:uŠ÷ß¿Ô}õë×Ozçmy©U«Öf�GŽˆ˜:uj¬^½:Qo¸«yS²³³“Ž´^ºti¼úê«Ûßh|–Ÿ|òɉº¤¤$q|ö†4h}úôIÔO?ýtÒní �;6""i>•“ ’ËÈȈž={Æ\Pj§ïûï¿×_}Ò.áˆïCË Õ®];é(ã™3gÆ!‡ ˆ‚‚‚Šk~¼òÊ+IõÆï:Þ”víÚ%Õe…µÛꨣŽJª?ýôÓ2ç 0 ªTùo¤·©]À?üp´jÕ*òòòv¸7vm`’ÅØ±cã˜cމnݺE½zõbܸq[¼¯ÿþqÍ5×$êµkׯðáãyóæqÏ=÷” �w¶/¿ü2©ÞÔ1Õ;ðÀ“êE‹íp/¯¹ñ‘Úë5mÚ4zô葨njSêùÓ§O�O>ùÄî_"B Àÿ)**ŠÛo¿=š4i7ÜpC\rÉ%ñÞ{ïÅUW] 4ت5†÷Ýw_ÔªU+1öÕW_E¿~ý¢}ûö1kÖ¬Šj‹V¬X‘ToíÎäÝwß=©ÞÚàx[ÖÜÜnäk¯½6ñyõêÕqÇw$];vlT­Z5zõêµÃ}±ëï¿ÿ~äååÅ¥—^íÚµ‹üüü8í´Ó’ŽÞZçœsN¼÷Þ{Ñ·oߤû_{íµ8üðÃãî»ï.ÏÖ·Z�:u’êM»¼±��Å®W¯Þ÷’™™™Tï±Ç›œÛ¶mÛ8öØcõ¨Q£bÍš5±nݺ7n\wÜqѰaÃî‹]Ÿ ’{ç�wâðÃ�wÞy'Ž8âˆx衇J…žÛªaÆqÏ=÷D~~~œrÊ)‰ñÂÂÂ8ÿüóã¹çžÛѶ·Ù~ûí—T¿ýöÛ[u߯;‡7n¼Ã½l¼û¸mÛ¶›�Ýu×%>/Z´(ÆŒ/¼ðB|õÕWŽ&A P‰GÏž=�äÕW_]jwêÖø×¿þüãK�|ðÁ1a„xê©§¢víÚQRRC† ٱƷCÇŽ“ê—^zi«î[¸paRÝ©S§îeÞ¼y‰Ï�5ŠæÍ›ov~çÎ�£M›6‰zĈñýñϵk׎“N:i‡{"=€*±gŸ}6Þ{ï½DݪU«2ç•””lq­§žzj“׺té÷ߢ.k÷mFFFR½nݺ->s[têÔ)é]Æ�>úh©Ý½eÙ°×víÚE“&Mv¸—™3g&>_xá…[uφï~ç�wâ±Ç‹‰'Æi§�¹¹¹;ÜéA P‰åçç'Õ‹/.sÞgŸ}–T–šóÒK/ÅǼÉguëÖ-± ¸¬pwãséÒ¥›\k{äææÆÕW_�¨W­ZÿøÇ?¶xßäÉ“Ÿ¸Ã}Åøñã#"¢nݺqñÅoÕ}=zôH ŸÏ;ï¼X¶l™ãŸI" ÂåædÇ KÎHüäæd§º%àÿl¼ëvܸq¥æ¬\¹2~ó›ß$�mG|¿KxðàÁ›|Vaaa|÷ÝwqôÑG—ºÞ¨Q£¤zúôéIõO<‘ %>¯_wK.¿üò8æ˜cõàÁƒ7zGDL›6-^{íµˆˆ8ÿüó£k×®[|FYß͆îºë®X°`ADDÜyç�Q·nÝ­i=ªV­¿þõ¯õ¢E‹¢iÓ¦ñ“Ÿüd«î§rTb±·ß~{\qÅñÒK/ÅÌ™3cÔ¨QѦM›hÓ¦Mdee%æ�92¦OŸ#GŽŒ)S¦$Æï½÷Þ¸ï¾ûÊ|Öm·Ý………‘““¿ÿýïK]oÓ¦MT«V-Q4(~øá˜5kVÜpà 1dÈ�¨Y³fâúܹsŸ-ZŸ|òɽ™™™1nܸÈËË‹ˆˆo¾ù&zôèQæQÐ .Lì®íÖ­[ÜvÛm[\?"â¾ûî‹¿ÿýïe^›1cF 0 ""þð‡?D�=¶jÍõúö훟sÎ9Ût?éO P‰µk×.)D,..Ž[o½5þçþ'Ú·o×_}\}õÕ1bÄˆèØ±cbÞ¬Y³â¨£ŽŠ›o¾9>øà¤5ûöí½zõŠÇóçÏ�U«VE½zõ¢Y³fqüñÇGïÞ½c¯½öÚâ:¥=pàÀ8묳bÈ�!ñÜsÏÅ¢E‹¢V­ZѤI“8餓â¼ó΋ lqÍMyñÅã˜cމcŽ9&¦M›¶ÝëlÎÿþ± ¥rŸwÞ‰–-[îК$Û±ÿBìòªT©W\qE\qÅ›�wÀÄÿûÿ¯Ìk§žzj”ǾÃÌÌÌ:th :´Ìë#GŽŒ‘#GîðsÖkݺuüùÏ.·õÖkÞ¼yŒ=ºÜ×�øï;†×O PáV¯)Œ›ÿ11Q_wþ)‘›“�ÂŽv]S¦L‰5jlrÇ5•›(Ûn?úþˆb*În?Juìb¾ùæ›xôÑG£OŸ>Q£F�T·Ã�([F•Äûi�ÿ9rd¬Y³&ú÷ïŸêVø�ª’ê€-ûàƒâæ›oŽîÝ»ÇÁœêvø�À(,,Lª¿ûî»Zï™gž‰:D§N�bèС±pá˜;wnüüç?�¢¢¢:tè­Ozs4»œ/k´ŠÚµLuÀ6X½zuäÎLÔ jµ�ÜÜÜv»˜ Rݰ�öÞ{ïT·ÀN4gΜ¤zÖ¬Y;´ÞÙgŸ‹-Šˆˆ^x!®»îºÄµ¡C‡F³fÍvh}Ò›À°>úè£x衇¢OŸ>IãO?ýt\}õÕñÜsÏE~~~©Â[R¿~ý2Ç/¾øâ¸úê«·»_*;€`;qıtéÒRã%%%qË-·Ä-·ÜùùùѪU«­^wܸqqùå—ÇŒ3""âÇ?þqôïß?ºwï^>�“ÖÀ°–,YR!ëtÐAñôÓOWÈÚ¤?G@¤ 0@šp4®jÕª‘———TåO @…ËÊÊŠŸþô§©nÒž# Ò„ M€Ò„wPኊŠböìÙ‰úÐC�ÌL@yó·ïT¸¢¢¢˜6mZ¢>øàƒÀP �&ÀiB �&ÀiB �&ÀiB �&Ài"3Õ ?L%%%QXX˜ê6ÒZvvvddd¤º �€€2Æ”)SRÝFZëÖ­[ää䤺 �€¨p999qÞyç%Õ�æÏŸ_æxQQQ™ã�7®ÀnÀìQ»víT·åŽÚ¦ù%%%Ô À÷ª¤ºÒËìÙ³£uëÖQ»ví¸êª«RÝT*`ÊÕ¥—^³gÏŽ‚‚‚1bD<ÿüó©n * 0åjݺuIµ#ðaçñ`*Üš5kâþûïOÔçœsNää䤰# "�1"úôéŸþyœ{î¹qì±Ç¦¬—/¾ø"6l˜²çÃÎ& Â•””DAAAR ¤¯Ã?<æÎ�›ê6bêÔ©1nܸøç?ÿ™êV`§l§W_}µÌq;ÍRoÁ‚qöÙgG×®]SÝ ìT`€í´Ï>û”9¾÷Þ{ïäNØÐêÕ«£gÏž±dÉ’T·;]•T7åeݺuÑ»wï˜1cFª[�”k×®��?þ¸Ü×-***÷5ËRPP={öŒñãÇï”çÁ‘ ’{ûí·ãÊ+¯ŒF�ÅoûÛÄø´iÓ¢wïÞqÀDnnnì¹çžÑµk×xä‘G¶¸f~~~Üxã�Ѽyóxùå—79¯°°0ž~úé¸ä’Kb¿ýö‹ DDDIIILœ81N<ñÄØsÏ=£Zµjq衇Ɵÿüç2åE‹E›6mJõ6zôèÈÈÈHüvØa[ûµÀ.É;€*¡9sæÄý÷ß&Lˆyóæ%][¶lY\tÑEñðÃ'�õÕWñÄOÄO<§œrJ<øàƒ‘“““¸þî»ïƸqãâᇎ÷Þ{o³ÏŸ8qbŒ7.ž|òÉ(((HŒÅüùó£oß¾ñüóÏ'Ý“ŸŸ¿þõ¯cÆŒ1nܸ¤kuêÔ‰Ç{,""Ž=öØøüóÏ#"¢{÷îñÇ?þ11/77wK_ ìÒ쨄¾øâ‹Øk¯½¢E‹Iã‹/ŽŸþô§‘ŸŸwÜqGLŸ>=^~ùå¸é¦›¢zõê‰y'NŒ³Î:+Q¿þúë1|øðX¼xq,[¶l‹Ï¯[·n\uÕUѪU«¤ñ¹sçFûöí#"büøññöÛoÇ£�>yyy‰9ãÇ�/geeE‹-¢E‹‘•••¯]»vb¼E‹Ѹqã-9° ³ êܹstîÜ9~ùË_Æî»ï………ñÄOÄàÁƒãÆoŒŒŒŒÄüŸüä'qÚi§ÅÑG�x'Nœ<ð@œ}öÙÑ®]»h×®]D|¿·G�›}þ1Ç]tQ¼ú꫉ñÓO?=~ÿûßGÿþýc­[·Ž:D³fÍbéÒ¥q×]wÅi§�Vߤ;€*±jÕªE½zõu§N�⦛nJ ×kÕªUüíoK2dH©yï*Þœ=÷Ü3©6lXRø»^�:uâÔSOMÔ3f̈âââ­~T`*\•*U¢I“&‰Ÿ*Uüñ?$™¼Ï>ûlvîi§�‡rH¢~ï½÷âßÿþwÒœÝvÛm»ž±ùð¸eË–‰Ï+W®Œo¾ùf«Ÿ•…# ¨pÙÙÙqÒI'¥º  dddÄgœùùù‰±W_}5Ú¶m[áÏ®Y³fR½råʨ[·n…?v%¶`°MŽ:ꨤúÓO?MIŽ€†ÒÀl“<0©þöÛoSÔ °10Ûd÷ÝwOª7>šHï Â­[·.>þøãD½ÿþûGÕªUSذ#23“#¦=öØ#E�PáÖ®]�>úh¢¾øâ‹À° +((HªÛ¶m›¢N€�9€m2oÞ¼Ä眜œ8ꨣRØ °!0ÛdæÌ™‰Ï½zõŠ5j¤°›Ò222Ÿ×­[—ÂN`ç°MÆŽßïþ½æškJ]/..NªKJJvJ_ëåææ&>/]ºt§>RM @ÂgŸ}¶ÙëO<ñD̘1#""† x`©9Ë—/ßl½¡¢¢¢­îmÕªUIõ¦‚åF�%>¿ñƱvíÚD½bÅŠ˜4iÒV?v5`^xá…4hP©]¼ß¿û÷ÜsÏ�ˆˆ‹.º(®ºêª2ט={vR=kÖ¬M>ï‹/¾Hª—-[¶É¹ÿùÏ’꯿þºÌy:tH|^¼xqôéÓ'^{íµxüñÇ£C‡;}G2ìL`Zµj·Ýv[|ðÁ1räÈxõÕWcÆŒ1dÈ�øñ�ñÇ?þ1î¸ãޤwí.Y²$Þxã�¸÷Þ{ã†nHZsøðáñ—¿ü%Þ~ûí¤]¼EEEñÀ$Í3fLÒŽÝõ¾úê«x衇JÍ-Ë…^µk×NÔcÇŽ�#Ž8"N:é¤8ÿüóãä“OÞú/v1`Ú¶mùùùѹsç>|xüô§?�N8!Æ�—\rI¼ûî»qÝuוºïoû[´k×.Î=÷ܘ?~Òµo¿ý6®¼òÊÈËË‹»ï¾;""®¹æšhܸq<ýôÓIsÿõ¯žûî§œrJb줓NŠfÍšÅÂ… “æŽ1"š5kÇOoذa<ýôÓqÔQGEnnnì¹çžqÊ)§Ä+¯¼—^zé}?ðC—™ê`[í¹çž±÷Þ{§º `¬^½:jÕª•¨÷Þ{ïÈÍÍMaGÀæìµ×^1räÈ9räVßsã�7Æ�7Þ¸Õó‡ Æ Ûª¹“'OÞêu×;üðÃã•W^Ùæû`Wg0@š°(SvvvtëÖ-Õm¤µìììT·¤0.;;;úöí›Tðב‘999©n€m  ÂU©R%7nœê6 í €Ùå\5áßQ{Æ×©nø�wÞÑ©nv9………‰Ïß}÷] ;vT•T7@ê,]º4¾úê«D=kÖ¬vì(0@%4þü˜›¨÷=¢sTÉÌJaGÀÉ'Ÿÿþ÷¿Ë¼vÏ=÷Ä=÷ÜS¦L‰Ÿÿüç;³5`€¨p%%űrÉI5�Zo¼ñFª[*€# Ò„ M€Ò„ M€Ò„ M€Ò„ M€ Medd”+))IA'À®¦¸¸¸ÔXY¿§ðÓ™ê¨ 2"·vݤ€ŠW¥Jé}`k×®�¬¬¬tìJŠŠŠJ�•õ{ ?<`*\Õ¬ìhÒñ¤T·PédddDvvv&ÆV¬X»í¶[ »v+V¬Hª³³³íÞEˆé �Õ¬Y3©.((p 4°Y%%%QPP�4¶ñï%üp € �mÚ¬]»6.\(ÊTRR .Œµk×&�תU+E±­ i,777²²²’œåË—ÇG}µjÕŠ5jDff¦w{B%V\\EEE±bÅŠ((((þfeeENNNŠºc[ €¨p%Åűfù7‰:§f�Èð?;EFFFìµ×^ñÙgŸ%íú]»vm,]º4–.]šÂõ¿‡xÿï®C @…+^·6>š69Q·8±WT­â_‹ì,»í¶[ì»ï¾¥B`€ÍÉÈȈ}÷Ý7vÛm·T·Â6°ý *�õ!pVVVª[vYYYÂß]”ÀPIì¶ÛnѤI“X³fMÄòåË£°°0Õm?ÙÙÙQ³fͨU«Väää8öy%`—³rÉ›¼öÉ'Ÿ”9Þ¸qãŠi`“‘‘¹¹¹‘››õë×�’’’(..v44TbQ¥J�oš°ËyâºÓ7ymÿëÊ÷šeËÈȈªU«¦º ʉw¤ 0@š¤ 0@š¤‰ÌT7ÛêÄ›ÞäµÛO?|'v?,`*\•ª™Ñ(ïè¤`GT¯×p“×7n¼ó€@…˨R5vß·YªÛ€´çÀiB �&ÀiÂ;€¨pÅEEñEþôDÝð�#£J¦?‚ ¼ùÛw*\IɺXöÙ‡‰zÏV‡‡?‚ ü9 M€Ò„ M€Ò„ M€Ò„ M€Ò„ Md¦º*‡ªYÙ©nÒž€ W5+'ZœxvªÛ€´çh€4!H`€4áÀT¸’’’(.*LÔU2³####…@z³Ëùs� ѲÖî©nØ« ×ÅÍ“òõu݉Üìª)ìHkãÿ‘êvžž£SÝ?0Ž€H`€4!H`€4!H`€4!H`€4!H`€4‘™êH™U3¢cË=“j ü €¨p™U«$À@ŨtG@}ôÑ1hРT·Pî*UüÖ[oÅË/¿wÜqG¬^½:Õ픫Jÿõ¯�ˆˆE‹Ř1cRÜ @ùª4ð’%K⡇JÔ#FŒHa7•KѺâ˜6çËÄOѺâT·i©ÒÀwÝuWÒ±ÏsæÌ‰©S§¦°#€Ê£h]ÉFpIª[€´T)ࢢ¢¸ãŽ;J�Û ¤“JOœ81,X]ºt‰¬¬¬ÄøÔ©SãÝwßMagå§RÀýë_#"⦛nŠ“N:)éš]À@ºHûøÍ7ߌW^y%Z¶l?ùÉO⢋.JºþÀÄâÅ‹SÔ@ùIûø¶Ûn‹ˆˆ /¼0"":uêÍ›7O\_½zuŒ5j›×-..Žçž{.úôé·ÜrKb|̘1‘——Õ«W�¼¼¼xë­·’îûî»ïâÁŒ.]ºÄK/½”ù¤Ì*¯Œ’’’’T7QQ–,Yûì³OdddÄ矻ï¾{DD >< �˜× AƒøôÓO#''g‹k¾öÚk1nܸ7n\ÌŸ??""ƒ Š+®¸"n½õÖ¤ù;vŒ©S§ÆÓO?ãÇ��Gy$–/_/¼ðBüøÇ?Žã�?>^y啤û Œˆˆ’’’6lX 4(ŠŠŠâÊ+¯ŒnݺEVVV¼øâ‹ñ»ßý.V¬X5kÖŒI“&E§N�’ÖZ³fM<ûì³ñ«_ý*ÑsDDõêÕã¶Ûn‹Ö­[Ç!‡’ô~䈈yóæÅ´iÓâ /Œâââ8餓bĈ±ÿþûoñ{*OsæÌ‰V­Z%êw†ÿ"Zî³ûNíØ1« ×ÅÍ“òõu݉Üìª)ì`בqÚ}Û|Oÿ¯>°‹+•û¼óN´lÙ2…¥ŸÌT7P‘î¼óÎX½zuôíÛ7þFDôíÛ7n¼ñÆX½zuDD|õÕW1f̘èׯßf׋C=4"¾ßýZXX˜¸çÃ?,³§fÍš%>Ïš5k“½_{íµ‰ÏÅÅʼn�|SÆŽ}úôÙì< õÒ6¾í¶Û"¢ôîßõŽ:ê¨DȺޟÿüç­^¿Zµj‰Ï]ºtÙª÷ânxODD¿~ýJ½wwc-Z´ˆúõëGDDFFFvØaeΫ^½zâó·ß~»ÉõŽ;5îºë®X¹re™s‹ŠŠbüøñѺuëhݺõfûR/-�€~óÍ7ã•W^‰êÕ«G¯^½69ï /ŒK.¹$QO�:5æÎ�[j§î–lø~áò¾¯V­Z1sæÌ˜Ž8âˆ-Þ³víÚÍ^¿öÚkãÌ3ÏŒˆˆo¾ù&î½÷Þ¤ïa½gŸ}6–,Y×_ýŸ¹µ.¾øâèÙ³ç6Ý3oÞ¼èÞ½{¹õì|9YUâºî‡$Õ@ùKËø¯ýkDDœyæ™Q«V­MÎ;ûì³ãÚk¯�+VDDDIIIŒ1"îºë®�ÒçÖjܸq\~ù奯W¯^“'OŽûî»/éøê’’’ͮ׳gϸþúëãã�?Žˆˆ[o½5.¾øâÈÈÈHš÷ÐCEfffœuÖYåð«ø^ýúõ;š�Ê####r³«¦º €]ÒÇ#OÙôÅ®Ãw^#ìÒn Öâŋ㡇ŠˆMÿ¼^­Zµ;a×»ÿþûcÉ’%Ö_y˜7o^\uÕUѸqãxôÑG㪫®Š3Î8c«ï¯Zµj 0 Qøá‡1eÊ”¤9«W¯ŽGy$ºté 4(·ÞØ6�ëרôOãÆeþPy¥]|ç�wÆš5k""¢}ûö‘™™¹ÙŸþóŸI÷¯^½:î¸ãŽT´¾EsçÎ�ž={ÆAß~ûm¼ñÆ1f̘8öØc£J•mûOyî¹çÆ{쑨GŒ‘tý‰'žˆ‚‚‚èÓ§O¹ôT¼´:º¨¨(þö·¿EFFF<õÔS±×^{mÕ}7ÝtSLš4)Q�5*®½öÚÈÎή¨V·IIIIüîw¿‹ßýîwQ­ZµxüñÇã¸ãŽÛ¡5«U«ýû÷�›nº)""¦M›o½õVäååEDÄØ±c£N�:ñ‹_üb‡ûvŽ´ €ÿõ¯ÅÂ… £K—.Û�nùå—ñàƒFß¾}+ ËmwÞyçÅ=÷ÜcÆŒÙáðw½K.¹$†šxòˆ#â¾ûî‹åË—Çã�?}úô‰œœœryP¹­.\yâÝD}ʼn{'0T€´:úÖ[o�ˆˆË/¿|›îkÓ¦Müìg?KÛøHäT;vl"ümÕªUtëÖ­ÜÖ®S§N\pÁ‰úᇎ/¾ø"&Mšß}÷]ôîݻܞ°ºp]â¨iOŸ>=f̘Í›7�ã�?~›ï¿öÚk“êÙ³gÇsÏ=W^ím·Ûn»-ñ¹U«V›œWRR²]ë_yå•‘••………1räÈ;vl4oÞ<Ž<òÈíZH�´ €‡—^zidddlóýÇ{lxà�IcÇ/—ÞvD~~~âóâÅ‹79ï³Ï>K|.,,Üêõ÷Þ{ïèÕ«W¢¾ãŽ;â™gž±ûvAi¿ùæ›1yò䈈8ùä“·{�ÓO?=©~òÉ'ã�7Þ(snQQQâówß}·UëoxÏÖÞ·a˜=}úô˜?~©9�>úh¼øâ‹‰zÃ0xk 0 ñœo¾ù&Ö­[çœsÎ6­¤Þ.¯Zµ*.¹ä’D]½zõí^«iÓ¦¥Æ.¾øâX³fMÒØ7ß|_~ùe¢~ýõ×£¸¸x‹ëÏ�;7©ž9sæïùŸÿùŸÄçU«VEçÎ�㡇Š·Þz+žzê©èׯ_\qÅѳgÏļ… Æ_þò—˜6mZôïß‹ÏhÙ²eÒ±Ù;vŒ}÷Ýw‹÷?,»l¼téÒ¸ûî»ãÈ#�Œ3f$Æ{÷îO>ùdÌ™3g«ÖY³fMÌž=;&MšTæ‘ϯ¿þz´k×.î½÷Þ˜9sfÜsÏ=qÜqÇźuës>þøãèÙ³g<öØc1{öìX»vmâZIII¼ùæ›ñ§?ý).ºè¢¤µï¿ÿþ¸îºëbÚ´iñþûï—Ùß�!C¢F�‰úƒ>ˆ3Ï<3Ú´i'œpB,X° ^~ùå¸ì²Ë’î»òÊ+ã§?ýiÒ½›s饗&>÷éÓg«î~X2JJJJRÝÄö¸÷Þ{ãÜsÏÝäõ $íÒÝ”·ß~;òòò¶ê™Õ«W�•+WnqÞ‡~˜ØM¼dÉ’Øc�=¶xO£F�bÁ‚e^›;wn 80žþùX¾|yì¹çžqä‘GFïÞ½ãÄOLÌ»å–[bøðá±|ùòÈËË‹_ÿú×ѽ{÷­úµ­[·.ªU«ÙÙÙñå—_nup¼3Ì™3'Zµj•¨ßþ‹h¹Ïî)ìØV« ×ÅÍ“þûNó뺹ÙUSØ@šè9:Õl“R¹Ï;ïDË–-SØQúÉLuÛ«o߾ѷoß^ç°Ã‹ŠÌÀëÕ«·ÃëtÐA1nܸ-Î0`@ 0`»žñÅ_ÄÚµkãÌ3ÏüA…¿ÀÖÛe�€¦|M™2%""úõë—âN€í%&""F�-Z´ˆcŽ9&Õ­Ûi—=šòóÒK/ÅÌ™3cÔ¨Q©nHSU«dÄa�”TåO\É­^½:.¾øâhذ¡ãŸ� “•Y%º¾oªÛ€´'®$>þøãèß¿,]º4?üðèׯ_4jÔ(úõëï¼óNŒ=:rrrRÝ&°À•Äu×]�=öXDDLŸ>=n½õÖĵO<1Î9çœTµ”“*©n€�£~ýúeŽyä‘1f̘ÈÈð>NØÕÙ\Iüሕ+WÆ”)SbÅŠqà�FïÞ½ãÒK/�ìììT·¤¹uÅÅ‘ÿÙ²D}Ⱦ»GÕ*þ ”7p%Q³f͸ûî»SÝPI­-*‰I¯}–¨[ìU;ªú·'Pîl¿H`€4áhv9³ö<=–ïs@ªÛ¶Áš5kbAíûõ̽ωœœœv�&fÌHuÀFÚ·oŸê¨äìH`€4!H`€4!H`€4!H™©n€ô—••'Ÿ|rR ”?0®J•*Q·nÝT·iÏÐiB �&ÀiÂ;€¨p………ñØc�%êŸÿüç‘���ÂŽ = €¨p%%%ñõ×_'Õ@ùs4@š¤ 0@š¤ 0@š¤ 0@šÈLu°+úâ‹/J�}òÉ'¥Æ7n\ñÍÀÿÀv8å”S¶j^IIIwÿ% ÂU©R%6l˜TåO @…ËÊÊŠ®]»¦º H{¶`¤ 0@š¤ ï ÂÇW_}•¨4hUªø7HÀ®mâĉ¥ÆòòòRÐ ü—€ ·víÚxüñÇõ9çœ999)ì`Ç5lذÔXãÆ�w~#°Û¯Ò„ M€Ò„ M€Ò„ M€Ò„ M€Ò„ Md¦ºÒ_ffftîÜ9©ÊŸ¿� ÂU­Z57nœê6 í9 M€Ò„ Mx0níÚµ1mÚ´DݱcÇÈÊÊJ]C�¦ÀT¸âââøôÓO“j ü9 M€Ò„ M€ÒDfª€mÕºuëhÙ²eªÛ¶ÁêÕ«ã…^HÔGqDäææ¦°#HOv¤ 0@š¤ 0@šÈLuÀÿgïþcí¬ëŽÎÏ{-Ò[¨etÞ®§ ônP¬u]mÜ’B0Ìʬ,óGˆY"þ¨‰ÉjØ 1KIf�É¢›ÄeN4¦©Ãm˜7c0VdÒ†K‹Öµ›ë;ï=çÜsöî„#ø£íyîÓûéë•4žÏí½Ïýô¼Éyßçû@~•J%–,Y24£'³à\ñ±ôñ²×NÙ²ˆˆèÿñ;JÞòr4@0@0@0Åë÷#fOFÌžŒ£G�F¿ß/{#HI xs�ˆ'öD<±'vîܳ³³eo) ÀIÀIÀIÀIÀIÀIÀIÀIÀIÀIÔË^€s@µñK¯‹ˆˆk¯½&êu?~ Þ� xÕZÄÅ—DDĆ J^òr4@0@0@0Å›ëF<÷DÄsOÄž={¢Ó锽¤T/{Îý^Äýߨ³§«V­ŠÕ«W—½¤ã`æÏ¿}5î¹çž˜šš*{HIHBHBHBHBHB`þ\yM|àˆ§Ÿ~ºìM %€ù3¶(–,Y+W®,{HIHBH¢^öœê͈7üvDDìØñŽ’—€¼Ü �„ �„ �„ �„ @ñºíˆþBÄ?!vìØ333eo) ÀIÀIÀIÀIÀIÀIÀIÀIÀIÀIÔË^€s@¥ñ —DDĆ ¢V«•¼ä$P¼Z=båë""âÚk¯-yÈËÐI¸˜çß/¼+._æøXX°>úþ—ÿøï›ß= !w$á` ×�ëÇ£ß�ÌWýb-êµJ‰@N0…ëö"öìëæµ×¢î$w9G@$!$!$!$!$!$!$!$!$!$Q/{ò«GܱalhFÏ[ð®R©Ä’W”½äçh€$`€$`€$<€ÂÍvûñ‰GÚƒù¶õÍ«WJÜr€(\¿qt¦?4£çh€$`€$ @©¦ÿ§÷£Óƒ�µZ­Rv€…N T«îùÁ /îY5øXßC‚à´8     ‰zÙ �_µ1õªÚÐüÿžýÀ+_xqÇ“ó¼ä#P¸f½¿³¦ñ²׺àG‡Q´Zó·$åh€$`€$`€$<€ÂÍõúñÌ÷ó¥K«Q«VJÜr€(\g.â/ÿ½3˜·o‹š3(`ä¼ý�„ �„ �„ �„ �„ �„ �„ �„ �„ �D½ìȯY‹¸imshFO pÕj%ZTÊ^Òs4@0@0@ž @áÚÝ~üÅ“�Áü»kѬ{&0ŒšÌ‚ó7—ÜßZ±¢ì5€SÐn·ã+ÿ±{07yk4›ÍáOºï¾yÞêìñ¶·½­ìHÂÐIÀIÀIÀIÀIÀIÀIÀIÀIÔË^€ü*•J,Y²dhFO p�F#¶lÙRö�ž# ’€’€’ð ` ×ëõâØ±cƒybb"ªU¿ƒ£&P¸n·>øà`Þºuk4›Í7€œÜ~�„ �„ �„ �„ �D½ìà\tøðáÁëéééÁëV«5ÿË�† %¸ýöÛ_öãý~ž7 G@$!$!$áÀ®V«Åúõë‡f`ô` W«ÕbÕªUe¯é ÀP‚�üãƒ××]w]‰›�‰ %¸è¢‹¯[­Vy‹�Jµì wP¸n·�=öØ`^·n]Ôë~À¨y÷€Âõz½˜žžÌk×®-oHÌÐIÀIÀIÀIÀIÀIÀIÀIÀIÔË^€sC£Ñ({HO pÍf3ÞúÖ·–½¤çh€$`€$`€$<€Âõûýèt:ƒ¹ÑhD¥R)q#ÈI p�N'vïÞ=˜·nÝÍf³Ä� 'G@$!$!$áÀ,8[¶l‰Ë/¿¼ì5€S033ßþö·ó 7Üããã%n9¹      ‰zÙ �_½^�«¯¾zhFÏ;ðîÇ0P G@$!$!$áÀ®ÛíÆÃ?<˜7mÚõºA0jÞ} pÝn7zè¡Á¼aà àh€$`€$`€$`€$`€$`€$`€$`€$`€$`€$êe/@~ccc±}ûö¡=€ÂU*•/{ HÏÐIÀIÀIx0…›™™‰�;wæ;î¸Ã3� 0óbff¦ì =G@$!$!$!$!$!$!$!$!$Q/{ò«Õj±víÚ¡=€Â5�غukÙk@zŽ€HBHBHÂ3€(ÜÜÜ\<ù䓃yÍš5Q«ÕJÜr€(\§Ó‰Ý»wæ©©) àh€$`€$`€$`€$`€$`€$`€$`€$`€$`€$êe/@~Íf3Þ÷¾÷ ÍÀè À,8_}ê»ñÔì+Ë^8ß=Xö?Õ¶u+Ë^N‹# ’€’€’ð ` ×iÏÆßßÿùÁü¦ßÚ�æX‰@N0…ë÷ûqô¿� ÍÀè9         ‰zÙ �_µZ�‹–OÍÀè À®ÞhÆÕ¿µ­ì5 =·`$!$!$áÀ®×ëÅ}ï;ƒùU¿:ªU¿ƒ£&P¸n§=pß`ÞzÓmÑ/q#ÈI �Ãß=8’ëL_Ø?£¯oµZ#ÙN• @¿wýæÑ\ç ¿¾ß?³€ §Ë’€’€’€’€’¨—½ŒÊ?ð#¹Î›¯˜Éu`¾ À¤qÑ/®ÉuZ­•#¹Ì7G@$á` W¯7â�[®š€Ñ€(\µV‹W¯º¤ì5 =G@$!$!$áÀ®ÛiÇ7ÿnÏ`þµß¸6ê�f‰@N0…ëõzñ�éýC30zŽ€HBHBHBHBHBHBHBHBH¢^öäW©Tâ¼óÍÀè À®Ñ‹7ÿîÍe¯é9  G@³à\Ó|*.ûAÙk™í}¬ì ~ºËßZöœ¥` ×ï÷ãØ‰ÿÌç/ŠJ¥RâF�“ @áfÛ�Øyïƒyû-7ÄøX³Ä� 'ÏHBHBHBHBHBHBHBHBHBH¢^öäW¯ÕâÚM¯š€Ñ€(\½^‹ ¯[]ö�ž# ’€’€’ð ` ×étão¿ùoƒù7íÊh4ü€Qóî;…›ëõ⟞øö`¾zýÑ(qÈÊÐIÀIÀIx0Ì£éï>ó‹œ7}F_ÞjµÎ|ÎJ0Ì£U×¼¯ì¢ßï—½¾þo IDATq4@0@0@0@0@õ² ¿ñ±fì¸ýwÊ^à¬ðìWÿäÌ/rÙ5g~ R€`µ^}Ñ.Ò:ók�’# ’€’€’ð ` 73ÛŽ?üÓ/æí·ÜãcÍ7€œÜ �„ �„ �„ �„ �„ �„ �„ �„ �„ �D½ìȯV­Æ†×]64£'P¸F£×nZWö�ž[°’€’€’ð ` ×íÎÅ£{÷ æ«.¿$êõZ‰@N0…ëÎÍÅž‡ÿu0¯�Z%@`œï½òŠ˜˜X]öÀ)˜™™‰ããßÌÏ/þÕ/q#€îùçËÞø &''Ë^€sœg$!$!$!$!$!$!$!$!$Q/{ò‹›o¾yhFO p•J%&&&Ê^Òs4@0@0@ž @áfggãÞ{ïÌïz×»bll¬Ä� '€Âõûý8~üøÐ Œž# ’€’€’€’€’€’¨—½”íàÁƒ#¹N·Û=£¯oµZ#Ù€s— À9oãÆ�e¯ý~¿ìXà �„;€(\µZ�×¾öµC30z0…k6›ñ–·¼¥ì5 =·`$!$áhÎyßøÆ7Fr�åË—�ä:pº` 777Ï>ûì`^µjUÔjµ7¶bÅŠ‘\grrr$×€Ó%P¸N§÷ßÿ`~ÿûß/@<          ‰zÙ �_³ÙŒmÛ¶ ÍÀè À®Z­ÆŠ+Ê^Òs4@0@0@ž @áÚívìÞ½{0oݺ5šÍf‰@N0…ëõzñüóÏÍÀè9   ÏfÁ¹øâ‹crr²ì5€S033‹/Ì“““1>>^âF�“;€’€’€’€’¨—½œª}á_b⟾_öÀ)˜ëÌÆÓ�=7˜Ÿü³‡£Ö+q£³ß_ݼ¹ìX€`æA%Æ'–ÍÀè À®ÖhÆk¯~KÙk@zž �„ �„ �„gP¸~¯³'þg0��ATª~ FM p½¹NìèKƒyêºwD­:VâF�“Û¯’€’€’€’€’€’€’€’€’€’¨—½ùUkõxõë7ÍÀèy€ÂUªµXòK—–½¤çh€$`€$`€$<€ÂõºÝ8ôä?æåk~=ªu?‚~ÜÉÿ:4x===­V«œeX�¼û@áúý¹8zà™Á|ño?‚^ê+Ûo¼^µý…ÿí÷û%mÀBäh€$`€$`€$`€$`€$êe/¼àº?üÜàõÇo|C‰›°P Àp–8ïU˯[­Vy‹°`9  G@0/j�fÙ+@z0…«5Æbêºw–½¤çh€$`€$`€$<€ÂõûýèuÛƒ¹ZoF¥R)q#ÈI p½n;žþÊgóÔuïˆZc¬Ä� 'G@$!$!$!$!$!$!$!$!$!$Q/{ò«Tk±lõë‡f`ô` W­Õ㢩×ÿìOΈ̂óG¯üB\¾xIÙkëóZÌu·ýy1×à¬àÀIÀI8€ÂuçzñðÓ‡󦩋¢^ó;H0j0…ëÎõ㡽ßÌ.]õZ‰ @Rn¿HBHBHBHBHBHBHB^vîÜK—.�×¼æ5ñµ¯}­ìu€³”|vìØ•Jåçþ³gÏžÓþ^û÷ï�}èCñýï?ž}öÙxÏ{Þ3 �‰|n¿ýöxä‘GâÞ{ï�+¯¼òe?ç¶Ûn‹/ùËñøã�ÇæÍ›Oû{õz½è÷ûƒùů^¬^ö ѲeËbÙ²eqÕUWÅÚµkcÍš5Cýõ×Ç®]»Fò½.½ôҸ뮻âcûX,]º4>ñ‰OŒäº?�C‡ÅòåËçíûy�5ª±}ëš¡=ïÀŸ¡+®¸"-Z4ô±3¹ã÷å|ä#‰£G�ÆþýûcË–-#½öOòÄOÄ-·Ü2/ß È¯R©Äx³6øS©TÊ^ R€Gà‚ .š/¼ðÂ’6�'NĶmÛâäÉ“e¯œxêõá“´kµZI›œ¹~¿7ÝtS<óÌ3e¯œ"ÏfÈ�wÞ_üâË^HªßïG¯×‹~¿_ö*üH¥R‰jµêñ}IÀ L·Û}ÉÇ£Ðn·ãƒü`ìÚµkäטiÏÅί<5˜ï¸îWb¼¹pOKNM§Ó‰cǎűcÇ¢Ó鈿g¡J¥�F#&&&bbb"�FÙ+qš½ÌÎÎÆý÷ßï|ç;cݺu?óó÷îÝ·Þzk\vÙe±hÑ¢¨T*/ùóøã�>¿ÝnÇÆ�_¿þõ¯}Í’%KFþoÎ3í¹ÁàÜ0;;ˆ}ûöÅ‘#G¢Ýn‹¿g©~¿ív;Ž9ûöí‹ÄììlÙkqÜ|–êt:ñàƒÆç>÷¹øÒ—¾ÇŽ‹ˆˆ•+WþÔ¯ûô§?·Þzkœþùñá8ÞøÆ7ÆØØX<úè£q÷ÝwÇþýû_ò5Íf3>ûÙÏF¿ß�w¿ûÝñÈ#�DDÄúõëã3ŸùÌàóò³�ÎeÓ‡ð¢azð²ÕjÍû.œ;:�N8p ºÝnÙ«pNž<ˆV«ånàF>KÝsÏ=1==ív{–½{÷Æ{ßûÞèv»qß}÷Å›Þô¦Áß­[·.n¼ñÆØ¸qc<õÔS/ùÚÕ«WGDÄ¢E‹[´hQLMM�á¿€²­ú½=ÛýE¯ýÆ5E™››‹ƒŠ¿ \·Û�ƒÆÊ•+Ý(¸€Àg©;ï¼sðúäÉ“ñÀü̯ùÔ§>Ýn7&&&†âïÿ›˜˜ˆO~ò“±yóæ‘îz*>GŽ9¥¯Ù·o_AÛE8tèÐKŽ ­V«±xñâX¼xq4�¨V=¡àlÑëõ¢ÓéÄñãÇãøñãÑëõ7;;‡ŠÉÉÉ7äTÀ ÀÔÔÔÏ€¿õ­oEÄ ÿ!þð‡?ŒW¼â/ùœM›6ÅúõëG¾ãÏk×®]ñÑ�~´´ïknn.Nœ81ô±f³+W®ŒzÝ[Òg«f³ç�w^,[¶,ž{î¹h·Ûƒ¿;qâDÌÍ͹ x�ð+V À‹�eþiÆÇÇ#"bff&î¾ûîŸøyoûÛG²À�;yòäÐ\©TbÅŠâ/ÀQ¯×cÅŠQ©T†>þãÿÿÎÙKNäÍÿÇÞ�Ç×xæÿgOHË bW©ZŠF©ÆV†"kKR­nÔV”¶:TµjmMÕPZÚZBKì�åkíØ·ÚƒX ‚ìç÷‡Ÿ»9ÙCNŽœ¼ž�ÇyÌ}Ý÷uß÷çÜ9Içá}®ëêÐÁØþôÓO5jÔ(Ý»w/]¿áÇ«^½zùY€B"íèß"EŠÈÙÙÙJÕ†³³sºб±±Vª¹ÅW®lHPP�fÍš¥={öÈd2iâĉZ´h‘¦L™¢®]»Z»fû7oÞ¬úõëkÈ�!ÌÑ…ŒOi÷¿^>>Æ €¼–’’’nŸƒƒƒ*<ªŒþ~gôw�`äî~úI7nÔÓO?mìONNÖ7ß|£gžyF§OŸ¶b… {;Õó)i¼ìù†¶Èd2¥ÛÇH1(˜2úû�Ñßy<~€3)))º{÷nž\«uëÖÚ¿¿æÏŸ¯jÕªûÿüóOµk×N yrÈŽ“£½?a¼œùÏ–À¿À?f¾üòKuèÐá¡ÎíØ±£._¾l¶ÏÎÎN¯¼òŠ>¬ÁƒûO�:¥E‹=R­/À�‘¨¨(MžñññúöÛo%IMš41›ú�fÍšÛÉÉÉêÑ£‡vìØ¡M›6©uëÖºråJŽÞ¤–˜dÒò=ç�WbRÖ³€‡ãhí ²7nhøðáéö/\¸Pû÷ïWíÚµU¬X1ÙÛÿ•³ÇÇÇ+::Z—/_ÖÁƒÓ�~0ýóÉ“'uùòe­]»6] Ü£G >\uëÖUÕªUÓÝ?<<\õë××СCÕ¢E ¹ººêرcš%ÀãèâÅ‹ŠˆˆÐ³Ï>kíR`IIIÚ¶m›üüüäææfírä!à‡0}útMš4I/^ÌtýßcÇŽéØ±c¹º®ƒƒƒZ·n-é~|úôé ûíÚµK���’îO íîîž®OTT”F�m´‹+¦:uêhÖ¬YêÛ·¯3þÑ)RD6lÐÀ�µ}ûv¹¹¹©aÆzÿý÷õâ‹/æêý&“I{öìQhh¨BCCµÿ~[ÀÉ“'5gέ_¿^.\Pll¬Ê”)#???½ûî»ò÷÷·J]çÏŸ×o¿ý¦ 6hÆ ŠŽŽÖÙ³gåããc•zXðC0`€ `Ñ{œ:u*×焆†æÉ½kÔ¨¡õë×çɵàa�5J'NÌðX… ôǨL™29ºÖ”)S4bĈlûMž<9Ù º… jÈ�!ºvíšµK±yß}÷�† ¦€€}ûí·º~ýº†ªsçÎéüùóZ¼x±æÏŸ¯W^y%ßjš6mš¾ùæ�9s&ßî ÀzXðX2dˆ6oÞ¬áǧ›ÕðâÅ‹ TbbbŽ®¬õë×kÒ¤Iª\¹²Ù1///�3Fk×®UpppžÕÿ8 Txx¸ÂÂÂääädírlÖâÅ‹õÞ{ï©lÙ²š?¾š6mª€€………ÉÓÓÓè·víÚ|­«_¿~:~ü¸NŸ>­'Ÿ|2_ï ÿKeË–•¿¿¿&Ož¬uëÖÉÅÅÅìøŽ;ôÞ{ïåèZÞÞÞzñÅ5bÄíÙ³G%K–”$ÙÙÙiݺu;v¬Úµk'ooï<�ggg¹ººªeË–ªS§ŽµË±I±±±8p L&“Ú´i#{û¿"˜*UªhéÒ¥*W®œ*T¨`ñYFÓ*R¤ˆœœœT¥JõîÝ;_ï�ܹ|ù²µK€ <öZµj¥Áƒ§Û?kÖ,͘1#W×*Uª”:uê$IjÞ¼¹6l˜'5Ö.Á&ýòË/ÆÛMMÞ²eK]ºtI.\�ŸŸ_~—gÈé´éÈëׯ×èÑ£­]l0 @pssËpÿàÁƒµmÛ¶\]ëÁ4¸¾¾¾�\ I+W®4¶¬XIÖçÚ ³‹/ªwïÞJNN¶v)°À€¥víÚfíÄÄDuíÚU.\Èñ5¬Çšz]VàQ9rÄÚ% €Š‹‹S·nÝiíR`#€ÊðáÃÕ­[7³}×®]S@@€îÝ»—£k8;;K’œœœò¼>Nׯ_·v (€’““¤Ý»w[»Ø`@�bgg§yóæ©qãÆfû÷îÝ«~ýúY©*vqqqÖ.Ì­[·Ô­[7-Y²ÄÚ¥ÀÆ,ÎÙÑ^ï¼XÓx9;òŸðhÜÜÜ´bÅ =ñÄfû,X I“&=Òµ§L™";;»t¯×^{ͬ_LLL†ýììì4vìØL¯Ÿ�� ÐÐP©Q£FÆþ[·niêÔ©zá…Tºti)RD¾¾¾š4i’âããÍ®a2™´fÍõèÑCUªT‘«««*T¨ èÆ�¹~Ï&“I!!!jÓ¦�J–,)WWWùøø((((Wë+›L&-]ºT½zõR•*UT´hQyzzÊ××WC‡ÍÑ4É÷îÝÓ‚ Ô¶m[ãÞ÷îÝÓ¸qãT¥J¹»»«C‡ŠŽŽÎõûLkÛ¶m2dˆêׯ¯Ò¥KËÙÙYeʔѳÏ>«O>ùD§OŸÎôܹsçšýÌM&“qìÓO?Íöóó0îܹ£éÓ§ëÅ_T… äââ¢Ò¥KËÏÏOŸþ¹Å¦NLLÔ¼yóÔ¹sgUªTInnnòòòRýúõõñÇ+<<<Ûk\¹rEß~û­š7o®/¿üÒØàÀ 4Hµk×–‡‡‡¼¼¼ÔºukmÞ¼9Ý5¢££5mÚ45kÖÌøiР�æÌ™“ã÷ò¨Ï0!!A6lЀT©R%]¼xQÒýÏþ²eËÔ¾}{•-[Vnnnzúé§5uêT%%%¥»Îµk×Ô Aýç?ÿ1Û?oÞ<³ÏM½zõÒ�k2™´hÑ"ýýïW™2eäèè˜îó–Ñy(<øx€ÅÙÛÛ©¬§›ñ²··³vIÀ”-[V¡¡¡òðð0Ûÿá‡jýúõ}Ýàà`mذAmڴɲ_±bÅtðàA…††Êßß?˾wîÜÑÏ?ÿ¬îÝ»ËÛÛ[;vÔÏ?ÿlL¼qãFÕ¬YSÆ Óÿýßÿéúõëºw=ª‘#GªG�JNN–$�8qB-Z´P‡´xñb�={VñññŠˆˆÐwß}§¦M›êæÍ›9~¿÷îÝS`` zöì©ß~ûMÑÑÑŠ��Wxx¸~þùg5oÞ\o¾ùf†!Vj'Nœ�ŸŸŸ>ùäµk×NÿùϦ‘#GêâÅ‹úúë¯U¯^=�7.ݹBñàà`•)SF¯¾úª6lØ äädÅÆÆªM›63fŒÎž=«;wîhÍš5š6mZŽßcZgÏžU«V­Ô¼ysíÛ·O~ø¡6lØ  6(88X‡ÖøñãU«V- úè#‹>ÃeË–©gÏžòööVÛ¶mõÝwßéüùóJJJÒ… ÔºukjíÚµºzõªâââtèÐ! 6L¯¼òJºë•(QB¡¡¡:vì˜þö·¿ûÌ>7Ë—/7;/>>^;vT¯^½£éÓ§ë�?þЖ-[4|øpcz{nŽÖ.€‡U§N-Z´H�:u2Ò””õìÙS{öìQõêÕs}MoooµiÓF 4�···ÙÈÎÔìííU§NÕ©SG5kÖÌò^×®]Sdd¤j×®�.Й3gŽú÷ï¯Î�;+ @µjÕRrr²¦L™¢Å‹K’V¬X¡E‹©|ùòêÒ¥‹5jÔ(U¬XQÑÑÑš3gŽæÎ�+I:~ü¸&Nœ¨/¾ø"Gï788Ø…X¶lY™L&]½zÕ¬ÏìÙ³uëÖ-…„„dx�ƒªuëÖªV­š~ÿýw-ZÔ8æçç'???µlÙRIII3fŒ’’’Ì‚à×^{MîîîZ·n�nß¾mìð³¼{÷®ºvíª¥K—?�¨¨¨½¿´víÚ¥Ž;***Jƒ Ò×_-;»¿,øûûëÍ7ßT›6m®iÓ¦éÿûŸÖ®]köeƒâÅ‹«xñâÞ£T©RªU«ÖCÕ—‘_~ùE¯½öš  o¾ùÆìXË–-åíí­qãÆ)**J���Zµj•Ú¶mûÈ÷ S§N�Ô®];…„„ÈÑñ¯XéùçŸW�5ôúë¯ëÎ�;zë­·äàà ×_ÝèsôèQyzzªdÉ’JII1öß»wO�:uÒÞ½{5|øpµjÕJå˗שS§4xð`…‡‡+%%Eo¿ý¶Ú¶m«O>ùDË–-Ó| ¦M›ÊÓÓSÇŽÓèÑ£uüøqIÒĉ”ésÔgèåå¥÷ß_.\ÐÎ�;�ýÇŽS¿~ýT«V--Y²DÕ«W×ùóç5fÌíÛ·O’´dÉ-^¼XÝ»w7Îsrr2jM½yñâųüìŒ;Ö²7oÞ,WWWãØ /¼ V­Z©C‡™ž�Â�À€­}ûöúꫯÌöÅÄÄ( À,LÌ-///•.]:G}+W®œíñ¡C‡jìØ±êÔ©“±?""B“'OÖ¾}û´xñb½òÊ+jР�5j¤ ¨N�:FßQ£F©K—.Z²d‰¾ÿþ{µk×N¾¾¾jÖ¬™~üñG³ÐgÞ¼y™שmß¾]+W®ÔèÑ£¥Ë—/ëÊ•+:uê”zöìiÖwñâÅš9sfºkÄÆÆ*00P7nÜмyóÌÂßZ´h¡fÍšíÏ?ÿ\û÷ï7Ú ,ЬY³4cÆ ³ó>ÿüs•.]Z¿ÿþ»–,Y¢ÐÐPU­ZU+V|¨õžÏŸ?¯Î�;+**Jõë××Ô©SÍÂߪW¯®õë×ËÅÅE’´cÇõîÝ;GÏ4¯8p@o¼ñ†|||ôÏþ3Ã>Æ S‘"E$ÝŸ®¹oß¾�¼&qDD„ºwï.'''Íž=Û,ü} 88Ølö�êòåËF»sçÎêß¿¿æÏŸ/cÿW_}¥ *èìÙ³š8q¢^|ñEùúúªsçÎf£~£££Õ AŒLæÇ IDATýþûïÚ¿¿FŒ¡çž{Nµk×V`` 6nÜh )))úé§Ÿ2|/yñ _xá5nÜXï¼óŽÙy=zôÐÈ‘#¦®]»ªnÝºêØ±£ÂÂÂäååeô›5kV†÷Í�””Íž=[’Ô¶m[³ð÷�víÚ©oß¾�|/lÀ€oàÀ�0`€Ù¾£G�>rh—QÀ’‘ÔáVvªV­jl'%%iãÆ�ª]»v†×ìÕ«—Ѿxñ¢&Mš¤V­ZexÝ>}úÛ—.]Ò™3g²­åôéÓúõ×_õÙgŸ©dÉ’f5.\¸0]Øõ�ü#ÝzÄãÇ�שS§ÔªU«,GA¿ôÒKÆvJJJ†ë¶>ùä“fíëׯkæÌ™Æómß¾½N�:¥óçÏëé§ŸÎöý¥5hÐ cÚíaÆeùs«Y³¦F�e´W®\iŒÈÎOo¿ý¶ôÆodÂJ÷§#oÞ¼¹Ñ¾|ù²V¯^ýH÷6l˜nܸ¡=z¨D‰ö±··Wûöí�öÝ»wµ`Á‚týŠ/n†6oÞ\³fÍ’››[º¾�5R�5Œvdd¤V®\ivþ*T0›~=³õªóò–-[Ö¬=iÒ$ 4(]¿%J¨k×®F{÷îÝf£ Fdd¤±FqLLL¦ýÞÿý ¿Ø€Âƒ) Qà(ÛC·+V±vráÁ.¼ôÒK¬Ea-»w[»À¢üüü¬]+úæ›otúôi­[·ÎØ·råJ�3&Ãug­%mèU±bÅLû¦ D«U«–iß´ÓÆž:uÊ,lΈ¯¯¯Y0›ÖÔ©SµfÍ�?^Òý©¬—-[fÓwîÜ1Fg·ò3ÏiŸÍ믿n6=î£8|ø°V¬Xa´_|ñÅlÏéß¿¿¾øâ %&&Jº?"¹G�yRONìØ±Cÿýï%åìù¦þìïÚµK���ußððpýúë¯9¾ojý\%óŸm… ²¼æ“O>©'NH’<==UªT©LûÖªUËxß§N�Jw<¯ŸaÚÏcVÓ5ûúúÛwîÜQttt†AvN¹¸¸ÈÎÎN&“IK–,ѨQ£Òý��¤Úµk›Ý…#€g2™tãÆ ãe�©r€ísppPHHˆžzê)³ýãÇ�ײeˬTÕ£)V¬XŽû¦^ŸVÊz„àYkÒýÐ.íÈêÍ›7Û›6m2î3zôh9::fúj×®�ÙuROœOOÏlûäTêð·xñâòööÎöœÒ¥K›…†‡Ò¹sçò¬¦ì¤þÜ>ÿüóY>ß &˜�›“ç›™•+Wkj÷îÝ;Ëû¾ýöÛyvßösŸÑgÞZÏ0mmÒýøQ/^\M›6•tå–-[jíÚµöýå—_é^(Ø °ÅŠShh¨ž}öY]½zUÒý/§©zõêfkêöö9Ç•¶ï£®û@—.]4räH£}äÈc{ûöíÆö§Ÿ~ª€€€_7³©x-eÇŽÆvÚ`.+�5ÒÆ��ö®]»äãã“—¥e*õó]½zµÊ—/Ÿãs‹/ž'÷ýþûïÕ¸q㟛Ѵιõ°ŸûŒ>óÖz†yÔ) ¥û£ò›5k¦„„]¹rEíÛ·W§N�4uêÔlGü£ð Ø”J•*iÅŠò÷÷7¡;wî( @¿ÿþ»ÙZ·¶,¯fa«ZµªŠ/®›7oJ’¢¢¢ŒcáááÆ¶··wºÑ×�“+W®ÛwïÞÍñy5kÖ4k_»v-ÏjÊNêçëãã“®–ü¸oùòåëŸkv¬õ -¥Q£FZ´h‘zõêe¬Ç½råJ­_¿^ï¿ÿ¾>úè#¹»»[¹JXS@lγÏ>«yóæÉÎÎÎØwæÌuïÞݘÚ9cggg¶N±³³³±�áöã(66ÖØ¾}ûvŽÏK; unÂãGe­ç[�~®Ù±¥÷òÀË/¿¬íÛ·«F�ƾøøxM˜0A5kÖÔÒ¥K­XÀ›Ô½{w�7Îl_XX˜†n¥Š ®Ôk²¦^;7õ4Îù¹6îÃ(Q¢„±�˜˜¨K—.åè¼¢E‹šµ³[79/Yëù¤Ÿkvl齤ְaC8p@ãÇ�7›ÒüÒ¥KêÚµ«Þyç¾ìRˆlÖèÑ£Õ§O³}_ýµæÏŸo¥Š ¦ÄÄDc;õtÀ©§Ó Ëõuïܹóh…åB¥J•ÌÚû÷ïÏÑy©GKÊ·õ¥G{¾‰‰‰f?·üº¯”¿£¤³c­g˜\]]õñÇëìÙ³6l˜\]]�c3gÎL÷À›6{öl=ÿüófû~ûí7+US0EFFÛ/¾ø¢±�: >uê”6nܘãk†††*(((o ̳ö¶mÛrt^DD„±íì쬦M›æeYYJý|CBBÌÖ_η~¨ÿûß�|ß°°0ýùçŸ9>÷Ûo¿Õ'Ÿ|òP÷µk=CKˆŒŒTÛ¶mÓí÷òòÒ”)StàÀÕ©SÇØ?uêÔÇ*ŒGþ!Fâ%%%åê>>Ûkži´�?®W^y%Ë@üÔ©Sjݺµ4h 6mÚX®ð4Ê•+§7ß|Óh‡‡‡kÅŠYž“œœ¬Õ«WK’ìíí5zôè û¥¤¤dÙ~XAAAfÏûÇÔÔ©S³3k/[¶L 6ÔêÕ«ÍÖO½zõªÆ�§F�)&&F3fÌHw­´5ß»w/Û÷�_|ñ…jÕªe´‡žî¹¥öóÏ?ëÒ¥K’î‡ßO?ýt†ýbbbÌÚÑÑÑyP­T¾|y½ûî»fû† ¦nݺé�?þ0ö™L&=zTýúõS@@€j×®­áÇgxÍ´_ Èh�[777}üñÇfû¦M›¦V­ZiëÖ­fwxx¸† ¦^xAîîîúòË/3¼oêçœÝç.õç »u¢³ûÜçõ3ÌÍhÿ´Ó/gö¾Ë—/olÿñÇf?“ØØX-_¾Ü¬ÿ„ ”���é}oÞ¼)éþúǾ¾¾9®¶ƒ`qööö*W®œñ²·ç?? wîÞ½k¬Ùº~ýú‡aÙ²eK}÷Ýw9îÿúë¯Û&“I:tÐôéÓµoß>mݺUü±êÔ©£>}ú˜­ »xñbÍ�;WûöíK°¥-|áÂ…LïŸöXêéˆÓ:vì˜Y;³ ¼T©RÆöÁƒÍÖ¸M-!!AAAA:qâ„zõê•a`+I���é¦r>pà€^zé%yxxÈÇÇGžžž*[¶¬ÆŒ£¸¸8…„„¨zõêÙ¾‡ÿþ÷¿ÞóayxxhåÊ•òññ‘$�>}ZÁÁÁ† ‡ÖСC%Io¿ý¶>úè£L¯»oß>³ö®]»ò¬æ/¿üR 40Û÷믿ªQ£F*V¬˜*W®¬"EŠÈ××WsæÌÑO<¡eË–™�*ͪ¶ãÇ�gØoÈ�!jß¾½Ù¾Í›7Ëßß_ª\¹²ÜÝÝåã㣩S§ªH‘"Z¾|¹Ùçë�ÈÈH]»vÍhgõ™O{<222ÓϨ”³Ï}^>ÃË—/›µÓ†ÿ©�9sƬ}ãÆ� û5kÖÌØ¾~ýº‚ƒƒµgÏ­^½ZÍš5KÿùçŸ0`@†�òîÝ»µsçNIÒøñãåììœi}°]cÇŽkí"€¬\¿~Ýìÿ�æË” òŽƒƒƒjÔ¨a¼¬]U¡Bk—j)))é//¯Gþ2øÞ½{õæ›oêðáÃ’îO‘zôèQÕ­[7ð); 4ÐÝ»wµsçNùûûËßß?Ó¾U«VÕ­[·´{÷nIR||¼Ö¬Y£™3gjîܹڻw¯¾úê+ 0@ ,0¦‰vttÔíÛ·e2™ôÌ3ÏèîÝ»:pà€~øá}ÿý÷f÷8~ü¸Ê•+§äädyyy)))IGŽÑîÝ»5nÜ8EFFš=‹âÅ‹ËÁÁAžžžrrrÒ‘#G´bÅ �=Ú,Œ:tè�<==•’’¢%J#Ÿ›6mªƒêÌ™3Š‹‹Ó¼yótíÚ5%''ëÎ�; ×òåËÕ·o_:tH&LÐäɓͦÑM«C‡ºwïžvïÞmJ%''ëæÍ›ÆºÀÕªUÓòåËÕ¢E £�ÉdÒ¾}ûôË/¿hôèѺ}û¶Ù{¸wïžÿP?ï´¼¼¼Ô«W/?~\'NœÐ‘#G´jÕ*¹¹¹Éd2éÌ™3š3gŽÞxã 9::jÊ”)7nœÙ:­ÒýQ¾G�Õ¦M›4jÔ(³©{/_¾¬sçÎÉÑÑQwïÞ•««k¦�lvœœœÔ³gOíß¿?Ýz® Љ‰1F¥¶iÓF«V­RÅŠÍúÅÄÄèÿûŸ¾úê+Íž=ÛìØÿþ÷?y{{+))IÅŠ3>'vvvêÖ­›ÎŸ?¯˜�“˜˜¨˜˜#8oذ¡BCCÍFÌK÷ÃØ={öhذafahxx¸\]]åââ")RD‘‘‘:räˆBBBôÃ?˜}Ž~ÿýwy{{Kºÿó‹‹‹ÓöíÛ5cÆ Í�;׬ï�TªT)%''çäÅ3”î�þ5j”NŸ>mìKNNÖË/¿œîß<¯^½ªAƒ™}ž‹-j¶†ö5kÖÔìÙ³�ߓÇköìÙ ÑG}¤àà`I÷¿3yòdI÷ÿlذA®®®JIIщ'ôÓO?éÝwßU||¼>ýôS 6,ݽrÃRÓÓæ>ýû÷WéÒ¥éš0gg²¥…`“Ž9¢§žzÊhÏŸ?_UªT±bEàqåççgí€B-)))Ý:¹Õ«WÏ28ÌÊ¿þõ/�;6ÓQsÒý©SW¯^­ºuëæêÚ))) Tݺu•“qR‹/ÖôéÓµÿ~%&&ªR¥JêØ±£  J•*I’Þzë-999©K—.zá…ÌÞ÷ܹsÕ·oß,ïQµjU�:uJ/^Ì0|JkÛ¶mjÖ¬™êÕ«—. KëÁÈÍÔ<¨Õ«W+,,LgÏžÕµk×”””¤Ò¥KË××Wí۷׫¯¾š«9‡Ö¬Y³ôÛo¿)""Bqqq*Uª”žyæuíÚU=zô�‹‹‹Ù9‘‘‘FP—•òåËëâÅ‹9®%'¶mÛ¦ùóçkëÖ­ŠˆˆPBB‚¼½½�÷”éºÑß~û­˜£û̘1#Ý(釱víZýòË/Ú¹s§®^½*éþsyî¹çd¶ökjï½÷ž¦OŸžíõ3úœHÒÎ�;õã�?jË–-º|ù²’““U¦L5nÜX½zõR§N�2ôáïﯭ[·fyÏÏ>ûL£G�ÖøñãõÉ'ŸdÙ÷ÁïÈþýûU¿~ý,ûVªTɘ6>µ‡}†|ð�,X�áhä²e˪I“&Z¶l™$©sçÎÚ¼y³Yøû@µjÕôÎ;ï¤ g÷ìÙ£¡C‡jïÞ½òôôÔsÏ=§>ø@Ï>û¬Ñ'«ß•.]Zþþþ2dˆ7nœñƒÉ…¼þ›þ@ÚÜçðáÃLU�Ç€ñØ#9E X—¥Â@þ#.¸X„l_»X\JJŠ1�Š$•)Sæ‘׉é,.11Q«W¯6Ú}úôI·Ö xt ¿A 6‚l0ØGk<¬Ë—/›µÏ�;gÖöññÉ¿b€Ç0 ¬.]ºdyÜd2åS%Àã�) ÀF€� A 6ÂÑÚlŸ£££Z·nmÖy��Xœƒƒƒ|||¬]´lÙ2³výúõ­T ðx @�U®\9³6_6@aÇÀ`#€ÀF04ÀâµeË£íïï/'''ë€�"X\JJŠÂÃÃÍÚ ï14Ø`°À`#€ÀF€� áhí@Þ2™LJHH°v6ËÙÙYvvvÖ.2D €�IHHÐÊ•+­]†ÍêÔ©“\\\¬]dˆ) ÀF0`qvvvrww7k ìÚµËÚ%ØŒ&MšX»È0Àâœ��Õ³gOk—ؼӧOk×®]º|ù²RRRT®\95iÒDÕ«W·viò 0…@ݺuåäädí2 œÄÄD8pÀÚedk÷îÝ1b„¶oßžáqMŸ>]µk×ÎçÊä7` '''`5sæL 0@&“IõêÕSåÊ•§èÒ¥K’¤-[¶¨qãÆúí·ßäççgåŠX’½µ ÀÃYºt©ÞyçêäɓڷoŸ–-[¦5kÖèâÅ‹š?¾ÜÝÝ%IwîÜÑ«¯¾ª„„+W À’€g2™tûömãe2™¬]PàEFFª_¿~š0a‚BBBT¥J³ãvvvzå•W4kÖ,cß™3g´iÓ¦ü.@>"X\BB‚BBBŒß0ÝĉÕ§O�5*Ë~={öT©R¥Œö‘#G,]+b `€&%%EÔÊ•+³íkgg§jÕª)22R’äææféòX0 œºuëÊ×××ÚeÈ…¸¸8mÞ¼Ùh?ûì³ruuµbE@Áfoo¯õë×ç¸ÿ­[·Œíúõë[¢$� ¦€°añññ:wîœ$©I“&jÒ¤‰u `QÀ6lÑ¢Eº{÷®J—.­Ÿ~úÉÚå°0`uéÒ%}üñǪU«–ÂÂÂT­Z5k—ÀÂXÀ�8qB]»vÕ�;wª§žzÊÚ%ÈŒ°!·oßÖĉÕ A:tH111jذ¡Þ~ûmݺuËÚå°0F£Àyj|¨äµßÚeÈ�¤iïA�iÿ´µ+lÖÁƒõÝwßiáÂ…é‚ÞäädÍš5K›7oVXX˜*V¬h¥*X0€ ˆ��Uƒ T½zuEDDhÏž=Úµk—RRRŒ>'OžT�=´}ûvÙÛ3Q,`‹€lÀsÏ=§çž{Îlß… ô�üCsçÎ5öíÚµKË—/W—.]ò¹Bù�¯v,ÏÞAz¢®Úµk§víÚÉÑ‘ïù¡bÅŠúñÇ5uêT³ý .´RE,�`yöRÙjòóó“ŸŸ0�φªV­Zí={öX±–D Pôïßߨ¾víš+`IÀ…€ŸŸŸ±íàà`ÅJX0@!àííml—-[ÖŠ•°$aX^r’tñˆÖ­ó’$µjÕJNNNV. (\îÞ½kl§ À¶,Ï”"]=¥Ý»‹H’üýý €€|vôèQc»{÷îV¬€%14@!°téRIÒSO=¥—^zÉÊÕ°`€èêÕ«Z³f�._¾œmß³gÏjæÌ™rrrÒœ9sdoODØ*¦€ HLL´v ÒãúÜ®_¿®'Ÿ|RÑÑÑrttTÿþý5~üxyxx¤ë¥.]º(..NóæÍSãÆ�­P1€üB @!pàÀk—€<¡èèhIRRR’¦M›¦¥K—jøðázùå—U±bE]¿~]¡¡¡3fŒ<<<´yóf5kÖÌÊ•°4Æ÷0õêÕS¿~ýÌöEDDhèСòññ‘ƒƒƒjÕª¥ÐÐPM�:U‡"ü F`Ú4ibí`!ßÿ½>üðCíØ±C—.]RRR’J–,)oooU®\Yõë×g­_ "( ªT©¢*UªX» �`lŒ³³³:uêdí2l–³³³µK€L`cìììäââbí2VÀÄï`# °>^���2™Lš1c†jÖ¬)IZ¿~½^~ùe}ñÅZ´h‘Ú·ooåJ�‚�ÀËKI–®œÒîÝ»µ{÷n%%%Y»"ùh„ JLLThh¨þJRÛ¶mÕ¯_?ݾ}[=zôЕ+W¬X%`€–—’,�? uëÖiݺuÀ@!3oÞdŒ€B ^½zrt$È­¤¤$íß¿ßÚedÊd2)&&F‘‘‘:zô¨6nܨ¥K—êÊ•+u½ëׯ«OŸ>JNNVÉ’%õí·ßáï¦köññÑÅ‹l¬ã›�âÅ‹kïÞ½FíK–,QûöíÕ¬Y3Í™3G*Tx¨ºü…¿ôŽŽŽ¬¯jƒæÍ›§¾}ûJºÌúúúêÕW_Õ¼yó™ëë�;VQQQ’¤   ¹»»gØïoû›:uꤥK—jûöíZ¼x±ºwïž«{ÙÙÙ©{÷î:wîœFŽ©â0�Š IDAT† ê¿ÿý¯*Uª”ëºüÅÞÚàátîÜYG�UDD„âââ´oß>M™2EE‹Íõµ¢££õÃ?í7Þx#Ëþ‚gIš6mZ®ï÷@ïÞ½egg§«W¯êµ×^{èë¸�À(p—üL¾ÞÖ.@.Ä%šôe‘xiËêû;’¦JNvws3ÿ  ¸%J¨D‰yr­eË–)..N’äéé©§žz*ËþMš41¶wîÜ©óçÏë‰'žÈõ}ÿö·¿©R¥J:wlÙ¢#GŽÈ××7××p#€çâ( ñs1^.|ýxìüöÛoÆvݺu³í_²dIcÍ^“ɤuëÖeØoçÎ�ªP¡‚jÔ¨¡dاL™2ÆöÑ£GsS6€4€ggg'O·¿^vv™Œþ`54¶kÔ¨‘£sªW¯nlÿñÇö™8q¢"""tòäIÍ�;7Ã>wïÞ5¶K–,™£{È0@!—’’¢Ó§O휆°©ûe6º·X±b’¤Ê•+«wïÞ鎛L&]¼xQ’äææ¦úõëç¸néráááŠ��7Ú9]WØËËËØ¾páB†}:vì(777­]»VÏ<óLºã;vìPtt´$éÝwße0ðˆ€ ¹K—.™µ‹-š£óR÷»zõª’““ÓõéÖ­›þþ÷¿+ Àl”ñß|ó�$©E‹š0aBnÊ�Gk°}ñI&Íø=Áh¿ÛÈY.ެ <.bccÍÚNNN9:ÏÙÙÙØNIIÑÍ›7Ó�൳³SHHˆ&L˜ ¦M›ê¥—^R“&Mäââ¢%K–(,,L£G�Ö?þñ�ß@æ€g2I1q&³6€ÇG^À’—a?GGG}òÉ'6l˜¶lÙ¢?ÿüSÉÉÉ Öüùóåîîþp…H‡ �»{÷®YÛÞ>g«ˆšÒŒöH½ŽpFŠ)¢öíÛ«}ûö¹+@ޱ0@!—v$oN%&&šµ]]]ó¢�€ �+R¤ÈC�—��`Öf*gÀú€ ¹bÅŠ=Ôy÷îÝ3¶íììT´hѼ* ÀC"(ä*UªdÖNIIÉÑyÑÑÑÆ¶——WŽ×`9ür+V”“““ѾuëVŽÎKרQ#Ïë�{À…œƒƒƒj×®m´£¢¢rt^DD„±M <€ ¦M›ÛÇ�϶BB‚þüóO£ýÔSOY¤.¹C µhÑÂØ>xð`¶ý�;¦¤¤$£Ý²eK‹Ô w€go'Õ*å`¼ìí¬]€´:tè IÒ‰'túôé,û¯Y³ÆØ®U«–êׯoÑúä 0ÀâœíÔ³Ž“ñrv$7nnnêÚµ«Ñ ɲÿ¼yóŒíÁƒ[¬.¹C IÒ| GGGIÒÔ©S“a¿M›6ëÿÖ©SGýúõË·d�À†$''ëÞ½{FûöíÛ9>·V­ZúüóÏ%IQQQ4hPº>7nÜЀ$I 1BcÖÇo#…@RR’µK(�÷ç–�� Ã‡+..N‘‘‘:~ü¸~ýõW]»vÍèóá‡êرcjÒ¤‰*T¨ U¨PAeË–Íðš|ð�L&“F�­ŸþYW¯^UÿþýU¦Lùd~½]9@ °¸ä“NF¥íê^ör°g`€ü´ÿ~k— ¸té’žyæ™,ûܹsG3fÌÐŒ3Œ}cÆŒÑØ±c3=gäÈ‘ ÔŒ3¦Þ½{+..N%K–TíÚµõÞ{ïé­·ÞR‘"Eòê­È#ÀPHœ‹Nɾ“…Ä'™ôï?Œö» �åâ˜I|î\þ•|||¬] 9™L&‹\»Zµjúç?ÿi‘k°`($*kí ßü71‹ƒ•ó¯�Gd©ÿc �—š4ibíùÈÞÚò#€°1š={¶µË°YÖ.2E €�±³³S±bŬ]À ˜l0ئ€€Bâì`w«Ý;>ɤ$íw:ËÅÑ.ãÎCåSUØ`($|JXoÒ‡¸D“<]ÿ |+yÚËÕ)“ØÇ'ŠÀ14Ø`°L °8géµzÎfm�÷€goo'Ÿ™¬ù ò S@€� A 6‚5€—�dÒ‚C‰Fû•:NrvdM`ò0ÀâRLÒ¹˜³6È{L 6‚l0Ø`°À`#€ÀF€� A €|­1cƨ^½zzúé§åëë«.]ºèĉÖ. ° ŽÖ.`ûì줲îöfm…ÏÞ½{Õ©S'Õ­[W+V¬P¥J•$IëׯW»ví´sçN•-[ÖÊU0Àâ\íôN#gk—ÀŠÎ�;§öíÛ«nݺZ¹r¥Œc›6mRTT”æÎ�«Q£FY±J à#€E¥¤¤( @qqqúá‡ÌÂßÈÈHMš4I’tþüyk•Ø `8ª}¦c+Z» –òë¯ÿ�½;��ªºÿ?þžì$$I„a‘5 «âÂâ†l_QA´±Z\ZE‹•B­KUp¯àÒ‚`£EŶˆZYJ²1 k !deB’¹¿?øq›É: 3ÌÌÍëùxäÁ=÷žsîçwæÌÍ'÷ÜZ7=z´ð_‡CYYYÞò¢££PsE˜–,Y¢””ýæ7¿Q‹-œ¶EGGëæ›oÖ7ß|£;î¸ÃKÖA‹ÉÊÊRÓ¦M½†e�8qB±±±Þï<ûì³’¤#FTØf³Ù´bÅŠ‹`Y$€çp8”““c–5jÄ_HõÄ�?þ¨Ý»wK’.½ôR/GX¿}x\II‰V¯^mþ”””x;$5ÈÊÊÒÓO?­~ýú)&&F!!!Š��Õu×]§·ÞzKv»Ý¥~þõ¯™ËÍ›7×wß}§n¸AÝ»wWbb¢&Ož¬ôôtOPï�° uëÖ©qãÆúÇ?þQë¶Ÿ~ú©Úµk§™3gªaÆš7ožÖ¯_¯×^{M………úõ¯­îÝ»+--­Æ¾víÚe.oݺUóæÍÓ'Ÿ|¢ÔÔTíØ±C'OžT·nÝ´zõêZÇ  "ÀRXX¨?ÿùϺ馛túôiåååÕªý_|¡Ûn»M999š0a‚V¯^­Ñ£G«_¿~?~¼6lØ ¡C‡jß¾}4h�~úé§jû;~ü¸¹¬ &TÛgÙô•W^©°°0§í�5ÒðáÕŸŸ¯'Ÿ|²Ö1pFÀO½ÿþûjÒ¤‰:tè Ûo¿]7nÔ�wÞ©˜˜˜:õ7kÖ,eeeI’~ùË_ªaƕ֋��×Í7ß,Iúæ›o”œœ\eŸe¾×_}¥u:vì(Iúøã�k}Ç2g$€üÔÈ‘#µk×.9rDv»]ÿýï5{ölEDDÔº¯ììlýío3Ë÷ÜsOµõ'Mšd.¿þúëUÖ‹ŽŽ6—ÛµkWi�&MšH’JJJ´yóf—âP¹ o€ºiܸ±7nì–¾–-[&»Ý.Iºä’K”””Tmý+¯¼Ò\Þ´i“~þùgµjÕªB½–-[šËU%¦CBBÌ匌ŒZÅ Àw@_~ù¥¹|Ùe—ÕX¿I“&JHH�tîYÄÿüç?+­×³gOs¹ªç†a.»+¡ ÔW$€ ÔÔTs¹C‡.µ¹ôÒKÍå-[¶TZçšk®Q@À¹”Ôùç —WXXXë}¨ `€zÎáp(--Í,Ÿ&oMÊÖKII©´N\\œ(IÚ½{w¥u>,IêÕ«—Ú¶mëÒ¾TŽ0@=wðàA§é™]�†9::Ú\>tèP•õžxâ IÒgŸ}Véöµk×J’f̘áÒ~T�0ÀãÕ·o_ó'00ÐÛ!(ãèÑ£N刈—Ú•­—‘‘¡ÒÒÒJëÝtÓMºë®»ôÎ;ï8Ýi,I+W®ÔæÍ›uß}÷é–[n©eäÊ òvë T›6m¼€*äçç;•ƒƒƒ]jb.;åääT9}ôßþö75hÐ@×\s�~øaµjÕJ[·nÕ¢E‹ôì³ÏêÉ'Ÿ¬û0‘¨çÜ‘–$»Ý^eÝàà`½óÎ;Ú»w¯6mÚ¤#Gލ_¿~úýïïò3‡ÔŒ0@=WXXèTpí)¢†a8•Ë>G¸*;vTÇŽ]@­ð `€z®ü�¼®*..v*‡……¹#€;€WRR¢mÛ¶™å^½z)(ˆ!ðáááujwöìY§rÆ Ý€ Àoßçp8tàÀ³Ü£Gï ‚¨¨¨:µ;s挹l³Ùá®�ÔS@Ôs­[·v*;—Úegg›ËÑÑÑ.?;€çp0À¯œ8q¢Âº²wKRbbâÅ °ˆ–-[*88Ø|¦onn®KíÊ&€;tèà‘ØÔ `€_ùõ¯]cÃ0.B$€uªK—.JII‘$eee¹ÔîÈ‘#æ2 `À7p>tõÕW›Ë{ö쩱þÙ³gµwï^³œ””䑸Ô `èÚk¯5—SSSk¬¿{÷n•””˜åë®»Î#q¨ÀÐðáÃ)IúñÇ•––VmýU«V™Ë�:uRÏž==×�€4h Ñ£G›å?ü°Úúï¿ÿ¾¹üðÃ{,.µC’¤Ç\AAA’¤—_~Y§OŸ®´ÞW_}e>ÿ·[·nš«'žxBYYYz衇´páB§:§N�Ò¯ýkIRdd¤>üðC3i Àûx7.Šàà`·ôÓ´iÓ ëÝÒ7àoΞ=«�;wÊn·+33S{öìÑǬ'N˜u¦OŸ®Ý»wëÊ+¯TBB‚"##•�� fÍšUÚçã�?.Ã0ôÔSOiÑ¢EÊÈÈÐ< ¸¸8¥¦¦êÅ_TZZšZ´h¡+V¨sçÎëp¸€0ÀãBBBtë­·z; ÀrŽ=ªÞ½{W[§  @sçÎÕܹsÍu3gÎÔ¬Y³ªlóÄOhÔ¨Qš;w®Ö¬Y£»îºKv»]Mš4Q—.]4uêTM™2Eáááî:nBÀO%&&Ê0 �ôݾ}{Í™3Ç#}ðœopÀ`L ð8Ã0T\\l–ƒƒƒe³Ù¼€µEGGëĉÞò¢££½T‰0À㊋‹µ|ùr³|Ë-·($$Ä‹X[@@€bcc½À ˜,‚0X `°À`$€À"H€E�‹  A,‚0XD�·X_`` ºvíêTîGàqåÀÀ3˜,‚0À-l6[…u†ax!À…r8ÖUö9ßCàå\\\ì…Hª¤¤¤ÂºÊ>çá{x0ÀãJKKµgϳܩS'z1"à 6›M!!!:{ö¬¹.??_ááá^Œ PùùùNå��îö$€áw¬®]»z; µ`·Ûµ{÷n³èßûûð÷þËjß¾½Ç÷À3.æg…Xùõò—có¥8½‹¿òdß|©ß|é³Á_Xõ5ó—ãò¥8Ï|«oƳúÍ—>ü…U_3:._‰Õªã™'÷ãÉøËç�pá˜,‚0X `°À`AÞð'NÔ Aƒ”˜˜è—ý_Œ}п÷÷áïý°>+jÇʯ—¿›/Åé�Xüý;�/ýÿÁZ8·jϪ¯™¿—/ÅÉxæ[}£~ãܪ=«¾fþt\¾«UÇ3OîÇWþïà›a†·ƒªóÃ?())É,ïܹS]»võbDj‹÷1ð6¾�¬€ñ `ŒgžÇÐ`$€À"H€E�‹  äí€šÄÆÆjæÌ™Neþ…÷1ð6¾�¬€ñ `Œgžg3 Ãðv€ ÇÐ`$€À"H€E�‹  A,‚0X `°À`$€À"H€E�‹òv@UJJJôý÷ß+55UÙÙÙjÚ´©:u꤫®ºJ6›ÍÛáðiiizæ™gtÙe—é‘G©Sv»]›6mÒîÝ»•››«øøxuëÖM½zõrs´€úÆWÇ©üü|­_¿^iii*,,TË–-Õ³gOuîܹÎ}üO}§N�:¥uëÖéàÁƒ*..VëÖ­uùå—+11±Î}ú*î†Ï)--ÕË/¿¬–-[êꫯּyó´qãF=û쳺æškÔ¡C-Z´ÈÛa¨ƒ´´4Mš4I¯¾úª·CðÓO?éî»ïV§N�´`Á�>}ºÖ}œ9sF3fÌP³fÍ4xð`-\¸Pß|ó�ž|òIõîÝ[={öÔ_|á�èVç«ãTvv¶¦N�ªØØXÝvÛmJNNÖW_}¥‡zH]ºtÑ€ôŸÿü§Ö±üK}§:¤»îºKM›6Õ/ùK}úé§úâ‹/4yòdµk×NÇ×�?þX«>}žø�Ó§O4$ÑÑÑÆÚµkÍm‡Ã˜?¾lH2î½÷^£´´Ô{ÁpYZZš1iÒ$#((È�dÌœ9ÓÛ!?öÓO?wß}·ùÝâüOm¿cüüóÏFRR’!Éh×®�±}ûvs[qq±ñüóÏ’ ›ÍfÌš5ËÍG°*_§RRRŒV­Z’Œ¾}ûiiiæ¶üü|ãÁ4$!!!Æ»ï¾[«xþ¡¾�SkÖ¬1š4ibH2†jddd˜Û233�Ûo¿Ý�dDEE+W®tñè}_à¬Y³f]´l3P »Ý®n¸A7n”ÍfÓ?ÿùO 8ÐÜn³ÙÔ£G5kÖL+W®Ô¶mÛTXX¨Áƒ{1jÕIOO×c�=¦{ï½WÛ¶m“Ãá�$ 4Hƒ ònpÀï;vLÓ¦MÓ| Ö­[+##C§N�2·×æ;Fff¦ú÷ﯽ{÷*<<\6lP×®]ÍíºæškT\\¬ 6è믿Vll¬.¿ürwÀ"|}œÚ·oŸ¨cÇŽ©yóæÚ°aƒÌí!!!:t¨öíÛ§íÛ·ëóÏ?WïÞ½Õ¡C‡Ú¿ŸSÇ©M›6iÈ�!ÊËËS·nÝ´zõj]rÉ%æöððpÝzë­Z·n�~üñG-_¾\C† Q||¼K¯ƒ/c høŒG}Ô¼m̘1êß¿¥õ&Ož¬=zH’fÏž­+V\´¸æØ±cúÕ¯~¥_ýêWjܸ±%Ÿ¡.¾³gÏê�ü£þõ¯iöìÙš;wn�ûš0a‚ÒÒÒ$I>ø`•¿4øýï¯æÍ›K’yämݺµÎûX›/�SÅÅÅ3fŒ233%IøÃÝ—^zI 4�ÃáÐ�wÞ©C‡Õù8¾£¾�SÙÙÙ;v¬Îœ9#IzñÅÕ Aƒ õ‚‚‚ôꫯÊf³éÌ™3ºõÖ[•ŸŸ_ÍÑûÀð Û·owú°y衇ª¬k³ÙôðÛåiÓ¦©¤¤Ä£ñ¨w~™8¯uëÖŠ‹‹3ËmÛ¶­S?+V¬ÐªU«$�»¾xðÁ«¬®)S¦H’JJJ4mÚ´:í`}¾{’b(d IDATöì©H:÷¼à9sæTY×_�†OøóŸÿ,Ã0$IÍ›7וW^Ymý‘#G*((HÒ¹iÞÿ}�ÇÀuîú2P�€€º]Ò>ÿüóæòW\¡-ZT[ôèÑæòÚµkµfÍš:íP¿øÊ8UZZª_|Ñ,>\¡¡¡.÷¹páBíÛ·Ï¥ØþÃÊãTvv¶æÍ›g–G�Umåûœ={¶NŸ>]c_F^———§åË—›åÈf³UÛ¦qãÆêÞ½»Y^´h‘ÇâpáêúeÀÝöîÝk>zF’Xc›¤¤$EGG›e®?žâ‰qêË/¿ÔÑ£GkÕgÙßÏ9ýýﯱ ÀúüeœJNN–Ýn¯UŸeëäçç;å­ü¿‘‡×}÷Ýw***2˽zõr©]Ùz6lpú€€Ê¬_¿Þ©ìêõGÏž=ÍååË—;]Ãà.ž§êÒgTT”Úµkg–?üðC—âX›¿ŒSué³sçÎ «²OC^÷í·ß:•;uêäR».]º˜Ë‡Cß|ó�[ã`=î¸þÈÉÉQJJŠ[ã@òÌ8åŽ>÷ìÙ£“'OºÔ`]þ2N•í³qãÆjÚ´i�ý©C‡fyÆ æ£Ký `x]Ùé¤sðvEùz©©©n‹ €5qýðeî§ ÃÐæÍ›Íõ 6TTTT�úä�Ÿþ0N�õ—?ŒSíÛ·W@@@•õêÒ§?" ¯KJJr*=zÔ¥vGŽ©¶(�ë€/óÄ8UvùôéÓ.߱Ũ(ÏÆ©ÐÐPµoß¾Ö1–ï³AƒjÛ¶­Ëm} `xÝu×]çTÞ·oŸKíÊÖ³Ùlú€òÜqý¥¾}ûº5.$ÏŒSîè³sçÎjÞ¼¹KíÖå/ãTÙ>Ož<éò�Êû÷ï7— ¤ÀÀ@—Úù"Àðº>}ú¨I“&fyÛ¶m.µÛ¼y³¹Ü»wo¿ž‹ÀÅqýõ×;]Ä×åúcðàÁ r{lxbœºé¦›œêºÒ§Ýn×Î�;ÍòðáÃ]Š`mþ2N•íÓ0 ý÷¿ÿ­±Ïýû÷+;;»Ê>ý `x]`` ~ñ‹_˜åo¾ù¦Æ6NeÛ@Ubbb4bijìÊõGzzºÓT`\<ÅãT�=tÙe—ÕªÏo¿ýV%%%Uö ¨Ÿüeœ6l˜bcckÕç† ÌåÐÐP�3¦Æ6¾Œ0|¯~õ+Ùl6IRZZš¶oß^mýÏ>ûÌœ>**J“&MòxŒ¬á�0—×­[§¬¬¬jë'''›ËíÛ·wú…îæ‰qªlŸ+V¬pú¥yM}^{íµêÞ½{�qê§BBB4yòd³üñÇWÛ_ù>Ç�ï”@öG$€á:uê¤ûï¿ß,¿ùæ›ÕÖã�7Ìå3f(22Òc±ðM§N�r*Ÿÿ#Ñš ã…^Pûöí%I ,pš¾¬Å‹kãÆ�’¤�ê·¿ýíE‹@ÝÔõË@u–/_îTþæ›od†KmßyçEGGK’^zé%8p Òz³gÏVzzº¤sÓŠ�=ºîê_§‚ƒƒµ`Á………I’žzê)§ç–5}útåääH’ž|òIõë×Ï¥˜þÅêãÔ%—\¢wß}×L8ÿö·¿UQQQ…z‡C¿ùÍoTZZ*IzõÕWÕ¦M›Jûô+àCŽ=jôêÕË�dÄÆÆëÖ­sÚþá‡aaa†$cÈ�!ÆéÓ§½)€Ú˜1c†!Éü¹êª« ‡Ãáí°€Ÿ)))1RSS�/¾øÂ˜:uªèôC’1jÔ(cÙ²eƶmÛŒ¬¬¬jûÛ½{·Ñ¦MC’q饗)))æ¶ÒÒRãµ×^3l6›!ɘ0a‚QTTäéCø1§6nÜhÄÄÄ’Œ~ýú?ýô“¹Ín·¿ûÝïÌX§OŸÎµ;XH}§>ùä#<<Ü�dŒ1ÂÈÈÈ0·åää&L0$AAAÆ›o¾YcþÂf.¦ó�‹¤  @üã5wî\åççë²Ë.S«V­´wï^ýøã�ŠŽŽÖc�=¦iÓ¦)00ÐÛá¨Dii©víÚ¥#GŽèóÏ?×ܹsÍ¿ :oÔ¨QºóÎ;•˜˜¨Ö­[«I“&^Šø‹ÌÌÌZ=‡é¥—^Òc�=VcŸÓ§O×¢E‹T\\¬>}ú¨iÓ¦Ú±c‡<¨„„Íœ9ÓéùQTÆ_Æ©hÚ´iúä“O¤>}ú(**JÛ¶mSFF†:uê¤çŸ^·Ür‹Ë}|_}§RSSõè£�jÍš5ŠˆˆPß¾}¤-[¶(;;[}ûöÕœ9sÔ¿—ûôu$€á³ µaÃíÞ½[ùùùjÔ¨‘’’’tÍ5×(88ØÛᨆ'¾LxÒéÓ§µ~ýzíß¿_gΜQãÆ�Õ³gO]qÅ<óàuž§222´aÃ¥§§«¸¸X±±±êÓ§�zöìéæèVç/ãÔÁƒµqãF:tH‡CÍ›7וW^©Ž;Ö¹O_E,‚?c‹  A,‚0X `°À`$€À"H€E�‹  A,‚0X `°À`$€À"H€E�‹  A,‚0X `°À`$€À"H€E�‹  A?wâÄ µlÙRË–-óv(/# €Ÿ[²d‰>¬ÒÒRo‡ð2Ààc233!›ÍæÑŸE‹yûPá&K–,Qdd¤FŒQévÎ)¨?‚¼ÀÙ'Ÿ|¢ÂÂBIR³fÍ4iÒ$õïß_‰‰‰ŠˆˆP@À¹¿å={ö¬yä­\¹Òl;}útMš4I 4�$†!»Ý®ãÇ�kíÚµz饗”ŸŸoö ÿ÷ÓO?é?ÿù�~ñ‹_˜ÿïåqN@ýA|Lrr²$é¶ÛnÓû￯† VY7//Ï\׌3*M^zé¥êß¿¿.¿ür :T’Ô©S'7GoX²d‰$iܸqUÖᜀúÃf†áí çdffªyóæºñÆõùçŸËf³UY·¤¤D—\r‰ $I×]w�Ö¬YSã>:tè £G�*//¯Úþá’’’”‘‘¡cÇŽ)(¨âßysN@ýÂÀàC>ùäéÝwß­1‘–’’b&ê$éꫯvimÛ¶UÆ IÔY@jjª~øáÝÿý•&%Î)¨o¼à’““5vìXµhѢƺ›6mr*»š¬3 ƒ©z-bñâÅ’¤ñãÇWY‡s êî‘™™©¯¿þÚ¥)w%iãÆ�ær@@€úõëçR»'N誫®ªSŒð†ahéÒ¥jÕªU•‰ZÎ)¨¸|Ä'Ÿ|¢øøxõïßߥúeïÖLJJR£F�\j÷óÏ?s·¦lÚ´IÔwÜQåÔËœSPÿ�‘œœ¬Ûo¿Ý¥ç¨:tH‡2Ë®NÕ›��­S§N©cÇŽu޾aÉ’%’¤qãÆUY‡s êÀà#²²²t×]w¹T·®Ïj-((PçÎ�IÖù¹’’}ôÑGêܹ³zôèQe=Î)¨x0øˆmÛ¶¹\·ì³Z%דu ÚµkW­â‚ïY³f�Nœ8¡©S§V[�s êî?TönÍøøx%&&z/\t‹/–TýôϵÅ9Ö@üLAA�RRR̲«wjÂìv»–/_®¾}ûª}ûöné“s ¬ƒ0ø™ï¿ÿ^%%%f™d]ýòÙgŸ)77×­wÿrN€u�?S×gµÂ–,Y¢€€�;Öm}rN€u�?SöY­áááêÑ£‡£ÁÅ”››«U«ViàÀ�Š��w[¿œS`AÞà:Ã0ôí·ßšå+®¸BAAÖ»´s8ÊÊÊrú¹ù曽–×-[¶Lv»]ãÇ�w[Ÿõ圀ú‚+:ð#»víÒéӧͲU§ê]¿~½®½öZ§u†ax)ß±xñb…„„hÔ¨Qnë³¾œSP_04ø‘²SõJÖMÖ 4Hv»]ÿûß½ŠÏÈÈÈÐW_}¥!C†¨qãÆnë·¾œSP_�?²qãFs9 @W^y¥£ñ¬ÐÐP�3ÆÛaøŒääd•––jܸqní·>�SP�?RönÍ®]»ªQ£F^ŒÆóxíÿ,Y²Dnr};§ÀêH€Ÿ8yò¤öíÛg–™ª·þ8pà€¾ýö[�9Rááánë—s ¬‡0ø žÕZ-Y²D’4~üx·öË9ÖÃ\Zà'Ê>«Uª]².//O[·nÕ©S§”��­ììlÝ{ï½jÔ¨‘¶nݪo¿ýVv»]—^z©¬ TÛßÎ�;õŸÿüG'OžTBB‚nºé&ÅÆÆºÏöíÛµuëVeffªyóæ0`€]n_ë±cÇ´jÕ*edd¨U«V6l˜š4i¢¬¬,­ZµJGŽш#”””äÔ®¨¨H_~ù¥öîÝ«€€]vÙe0`€ët ‹/Vtt´\§öU¹�sª¸¸X))):yò¤ù3uêT…††š¯ÏáÇբE 6L111n�Ý•ý;vL-[¶ÔðáÃe¶-((ÐÊ•+uðàAÅÄÄhÈ�!jÑ¢E…}¸û}w€Ÿ({·fóæÍÕ¦M—ÛîÙ³G'NÔèÑ£5yòdM›6Mÿýï5tèP½÷Þ{ŠŠŠR`` ¦M›¦ÄÄD-\¸°Ò~8 AƒéÙgŸUAA�Zµj¥õë×+!!A�>ú¨Š‹‹«�#==]×_½FŽ©ÌÌLµnÝZÙÙÙzà�4lØ0egg»t<ßÿ½‚‚‚d³ÙÌŸfÍšióæÍn‹õOú“ºu릌Œ µk×N7nTëÖ­uï½÷jذa:zô¨V¬X¡¡C‡:µKNNV»ví´xñbÅÅÅÉ0 Mœ8Q—]v™~øá—ޝ¬�;wjçÎ�=z´‚ƒƒkݾ:rN;vL аaÃ4aÂ=öØc:sæŒ/^¬‰'êÌ™3ŠŽŽÖìÙ³•˜˜¨U«V9µ?pà€ºvíªˆˆóÿð믿6·Ÿ={VIIIjÔ¨‘¹}Á‚µÚÿ%—\¢çŸ^­ZµÒºuë$Iÿþ÷¿uË-·èäɓЋ‹ÓÂ… Õ¶m[ÍŸ?¿Â1^èûfîܹJHHp:O###õûßÿÞ¬sôèQEEE™Ûƒ‚‚tç�wºüÿŸWTTd„††’ IÆèÑ£ëÔÏ÷ßoöѵkWc×®]NÛsss�îÝ»’Œ—_~¹Bûþýû±±±Æ¿ÿýo§õ¯¼òŠ!ɸãŽ;ªÜ÷Î�;�¦M›íÚµ3N�:å´m„ †$cêÔ©Ú��·¼gžyÆ�dÜpÃ ÆæÍ›ÝëóÏ?oH2æÍ›ç´~ìØ±†$ã‹/¾0 Ã0þö·¿>ø ¹ýÍ7ß4l6›1sæL§vÇ�7ââ⌸¸8ãäÉ“Uî·2Ó§O7$_ýu­ÚÕÄ�çT@@€!ÉøàƒŒûï¿ßp8æö}ûö’Œèèh£°°°BûÇÁÁÁ†$cíÚµ¶çææ±±±†$cþüùuÞ³f͌͛7·Þz«qöìY§þ#""ŒÐÐPãØ±cUã…¼oæÏŸo¶?|øp…í§N�2š5kfôèÑÃHOO¯4p `ð›6m2H’ŒW^y¥Î}�ïãË/¿¬tû–-[ IFpp°‘’’â´­Aƒ†$cøðáNëKKK�–-[’Œ�7V賨¨ÈL�­\¹²Âö† ’Œ#FToY¹¹¹F·nÝŒY³f9%ûÜëéӧͶYYYNÛþñ�’Œ+®¸¢B»ÔÔT#88؈‰‰1Μ9Saûù¤òc�=Vi¼UiÓ¦�‘��PåqÖ•;Ï©øøxC’ѯ_?Ãn·WØÞ¦MC’ñÕW_UÚþüÿGe `Ã8—̯*\›ý·oß¾Òüu×]gH2,XPå1^ÈûÆápmÛ¶5$K—.­´}ÇŽ��;wV¹pS@€(?}îUW]uÁ}¶k×®Òõ½{÷V¿~ýT\\¬gŸ}ÖiÛ½÷Þ«¨¨(Ýu×]NëÔ¯_?IÒwß}W¡Ï¥K—*55U111¦L–¤×^{M7Þx£žzê©ãÎÌÌÔ 7Ü ©S§jæÌ™²Ùl•Ö«k¬6l0§nÒ¤‰Ó¶¶mÛJ:7u^^žÓ¶§Ÿ~ZÅÅÅ?~¼ÂÂÂ*ô{þ¸?úè£�ñ¼ï¾ûNééé;vl•ÇYWî<§ÎOM=bÄ…††VØÞ¬Y3Iç¦;®L@@õ¿ž¨i»«û4hP¥Ï"Ž‹‹“$9r¤ÚýHu{ߨl6ÝsÏ=’¤÷Þ{¯BÛÍ›7+>>^]»v­qÿP“ oøŸS§N©  @%%%*,,Tvv¶Ö¯_¯—_~Ù©^rr²Š‹‹Õ¸qc5hÐ@AAAjÔ¨‘¢¢¢ÜÇ�7Þ¨ï¾ûN+V¬Paa¡ÂÃÃ%�KÔ¾öÚk•¶9_'77·Â¶>ø@’Ô§OVØ~÷Ýwëî»ï®1®C‡iðàÁš2eЦL™RmݺƚŸŸ/I•&Ï'v ÃÐÙ³gÍõ………Z¹r¥$©sçΕî³}ûö’¤ƒ*//O‘‘‘ÕÆ/I‹/–$�?¾ÆºU¹˜çTÏž=+]"I5>wùBÕ´ÿš¶—ý?­‹ªÞ7’4iÒ$Íœ9SkÖ¬QzzºÓó–ß{ï=Mž<ù‚ö ç‘Q\\¬Ö­[› ÈêÌ™3GsæÌqZ7nÜ83ax¡:vì(I***Ò�Ô¥K§í999úôÓOõí·ßjÇŽÊÉÉÑáÇ«ìoÇŽ’¤V­ZÕ9¦½{÷êÆoÔ¡C‡´bÅ =òÈ#.Ý[ÛX“’’$I'OžTII‰‚‚þw霑‘!éÜ¥ÑÑÑæúôôtI’^xáÍ›7¯Ò¾ãââ »Ý^c¸´´TÉÉÉêØ±£zõêUãqVæbŸSežÞPÓþ=_uï›æÍ›køðáZ±b…þú׿ê™gž‘$èßÿþ·^ýu�Æ þ` hðÁÁÁÊËË“auúqWòW’4h`.˜ËyyyúÍo~£¸¸8=÷ÜsêÚµ«æÏŸ¯ÔÔTÝ|óÍUöwúôé ýÖÖ°aÃôúë¯+!!AëÖ­ÓÛo¿]mýºÆš””¤k¯½V‡C[·nuÚöå—_J’yä§õ………æòK/½¤íÛ·Wúsüøq=zT±±±5ïW_}¥ŒŒ �7®ÆºUñ¥sª>¨ê}sÞ½÷Þ+IZ°`�JKK%�»ózäÈ‘•ÞquÁÀ€ Ê>«õü]»êß¿¿öíÛ§{î¹Go½õ–9unMZ´h¡´´4�:uªNñ„††ê£�>R¯^½¦¡C‡ê‰'žÐˆ#”��P¡þ…Ä*�›>º{÷îz衇´|ùr5kÖL_ýµÞxã Ý~ûíš6mšSý²w6»òYW,Y²D’.(Œ‹«²÷MYC† QBB‚>¬/¾øB#FŒÐ{ï½Wã3@mp0 ‚M›6I’ºw﮸¸8IÒÌ™3µoß>uéÒEóæÍ«1¡ºgÏýüóÏ’¤AƒI’RSS«mSÙ]“’Ô°aCsä!C†hâĉÊÍÍÕ}÷ÝWiý ‰U’.\¨Å‹kذa=z´ºwï®çž{No½õ–’““à|9§îÝ»K’öïß_í¾\I‚iÙ²eêÝ»·:tèPc}«+›Xõe•½oÊ Ô¤I“$�{îï®]»äp8ÌiÇÀH@=U\\\éúììl­\¹R’ôàƒšëׯ_/Iºá†œž‹{^ù$ÝÒ¥KõÕW_I’¦L™"›Í¦;vè§Ÿ~ªt¿¥¥¥ºêª«ªŒ«¬W^yEñññZµj•>øàƒ Û/$VéÜôËIIIš9s¦6nܨ;vhõêÕ?~|•1�­>þøc•””TZÇ0 Ýpà NSFWfÕªUÊÉÉ©7wÿ†……I’G…mYYYJOO¿Ø!U©¶ï›òî¹çèóÏ?×3Ïûì3�;ÖS¡¨§H@=•••¥x@999’$»Ý®3fèÍ7ßÔ­·ÞªäädÙl6³þÌ™3¦äädóù´’´mÛ6�;Vo¼ñ†$iëÖ­’ÎM÷ܯ_?³ÞK/½¤)S¦hÉ’%z衇”ŸŸ/é\òõÝwßÕ²eËôôÓO;ÅxþÎϼ¼<;vÌiÛðáᬬ,Ý~ûíNS+_h¬£G�ÖüùóÕ´iSuêÔI�:uRRR’úõë§1cÆè…^pš2Z’l6›’““uË-·è�Ї~h&�Ïž=«×_]«V­ª2�x^^^ž>ÿüsõïß_-Z´¨¶®/ÈÎÎ6_û´´´ Ûív»ù\䪦Ç~üñǪ¿þõ¯:s挤sIø>ø@†a¨sçÎ’¤9sæèÏþ³Ö®][§ýW¶½´´T¨6¾²jû¾©ÌäÉ“%�{¾sDDD�û€Ú°†ax;ÀÅs>9•žž®µk×ê�wÞQaa¡ìv»Ú¶m«ûï¿_ÿ÷ÿWikÏž=zùå—µfÍ•––ªiÓ¦jß¾½fÍš¥:è…^Ð /¼ ®]»êá‡ÖèÑ£+ôñ¯ýKo¼ñ†vîÜ©ˆˆ5hÐ@·Ýv›}ôQ…††J’¶lÙ¢;ï¼Séééæ”»ÁÁÁJLLÔâŋէOõíÛW[¶l1û ÕÕW_­5kÖ\p¬?üðƒú÷ï¯ììì*_ÇÐÐP½öÚkžCl†>ýôSÍ�;Wá["ê>IDAT‡Rpp°ÂÃÃ5fÌM�:µÒ)©ËZ¸p¡&L˜ ·ß~[S¦L©¶®7=zT×_½w¾o8 Q£F™w €;UÿgÇÔ#YYYºï¾û4qâD=øàƒNÛ‚‚‚­èèhõîÝ[ PÏž=µråJ·%€Ož<©/¿üRC† !ùkaýë_u÷Ýw{; Å3€øÿÒÒÒd·ÛÍgÎV§M›6’¤ãÇ�»mÿ}ô‘JJJ4nÜ8·õ ïÙ½{·ºwﮇ~Ø\WTT¤eË–é®»îòbd¬Œ0ÿ_·nÝÔ¬Y3-Z´Hv»½Úºï½÷ž$iÈ�!nÛII‰Ú¶m«‘#Gº­OxϪU«´cǽõÖ[r8’¤·ÞzKãÇ�W£F�¼«" õÈÞ½{Íå�;wz1ßÔ AýóŸÿ”ÝnWïÞ½õá‡*??ßÜîp8´yófM˜0Aüãõ—¿üE7ß|³ÛöÿÐC)--Mnë®®ï›þýû+ @O=õ”ôé§ŸjéÒ¥úíoë‰0@’d3 ÃðvÏÚ²e‹Æ�§¨¤¤D’d³ÙÔªU+½þúënMbZAII‰>ýôSýãÿPJJŠ ¢¢"%&&jðàÁºóÎ;Õ´iSo‡ rÇûfáÂ…zå•WT\\¬=zèõ×_çùÎ<Š0XS@€E�‹  A,‚0X `°À`$€ñÿÚ³€AþÖ÷øJ#`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0ÀD1õóê° &IEND®B`‚unyt-3.2.0/paper/benchmark_plot.py000066400000000000000000000140511526544257300172020ustar00rootroot00000000000000from collections import OrderedDict import numpy as np import perf from matplotlib import pyplot as plt from matplotlib.patches import Patch ALPHA_MAP = {"small": 0.3333, "medium": 0.666, "big": 1.0} COLOR_MAP = {"unyt": "C0", "astropy": "C1", "pint": "C2"} SIZE_LABELS = {"small": "3", "medium": "$10^3$", "big": "$10^6$"} def make_plot(benchmark_name, benchmarks, fig_filename): plt.style.use("tableau-colorblind10") plt.rc("font", family="stixgeneral") plt.rc("mathtext", fontset="cm") fig, ax = plt.subplots() ratios = OrderedDict() stddevs = OrderedDict() width = 0.1 packages = ["pint", "astropy", "unyt"] package_offsets = [-width, 0, width] size_offsets = [-width * 3, 0, width * 3] static_offset = 0 sizes = ["big", "medium", "small"] yticks = [] all_yticks = [] for ind, benchmark in enumerate(benchmarks): if "create" not in benchmark: benchmark = "array_" + benchmark for size, size_offset in zip(sizes, size_offsets): np_fname = "../benchmarks/numpy_{}_{}.json".format(size, benchmark) with open(np_fname, "r") as f: np_bench = perf.Benchmark.load(f) np_mean = np_bench.mean() np_stddev = np_bench.stdev() for package, package_offset in zip(packages, package_offsets): fname = "../benchmarks/{}_{}_{}.json".format(package, size, benchmark) with open(fname, "r") as f: pbench = perf.Benchmark.load(f) mean = pbench.mean() stddev = pbench.stdev() ratios[package] = mean / np_mean stddevs[package] = ratios[package] * np.sqrt( (np_stddev / np_mean) ** 2 + (stddev / mean) ** 2 ) ytick = ind + 1 + size_offset + package_offset + static_offset ax.barh( ytick, ratios[package], width, xerr=stddevs[package], color=COLOR_MAP[package], label=" ".join([package, SIZE_LABELS[size]]), alpha=ALPHA_MAP[size], ) all_yticks.append(ytick) if package == "astropy" and size == "medium": yticks.append(ytick) static_offset += 0.01 legend_patches = [Patch(color=c) for c in COLOR_MAP.values()] leg = ax.legend(legend_patches, COLOR_MAP.keys(), loc=1) size_patches = [Patch(color="k", alpha=a) for a in ALPHA_MAP.values()] size_labels = [SIZE_LABELS[l] for l in ALPHA_MAP.keys()] ax.legend(size_patches, size_labels, loc=4, title="Number of elements") ax.add_artist(leg) ax.set_xlabel(r"$T_{\rm package} / T_{\rm numpy}$") ax.set_xscale("symlog", linthresh=1) ax.set_xlim(0, 1000) ax.set_yticks(yticks) ax.set_xticks( [ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 2, 3, 4, 5, 6, 7, 8, 9, 20, 30, 40, 50, 60, 70, 80, 90, 200, 300, 400, 500, 600, 700, 800, 900, ], minor=True, ) ax.set_xticks([0, 1, 10, 100, 1000]) ax.set_xticklabels(["0", "1", "10", "100", "1000"]) ax.set_yticklabels(benchmarks.values()) ax.plot([1, 1], [0, len(benchmarks) + 1], "--", color="k", lw=0.75, alpha=0.5) spacing = len(benchmarks) // 2 + 1 ax.set_ylim(all_yticks[0] - 0.05 * spacing, all_yticks[-1] + 0.05 * spacing) fig.suptitle(benchmark_name) plt.tight_layout(rect=[0, 0.03, 1, 0.95]) plt.savefig(fig_filename, dpi=300) plt.close(fig) make_plot( benchmark_name="Apply units to data", benchmarks={"list_create": "List", "array_create": "Array"}, fig_filename="apply.png", ) make_plot( benchmark_name="Unary operations", benchmarks={"sqrt": r"$\mathtt{data**0.5}$", "square": r"$\mathtt{data**2}$"}, fig_filename="unary.png", ) make_plot( benchmark_name="Binary operations, different units", benchmarks={ "kgg_operator.add12": r"$\mathtt{a + b}$", "kgg_operator.sub12": r"$\mathtt{a - b}$", "kgg_operator.mul12": r"$\mathtt{a * b}$", "kgg_operator.truediv12": r"$\mathtt{a / b}$", "kgg_operator.eq12": r"$\mathtt{a == b}$", }, fig_filename="binary_different_units.png", ) make_plot( benchmark_name="Binary operations, same units", benchmarks={ "gg_operator.add12": r"$\mathtt{a + b}$", "gg_operator.sub12": r"$\mathtt{a - b}$", "gg_operator.mul12": r"$\mathtt{a * b}$", "gg_operator.truediv12": r"$\mathtt{a / b}$", "gg_operator.eq12": r"$\mathtt{a == b}$", }, fig_filename="binary_same_units.png", ) make_plot( benchmark_name="NumPy ufunc", benchmarks={ "kgg_np.add12": r"$\mathtt{np.add(a, b)}$", "kgg_np.subtract12": r"$\mathtt{np.subtract(a, b)}$", "kgg_np.multiply12": r"$\mathtt{np.multiply(a, b)}$", "kgg_np.true_divide12": r"$\mathtt{np.divide(a, b)}$", "kgg_np.equal12": r"$\mathtt{np.equal(a, b)}$", "npsqrt": r"$\mathtt{np.sqrt(data)}$", "npsquare": r"$\mathtt{np.power(data, 2)}$", }, fig_filename="ufunc.png", ) make_plot( benchmark_name="In-place ufunc", benchmarks={ "kgg_np.add12out": r"$\mathtt{np.add(a, b, out=out)}$", "kgg_np.subtract12out": r"$\mathtt{np.subtract(a, b, out=out)}$", "kgg_np.multiply12out": r"$\mathtt{np.multiply(a, b, out=out)}$", "kgg_np.true_divide12out": r"$\mathtt{np.divide(a, b, out=out)}$", "kgg_np.equal12out": r"$\mathtt{np.equal(a, b, out=out)}$", "npsqrtout": r"$\mathtt{np.sqrt(data, out=out)}$", "npsquareout": r"$\mathtt{np.power(data, 2, out=out)}$", }, fig_filename="ufuncout.png", ) unyt-3.2.0/paper/binary_different_units.png000066400000000000000000002365401526544257300211130ustar00rootroot00000000000000‰PNG  IHDR€ ¿‘^ÙsBIT|dˆ pHYs.#.#x¥?v9tEXtSoftwarematplotlib version 2.2.2, http://matplotlib.org/†ŸÔ IDATxœìÝy|LgÿÿñOIˆ%Ö BDTŠR;¡ö¶¥´ÜvÚ[j©*·¥TQÕÒZºp[ºXÚ»TÚR-ZmkT”"–؉؂$d¿~øå|sæÌLf²ML_ÏÇcçÌu®ó™™sNƼÏuŽ‹RJ à¡çêèyƒœ08 `pÀà$€ÀI€“ 'A N‚œ08 `pÀà$€ÀI€“ 'A N‚œ08 `pÀà$€ÀI€“ 'A N‚œ08 `pÀÈs)))2räH)S¦ŒÔ¨QC¾ûî;G—ÀÓ§O— *È#�<"‹-rt9Èééé²cÇ3fŒLž<9Ûöëׯ—š5kJéÒ¥%$$D’““s¼îˆˆ?~¼4jÔH*Uª$žžžR¹re –?üPnݺeuù¤¤$Y»v­ôîÝ[‚‚‚ÄÇÇG¼½½%00Pzõê%?ýô“(¥r\�.]º$�;w–%JHóæÍåÈ‘#Ž. NÌEñ¿"€‡Ú¡C‡¤Aƒ9ZÖËËK¼½½¥D‰RµjU©U«–<þøãòì³ÏJ�5r\Ó»ï¾+S§NÕ¦=<<äøñã�ã>Œ¯¿þZ  ›·sçNiÕª•ƒ*B^¹zõªüöÛoòóÏ?Ë–-[´ uðàÁ²råJ‹Ë�={V‚‚‚$%%E›÷Î;ïèŽó¶¸s玌3FV­Z%íÛ·—®]»ÊÙ³gå‹/¾�{÷îií*T¨ Û¶m“ÚµkúØ»w¯ 2DÎ�;'!!!R½zuùå—_ä×_Õµ{î¹çdýúõâêÊyï(žzê)ùý÷ßµéÀÀ@9uê”+€3swtÈ???ùøã�åöíÛ%›7o–;wîØ´lRR’$%%ÉÍ›7åܹs&""¯½öšÔ­[W&Mš$ýúõ³ûô={öè¦SRR$22’x˜î¿""ûöí#~ÈõîÝ[¾ýöÛ-ûçŸêÂ_‘Û„=’““åÙgŸ•Ý»wK·nÝäÇÔžëß¿¿´k×Nîß¿/""×®]“™3gÊ7ß|£ë#""BÚµk'IIIòÝwßI¯^½DDdìØ±òŸÿüG,X µýñÇå×_•N�:ÙU'�_L�­§OŸ–›7oJÙ²eTœ§Â<äÊ–-+¯½öšL›6MV¯^-ÇŽ“2eÊÚ)RDÖ®]+!;wî”Í›7˲eËdĈâçç§kÿ÷ßËÀ�¥qãÆrþüy»jjÔ¨‘aÝO<ñ„ý/@�3ÝEDš4iâ€J�—V¯^-ÉÉÉräȳ#k­©_¿¾¸¹¹éæÙ»ML˜0AvïÞ-""ãÆ�Ó=׬Y3Y¸p¡nž———n:>>^zôè!IIIR­Z5-üÍôÁH›6m¬ö8’é±5 €ðù†ÀÉT®\Yzöìi˜ß°aCéÝ»·4nÜX7n,­Zµ’Î�;KHHˆ,^¼XΟ?/?üðƒøûûë–‹ŒŒ”&MšØu™ÂI“&É Aƒ¤dÉ’ ÿûßÿruIi¹s÷î]¹xñ¢Mm,ãÆ�“2eÊHåÊ•åã�?–Ö­[çs…Èoîîîâáá!uëÖ•AƒÙµlÍš5eÅŠRµjUñññ‘aÆɤI“l^>::Z–,Y¢M›;!èå—_–ùóç‹¿¿¿<óÌ3òî»ïêž_°`�\¹rÅâònnnòý÷ßK�=Äßß_¦N�*mÛ¶µ¹FäÎÑ£G]B¡·|ùriÓ¦�x{{K³fÍdݺuv÷Áû [q`'ôá‡FXµiÓF¶oßží²7oÞ”:È_ý¥›ß°aCÙ·oŸ¸»sàaÓ§OéÒ¥‹ÝÁœÓŠ+䥗^Ò¦³»pn�?^æÏŸ¯Mgddˆ‹‹‹Í˧§§KåÊ•åÚµk""2hÐ YµjUž×‰œY¼x±8p@–/_îèRœÚ¦M›dÁ‚²uëVG—€‡#€œPÉ’%s¼lÙ²e%44T<<¢¢¢ÔŒ3Ôc�=¦¶mÛfµmrr²Ú¼y³êׯŸ*V¬˜Ý2»wïVÁÁÁ†šDD½øâ‹êÎ�;6×uûömõæ›oªŠ+j}”*UJ¹»»kÓ%K–To¿ý¶JJJ²©Ï[·n©ÿþ÷¿ªaƆÚçÌ™£<<]{nûöíêÉ'Ÿ4û+Uª¤¾øâ »_Ç—_~©êׯ¯}Ξžžº~ëÔ©£V¯^mS_éééjË–-ê_ÿú—òôôTƒÖž‹ˆˆPº¾Ìn«iiiê³Ï>SuëÖÕÚz{{+///mÚÍÍM >>ÊÕÕU‰ˆêÔ©“:|ø°áoDÖíÖš;wî¨U«V©gŸ}V 6Ìlsl}djÓ¦MŽ–Ïîu;vLõìÙSyyy)UªT)Ýò>>>êµ×^Sñññ6½§OŸVo½õ–ªR¥Š®þÄÄDÕ·o_]ßnnnê‡~°Ø×ž={ÔSO=¥ÜÝÝ•———añõõUÓ§OW)))ÙÖ§V®\©:tè }öY­ZµJU«VÍðþyxx¨·ß~Ûb¿'Nœ0»\N?KÖ¬YcÓv’Uæ1ÝÒãìÙ³×W�ß?222TXX˜5j”òõõ5Û&666ÛדõaéûÝåË—UïÞ½•›››¶ úøø(%"ªzõêjÞ¼yjРAº¿»pÀN(/`s?vfâ*¥Ttt´š={¶áÇKKË~ûí·ª_¿~†â³.3sæLíGlk?€¦§§g[ß®]»T¥J•”ˆ¨¢E‹ª�>úHݾ}[)¥Ô½{÷ÔŠ+t¡fÇŽÕ½{÷Ìöuÿþ}µnÝ:Õ«W/Cˆ˜Yû„ ÌÖëîî®bccÕüùó•ŸŸŸÙ6þþþjÒ¤IjáÂ…_ϲeËÔ�!C´tED5jÔHmܸ1Û÷‹-RÞÞÞJDTÛ¶mÕöíÛµ÷ûÆ�jáÂ…ª\¹rº á½÷Þ³Ø_tt´úàƒT³fÍtµ‹<€322Ô”)S²ýÜED 0À¦ÏþúõëªmÛ¶JDÔË/¿¬ ©8 Úµk§ëwàÀ�*55Õl_‘‘‘j„ ê‘G1xìÛ·Ïàd>LCëË—/«-ZhÏ�1B�;wN)õ Œüã�?TPP�ö|ÕªUÕéÓ§ÍÖµuëVµdɵdÉ-Ì| 4H{.ó¥[þÊ•+ê“O>QÁÁÁºÏÅZPœUFF†š:uª*R¤ˆÕ«W/uàÀ•‘‘¡”RêÒ¥KjÖ¬YZÈ""ªxñâVûÿõ×_Õ¿ÿýoíă¬�Ìå>ÿüsÃ>hú R VëOKKSÏ?ÿ¼yprÀ‡~¨âââ´Ï"<<\Û†DDU«Vͦ÷¥ ìÚµK ç‚‚‚Thh¨vìJLLTkÖ¬QþþþÊÓÓS=ýôÓ6u jÍš5ªG�º÷ØÒ2QQQºmlìØ±†ÏÂt;Ì|dÚ°aƒn~óæÍuË7oÞÜìòüñ‡Å×ñÞ{ï©"EŠ¨Úµk«-[¶hÇŒØØX5cÆ -$U£F uôèQ³ý\¿~]-]ºTµjÕÊpìRêÁß…Ö­[›ÝŸ|òICéééjôèÑÊÅÅE«={öhÏ�?^½ú꫺>5jdöd†»wïª%K–¨§Ÿ~ZÛÿLk»{÷®¶}[{L�:Õìk?~ü¸]Ÿ‰µÏÚS§N©÷Þ{OµoßÞl}æ|óÍ7jÖ¬YêùçŸ7ûwÃ\\�ß?öîݫƎkø›aÎ¥K—´÷°K—.ºö5kÖ4¼Ï6l0ô¥�ÄÒ¨Q#µmÛ6•œœ¬”zpÜ矮;É…Àù8¡ÜÀ_ýµaùîÝ»[]fݺuªI“& µOŸ>]}þùçf0ÿã�?THHˆU·n]õÎ;凞+Wª™3gš M?ûì3«5:tH<-_¾Ül»ßÿ]×ïèÑ£ m<¨êׯ¯Zµj¥ë3ëë]ºt©Õ°aC]8šù¸qã†RêAQ¹reÃóV_OVݺuS"F˜frÙëµ×^Ój2dˆÅºcbbÔã�?®{ /½ô’¡ýÝ»wU�:uT`` nÔuÖ¢G�¥DD•/_^ 0@Mžþ|UªT)mdÎ�7tëoܸ±®¿Å‹ú07ªÇ’Ì¢Ÿ~ú©ÍËØâý÷ß×ê©]»v¶—�‰‰1\–ÚR°§ÔƒP>ëÈ;Q�<òˆòòòRóæÍ3\‚;55UÍœ9Ó¾¸¸¸¨°°0³ëÈÈÈÐÞû¦M›Z©µ~ýzÃçðí·ßêÚd.ïÞ=Ã%žû÷ﯚ7o®†ªÕ>wî\-XussS‡Òú2 *¬]jÙt4ùºuë,¶UʾøèÑ£êÀ�***J Tm]6Óˆ#´öO=õT¶í�=jž¬½þ””Ã%Ç[µj¥\]]ÕŒ3 �xRR’áJ*TPiiiבJ{{{[ÝN®_¿®J”(Q(à³gÏj!NÅŠµK,9wîœá}7ÞÅÆÆª�;wª'N¨uëÖiW°7ðstœù÷ÐÕÕUýõ×_Û%''F™wéÒE×&ë61yòdÃëZ´h‘ ÐÂÓÈÈH]XøŸÿüG×_f¸W¢D uåÊ‹µ]»vÍ0ªwÔ¨QÛóÍ7fÿžV©RÅìq2""ÂðwܸqûWªààÕ«WÛ½ýDDD–±v èüüþñǨ£G�ªƒš½�AvrÿöÛoZûáÇ[m›y¢0€ó!pBæà¦M›ªS§NéQQQ*""B­[·NM™2EÕ¨QÃðƒæ×_­]¾ÕV‰‰‰†PÏ–ËG›^²ÖÇÇG…‡‡[lon¤²¥ðãÞ½{†ÐÐZߦ!vhh¨Å¶ééé†@ÅËËK­]»V×.--M­^½Z}ôÑG†:ïß¿ozõêeq�Y9rD ­òrôïÞ½{uŸ£¥‘¦¾üòKÝëpuuU;vì°Ø>ë}oE\š{÷îÝV×1{ölÃgߤI³m-ZdókHNN6„ŒuêÔ±Øþ•W^1|î]ºt1ì3‘‘‘êý÷ßW{÷îÕÍoÖ¬™nùY³fY\×wß}§k;räH«¯ÅžØTæeÒm]Ö´¶?ÿüÓ¦õÌœ9ÓðÙŸ ðåË—µp¼[·nÙ¶7i+bùJ {öì1´­P¡‚:uê”®]\\œZ´h‘Z¹r¥îäƒÈÈH-Ô5w• S�:uÒ­«H‘"CãÇj«W¯žÕ�yذaºö¦£•MT¼uëV»·Ÿ3gΖ±+•¿ß?2™;Y,;9 €§N�ªµŸ0a‚Õ¶©©©ªbÅŠÀNÈUð�°ÿ~©Y³¦î$Mš4‘ž={Ê{ï½'ÑÑÑ""Ò¹sgÙ¿¿üùçŸÒ¯_?qqq±k]ÅŠ“òåËÛ]cñâÅuÓ³gÏ––-[Zlÿì³Ïæýý÷ßfÛ&%%‰RJ7/&&ÆbßeÊ”ÑM_¹rÅb[WWWCû¶mÛJïÞ½uóÜÜܤoß¾2fÌ)[¶¬î9///yíµ×tó6lØ /^´¸ÞLß|ó�ˆˆôìÙS¼½½³mo«iÓ¦Izzºˆˆ”*UJºvíjÓr”zõêiÓòÖ[oYl_ºtiÃò-Z´°ºŽI“&IÓ¦Muó"""$22R7/55UfÍš%""ÞÞÞÙ¾ú�=*ÇŽ3Û¾\¹rºé´´4Yºt©aŸyâ‰'dâĉҬY3Ýüû÷ïë¦ój›Ì­jÕªÙÜV)¥û|ƒ‚‚¤aÆ6-;qâDݱâþýûÚçeŽé1âõ×_—ž={ZlߢE ñññÑͳtŒ¸víšöïëׯËÉ“'­Ö>dȫτիW˶mÛDäÁqwðàÁ6-רQ#»×eÏ6QXÌ›7Onß¾-""}úôɶ}›6m óBCCͶ5Ý÷EDÆ�'���ºy>>>2jÔ(ûì3«¯iÿþý-UªT‘öíÛÛ½NK6oÞ¬›®U«–]Ë›Ž~ùå—_rU“©N�:F›"Ya???¹téR¶s#ûlÝþíýܧL™"«V­’ &Hxx¸]Ÿaa�'"²iÓ&Ýtn·•´´4ùý÷ßs]W&[�AAAº“~úé'8p ÕýoëÖ­ySdDDDÈÁƒµi[G]ÿSlß¾]ý[¼xqQJe»ï{xxèFéŠØ¾ï‹Ø¾ÿÿôÓOÚÕüýýåêÕ«ÙÖV¢D C?yùwÙÜIÖ¶}Ø÷ý£ µk×N7=hÐ Y½zµÅö­[·–3fäsU(hÆSVð�âîî.þþþâïï/}úô‘“'OÊðáõˊŠ<AÒ¸qcÙ°aƒM£¨ ’é¨�ŒŒ ‹m½½½eÒ¤IVû»}û¶¬^½ZÖ¬Y£›om$`^;v¬,Z´H»4èíÛ·eùòå2zôh³í3ëìß¿Ž.•iIÖÏ_Ä8:2;UªT___‰��Õæmß¾Ýꥠíåîî.;v”o¿ýV›wâÄ ]›Ý»wkÿ^±b…nD =2ƒ¤¼æââ’íÈíÔÔTÙ¸q£,Z´H7¿ ¶Éìäv[iР�¸ººêöÝíÛ·ËÀ�ó¤>[�®®®2qâD;v¬6ï믿–°°0ùøã�åùçŸÏ“zòÊo¿ý¦›®Y³¦ƒ*)œ²îû âçç—£~òcßÏZ[TTT¡¨ÍܨakOaß÷�‚Ô©S'iР�vK„{÷îIÿþýeÍš5²páBñ÷÷wl�(ÀÐyôÑGå×_•¡C‡Êÿþ÷?mþÝ»wå¹çž“Ý»wKݺuXaþˆˆˆ�Å‹ËÚµk¥V­Zâëë›í=@󃟟Ÿôë×OV­Z¥Íûøã�eÔ¨Q†€7##C»?e^^þYD´ûAgÊÉ=Ÿxâ Ù²e‹6}îܹܖeP·n]]§ýûÆ�rùòemºoß¾Ò¯_¿�î IDAT­§jÕª9/2‡.\¸ Ë–-“/¾øBÜÝÝmºL¬#œ9sF7mï¶âíí-5kÖÔ…÷ù±­Øâµ×^“ŸþYwùó‹/JÏž=¥K—.²páB©^½ºCj3ezoO{ƒwgwèÐ!íßåË——å˗稟œû²“µ¶ºuëÊìÙ³sÔO^ÞóÎÃÅÅE¾úê+ –»wïjó7nÜ([·n•©S§Êøñãíº­>À0pww—¥K—ÊŽ;äâÅ‹Úüøøx5j”ìØ±Ã�Õå�ŒŒ Y¿~½Ì›7Oöïß//¼ð‚„……IãÆ�eÆŒ²sçN‡Ô5aÂùòË/µžÑÑÑòã�?J�=tívìØ!W®\‘† JíÚµó´Ó{ÆÇÇÛÝGåÊ•­ö™uÓ÷îݳ¸¾€€éÚµkž×�×"""äƒ>�õë×K“&MdÙ²eÒµkWÙ¹s§¬[·ÎÑåéܾ}Ûp)êœn+YàüØVláêê*ßÿ½tíÚÕpœÛ´i“üñÇ2eÊ™8q¢ÃÃÓËÿfwÏÒš¬Û�‡‡G¡Ú÷³ÖVªT©BUœC�:udãÆ�òÜsÏéFŠß¿_Þ|óMùꫯdñâņËEÀyp`˜åíímvTiXX˜9rÄå­üQêÕ«'/¼ð‚+VLŽ9"k×®•Æ�;º4©S§ŽtéÒE7ïÃ?4´Ë¼üs^�þ1ÞË0ë("[•,YR7�”””«šÌ1½/fÖQ�YG‹<¸ laväÈéÒ¥‹4mÚT"##eÆ ²gÏéÞ½»á¾¤……¹{^ÖmÅVÅ‹—_ýUFŽixîþýûòÖ[oÉOù¤ìÙ³GüqÃsQQQÒ¾}{y饗rtÌ@áG ‹,Ýï7ëe}6ñññÒ«W/éÞ½»;vLÞ{ï=Ùºukž� Í-Ó{‡……ÉÁƒµéÔÔTùþûïÅÝÝ=Ç—5¶¦téҺ阘»û0 gË–-›«šÌ)V¬˜nºL™2Ú¿M/™í¨Q¥ÙQJÉ;ï¼# 4�Í›7KÏž=寿þ2œP™n'"…w[±‡‡‡‡ü÷¿ÿ•_~ùÅ0Ê\Däøñãòä“OÊâÅ‹Pݦ#­óë>Õ«¬ûÿÝ»w%%%Å�Õèe­­°—à‚‚‚dÿþý2uêTñôô4<¿bÅ iذ¡DEE9 :ä'`Xäëëkv~ÖËB?L®]»&-[¶Ô.£;sæL™::ZÚ´i#çÏŸw@uÈ/À°¨H‘"fç›Þóóa�žž.ÿú׿´pªfÍš…6üÍd: 844T®\¹"""ß|ó�ˆäÏåŸEDêׯ¯›¾zõªÝ#ÕLG(6jÔ(×u™2õزeKíß*TÐ=wèСBw©Ë·ß~[û,]]]eÉ’%…örÏ–˜n+ÿý·vÿj[Ķ’Sžžž2qâD9}ú´„„„ˆ‹‹‹îù7ÞxCîܹSàu™Ž’ŽŒŒ,ð 3Óý¿0Ý»>kmîÀjðO ß}÷�„‡‡K½zõtÏ]»vM¦M›æ Ê�€`ÑÕ«WÍί\¹rW’{¡¡¡²mÛ6mºW¯^…>h{î¹ç$((H›NMM•… Êýû÷eÆ âãã#Ï=÷\¾¬»]»v†y¿ýö›]}œ9s&Û>sËtÔcÖu”.]ZªW¯®M'%%ÉÚµks´žµk×ÊÇœ³"-¸té’¼ûî»ÚtÓ¦Muõ>,L?ׄ„Ù»w¯]}Ķ’�HÇŽ->_®\9Y¶l™üôÓOºK©Þ½{WBCC ¢DÓËÖoß¾½Ð�ààH¦'¬Zµ*GýܺuKºwï.éééyQ–ˆä]m§OŸÎ·“€ððzõÕWåÿûŸÅç[¶l)2tèPÝüÕ«W®Æ€‡0,Úµk—ÙùMš4)àJrï‹/¾ÐMûûû[moïÆüàââ"'NÔÍûôÓOå›o¾‘„„yñÅÍÞÓ//tëÖÍÐ÷·ß~kWG�Õþííí�/÷´Íz_äzõêIóæÍuÏë¦çÌ™#IIIv­ãÂ… 2bÄ©S§NÎ 5cåÊ•ºP)¿·É¼ °²zá… óìÙVîÝ»§»1Û&7Ÿ»é6yøða«¡©é%=³Û&K•*¥›6½\¶ˆå}ÎÞýwöìÙº{†_¹rE.\hu™LY·•Ç{ÌHd•ŸÇˆLK–,ɶ�———”+WN›~ôÑGͶ›3gŽT¯^]¼¼¼¤~ýúÚýžóB�5 £ê¯\¹"C‡µ*)¥dõêÕºy.\Èv}99¦‹˜ÿ{doÈdÚ‡-Ë»»»Ë+¯¼¢›wêÔ)éÕ«—Mûé’%KdÊ”)2lØ0Ã}®EÌo‹¶îÿeÊ”‘¾}ûêæíܹSBBBl Ö'Ož,Ë–-“©S§J¥J•lª-;öî'¶_Drò”¹×÷ý÷ß[lŸ’’böïTvß‹ â=3݇D²ß�Lßçèèh³ï©é¼¸¸8›Ž7~~~Ú¿]]] /ðð"pBæ.GjëÈÍ{÷îIHHˆÙÀ+$$Ä0¢ÒœÄÄD¹yó¦nž-#rnß¾­›ÎnaZZša=æ~`1Þ·xÆ ²eËC»ØØXéÒ¥‹\¿~]7÷îݺõf½×fFF†¡Ž¼¼$ì+¯¼"%K–ÔÍ8p`žõo‰ŸŸŸaø§Ÿ~j¹jêâÅ‹²téRyp믾úJ|}}m^ïü‘mrãÆ ™={¶ˆ<¸¼ôòåË £!Eü mè)¥dèС2jÔ(‹!jXX˜4oÞ\¶nÝ*o¼ñ†á’­™L÷«èèh›GFšn“×®]“·ß~ÛÐ.99YF�e¸|íÉ“'uÛ�é6X³fMÝô† tÁYrr²ôïß_¾úê+Ã:ÏŸ?¯›ÎnÿmÔ¨‘Ì™3G7ï½÷Þ³xñL�õë׋ˆHÑ¢E%44TŠ-j±½½Çã½Ì-#2mÛ¶Íì±!«7nhÇéÙ³§¡ÍòåËeòäÉrîÜ9INN–ÇKß¾}-žL�óçÏ—bÅŠéæ}ûí·Ò§O³#“““%$$DvìØ¡›¿k×.Y¸p¡;vL.]ºdö}µw›Èm˜wâÄ ›–µÔ‡­ËO˜0Auó¶lÙ"Íš5“ýû÷›]&66V† &#GŽ”G}T>øà³íÌýMµç¸?{ölÃU–/_.:t°øúΞ=+=zô�9sæHëÖ­eüøñfÛ™î'"Ùï+æöUkûŠéñåÔ©S†÷ô£�>’áÇ[]ovüýý¥J•*ºyÓ¦M“#GŽÚž>}Z:tè ·nÝ’Ç\÷\xx¸Õõäç÷�L¦û�Höû‘éû|ïÞ=Y·n�nÞwß}']»v5,ûöÛog[Ó±cÇ´?ýôÓR¶lY«íðQp*IIIªZµjJDtõÕW_©ŒŒ Ã2©©©êøñãêÃ?4»¬»»»š6mšÍ5|õÕW†>Zµj¥RSS-.súôiÃ2cÇŽµºžððpÃ2¯¾úªÙ¶#FŒ0´uuuUC† QK–,QŸ|ò‰:t¨*Z´¨jÕª•Z¹r¥¡ýðáÃÕ‚ TýúõÕ¶mÛ´¾¿üòKCÛGyDݸqÃæ÷,;cÆŒÑõúôé<ë;;}ô‘rqqÑÖ¨®\¹b¶m||¼jÞ¼¹¶Ý¬X±"ÛþÛ´icxÿ†ª’’’̶OLLT:tP"¢¼¼¼Ôï¿ÿží:&NœhX‡ˆ(Õ©S'5zôh5eÊõòË/«   íùÞ½{«ôôt³}ÆÄĨʕ+ú\³fM¶õ(¥ÔÚµkÍÖÔ¡C5þ|õé§Ÿªÿüç?ªbÅŠªbÅŠjçÎ�†¶íÛ·W‹/VݺuS3fÌÐõÿÙgŸÚ7jÔH-]ºT}ôÑGªvíÚª^½z†÷ÙÜzjÔ¨¡¬¾žŒŒ 5nÜ8Ýr-Z´PwîÜ1ÛþêÕ«* @‰ˆòööV¿üò‹Õþ”§§§®ÿçŸÞê2/^4¼–®]»šm¡µ©X±¢:yò¤Å~‡®µ�>}ºÙ6 0ûù+VLݺuËjÝöX¹r¥nÿÌ|”*UJ…„„¨… ª+V¨)S¦¨êÕ«+wwwõÖ[o™­MDT¹råÔáÇu눋‹SeË–ÕµsssSÿý·ÕÚRRRTãÆ� ë6l˜Í¯ïÏ?ÿ4[gxx¸MËïÛ·O/^Ül�?þ¸zùå—Õ”)SÔ˜1cT‡T‘"E”ˆ¨Ê•+«¨¨(³}¦§§«ÿû߆þºté¢ÒÒÒl~m6lPîîîfkkÖ¬™ Qo¾ù¦zõÕWUpp°ruuU"¢j×®­bcc-öûùçŸúÛ°aƒÕZfÍšeXæ»ï¾³ØþÔ©S†ö+VT|ð�úì³ÏT§N�T‰%Ô‰'l~?,yï½÷ ë*Z´¨>|¸úä“OÔÌ™3UçÎ�•›››ªT©’:}ú´jÙ²¥a¿9r¤úä“OÔ… týç÷÷�L/¿ü²a™7ÞxÃê2ñññ†ã^‰%ÔÛo¿­–/_®úöí«Š)¢Â´eF�¥µíÓ§�Åï^ׯ_W~~~Úû“Ýþ €‡ 0€HNNV—/_V7nTíÚµ³øÃ~æ‡���ªfÍšÊßß_•-[VûQÙôáææ¦ºvíjÓ�‚«W¯Vï¾û®êÝ»·öºé£V­ZjÒ¤IjåÊ•ºPíÆ�ª[·n†öÞÞÞê·ß~3»¾sçΩ&Mš–)Y²¤Ú²e‹!è¾pá‚!À0÷xñÅUBB‚Š��U^^^fÛÔ¯__�;wN͘1C5kÖÌb_åË—Wÿþ÷¿Õ| ¶nÝš«ÏøÈ‘#Z¿ÁÁÁ¹ê+'Ö¬Y£|||´|}}Õ矮…{)))êÇTµk×V"¢*Uª¤6mÚdSߦp�5”‹‹‹ T+V¬PqqqÚ:6oÞ¬êׯ¯4¶„¿™Þxã ³A™¹‡«««š8q¢ÙðwéÒ¥ªwïÞªX±b—}öÙgÕŒ3ÔÂ… -Ö“––¦Z´h‘m-õë××ÂÈ ˜mããã£:¤ë?>>^U¨PÁb¿ÕªUSçÎ�SJ)µqãFõþûï«AƒY ˪T©¢ÆŒ£>ÿüsoñu-X°@·ïªÐÐPuÿþ}¥”R÷îÝS_ýµªR¥Šöü¾}û¬~v jذafßëÕ«W› Ý®_¿®ºtébXÆÝÝ]}ýõ׆e²À"¢J—.­,X ®^½ªµ9yò¤8p Öæå—_6{R�RÊjÈúÓO?Y}½öZ¹r¥òððÈv[òððP«V­RÛ¶m3¼']»vUßÿ½JIIQJ)©,X F�­…D¦�âÅ‹«Aƒ©E‹©èèh¥ÔƒcÕ‚ Ô믿®jÖ¬i±–† ªqãÆ©ùóçëÂ+¥” U³gÏVýû÷WÞÞÞf—÷ôôTÏ?ÿ¼š>}ºúä“OÔµk×,¾?»ví²éøŸùhÚ´©¶odµ{÷nõú믫êÕ«[\6((H�;V}øá‡ä¬Ö­[gñXbîÑ©S'uóæM‹ý=zTÕ¨Qð\ݺu-†±;wî4ûþÔ«WO?~Üâº:wîl±NOOÏlOê°Urr²MÇÊG}T;Vš €»té¢þûßÿjS”Êßï÷ïßWŸ|ò‰zë­·TÛ¶m-ÖݦM5kÖ,‹ï—¹ز¿øâ ]û¬°ˆ¨æÍ›«ŸþY%''+¥þïoé£�>ª½ÖÍ›7çús@áB ð�‹ŒŒ´ù‡ckoooU©R%Õ A5tèPµxñb]ð‘�:uêØµ¾Ì0¨M›6G@e>Ê–-«Þyçm]õë×·Zg>Ê•+§Ö®]««ñ¯¿þ²Xgƒ ÔúõëuíçÎ�kh׫W/uóæMµfÍ»^ïàÁƒsþ!ÿ™ÏÒ¥KsÝWN\»vM�5Ê”*UJû<ªU«¦¦M›f5 4eOŸ>]mÞ¼Y 1\\\TéÒ¥•›››yÌ�=Z÷#¾­víÚ¥ž|òI‹A°»»»êÙ³§Šˆˆ°Ø‡éh¬ìÖܼyS=÷Üsf—óóóSï¿ÿ¾nôÖöíÛ �Xýúõ #63íØ±C•)SÆÐw÷îÝuû·¹ ÔÚÃZ(¤”RgÏžU Ð…É...ÊÇÇG{‚Ô‚ ´ÀÑ’X<#óQ²dIõÊ+¯hËtíÚÕâ‰(Y·Û?üP[Æ4Îú(Q¢„*Q¢„6]¥J•lG·ÇÇÇ«�ªråÊú³u”¸=Nœ8¡ºwïnñxÚ²eKuàÀ¥”ÒàÚµk«>ø@ÅÄÄú3wü³öX²d‰RJ©… Úµœˆ¨Q£FéÖݨQ#»û°¶Ï*õ è9r¤*Y²¤Å>êÔ©£–-[fqÔÿ+¯¼bWM¶\A©'(õë×ÏêvÞ¼ysj±�sçΙ ~MU«VU?ÿü³RJ©Ã‡«ªU«f»Œ¿¿¿ðg£êÖ­kh_¯^½l?{ÅÇÇ«!C†˜ýÛ_¬X15aÂÝU Z¶l©¼½½UÿþýÕ¦M›´ïYå÷÷�ëׯ۵½4kÖÌìkOHH0{¥ ³¡±iœùpuuUeÊ”Ñ�,Ò±cGuìØ±<ø„Pظ(eã ª'�‘‘!;wJJJŠT©RE4h µk×6Û~ïÞ½²{÷nñòò’víÚÉc�=VÀ?%�=ö˜xzzÊÕ«WÅÇÇÇ!uˆ<¸÷áž={$::Z®^½*E‹___©S§Žá¾‹¶hÛ¶­îž¤Ó§O—3fHZZšìÚµK>,ñññR¾|yñ÷÷—Ö­[‹§§g®^CLLŒ„‡‡KLLŒ$$$ˆ���JóæÍ ÷[.G�•°°0‰‹‹___©U«–›½¯ñ™3gdË–-’””$ 6”Ö­[‹‹‹‹Å¾oݺ%7n”K—.I™2e¤]»vR«V­ü|9š¤¤$ —óçÏ˵kפxñâR±bEiР�áÞ¬……RJâããåܹsròäI¹råŠÄÇÇKFF†”.]ZêÕ«'ÁÁÁâîînW¿iiiÒ¹sgùý÷ßeçÎ�ÒªU«|©?..N¶oß.—.]’ÄÄDyä‘G¤I“&¤µ¹xñ¢\¹rEš5k–/5f)))&gÏž•ëׯKÑ¢E¥R¥JÒ´iS phm‰‰‰²cǹpá‚ܺuK¼½½¥J•*Ò¢E Ã=à ‹””ùå—_䨱câéé)M›6•àà`«Ç¤Ü¸|ù²üñÇrùòeqss“G}TÚ·o/%J”е “F�‰··w¾ÔQÐ222dëÖ­rèÐ!qqq‘úõëKûöíÅÍÍÍâ2ééérãÆ 9yò¤DGGË�7äþýûâîî.+V”Ö­[K�5 ðU  �¹sçÊĉåÅ_”ÐÐPG—“§,À€³iݺµ9rDbccÅÃÃÃÑ圔ñtr…ΪU«DDdذa®@N>|XÂÃÃeäÈ‘„¿€|E raaarôèQ �Ž;:ºvŠ��—H@@€L™2ÅÑ圜}7-P ”R2iÒ$;vl¾ÝW@þ¸yó¦tëÖM._¾,;wîtš{’ /F…ØÜ¹seïÞ½R¾|yyùå—];ìÛ·Oš4i"ׯ_—�;wJíÚµ]à€p ŒŒ >|¸”(QB*W®,}ûö•mÛ¶Ibb¢,\¸P&Ož,""3gΔ¢E‹:¸Úü‘žž®›NMMuP%@Þúí·ß¤wïÞrèÐ!Â_@�qQJ)GüS…††JŸ>}¬¶iÒ¤‰ìÝ»W\]�óüÍÀÀ@‰ŽŽÖ¦,+W®t\A1çü xHÄÆÆZ}¾L™2²víZ§ wïÞ­ ED6oÞ,qqqªàáÆ`À�Μ9#O<ñ„ÄÇÇžóóó“M›6Éã�?î€ÊòOll¬„††ÊÞ½{eݺu’””dhS±bEéÖ­›Ô¨QC*T¨ C‡u@¥`ÀÁ"""äÍ7ß”HJJŠÔ¬YS^xá3fŒ/^ÜÑåå¹ßÿ]žzê)›ÛûúúÊÕ«Wó±"çA NÂ9o$ÿ@Àà$€ÀI€“ 'A N‚œ08 `pÀà$€ÀI€“ 'A N‚œ08 `pÀà$€ÀI€“ 'A N‚œ08 `pÀà$€ÀI€“ 'A N‚œ08 `pÀà$€ÀI€“ 'A N‚œ08 `pÀà$€ÀI€“ 'A N‚œ08 `pÀà$€ÀI¸;ºàaqûömÙ±c‡6íçç'žžž¬àá’œœ,/^Ô¦Û´i#>>>¬Èù6Ú±c‡ôèÑÃÑe8�~øAºwïîè2œ —€'A N‚K@6òóóÓMÿðÃè jd'--MŽ=ªMשSGÜÝù³ŽtúôiÝ-7Móä¿„6òôôÔMJ�:uT €g#@[ IDATì$%%Éúõëµéž={Š———+˜2Í_�{\œ08 `pÀà$€ÀI€“ 'A N‚œ08 wG@~ðôô”×_]7 €³#8%ñññqt(. N‚Àüƒ)¥$##C”RŽ.€ƒ¸¸¸ˆ«««¸¸¸8ºä`þaRSSåÎ�;rçÎIMM%ü ...R¤H)Uª””*UJŠ)âè’�CÀ§”œœ,K–,ѦGŒ!žžž¬Àñ’““%66V] €BF)%)))rýúu¹~ýºx{{‹¯¯/¿«>„€�ÚrìŠK.îè2X�’œ$»ŽŸÓ¦Ë<'ž^Ž+8Ü‹ «9º‡JMM• .HZZš£KðHLL” .ˆ¿¿?£�2®Ž.ä¯ôôt¹xñ"á/»¤¥¥ÉÅ‹%==ÝÑ¥ÀŒÀÉÅÄÄHrr²nž«««”,YRJ–,)EŠWWÆŒÿT’šš*wïÞ•»wïJFF†ö\rr²ÄÄÄH•*UX!ìA €KOO—øøxÝ<©V­š¸»xÀÃÃC¼½½¥|ùòrþüyIIIÑž‹��—ôôtqsss`…°§óàÄuÓ...âççGø À,wwwñóóÝ|Óc /`øìÝ{|ÎõÿÇñçµÓ5³932çõužH¨$QI�9$§%•Ê9¤oj©¯ˆ*¤¨(Ç)%šF:IH,gjad(f»¶]×ï?Ÿ\¶±±í³}ö¸ßn×íûy½?ïëóyº¾7óýîu½ßÀÂ._ýëçç'“Ò( |||äççç6–œœlRä_ïXBâáƒW<_ÆuÅó!!!¹˜ à¸|Õ^@@€II&þþþn??h4€–0°ã­W>•÷»\WnF.—KéééncÅŠ3) €ÂäòÀééér¹\¶†FÁÃÐX”ÓéÌ0æééiB…Mf?+2û™‚‚‡0•Ù.'¬Þ�™ý¬`ç¤Â�- –äáá¡à�n5VG`I^Þ>jÙþ~³c�¯XÁ `€%L_±îŠç;Ô«œOI0 `€%VªrÅó!!Uó) €u8�.�8“bv K+[Ü.›Ù1X `€%9ÓÓuäÀFtC5yxzš˜ ð9q&E�Ï~lv KK¡ò¾fÇ`!4€–”––ªõ«Wuxäò¡ °8³r `°À`4€À"¼ÌVí}v¨®=Ùì²p^íõÞ|ç ˜'>!1ëW||–/ / 8P6›-ÃëÅ_t›·eË–LçÙl6Í�;7ÓkïÚµK¯¾úªZ´h¡ &¸�4HµjÕR±bÅT©R%=üðÃ:pà@¦×¹é¦›²¼·ÍfS«V­2¼gß¾}Yfu8jÑ¢E†æï·ß~ë6·T©R9û0�„߆,ÉÃÃC!Á�fÇ�$Uk?àšÞçr¹r9 ð¯Ñ£Gëî»ïÖØ±cõÓO?e9ïÆoÔ–-[´ÿ~�;VÛ¶mËtÞîÝ»õî»ïjùòåÚ³g�1Þ®];9�N�7N/¿ü²RSS�sGŽÑܹsµjÕ*ýðê^½ºÛ5?ÿüsÍš5KcÇŽuûßÇ-[¶TTTT†ù’TµjUmܸQS§NÕ’%Käáá¡3f¨K—.òññÑ‚ är¹Ô§OmÞ¼Y’Ô´iS}ðÁÆ5<==¯òé `€"¨råʪ\¹²‚ƒƒ–å<»Ý®† ªaÆ*Q¢„îºë®L祥¥©G�ò÷÷WTT”1žššª=zhݺuš0a‚Zµj¥ôôtÍŸ?ßX‰{ôèQ 8P111n׬P¡‚¢¢¢tøða½óÎ;Æx—.]²Ìáíí­›o¾Y]ºtÑ’%KôÈ#�hÀ€¿”Y§NI’ŸŸŸ1æçç§ÐÐÐ,? 0a h€"ìÆoÌöÜjÕªey®nݺjܸ±ž}öYùúúãÓ¦MÓÉ“'õÛo¿iøðájÖ¬™n¹å͘1Cýúõ3æ}ñÅ:xð`¦×=z´ÛªÜ+V\5ëªU«$]Øê(Jha—6k¯&;[#{{{«L™2FݤI­\¹Òmì¢G}Ô8v¹\Ú°aC¦×¬V­šºuëfÔ_ýµvîÜ™e‡Ã¡eË–©Q£FjРÁU3VB`IŽÔTÍýô+ãå¸ä¹"ò–···q\½zu·úRuëÖu«³Z,I£F�2Ž].—¦M›–åÜU«VéäÉ“êÛ·ov#–A`IN§Kñ ‰ÆËét™ ÀeÜê3gÎd9·Q£Fjß¾½Qøá‡:~üx¦s-Z$///=ôÐC¹(D¼Ì€Õý;+듵Ûg}(bœNçÏ?óÌ3Š��•$�;wN³fÍÒ˜1cÜæœ9sF+V¬ÐÝwß­ÀÀÀ<Ë T4€Èc!ÁWø¥SHH¾å »;î¸CM›6ÕæÍ›%I3fÌШQ£äããcÌùì³ÏtöìY¶F‘ÅÐ(4žyæãø¯¿þÒ¢E‹ÜÎ/Z´H¥K—VÇŽó;P Ð@¡Ñ©S'Õ®]Û¨§N�jÿóÏ?Š��Õƒ>(»ÝnF<Àt4€PhxxxhäÈ‘F½uëV}õÕW’¤�?þX‡ƒíŸQ¤Ñ@¡Ò»woõ”)S$]Øþ¹N�:ºùæ›ÍŠ˜Ž0 iii×t.?Ùív :Ô¨cbbôÍ7ßè›o¾QŸ>}²u ›Íf§§§çzFÀ,^f «¿üë©dÉ:fÇ�…óçÏ+Éw“Q*ÑD¾¾¾&&È¡Cf'PU®\Ùì€"¦xñâ:sæŒ$iïÞ½YÎÛ¾}»[ír¹ò4ו 0@ãÆ�SRR’\.—ºwï.éÂêàì¸ô÷…'NœÈ“Œ€X PÄÕ¯_ß8þì³Ï´ÿþ s¶oß®áÇËßßßû믿2½^vW Ÿ={Ö­ÎIC¹D‰0`€Q'&&êŽ;îP•*U²õþàà`ãxÏž=nMà´´4-^¼8ÛY€‚„0À’l6›Ê—/o¼.Ý΀»~ýúÇçÏŸ×m·Ý¦yóæiË–-Z³f�† ¢æÍ›küøñªZµª1wÖ¬YZºt©¶mÛfŒ¥¥¥éرcF}òäÉ,ïûûï¿»ÕÿýwŽrùä 4H«W¯VóæÍÕ·o_·kŸßåråaPб4X+€@æ\Néìßf§°6¿2’�õzr `�¹³K¯Õ0;…µ�Ø//gv ÂWJÀ"X °,Oo³#�¯h,ÉÓÛ®Ð{{™€ëvï„%™ŽÏèÞ,Ÿ“€Â€0`ÅËe:’¿A@¡À3€À"h À9vì˜ÒÓÓÍŽ:4€–är¹”žšb¼\.—Ù‘dSZZš"""”��`v ÐáÀKr¦9´+f�Q‡ÞÛSžÞvÈ®1cÆhݺur:�fG V ÀøôÓO5qâD³c… `ä‹~øA���²Ùln¯Þ½{› 7nTÏž=y¤pØùbÍš5:vìX†ñùóçkΜ9²Û ß¶¬Sü?Vݥ̎ çéš`�3êÑ©òõñ41¹lé³ü«ë<³°€U«V©{÷î:{ö¬ÙQ®ËÙ³gõ÷ß«råÊfGAÅ `ä‹'Ÿ|Rƒ R÷îÝÕ½{w·s|‹€‚Áåriùòåz衇T³fM/^\v»]ÁÁÁ ×Ç|ÕßëŸ9sF“&MÒ-·Ü¢R¥JÉÃÃ#áC‡u{Ïk¯½¦:èôéÓnãÕªUs{ß§Ÿ~šá~Û·o×3Ï<£ž={c›6mR»víT²dIÝpà Z°`A–y·l٢ѣGëæ›oVPP�ìv»Ê•+§Æ�kĈÚ²eK¶>·õë×ëÑGUPP�æÌù÷K»Ë—/WDD„ªV­*___«[·núúë¯3½V—.]2|^—¾2k,§¥¥e:÷Å_¼jvX `ä‹òåËë�7ÞÐâÅ‹µxñb³ã€ËìÛ·OÍš5Sxx¸vìØ¡—_~Yßÿ½–.]ªÐÐP-_¾\]ºtQDD„G¦×øóÏ?Õ°aC�5J5kÖTtt´¶lÙ¢•+W*"""Ë{÷ìÙS;vìÐ+¯¼â6þå—_jçÎ�Æ«mÛ¶’¤?þøC'NT“&MT¯^=Mœ8Q ’¤èèhµjÕJkÖ¬QRR’<¨GyD)))n×>~ü¸ºt颰°0}ñÅzòÉ'õùçŸkíÚµ2dˆ<¨É“'+,,L={öTRRR†Ü›6mÒàÁƒU¥JµjÕJsæÌ1æ:tHmÛ¶Uxx¸–-[¦(%%E‡ÖÒ¥KÕ¦M 4(CC}öìÙš>}z†ÝSCCCµbÅ ­Y³&C///ýôÓO4h�1öâ‹/jðàÁY~æ°.¶€(â>¬[o½Uýõ—*T¨ uëÖ) @’Ô¸qcuìØQ­[·Öwß}§O>ùDcÆŒÑĉ3\§G�Ú¿¿úôé£yóþ}\Lƒ Ô¡C=÷Üsš¼’d¼.U£F …„„¸�}üñÇZµj•<¨_~ùÅíܺuëôØc�éÁÔ?ü ßÿ]’”’’¢3gÎMÕ={ö¨}ûöŠ��WçÎ�µdÉyyýÛ6kÕª•{ì1ÝsÏ=úõ×_µpáBýòË/úòË/lÌKHHPõêÕU­Z5£-]h¦·jÕJAAAš;w®êÖ­«ääd}úé§š1c†ÒÒÒ$IÓ§O—���&Ožl¼·téÒzê©§”””¤ÿþ÷¿Æxûöíuß}÷eøì.jÒ¤‰\.—Þ|óMÝu×]ŠŠŠÊr.¬�ÀEÜÔ©Sõ×_I’ªT©b4/²Ùl6l˜QÏœ9SçÏŸw›§ 6H’ÂÃÃ3½ÏرcU§N�ëÊ¡9sæ(66Võë×7Æ�;¦Ç{L_}õ•>üðCýúë¯êÓ§�ôÄO¨L™2’¤S§N©cÇŽŠ��Wpp°æÍ›çÖü½¨B… Š��Uùòå%I»víR§N�ÜþÜ�;wÖСC5wî\·÷.^¼X/¼ð‚6lØ ¾}ûꦛnRëÖ­5mÚ4ÅÆÆÊÇÇǘ;uêT­[·.Ãý¨R¥JõçŸ~Õí·W­Ze¼E `€"nûöíÆñÞ½{3�S«V-ãøÌ™3Ú¿¿Ûù�;wÇ'OžÌô^^^¹º-ñ�7ÞhïØ±CQQQ “$•(QBóæÍSRR’fΜiÌ‹ŠŠÒž={$IO<ñ„üýý³¼~ùòåÝV:oÞ¼Y¯¿þz†y7Üpƒ[Ý·o_õë×/Ók¶iÓF/½ô’Q»\.�7.ü‹�ë‹öíÛ§ØØØ,³JÒ¢E‹T¾|yÝsÏ=Wœk³løâ»ï½÷^Õ¨QCåÊ•“ÝnW@@€BCCõÈ#�hÅŠWý¦òGbb¢^zé%5oÞ\eÊ”‘���ªT©¢=zdùtù+>19óW||†€ÂåöÛo7Ž/6P/W¼xq·úÔ©Snµ¯¯¯qüÚk¯éìÙ³™^§K—.òôô¼Ö¨nŠ+f—.]ZÝ»w¿âüãÇ�ëí·ß6êvíÚ]õ=ô�± X’&Mš”áÈÞÞÞnu•*U®xÍ!C†¨\¹rF½zõj?~<Óy—~®S§NÍòš[·nÕÎ�;õÐCeȃ¢Å’ÏŽ‰‰Ñý÷߯ôôô ç‡vïÞ­Ý»wë½÷ÞS£F�4sæLÝrË-&$…$Íš5KÏ=÷\†:¤Å‹kñâÅzðÁõþûï»ý��¿ª \–ù‰LÆù²-P¸Œ5JÕ«W×?ÿü£ž={fë=©©©nõí·ß.%''kÇŽjÓ¦�æÍ›—aËçÀÀ@·gÞæ–%JÈf³]qNll¬ÛΗ®jΊ���ÂÃÃ5{ölIÒ‰'ôÃ?¨uëÖלÕ××W�:u2®ér¹´aÃuìØÑm^… Ô·o_£i½zõjmß¾]uëÖÍpÍE‹Iº°úE›%WÏž=Û­ùÛ¤IÝÿýêÚµ«Ú¶mëö°ð-[¶¨M›6úì³Ïrt�)S¦ÈÃÃC6›-Ï_*TPJJJŽ?‡Â�Q’† f4+T¨ »ï¾[mÛ¶U`` 1gñâÅjß¾½NŸ>}M÷¸\bb¢¶oßž£×¾}ûråÞò‡—§M­ëV4^^žWþ~@Qf³ÙÔµkW=öØcVúîÞ½[ÿýïÝV K¿øY²dI·­Œ7mÚ¤úõëkĈJJJÊ»ð9°~ýz·úògg¥iÓ¦nõÅg_�-Z¸Õþùg¦óFŒ!�[zY­^²d‰êÕ«§Æ�_w6n–\|é_Vooo}ýõ×þ¯_¿^QQQZ»v­ÎŸ?¯=zè·ß~SµjÕ²u�§žzJmÛ¶•ÓéÌÕì™)]º´ìv{ŽßW2^T®\9½ñÆêÞ½»ñC,55U³fÍÒÈ‘#•’’¢ï¾ûNÇ7¾ s=fΜ©±cÇ^÷u\^žj]·¢Ù1€B)--MK—.Õ¬Y³täÈ 0@ÑÑÑjÞ¼ùß7xð`%$$ÏÍMMMÕäÉ“5þ|�?^‘‘‘W]¥›—þúë/·úìÙ³Ùj_¾Š911ñº³\~ÍË·Ô¾¨fÍšŠˆˆÐÒ¥K%I ,Ð+¯¼â¶�nÆ Š��פI“®; ?K6€_~ùe>|X zþùç3ý‹Û²eK­^½ZíÚµÓÚµkuöìY½õÖ[nò¾»Ý® ävô\U2J¾´nÝ:…††º�{{{kРAª^½ºî¿ÿ~9�NÍ™3G={ö¼®m@æÒÒÒôöÛokâĉòôôÔ„ Ô¥Kyxx(>>>[×xõÕWU¯^= 8ÐXù{ôèQõë×O³fÍÒ;ï¼£† æáŸ"kÉÉÉnuRRR¶À¥J•r«³z¾qN\~Í+åxæ™gŒðùóçõÖ[o)**Ê8¿hÑ"yzzf{ûnX›%·€®Zµª¾üòKãA×YñððÐO˹Mš4Ñ�wÞiÔ3gÎ4Í™žž®èèhµk×NAAA×� …Ÿ%WgÆåri÷îÝÚ»w¯öï߯„„�>}Z¿ÿþ»1çÌ™3&&,º®Ô¤¿èÙgŸÕ;ï¼#IZ»v­þþûo•)Sæšïùä“Oªk×®9zϾ}û~Í÷  úí·ßÔ²eK%%%éæ›oÖâÅ‹34(s*((Hï¿ÿ¾FŽ©çŸ^Ë–-“$9õïß_U«Vukj懪U«ºÕ[¶lÉð,ÞÌ\¾r8$$亳\þ\ä&Mš\qþèÑ£µvíZI¶ ^°`�úõ맯¿þZG�Uß¾}¯;¬ÁÒ `§Ó©O?ýT}ô‘Ö®]›+û±#÷ùøø\uNHHˆêׯ¯¸¸8¥§§ëçŸÖ]wÝuÍ÷ tÛ€õ¤¥;õý®î· ”—§%7¾ ßü1½sæ':LÎß r•ÓéT×®]�†äÈ‘#¯©ùûÑGiïÞ½zöÙgÝÆÿóŸÿèã�?Vll¬ºwï®S§NÉåriܸqùÞnݺµÛsr×­[§'Ÿ|òªïKHHp«Û´isÝYöíÛg«víÚWœß¶m[………é—_~‘$M�:UýúõÓ¢E‹T²dI=ðÀ×� Ö`ÙðÒ¥K¥�;wš¹¤fÍšŠ‹‹“”ñ-\.-Ý¥o¶ÿeÔÍk•——§‰�°€�@ÿ,N„äk¹ëË/¿Ô®]»Œº^½z™Îs¹\Wº¯ IDAT½Ö_|‘¡|Qûöíõá‡êþûï—taõíål6›[�žž~Õ{æD›6mT¡B=zT’ôÙgŸ)99YþþYüÿ�ÿwiÖ¦M›ªF�×�eÓ¦MÆñã�?ž­÷<óÌ3êÞ½»¤ «¶W®\©eË–©[·nòõõ½îL°K.…>|¸ºuëæÖü­Q£†úõë§I“&éóÏ?מ={tòäI}ùå—&&ENdç�3_]tìØ±Lç8pÀ­v8æ¬[·NüñG–÷êØ±£J–,))óæîåMÌ'Ndy­káëë«‘#GõÙ³g5gΜ«¾oùòåÆqTTÔuçHKKÓÒ¥K%IeË–ÍÖ*dIŠˆˆpk>?òÈ#:yò$Û?Ã�åÀ111š:uªQßsÏ=úñǵoß>½ûî»1b„î½÷^ÕªUK%K–”§'ËÁÌ––––­y{÷î5Ž+W®œWq(R._u�aΙ3gô /¸�]Þ–.,æz饗²¼—Ãáйsç$I·Þzk†óÁÁÁnõ† Üꘘ·¦ð¥=†‹×½š!C†èöÛo7ê—^z)˦·$}óÍ7úñÇ%Iýû÷W‡®z�Ì>›K½óÎ;:tè�$éí·ßVÙ²e³]žžžzúé§�:11Q5kÖTË–-³õ~ –k/Z´È8îׯŸbbbÔ´iÓ\¿ÏäÉ“åáá!›Í–ç¯ÀÀ@¥¤¤X2£$­Y³æªsvîÜ©íÛ·K’¼½½óä¿SŠ¢Ë±3fÌÐСCµnÝ:mÚ´I3gÎTXX˜ÂÂÂäíímÌ›>}º6lØ éÓ§kÅŠÆøÜ¹sõÁdz¯7ß|S‡Cv»]ÿûßÿ2œ S±bÅŒúÅ_Ô’%K´uëV=÷Üs7nœŒó—˜¨øøø«þy½¼¼­Æ�K’þùçEDD(999ÃÜ„„cumÇŽõæ›o^õú’ôÁhöìÙ™žÛ¸q£FŒ!Izå•W‘­k^éÖ0îÝ»wŽÞë³Ü3€/ýÖGÇŽ¯:?55õšî3hÐ Ýu×]r:�×ôþœ(S¦Œìv{ŽßW2JһᆱN�:]qΥߺçž{Œí!ÀõiÚ´©z÷î­?üP’ät:õúë¯ëõ×_—$•,YR¯½öšú÷ï¯íÛ· »¶nݪ-Z(88Xß~û­~ýõWãš‘‘‘Š��ÕC=¤*UªèÈ‘#ŠŽŽÖܹsU²dI-\¸P�5Ê�ÅÏÏOÔ¤I“$I'OžÔƒ>(Ijܸ±V®\©¤¤$}ÿý÷Z¸p¡~ùå·÷‡‡‡kÔ¨Q UõêÕUªT©LÿÌ���úî»ï4pà@}ðÁZ·n�6l¨§Ÿ~ZÍš5SzzºÖ­[§‰'*99Y/¼ð‚¢¢¢äᑽµ•aaa2dˆÞyç=ñĪW¯ž‡V¬X¡×_]ÅŠÓŒ3ôðÃgëz—*V¬˜ñØS›Í¦>}úäø°6Ë5€/Ý÷|íÚµ ¿âüØØØkº����4hpMïÍ/…!£$}þùçúä“O²lÏ™3G‹/–takƒ1cÆäg<,oîܹ ӻᆱ={öÈÏÏO5jÔPxx¸{ì1J’fÍš¥‡~X›7oVÙ²e®¨¨(•+Wέìr¹´páB-\¸PÒ…žEÕªU5xð`=ýôÓW|Ôã+¯¼"›Í¦>ø@§N�R�5Ô«W/ 4ÈhϘ1#Ó÷nݺU={ö”$Íž=[ýû÷Ïò>þþþš;w®† ¦yóæéË/¿ÔsÏ=§³gϪ\¹rªU«–†®>}ú¨R¥J9ú<ï½÷^ÍŸ?_ãÆ�Ó /¼ ÄÄD•(QB5jÔÐ /¼ GyD*TÈÑ5/uß}÷iÒ¤Iºí¶ÛrÍ×�5Y®Ü£GMŸ>]Ò…- ôôÓOgØ;}çÎ�7nœ,X`Œ�;wNiiiòò²ÜÇRàEFFÊÏÏOíÛ·7ÆŽ?®ñãÇkÊ”)ÆØ˜1c ÌöÏ[+v×é*ÕÍŽ ))):TòC£ÞT¹÷5ïT®bãF³ÈEÍ›77;0�‡‡‡†ª¡C‡^q^õêÕõí·ßfz®K—.r¹\×�ÅËËK¯¾úª^}õÕLÏOŸ>Ýè円 ºõ"rKíÚµ5oÞ¼\¿®ôï3†/nO \Êr�Î-ZèÑGÕìÙ³år¹4~üxM›6M�5RPP�’’’´k×.ãÁÚ—Ú¶m›Š/®²eËÊÏÏOÏ=÷Ü5-½GÎ%%%éî»ïVýúõU£F 9rDÛ¶ms{`{�=ôüóÏ›˜À|+V¬�¿¿¿ºvíjv@–kK¶ð÷÷×믿.§Ó©sçÎiÆ ™ÎmÔ¨‘|}}µñÿ¿±îp8täÈIÒ¤I“hçOOO¥§§Ëf³éí·ßÖ�!CtîÜ9ÅÅÅ)..Îm®···ÆŽ«gŸ}Ö¤´PDù•‘Fì7;…µù•1; ™þùGŸ}ö™úöí+³ã ²dØÃÃCS¦LQdd¤æÌ™£5kÖèÀ�JOO7öW¿é¦›®6mÚèܹsš4i’V¬X¡ßÿ]§OŸ–ta[bä�ÈÈH½÷Þ{ŠŒŒÔ£�>ª{î¹GS¦LQLLŒþüóOyzzªfÍšj×®�  êÕÙjò�ÍC*^Îì.1}út¥¤¤hðàÁfGAeÉðE 4Ðo¼qÕy~~~ŠŠŠRTTT>¤‚$Í™3GsæÌ1êÊ•+kÊ”)y²Ç>€ìÙ³G&LPxx¸þóŸÿ˜”¥À€¢ËÇÇG½{÷v« /8·úܹs×u½5kÖhìØ±òññQûöíÕ«W/%%%é�PZZš^}õÕëº>¬�0À’l6›ìv»Ù1Û·ow«·nÝz]×ëÕ«—%I_ýµF�mœ{õÕWU«V­ëº>¬�0@uäÈ‘ cñññÆBBBò> @!´ÿ~mÞ¼Y¯¼òŠÛøêÕ«5räHÝ}÷Ý T�:ur´Ka`` Ñ¾Ô“O>©‘#G^wnX `€"ªsçÎÙšçr¹ò8 @átóÍ7ëĉÆ].—^{í5½öÚk’¤¸¸8Õ«W/Û×�ŽŽÖ�!C´qãFIÒM7ݤÁƒ+<<®øøx£ É÷8ä5ÀëÚëv\má(£t¹\& oy˜Ö²mÛ65lØP%K–ÔðáÃÍŽ)4€�«¨mÛ¶)))IS§NÕW_}ev$ È  €\•žžîVóH6 ÿÐ@®š:uªBCCU¢D 2DwÞy§iYŽ9bÚ½3x™ÖÒ¬Y3íܹÓìŠ��Utt´Þ}÷]³£ù†0Àº´ÿ÷¸Þ�úc\Wó²ÈW‡R¯^½Ô¡C³£ùŠ0Àºì~ÿ”SHHˆiQäŸóçÏ«k×®:~ü¸ÙQ€|G`Mž^RÝ;Ýk–—žž®>}úhãÆ�fGLáavò„ÍC*^êß—�ò€«IMMÕü‘ë×MKKËõkf&))I]»vÕÒ¥Kóå~@AÄoÃЏ-[¶hذa ÖØ±c�ño¾ùF}úôQõêÕåë뫊+ªC‡úä“O®z͸¸8�3Fµk×Ö÷ߟå<‡Ã¡Õ«Wë©§žRÕªUuèÐ!I’ËåÒ²eËtï½÷ªbÅŠ*V¬˜4h )S¦dÚPNLLTXXX†lóæÍ“Íf3^�5ÊîÇJì‡ Pmß¾]~ø¡>þøcíÛ·ÏíÜÉ“'5`À-Y²ÄmüèÑ£Š‰‰QLLŒ:w Ên·çwìØ¡èèh-Y²D»víºâý—-[¦èèh­ZµJIIIÆxZZš<¨ÈÈH}õÕWn‹ÓÓO?­�7*::Úí\éÒ¥µråJIÒ�wީÇK’ÂÃÃ5~üxcž¯¯ïÕ> Pc0@täÈUªTI¡¡¡nãÇŽÓwÜ¡¸¸8½õÖ[Ú°aƒ¾ÿþ{=ÿüó*^¼¸1oÙ²ez衇ŒzóæÍš ÀZh×è·2/«nyO³cÈÂùT—&(ŨGO�ib à*V¬˜Ê•+gl™Ü¦M=ÿüó™Î­W¯žfÍš¥|Ð7nœzõêå6ïòUÅWR±bE·zâĉ0`@†y¥K—V—.]ôöÛoK’6nÜ(§Ó)6¼.Å߀"îÒ-“«T©rŹݺuSýúõ�z×®]úùçŸÝæøùù]Ó½¥+7�ëÖ­kŸ9sFÿüóO¶ï4€�m6›Ím°$·-œóR@@€[}æÌ™|¹/P˜Ð@Ž´hÑ­þóÏ?MÉát:M¹/P�Ñ@ŽÔ©SÇ­>uê”II\Ž0r¤T©Rnõå[30�—ÙÈK'Ï»$]Ø‚Æn·K’BBBLL~^^î-¦òåË›”Àåh,íõM©þ34Ôs¹\fÅ,!))É­nÒ¤‰II\Ž- �#ûöí3Žív»Z´hab—¢ €Ù´i“qܳgOùûû›˜&#›Íf§§§›˜È4€–äa“BJñÏ�-Z$éÂêßQ£Fe8ït:Ýêü~,›¯¯¯q|âĉ|½7`6~3°$/›"û˜(t8pÅó111Ú¸q£$iܸqªS§N†9§OŸ¾b}©´´´lg;{ö¬[�Uc988Ø8þé§Ÿ”ššjÔÉÉÉúôÓO³}O °¡ Ã×_­_|1Ã*^é³~øaIÒ€4|øðL¯±mÛ6·zëÖ­YÞïÈ‘#nõÉ“'³œûûï¿»Õÿýw¦óZµje;vL}ûöÕ�?þ¨Ï?ÿ\­ZµÊ÷É@~ò2;yé�!ÿÿì‘¡qæ ‰zõêéÍ7ßÔâÅ‹5pà@………ÉÃÃCk×®Õ¤I“”’’¢ñãÇkôèÑnï;~ü¸âããõÛo¿é…^p;7yòd¨uëÖª]»¶üüü$]Xý;þ|·¹ ,P‡äííí6~ôèQ-^¼8ÃÜ&Mšdø3<þøãš6mšN�:%é–Ջ-’§§§¦M›¦N�:]Û‡¬XZHi� ¯�ã kMš4Q\\œÚ¶m«É“'ëŽ;îÐ=÷Ü£¥K—ê©§žÒŽ;24%iÖ¬YjÚ´©~øa}z¶ß3fÌ�3&Ûó'Nœ¨‰'fkîòå˳}Ý‹š5k¦õë×çø}@aG`IŽtiî‡Q�v8äëëkb"ò `�)uìØÑì–æããcvCdÊf³Én·›�< ,‚ÀÀ5Z]óeí¬RÅì²àp8´cϧF½lÙ2¶ÓÉ�.]º˜ùÈápÇçÎ�31 €ëÅ `€"ìĉ:zô¨QoݺÕÄ4® `€"èàÁƒZ¾|¹:uê$§ÓiŒïÞ½[ýúõÓªU«´mÛ6%''›˜@N±4@Ô©S'ýüóÏ™ž{ÿý÷õþûïK’V¬X¡ûî»/?£¸4€Š Ÿ~úÉìò[@€EЋ` h€%yzzªeË–n5²–˜˜èVÇÇÇÇ!!!ùpÍh,ÉÓÓSÁÁÁfÇ(4žzê©,Ϲ\®|L¸l A,‚0XÏXRjjª~üñG£nÖ¬™¼½½ML@Þ£ °$—Ë¥„„· ¨±ÙlÆø= €ìp:�Æ2û™‚‚‡0ÐŒ3Üê{ï½×¤$ 7yxd|djj*;¥¸ª´´´ c™ýLAÁC(00Э 1'ÈU6›M>>>r8ÆXrr²üüüLL 0HNNv«}||X\HЦÀÂÜꤤ$¶�pE.—KIIInc—ÿ,AÁE »¼i“ššª„„šÀ2år¹”�� ÔÔT·ñ%J˜”9ÅÐX˜¯¯¯¼½½Ýš9§OŸÖþýûU¢D ùûûËËË‹g{E˜ÓéTZZš’““•”””¡ùëíí-»ÝnR:ä `,Ìf³©R¥J:pà€ÛªßÔÔT�8qB'Nœ01€‚îâÏžÿ[xðu,ÎÏÏO7Üp 9b³Ùtà 7ÈÏÏÏì(ÈVר]»vª[·®Ù1dáüùóÚ³g�QwîÜY¾¾¾&&0×Å&ðáÇ3lï —óööV¥J•hþB4€("üüüT£F ¥¤¤())I§OŸ–Ãá0;€ÂÇÇG*Q¢„ìv;»R4€–d³ÙTªT)·~Oâëë+___ÊårÉétº=@Ñb³ÙäááÁïQ-‚0À’ìv»†jv €Ïf³ÉÓÓÓì€\âav@î  A,‚g,ÉåréÔ©SF]²dIÙl6�÷h,)%%EÓ¦M3êÑ£GË×××ÄDä=¶€‹  A,‚0X `°À`4€À"h€EЋ  áevò‚———î¾ûn·«ã·áKòòòRóæÍÍŽ@¾b h°À`l \£Ø‡µ#Åßì`ª®aUÍŽ¸ `€%¥¥¦ê·Íë�º^Ó–òòö61y�0À’œÎtí‰ûÕ¨ÿÓ¤¹$ÀkãÀ`4€À"h€Eð `à&ñðÁlÏ�/ãÊÖ¼���kLÈ ÀÀÍÀŽ·fn6ç¹\Ùk®[@€EЋ  A,‚0X„—ÙÈ >v_u{|˜Ù1 ¥é+Öe{n‡z•ó0 §h7�•ªd{nHHÕ3Lžë¾îç¹¾™É7×u�0@"<€$minŠE?ûia<­ff”WTf˜zŸÀ‰°ºè¤òÿŠqdèDSl‰×KÖÆ[ñJTV”g˜ Q+^Ê:»šq_Ë: hv$B �0@"À‰P$¢4ëô kw|Óà†Þ’Ëåº�Ø60;eôIöÈçäóùù #G@$Â`’TR\“ýl»1¤N @’ÊÊJãäcÏ:ô)Û¡¡H„# Ø)o=>wÇ7}ö¤ÞtJ @’ZZZã÷+VÆÿ{Ü�QZZ’a"èÿr#‡ïÄM¹^ÏtN @’ZZ[ãÿ<óra €žáÀ‰P$ÂÐ$©¹¹9î»ï¾ÂxÆŒQQQ‘a"è} `’”ÏçcÆ íÆ�:G@$Â`@–.]ºS÷�1¢—“ÐÀ0€Œ5j§î«ªªêå$ôG@$B �0@"À‰P$¢4ëÐ_í·ß~QUU•u  MMM1dÈ�¸ªª**++3L½O @’Š‹‹cìØ±íÆ�:0tÑå¿z1†>ÿ§¬cÛ5²ðjá}/d˜®‡¾ù…¬#À€b;@"À‰P$Â3€HR¾­56þqMa¼Ç¾UQT\’a"è} `’ÔÖÚoÿ{]a<ö+߈0‰s4@"ì [þòîºNç:�Ëår=80ݲxÖY�Î�žÕùûòù|/¤€�ÍЉP65‰P IDAT$B �0@"À‰(Í:ýÛW~ð`§s·Ÿõù>L(€è–ÁûŒèt.—Ëõ]ÀÐô¼ÆÆÆ5jT,\¸0ë(ÀV\R¹É§þ—”e z�Àô¸ Äš5k¢µµ5ë(ÀVT\¼ÝÝH�";€éq ,ˆ=öØ#N;í´¬£À€¢¦G½ùæ›ñ /Ä´iÓb·ÝvË: ( `zÔ‚ ""¢ºº:ã$0ðx0=jÁ‚±Ï>ûÄ”)S²ŽÒënÞýW1nÈg²ŽtbKKkÌæ­Âxú1££¼´$ÃD0@=|WÖ èMgþ<ë|‚˜S__+V¬ˆ™3gFi©ÿ´€lµµE44~Ðn ©s4=fþüù1}úôsK—.�áÇGQQQ»?3fÌèë˜�,0="ŸÏGmmmüõ_ÿuLž<¹Ãü“O>ëׯïpýþûï�æææ¾ˆÉsN/=béÒ¥ñßÿýßqÕUWEQQQ‡ù‹.º(Þ{ï½hllŒˆˆ|°0—Ïçû,'¤LL�X°`ADDTWWos~ذaqÛm·Æ/€€ž¡¦ÛZZZâᇎƒ>8&L˜�uzXCã�L4t¸”Ëåz5 Û§¦Ûêêꢱ±1.¾øâ¬£Ð F_¼pÛÛ¸î1?ÙRÓmóçÏ�ˆÎ�Þ566Æúõë?Õ{V¯^ÝKi g(€óÊ+¯DmmmÔ××ǪU«âý÷ß��7FyyyŒ92&OžÓ¦M‹ÓN;-ŠŠŠº½^SSS,Z´(Ž8âˆ8ðÀ»ü9���1wîÜX¼xq¼öÚkñÁľûîÇsL|ë[ߊã�?¾ÛY?îŽ;îˆë¯¿¾G?²¦NÈâÅ‹cêÔ©ÑÚÚÚanË–-±jÕªXµjUÜsÏ=1a„¸ãŽ;⨣ŽêÖš�>úhlذ¡[»çÎ�³gÏŽM›6µ»¾fÍš¨­­�ÚÚÚ8ûì³ãÞ{ï�ÊÊÊn倔)€2oÞ¼våïĉcäÈ‘QQQþóŸcõêÕÑÐÐîþÒ—¾>ø`L�:µËk.X° Š‹‹ã¬³Îêòg\vÙe…×ûî»ovØaÑÒÒõõõÑØØµµµñÎ;ïÄ£�>{ì±G—׎¢¢ˆý>³[»1¤Nœ��£eeeñôÓOw(KŸ}öÙ˜3gNÔÕÕESSSTWWÇòåËcôèÑŸz½ 6ÄâÅ‹ãØc��¿ú«¿êVö}öÙ'n»í¶8묳¢¸¸8""¶nÝsçÎ�+¯¼2š››ã·¿ým\~ùå1oÞ¼n­qÑEÅ™gžù©Þ³zõê˜6mZ·×úFEYI\xâAYÇ€>¥NÈ 7Üï¼óN¬]»6®½öÚmî”�îÀŒeË–EDÄÚµkûl] ÚÒÒsŸXUÏš6>*ËK2L½Oœ�Ë/¿<~üã·»6f̘8öØcãàƒŽÏ}îsñ7ó71|øðøýï_þò—»´NCCC<÷Üs1}úô4hPODß)ù|¾ÏÖ€þHœˆÅ‹·+O9唸þúëãˆ#ŽØæý%%]ß·`Á‚ˆØ¹g÷––�ºïõ×_/¼®ªªê‘µ %ÅY g|TÊFDœwÞy±xñâNËßîš?~ì½÷Þqâ‰'öÈç=ùä“;¼gåÊ•±bÅŠˆˆ(++ëµï ú3;€ñÞ{ï^Ÿ~úé;¼ëÖ­]Zgùòå±|ùòøö·¿eee]úŒOºûî»ãk_ûÚvïùîw¿[x}Ê)§ÄСC{díîøÏýΊ�£È:Ð‰æææX3ô¾Âø…ªQQQ‘a"è?&Mš”u ‹ìNĘ1c ¯ëêêvxÿã�?Þ¥uæÏŸÕÕÕ]zÿ¶<öØcñÈ#�t:×]wEmmmD|xtõ5×\Óck@JÀ‰øx!{ûí·Ç?þã?¶Ûü‘•+WÆ9çœ?úÑ� ×6oÞ¼ÓÏá­­­�ªªªøâ¿ØýÐSSSÓ¡”~÷ÝwãŠ+®ˆ .¸ píšk®qü3tÂЉ8úè£ã‚ .ˆyóæE>Ÿ�o¼1n¹å–˜0aBŒ1"6lد¾új¬Y³¦Ã{ëëëcðàÁ±÷Þ{Ç AƒböìÙqî¹çv¸ïùçŸ�·Þz+®¸âŠ(**êÑü6lˆ“O>9Æ�cÆŒ‰uëÖE}}}lÞ¼¹pOuuu\{íµ=º.¤Dœ�¹sçÆî»ï·Þzk´µµÅæÍ›ã¹çžÛæ½&LˆÊÊÊxþùç#"bË–-±nݺˆˆ¸é¦›¶YtüóôéÓ»�µ¤¤$Z[[£¨¨(þå_þ%¾ó�ïÄæÍ›cÙ²e±lÙ²v÷–••Åõ×_W_}u·×€”9:!ÅÅÅqóÍ7ÇË/¿—\rIŒ;6 1lذ˜4iR\|ñűdÉ’x饗¢®®.®»îº˜8qbì¹çžQZZ¥¥¥QSSÓá³[[[㡇Šƒ:(?üðng­©©‰¢¢¢¨©©‰ .¸ ^{íµ¸ì²Ëâ ƒŠÊÊÊ•ÖÖÖxýõ× ãI“&)€à.\¸Íë‡vX'zŠŸ„Ó©õë×Ç’%Kâä“O޽öÚ+ë8@1bÄ6¯çr¹¾ ôϦS?üp´´´DuuuÖQ€� ¦S---qÀÄW¿úÕ¬£;AL§þáþ!Þxã�æ|åe�úŒ€t•”9ö€E @šJË#&N�Y³¾‘uè3ž �0@"À‰ð `Ò”ÏG´n�¦¦¦ˆˆ¨¨¨ˆ¢¢¢ŒC@ïRÐ?lXÿéîoݱ¼.fÍúψˆ˜9sfTTTìôÛs¹Ü§[v `ú‡û.ëÒÛn­üï·Þú©Þ—Ïç»´dÉ3€¡H„  `€D(€QšuØ)3~üéîoݱ¼.¾sü؈ˆ˜9sfTTTôB0Øu(€è† ût÷·l‰¨ŸùÌg""bÿý÷�ÊÊÊ^»G@$B �G@�¦â’ˆ‘ÇqÇ¥¥þÉ }~@šŠK"F~®PÀ@àh€DØ ]´|¯bܰ’¬cÐ]sÞÏ:@�± v�¤–––xæ™g ãcŽ9&JKý³@Úü$€$µ´´Äo~ó›ÂxÒ¤I `’çh€D(€á,L`ÀhøsÛ6.6t¸”Ëåz= @oPÆè[?èxñÖÑ.åóù>HÐó �0@"À‰P$B �ˆÒ¬ô•·¾³{Ç‹—.ëû ½D ¹=·qèA.×ç9è1kÖ¬vcH�€$EeeeÖ1 Oy0@"À‰P$Â3€HRSSSÜrË-…ñ¥—^ê™À$O @²ššš²Ž}J ]ôÄ�7ÄÊQ£²ŽA}ýë_Ï:@�ó `€D(€¡H„  `€D”f ·566v¸ÖÐÐÐáZ.—ëý0½H $ïïÿþïwê¾|>ßËIz—# a0I*))‰ &´@êÀ$©¬¬,¦M›–u èSŽ€H„ Ž€’wûí·w¸ö•¯|%ƒ$½K $oøðá®år¹¾BŸjmm�eË–ÆãÇ��’’’ @ïS�¤­[·Æ¢E‹ ã±cÇ*€Hžg$B �0@"À‰(Í:ôW'žxbŒ7.ëP`0@"À‰P$B �0@"J³½¡¼¼<.¼ðÂvcH�€$Ç~ûí—u èSŽ€H„  `€Dx0IjnnŽ{ï½·0>÷Üs£¢¢"ÃDÐûÀ$)ŸÏÇþð‡vcH�# ¡H„  `€D(€¡H„  `€D(€Qšuè ÅÅÅ‘ËåÚ� u `è¢Çÿë�ø¯æÝ³ŽlÇàÿu|áõ¿._—a`g�yøþYG€~Ív(€D(€¡H„g�¤¶¶¶x÷k ã}öÅÅ~ï €´)€HRËÖ-ñ›_ÿ²0žV33Ê+*3L½O @Ÿi|çííÎ7ì•ßî|.—ëÁ4�0}æâÓ¿°ýù¼?Ÿß~A �‡!$B �0@"À‰P$¢4ë ?ùõï¶;ê!U}”Ò¤ Ï ÿ«QÛ�Ïåöï£$�&G@$Â`’TZZ“O<½ÝR§ IÅ%%1rô�YÇ€>åh€D(€¡H„gC�Tþ_1®âƒ¬c�زuk,|ò…ÂøŒ)GFyYY†‰€�²â¥¬Y÷µ¬@¿¦ Immùxõ­5>Ã4Ð7 �0@"À‰P$¢4ë , k;ŸÜÐéT.—ëñ,�0}jôIvé}ù|¾‡“@z �0@"À‰ð `’TTTŸ2¸ÝR§ IåeqéŒÓ³Ž}J @Ÿzëñ¹�O~ö¤¾  RЧr#‡og2×g9 EÅY gØ @’òù|¼¿qSaLÀ¶(€HRkkk¼üòË…ñQG¥è£F�êt®ªªª“°-Ž€H„  `€D(€¡H„ ¥Y€þj¿ýö‹ªªª¬c�hjjŠ!C†ÆUUUQYY™a"è}v$Â`è¢Ëõb }þOYÇ:Ѻµ9^}é¿ ãe?{&JÊ*2L@ú沎ЧìH„À$©¤¬"Æ}õ¼¬c@Ÿ²  `€D(€áÀ@¿õ—w×mw¾¡¡a»ó¹\®çÂìÀ$©uks¼ºø�ÂxìW¾%e& 7,žuÖvçGÏÚþûóù|¦Èž# ¡H„  `€D(€Qšu€®úÊÜîüíg}¾�’ìÀ@¿5xŸÛ�Ïår}`áh€D(€¡H„g�¤¢¢’Ø{̸vcH�€$—–Æ~‡™u èS `úÄÒ¥KcÚ´i±~ýúv×Ï9眸ï¾û2JÕ=7ïþ«7ä3YÇ`{¾+ë@o8óçY'Øey0}âÉ'ŸìPþFDÜÿýÑÜÜœA"H�Àô‰‹.º(Þ{ï½hllŒˆˆ|°0—Ï糊IQÓ'† ·Ýv[aüñ 7´´¶Åïßx¯0þßcöŽÒ_�60IjiÍÇÿyemaˆgžy&Î9çœýìˆˆÆÆÆ˜;wn,^¼8^{íµøàƒbß}÷�cŽ9&¾õ­oÅñÇßãk°kjhü`74ìð3r¹\�dèoÀýÄâÅ‹cêÔ©ÑÚÚÚanË–-±jÕªXµjUÜsÏ=1a„¸ãŽ;⨣Žê±õ‡ Çï±ÏüÈܹscöìÙ±iÓ¦v×׬YµµµQ[[gŸ}vÜ{ï½QYYÙãë°k}ñÂíß°£ùˆÈçó=” Q÷óæÍkWþNœ81FŽñç?ÿ9V¯^ ÿï7 _yå•øÒ—¾>ø`L�:µGÖÿ¨øí�ø²Ë.+¼Þwß}ã°Ã‹–––¨¯¯�ÆÆÆˆˆ¨­­�wÞy'}ôÑØc�=º½fccc¬_¿þS½gõêÕÝ^z“¸ŸøxéYVVO?ýt‡"ôÙgŸ�9sæD]]]455Euuu,_¾ùË_ºô½ :4~÷»ßEuuu¡ü�ø°è¾ä’KâW¿úUáú]wÝ¿ùÍoº´¤NÜOì¿ÿþ±dÉ’X¹reLŸ>½ÓûŠ‹‹cæÌ™…ñ‹/¾¸Ók|îsŸ‹'žx"Ž=öØØ´iSÌœ93N?ýôX¿~}»Ào¿ývüñ1{öìhmm�ÓO?=–.]C† éÒ÷öƒü ÝnãO:õÔSãüóÏ/Œo¼ñÆ.­©st?–ÏçcÕªUñúë¯Ço¼k×®��7Æ›o¾Y¸çÓîÊ�2eJL™2%þã?þ#nºé¦X¸paŒ?>fÏžÿöoÿW_}ulÚ´)jjj⪫®Šƒ>¸[ßÇö í�\}õÕqç�wFDD]]]üéOнöÚ«Ëk^tÑEqæ™g~ª÷¬^½:¦M›Öå5 ·)€û™¶¶¶X´hQüò—¿Œºººhllì•uŽ8âˆx衇âÍ7ߌ›o¾9fÍšW]uU|ûÛߎK/½4FŽÙ#k•——ïðž\.ãÇ��eË–Ekkk¼øâ‹1eÊ”.¯9|øðÏ3`×ðÖOÎØþ §þ¨o‚ôC à~äᇎ9sæÄÊ•+ûlÍÖÖÖØºuk´¶¶Æ[¶l)ŒûÒ�Ë–-‹ˆˆµk×öùú@ÿRQV—žú¹vcú‡ÜðÝwpC®OrôG~ÞO\~ùåñw÷wíÊß1cÆÄyç�7ÝtS<öØcñÚk¯ÅÿüÏÿÄ’%Kº½Þïÿû8óÌ3cìØ±ñ¯ÿú¯ñÃþ0""þùŸÿ9~ñ‹_Ä�555}ZFçóù>[ èÿŠŠŠâ3ƒË ŠŠŠ²Ž½Îà~`ñâÅñãÿ¸0>å”Sâúë¯�#Ž8b›÷—””ty­§Ÿ~:¾÷½ïÅSO=§�vZÜ}÷ݱzõꈈ8î¸ã¢¾¾>Î9çœøùÏ¿øÅ/â«_ýj\{íµqøá‡wiÍ–––�ºïõ×_/¼®ªªêÒZ�2;€û� ^ŸwÞy±xñâNËßîX¹reœp ñÔSOÅn»íwÜqGüú׿ŽáÇž5ÜØØ£F�*Å%%%±hÑ¢8ꨣbãÆ�]Z÷É'ŸÜ©l+V¬ˆˆˆ²²²^ùþ ¿S÷ï½÷^áõé§Ÿ¾Ãû·nÝÚ¥uFŽãÆ�‹I“&ÅK/½3gÎ,Ìýñ�l÷µ¸¸8fÏžÏ>ûlŒ7.Ž<òÈ4hP—Ö½ûî»wxÏw¿ûÝÂëSN9%†Ú¥µ eŽ€îÆŒSx]WWÓ¦MÛîý�?þx—Ö2dH,[¶l›sßüqŸÿüçcùòå]Zï#�=öX<òÈ#ñµ¯}m›ówÝuWÔÖÖFćÇ[_sÍ5ÝZš·¶ÆOŸXUÏ<ñ ¨(ëúùÐ(€û�êêêøÉO~·ß~{ìíß IDAT±ÇqÅWÄÞ{ïÝ+WÆ?ýÓ?ÅŸ�o¼1n¹å–˜0aBŒ1"6lد¾új¬Y³¦Ã{ëëëcðàÁ±÷Þ{Ç AƒböìÙqî¹ç~ê ëׯo÷µ§mذ!N>ùä?~|Œ3&Ö­[õõõ±yóæÂ=ÕÕÕqíµ×öÊú�Ïî'æÎ�—]vYøW¶yóæxî¹çbáÂ…±dÉ’våï„ Úý&ý–-[bݺuñÆoÄM7ÝÔ¥õ¿üå/Çî»ïÇ{l÷¾‘ÿ§¤äÃcX‹ŠŠâÎ;ïŒÝvÛ-""–-[‹-Š^x¡Pþ–••Å÷¿ÿý˜?~á}@G à~¢¸¸8n¾ùæxùå—ã’K.‰±cÇÆ Aƒ¢¢¢"† “&MŠ‹/¾8–,Y/½ôRÔÕÕÅu×]'NŒ=÷Ü3JKK£´´4jjjº´þùçŸ7nŒêêêù~jjj¢¨¨(jjjâ‚ .ˆ×^{-.»ì²8è ƒ¢²²2‡zh\yå•ñꫯÆÕW_Ý#ë@ÊŠòù|>ëЬX±"9ä�Âø�ˆð `ØU577Ç}÷ýÿgϘáÀ°«ñ `€�ç“}ËòåËcܸq&J�À‰(Í:éZ·n]§s Û¼žËåz' `zÍgœñ©ßãIEÐuŽ€H„ Ž€ IÅÅűÿþû·@êÀ$©¬¬,¦L™’u èS¶C$Â`zÍÂ… ;�;ì°Ãú0 `z͈#:�Ëår}0Ijmm�·ß~»05jT”””d˜zŸ€$µ´´Ä’%K ã3f(€H^qÖè `€D(€¡HDiÖ ¿:ôÐCcܸqYÇ:ÑÔÔO?ýta|ä‘GFeee†‰ ÷Ù �;€¡‹ùÞ£{¿’u º!ÿ“od GÙ �0@"À‰ð `’T^^555íÆ�:0I*..Ž\.—u èS ```ذ¾Ã¥†††×†@¦†û.ëpiô6®åóù¾HÐ+г@ϰ€$mÙ²%æÏŸ_OŸ>=ÊËË3L½O @’ÚÚÚÚ=ç¹­­-»0ÐG �0@" 3~ÜáÒ[ß�–A€Þ£†!Ã:\Êår}Ÿ 9  `€D(€¡H„ ¥Y€þjù^7ĸa%YÇ ;®¿¨ýxÎûÙä WÅ~ûí×n ©S�¤ŠŠŠ¸ð ³Ž}ÊЉP$B �Ï ImmmÑØØX><Š‹ýÞiS�¤-[¶Äܹs ãY³fEeee†‰ ÷)€�§áÏm�L4t¸”Ëåz5 @ORÎè[?ØöÄ­£;\Êç󽜠çx"@"À‰P$B �0@"þ/{weUuæ�û­‰*�I„JQ! º%ЇhTœÅVDãÁý#FEmM´qhgqj‡0(*‰$iEQ£€€ ¢2¨(  Œ5Þß¶wq¡Šª‚ªºpyžµîòìsö9ç½§®ÀªÏÝ{离€úöÙ%�+>péÌú- – €�íN᎕L~PXX¯uÔ6S@d#€ÈHyyyÑ·oß”6d:0)'''öÝwßt—õÊÐB �!L ›éåÝoˆ9íÛ§» ¶Ð‰'ž˜îj�€ŒTRR&LH¶�:ê¨ÈËËKcEP÷Àd¤²²²˜>}z²}ÄG€ÈxÖÈ`€ !ÈÖ¶K–,Ùhßüùó7ÚWXXX÷ÅÔ0°Ý4hPµú%‰:® n˜ C€2„ C€2Dnº €ºRPP�î ^ €�íÆ=÷ܳѾ#�<2 •P bÈ�!é.ê•Øn´jÕj£}………õ_@±0@†dS@�‘‰D%Ûùùù‘•••ÆŠ î €ÈHEEEqË-·$ÛC† ‰‚‚‚4VuÏÐB �!L ›é°Ã‹®]»¦» H2 C€2„ C€2„ C€2„ C䦻¨ ¹¹¹Ñ»wï”6d:¿  #mÀöÀÐB �!ÀÂÀd¤ÒÒÒxýõדí^½zEn®¿öÈl~@F*--�üãÉvÏž=Àdø2>(jœî2€J­‹Ù‹W$ÛÏN[ ò ÒX@Ý:©{‡t—ÀVÀ`€ !Ȧ€ #å5È�¾.Hi@¦�‘²²²¬ù ÀvÇÐB �!L [¹%_.ª²Ïü�Uö),,¬…jØš €ÈHÅEëbâÓ�$ÛGžv¶5�€mÖ…Gÿ²ê>Õ¸N"QuH À¶M @Æ*..Jw P¯¬ �!ÀB �!À"7Ý›v÷‹¯UÙ稽ÚÕC%líÀ°•kõÿµ¯²Oaa‡z¨€­�) 2„ C€2„5€ÈHÙÙ9Q¸g—”6d:0)7//~~ðáé.ê•6Óá >ˆ®ù«Ò]Àf¿—î j¦ëqé® #Y C€2„) ÈHeee1óã…Év·=~999i¬êž€ŒTRZÏOz+Ùî¼k[0ÏÐÂ` ÖÍÿbɦ;ì0“‡ k­€í‰¨u»þ»-:?‘HÔR%ÛS@d0@†d0@†dˆÜtdžÏ^ºÓö<¼~ ØÎ€€ZWضU 륀í�€ŒÔ /7~wÊá)mÈt~@FÊÎÎŽÖ;ï˜î2 ^e§»j‡ C€2„5€ÈHEÅ%ñès¯&ÛgwHä7ÈKcEP÷À°™¾j¼W4kÖ)Ýe•X·n]|´jj²½¨I÷(((HcE¤øüótWl ]»vé.€Z` h€ !È`€ !È`€ ‘›î€º·hÑ¢M/--­ôXaaa-W@]Àvàßÿýß7ûÜD"Q‹•P—L �!ÀÂÐd¤ìììh×®]J2�€ŒÔ Aƒ8ùä“Ó]Ô+á2„À°xã�76y¼M›6õT uI Û�öíÛoòx»víê©ê’€ŒT^^_|ñE²Ý¶mÛÈζò™M @F*..Ž1cÆ$ÛŒ‚‚‚4VuÏP(€ !È`€ a `ØL­[·ŽvíÚ¥»  ëÖ­‹¦M›&ÛíÚµ³0Ï`€ a0l¦ËŸ}7šMý6Ýe•(+)йï-H¶g>özääå§±"È<£ûËt—lÀ`€ !È`€ !ȹé.êBvNn´ÿyŸ”6d:¿  #eeçDÓ6Ò]Ô+0I«—-®vßùóçWÙ§°°pó‹jL @ÒÄ!§T»ï®Cªî“H$¶  ¦²Ó]µÃ`2RyiI|þÞÿ&ÛíºÙ¹yi¬êž€Œ”H”ÇÊÅ RÚ�éL �!ÀÂÐ$y˨j÷½ç”Ÿ×a%Àæ�´ÃÎmªÝ·°°°î 6‹) 2„ C€2„ C€©so¼ñF´jÕ*²²²R^gœqFºK€Œ’›îÈ|¯¼òJ,]ºt£ýO>ùdŒ1"òóóÓPÕ–ÞøÙèÚ´yºË*QTR÷íôa²}AÓÇ"?/'�@3"ÝTì¤ÇÓ]¤�˜:7pàÀøæ›obÉ’%1jÔ¨ä±D"‘®²€ —Ÿ——Õ%Ýe@½SçZ¶lwÝuW²½~ Ôkd0@†04)‘HÄwkJ’íf�ò"+++�@ݧÑôéÓcäÈ‘ñþûïLJ~ß}÷]¬\¹24hmÛ¶�8 úöí¿ùÍo2:´X²dIÜÿý1qâÄøè£�bÕªU±Ë.»D¯^½â¼ó΋ƒ>8Ý%Û ¢’ò¸cÂÉö�¾Ý¢ AN+jÃü%«ªÑiþ&ÖJ-°5§Éĉã˜cމ²²²�ŽLJ~~øa<òÈ#±ï¾ûƽ÷Þÿöoÿ–†JëÖý÷ßW_}u¬Y³&eÿçŸ#GŽŒ‘#GÆ©§ž�>úh¤©J`k±ë…c«îTEŸD"QKÕÀÖGœ&=ôPJø»ÿþûGÛ¶m#???–/_óæÍ‹ùÿ÷­õéÓ§Ç!‡£F�ŠcŽ9&M×�Ë.»,¹½Ë.»Ä~ûí¥¥¥ñþûïÇ’%K""bäÈ‘ñå—_Æøñã£I“&µrß%K–ÄÒ¥KktμyójåÞPWÀi²~�™——“'OÞ(Üœ2eJ\{íµ1iÒ¤X·n]ôë×/fÍš»îºk}—[§vÞyç¸ë®»â”SN‰ìì숈())‰ûï¿?®¼òÊ(**Šÿýßÿ�Ë/¿<zè¡Z¹ç½÷Þ×_}­\ ¶Ùé.`{uà 7DŸ>}¢sçÎñØc�U8²õ€ˆ—_~9úôékÖ¬‰û¾K­SÍš5‹×^{-úõë— #~Å/ºè¢xöÙg“ûGŒÿøÇ?ÒT)lýÀiÒ¡C‡øûßÿsæÌ‰ÓN;­Ò~ÙÙÙqÁ$Ûï¾ûn}”Won¹å–èܹs¥Ç�:ê¨8çœs’í›o¾¹>Ê€m’) ·"‰D">üðÃøøã�ã“O>‰/¾ø"V®\Ÿ~úi²ÏêÕ«ÓXaíÛTøý£«®º*|ðÁˆˆ˜4iR|ûí·±ÓN;mÑ}'�tR�Ι7o^ôíÛw‹î uIœfåååñüóÏÇ3Ï<“&MŠ%K–ÔêõÇŽ§�vZ”––Öêu×wà�Æ«¯¾ºYç6hРÊ>………Ñ­[·˜9sf”••ŻヌzèfÝïG­ZµŠV­ZmÑ5€ú÷ÙÝÇWÝé¨ÿªûB`+%N£1cÆÄµ×^sæÌ©³{ôíÛ7fÍšU§ð.»ìRg×þÑî»ï3gÎŒˆˆ/¾ø¢Îïl� [5®F§Â:¯¶Và4¹üòËãöÛoOÙ×±cÇ8è ƒâ§?ýitéÒ%öØc�hÕªUüë_ÿŠ_ýêW›uŸìììØ}÷Ýk£ä´J$é.¶zà4˜8qbJøûë_ÿ:®¿þúèÑ£G…ýsrrê«´zWÝ‘Éüqr»]»vuUlÓÀið—¿ü%¹}öÙgÇÃ?œÆjÒë•W^‰ãŽ;n“}æÌ™³gÏŽˆˆ¼¼¼Jƒr€õåædÅû¶Mi@¦ËNwÛ£o¾ù&¹}ôÑGWÙ¿¤¤¤.ËI«ê„߯ Knÿú׿ŽfÍšÕeI@†ÈÍÉŽž{¶L¾rsü•@æóÛð4èØ±cr{Ò¤IUö饗겜´š0aB<÷Üs•1bDŒ92"~˜ {èСõUlsL�ýúõ‹»ï¾;""î¹çžhÒ¤I <8Z´h‘ÒoΜ9qÓM7ÅSO=•Ü·víÚ(--�ÜÜÌùÑ 0 5j‡~xrß²eËâæ›oŽáÇ'÷ :t«šþyFëSbeûÝÒ]°¡©SÓ]dŒž={¦» †²‰D"ÝEl�Î;ï¼x衇’í† ƾûîmÚ´‰ï¿ÿ>æÎ�Ÿþy…ç6hÐ Z´h�5Š«¯¾:Î:ë¬ú*»VdeU¼g·nÝ¢cÇŽ±xñâxÿý÷cíÚµÉcýúõ‹'žx"rrrê«Ì�Ìž=;öÚk¯dû©§žŠÝv�¹ÀÔ¶ ó–Y³fE×®]ÓXQæÉœa¤Û˜ûï¿?7nwÞyg”——ÇÚµkãÍ7߬°ï¾ûî1õÿ¾Å^\\‹/Žˆˆ[o½u› €srr¢¬¬,²²²â�ˆK.¹$Ö®]3gÎŒ™3g¦ôÍËˋ믿>®ºêª4U l«JKKã�wÞI¶{ôè‘Q³'@E¬œ&ÙÙÙ1|øð˜6mZ\tÑEѹsçhÔ¨QäççGË–-£gÏžqá…Æßÿþ÷xï½÷bÒ¤IqÝu×Åþûï;î¸cäææFnnn 0 Ýo¥Æ YYY1`À€8÷Üsã£�>ŠË.»,:uê±Ã;Ä>ûìW^yeÌ�;Wø l–²²²˜={vòUVV–ΙªÉаm)**Š'žx"Ù>ãŒ3"???�À¶ÇÐÔ6S@×=#€2„ C䦻ÒkñâÅîŸ?~¥çÖM1ÀlçŽ?þøŸ“H$ê `K™ C€2„ C€2„ C䦻¨ ùùùqÎ9礻 Ø&Œ;¶Âýûí·_=Wl)0Àv®M›6î/,,¬ßB€-f h€ !È`€ a `2RQQQ<ñÄÉögœùùùi¬êžÀÂ`ØLûì³OtíÚ5Ýe•X·n]Lž<9ÙþÅ/~i¬êžÀÂ`ØL{Ý8>¢Åôt—T¦´8â½÷ãÚ#÷Nw%PoŒÈ`€ !È`€ !ȹé.ªôýÒšŸSVQ´&V¬X ,ˆüüüjŸ^XXXó{@𠀨ú=qÙfŸzçû/ýðß;ï¬Ñy‰Db³ï éb h€ !È`€ !È`€ ‘›î JgÜ^ósÊJ"fMŠKî\pAäçç×ra°u°õkÚ²æç”Gä7ŠæÍ›GDD‡¢   – €­‹) 2„ C€2„ C䦻¶‰D"ÊËË#‘H¤»þOVVVdggGVVVºK¡€¨S%%%ñÝwßÅwß}%%%Â_€­PVVVäååE³fÍ¢Y³f‘———î’ØL`ØL³vº!º¶ÌIw@E®ý.Ö­[·Ü² Ý•Àv­¨¨(¾þúëX½zuºK  ‰D"Š‹‹céÒ¥±téÒØa‡b—]v‰üüüt—F Y€ZWRR .þl£V¯^ .Œ’’’t—B €¨Ueee±hÑ¢(--Mw)l�ÒÒÒX´hQ”••¥»jÀÐd¤üüü¸ôÒKSÚ@ýX¼xq¥ìËÎÎŽ¦M›FÓ¦M#///²³�OØZ”——GIII|ÿý÷ñý÷ßGyyyòXQQQ,^¼8Úµk—Æ © 0)+++š7ožî2`»SVV+W®LÙ× AƒèСCäæú•4ÀÖªAƒ±Ã;DË–-cÁ‚Q\\œ<¶råÊ(++‹œœœ4VHuùеfÃ5³²²¢}ûöÂ_€mDnnn´oß>²²²Rö[Ó}Ûáo\¶jó——WÝi£“æ×ø”šßØÈ†£5j 4HS5lŽ D£F�RBßU«VEÓ¦MÓXÕ%`«¶ë�«j~Ò�»Öø”D"QóûÙp„X“&MÒT [¢qãÆÀlL @­H$QVV–²¯aÆiª€-ѨQ£”vYY™�4Û0µ¢¼|㥜rrrÒP [ª¢?¿+úsž­�€ZQÑȰ¬¬¬4TÀ–ªèÏo#€· `€ !ȹé.6å³K×ü¤KgFQQQÜwß}É]\pAäçç×be°õ°U+Üq3&«(,ŒuëÖEóæÍ“»:tèµXl}L �!ÀB Û¡Ï?ÿ<Þzë­t—Aš”––ÆäÉ“cíÚµé.¨e`Ø$‰xë­·âšk®‰ýöÛ/Ú·o÷Ýw_ºËÊHüq 2$öÛo¿Øyç�£   :tè§œrJüãÿH[] .ŒGy$N=õÔhÕªUrÈ!ñõ×_§­ n€ÈHÙÙÙѹsçä+;Û_y°­2dHdeeUøjß¾}�‚«Ûn»­Òk­ÿºí¶Ûêð¥Ï_þò—hݺuôìÙ3n¼ñƘ>}zºKÊX÷Þ{oì½÷Þ±`Á‚¸ûî»cĈѦM›X¸paŒ=:>øàxúé§ëµ¦»îº+:vì:tˆßþö·1jÔ¨X¾|y½ÖÔŸ¬D"‘Hw°-˜={vìµ×^Éöðáã}ûöi¬¨©O<1Ý%@F+--��?þ8eß{ì¹¹¹›u½¯¾ú*æÎ�&Lˆ;î¸#JKKSŽpÀ1yòäÈËË«òZK—.�iӦŌ3â¾ûî‹Ï>û,y¬E‹qá…FÏž=cÿý÷�–-[nV½[³âââ(//�7Þx#Ž8âˆ())‰ˆˆ3Ï<3{ì±ô—AF�§žzjtèÐ!>ùä“ä „O?ý4ößÿX±bEDDœ~úéñÄOÔ[]kÖ¬‰¼¼¼X´hQüæ7¿‰9sæ$�}öÙgQXXXoµ°í¨í?Ó´aÞ2kÖ¬èÚµë]“T†C°UjÆO( IDATݺuôîÝ;n½õÖøÛßþùùù)ǧL™^xaµ®Õ²eË8ì°ÃâÊ+¯Œ·ß~;vÚi§ˆˆÈÊÊŠ¿ýíoqÝu×ÅG‘‘áoDDƒ ¢   9ä�èÖ­[ºËÉH«V­Š‹.º(‰Dzè¡)3Òí¶Ûnñì³ÏF›6m¢]»v1hРz­­Q£F‘——»í¶[œ~úéõzojfñâÅé.� `«×§OŸ¸ä’K6ÚÿàƒÖxÛ�wÞ9Ž9昈ˆ8ðÀãg?ûY­Ô¸­hÒ¤IºKÈHO>ùd,Y²$""vÙe—�ŽrÈ!ñå—_Æ¢E‹¢gÏžõ]^REµ±ux饗bèСé.ƒ `›Ð°aà ÷_rÉ%ñÚk¯ÕèZ?ýéO#"L;J­7n\r;'''�•lÚÖ\ÛöìóÏ?�ÓO?=ÊÊÊÒ] @ @F*++‹/¾ø"ùò'È]ºtIi—””ĉ'ž‹-ªö5š7ožò_ØR³gÏNw l£Ö­['�tR,[¶,Ý¥�!Àd¤²²²˜2eJò%€ÌqÅWÄI'�”²oÉ’%Ñ·oßX»vmµ®Ñ AƒˆˆÈËË«õúØ>-]º4Ý%° *++‹þýûÇÔ©SÓ] D À6%+++üñøùÏž²ÿ½÷Þ‹sÎ9'MU±½[·n]ºK`óý÷ßÇI'�cÆŒIw)d0Ûœ%K–TùZºti¬^½:ùZºtiÌŸ?³_ÀÖ¥aÆñ /ÄO~ò“”ýO?ýtüùÏÞ¢kßvÛm‘••µÑkÀ€)ýV¬XQa¿¬¬¬¸îºë*½~qqqŒ?>ú÷ï=zôHîÿþûïcøðáqÐAE«V­¢Q£Fѵk×øóŸÿEEE)×H$1qâÄ8å”Sb·Ýv‹‚‚‚h×®] 4(¾ýöÛ¿çD"£F�ŠC=4vÚi§(((ˆÂÂÂèß¿�ÖWN$ñì³ÏF¿~ýb·Ýv‹vØ!š7o]»v�Ë.»¬ZÓ$¯]»6ž~úé8üðÓ÷^»vm 6,vÛm·hܸquÔQ±|ùò¿Ï ½öÚkq饗Æ~ûí­ZµŠ Ä.»ì¿øÅ/âšk®‰O>ù¤Òs{ì±”Ÿy"‘H»þúë«üülŽÕ«WÇ=÷܇vX´k×.òóó£U«Vѳgϸ馛êl á’’’xüñÇãØc��:DÆ £E‹±ß~ûÅÕW_ ,¨ò_}õUÜ}÷Ýqà�Æ-·Ü’Ü?cÆŒ¸øâ‹£K—.ѤI“hÑ¢EüêW¿ŠÉ“'ot�åË—Ç]wݽzõJþ?Ò½{÷xøá‡«ý^¶ôÇË/¿ƒ Š:ÄçŸ?|öÇŽGyd´nÝ:6l{ï½w >7ûî»ïFç&‰9rdüú׿Ž]vÙ%rss7ú¼UtÛ�Üt55hРŸ3qâĸôÒK7ûžëÿØ:´nÝ:Æ�p@¬\¹2¹ÿª«®Š}öÙ'?üðͺî™gžûì³OÜzë­ñÊ+¯TÚ¯iÓ¦ñþûïÇÂ… ã¶Ûn‹üã•ö]½zuŒ;6^|ñÅx饗âûï¿�ˆˆ:DDÄ+¯¼ýû÷�¯¾ú*å¼>ø ~ÿûßÇo¼Ï>ûläääÄG}ç�w^üóŸÿLéûÅ_Ľ÷Þ¯¾újL�:5š5kV­÷»víÚø�ÿø��‚¨ ÄO<O<ñDœsÎ9qß}÷Ennå±ÂG}gœqF¬\¹2~ÿûßÇ�!CbíÚµ1yòä¸å–[âŽ;ï¾;®¹æšøãÿ˜rî�¡Ú˜1câ¹çžKþ<¯ºêªXµjUqÄ1eÊ”dÿ‰'Æ]wÝ×^{mµÞã†>ûì³8çœsâÕW_�<0®ºêªØsÏ=cÅŠ1qâĸçž{âí·ßŽ[n¹%·ÞzkrÚðwÜqѳgÏdû§?ýir{РAqá…¦ô¯îÏ£2&LˆóÏ??öÞ{ï¸è¢‹¢°°0–.]Ï<óLÜÿýñÖ[oÅí·ß�>úh}ôÑ[t¯õM�:5 ;î¸c\~ùåqà 7Äwß}'NŒáÇÇôéÓãÎ;ïŒÛo¿=Î=÷Ü”s?þøã3fLŒ?>Þzë­(//�ˆˆC9$JKK㪫®ŠáÇ'÷ÿhÒ¤I1yòä9rdrº÷§žz*.½ôÒ�ÚiÓ¦Å9真|òIüçþç&ßË–<ñcÇÆèÑ£ã¯ýkòÿ߈ˆÒÒÒX´hQ 0 ^}õÕ”sfΜƒŽ©S§ÆèÑ£SŽí¸ãŽ1~üøˆˆèÓ§O|ùå—Ñ·o߸ù曓ý RÎ+**ŠN8!&L˜={öŒ{î¹'vß}÷øî»ïbüøñq×]wEqqñ&Ÿ™O À6«[·n1räÈ8æ˜c¢¬¬,""ÊËËãÔSO�·ß~;öØc�_³eË–q衇F÷îÝ£eË–•~1<;;;ºuëݺu‹N�:mò^K–,‰eË–E—.]âùçŸO9öðÃÇÀ�ãØc��¾}ûFçÎ�£¬¬,n»í¶dhô /ÄÈ‘#£mÛ¶qüñÇÇ 'œC† ‰öíÛÇòåËãᇎÇ{,""æÎ�úÓŸª Ã~tæ™g&ÃßÖ­[G"‘ˆ¯¿þ:¥Ïˆ#âûï¿�Q£FUx�÷ß?~õ«_Åî»ïï¼óNì°ÃÉc={öŒž={&C¿k¯½6JKKcذaÉ> ˆÆ�Çßþö·”0ÿÇŸåš5kâÄOŒgŸ}6ùóøæ›oªõþ6ôæ›oÆÑGß|óM\|ñÅqÇwDVVVòxïÞ½ãÜsÏ�C=4,XwÝuW¼ûî»ñ׿þ5š4i’ì׬Y³JCÝ�wÞ9:wî¼YõUäÉ'ŸŒÄ AƒâÎ;ïL9vÈ!‡DË–-cذañÍ7ßÄ 'œ/¾øâfb}“&MŠcŽ9&Ž8âˆ5jTÊ~ùË_Æž{îgŸ}v¬^½:Î;ï¼ÈÉɉ³Ï>;Ùçƒ>ˆæÍ›ÇN;í”ò®]»6Ž9æ˜xï½÷âŠ+®ˆ>}úDÛ¶mcÞ¼yqÉ%—Ä‚ ¢¼¼<Î?ÿü8üðÃãšk®‰±cÇÆÿûÿ/8à€hÞ¼yÌ™3'†sçÎ�ˆˆ?ýéOÑ¿ÿJŸû–>Ã-ZÄå—_‹-Š7Þx#¹Μ9qÎ9çDçÎ�c̘1±Ç{ÄÂ… ãÚk¯�iÓ¦EDĘ1cbôèÑqòÉ''ÏËËËKÖºþZäÍš5Ûägçºë®‹ &D§N�bòäÉ)ñA}úô‰£Ž:ªÒóÙ>˜€mÚ‘G·ß~{ʾ+VDß¾}SÂÄšjÑ¢E´jÕªZ}wÝu×*�_vÙeqÝu×Å1Ç“ÜÿÅ_Ä­·ÞÓ¦M‹Ñ£GÇi§�Ý»w�=zÄÓO?ݺuKö2dHüñ1f̘x衇âˆ#Žˆ®]»F¯^½âÑGM }üñjÍhöúë¯Ç¸qãbèСñÍ7ßÄâŋ㫯¾ŠyóæÅ©§žšÒwôèÑñÀlt�U«VÅ 'œß~ûm<þøã)áï�>øàèÕ«W²}ÓM7ÅôéÓ“í§Ÿ~:|ðÁ¸ï¾ûRλ馛¢U«VñÎ;ï$G’vìØ1Ú·o¿Yë=/\¸0Ž=öØøæ›ob¿ýö‹áǧ„¿?Úc�=⥗^Šüüüˆˆ˜2eJœ~úéi™%nÆŒñÛßþ6 ã¿þë¿*ì3xðàhÔ¨QDü0]óYg�µÅkñÅqòÉ'G^^^Œ1¢ÂÑßgžyfÊ4ì]tQ,^¼8Ù>öØccàÀ�ñÔSOENNNrÿí·ßíÚµ‹Ï>û,þô§?Åa‡]»v�c�=6e=ÜåË—G÷îÝã�wÞ‰éÓ§Ç•W^ÿþïÿ]ºt‰N8!^yå•dZ^^ÿó?ÿSá{©�gxÐAÅÏþóøÝï~—rÞ)§œ¿ÿýïcÒ¤Iqâ‰'Æ>ûìG}tLš4)Z´h‘ì÷àƒVxßš(//�#FDDÄᇾÑèàˆˆ#Ž8"Î:ë¬-¾Û60Û¼‹.ºh£e£>øàƒ-í* X*²~¸U•Ž;&·KKKã•W^‰.]ºTxÍ~ýú%ÛŸþyüùÏŽ>}úTxÝ3Î8#¹ýå—_ƧŸ~Ze-Ÿ|òI<óÌ3qà 7ÄN;í”Rã_þò—�®?þñ�­G|ã�7Ƽyó¢OŸ>›ý›ßü&¹]^^^ậëO£±téÒxà�’Ï÷È#�ŒyóæÅÂ… cï½÷®òýmèâ‹/Ž¥K—FÄ�ߦ~n�:uŠ!C†$ÛãÆ�ÛhßúpþùçGqqqüö·¿­t î¦M›Æ�˜l/^¼8&L˜°E÷|xÊÏ%K–ÄØ±c“íÕ«W'G¯ÄUdÿý÷Oi¿ùæ›õÙðÙœ}öÙ)Óãn‰Y³fÅ /¼�lvØaUž3pàÀ”ûßtÓMµRKuM™2%Þzë­ˆ¨�ç[] ,ˆgžy¦Vï»þ϶]»v›¼æúŸûæÍ›ÇÎ;ï\ißõ?÷}ækûnøyÜÔtÍ]»vMn¯^½:–/_¾ÉûW%???ìŽ3&æÌ™Sa¿.]º¤Ü›í�€Œ�““£F�нöÚ+eÿ�7Þ˜ZnKš6mZí¾ë¯O±é‚?ÚT°ñCh·áÈêÉ“''·_}õÕä}†¹¹¹•¾6 çן*¸2Í›7¯²Ou­þ6kÖ,Z¶lYå9­ZµJ gΜóçϯµšª²þçö—¿üå&ŸïÍ7ßœrnužoeÆ�—\SûôÓOßä}Ï?ÿüZ»ï�6÷s_Ñg>]ÏpÃÚ"~�·D³fÍ ˆÖQ>ä�Câ¯ýk…}Ÿ|òÉ-ºÛ¶ŠÇ¹ÀVìž{OIII¼üòËÉöa‡Ç{l]–lš6mãÇ��_üâñõ×_GDD"‘ˆþýûÇ{쑲¦î¶ ;»úã¸6컥kÀþèøã��ßÿþ÷ÉöìÙ³“Û¯¿þzrûúë¯�¾}ûVûº•MÅ[W¦L™’ÜÞ0˜Û”=zÄ+¯¼’l¿ùæ›QXXX›¥Ujýç;a„hÛ¶mµÏmÖ¬Y­Ü÷¡‡ŠŸÿüçÕ>·¢i�kjs?÷}æÓõ +²¥S@Gü0*¿W¯^Q\\_}õUyä‘qÌ1ÇÄðáÃS¦—gû&`›ÓªU«*ûÇ;ì�l·lÙ²Þþa¤W‡â…^ˆÞ½{'¡Õ«WGß¾}ã�wÞIYë6“mÉÚÇëëØ±c4kÖ,¾ûˆøæ›o’Ç,X�ÜnÙ²åF£¯·&_}õUr{Íš5Õ>¯S§N)í%K–ÔZMUYÿùnTK}Ü·mÛ¶[õϵ*éz†u¥G�1räÈèׯ_r=îqãÆÅK/½—_~yüáˆÆ�§¹JÒÍÐd¤ÜÜÜèÝ»wòUßß(Òë¿øE<þøãÉõ2#">ýôÓ8ùä““SÛR=YYY)ë7hÐ ¹½þš¦[º¾i][µjUr{åÊ•Õ>oÃi¨ko©t=ßméçZ•Lz/?:î¸ãâõ×_�=÷Ü3¹¯¨¨(n¾ùæèÔ©S<ûì³i¬Ž­�€Œ”��­ZµJ¾j2m �N>ùä6lXʾI“&ÅW\‘¦Š¶]ë¯ÉºþÚ¹ëé¾>ׯÝ;î¸cr»¤¤$¾üòËj�·þ,sU¯›\›Òõ|·¥ŸkU2齬ïg?ûY̘1#n¼ñÆ”)Í¿üòË8ñÄãw¿û�/»lÇü6€Œ5tèÐ8ãŒ3RöÝqÇñÔSO¥©¢mSIIIr{ýé€×ŸN{Ò¤I5¾îêÕ«·¬°èСCJ{úôéÕ:oý‘ÃQ¯ËŒmÉó-))Iù¹Õ×}#êw”tUÒõ ëCAAA\}õÕñÙgŸÅàÁƒ£   yì�Øè 0l?Àd´#FÄ/ùË”}ÿûßÓTͶiÙ²eÉíÃ;,¹½~üðÃjŸ{÷ÝwÇ5×\³Y÷­ éz†uaÙ²eqøá‡o´¿E‹qÛm·ÅŒ3¢[·nÉýÇߪÂxê�€mÂ�#ñJKKkt^ƒ â¹çž‹Ž;Öøžë¯!¼©ûÖ´¦mÉŠ+’Sçîºë®)Ô�˜Ò÷â‹/Ž¢¢¢*¯ùñÇGÿþýãw¿û]­Öº)Çw\äçç'ÛùË_"‘HTyÞú#…�=öØhÔ¨Q�ÔW‘õŸïÊ•+ãÊ+¯¬ÖycÆŒ‰x N?ýô-¾o"‘ˆ�VëYM™2%®¼òÊ8ï¼ó6ë¾u!]ϰ&Öÿs¦ªi›_{íµJGÎï¹çžñÒK/%§-_µjUÌ›7¯ö e›‘[u "‡vXtíÚ5Ýe•(..ާŸ~:Ù>í´ÓÒX P~ =6œ’·:Z´h&Lˆž={ÆŠ+ª}Þúë¿~üñÇ•ö›={vJ»:aÙ¶bìØ±É÷3lذ”5Uÿíßþ-~úÓŸÆœ9s""bîܹqÚi§Å¨Q£Rú­oÞ¼yñ«_ý*ºwï‡zhÝ¿�ÿÓ¦M›8÷Üsãî»ïŽˆˆ Ä /¼}ûö­ôœ²²²˜0aBDDdggÇСC+ìW^^¾Éöæêß¿üñ�L~ÁàÑG�½öÚ+.¿üòJÏyñÅãŒ3Έ¡C‡¦¬{\}ûö��vÚ)¾ýöÛˆˆxõÕWãÒK/�;î¸#%¬\ßÛo¿G}tüÇüGtêÔi³î[Òõ kbý©›«¡¼víÚxæ™gâÌ3Ϭðx›6m¢OŸ>1nܸˆ¨:P&3 @F*//�ùóç'_µõ�n }~…úÙgŸmÖù�:uŠgŸ}6òòòª}ÎúÓ©¾óÎ;1eÊ”�ú|þùçqæ™gFóæÍ“û¾úê«J¯¹nݺ”ö¦Ââ GojÍÜ ¯[�QÉUÕëÖ­‹?ýéOqÖYgU8ò†nHi�;6~ö³ŸÅ„ RÖOýúë¯cذaÑ£G�X±bEÜwß}]kÚ׮][å{¨‰ÿüÏÿŒÎ�;'ÛW\qÅFÏm}O<ñD|ùå—ñCø½÷Þ{WØoÃ/,_¾¼ª�hÛ¶m\pÁ)û'�tRüë_ÿJîK$ñÁÄ9çœ}ûö�.]ºÄW\Qá57üEEkÜ6lØ0®¾úê”}wÝuWôéÓ'þùϦü®mÁ‚1xðà8è ƒ¢qãÆqË-·TxßõŸsUŸ»õ?U­]Õç¾¶ŸaMFûo8ýreï»mÛ¶Éíýë_)?“U«VÅóÏ?ŸÒÿæ›oŽâââJïûÝwßEÄëȶ}°Õ[³fMrÍÖ—^zi³¿ì}È!‡Ä½÷Þ[íþgŸ}vr;‘HÄQG÷ÜsOL›6-þùÏÆÕW_ݺu‹3Î8#emØÑ£GÇc�=Ó¦MÛ(`Ûp´ð¢E‹*½ÿ†ÇÖŸŽxC?ŽÂýQeAùÎ;ïœÜ~ÿý÷SÖ¸]_qqqôïß?>úè£èׯ_…�mDÄ 'œ°ÑTÎ3f̈ßüæ7ѤI“(,,ŒæÍ›GëÖ­ãÚk¯�uëÖŨQ£b�=ö¨ò=¼õÖ[Þss5iÒ$Æ�………ñÉ'ŸÄ™gžYa:kÖ¬¸ì²Ë""âüóÏ�?üá•^wÚ´i)í7ß|³Öj¾å–[¢{÷î)ûžyæ™èÑ£G4mÚ4vÝu×hÔ¨QtíÚ5~øáøÉO~cÇŽMUº©ÚæÎ�[a¿K/½4Ž<òÈ”}“'OŽÞ½{G“&Mb×]w�Æ�Gaaa ><5jÏ?ÿ|ÊçëGË–-‹%K–$Û›úÌox|Ù²e•~F#ª÷¹¯Íg¸xñâ”ö¦føôÓOSÚ?ލÞP¯^½’ÛK—.�3Ï<3Þ~ûí˜0aBôêÕk£àøÃ?ŒAƒU(O�:5Þxã�ˆˆ¸ñÆ£Aƒ•ÖGæÊ¹îºë®Kw°-XºtiÊ? ­ZµJcEÀ¦”––Æë¯¿žl÷êÕ«Òi‡€ÚQ^^¾QÀÑ¢E‹ÈÎÞ²±Hï½÷^œ{î¹1kÖ¬ˆøaŠÔ>ø öÙgŸ æªtïÞ=Ö¬Yo¼ñFôîÝ;z÷î]iߎ;Æ÷ßS§N�ˆˆ¢¢¢˜8qb<ðÀñØc�Å{ï½·ß~{ 4(ž~úéä4ѹ¹¹±råÊH$±ÿþûÇš5kbÆŒñÈ#�ÄC=”r�¹sçF›6m¢¬¬,Z´h¥¥¥1{öì˜:uj 6,–-[–ò,š5k999ѼyóÈËˋٳgÇ /¼C‡M £fΜÍ›7�òòòØqÇ“#Ÿ8à€xÿý÷ãÓO?�uëÖÅã�?K–,‰²²²X½zu,X° žþù8묳bæÌ™qóÍ7Ç­·ÞºÉß­uÔQ±víÚ˜:ujJ(UVVß}÷]r]àÝwß=žþù8øàƒ“}‰DL›6-ž|òÉ:th¬\¹2å=¬]»6rss£¨¨h³~ÞjÑ¢Eôë×/æÎ�}ôQÌž=;^|ñÅhذa$‰øôÓOãᇎßþö·‘››·Ýv[ 6l£©�—/_|ðA¼úê«1dÈ�”©{/^óçÏ�ÜÜÜX³fMTÈV%///N=õÔ˜>}úFë¹ÇŠ+’£R=ôÐxñÅ£}ûö)ýV¬Xï¾ûnÜ~ûí1bĈ”cï¾ûn´lÙ2JKK£iÓ¦ÉÏIVVVœtÒI±pá˜1cFÊ9%%%±bÅŠdpþ³Ÿý,Æ�Ÿ2b>â‡0öí·ßŽÁƒ§„¡ ,ˆ‚‚‚ÈÏÏ�üüühÔ¨Q,[¶,fÏž£F�ŠGy$åsôÎ;ïDË–-#⇟ߺuëâõ×_�ûî»/{ì±”¾3f̈�wÞ9ÊÊÊ’çÔÆ3ŒøáwŽC† ‰O>ù$¹¯¬¬,Ž;î¸ÈÉÉIéûõ×_ÇÅ_œòyÞa‡RÖÐþQ§N�bĈÉÿOfÍš#FŒˆQ£FÅþð‡ätÏkÖ¬‰[o½5"~ø³àå—_Ž‚‚‚(//��>ú(þçþ'.¸à‚(**Šë¯¿>¼Ñ½j¢®þL—·Ô½¬D&-DuhöìÙ±×^{%Û³fÍ2ulÅÖ­[—2ÝÌ�!C6ûÙ@õ”––n´Nî{ì±Ù_Êþïÿþï¸îºë*5ñÃÔ©&Lˆ}öÙ§F×.//�N8!öÙgŸ¨Î8©Ñ£GÇ=÷ÜÓ§O�’’’èСC}ôÑ1hРèСCDDœwÞy‘——ÇüÿÏÞ½ÇYU×{ÿÎ0¹AÍj�¨å‹o™w¥Ž¡eÖI1õ@­çDÆKƒoY'15¯�)¢ÅN© *¨ˆ¢ÜA@æ¶Ÿ?:î¹ÍŒ³gÍ,Þï×Ë—ë·×ï·Ögoe6òq­Gyd�÷}ÇwÄù矿ÝsôîÝ;Þ|óÍXºtéV˧O›={vqÄ1xðà- ºOûøÊÍOš7o^<úè£1sæÌxûí·cÕªUQ]]ݺu‹Ĉ#âÌ3ÏlÐ3P_y啸ùæ›ã‰'žˆeË–EEEEì¾ûîqðÁÇ)§œ§Ÿ~z×Y³zõêlQ·={íµW,]º´ÞYêcöìÙñ»ßý.ž~úéX¶lYTVVF×®]³ïÿœsΩskïOºñÆã[ßúV½Î3yòä-®’nŒ3fÄoûÛ˜3gN¬\¹2"þñ¹vØaqÎ9çÄ1dzÕu—\rIÜtÓM;<þÖþ=‰ˆ˜3gNÜ~ûíñÔSOÅŠ+¢¦¦&öØc�8ôÐCãŒ3Έ‘#GnQ€FD ><ž~úéížóÇ?þq\}õÕñ“Ÿü$®¹æšíÎýø×ÈK/½C† ÙîÜ^½zeoÿI�ý /¿üòø¯ÿú¯­^�ܽ{÷6lXÜÿýñ•¯|%fÍšU§üýXŸ>}⢋.Ú¢œýë_ÿ—]vY¼øâ‹±ë®»Æa‡—_~yüë¿þkvÎö~­´iÓ&ºuëÇ�ï|ç;q衇nýƒi€¦þ™þ1}Kî)€¡žü@‚ÖE Í/WeÍOÜzy0@J(€RB � `€”P¤DAÒ òòò¢{÷îuÆ�v*Jol IDAT `R©¸¸8.ºè¢¤c@³r h€”P¤„ %<€Tª­­�U«VeÇݺu‹ü|ÿßé¦ •*++cÊ”)Ùñ¸qã¢mÛ¶ &€Üs)@J(€RB � `€”P¤DAÒ µzlþò˜¿¹CÒ1€m¨Ü\¯®X›ß÷÷w¢¨¸m‚‰rçÔƒz%€ÂÀ)¡H 0@J(€R¢ é� …qèðcëŒ íÀ¤R~›6Q¶ÿ€¤c4تåK¼fqçLƒæ—••5ø´ `hA.ùò羦�ó3™†Æ´ž �®€”Éd2QYY™tŒÔ***м¼¼¤cl•€Tª®ªŠŸy2;>舣£ °0ÁDͧ²²2z衤c¤ÖÈ‘#£¸¸8é[¥ •jkkbñó³ãÁ‡ `ÒM )öÜsÏ%!5† –t€R@ rãó¼æÄ�¥9H@k´hÑ¢xî¹çbÅŠQ[[{î¹g 6,öÛo¿¤£ÍD -H·=¼¦¬¬W’isà�Fa¡Gd5TUUUÌ�;7é;ô—¿ü%¾ÿýïÇ3Ï<³ÕýÇ�›nº)ú÷ïßÌɀ榀�@aa¡8¥~ýë_ÇÅ_™L&ûì³OTTTÄܹscùòåñÔSOÅ¡‡O<ñD :4áÄ@.å'€Æ¹ï¾û⢋.Š“O>9.\ÿûßãþûï�éÓ§ÇÒ¥Kãw¿û]tèÐ!"">úè£8óÌ3£²²2áÔ@.)€Z¡Õ«Wǘ1câºë®‹iӦžûî[g^^^|ík_‹›o¾9ûÚ[o½O>ùdsGš‘ úéOgŸ}vŒ7n»ó¾úÕ¯Æî»ïž¿ú꫹Ž$È3€Z™ÚÚÚ˜7o^<ôÐC;œ›——}úô‰Õ«WGDÄ.»ì’ëx@‚ÀÐHÇÍ�Å’ŽlCETÆÂ6+²ã“‹_жÅE &È¡W_L:Aý 8)é©�ŸŸ�=öX½ç¯[·.»=dÈ�\DZ0©¥ð€ˆÍ›7ÇâÅ‹#"bذa1lذd9¥ •ÚŸ1£“މ»ûî»cãÆ�Ñ­[·øÍo~“t Çò“@n,_¾<®ºêªèׯ_Ìœ93úôé“t$ Ç\ �Bo¼ñFœrÊ)ñÑGÅ#�<L:Ð \ �"ëׯ�Ÿþô§qÐAÅË/¿k×®�C9$þíßþ-Ö­[—t< ÇÀ¤R&“‰ŠÍ•Ù¿2™LÒ‘ §æÍ›]tQ”––Ƹqãâ£�>Êî«©©‰›o¾99ä�X²dI‚)�\s hRiseU\?õþìxܘÑѶ¸(ÁDé´xÙª†-h¿¸^ÓÊÊÊœ`g·aÆ8è ƒb¿ýö‹eË–Å_ÿú×xî¹ç¢¶¶6;gáÂ…qúé§Ç3Ï<ùù®„4R�¶Ïqåä¸îàÐp‡vXvØau^[²dIüÇüGÜqÇÙמ{î¹xà�bôèÑÍœhþ×€”êÙ³gÜ~ûí1qâÄ:¯ÿþ÷¿O(�k `€”»ì²Ëâ˜cŽÉŽÿú׿&˜È%0ÀN`ìØ±ÙíU«V%˜È%0ÀN`èСÙí6mÚ$˜È%0ÀN k×®ÙíîÝ»'˜È¥‚¤­×Û�MiØ‚¾Çå&;´qãÆìö'¯ÒE 4ZÙ^ݸ ,'9رùóçg·O;í´“¹äÐ;�ûî»/""_úÒ—N䊠Z¹reLŸ>=V¬X±Ã¹o¿ývüú׿ŽÂ¸õÖ[#?_EiåФRA›61üsëŒvfUUUIGh•ZêçöþûïÇkÖ¬‰‚‚‚;vlüä'?‰’’’-æ–——ÇèÑ££¢¢"î¼óÎ8ôÐCH 40©TPÐ&†:pÇvsçÎM:MhÙ²e±fÍšˆˆ¨®®ŽI“&Å}÷Ýÿþïÿ'�tRôìÙ3Þÿýxä‘GbüøñQRR³fÍŠ#Ž8"áä@®¹¾ •ûl,_¾<ª««£sçÎѵkרgŸ}bÈ�!žõ ;!0@+µï¾ûƾûî›t  Q�JÕÕÕñ·¿ý-;þÜç>¾ö€�CQQQŒ92é©UTT”t€mò'á¤Ruuu<÷ÜsÙñ�!CÀÀN#///Š‹‹“Ž@Üø %À)á^˜�"K–,iÐüêê꟣¬¬¬Ákh `H‘Ã;,ççÈd29?�ãÐ)¡H 0@J(€RB �IšÎœ9s4Ï=÷ÌQ’  •Š‹‹cìØ±uÆ;ƒž={6h~iiiŽ’�0©”——mÛ¶M:4+ÏH 0@J(€RÂ3€H¥ŠŠŠ¸õÖ[³ã /¼Ð3�H=0©µyóæ¤#@³RC#uïÞ=JKK“ŽlCEEEtìØ1;.--u0©çÀ)á `h¤ïÞ÷BtúËIǶ¡¦js¼öâ;ÙñËw<m ‹L­Ó=~>é@¸€œËd2ñÛßþ6Ž>úè4hPôîÝ;† ×_}”——'RÃÀäÔæÍ›ãä“OŽL&“'OŽý÷ß?""{ì±8餓âÿþßÿwß}wŒ1"á¤Ðú¹€œºîºë¢ªª*yä‘lùqÜqÇŘ1cbýúõqúé§Ç{ï½—`JH09uç�wÆ“O>^xáû>ÿùÏGDĆ â�hîh�: `rjõêÕQ]]·ß~ûÏûíØ±cv{Æ Í RÇ3€vr­^±Í}‹/Þæ¾²²²¦@“Èd2±~ýú¤c¤VIIIäåå%£U¹êª«âÚk¯�“O>9ºtéRgß’%K²Ûýû÷oîh�: `R)/¯Mìº÷~uÆÀÖMwú6÷í3nÛë2™LÒÐÖ¯_cÆŒI:FjM�:µÎU«ìظqãbܸ­ÿÆìÙ³#"bï½÷Ž/~ñ‹Í RI @*åÄ^C>Ÿt hµÊËË㦛nŠéÓ§Ç›o¾ëÖ­‹N�:Å Aƒâ”SN‰ .¸ Ú¶mû™ÎñÞ{ïÅ}÷Ý………1uêÔ(,,l¢ô°óR@Š=÷ÜsIGH�aÆ%¡Až~úé5jTL�:5N>ùä­}衇âœsΉ?ü0Ž9昘2eJ”––Æ[o½“&MŠ‹/¾8n¸á†˜1cFôîÝ»QùÞ{ï½8ýôÓ£C‡qÇw¸úšˆ E6nÜ“&MŠ &ÄæÍ›ü<è3fÄèÑ££¦¦&Î=÷ܸýöÛ³Ï<:thœzê©ñ•¯|%f̘Ç�§Ÿ~:öÝwßzûÃ?Œ£Ž:*jjjbÑ¢E±ûî»Ç´iÓâÈ#�lðû¶N ;�ÁƒGA�Z ¡ª««ã¥—^J:Æ6e2™X»vm¬^½:æÏŸ�?þxÜwß}ñÞ{ï5êxï¿ÿ~œ}öÙQSS�;wŽo¼1[þ~ìãÛ5—••ÅÒ¥KãÜsÏÍ>ÇwG:uê/¾øb6ûþð‡1bDqÄqë­·Fiii£rÿä'=©”©­‰—¾•w*Ý7òòÛ$˜ Yž¯šBwÞygœþùñ�bvÀ€qæ™gÆ�wÞ«W¯nðñ&L˜åååqÎ9çD‡¶:¯G�1räȸï¾ûâ™gž‰{î¹'N;í´�+///N;í´X¼xq\qÅqÈ!‡ÄÿüÏÿD¯^½œø'0©T[SËþþÏÿë°dϽ£�¶jÄõÓ¶¹ï¦ÓmÆ$@C}å+_‰ùóçG§N�¢{÷Ÿ÷Þ{oƒ à5kÖÄm·Ý–_xá…Û�þùçÇ}÷Ý“&Mjpü±³Î:+Æ�+W®ŒóÎ;/fÍšÕ¨ãÿ ØÉµß}Ïmî+++k¾ @ƒí¶Ûn±Ûn»5ɱî¿ÿþ¨¨¨ˆˆˆ]wÝ5¸ÝùÆ ËnÏ™3'Þ}÷ÝØ{ï½|Þ=zD¯^½bñâÅñÔSOÅ«¯¾ hðq€ÈO:É{â‰'²ÛxàçwîÜ9ûÌÞL&úÓŸ¶:oΜ9QZZ}ûö�¹sçnuÎ{ì‘Ýž?~CbŸ¢ æÍ›—ÝîÛ·o½Öì·ß~ÙíçŸ~«s~úӟƲeËbáÂ…qÇwluÎÆ�³Û�;w®×¹�­SìäjkkcÑ¢EÙq}KØOÎÛÖÕ½;vŒˆˆ}öÙ'Î:ë¬-ög2™XºtiDDì²Ë.1dÈ�z綤ØÉ½óÎ;±yóæì¸¾ÏîÒ¥Kv{É’%[�óå/9vÙe—˜1cF|ðÁ[ìöÙgcÍš5ñÍo~ÓÀð)€©ã™gž‰Ñ£GgòÞæÌ™ݺu‹¼¼¼:�}öÙMv ñ–/_^gܾ}ûz­û伕+WFMMÍsN=õÔ8á„bÔ¨Qu®2þØ/ùˈˆ8ꨣâºë®kHl`+ ’@ËòÄOÄÿøÇxï½÷¢¬¬¬IŽùøã�Çûï¿¿Åë¿ýíocêÔ©Q\\Ü$çin;Ü:îšt `**kâúâ—³ãq%UѶ¨M‚‰ •úÃÔ¤ìØ©w&�Z½ 6ÔÖk]QQQv»¶¶6>üðÃ-®àÍËË‹iÓ¦Åu×]‡~x|éK_ŠaÆEqqqüሙ3gÆÕW_ÿñÿQïóÛ¦&çÆŽååå±jÕªˆˆ˜6mZv_&“I*ð¿š¢ŽˆmÞa´   ®¹æšøÞ÷¾O=õT¼þúëQSSçž{nüîw¿‹:4.8°09×µkט4iRvüÉHÞÆ�ëŒóóë÷ÑO_èõÉçoM»víbĈ1bĈ†êÍ3€vrŸ¾’·¾ªªªêŒÛ¶mÛq€ÏÀÀ¤RQA~\tìþuÆÀÖµk×®Që*++ëŒÝÊ’§ •òóó¢û®»$Z…Ž;6jݦM›²ÛyyyѾ}û¦Š4’Ë¡ôÒK/ŸqãbĈÑ»wïØ}÷Ý£¸¸8JJJ¢_¿~qá…ÆÃ?¼ÅýóÓfÕªUñ£ý(†�;wŽ¢¢¢èÙ³gœqÆ1kÖ¬¤ã@êõêիθ¶¶¶^ëÖ¬Y“ÝîÒ¥K½Ÿ äŽ+€2}úô9rdÔÔÔl±¯²²2^ýõxýõ×ã¶Ûn‹Áƒǯ~õ«6lXIskÊ”)qÕUWmñpù¥K—ÆÝwßwß}w|õ«_�Ûo¿Ýs`'¶xÕ†íì\¼Õ—ËÊÊr’Ò¨gÏžQXX˜}¦ïºuëêµî“pß¾}s’ hpBn¹å–:åïÁ{íµWÇš5kâÍ7ߌÅÿû‡/½ôR}ôÑ1mÚ´9rdB‰sã²Ë.Ënï±Ç1dÈ�¨®®ŽyóæÅªU«""âî»ïŽåË—Ç#�<%%%IE´Ï%÷o{ç6ö¥ýnJДڴiýû÷�¹sçFDDyyy½Ö-[¶,»­†–Aœ�O™………1kÖ¬-ÊÍgŸ}6Æ�3gÎŒŠŠŠ8ãŒ3â•W^‰}öÙ§¹ãæÔî»ï“&MŠÓO?={kˆªªª˜2eJ|ÿûß�Í›7Çÿ÷Çw¿ûݸå–[šäœ«V­Š÷ß¿AkÞ|óÍ&97Ð<6WÕÄí³þùëöü£úDqa›@Ëvøá‡g à×^{m‡ó?¾£éǘ³l@ý)€òãÿ8–/_Ë–-‹k®¹f«W¶~øáñç?ÿ9Ž=öؘ9sflܸ1&Ož?ûÙÏHœ�:uŠÙ³gG¿~ýê¼^XXßúÖ·bß}÷�‘#GFmmmL�:5Î<óÌ>|øg>ï¯~õ«øáø™�´\™LÄ{k7ÕÛvÔQGů~õ«ˆˆ˜7oÞç/X° ª««³ã£�>:gÙ€úó$î„ôêÕ+žxâ‰X°`A|ík_Ûæ¼üüüøæ7¿™¿ð Í¯Ù\ýõ[”¿Ÿtâ‰'Ƙ1c²ãë®»®9bÀNçÄOÌ^°öÆoÄ¢E‹¶;úôéÙí~ýúÅ�!Crš¨W· ™L&^ýõX¸pa,Z´(–-[ëׯ�·Þz+;ç£�>J0aÓÛ^ùý±+¯¼2n¾ù戈˜9sf|ðÁѹsç\G€�Ê.»ì§œrJÜ~ûí1mÚ´øÁ~°ÍùwÞygvûÒK/Íy> ~À «­­�x î½÷Þ˜9sf¬ZµªÉŽý‹_ü"¾÷½ïE¦÷=mès†»uëK–,‰¢¢¢­«Ïü²²²4hP¼üòËQSS/¼ðB|ñ‹_lÐy>mìØ±qê©§6hÍ›o¾£F�úL瀖ìòË/�»îº+ª««câĉ1vìØØu×]·˜÷ä“OfŸÿ;hР:wó’¥NÐþð‡?~|,X° 'Ç¿øâ‹ã˜cމÚÚÚz¯™2eJüú׿ŽG}4zôèQïu�;wnpùÛ}úô‰—_~9""–-[ö™�×­[·èÖ­Ûg>Ð<Þ¾qô¶wžøóæ ­@MMMlÚ´);^¿~}½×öë×/®½öÚ¸âŠ+¢¼¼<¾ýíoÇo~ó›:s>øàƒ¸øâ‹#"¢¤¤$¦M›*'h)üjLÈw¿ûÝøÅ/~QçµÞ½{Ç‘Gp@ôïß?öÛo¿èÖ­[<ÿüóñ…/|¡Áç(**Šù—iКîÝ»GDDÿþý£¬¬¬ÁçÌ•Æ\Å ¤GY·ÛÙYÖl9Z³êêê¤#´J-ýs«¬¬ŒW^y%***bõêÕñÚk¯Å½÷Þ[玣W^ye,X° † ¥¥¥QRR¥¥¥ÙNàÓ.¿üòÈd2qõÕWÇ]wÝ+W®Œ±cÇÆ{ìóæÍ‹Ÿýìg±hÑ¢Øk¯½âÁŒ8 ¹Þ.P àLŸ>½Nù{ 'ÄøÃøÜç>·ÕùmÚ´i®hÍ®¾_œ .Ìn—––æ*@j½ôÒKIG –/_|ðvç|ôÑG1yòä˜9&Ož3gÎŒ³Î:+***¢sçÎÑ¿ÿ¸ä’KâßøF´k×®©Þ ÐDÀ øýïŸÝ¾à‚ âÖ[oM0M²üñ8餓¶;gÁ‚ñꫯFDDaaá6‹rØÙ”••åì.š}úô‰ŸÿÜ#W µQ' ¼¼<»ýå/y‡ó«ªªr'Q·Þzë àýèGÙíN8!:uê”ëX©1lذ¤#ÐŒò“°3êÝ»wv{æÌ™;œÿØc�å2N¢}ôÑøãÿ¸ÍýS§N�»ï¾;"þq+쫯¾º¹¢@«ã àœqÆqã�7FDÄM7Ý%%%ñ½ï}/ºtéRgÞ‚ âÚk¯�ßýîwÙ×6mÚÕÕÕQP�žtç�w^´k×.Ž;î¸ìk«W¯Žë®».&Nœ˜}íꫯvûg Þòó#ʺu¨3ØY”””ÄÔ©S“Ž‘Z%%%IGئô´ˆ­Èa‡_ÿú×ã–[n‰L&×]w]Üpà 1xðàØsÏ=cݺuñÚk¯ÅÒ¥K·X;oÞ¼hß¾}téÒ%ÚµkW]uUœþù ¼‹¦³nݺ8þøãcРAÑ»wïX±bEÌ›7/6mÚ”�sÆgÄ5×\“`Ê-Íí~z¬ï¹oÒ1€íè·Ï?·_L.�kùKÒ u†št>£¼¼¼èرcÒ1H€8!S¦L‰:Ä/ù˨­­�M›6ÅsÏ=·Õ¹ƒ޶mÛÆ_þ÷5*++cÅŠñÿþßÿkup›6m¢¦¦&òòòâ׿þu\z饱iÓ¦xùå—ãå—_®3·°°0~øÃÆ•W^™PZh=Ü3!ùùù1qâÄøûßÿßúÖ·¢_¿~Ñ®]»(..Ž®]»ÆÐ¡Cã’K.‰'žx"^|ñŘ9sfL˜0!>øàØm·Ý¢   â¼óÎKú­4Øyç�yyyqÞyçÅ׿þõxã�7â²Ë.‹ý÷ß?Ú¶míÛ·�<0¾ÿýïÇk¯½¦ü€zrpÂþå_þ%&Mš´ÃyíÚµ‹ñãÇÇøñã›!UnM�:µÎ³'JKKcâĉuž÷ 4œ€Tª­­�•+WfÇ{ì±Gäç»ñ馦޼¼¼:h­ªªªâÑGÍŽÏ>ûì(..N0䞘:F�kÖ¬‰½öÚ+é(@ެX±b»û/^¼ÝýeeeMhR `ê8ðÀã†nH:�C£G�þLë3™L%šš‡!¤„ %À)¡H 0@J$€æuÿý÷owÿ�!Cš) ÐÔÀ;™=÷Üs»ûËÊÊš'ÐäÜ %\ @*ľð…:cH;@*µiÓÆmëØé¸4@J(€RB �ž �tà�Æ€’ŽlCeeeÜÿýÙñèÑ££¨¨(ÁD�{ `R©¶¶6^{íµ:c ykÖ¬‰n¸!|ðÁ¨­­�šššØÿýãúë¯�¾}û&Z=04ÒÀŸ<Ñ奤c[‘¹ñ̤#[ñâ‹/ÆÈ‘#ãÀŒ|0zõê�=öXüñ1gΜèÞ½{Â)¡uó `rnñâÅ1bĈ0`@<ôÐCÙò7"âÉ'ŸŒòòò¸ãŽ;’ )á `rª¶¶6F�qÛm·E›6m²ûV¯^?ûÙÏ""âÝwßM*"¤†R¦¶¶6ÊËË“Ž‘Z]ºt‰ü|7Ymˆßÿþ÷1wîܸì²Ëb¯½öª³¯K—.1räÈxæ™gâ«_ýjB !=À�2åååÑ­[·¤c¤ÖªU«¢k×®IÇhU®½öÚˆˆøÒ—¾´Å¾¼¼¼xðÁ›;¤–ÿ=€œyã�7bÁ‚±ß~û%œÒÏÀ´\ëÞoԲŋÇæÍ›cíÚµÙ×Þyç�(..Þ²²F�Ò¨¼¼}z¼ùæ›±nݺèÔ©S 4(N9å”¸à‚ ¢mÛ¶;<Îc�=–ÝÞsÏ=ã/ùK\}õÕ±jÕªX·n]|á _ˆ«®º*öÙgŸ\¾Øi(€h¹îº¬QËöÙʺ_þò—;\—Édu>h‰ž~úé5jTL�:5N>ùä­}衇âœsΉ?ü0Ž9昘2eJ”––Æ[o½“&MŠ‹/¾8n¸á†˜1cFôîÝ{»Çš?~vû…^ˆ)S¦ÄÿøÇ())‰õë×ÇYg�ƒ Š?þñ�ñÅ/~±Qïø'·€H‘�7Æõ×_Çw\¬]»6Ö¯_ß õ3f̈ѣGLJ~çž{n<þøãqÊ)§ÄСCãk_ûZÌž=;N8á„X¸pa ><Þzë­íï½÷ÞËnÿüç?�)S¦DIIIDD”””Äo~ó›hÛ¶mŒ=:Þ~û톿a 0@+•ÉdbÍš5±páÂxðÁã’K.‰Þ½{Ç•W^›7onðñÞÿý8ûì³£¦¦&:wî7ÞxcäååÕ™SXXS§N�ÂÂÂ)x5 IDATXºtiœ{î¹Û=æ' èaÆmqÛèN�:ʼn'ž6lˆüà Î Ô¥h¥î¼óÎèܹsôíÛ7N=õÔxöÙgãÌ3ÏŒÝwß½QÇ›0aB”——GDÄ9çœ:tØê¼=zÄÈ‘##"â™gž‰{î¹g›Çüdá{Ì1ÇluÎþûï÷Þ{oƒ¯XêR´R_ùÊWbþüù±lÙ²¨¨¨ˆ¿ÿýïñŸÿùŸÑ¾}ûkÍš5qÛm·eÇ^xávçŸþùÙíI“&ms^—.]²ÛÛz^pçÎ�#"¢ºº:þö·¿Õ+/°uI qvÛm·Øm·ÝšäX÷ßTTTDDÄ®»îÜîüaÆe·çÌ™ï¾ûnì½÷Þ[ÌëÙ³gv{[ÅtQQQv{åÊ• Ê Ô¥ å:û�Zöö�F5qH¿'žx"»}à�îp~çÎ�£´´4–.]™L&þô§?Å7¾ñ�-æ 2$»½yóæ(..ÞbN&“Én7U¡ ;+0-WÇ®�ZVVV™L&>üðÃìk�:uм¼¼¦J©3oÞ¼ìvß¾}ëµf¿ýö‹¥K—FDÄóÏ?¿Õøˆ#Žˆüüü¨­­�òòòèÑ£Çs6nÜØàs[§ •6oÞ7ÜpCv9oîܹ[�³Ç{Ä‘G³fÍŠ lµþ¸D>è ƒbß}÷mHtàSò“@²Þyç�ؼysv\ßÛ0wéÒ%»½dÉ’mλâŠ+""â‘GÙêþY³fEDÄ5×\S¯óÛ¦ØÉ-_¾¼Î¸}ûöõZ÷Éy+W®Œššš­Î;î¸ã⬳Ί›o¾¹Î•Æ?üpüío‹û·‹Q£F509ðin °“Û°aC�qaaa½Öe·kkkãÃ?Üæí£o»í¶Øe—]âˆ#ŽˆK/½4öÞ{ïxá…â®»îŠk¯½6~ðƒ4þ Y `€�\SÀÛœ[XX7ß|s¼þúë1gΜX¶lY :4®ºêªz?sØ104Ò+�º¶I:°5?Q•‰xfsÄð+“N-ÞÆ�ëŒóóë÷ÑL&SgüÉçoËþûïûï¿ýà âÀ;¹O_É[_UUUuÆmÛ¶mŠ8Àg ØÉµk×®Që*++ëŒ;tèÐq€Ï@ °“ëØ±c£ÖmÚ´)»�——íÛ·oªH@#)€vr½zõª3®­­­×º5kÖd·»téRïg¹ãW!ÀN®gÏžQXX˜¯[·®^ë>Y÷íÛ·És W�tÈ…‚üˆãûDü?ƾò`[Ú´iýû÷�¹sçFDDyyy½Ö-[¶,»­†–ÁŸ†Ð*,^S¿[Î|R÷ùÝ»GDÄÒ¥K´¶¬¬¬Áç€ÖìðÃÏÀ¯½öÚçWVVÆë¯¿ž80gÙ€úSÐ*ìóË �[øË}µ,“É4î|ÐJuÔQñ«_ý*""æÍ›·Ãù ,ˆêêêìøè£�ÎY6 þ<€8ñÄ£¤¤$""Þxã�X´hÑvçOŸ>=»Ý¯_¿2dHNóõ£ vÙe—8å”S²ãiÓ¦mwþ�wޙݾôÒKs– h0qùå—GAÁ?ž :qâÄX»víVç=ùä“Ùçÿ4(ÆŒÓl�íS¤HMMMlÚ´);^¿~}½×öë×/®½öÚˆˆ(//�oûÛ[Ìùàƒââ‹/Žˆˆ’’’˜6mZ¶4’çW#@+UYY¯¼òJTTTÄêÕ«ãµ×^‹{ï½7V­Z•�så•WÆ‚ bذaQZZ%%%QZZÝ»wßê1/¿üòÈd2qõÕWÇ]wÝ+W®Œ±cÇÆ{ìóæÍ‹Ÿýìg±hÑ¢Øk¯½âÁŒ8 ¹Þ.P `Z…·/íРù›«31ùùʈ¡c#"â›ßüfç"$fùòåqðÁowÎG}“'OŽÉ“'g_?~|L˜0a›k®¸âŠ8ùä“còäÉ1sæÌ8묳¢¢¢":wîýû÷�K.¹$¾ñ�oD»víšê­MD @«P¶[ÞZPQ•‰]ÛæEìºkDDôêÕ+Ú¶m›‹h�˜²²²Èd299vŸ>}âç?ÿyNŽ äŽg¤„ %ÜR¦K—.±jÕª¤c¤V—.]’ްM `H™üüüèÚµkÒ1H€[@¤„+€¡‘þÜçDZ gϤcÛPYYóßx bþüˆˆ¸ÿþû£¨¨(»ÿ”SNI*äŒ+€RÂÀ¤RQQQœvÚiIÇ€få `€”P¤„ %<€VkÕªU�^»xñâF¯-++kôZÈ%0­ÖÅ_œÈy3™L"ç€q h€”P¤„ %À)¡ IäååmñZ&“I ŸUmmí¯míç<-OAÒ ±nºé¦mªŠ?ÿùÏÙñ±Ç………Ùñˆ#rš vFùù[^sTUUUç¿Éhª««·xmk?çiyÀ´ZݺuÛæ¾ÊÊÊhß¾}vܵk×(**ÊŽËÊÊr vJyyyQTT•••Ù×6lØíÚµK0�±aÆ:㢢"W·jzšLIII�ñºuëÜ •Éd2±nݺ:¯}úç;-—€&óé‚ ªª*–-[¦h%2™L,[¶,ªªªê¼Þ±cÇ„ÑPn @“iÛ¶mÖ)Ö¯_‹-ŠŽ;F‡¢  Às$Z�ÚÚÚ¨®®Ž 6ĺuë¶( £¸¸8¡t4”€TÊÏÏ�ýöÛ¯ÎȽ¼¼¼èÑ£G¼ûî»u®ú­ªªŠòòò(//O0 õñÏuÏÿm=À¤RAAA 2$é°Sj×®]ì½÷Þ[”À´.yyy±÷Þ{G»ví’ŽB(€¡‘Ž=öØ0`@Ò1 Eú¸^¾|ù· å+,,Œ=z([!09Ñ®]»èÝ»wlÞ¼9Ö­[ëׯ�ÊÊʤc° EEEQRR;vŒââb·}n¥ÀäL^^^´mÛ6Ú¶mݺu‹L&µµµn ЂäååE~~¾Â7%À¤Ruuu<ÿüóÙñ!‡¾ö iyyyѦM›¤c@jù“pR©ºº:þô§?eǃV�zùI i(€RB � `€”P¤„ %À)¡H 0@J(€R¢ é� ÅÅÅñ�ï|§ÎÒN @*åååÅ®»îšt hVn � `€”p h¨§Í›7׿ùæ› %h�>ݯ|ºá³SC=-Y²¤ÎxÔ¨Q %H‡%K–ÄA”tŒTq h¨§µk×& Uô/MO õ´nݺ¤#¤Šþ¥é¹4ÔÓ!‡Rg|Ï=÷Dÿþý›ôç�w^<ÿüóqÈ!‡ÄwÜÑjŽíøÉÛñ·íÍ7߬s«öx úôéÓdÇr#×?sÒ$�ŸUkyO-%gsçhŽóåêMu\¿¿ ¢åü h ÒúYµ†÷ÕR2ú®J渾¯h)?Z‹4~^­á=µ”ŒIäh­ßWMyÌùóçÇi§�–ºá³SC=uìØ±Î¸ÿþ1`À€&=Gûöí³oMÇvüäŽíøõ×§OŸœhÍõ3! ÒøYµ–÷ÔRr6wŽæ8_®Î‘«ãúýÅΩ¥ü h ÒúYµ†÷ÕR2ú®Jþ¸¾¯vF-åg@k‘ÆÏ«5¼§–’1‰­õû*—¹?Ý¿ðÙ¹4@J(€RB � `€”(H:ðOç�w^ ><ÊÊÊZÕ±?¹c;>�6~&Ô_?«ÖòžZJÎæÎÑçËÕ9ZÊ?3ÒÁ¿Oõ—ÖϪ5¼¯–’ÑwUòÇeçäß§†IãçÕÞSKɘDŽÖú}ÕRþ™Q?y™L&“th ^}õÕ8p`vüÊ+¯Ä€Ll�_³@Sóû ZßW´t¾«rÏ- RB � `€”P¤„ % ’­E×®]cüøñuÆ@Ëå×,ÐÔüþ€ÖÀ÷-�ïªÜËËd2™¤CðÙ¹4@J(€RB � `€”P¤„ %À)¡H 0@J(€RB � `€”(H:´tÕÕÕñ׿þ5æÍ›kÖ¬‰nݺE¿~ýâ°Ã‹¼¼¼¤ãMdÑ¢Eñ“Ÿü$<ðÀøÎw¾Ó¨cTTTÄœ9sbÁ‚±nݺèÑ£G 4(:è &N @š´Ôï  6Äÿ÷Ç¢E‹bãÆ�ѳgÏ2dHpÀ�>&-ËÎôôÁÄÓO?ï¼óNTUUE¯^½âÐC�²²²F³¥r0lCMMMLœ81zöì‡~xL™2%ž}öÙ¸öÚkãˆ#Žˆ¾}ûÆ]wÝ•tL`-ZçŸ~Üpà IGZ¨·Þz+.¸à‚èׯ_ÜqDZvíÚcÓ¦MqÍ5×D÷îÝãØc��ßüæ7ñÌ3ÏÄ~ðƒ8øàƒcÈ�!1cÆŒ¤ 5k©ßAkÖ¬‰K.¹$ºví£G�Ž{î¹'ž|òÉøö·¿ýû÷�ÿóþOüÏÿüOƒ³ÐrìLßAK–,‰³Î:+ºuëçœsN<ôÐC1cÆŒ3fLôîÝ;N<ñÄxã�7tÌ/laíÚµ™#�<2™.]ºdfÍš•ÝW[[›¹ýöÛ3………™ˆÈ|ýë_ÏÔÔÔ$تE‹eÎ?ÿüLAAA&"2ãÇ�O:мõÖ[™ .¸ ûû…�ÿjèïÞ}÷ÝÌÀ�3‘éÝ»w楗^ÊªÊ\wÝu™ˆÈäååe&L˜ÐÄï€Ö¨%Í�;7³÷Þ{g""ó¹Ï}.³hÑ¢ì¾ 6d¾õ­oe""STT”¹å–[”€äílßA3gÎÌtîÜ9™N8!³råÊì¾Õ«WgN=õÔLDd:vì˜yøá‡ëùî[¾6&L˜Ðlm3´ñ…/|!ž}öÙÈËË‹?ýéOqä‘Gf÷çååÅàÁƒ£{÷îñðÃÇ‹/¾7nŒc�=6ÁÔÀÇÞ~ûíø÷ÿ÷øú׿/¾øbÔÖÖFDÄðáÃcøðáɆZ„+VÄ÷¿ÿýøío½zõŠ•+WÆ|�Ýß�ß7¬^½:>ÿùÏÇ믿íÚµ‹Ù³gÇ€²ûóóóãˆ#Žˆªªª˜={v<õÔSѵk×8ôÐC›úmÐ ´ôï … Æ‘G+V¬ˆ=÷Ü3fÏž¥¥¥ÙýEEEq 'ÄÂ… 㥗^ŠG}4>øàèÛ·oÃ? šÕÎø4gΜ8þøãcýúõ1hРxüñÇc×]wÍîo×®]œtÒIñôÓOÇo¼<ð@üñÑ£G�z}-™[@ç|ï{ßËÞ>à´ÓN‹Ïþó[�7f̘µµµ9öØcóæ›o6ùu𯱱ÍA³gÏÎQG•Å‹'I~üã§}ûö«´«ªªÊOúÓTTTdñâÅù¾� ¬æÕ·`XÁóÏ?_ç—Þ™gžÙ`ÛŠŠŠœuÖY¥åsÏ=7555ëµ> aÍù PÞ¶Ûn»tïÞ½´Ü·oß&�sß}÷eìØ±I–œqÆ ¶íСCN9å”$IMMMÎ=÷Ü&m€Ö­%ÏA×]w]žþù$Éæ›ož‘#G68f¯^½rä‘G&IæÍ›—ï~÷»MzüëllsÐ÷¿ÿý¼õÖ[I’wÜ1C† ipÌ=öØ#ûï¿’å÷ ¾âŠ+lÛZ€a?úÑ�RE’¤gÏžùÄ'>±Úö‡~xªªª’,¿<Á/ùËõ^#P¿æúØøTV6íÐø’K.)=Þwß}³Í6Û¬¶ýðáÃK�y䑌7®IÛ |´”9hÙ²eùñ�\Z>ì°ÃÒ®]»F�yë­·æÕW_mTí´ å<Íž=;7ÜpCiùˆ#ŽXíx+�yùå—gΜ9kìÓ’ €áóçÏϽ÷Þ[ZÞÿýSQQ±Ú>[mµUXZ¾í¶ÛÖ[}ÀÚiê0�ñÊ+¯”n“$ŸúÔ§ÖØgÀ€éܹsiÙñM±>æ ‡z(Ó¦M[«1Wü쬶¶6¿úÕ¯ÖØ€Ö­µÌAcÆŒIuuõZ�¹b› ÔÉ‹Z#ŸŽÃž~úé,Y²¤´¼çž{6ªßŠížxâ‰:¿¨€òôøã�×YnìñÃ{ìQz|ï½÷Ö9€ÆXsPSÆìÔ©SvØa‡Òò�wÞÙ¨:h½ZËÔ”1wÝu×lºé¦ ŽÙÚ€áO=õT�å]vÙ¥Qý>úÑ�–×ÖÖæOúS³Ö´<Íqü0wîÜLœ8±Yë ü­�9¨9Æ|ùå—3cÆŒFõ uj-sЊcnµÕVéÖ­ÛÇ«ªªÊN;íTZ~â‰'J· m�Àð�/[�,¿‘xc¬ÜnÒ¤IÍVÐ29~`Ciî9¨(ŠL˜0¡ôüf›m–N�:5iLÿØPÞZÃ4cÆŒL™2e­k\¹íÂ… óúë¯7ºoK#†¼ýöÛu–{öìÙ¨~+·{ñÅ›­& eZñø¡mÛ¶éÒ¥K£ú9~`]5÷4wîÜ,X° ô|�=]‹y `ãÒæ ¦f=«³5ÃfÏž]gy³Í6kT¿•ÛÍœ9³ÙjZžÚÚÚÌ›7¯´Ü±cÇF÷uüÀºXsPS?[ݘ”ŸÖ2™×–ÃVþ¥°â;Wgåv+þÊÏœ9sêÜ ª±ÇõµuüÀÚXsPS?[ݘ”ŸÖ2™×–Ã-ZTgy“M6iT¿•!,\¸°ÙjZž¦;$ŽX7ëc2¯Ð­e2¯-'†tèСÎòÒ¥KÕoåv+�”—¦;Ô×Öñkc}ÌAæ5£µÌAæµåÀð�Í7ß¼Îruuu£ú­Ünåq€òÒÔc‡úÚ:~`m¬�9ȼ@c´–9ȼ¶œ>ЫW¯:Ë+_& !‹/®³Ü½{÷f« hyÚ¶m›.]º”–W>&XǬ‹õ15õ3±Õ� @ùi-s�ym90|`§�vª³<}úôFõ[¹Ý®»îÚl5-ÓŠÇÕÕÕ™;wn£ú9~`]5÷Ô±cÇ:–7ö3±Õ� @yj sP¿~ýRYYÙ`»¦ŒÙ €á ¨³ÍZåo}ÌAÍ1殻={6ª­Sk™ƒVsÆŒ�>Sùµ×^+=>à€Ò¦M›Fõk‰Àð�½÷Þ;[o½uiù¹çžkT¿ &”ïµ×^­úšð@ã|æ3Ÿ©óa@SŽ9ä�TUU5{m”·õ1}ö³Ÿ­Ó¶1cVWWgòäÉ¥åÃ;¬QuÐzµ–9hÅ1‹¢È_ÿú×5ŽùÚk¯eöìÙ ŽÙÚ€ámÚ´ÉW¾ò•ÒòŸþô§5öY¸pa�_F+öÊW—.]2lذÒrcަL™Rç’bŽhŠõ1í¾ûîÙm·ÝÖj̧žz*555 Ž @ùi-sÐСCÓµk×µó‰'ž(=n×®]Ž<òÈ5öiÉÀ°‚¯}ík©¨¨H’¼þúëyþùçWÛþ·¿ýmézô�:uÊÈ‘#×{�@ËpÚi§•?öØc™5kÖjÛ�3¦ô¸_¿~u>8€µ±>æ Ǽï¾ûê|°¾¦1?ýéOgàÀ�k¬€Ö¯5ÌA›l²IN:é¤Òò¯ýëÕŽ·ò˜#FŒ¨ ·F`XÁ.»ì’SO=µ´|íµ×®¶ý5×\Sz|ÁdóÍ7_oµëÇ{ï½WgùÃò\“C9$C‡M’ÔÔÔäúë¯o°íû￟o¼±´|É%—¤²Ò!9ÀÆ®%ÍA#GŽ,��5sæÌÜqÇ Ž9kÖ¬Œ=:Éò«ê]|ñÅ�ª€–£Üç o}ë[éÕ«W’dâĉ«= øå—_ÎÿøÇ$Éæ›ož .¸ Á¶­…£MXÉ¥—^š~ýú%In¹å–:צ_ѨQ£2~üø$ɧ>õ©|ãßø—Õ¬YSÿ€6>÷Þ{o�å?ýéO)Š¢Q}ö³Ÿ¥sçÎI’Ë.»,S§N­·Ýå—_ž)S¦$Y~y²áÇ7½`ÊFKšƒÚ¶m›[n¹%›nºi’äüóϯs/Ä�wÞy™;wn’ä?þã?2hРFÕ @ËQîsЖ[n™Ÿÿüç¥ÀùßøF–,Y²J»ÚÚÚ|ýë_ϲeË’$?ýéO³ýöÛ×;f«R«˜6mZ±çž{IŠ®]»�=öX�õwÞyg±é¦›IŠ!C†sæÌÙ@• ¹à‚ Š$¥¯ýöÛ¯¨­­ÝÐe-@MMM1iÒ¤âw¿û]qúé§mÚ´©ówC’âˆ#Ž(î¾ûîâ¹çž+fÍšµÚñþö·¿Ûo¿}‘¤ØqÇ‹‰'–Ö-[¶¬¸êª«ŠŠŠŠ"IqÜqÇK–,Yß/€ª5ÌAãÇ�/ºtéR$) Tüýï/­«®®.þýßÿ½Tëyç�çX •ØXç {î¹§èСC‘¤6lX1}úôÒº¹sçÇw\‘¤¨ªª*®½öÚ5Ž×ZTE#ã|ØÈ,\¸0ßûÞ÷rýõ×gÁ‚Ùm·Ý²í¶Ûæ•W^Éÿþïÿ¦sçÎ9çœsrî¹ç¦M›6º\Øè-[¶,/½ôRÞ~ûí<øàƒ¹þúëKÿµõ¡#Ž8"Ç{lúôé“í¶Û.[o½õªØ�fΜ¹V÷sºì²ËrÎ9ç¬qÌóÎ;/·Ýv[–.]š½÷Þ;ݺuË /¼�7Þx#½{÷Î…^Xç>Tl|ZË4uêÔœ{î¹¹çž{RUU•½÷Þ;�:uÊsÏ=—éÓ§g—]vÉ%—\’Ïþó�€ kcžƒ&Mš”o~ó›7n\:vì˜}öÙ'UUUyæ™g2{öìì³Ï>¹âŠ+2xðàF�ÙÒ €a -Z”'žx"ûÛß²`Á‚l±Å0`@þßÿûiÛ¶í†.øÀúø`mÍ™3'�?þx^{íµ,^¼8[mµUöØc�ì»ï¾îù Àzµ>æ éÓ§ç‰'žÈ”)S²téÒtíÚ5{ï½wöØc�f®€Ö¬µÌAo¼ñFÆ�Ÿ7ß|3µµµéÙ³g>ñ‰Odç�wnò˜-• Lø÷c€2!(`€2!(`€2!(`€2!(`€2!(`€2!(`€2!(`€2!(`€2!(`€2!(`€2!(`€2!(`€2!ª*yTQIDAT(` ÿüç?ó‘�|$wß}÷†.€u 2zôè¼õÖ[Y¶lÙ†.€u (C3gÎLÇŽSQQ±^¿n»í¶ ýRi&£G�Îæ›ožaÆջÞ>Ð:Tmèh~÷ÜsO-Z”$éÑ£GFŽ™Áƒ§OŸ>騱c*+—ÿ?ðû￟³Ï>;<ð@©ïyç�—‘#G¦}ûöI’¢(R]]�wß}7�<òH.»ì²,X° 46­ßßÿþ÷üùÏÎW¾ò•ÒÏ}eö)€ÖA P†ÆŒ“$ù⿘_þò—Ùl³Íl;þüÒã:ä‚ .¨7ÜqÇ3xðà|üãÏ¡‡š$Ùe—]š¹r6„Ñ£G'IŽ9æ˜ÛاZ‡Š¢(Š ]ÍgæÌ™éÙ³g>øà<øàƒ©¨¨h°mMMM¶ÜrË,\¸0Irà�fܸqkÜÆN;í”iÓ¦eþüù«ŸÖaÀ€™>}zÞyç�TU­ú¿âö)€ÖÃÀeæž{îIUUU~þóŸ¯1H›8qb)¨K’O~ò“�ÚFß¾}³Ùf› êÊÀ¤I“òâ‹/æÔSO­7üMìS­Iå†.€æ5f̘uÔQÙf›mÖØöÉ'Ÿ¬³Üذ®( —ê-£F�J’Œ1¢Á6ö)€ÖÃÀedæÌ™yôÑGuÉÝ$?~|éqeee Ô¨~ÿüç?³ß~û5©FZŽ¢(rÇwdÛm·m0¨µO´.Î(#÷ÜsOzõê•Áƒ7ªýŠgk0 [l±E£úýãÿp¶fxòÉ'óÆoäè£�nðÒËö)€ÖE PFÆŒ“/}éK�º�ê›o¾™7ß|³´ÜØKõΞ=;ï½÷^vÞyç&×IË0zôè$É1ÇÓ`û@ë"(#³fÍÊ—¿üåFµmê½Z.\˜]wÝUX×ÊÕÔÔä®»îÊ®»îšÝwß½Ávö)€ÖÅ=€ÊÈsÏ=×è¶+Þ«5i|X×»wï¼ôÒKkU-ϸqãòÏþ3§Ÿ~újÛÙ§Zgl¤V<[³W¯^éӧφ+†¹Q£F%YýåŸ×–} `Ãl„.\˜‰'––{¦&塺º:÷Þ{oöÙgŸôëׯYÆ´O´ `€�Ð_þò—ÔÔÔ”–…u—ßþö·™7o^³žýkŸhÀ¡¦Þ«•ò0zôèTVV樣Žj¶1íS-ƒ`#´â½Z;tè�Ýwß}VÿҼyó2vìØ|êSŸJ¯^½šm\û@ËPµ¡ à_«(Š<õÔS¥å}÷Ý7UUåwxX[[›Y³fÕùúÜç>·¡ËÚàî¾ûîTWWgĈÍ6æÆ²O´ŽÆ62/½ôRæÌ™SZ.×Kõ>þøãùô§?]ç¹¢(6P5-ǨQ£²É&›äˆ#Žh¶17–}  5p h€�ÌŠ—êMÊ7¬;à€R]]�_ýêWº”cúôéyøá‡3dÈ�lµÕVÍ6îÆ²O´`€�ÌøñãK�+++ó‰O|bV³~µk×.Gyä†.£Å3fL–-[–cŽ9¦YÇݘö)€–N °‘YñlÍþýûg‹-¶Ø€Õ¬îEûF��Ž;6û½�7¶}  %lDf̘‘W_}µ´ìR½�©S§æ©§žÊᇞ:4Û¸ö)€–E °q¯Ö�×èÑ£“$#FŒhÖqíS-‹ë`lDV¼Wk²vaÝüùóóì³Ïæ½÷ÞËìÙ³3{öìœ|òÉÙb‹-òì³Ïæ©§žJuuuvÜqÇrÈ!iß¾ýjÇ›ûÙϦk×®�®çùçŸÏ³Ï>›™3g¦gÏžÙÿýÓ§OŸF÷_ëRë;3±cÇfúôéÙvÛm3tèÐl½õÖ™5kVÆŽ›·ß~;Æ Ë€êô[²dIz衼òÊ+©¬¬Ìn»í–ý÷ß?mÚ´iÒk5jT:wîœC9¤Iý².ûÔÒ¥K3qâÄ̘1£ôuúé§§]»v¥ïÏ[o½•m¶Ù&C‡M—.]šµöÆlÿ�wÞÉG>ò‘vØaéÔ©S©ïÂ… óÀä�7ÞH—.]2dÈ�l³Í6«l£¹ß7kâ `€�ÈŠgköìÙ3Ûo¿}£û¾üòË9þøã3|øðœtÒI9÷Üsó׿þ5‡zhnºé¦têÔ)mڴɹ瞛>}úäÖ[o­wœ©S§æ€ÈøÃ,\¸0Ûn»müñôîÝ;ßüæ7³téÒÕÖ1eÊ”|æ3ŸÉᇞ™3gf»í¶ËìÙ³sÚi§eèС™={v£^Ï_þò—TUU¥¢¢¢ôÕ£G�L˜0¡ÙjýÁ~��}ìc™>}zvØa‡Œ?>Ûm·]N>ùä :4Ó¦MË}÷Ý—C=´N¿1cÆd‡vȨQ£Ò½{÷E‘ã�?>»í¶[^|ñÅF½¾Mž<9“'OÎðáÃÓ¶mÛµî¿:ë²O½óÎ;Ùÿý3tèÐwÜq9çœs²xñâŒ5*Ç|/^œÎ�;çòË/OŸ>}2vìØ:ý§N�šþýû§cÇŽ¥Ÿá£�>ZZÿþûïgÀ€Ùb‹-Jëo¹å–µÚþ–[n™K.¹$Ûn»m{ì±$Éþð‡|þóŸÏŒ3Ò½{÷Üzë­éÛ·on¾ùæU^㺾o®¿þúôîÝ»Î~ºùæ›ç;ßùN©Í´iÓÒ©S§Òúªªª{ì±�þ9e¦`£°dÉ’¢]»vE’"I1|øð&�ó—¿ü¥4Fÿþý‹—^z©Îúyóæ,’?ùÉOVé?xðà¢k×®Åþð‡:Ï_yå•E’âè£�npÛ“'O.ºuëVì°ÃÅ{ï½WgÝqÇW$)N?ýôUú}XïÊ.ºè¢"IqÐA&LhÖZ/¹ä’"Iqà 7Ôyþ¨£Ž*’¿ûÝ(Šÿþïÿ.Î8ãŒÒúk¯½¶¨¨¨(.¼ðÂ:ýÞ}÷Ý¢{÷îE÷îÝ‹3f4¸ÝúœwÞyE’âÑG]«~kÒœûTeee‘¤¸ýöÛ‹SO=µ¨­­-­õÕW‹$EçÎ�‹E‹­Òÿ­·Þ*Ú¶m[$)yä‘UÖÏ›7¯èÚµk‘¤¸ùæ››¼ý=z&L(¾ð…/ï¿ÿ~�ñ;vìX´k×®xç�w|�ëò¾¹ùæ›Kýßzë­UÖ¿÷Þ{E�=ŠÝwß½˜2eJ½50ÀFâÉ'Ÿ,HIŠ+¯¼²Éc}8ÆC=Tïúgžy¦HR´mÛ¶˜8qb�uíÛ·/’‡vX�ç—-[V|ä#)’ãÇ�_eÌ%K–”²x`•õ›m¶Y‘¤6lXƒõ®hÞ¼yÅÇ>ö±â?ÿó?ë„}ÍQëœ9sJ}gÍšUgÝo~ó›"I±ï¾û®ÒoÒ¤IEÛ¶m‹.]º‹/^eý‡¡ò9çœSo½ Ù~ûí‹Þ½{7ø:›ª9÷©^½zIŠAƒÕÕÕ«¬ß~ûí‹$ÅÃ?\oÿõÀE±<Ìo(^›í÷ëׯÞþÀ,’·ÜrKƒ¯q]Þ7µµµEß¾}‹$ÅwÜQoÿ�wÞ¹˜8O?ýtî»ï¾,Z´(:tH²<¨½êª«êíóa›yóæ­²îöÛoO’ì½÷ÞiÓ¦Í*ëO8ᄜp k¬ëÍ7ßÌ!‡’SN9%§œrÊjÛ6µÖ $I½Aâ‡ÁnQyÿý÷KÏ/Z´(<ð@’d×]w­w›ýúõK’¼ñÆ™?~6ß|óÕÖŸ$£F�J’Œ1b�mò¯Ü§öØc�zŸßd“M’d�÷]^WkÚþšÖ¯ø3mІÞ7I2räÈ\xá…7n\¦L™Rç~Ë7ÝtSN:é¤uÚ6PÀedéÒ¥Ùn»íJäê\qŹâŠ+êýéO§¶¶6Ï>ûl�u=ôP’äì³Ï®óü¢E‹J�/»ì²<ÿüóõ~½ûî»™6mZºvíºÆ×ûðÃgúôé9æ˜cÖØ¶!-iŸÚ4ô¾ùÐÉ'Ÿœ$¹å–[²lÙ²$Ëϼ>üðÃë=ãØø8€õbÅ{µ~xÖîôéÓ3xðà¼úê«9ñÄsÝuו.�»&Ûl³M^ýõ¼÷Þ{Mª§]»v¹ë®»²çž{fÓM7Í¡‡šoûÛ6lXz÷î½Jûu©5Y~ùè�æÌ3Ï̽÷Þ›=zäÑGÍ5×\“/}éK9÷Üsë´_ñÌæÆÜG¶1F��$ëó¯UßûfEC† IïÞ½óÖ[oåw¿û]† –›nºi�ÿÌl<œ Àzñä“O&I˜îÝ»'I.¼ð¼úê«ùèG?šn¸a��êË/¿œüãI’8 I2iÒ¤Õö©ï¬É$Ùl³ÍJ—A2dHŽ?þøÌ›7/_ýêWëm¿.µ&É­·ÞšQ£FeèС>|x˜‹/¾8×]w]ÆŒ“Êʺ‡äÝ»wÏÀ�“$¯½öÚj·Õ˜|É’%¹û×^{e§�vZcûr·b°Ú’Õ÷¾YQ›6m2räÈ$ËïûûÒK/¥¶¶¶tÙq0M¶téÒzŸŸ={vxà�$ÉgœQzþñÇO’tÐAuî‹û¡•Cº;î¸#?üp’ä”SNIEEE^xá…üýï¯w»Ë–-Ë~ûí×`]+ºòÊ+Ó«W¯Œ;6·ß~û*ë×¥Ödùå— � /¼0ãÇ�Ï /¼�?þñ�1bDƒ5}ø½úõ¯�šššzÛE‘ƒ:¨Î%£ë3vìØÌ�;w£9ûwÓM7M’ÔÖÖ®²nÖ¬Y™2eÊ¿º¤­íûfe'žxb*++óàƒ梋.*] °.¾øâzŸÿîw¿› dÈ�!9ñÄKÏwëÖ-I2cÆŒUú¼öÚkyôÑG“ü_ˆW[[›¶mÛ&I>þñ�笳ÎJmmmÎ?ÿüz·{óÍ7gÈ�!¥>«³å–[æúë¯O²ü~¼+ºëRk²<¨½òÊ+ë $râ‰'æÐCͻロ;Þ67Þxc<ðÀtèÐaµc�5*•••9ú製ýÖ¬ÿþI’™3g®²îÊ+¯ÌÖ[o�äÿî%½!­íûfeÛm·]>øàÔÔÔä·¿ýmŽ:ê¨õU*Ð €h²Y³få´ÓNËܹs“$ÕÕÕ¹à‚ ríµ×æ _øBÆŒ“ŠŠŠRû /¼0›nºiÆŒSº?m’<÷Üs9ꨣrÍ5×$Iž}öÙ$Ë/÷ÿùÏç´ÓNË�wÞY �ßÿý\}õÕ;vlƒâ‡æÏŸŸ|0ƒÎ6Ûl³Ú¶-ÁìÙ³Kßû×_}•õÕÕÕ¥û"7tyìo}ë[i×®]~ñ‹_dñâÅI–‡ð·ß~{Š¢È®»îš$¹âŠ+ò£ý(�<òH“¶_ßúeË–eêÔ©«­oEkû¾©ÏI'�”dùý�;vì¸Æm�Š¢(Š ]­Ë‡áÔ”)SòÈ#�äg?ûY-Z”êêêôíÛ7§žzjþíßþ­Þëå—_ÎO~ò“Œ7.Ë–-K·nÝÒ¯_¿üçþgvÚi§\z饹ôÒKÓ¿ÿœuÖY>|ø*cüþ÷¿Ï5×\“É“'§cÇŽiß¾}¾øÅ/æ›ßüfÚµk—$yæ™grì±ÇfÊ”)¥Kî¶mÛ6}úôɨQ£²÷Þ{gŸ}öÉ3ÏúèœvÚi9ä�Cò /¤K—.éÒ¥K¾øÅ/æˆ#ŽhÒö·Ùf›Œ92?øÁòÙÏ~6&L¨ósîÒ¥K† –›o¾¹N}ëò¾YÙÒ¥KÓ­[·üñ�ÌÞ{ï½–ßy œ €Xk+Y}úôÙ°Å´@·Þzk¾úÕ¯æÇ?þqFŽ™Í6Û,IRSS“¹sçfêÔ©?~|.¿üòL›6-&LÈ{ìÑlÛ?ôÐC3nܸ¼ûK³á5çûfêÔ©9âˆ#Jg |hõÿ2 ¬•Y³få«_ýjŽ?þøœqÆuÖUUU¥sçÎéܹsöÚk¯ì¿ÿþÙc�=òÀ4[ö±�¥G�¹í¶ÛR]]½Ú¶7ÝtS’dÈ�!ͶýšššôíÛ7‡~x³�Ɇ3vìØ¼ð ¹îºëR[[›$¹îºë2bĈl±Å¸: %°V^yå•ÒãÉ“'oÀJZ¦öíÛçþçR]]�½öÚ+wÞyg,XPZ_[[› &ä¸ãŽË÷¾÷½ü×ýW>÷¹Ï5ÛöÏ<ó̼þúë騱c³�ɺkêûfðàÁ©¬¬Ìù矟ÊÊÊÜÿý¹ãŽ;ò�o|c}” ”�Š¢(Š ]-ß3Ï<“cŽ9&S§NMMMM’¤¢¢"Ûn»m®¾úêf 1ËAMMMî¿ÿþüæ7¿ÉĉSYY™ÊÊÊ,Y²$}úôÉ!‡’c�=6ݺuÛÐ¥²5ÇûæÖ[oÍ•W^™¥K—f÷ÝwÏÕW_íþÎ@ƒÀeÂ% Ê„ 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€Ê„ L€Ê„ L€Ê„ L€Ê„ L€Ê„ L€Ê„ L€Ê„ L€Ê„ L€Ê„ L€Ê„ L€Ê„ L€Ê„ L€Ê„ L€ÊÄÿš L/˜ÑÛIEND®B`‚unyt-3.2.0/paper/binary_same_units.png000066400000000000000000002335041526544257300200670ustar00rootroot00000000000000‰PNG  IHDR€ ¿‘^ÙsBIT|dˆ pHYs.#.#x¥?v9tEXtSoftwarematplotlib version 2.2.2, http://matplotlib.org/†ŸÔ IDATxœìÝwxÕûÿÿ{C„jh�ФE:Ò"E±Ò,Ô�Š"EÄ‚T°Kô-E@A©Ò¤7�Òj€„�~ÿà—ýevv7»),YŸ�ëÚëbfÏœ¹wwf¢ûÚsÆ¢ª*€|ÏÇÓr0x `ðÀà%€ÀK€— /A ^‚¼0x `ðÀà%€ÀK€— /A ^‚¼0x `ðÀà%€ÀK€— /A ^‚¼0x `ðÀà%€àÕ’““å…^�%JHµjÕä§Ÿ~òtIÜ0zôh)S¦ŒT¨PA¦OŸîérä3ëׯ—úõëKÑ¢E¥{÷îëé’€}ºDFFJzzº§K€,-]ºT&MšÄ5 ù0òT�r´ýwÜ!ݺu3­�ŒŒÌQ¿n­í۷˰aÃ<]¸äßÿ•¾}û ç ?"Àm¯}ûö¦uQQQ¨@vœ9sFyäIJJòt)�¥¸¸8éÔ©“\¾|ÙÓ¥ÙB €Û^ùòåMëbcc=P w]¸pA~øa9s挧K€,%$$È£�>*{÷îõt)@¶ùzº +öF –(Q"Ûý¥¥¥¹<5u\\œ,Z´HÚ·o/åÊ•3<·ÿ~Ù°aƒ\ºtIJ—.-mÛ¶•5jd»¦Ý»wËž={äÂ… ’šš*%K–”ZµjI‹-ÄÏÏ/[ýþý÷ß"+V´®;sæŒ,_¾\bcc¥Q£FvGXçª*;wî”þùGÎ�;'‰‰‰"aaaÒªU+Óý£Ý±aÃñññ‘–-[ÖÿóÏ?²cÇ9uê”-ZTjÖ¬)­[·ÎÑtçQQQ²cÇ‰ŽŽ–ÄÄD©P¡‚„‡‡Kýúõ³ÕßÅ‹åСCa]—’’"Ë–-“C‡IÙ²e¥[·nR¤H§ý=zTþþûo9{ö¬$$$HñâÅ¥R¥JÒºuk—îï}ðàAéÖ­›‰��??? “{î¹GJ–,™­ºóÚáÇeóæÍ#©©©RºtiiÖ¬™Ô«W/[ý%''ËŽ;dß¾}réÒ%)Uª”Ô«WO7n,>>Ùû}ûÆ�%!!Aî»ï>Ãú¤¤$Y·n�;vL.]º$åÊ•“ûï¿_*T¨à´¿£G�ʦM›äÌ™3R¸paiР�DDDˆÅbÉV}ª*Û·o—ÇKtt´øùùI… ¤Y³fš­>oG§OŸ–eË–ÉsÏ=gXŸžž.6l�;vHbb¢„††Ê< ¥J•Êö¾œ]CΜ9#={ö”�7f»ÿ ¹}nQ Í›7OEÄðhÓ¦�[}Lš4ÉÔÇÀ�ÝêãСC:fÌ­]»¶®Y³ÆiÛ¤¤$]¾|¹>ùä“Z¨P!Ã6›6mÒ–-[šjíÞ½»^½zÕ庮\¹¢o¾ù¦–-[ÖÚG±bÅÔ××׺\´hQ}ç�w411Ñ¥>/_¾¬Ÿ~ú©6jÔÈTû‡~¨þþþ†š‡ ¦¿üò‹Ý×cûp¸ß��»Û<ðÀ.¿®ŠŽŽÖ_|QË”)£"¢¾¾¾Z´hQÃ~‹)¢½zõÒ¨¨(—ûý÷ßõ½÷ÞÓ5j¨ˆèèÑ£­ÏýùçŸz÷ÝwÛ}�åÊ•Ó/¾øÂí×ñÕW_iýúõ­Ÿs@@€¡ßºuëêwß}çR_iiiºbÅ }üñÇ5 @ûöík}nÛ¶mZµjUCßU«Vµ{¬¦¦¦ê矮áááÖ¶AAAh].P €öíÛWÏœ9ã°ž… jÁ‚]:®DDç͛簯“'OêĉµI“&:þ|—Þ� G�Õ¾}ûjpp°ŠˆúûûkáÂ… û.Q¢„¾ð ãRŸiiiºvíZ0`€µßÌõ8p@zè!»¯³]»vNß7ÛýLœ8QK—.m¸>dœÃ���úÜsÏéôéÓµfÍšn½/y寿þÒfÍšYë Ô"EŠX—[µj¥Ÿþ¹6iÒ$Ëk±êÍs}ðàÁÖ÷YD488X}||¬Ë!!!:mÚ4MOOw©Æ'NÎóÌçÊ¥K—tðàÁZ¬X1Ógççç§£F�²Ûço¿ý¦-Z´°û™×¯__:äRmtôèÑZ±bEµX,Z¼xq-P €µO½÷Þ{uûöínõëÌsÏ=çðü´÷w;66Öé9]¹re§û‹��Õùóçë½÷Þký<3ûòË/µråʦ~ýýýõ�wÞqëµÝ¸qCúé'íÞ½»>ôÐCvÛlܸQK”(áò5+ó߇Ìrû²ƒy*7`{a«+_šFEEé¸qã¬[VÛþøã�úä“OÚýâ?c›±cÇ‚G_”§¥¥eY߯�µ\¹r*"Z°`Aýøã�õÊ•+ªzóËÿyóæBÍöíÛkBB‚ݾnܸ¡?ÿü³vëÖÍ"fÔþÚk¯Ù­×××WÏ�;§“'OÖÐÐP»mÂÂÂtĈ:mÚ4‡¯ç³Ï>Ó~ýú©Åb±n׸qc]ºti–ï…;¦OŸ®AAA*"Ú¶m[ýóÏ?­ï÷Å‹uÚ´iZªT)CXðÁ8ì/**J'L˜ Íš53ÔžñzzºŽ92ËÏ]D´W¯^.}ö.\жmÛªˆèÓO?m©·oß®íÚµ3ôÛ»woMII±Û×Î�;õµ×^Ó *¶Éµ¶lÙb <3¶¡õ™3g !ÖÀ�õĉªz3Œ\½zµÖªUËú|¥J•ôèÑ£vëZµj•Μ9SgΜi Uúôéc}.ãa��={V§N�ª-[¶4|.΂âÌÒÓÓõ­·ÞR???íÖ­›n߾ݞ>}Zß{ï=ë�nÛ¶M«T©¢���:~üxëçžœœ¬K–,Ѱ°0k¿~~~N¯ËîX³f�¾ýöÛZ³fM—þn'%%éÔ©Sõ­·ÞÒæÍ››¶±wL^»vMgΜ©÷ß¿õÜÌüÈh“qì;{¼õÖ[N_ORR’.Y²DŸzê)Cëè¿A¶nÝj½eü8 ãÑ¡CÓ5kÛ¶m¦>rû²‹y*§ð·ß~kÚ¾K—.N·ùù矵iÓ¦¿4vô…ëèÑ£uΜ9ÚºukÓ6«W¯Ö¨ˆhxx¸¾ûî»:þ|;v¬ÝÐôóÏ?wZã®]» ÁÓܹsí¶ûã�? ý¾øâ‹¦6;vìÐúõëkDD„¡Ï̯wÖ¬Y*"Ú¨Q#C8šñ¸xñ¢ªªž;wNË—/ozÞÞÝŽtêÔIEnŽ0Í*är×�!C¬5õë×ÏaØ­wÞy§á5üßÿýŸ©ýµk×´nݺZ½zuèëŒÇèÑ£uРA*"ZºtiíÕ«—¾ñÆúÿ÷¦À5ã1dȧ¯áܹsÖѵŽF�%&&jƒ ýÚõþÐCéÝwßm÷ìÛ·¯ž×§O»µÅÄÄhÉ’%­í5jä0œÎ`;ŠÏYȺvíZmÛ¶­ÃÀÝ•8))I{ì1ë6ŽFmªÞœÀö³3fŒÝ¶“&MÒ¹sçj—.]ìÖõþû靖h•*Uô­·ÞÒyóæéøñã ïkÆãÍ7ßtú&Ožlmû¿ÿýÏn›ÔÔTíܹ³Ã°íV:uê”uÄwçÎ�¶[°`�Ká×o¿ýf8V¯^m·Ýœ9s ïëäÉ“í¶{úé§µC‡vσ¾}ûêªU«4((H}||4""Bßyç�;w®N˜0Á¸ŠÜ ]�;¦111Ú AõõõÕ.]ºè„ ôË/¿ÔÉ“'Û D_~ùå,ßÇ¿þúË: ÄÊ•+í¶‰ŠŠ2\ë-‹þðÃYöíªøøxSîÊßí{î¹Ç°�½còÀ�úñÇëôéÓí^·bccµiÓ¦j±Xô¾ûîÓ)S¦è¼yótèС¦|}}õàÁƒ¦}\»vMû÷ïo5îîkiÓ¦�éoAVrûr‚y*»pzzºÎ˜1Ã4]qûöí³ ÿþûoݹs§8p@l7u&&&Æ´MDD„èÌ™3Mí/]º¤Õ«W7´oÔ¨‘Ó}ØŽðÌeiOæ0ÛÏÏOÏ�;gx>s¨¹bÅ Sí“'OÖbÅŠéâÅ‹Uõæ(ÙÌûoÒ¤‰¡¿3f˜úÈØÖ#DgÏžíò6®?~¼µž:uêhrr²ÓöÑÑѦi©{ª7CùÌ#³DD+T¨ ���:iÒ$ÓÜ))):vìXÓ¨a‹Å¢ëÖ­³»�ôôtë{×]w9-¼páBÓçðã�?ÚdlŸ��`šâù©§žÒæÍ›kÿþý­µOœ8Ѫ(P@wíÚeíë�wÞ1lïlªeÛÑä?ÿü³Ã¶ªîÀû÷ï×íÛ·ë¡C‡¬�ª«Ûf8p µý}÷Ý—eûýû÷›Â%g¯?99Ù4åxDD„úøøè˜1cL�xbb¢i&ƒ2eÊhjjªÃ}d„ÒAAAN�“ .h‘"E<¿ùæ›Ö×–Uùøã�;½§¥¥iµjÕ¬ý(PÀá{�ššj˜B¿T©RN¯ iii¦ùÔ«WOƒ‚‚ô±ÇÓÇ›¶9þ¼u¶†ŒÇ3Ï<£uêÔÑÚµkë�LÛ¤§§›F;ý±Äùóç­Ó}¿úê«Û©ª:ÔÐwÁ‚õäÉ“N·qGÆžÜù»=qâÄ,àÌ~øá»k+V¬h÷ºmÛ6Ó¼òÊ+¦vñññºzõjýçŸtÕªU¦¿yçæ9ä0ò”½ø®»îÒ#GއÒmÛ¶éÏ?ÿ¬#GŽ4|ùŸ¨~ûí·.ßã1Ãõë×M¡ž+_¸ÚNY¬6lpØÞÞHåŒQµ¶L¡¡³¾mCìÈÈH‡mÓÒÒLAV`` .X°ÀÐ.55U¿ûî;ýøã�MuÞ¸qÃ4Åm·nÝî3³½{÷ZC«Üý»yófÃçèhD¤­¯¾úÊð:|||tíÚµÛg¾ïmF¨²iÓ&§û7nœé³oÚ´©Ý¶Ó§Owù5$%%™Bƺuë:lo{ÿÎÀÀ@íСƒéœÙ¹s§Ž?^7oÞlXŸùž•"¢ï½÷žÃ}ýôÓO†¶/¼ð‚Ó×âNlË6xËj[ÛÚþþûo—ö3vìXÓgo/ Ì�q�íŒG@@€ÓÏtãÆ�¦ãÄÑý[�=jmSºté,k6l˜ÇàˆˆkÍË–-sÚ6ã:áèZ|ðàAÓ{uúôi‡ýuìØÑÐvëÖ­N÷oïœ9r¤Óm>øàÓ6UªTÑ .8ÜæÌ™3¦kýúõë¶Ïµîçç§ÑÑÑNëÙ¼y³©žAƒ9ÝÆo¿ý¶Û¡éܹsÝ €÷ìÙcz õêÕÓ³gÏ:ÜæÙgŸ5´ϲ®7Þxã–À¹y9å#À-¶uëV©Q£†áQ«V-iÚ´©tíÚU>øà‰ŠŠ‘‡zH¶nÝ*ÿý·<ùä“b±XÜÚW¡B…¤téÒn×X¸paÃò¸qã¤U«VÛ?üðæuûöí³Û611QTÕ°.::Úaß%J”0,Ÿ={Öa[Sû¶mÛJ�= ë ( O<ñ„ :TJ–,ix.00P† bX·xñb9uê”Ãýføá‡DD¤k×®”e{W�5JÒÒÒDD¤X±bÒ±cG—¶ëÝ»·Ô«WϺœžž.o¿ý¶ÃöÅ‹7mߢE §û1b„Üu×]†uÛ¶m“�;wÖ¥¤¤È{ï½'""AAAY¾Ó¾÷ïß/°Û¾T©R†åÔÔT™5k–éœiР� >\š5kfXãÆ Ãrn“9U¹re—Ûªªáó­U«–4jÔÈ¥m‡n¸VܸqÃúyÙc{�x饗¤k×®Û·hÑB‚ƒƒ ë]#Ο?oý÷… äðáÃNkïׯŸÓço…Ì5oذÁiÛððpiÒ¤‰Ãçm�E‘Ü=mÿ&”+WNÞÿ}§Û´oßÞ´nêÔ©¦ó.³òåËKݺu ëöïßo·íž={ä§Ÿ~‘6mÚHÙ²e�ÖÓ¤IÓ5ö§Ÿ~2ýmÉ.÷¿.r÷ï³í9$"²`Á)W®œÃmlÿÖ:tHRSS�îÇ�kHNäæ9ä0nk¿þú«´lÙR:vì(‹/ÎVnocûEv`` ÓöÁÁÁ¦ââÅ‹vÛ/^Ü&”)SFZ·nír-ñññNkñõõ5,wêÔÉi{{^xá×󩩩2mÚ´,·Ë€ûôéãö>Ù³g�¬\¹ÒºÜ¸qcñ÷÷wyû¾}û–×­['Û¶m³ÛÖ6ôpDd°X,vCå… –úé'‰‰‰‘›a +¯Á^x¹uëV»mm?÷† JÅŠ³ÜG†Ì?ðññqfº{Læ„;çïÒ¥KåàÁƒÖå–-[ºµŸÇܰî»ï¾s<º{�°X,RµjUÃ:G׈bÅŠ–‡ æ4Ø«[·®T«VÍéþóZæšg̘!ÇŽsÚÞÙu)<<\j×®m]®U«–„‡‡;lïîñX @ò+çbõêÕMë옶l?ó'NØm÷é§ŸZÿݶmÛ,û-P €áÇ-""çÎ�“ÿý7Ëmoöã¬Î#Ûã<55U®^½êt›ìü7@väæ9ä0n¹6mÚˆÞ¼‰á‘’’"Ç�—~øAzöìi ´RSSeÙ²eòÈ#�HË–-åÈ‘#~öÙ†ׯ_wØvÑ¢Eòá‡ÊÛo¿-Û·o—2eʸ¼Ÿ¬F;Ù*T¨�[íEn†ÔÏ>û¬aÝçŸîô5mݺU¢¢¢¤bÅŠrÏ=÷¸½OG–/_nX®Y³¦[ÛÛŽ~ùí·ßrT“­|Ð4zØ6¨Í‡††ÊéÓ§³|Ø]èêñïîç>räHùòË/åµ×^“ 6¸õº{Læ•eË––sz¬¤¦¦Êü‘ãº2¸z�¨U«–áÇ¿üò‹ôîÝÛéù·jÕªÜ)2›Úµkgý÷Õ«W¥}ûö¦Qð™�5ÊaÐéçç'k×®•Ñ£GË{ï½'7nÌ2Ì,/ŽÇ¢E‹æÊvqqqvÛ-Z´Èúï2eʸt}¨P¡‚©ŸÛõïcn±º;;/n¥Ü<€œ"ÀmÃ××W¤gÏžòÃ?Èþýû _¨Šˆüõ×_Ò¤IùóÏ?=S¤¶£™ÒÓÓ¶ ’#FÈØ±c%44Ôn›+W®ÈŒ3äûï¿7¬Ï­)>³òòË/‹ŸŸŸ¡ž¹sç:lŸQçSO=•­éCY³f�aÙvtdV*V¬(!!!†u¹}üøúúš¦ˆýçŸ Ë›6m²þ{Þ¼yšåãÕW_5íëÊ•+¹Z{‹Å"}úô‘ &8œö:%%E.\(ï¾û®aý­:&³’Óc¥aƦc77�W¯>>>2|øpúo¿ýVj×®mY~»2dˆaJâãÇ�Ë]wÝ%Æ ËÖñÒ¥K˘1cäÍ7ß4Í®�!&&F&L˜ ¿ÿþ»a}^�¶£†³»]BB‚©ÍÑ£G Ó0À¥ëCƔљåÕõávaoÔ°³¿µ·RnŸ@NøfÝðŒ;î¸CV®\)ýû÷—o¾ùƺþÚµkÒ¹sgÙ´i“ÓiAó«mÛ¶ÉŒ3dÁ‚R³fM Éò y!44Tž|òIùòË/­ë>ùä4h�)$KOO—ÈÈHÉÝéŸEÄz?è îÞgRäæ}oW¬Xa]v4 kN„‡‡Ë�?þh]Ž��µþûâÅ‹ræÌëòOùd¶öS©R¥ì™M'Ož”Ï>ûL¾øâ ñõõ5Ý?øva;媻ÇJPP�Ô¨QÃÞçűâŠ!C†È¯¿þj˜þüÔ©SÒµkWéСƒL›6MªT©â‘Úì©P¡‚Ìœ9Ópþ§¦¦ÊäÉ“eÁ‚òÉ'Ÿ8�VÜ«V­’™3gÊ’%K¤Y³fR¦L™<½un²Vîڵ˰üÁÈ�wÞ™­þ6l˜­í�s·ò²B €Ûš¯¯¯Ìš5KÖ®]+§N�²®�‹‹“AƒÉÚµk=X]îIOO—… ʤI“dëÖ­òØc�ɺuë¤I“&2fÌY¿~½Gêzíµ×䫯¾²Ž¨‹ŠŠ’%K–È#�lïÙ˜˜˜£šì)R¤ˆa9óôÙG‹Èm?èÞ½{¥C‡r×]wÉÎ�;eñâÅò×_I—.]²=n^³wÐÛõXqUáÂ…eåÊ•ò /˜ž»qㆼýöÛÒ AÙ²e‹ª³oÈ�!²hÑ"»Ó6ÿúë¯.“&MryšfU•ùóçËwÜ!O?ý´Ô©SGŽ9"³gÏvûÏ·«üv}€s¹}ÙA €|¡mÛ¶v×gžÖ7¿‰‹‹“nݺI—.]äÀ�òÁȪU«r}mN�1°¼nÝ:Ù±c‡u9%%Eþ÷¿ÿ‰¯¯o¶§5v¦xñâ†åèèh·û° gK–,™£šì)T¨�a9ó—ÿ¶Sf{jTiVTUÞ}÷]iذ¡,_¾\ºví*»wï6ýàvd{œˆÜ¾ÇŠ;üýýåÓO?•ß~ûÍ4Ê\DäàÁƒr÷ÝwËŒ3Àu¹uÙE €|!$$ÄîúÌÓBç'çÏŸ—V­ZY§Ñ;v¬¼ñƮʾˆˆiÑ¢…aÝ”)S¬ÿ^±b…\¾|Y|ðA)]ºt®ïß¶ÏìŒú¾qã†Ó>sCæ)ŸEDjÔ¨aýwpp°á9ÛûßÒÓÓåÉ'Ÿ”Q£FIZZš<ðÀ)AAAž.Í%… 2…ð·ë±’<ð€ìÛ·OÆ�o].róGƒ ’™3gz¨:³òåËKdd¤¬Y³F5jdzþ·ß~“‡~XRRRìnøðaiÚ´©uúû/¾øBúöí›§5{J~¸>À}9=€œ @¾àççgw½í=?óƒ´´4yüñÇ­áT�5nÛð7ƒí(àÈÈH9{ö¬ˆˆüðÃ"’7Ó?‹ˆÔ¯_ß°ãö9ÛQV�7Îq]¶®\¹bXnÕª•õßeÊ”1<·k×®lMOœ—Þyçëgéãã#3gμm§{vÄöXÙ·oŸÛÓ¬ÞŠc%»døðárôèQ0`€X,Ãó¯¿þº\½zÕCÕÙ×¶m[Ù¾}»ÌŸ?_J•*exnÆ òÍ7ߘ¶¹~ýº<úè£Öø´k×NzõêuKêõÛ냷ÜÛ7eçrŠùBLLŒÝõåË—¿Å•ä\ƈ  ݺu»íƒ¶Î�;K­Zµ¬Ë)))2mÚ4¹qã†,^¼X‚ƒƒ¥sçÎy²ïvíÚ™ÖýþûïnõqìØ±,ûÌ©C‡9ÜGñâÅ¥J•*ÖåÄÄDY°`A¶ö³`Áùä“O²W¤§OŸ–÷ßߺ|×]wêÍ/l?×øøxÙ¼y³[}ÜŠc%+Û·o—öíÛ;|¾T©RòÙgŸÉ/¿ü"Öõ×®]“ÈÈÈ[Q¢É�wÞ)§OŸ¶ûœÅb‘¾}ûʾ}ûL#!çÌ™cj?uêT9pà€u¹gÏž¹[ìmÆöGýõ—>|8[} >\6lØ�eÁM¹y9E €|aãÆ�v×7mÚôW’s_|ñ…a9,,Ìi{wG0æ‹Å"Ç7¬›={¶üðÃ/Ý»w7Q¹©S§N¦¾üñG·úØ¿¿õßAAAyrOÛÌ÷E®W¯ž4oÞÜð|Ë–- Ë~ø¡$&&ºµ�“'OÊÀ�¥nݺÙ/ÔŽùóçKZZšu9¯�ÉÌûÊM�=ö˜i�;ÇJBB‚?~ܺ\©R%Óôç·Ê¦M›²<>:tè 'N4¬;zôh^–å�ªÊªU«œ¶ ‘eË–¦·Wo~¼FæD¥J•¤B… †ucÆŒq»Ÿ%K–ÈÌ™3%<<<—*ûÿ¹ò{óTÆ®\³rórŠy*7¾˜OII1""eË–•{ï½×í<ì۷ϰœÕtÆçÎ�3,{jÚë§žzÊR\¾|Y^zé%É»éŸEn~ζýÿúë¯rþüy—¶ß½{·DGG[—Ÿ}öY)Q¢D®ÖgÕ=tèPS›§žzʰ|ìØ1y÷Ýw]ÞGÆ´¸U«Vu::4;òú˜ô÷÷7,»3M±;çoÆ å¾ûî3¬[°`�$%%¹´¯ßÿÝô¼òÊ+âëëër­¹éÆ�òË/¿dÙîÙgŸ5Ôh;…õ­äÊèã²eËÊ#�wÛcrÏž=NCSÛ{VfuL+V̰l;]¶ˆãsÎÝówܸq†{†Ÿ={V¦M›æt› ™�•ÚµkË€¶ÍËkD†™3gfÙ&00Ðp_Ñ;î¸Ãn»?üPªT©"���R¿~}ëýžsÓÊ•+MShÛjý·m½¶÷Òq~�Ž9"÷ÝwŸȨQ£²lïŠråÊ™ö‘qßz{Nž<)³gÏ6¬Ëêïÿ­8‡D²÷ß®\³D̯!7Î 7 OÙ›ÚÐÕ‘› 2`À»�×€L#¦ì¹~ýº\ºtɰΕQJ¶!DV#SSSMû±ýÒ9ƒí}‹/^,+V¬0µ;wîœtèÐA.\¸`X¿iÓ&Ã~¯]»f]NOO7Õ‘›ÓK>÷ÜsR´hQú޽{çZÿŽ„††šF�Ïž=Û4rÕÖ©S§dÖ¬Y"rs믿þZBBB\ÞïêÕ«³-vñâE7nœˆÜœ^zîܹâãcþ_-S §ªÒ¿4h�ÃÐjݺuÒ¼ysYµj•¼þú릩¤3ØžWQQQ.�v·=&ÏŸ?/ï¼óŽ©]RR’ 4È42ñðáÆãÎö¬Q£†ayñâņQoIIIòÔSOÉ×_mÚç¿ÿþkXÎêümܸ±|øá‡†u|ð�Ãûˆgؾ}»,\¸PDD ,(‘‘‘R°`A‡íݽFˆ˜ïeîè‘aÍš5v¯ ™]¼xÑz�ð÷÷—®]»šÚÌ�;WÞxã 9qâ„$%%Éž={ä‰'žpøc‚ìJMM•7ß|3Ëv™ïïûÄOž+Y²¤iôå¬Y³dÏž=¦~Ž9">ø iÄoækdBB‚)40´Ë�sÈ ä‘ÄÄD­\¹²Šˆáa±Xô믿ÖôôtÓ6)))zðàAýè£�ìnëëë«£F�r¹†¯¿þÚÔGDD„¦¤¤8ÜæèÑ£¦m^~ùe§ûÙ°aƒi›ÁƒÛm;pà@S[íׯŸÎœ9S§N�ªýû÷ׂ jDD„Ο?ßÔþùçŸ×)S¦hýúõuÍš5Ö¾¿úê+SÛ *èÅ‹]~ϲ2tèPCÿG�͵¾³òñÇ«Åb±î»zõêzöìY»mãââ´yóæÖãfÞ¼yYöߦMÓû׿MLL´Ûþúõëzï½÷ªˆh`` þñÇYîcøðá¦}ˆˆúûûëƒ>¨/¾ø¢Ž9RŸ~úi­U«–õù=zhZZšÝ>£££µ|ùò¦>¿ÿþû,ëQU]°`�Ýšî½÷^�&&F«V­ª"¢AAAúÛo¿9í?>>^ ý?úè£N·9uê”éµtìØÑnÛmÛ¶YÛ”-[V>ì°ßçŸÞÚvôèÑvÛôêÕËîç[¨P!½|ù²Óº]U·n]k¿S§NuØnãÆ�êãã£"¢5kÖÔ7n˜Ú<ôÐC¦ZuРAúùçŸëäÉ“µG�êëë«ÝºuÓ?üÐô7æ­·ÞÒqãÆi•*UôøñãÖ¾“““5<<ÜÔÿ¾}ûœ¾¾E‹™¶¹ûî»555Õá6QQQ¦ã¤D‰zéÒ%»íõî»ï¶ûY/^\{ôè¡Ã† ÓáÇkÏž=5$$Äúz�½çÙuÿý÷Ûý{2räH�:uª¾þúëÚ¤ImݺµÆÅřڇ††êo¼¡Ÿ~ú©é½š3gŽ©ýâÅ‹�ÖôÞ{ï™¶ùé§Ÿ¶ONN6\G3Y�ã¿ÿþ»i›5jèÔ©Suƌڼys­P¡‚^¸pÁºMnž@N W%%%é™3gtéÒ¥Ú®];»_dg<Š)¢Õ«W×5jhXX˜–,YÒú¥¨í£@�Ú±cÇ,¿¤WUýî»ïôý÷ß×=z¨ŸŸŸÝþjÖ¬©#FŒÐùóçBµ‹/j§N�L탂‚ô÷ß·»¿'NhÓ¦MMÛ-ZTW¬Xa ºOž<©%K–túÞˆˆvïÞ]ãããõܹsh·Mýúõõĉ:fÌmÖ¬™Ã¾J—.­Ï<óŒN˜0AW­Z•£ÏxïÞ½Ö~[¶l™£¾²ãûï¿×àà`k !!!:gÎk¸—œœ¬K–,Ñ:uꨈh¹råtÙ²e.õmW«VM-‹V¯^]çÍ›§±±±Ö},_¾\ëׯ¯"¢åË—w)üÍðú믂lg>|¸ÝðwÖ¬YÚ£G-T¨�Ãm~øa3fŒN›6Ía=©©©Ú¢E‹,k©_¿¾5Œlذ¡Ý6ÁÁÁºk×.CÿqqqZ¦L‡ýV®\YOœ8¡ªªK—.ÕñãÇkŸ>}´páÂvÛW¬XQ‡ªsæÌѸ¸8‡¯kÊ”)†s§zõêi \ôÛo¿ÕŠ+ZŸß²e‹ÓÏ.>>^Ÿ}öY»ïõwß}g7¼pá‚vèÐÁ´�¯¯¯~ûí·¦m2À"7ÿ)S¦hLLŒµÍáǵwïÞÖ6O?ý´ÝÕ¨ª¾ýöÛßû_~ùÅéëuUæðKD´W¯^ú÷ß[kºvíšÎœ9S‹-ª"¢U«V5³™íرÃá5/ãa±XtðàÁšššª»vírØîþûï×ääd�;w®Ž9Òz]°}”)SF‡ ¢ü±ž9sFUU:¤S¦LÑ^xÁpͱ='Þzë-ýöÛo­õÏ™3G{õê¥EŠqxü2D'Ožl ÿâããõ¾ûîséÚ "Z¬X1ýî»ïrå3´uìØ1—þVuêÔIãââ4%%ÅîûÚ»woýþûï ÇçþýûµZµj¦öáááúÏ?ÿØ­gýúõvë©W¯ž²ncg~)RÄ,V¬X1ËÑíqqqÚ»wo-Uª”©?WG‰gÅÑõÌßß_K”(a=/ýüütÀ€Yž3«W¯ÖÐÐPS‹E[·n­k×®5´ÿüóš�� ªª*Tpù˜Ê˜UaÞ¼y.oS·n]k-ŽBG{�Ì#H3¤§§ë¼yóôŽ;îpz̼øâ‹g@È-‡Öˆˆ»5T¨PAgÏžm 83àòåËë+¯¼¢[¶l1ý(áĉvƒ_ÛG¥J•ô×_UUÕ={öh¥J•²Ü&,,L£¢¢ôÇtë2bÄ»¯}ÿþýv�Á»ï¾[�9bjŸÛç�Uo  W¥§§ËúõëeÇŽ’œœ,+V”† J�:uì¶ß¼y³lÚ´I¥]»vR»ví[\ñM‡’ÚµkK@@€ÄÄÄHpp°Gê¹y¿Å¿þúK¢¢¢$&&F ,(!!!R·n]¹óÎ;Ýî¯mÛ¶²víZëòèÑ£e̘1’šš*7n”={öH\\œ”.]Z¤uëÖ�£×-6l�èèh‰��—àà`©^½º4oÞÜt¿å[aÿþý²nÝ:‰��•��©Y³¦´lÙÒî}��;&+V¬�ÄÄDiÔ¨‘´nÝZ,‹Ã¾/_¾,K—.•Ó§OK‰%¤]»vR³fͼ|9V‰‰‰²aÃù÷ßåüùóR¸pa)[¶¬4lØPªW¯~Kjp—ªJ\\œœ8qB>,gÏž•¸¸8IOO—âÅ‹K½zõ¤eË–âëëëV¿©©©òÐCÉü!ëׯ·{¿×ìJJJ’èèhùçŸäßÿ•ØØXIJJ’‚ JXX˜ÜsÏ=R²dI—úJNN–Õ«WËþýûEU¥bÅŠÒ¼ys ³Ûþ�?þ��;wJpp°ÜÿýR¹rå\{]ž²ÿ~Ù¹s§ÄÄÄHZZš”,YRÂÃÃ¥Q£F¦{%祽{÷ʦM›äâÅ‹R¸paiР�DDDH�¬mTUþøã¹÷Þ{í^/ò£ëׯËÒ¥K娱cR¤HiÕª•4lØÐé6¹yÙE À-'N”áÇK÷îÝ%22ÒÓåä*G0àmZ·n-{÷î•sçÎÝÒ �÷¼ã'™n™/¿üRDDž}öYW ;öìÙ#6l�^x�ð¼0—­[·Nöïß/U«V•öíÛ{ºnŠ‹‹“^½zIÕªUeäÈ‘ž.�Ü»Q€ÿ,U•#FˆˆÈË/¿ìô^¯n?—.]’N�:É™3gdýúõäé’y€À\2qâDÙ¼y³”.]Zž~úiO—À [¶l‘¦M›Ê… dýúõR§NO—È#ÀDD$==]žþy)R¤ˆ”/_^žxâ Y³f�\¿~]¦M›&o¼ñ†ˆˆŒ;V ,èájóFZZša9%%ÅC•¹ë÷ß—=zÈ®]»ÀËYTU=]Ï‹ŒŒ”ž={:mÓ´iSÙ¼y³øøxçoI«W¯.QQQÖå¾}ûÊüùó=W€›¼ó[n;wîœÓçK”(! ,ðÚðwÓ¦M†ðWDdùòå롊ÜÇ`""rìØ1iР�ÄÅÅ™ž •eË–É�wÞé�Êòιsç$22R6oÞ,?ÿü³$&&šÚ”-[V:uê$ÕªU“2eÊHÿþý=P)€k€XmÛ¶MÞ|óMÙ¾}»$''K�5ä±Ç“¡C‡JáÂ…=]^®ûã�?ä¾ûîs¹}HHˆÄÄÄäaE9C ^Â;oÞÿAÀà%€ÀK€— /A ^‚¼0x `ðÀà%€ÀK€— /A ^‚¼0x `ðÀà%€ÀK€— /A ^‚¼0x `ðÀà%€ÀK€— /A ^‚¼0x `ðÀà%€ÀK€— /A ^‚¼0x `ðÀà%€ÀK€— /A ^‚¼0x `ðÀà%€ÀKøzº ¿¸r劬]»Öº*¬ IJJ’S§NY—Û´i#ÁÁÁ¬Èû.Z»v­<òÈ#ž.Àk,Z´Hºtéâé2¼ S@€— /ÁЀ‹BCC Ë‹-’êÕ«{¨YIMM•ýû÷[—ëÖ­+¾¾üÙO:zô¨á–›¶ù rŽo–«W¯.uëÖõP5²’˜˜( .´.wíÚU=XÀ–mþ‚œc hðÀà%€ÀK€— /A ^‚¼0x `ðÀà%|=]y! @^zé%Ã2ÞŽà•,‹{º n)¦€/Á`þÃTUÒÓÓEU=] ±X,âãã#‹ÅÓ¥ ð“’’"W¯^•«W¯JJJ á/±X,âçç'ÅŠ“bÅŠ‰ŸŸŸ§KB6¼RRR’Ìœ9Óº>>R´hQ)Z´¨øùù‰�cÆ€ÿªôôtIII‘k׮ɵk×$==Ýú\RR’DGGKÅŠ=X!ÜA €KKK“¸¸8Ã:©\¹²øú¸Éßß_‚‚‚¤téÒòï¿ÿJrr²õ¹¸¸8IKK“ x°B¸ŠŸóàÅ®_¿nX¶X,Jø À.___ ‹ÅbXo{-Áí‹/f;ú·P¡Bâïïï¡jäþþþR¨P!úøøxUwñó@¾vþì)—Ûž(¡.· ËF5·ÛQ{EŠñP%ò“Â… ®Àù0 _Üén×ۺѯªëa1ÀíJU%--Ͱ®`Á‚ª@~b;8--MTÕ454n?L €—JOO7­+P €*�ߨ»VØ»¦àöC €—²7« £÷¸ÂÞµ‚™’ò¦€x%©VͰ €·#x%_?iõ@gO—À-Åp(ðŒäkÓYïrÛáó°<��¯•)êrÛ°°ÊyX €÷IOW¹t=ÉÓexµ’Aâãcñt¼0À+¥§¥IôÉãÖår•ªˆO�¬ ÿ¹t=Iʼñ?O—áÕÎ�ë&¥‹zº ^„à•RSSdãÊ_¬Ë�ô(þÀ/çã鹃¼0x `ð¾ž.ȯð? uâ=]%YŽˆ¶.w Ø%�þ¬Üöïðtޥ®ÈÑÑÑR®\9O—ä Fà?k÷îÝòÌ3Ïxº ×à?)..Nºwï.ׯ_÷t)@®!ÀŽªJ¿~ýäÈ‘#ž.ÈUÀøÏ6l˜üüóÏž.Èu¾ž.¸U’““åå—_–3fx)Jâž IDATº O0à•üý|¥ß#÷Xþ~üæ À'Μwýqâ„ËÜ~,‹Åô3fŒ¡Ý®]»ì¶³X,2þ|»}:tHÆ�/-[¶”?üаþÅ_”5jHÁ‚¥|ùòÒ¿9yò¤Ý~š4iâpß‹E"""LÛ=zÔa­ÉÉÉÒ²eKSø»víZCÛàà`÷ÞLà6·á¯äãã#aÊxº €|§ÊÏçI¿ªš'ýÀÿcï¾£¤*ïÿ�vÙ&UQd (¢ˆ$1†€%$(v – b¯ùŠM°€Š& ¨˜`£F¢¢°‹ Ö ±KTD—",»;¿?ü92,e©³Ì¾^çÌ9÷sï3Ï}39.d?ó<€�wùå—Ça‡W_}u¼öÚkk÷“Ÿü$f̘~øa\}õÕñÖ[o­qÜ»ï¾wß}w<üðÃñÞ{ï%ÏwîÜ9ÊÊÊbàÀ�ñç?ÿ9V®\™¼6oÞ¼9rd<þøãñÒK/EÓ¦MSæ|ì±ÇbøðáqõÕW§ü›òàƒŽ”ѤI“˜>}z 2$ÆŽÙÙÙ1lذèÑ£GäååÅ<‰D"N>ùäxõÕW#"¢]»vqï½÷&ç¨V­Úz>=¨¼4€ª F�E£F�¢aÆѦM›µŽËÏÏ�V­ZE«V­¢víÚñë_ÿz�ãJJJâ¸ãŽ‹š5kÆ€’çW®\Çw\L�:5®¿þúèØ±c”––Æý÷ߟ\‰ûå—_F¿~ýbÒ¤I)sî¼óÎ1`À€øüóÏãÎ;ïLžïÑ£ÇZsäææÆ�=zôˆ±cÇÆ©§ž}ûþøEǽ÷Þ;""ªW¯ž<ú÷ïŸ2féÒ¥1qâÄ8ì°Ã¢~ýú[,+TVÀ@Raà øYaáËkòË_þ2Úµk¯¾újDD 6,.½ôÒÈËËKŽyä‘GbÙ²e¶¦Ê²4ÛŒË.»,yüÅ_ÄèÑ£S®�=:êÖ­]»vÝÚÑ RÐ`›qÔQGÅ^{핬‡ ’<þæ›obòäÉqì±ÇF~~~:âAÚi°ÍÈÎÎŽK.¹$Y¿ùæ›ñôÓOGDă>ÅÅŶ¦JÓ`›rÒI'Eƒ ’õÍ7ßßoÿ¼÷Þ{Ç�˜®h�vÀ$•””lÔµ­)???Î?ÿüd=iÒ¤xöÙgãÙgŸ�“O>¹Bsdee%�KKK7{FH—œt€mÕ5[F�:{§;°Ë—/�¢‚—“õgµÛFAAAl^�5Jw2H�5béÒ¥ñþûï¯uܬY³RêD"±Es­Kß¾}càÀ�QTT‰D"zõê߯®ˆU_¸páÂ-’ÒÁ `€*nŸ}öI?òÈ#ñᇖ3kÖ¬¸ð £fÍšÉs_|ñÅç«èJáeË–¥ÔÒP®]»vôíÛ7YÏŸ??~ùË_FãÆ�+ôþ† &�ß{ï½”&pIIIŒ3¦ÂY 2Ñ #eeeÅN;í”|­º� �ªOŸ>ÉãåË—ÇÏþó¸çž{bÆŒñÄOÄyç�íÛ·�ë®».š4i’;|øð?~|¼õÖ[És%%%ñÕW_%ëE‹­õ¾}ôQJýõ×_oPîsÏ=7rr~Üð¶¢Û?GDtìØ1y\ZZ½zõŠ_|1ž~úéèÔ©ÓZ›ÛPÙi�‘òóó㤓NJ¾òóóÓ *­ÓN;-ºw?ÿüóèÝ»w´nÝ::wî£F�ŠÑ£GGÏž=SÞ·xñâ5jT<÷ÜsÉs£F�ŠâââdýÜsÏÅÇ\D"þú׿¦œ›4iÒ:Æ«kذauÔQQ³fÍ”?ÃúôìÙ3¥™ýÔSOEÇŽãW¿úU´oß>åð-ѨⲲ²bܸqqûí·Ç5jÔˆš5kƾûî×\sM¼ýöÛñ›ßü&""š5k_|qL›6-,Xÿú׿âœsΉ)S¦Dûöíã”SNI™{Ñ¢EѼyóøùÏÓ¦M‹ˆïWï½÷Þq×]w¥Œýè£�¢I“&qä‘GÆŠ+*”ý‡\Ý»w�5jTøÏ\½zõ˜2eJtîÜ9ªW¯;î¸ctéÒ%&Ož×_}…ç�Ê&gýCÈtÙÙÙÑ·oß”çê®ÉÃ?¼Æó�;wŽÎ�;Wè^¹OE}òÉ'åϱ×^{ÅäÉ“7K¨,¬`›5qâÄhÚ´irÈ!鎕‚Àd¤²²²X°`A²®W¯^dgûÞP¹}úé§[RRRá±………‘ bÇù1ÿºŠ?S• ·c�ütGئ½óÎ;ñÊ+¯Äu×]YYY鎕‚0©¸¸8î¿ÿþd}ÖYgEAAA¬_‡¶È¼‰Db‹Ì d¾ìì¬Ø©–ß©Py <8ªW¯§�vZº£@¥a)ÛœçŸ>FŽøÃ¢^½z鎕†0•Ö<tPtéÒ%†  .ŒéÓ§G�=¢nݺѿÿtG„JÅÐTJ‹/ŽÞ½{GIIIDDL™2%úõë—¼>vìØØa‡Ò*%+€¨”¶Ûn»¨U«Ö¯]ýõѳgÏ­œ*? `*¥œœœxôÑGã ƒŠêÕ«GݺuãÈ#�Œçž{..»ì²tǃJÉÐPI¼ôÒKÛ Aƒ-˜*�:lп•¡ªÓ€J¢qãÆÛ¨Q£-˜€m•- 2„0@†ÐÈž @FÊÍÍ�.]º¤Ô�é4€ÈHÕªU‹-Z¤;lUÀ°‘vÙe—hÔ¨Qºc@’gd+€a#]øàëQgú×éŽ2îÔŸ¥;°h�‘ÊJJbÞÌiɺÁ>EvŽ¿öÈl~@FJ$JcÑ'ï'ë]ZþÚ Óy0@†ÐÈÀÂÃ2ÀÒóÖy}Μ9k½VXX¸yÃi£ �&]Þk�×w¿|í׉ÄfN¤‹- 2„ÀÀš%Ê"–}�î™­úYÖë›�0°fË¾Ž¸±YºSd¶‹?Œ¨Q/Ý)€ â+% `2VµÜ¼tG€­J€ŒT-7?šqbºcÀVsÄõc×y}X¯¶R �4€2@�z Öy½°°pëÒÊ3€2„0•ÎW_}¥¥¥éŽÛ `2R"‘ˆÒ•+’¯D"‘îH@•””D÷îÝcîܹéŽÛÏ #••Ç;“HÖÍ�8!ªåæ§1PQýû÷�©S§FYYYº£À6Ç `*�‡z( ”î°ÍÒf«x饗¢~ýú‘•••ò:餓Ò ¨$¦OŸ'œp‚GºÁ&°4[ÅO<_}õU¹ó÷ߌ1"òó·½mYo®ù`´¨½}ºck±¼¸4®ÏŸ™¬/¯µ2 òª¥1¤ÙøéN°m9æžt'€*çñÇ�^½zŲeËÒe“,[¶,¾þúëhÔ¨Qº£PEYÌVqÖYgÅ9眽zõŠ^½z¥\ó-¨‰D<üðÃqüñÇÇ{ì5jÔˆüüühذatëÖ-|ðÁõþ^éÒ¥1xðà8è ƒbûí·�ìììr;„žþù)ï¹ñÆãÈ#�ŒÅ‹§œß}÷ÝSÞ÷ÐC•»ß¬Y³â²Ë.‹N8!yîå—_ŽÎ�;G�:ub·Ýv‹x`­yg̘—_~yxà�Ñ AƒÈÏÏ�zõêEëÖ­ãâ‹/Ž3fTès{ñÅãôÓO� Ĉ?~ ÷ᇎîÝ»G“&M¢   6l={öŒgžyf�sõèÑ£ÜçµêkM�å’’’5ŽýÓŸþ´Þìd `¶Š�vÚ)þú׿Ƙ1cb̘1鎬æƒ>ˆ8 ºuëo¿ývüùÏŽ^x!Æ�Í›7�‡~8zôèÝ»w�âââ5Îñ¿ÿý/Zµj—^ziì±Ç1nܸ˜1cF<úè£Ñ½{÷µÞû„Nˆ·ß~;®½öÚ”óO>ùdÌž=;ùêÔ©SDD|üñÇ1hРhÛ¶m´lÙ2 sçÎ�ˆˆqãÆEÇŽã‰'žˆ¢¢¢øôÓOãÔSO�+V¤Ì½`Á‚èÑ£G´iÓ&þýïÇYg��=öX<õÔSqÞyçŧŸ~7ÝtS´iÓ&N8á„(***—ûå—_ŽsÏ=77n;vŒ#F$Ç}öÙgÑ©S§èÖ­[L˜0!>ùä“X±bE|þùç1~üø8ôÐCãœsÎ)×P¿ë®»bèСåvOmÞ¼yLœ81žxâ‰r9rrrâµ×^‹sÎ9'yîOúSœ{î¹kýÌÉ\¶€¨â>ÿüóøÙÏ~_|ñEì¼óÎ1uêÔ¨U«VDD´nÝ:ºví‡rH<ÿüóñ¯ý+ú÷ïƒ *7ÏqÇ~øaœ|òÉqÏ=?>Zeß}÷�#�<2®¸âŠrMÞˆˆ $_«jÖ¬Y¦œ{ðÁãñÇ�O?ý4Þxã�”kS§N�3Î8#Ž=öØx饗â£�>Šˆˆ+VÄÒ¥K“MÕ÷Þ{/ºtésæÌ‰£�>:ÆŽ99?¶Í:vìgœqF~øáñŸÿü'F�o¼ñF<ùä“ѰaÃ丹sçFÓ¦Mc÷ÝwO6 #¾o¦wìØ14h#GŽŒ-ZÄ’%K⡇ŠaÆEIIIDD :4òòò⦛nJ¾·nݺqöÙgGQQQüßÿý_ò|—.]â7¿ùM¹ÏîmÛ¶�D"ûÛßâ׿þu 0`­cÉlVTqC† ‰/¾ø"""7nœlþþ +++.¸à‚d}Ûm·ÅòåËSÆÌœ93¦M›ݺu[ã}®¾úêØ{ï½7)k÷îÝcĈ1yòäØgŸ}’ç¿úê«8ãŒ3âé§ŸŽûî»/þóŸÿÄÉ'ŸµjÕŠ3Ï<3vØa‡ˆˆøöÛo£k×®1gΜhذaÜsÏ=)Íßì¼óÎ1yòäØi§�""â�wÞ‰£Ž:*åÏ}ôÑGÇùçŸ#GŽLyï˜1c⪫®ŠiÓ¦Å)§œûï¿rÈ!qË-·ÄäÉ“#///9vÈ�!1uêÔr÷ïׯ_l¿ýöÉú±Ç[ïöÛ�?þxò½T]ÀUܬY³’Çï¿ÿþÇì¹çžÉã¥K—Ƈ~˜r}öìÙÉãE‹­qŽœœœÍº-ñO~ò“äñÛo¿ ˆ6mÚDDDíÚµãž{¢¢¸í¶Û’ã ï½÷^DDœyæ™Q³f͵οÓN;¥¬t~õÕWãÖ[o-7n·ÝvK©O9å”èÓ§Ïç<ôÐCãšk®IÖ‰D"XnÜ�ë|ðÁ1yòäµf�ˆ=ztì´ÓNqøá‡¯s™-cÀ?<°ûˆ#ŽˆfÍšE½zõ"???jժ͛7�SO=5&Nœ¸ÞoJ°uÌŸ??®¹æšhß¾}ì°Ã‘——�7ŽãŽ;n­AØXsæ/Y÷kΜu¾ Óüâ¿HÿÐ@]]�5Rêo¿ý6¥.((Hßxã�±lÙ²5ÎÓ£G�¨V­ÚÆFM±ÝvÛ%�ëÖ­½zõZçø ÄwÜ‘¬;wî¼Þ{üñÉUÀƒ.÷ äÜÜÜ”ºqãÆëœó¼ó΋zõê%ë)S¦Ä‚ Ö8nÕÏuÈ�!k�óÍ7ߌٳgÇñÇ_.UKF>xÒ¤IñÛßþ6JKKË]+..Žwß}7Þ}÷Ýøûßÿûí·_ÜvÛmqÐA¥!)Ç�+®¸¢Ü_Ÿ}öYŒ3&ÆŒÇ{lüãÿHù!°±vï7aÝÖsÝ—‰È4—^zi4mÚ4¾ùæ›8á„*ôž•+W¦Ô¿øÅ/¢fÍš±dÉ’xûí·ãÐC�{î¹§Ü–Ïõë×OyæíæR»víÈÊÊZç˜É“'§lá¼êªæµÉËË‹nݺÅ]wÝ .Œ—^z)9ä��ÎZPPGuTrÎD"Ó¦M‹®]»¦ŒÛyç�ã”SNI6­§L™³fÍŠ-Z”›sôèÑñýêcª¶Œ\|×]w¥4Û¶m¿ýíoã˜cމN�:¥<,|ÆŒq衇Æ#�<²A÷¸ùæ›#;;;²²²¶økç�wŽ+Vlðç°-dŒˆ¸à‚ ’Íß�wÞ9;ì°èÔ©SÔ¯_?9f̘1Ñ¥K—X¼xñFÝcuóçÏ�Y³fmÐëƒ>Ø,÷¶ŽœjYqH‹]’¯œjëþ‡TeYYYqÌ1ÇÄgœQn¥ï»ï¾ÿ÷ÿ—²J8¢ü#ëÔ©“²•ñË/¿ûì³O\|ñÅQTT´åÂo€_|1¥^ýYÇkÓ®]»”ú‡goŠ:¤ÔÿûßÿÖ8îâ‹/Žìì[zk[.¼ðÂä·a6Åm·ÝW_}õ&ÏT^9Õ²ã�»¤;l“JJJbüøñ1|øð˜7o^ôíÛ7Æ�íÛ·_çûÎ=÷ܘ;wnò¹¹+W®Œ›nº)î¿ÿþ¸îºë¢wïÞë]¥»%}ñÅ)õ²eË*Ô^}óüùó79Ëês®¾¥ööØc�èÞ½{Œ?>""xà�¸öÚkSÒM›6-æÌ™ƒÞä\lû2²üç?ÿ9>ÿüó˜;wn\yå•kü÷àƒŽ)S¦DçÎ�ã©§žŠeË–Åí·ßžò ïuÉÏÏ�}÷ÝwsG߬¶…Œß#hêԩѼyó”ó¹¹¹qÎ9çDÓ¦Mã·¿ým”••ň#â„Nؤm€5+))‰;î¸# ÕªU‹ë¯¿>zôèÙÙÙ1gΜ Íqà 7DË–-£_¿~É•¿_~ùeôéÓ'†wÞyg´jÕj þ)ÖnÉ’%)uQQQ…ÀÛo¿}J½¶çoˆÕç\WŽË.»,Ù^¾|yÜ~ûí1`À€äõÑ£GGµjÕ*¼}7™-#·€nÒ¤I<ùä“É]¯Mvvvœyæ™Éúõ×_ßñXÍõ×__®ù»ª#�<2N;í´d}Ýu×m�XP¥¼ûî»Ñºuëèׯ_´k×.fΜ={öLÙ~¸¢N:é¤xç�w¢wïÞ)ïå•W ¿ÿýï›3z…Õ­[7¥^Û¶Ë«[}[ìzõêmr–œœÔuš;í´ÓZǶmÛ6~õ«_%ëÛn»-ùhÎÒÒÒ7n\tîÜ94h°É¹Øöeä à5I$ñî»ïÆûï¿~øaÌ�;7/^}ôQrÌÒ¥KÓ˜°êZW“þüããÎ;ˆ§žz*¾þúëØa‡6úžg�uVsÌ1ôž>ø ºuë¶Ñ÷€Êê¿ÿýo|ðÁQTTx`Œ3¦\ƒrC5hÐ þñ�Ä%—\W^yeL˜0!""Š‹‹ã´ÓN‹&Mš¤45·†&Mš¤Ô3fÌ(÷,Þ5Y}åpaaá&gYý¹ÈmÛ¶]çøË/¿<žzꩈø~ êx úôéÏ<óL|ùå—qÊ)§lr&2CF7€ËÊÊ⡇ŠþóŸñÔSOm–ýØÙüòòòÖ;¦°°0öÙgŸ˜9sf”––Æë¯¿¿þõ¯7úžõë×OÙÈ<%¥eñÂ;?þÜïØ¼~äTËÈ�/€�ðñУ×=àÈ›¶N¨ÊÊÊâ˜cŽI6$/¹ä’�jþþóŸÿŒ÷ß?þøÇ?¦œÿéO>ø`Lž<9zõêß~ûm$‰8pàVorÈ!)ÏÉ�:ujœuÖYë}ßܹsSêC=t“³|ðÁÉㆠÆ^{íµÎñ�:uŠ6mÚÄo¼C† ‰>}úÄèÑ££N�:ñ»ßýn“3‘2¶<~üø0`@Ìž=;ÝQØLöØc�˜9sfD”ÿA °º’ÒD<;ë‹dÝ~Ï�"§Z•JaýšëP¸Ur@eðä“OÆ;3¬[¶l¹Æq‰Db½sýûßÿ.×þA—.]â¾ûî‹ßþö·ñýêÛÕeee¥Ô¥¥¥ë½ç†8ôÐCcç�wŽ/¿ü2""yä‘X²dIÔ¬¹îÿ�°jÖvíÚE³fÍ69ËË/¿œ<þÃþP¡÷\vÙeÑ«W¯ˆø~Õö£�>&Lˆž={FAAÁ&g"3däR¨ /¼0zöì™ÒümÖ¬YôéÓ'�=öX¼÷Þ{±hÑ¢xòÉ'Ó˜” Q‘¿X€ óÃâ«|õÕWk÷É'Ÿ¤ÔÅÅÅåÆL�:5>þøãµÞ«k×®Q§N�ˆXsswõ&æÂ… ×:ׯ(((ˆK.¹$Y/[¶,FŒ±Þ÷=üðÃÉãlrŽ’’’?~|DDì¸ãŽZ…ѽ{÷”æó©§ž‹-²ý3)2®üðÃã•W^‰>ø î¾ûî¸øâ‹ãˆ#Žˆ=÷Ü3êÔ©ÕªY–n%%%÷þûï'�5j´¥â@•²úªÛqãÆ•³téҸꪫRέÞŽø~1×5×\³Ö{Çwß}?ûÙÏÊ]oذaJ=mÚ´”zÒ¤I)MáU{ ?Ì»>ç�w^üâ¿HÖ×\sÍZ›ÞÏ>ûl¼òÊ+qÚi§Å‘G¹Þ{¬é³YÕ�wÞŸ}öYDDÜqDZãŽ;V$zT«V-.ºè¢d=þüØc�=âàƒ®Ðû©2®}bÒ¤IÑ®]»Í~Ÿ›nº)²³³#++k‹¿êׯ+V¬ÈÈŒO<ñÄzÇÌž=;fÍš¹¹¹[äS¨ŠVoÄ6,Î?ÿü˜:uj¼üòËqÛm·E›6m¢M›6‘›››7tèИ6mZ :4&Nœ˜çœsNüú×¿Ž²²²�zÿ†Øa‡"??ƒß·-dŒˆ¸ûî»ã¨£ŽZç˜U¿-tøá‡'·‡6M»ví⤓NŠûî»/""ÊÊÊâÖ[o�[o½5""êÔ©7ÞxcœvÚi1kÖ¬ä®7ß|3:tè 6Œçž{.þóŸÿ$çìÝ»wLž<9Ž?þøhܸqÌ›7/Æ�#GŽŒ:uêĨQ£b¿ýö+—¥zõêѯ_¿Ï#Ž8"î¿ÿþ8p`\uÕU1þü¨]»v4kÖ,®ºêª8õÔScç�wÞ 9Wõ›ßü&?ÿùÏ£°°p£ç!3e\ø¸ãŽ‹¡C‡FÄ÷[ÔªU+.ºè¢r{§Ïž=;<ð@òÜwß}%%%‘““qK¥×»wï¨^½ztéÒ%ynÁ‚qÝu×ÅÍ7ßœ<׿ÿJ³ýó›»ôŠÅ�›¦;°+V¬ˆÏêÜ—¬_ntÒFïTTníÛ·OwØæeggÇùçŸçŸþ:Ç5mÚ4ž{î¹5^ëÑ£G$‰MÎ’““7ÜpCÜpà k¼>tèÐd/hshÕªUJ/bsÙk¯½âž{îÙìóFüøŒá¶§†Ue\§³C‡qúé§Ç]w݉D"®»îº¸å–[b¿ýö‹ DQQQ¼óÎ;Ék¯ê­·ÞŠ5jÄŽ;îÕ«W�+®¸b£–޳ኊŠâ°Ã‹}öÙ'š5kóæÍ‹·Þz+å�íÇw\\yå•iL �~'NŒš5kÆ1Ç“î(TB׎ø~û�š5kÆ­·ÞeeeñÝwßÅ´iÓÖ8v¿ýö‹‚‚‚˜>}zDDǼyó""bðàÁÀ[HµjÕ¢´´4²²²âŽ;îˆóÎ;/¾û9sfÌœ93elnnn\}õÕñÇ?þ1Miª¨ê;D\üaºSd¶ê;¤;Û˜o¾ù&yä‘8å”S¢fÍšéŽC%”‘ àììì¸ù曣wïÞ1bĈxâ‰'â“O>‰ÒÒÒäþêûï¿tëÖ-=ôÐøî»ïbðàÁ1qâÄøè£�bñâÅñý¶Äl½{÷Ž¿ÿýïÑ»wï8ýôÓãðÃ�›o¾9&Mšÿûßÿ¢Zµj±Ç{DçÎ�£o߾Ѵ©­–¶º¬ìˆõÒ�XÅСCcÅŠqî¹ç¦; •TF6€°ï¾ûÆ_ÿú×õŽ«^½z 0  °R1bĈ1bD²nÔ¨QÜ|óÍ[d�}€LðÞ{ïÅõ×_ݺu‹Ÿþô§éŽC%•Ñ `ª®¼¼¼8餓Rj€-¡¸¸8¥þî»ï6i¾'žx"®¾úêÈËË‹.]ºÄ‰'žEEEñ»ßý.JJJâ†nؤùÉlÀd¤¬¬¬ÈÏÏOw   ˜5kVJýæ›onÒ|'žxbÌŸ??""žy晸üòË“×n¸á†ØsÏ=7i~2›0•Ö¼yóÖ;fΜ9ëSXX¸éaVóá‡Æ«¯¾×^{mÊù)S¦Ä%—\‡vXÔ¯_?öÞ{ï Ú¥°~ýúÉðªÎ:문ä’K697™M€Jëè£�Þ,ó$‰Í2Àª<ðÀX¸pa¹ó‰D"n¼ñƸñÆ#"bæÌ™Ñ²eË Ï;nܸ8ï¼óbúôé±ÿþûǹçžݺuÛ<ÁÉhÀ°,X°EæýÉO~S¦LÙ"s“ù4€ÈH+V¬ˆ±cÇ&ë^½zy&0O€ŒU\\œî°Ue§;›‡0@†°4•Ö„ Ö;¦uëÖ[! l4€¨´4h°Þ1………[>l#l �!4€2„0@†ÐÈÀ"'Ý`[ÕªU«hÑ¢Eºck±råÊøæ›o’u‡"777�‰`ËÓ #åææF·nÝÒ¶* `ØH-ÿòhÄŽ3ÒØLCOHwØdž �!4€2„- ÈLee ?ý±Þ±qD¶ï=�Ù4€ÈLe%¿öc]·ADv^úòlƒ‰D§;FFËËË‹¬¬¬tÇ2ˆ0°FÅÅÅ1qâÄtÇÈh]»v�üüütÇ2ˆ0USÑW)åœ9s’Ç………[7 l&ÀTM÷]�Rî¾J�H$¶vØ,²Ó€ÌòÖ[oE«V­¢N�:qá…¦;T)ÀlVýúõ‹·Þz+ŠŠŠbÈ�!ñôÓO§;TÀlV¥¥¥)µÇ®ÁÖ£ Àf5dÈ�hÞ¼yÔ®];Î;ï¼øÕ¯~•¶,óæÍKÛ½!rÒ€ÌrÀÄìÙ³Ó#&OžãÆ�‹»ï¾;ÝQ`«Ñ j:iHJùñ5ÝÒØ>ûì³8ñÄãÈ#�Lwت4€¨šjï”R¦'°Ù-_¾<Ž9æ˜X°`Aº£ÀV§ @fª–ÑâW©5�ñJKKãä“OŽéÓ§§; ¤EvºÀ‘•Qcû_YþÊ€õY¹re|üñÇ›}Þ’’’Í>çšÅ1ÇãÇ�ß*÷ƒÊÈoê¸3fÄ\ 6Œ«¯¾:yþÙgŸ�“O>9š6m±Ë.»Ä‘Gÿú׿Ö;çÌ™3£ÿþ±×^{Å /¼°ÖqÅÅÅ1eÊ”8ûì³£I“&ñÙgŸEDD"‘ˆ &ÄG»ì²Kl·Ýv±ï¾ûÆÍ7߼Ɔòüùó£M›6å²ÝsÏ=‘•••|í·ß~ýX`›d?L€*hÖ¬Yqß}÷Ń>|ðAʵE‹Eß¾}cìØ±)ç¿üò˘4iRLš4)Ž>úè5jTäçç'¯¿ýöÛ1nܸ;vl¼óÎ;ë¼ÿ„ bܸqñøã�GQQQò|III|úé§Ñ»wïxúé§SÞ3sæÌ¸è¢‹búôé1nܸ”kuëÖ�G}4""~õ«_ÅçŸݺu‹ë®».9®  `} lÓ¬¨‚æÍ›»îºk4oÞ<åüW_}¿üå/cæÌ™qûí·Ç´iÓâ…^ˆ+¯¼2jÔ¨‘7a„8þøã“õ«¯¾7ÝtS|õÕW±hÑ¢õÞÇwŒ /¼0Z¶l™r~öìÙѾ}ûˆˆ?~|̘1#yä‘hݺurÌøñãË5€sss£yóæÑ¼yóÈÍÍMž¯S§Nò|óæÍ£°°pýlì 3•®Œ˜ýü�õO~Q-wíã ŠéÔ©StêÔ)N?ýôØ~ûí£¸¸8""&Mš×\sMôïß?²²²’ã>øàèÙ³güìg?K6x'L˜÷ßœxâ‰Ñ®]»h×®]D|¿·{÷îë¼ÿ/~ñ‹ˆˆèÛ·o¼ôÒKÉó½zõŠ¿üå/qî¹ç&ϵjÕ*:vì{î¹g,\¸0""î¼óÎèÙ³çfø$ ³hÃFúïŽ;UKw `-–¯LÄõ±"Y_¾ã?£ ÷ÿÿcuÀ·iJ•ÏvÛmõêÕKn™|衇ƕW^¹Æ±-[¶ŒáÇDZÇ›<7pàÀ8ñÄSÆ­¾ªx]vÙe—”zРAÑ·oßrãêÖ­=zôˆ;î¸#""¦OŸeee‘�mÃ[X•ÿ"ª¸U·Lnܸñ:ÇöìÙ3öÙgŸdýÎ;ïÄ믿ž2¦zõêuïˆu7�[´h‘<^ºti|óÍ7¾TÀTXVVVÊ àˆHÙÂyKªU«VJ½téÒ­r_Ø–h°A:tè�RÿïÿKK޲²²´Ü*3 `6ÈÞ{ï�Rûí·iJ¬N€ ²ýöÛ§Ô«oÍ ¤ONºÀÖ4盲ˆ9s""¢°°0­Y`[•““ÚbÚi§�Ò”X�0UÊî·.‰¸u÷ˆˆH$iNÛ¦¢¢¢”ºmÛ¶iJ¬ÎÐl�>ø yœŸŸ:tHc`UÀl�—_~9y| 'DÍš5Ó˜¦¼¬¬¬äqiii“ÀÖg h2RvVDáöÙ)5°yŒ=:"¾_ý{饗–»^VV–RoíDZ$�.\¸Uï éf0)/'+z·ÎK¾òrt€ ">ùä“u^Ÿ4iRLŸ>=""{ï½w¹1‹/^g½ª’’’ g[¶lYJ½¶ÆrÆ “ǯ½öZ¬\¹2Y/Y²$zè¡ ß¶5À$=óÌ3ñ§?ý©Ü*ÞˆïŸýûûßÿ>""úöí^xáçxë­·Rê7ß|s­÷›7o^J½hÑ¢µŽýè£�R꯿þz�ã:vì˜<þꫯâ”SN‰W^y%{ì±èرãV_‘ [“0UÊÇçÕŒ�?þ8>þøãtG€J©eË–ñ·¿ý-~úÓŸÆÐ¡C㥗^ŠéÓ§ÇÀ�cÿý÷�¢¢¢¸îºëâöÛoOyÖî‚ âµ×^‹‘#GÆW\‘2çM7Ý·ÜrK̘1#eoIIIÜÿý)cxà�”»?øòË/c̘1寮Éþð‡¨S§N²=ztxà�ñ»ßý.N;í´8ꨣ*þ�À6F€*¥°nvFaaaº£@¥Ô¶mÛ˜9sftêÔ)nºé¦øå/‡~xŒ?>Î>ûìxûí·ãòË//÷¾áÇG»víâ÷¿ÿ}|úé§)×¾ýöÛ¸à‚ ¢uëÖñ÷¿ÿ="".½ôÒ(,,Œ)S¦¤Œýç?ÿ»í¶[}ôÑÉs¿ûÝïbÏ=÷Œ¹s禌2dHì¹çžqÓM7¥œoРAL™2%:tè±Ë.»ÄÑG/¾øbôë×o“>¨ìrÒ¶„²²D|òí�Û¸ìV'+²³=*b×]w�¡C‡ÆÐ¡C+üžþýûGÿþý+<~РA1hР �}øá‡+<ï8à€xñÅ7ø}°­Ó #—FŒœQœ¬/ï˜ö½ Ãik”——]»vMwŒŒ–———î@†ÑÖ(+++òóóÓ€ `3L€ a0l¤){ü9f7nœîÀZÇÛï=”¬'ü´Û�ÛéüóŸiJŶ¦G�鎰U'�¿ûî»4&6•ÀUØÂ… ãË/¿LÖo¾ùfÓ›J  úôÓOãᇎ£Ž:*ÊÊÊ’çß}÷ÝèÓ§O<þøãñÖ[oÅ’%KÒ˜ØP¶€¨‚Ž:ê¨xýõ××xíÿøGüãÿˆˆˆ‰'Æo~ó›­ ØÀUÐk¯½–îÀ` h€ ¡ �!l @FªV­Z|ðÁ)5ü`þüù7gΜ ÏYXX¸qa6# `2RµjÕ¢aÆéŽA%uöÙgoö9‰ÄfŸ`CÙ Chd `€ áÀd¤•+WÆ+¯¼’¬8à€ÈÍÍMc"Øò4€ÈH‰D"æÎ�›RT5YYYåÎù= Peeeåέég •�0På 6¬BãŽ8âˆ-œ¶¬ììòO‚\¹r¥�Ò€õ*)))wnM?S¨|4€€*§~ýúWXX¸eƒÀ–••yyyQ\\œ<·dÉ’¨^½zSÛ‚%K–¤ÔyyyVo#´é ƒÕªU+¥.**² 4°N‰D"ŠŠŠRέþ³„ÊK2ØêM›•+WÆÜ¹s5��5J$1wîÜX¹reÊùÚµk§)ÊÐ�Á "777¥™³xñâøðãvíÚQ³fÍÈÉÉñlO¨ÂÊÊÊ¢¤¤$–,YEEEåš¿¹¹¹‘ŸŸŸ¦tl( `È`YYY±ë®»Æ'Ÿ|’²êwåÊ•±páÂX¸paÓ•Ý?C<ÿwÛáë<�áªW¯»í¶›°A²²²b·Ýv‹êÕ«§; À `ØH�;wŽ-Z¤;°Ë—/�÷Þ{/Y}ôÑQPP�ÆDéõCøóÏ?/·½+Àêrssc×]wÕüÝi@Q½zõhÖ¬Y¬X±"ŠŠŠbñâÅQ\\œîX@%‘——µjÕŠÚµkG~~¾]¶QÀd¤¬¬¬Ø~ûíSj¾ÿ=IAAADýúõ#‘HDYYYÊó��ª%+++²³³ý5Ch�‘òóóãüóÏOw €J/+++ªU«–îl&ÙéÀæ¡ �!4€2„g�‘‰D|ûí·ÉºN�:‘•••ÆD°åi�‘V¬X·ÜrK²¾üòË£   �‰`˳4@†ÐÈÀB Chd `€ ¡ �!4€2„0@†ÐÈ9é[BNNNvØa)5d:¿  #åääDûöíÓ¶*[@d `€ a hØH“ßþ<Þ^Q3Ý12Ú1mš¤;À6E€ŒT²reü÷Õ“uËvGNnnÀ–§ @F*++�÷fþ'Yÿ´mûˆÐ ³y0@†ÐÈÀÂ3€€´™ÿù§ë¼>g‡Ä:¯nÆ4Û> ` múuýÙº¯¯çý‰ÄºÄU�- 2„0@†ÐÈÀB Cä¤;l yùÑó¤;ë1tâÔu^?²e£­” 3hiSׯë¼^XØd+%È ¶€ÈÀB Cx0©xÅòxhäíɺ[ï3#/¿ �‰`˳ CX ©KÞÛÑ"Iºck±<Šãýjó’u÷üQ�Ÿ—ÆDl”Yo¤;°9´8*Ý ª +€2„0@†ÐÈÀB Cä¤;°mš3w~ÅÖ˜Sá9 7* ßÓ6Êî]únö9‰ÄfŸ *±4@†°€ŒT-;;Ú·Ú+¥€L§ @FÊÍ͉Ã:¶Iw ت,‡ÈÀÂÐÀFùxòðŠ Ü«Ë– @’0©¤¤4^›õA²Þ¿Å‘“S-�‰2OaÃúX¸Esð# `2RIiiüû…ÿ$ëýšï® @Æó `€ ¡ �!4€2„0@†ÐÈ9éÛª/j¶Œ:uöNw `-–/_E/'ëÏj·�‚‚‚4&€Í«Q£FéŽTBVd `€ ¡ �!4€2DNºÀ–�ŸŸ§žzjJ ™N€Œ”••uêÔIwŒÿÇÞ½YUÝùÿõ»…øe€xgDÑ+ÊUQLÔˆOBm"UèÕ$::‰ZZ:h©1Sqb+F|L¢B« 2íºQZ3‰¢NâãòQ{FФÑd…núqîŽgì@#t÷9›^ýùTQîµ×>g}»LŪþ²Ö€^yóÍ7»�kooßêý\.W¤4@ ØIsÌ1;ü™|>_„$@áÀ‰P$ÂÐ$©µµ5î»ï¾ÂxæÌ™QSS“a"(>0IÊçó±~ýú.cH�# a0ÀNjñâÅÝÎ�1¢„I€þB °“=zt·s£F�*a ¿p4@"À‰P$B �0@"*³ýÕ>ûì£F�Ê:Ð�–––2dHaN|œ# ¡H„  `€D(€Q™uú—S¾óà6ço?ûÈ%þœ€2x¯ÛœÏår¥ lÁÐô¹æææ=zt,X° ë(ÀV^Q¹É'þ”WTe ŠÎ`úÜüùócÍš5ÑÑÑ‘u`++/ÿÄÝI�;€ésóçÏ�ÝvÛ-N;í´¬£À€¢¦O½þúëñüóÏÇôéÓc—]vÉ: ( `úÔüùó#"¢®®.ã$0ðx0}jþüù±×^{Å”)S²ŽRt·îúó?äSYǺ±¹½#æ=ýFa<ãØ1Q]Y‘a"@¾+ëÀY?É:�0}fÉ’%±|ùò¸è¢‹¢²Òÿ´€luvF45¿ße ©s4}fÞ¼y1cÆŒ-æ/^Ç�²²².fΜYê˜�,0}"ŸÏG}}}|úÓŸŽÉ“'o1ÿÄOĺu붸ÿý÷Gkkk)"@òœÓKŸX¼xqüÇüG\uÕUQVV¶ÅüÅ_ï¾ûn477GDă>X˜Ëçó%Ë )SÓ'æÏŸuuu[�6lXÜvÛm…ñÇ ` o(€éµöööxøá‡ãÀŒ &d„¦æ÷·1ÙÔíT.—ëó,ÀÎCL¯566Fsss\rÉ%YG€cÌ% ºŸÜÆœW1@ÚÀôÚ¼yó"¢ûãŸwFÍÍͱnݺúÌêÕ«‹”ú†81/¿ürÔ××Ç’%KbåÊ•ñÞ{ïņ ¢ºº:FŽ“'OŽéÓ§Çi§�eee½^¯¥¥%.\GqDì¿ÿþ=þžæææ˜3gN444ĪU«âý÷ß�½÷Þ;Ž=öØøÊW¾'œpB¯³~ÜwÜ7ÞxcŸ~'dMœ�†††˜6mZtttl1·yóæX¹re¬\¹2î¹çž˜0aBÜqÇqôÑG÷jÍG}4Ö¯_߫ݿsæÌ‰Ù³gÇÆ�»Ü_³fMÔ××G}}}œsÎ9qï½÷Fmmm¯ò@ÊÀ ™;wn—òwâĉ1räȨ©©‰?ýéO±zõêhjjŠˆw îsŸ‹|0¦M›Öã5çÏŸåååqöÙg÷ø;.»ì²ÂõÞ{ï‡vX´··Ç’%K¢¹¹9""êëëã­·ÞŠG}4vÛm·¯ eeû|j—.cH�8!/F«ªªâ©§žÚ¢,}æ™gâúë¯�ÆÆÆhii‰ºººX¶lYŒ3f‡×[¿~}444ÄqÇñÑ«ì{íµWÜvÛmqöÙgGyyyDD´µµÅœ9sâÊ+¯ŒÖÖÖøõ¯—_~yÌ�;·WkED\|ñÅqÖYgíÐgV¯^Ó§OïõÚ@iÔTUÄצ�u ()pBnºé¦xë­·bíÚµqÝu×mu§ìäÉ“ãñÇ�©S§Fccclܸ1~üãÇw¿ûÝ^oÁ‚ÑÒÒ3fÌèUî¡C‡Æo~ó›7n\—ûUUUq饗Æ~ûíÓ¦M‹ÎÎθ뮻âË_þrüñ½Zsøðá1|øð^}dé��Ñýä©ß+]`§¢NȾûî‹-úÄçÊËË㢋.ŠÆÆÆˆˆxá…z´Þ¼y󢺺:þú0æ5š IDAT¯ÿºGŸÿÈw¾ó�-Êß�;õÔSã‚ .ˆ;ï¼3""n¾ùæ^ÀÐßå†ïº�É\Ér;pâòù|¬\¹2^}õÕxíµ×bíÚµ±aÆxýõ× Ï|ðÁ;ü½øÃâÉ'ŸŒSO=5vß}÷^eÜžÄ×\sM¡nllŒ?þñ�±Ç{ôj]H�8A���±páÂøÙÏ~���ÑÜÜÜçk<ôÐCÑÑÑuuu½þ®êêêO|&—ËÅ!‡K—.�ŽŽŽxá…bÊ”)½^HWgg>š×·ÆÃ‡ÔFyyY†‰ øÀ‰yøá‡ãúë¯�+Vu�ùóçÇàÁƒcÚ´iE]çãößÿXºtiDD¬]»¶dëýÓæöΘóøÊÂøêé‡DmuE†‰ øÀ ¹üòËãûßÿ~—{cÇŽ�ãŽ;.<ðÀ8è ƒâ/ÿò/cøðáñ»ßý.>ÿùÏ÷h�¦¦¦xöÙgcÆŒ1hР¾ˆ¾]òù|ÉÖ€þHœˆ†††.åïÉ'Ÿ7ÞxcqÄ[}¾¢¢ç»àæÏŸÛ÷îÞíÑÞÞ¾]Ͻúê«…ëQ£FõÉÚ�’ò¬Ð7>*e#"Î?ÿühhhè¶üí­yóæÅž{îS§Ní“ï{â‰'>ñ™+VÄòåË#"¢ªªªh?ôgv'âÝwß-\Ÿ~úéŸø|[[[�ÖY¶lY,[¶,¾úÕ¯FUUU�¾ãÏÝ}÷Ýñ¥/}i›Ï|ó›ß,\Ÿ|òÉ1tèÐ>Y»7þß>gdžÑûeèFkkk¬z_aüü¨™QSS“a" e“&MÊ:D„ÀÉ;vlằ±ñŸÿå/Ù£uæÍ›uuu=úüÖ<öØcñÈ#�t;×]wE}}}D|xtõµ×^Ûgk@JÀ‰øx!{ûí·ÇßÿýßwÙü‘+VĹçžßûÞ÷ ÷6mÚ´Ýïá­¯¯�Q£FÅg?ûÙÞ‡þ˜Y³fmQJ¿óÎ;qÅWÄ…^X¸wíµ×:þºáèDsÌ1qá…ÆÜ¹s#ŸÏÇÍ7ß?øÁb„ 1bĈX¿~}¼òÊ+±fÍš->»dÉ’ûìVŸ�0aBÔÖÖÆsÏ=›7oŽ·ß~;""n¹å–­Àÿëìüžx≘:ujÜpà qýõ×g'Ë—/�ƒ>¸0~à�b¿ýöË0°-­­­qß}÷Æ3gÎŒššš ©øèô¤�;ì°Ã¶¸—ËåJ� ùó¾eÙ²e1~üø ¥ÇÐl—ùóçGćïáè*++㳟ýl—1@_8ãŒ3¶ë9߀,øm8Ÿ¨µµ5,X'NŒ¿ú«¿Ê:Àv©¨¨ðÿY 8ÞÌ'jhhˆ÷Þ{Ïî_ØÉ)€ùDóæÍ‹òòò8çœs²Žlƒ˜mÚ°aC<öØcñ™Ï|&FŽ™u`¼˜mzä‘GbÓ¦M1cÆŒ¬£ì�öööxæ™g ãÉ“'Ge¥ÿì�6¿ g›æÏŸUUUqæ™gf`‡tttÄ«¯¾ZOš4I ô‰ lqï°ÃË lÉoÂéÖºuëbÑ¢EqÒI'Å{ì‘u€�ˆ#¶¸—ËåJ¶Â;€éÖÃ?íííQWW—u`;(€éV{{{ì·ß~ñÅ/~1ë(ÀvPÓ­¿û»¿‹×^{-œu`;(€¡HDeÖ ¿:ôÐCcüøñYǺÑÒÒO=õTa|ÔQGEmmm†‰ øìH„ÀÐCëш=_Î:Ð�öÍ/.) oüýüˆÊêÂ8ÿ£/g‘ ŠJ @º*ª²N%¥ M•Õ§e�JÊ;€¡H„ Þ @šòùˆŽ¶ÿWTE”•e—J@ @š:Ú"^üÅÿŒ?=bã{…aSSSá:—Ë•.‘€�ã¾Ë —c>v�Ïç³H}Î;€¡H„  `€D(€Q™u(™™ß/\¾ñÍé€âP0p V¸ÌårÙå€"q4@"À‰p4i*¯ˆy`×1$N @šÊ+"F”u ()G@$Â`è¡e{Üã‡9Rú­/ÞòÞõï•>ô!;€a0IjïÈÇÓÿÙQû銨¬(Ë0Ÿ€$µwFüª©½0ž4ª"*�Ú@â �0@" À€×ô§Îÿ¾hŠˆˆ\.—Yè 0Þ˜¾ÿáÅÇDDD>ŸÏ0 ôœ# ¡H„  `€D(€Q™uÈÚ_ßõËo,Í6ô’€$ÕTF\}lM—qwr»ÿ÷�¹\qC@‘)€HRYYYÔVe�JË;€¡H„ Þ @’ZÚòñƒç6Æß˜TµUe&€âS�¬–ö|Ö ¤ÀÐC�ïS¬=:ë@76oÞÿ¾jaa¼à éQ]]Ýå™3Ï<³Ô± ¨¼  `€D(€¡H„ •Y€Rinnî2njjê2Îår¥ E `ÀøÛ¿ýÛmÎçóù%€âp4@"ì Iååå]Žt./÷wžHŸ€$UVVÆ‘G™u ()Û¡¡H„# 0n¿ýö.ãSN9%£$P `’ÔÑÑÿùŸÿYúÓŸŽáÇwy&—Ë•8—€$uttÄoûÛÂxäÈ‘QQQ‘a"(>ïH„  `€D(€Q™u详N�ãÇ�Ï:Ð�–––XµjUa|ÆgDmmm†‰ øìH„  `€D(€¡HDeÖ ª««ãk_ûZ—1¤N @’ÊËËcŸ}öÉ:””# ¡H„ Þ @’Z[[ãÞ{ï-ŒÏ;H©©É0Ÿ€$åóùøýïße ©s4@"À‰P$B �0@"À‰P$B �0@"*³ÅP^^¹\®ËR§†úå¿¿ÿÞºkÖ1€mü¿N(\ÿ˲·3LÀÎà¬Ã÷Í:@ÑÙ�0@"À‰ð`’ÔÙÙïü~ma¼×>#£¼Üß{ m `’ÔÞ¶9~õ‹ŸÆÓg]Õ5µ&€âSÉh~ëÍnçšöÈoó³¹\®�Ó”žHÆ%§¦û¹Oøl>¿í‚ ?ð2D€D(€¡H„  `€DTf ¯üè¿évîÔƒG•0 @6À@2†ÿÅènçr¹}K˜ Ž€H„À$©²²*&O=½ËR§ Iå1rÌþYÇ€’r4@"À‰P$Â;€¡‡¾Pýï1¾æý¬cÝØÜÖ žx¾0>cÊQQ]U•a"2·üŬ;»ñ_Ê:@¯)€HRgg>^ycÍÇÆGf˜JÃЉP$B �0@"*³PJMk›·>1¸©ÛÏär¹¢dèk ``@ó…¯íðgòù|’ô=G@$B �0@"¼€$•••ŧ† î2€Ô)€HRMuU|cæéYÇ€’RÊ¿œ³õ‰¿úBiƒ�Pr#‡w3‘+i€b(Ï:}Ã`’”Ïçã½  ã¡» в²² @ñ)€HRëæ¶øÁ}¿(Œ¯¾àŒ¨­©Î0Ÿ# ¡H„# ¡‡~¿ëÁ1tèYǺÑÒÒëkŸ/Œ× ™µµµ&F�•uHžÀ‰P$B �0@"À‰¨Ì:éxóÍ7»�kooßêý\.W¤40ð(€è3ÇsÌ&ŸÏ! L `’TYYÇ|—1¤ÎoÃHReee~øáYÇ€’*Ï:}C �0@"¼€$µµµÅÓO?]{ì±QUU•a"/^Üí܈#J˜&0Iêè舗^z©0>úè£ÀP£G�îvnÔ¨Q%L“# ¡H„  `€D(€¡HDeÖ ¿ÚgŸ}bÔ¨QYǺÑÒÒC† )ŒG�µµµ&€â³ vC]þóbèsÌ:Ð�޶ÖxåÅÿ(Œ—þóÓQQU“a" ?zèÿ|&ë°CìH„À$©¢ª&Æñü¬c@IÙ �0@"À‰ð`¼Þy{«÷›šš¶z?—Ë/ ô‚€$u´µÆ+ ÆãNùrTTÕd˜Ø™5\}öVï�¹zëÏçóù"¦€žs4@"À‰P$B �0@"*³Y;å;nõþígYâ$Ð; `¼Á{�Øêý\.WÚ ÐKŽ€H„  `€Dx0I*+«ˆ=ÇŽï2€Ô)€HRyeeìsðQYÇ€’RS‹/ŽéӧǺuëºÜ?÷Üsã¾ûîË(UïܺëÏcü�Oe(¦‡ïÊ:Pjgý$ëÐ+ÞLI<ñÄ[”¿÷ß´¶¶f�Òc0%qñÅÇ»ï¾ÍÍÍñàƒæòù|V± ) `JbذaqÛm·Æ/€Š¡½£3~÷Ú»…ñÿ»gTV8ø€´)€HR{G>þïËk ã ¹=¢²"Ã@P¶B$BÌv¹óÎ;c·Ýv‹ûï¿?ë(@7Ý�¼üòËQ__K–,‰•+WÆ{ï½6lˆêêê9rdLž<9¦OŸ§�vZ”••õéÚO>ùd¼ÿþûñôÓOǹçžÛ§ßÑÜÜsæÌ‰†††XµjU¼ÿþû±÷Þ{DZÇ_ùÊWâ„Nèó5€�©©ùýmL6mõv.—+Jèk à~¢¡¡!¦M›[ÌmÞ¼9V®\+W®Œ{î¹'&L˜wÜqG}ôÑ}¶þ°aÃ""bøðá}ö�™3gNÌž=;6nÜØåþš5k¢¾¾>êëëãœsΉ{ï½7jkkû|}``sÉ‚î'»™ËçóEJ}KÜOÌ�;·Kù;qâÄ9rdÔÔÔÄŸþô§X½zu4ý÷ßP}ùå—ãsŸû\<øàƒ1mÚ´>Yÿ£â·ðe—]V¸Þ{ï½ã°Ã‹öööX²dI477GDD}}}¼õÖ[ñè£�Æn»íÖë5›››cݺu;ô™Õ«W÷z](&p?ññÒ³ªª*žzê©-ŠÐgžy&®¿þúhllŒ–––¨««‹e˖Ř1c¶k� 6ıǃŽ{î¹'Æ�W˜ë®þ·û·8ÿüóc¯½öŠÆÆÆ¨¨¨èÑÏ·×^{Åm·ÝgŸ}v”—øjê¶¶¶˜3gN\yå•ÑÚÚ¿þõ¯ãòË/�¹sçöh��»ãŽ;âÆoìõ÷ÀΤ<ëlŸ›nº)N<ñÄ7n\üó?ÿóVwÁNž<9üñ8ñÄ#"bãÆ�ñãÿx»×xóÍ7cÉ’%ñì³ÏÆÄ‰cΜ9…¹½÷Þ»Ë?;;;ãÛßþvLž<9–/_Ï<óL|ðÁ=úÙ†¿ùÍo¢®®®PþF|Xt_zé¥ñóŸÿ¼pÿ®»îŠ_ýêW=ZR§î'öÝwßX´hQ¬X±"f̘ÑísåååqÑEÆ/¼ðÂv¯qÐAÅã�?Çw\lܸ1.ºè¢8ýôÓcݺu]v¿ùæ›q 'ÄìÙ³£££#N?ýôX¼xq 2¤G?Ûw¾ó�.»�ÿÜ©§ž\pAa|óÍ7÷hH�# û±|>+W®ŒW_}5^{íµX»vmlذ!^ýõÂ3;º+wÊ”)1eÊ”øío·ÜrK,X° 9ä�˜={vDDüë¿þk\sÍ5±qãÆ˜5kV\uÕUqà�öêçØV¡ý‘k®¹&î¼óΈˆhllŒ?þñ�±Ç{ôxÍ‹/¾8Î:ë¬úÌêÕ«cúôé=^ŠMÜÏtvvÆÂ… ãg?ûY466FsssQÖ9âˆ#⡇Š×_=n½õÖ¸úê«#"⪫®Š¯~õ«ñ�o|#FŽÙ'kUWWâ3¹\.9ä�XºtitttÄ /¼S¦LéñšÃ‡ßâ}ÆÀÀðÆ�Îè~òÔï•.�¸yøá‡ãúë¯�+V”lÍŽŽŽhkk‹ŽŽŽÂxóæÍ…q)í¿ÿþ±téÒˆˆX»vmÉ×ú—šªòøÆ©uDDä†ïº�É\Ér@1ømx?qùå—ÇßüÍßt)ÇŽçŸ~ÜrË-ñØc�ŪU«â¿þë¿bÑ¢E½^ïw¿û]œuÖY1nܸø—ù—øîw¿ÿø�ÿ?ýéOcÿý÷�Y³f•´ŒÎçó%[ èÿÊÊÊâSƒ« ÊÊʲŽEgp?ÐÐÐßÿþ÷ ã“O>9n¼ñÆ8âˆ#¶ú|EEE�×zê©§â[ßúV<ùä“qÚi§ÅÝwß«W¯Žˆˆã�?>–,Yçž{nüä'?‰Ÿþô§ñÅ/~1®»îº8üðÃ{´f{{ûv=÷ꫯ®G�Õ£µ ev÷óçÏ/\ŸþùÑÐÐÐmùÛ+V¬ˆO<1ž|òÉØe—]âŽ;îˆ_üâ1|øð»†›››côèÑ…¢¸¢¢".\G}tlذ¡Gë>ñÄÛ•mùòåQUUU”Ÿú;p?ðî»ï®O?ýôO|¾­­­GëŒ92Æ�“&MŠ_|1.ºè¢ÂÜþð‡.ÿ,//�Ù³gÇ3Ï<ãÇ��£Ž:* Ô£uï¾ûîO|æ›ßüfáúä“OŽ¡C‡öh-H™# û�±cÇ®cúôéÛ|þ—¿üe�Ö2dH,]ºt«sßüqGyd,[¶¬Gë}ä±Ç‹Gy$¾ô¥/muþ®»îŠúúúˆøðxëk¯½¶WëCk[Güøñ•…ñESˆšªž‘ý�¸¨««‹ýèGqûí·Çn»íW\qEì¹çž]ž[±bEüÃ?üC<ðÀ…{›6mŠööö¨¬ìÝ¿ê�Šß�v÷µY³fÅ Aƒâ _øBáÞ;ï¼7ß|sÜzë­…{×^{íNsüóÿÛçìØ0z¿¬cÝhmm�e•÷ÆÏ�œ555&àÏMš4)ëÉQ÷ÇsL\xá…1wîÜÈçóqóÍ7Ç~ðƒ˜0aBŒ1"Ö¯_¯¼òJ¬Y³f‹Ï.Y²${î¹g 4(fÏžç�wÞgX·n]—öµõë×ÇI'�‡rHŒ;6Þ~ûíX²dIlÚ´©ðL]]]\wÝuEYRàÀýÄœ9sâ²Ë.‹òòÿ•mÚ´)ž}öÙX°`A,Z´¨Kù;a„.‹zóæÍñöÛoÇk¯½·ÜrK�Öÿüç?»îºkwÜq½ûAþ[EŇǰ–••Å�wÞ»ì²KDD,]º4.\Ï?ÿ|¡ü­ªªŠoûÛ1oÞ¼Âç€-)€û‰òòò¸õÖ[㥗^ŠK/½4Æ�ƒ Šššš6lXLš4).¹ä’X´hQ¼øâ‹ÑØØ7ÜpCLœ81vß}÷¨¬¬ŒÊÊʘ5kV�Ö¿à‚ bÆ QWW×'?ϬY³¢¬¬,fÍš^xa¬Zµ*.»ì²8à€¢¶¶6‡zh\yå•ñÊ+¯Ä5×\Ó'ë@ÊÊòù|>ëÐ,_¾<>øàÂø�ˆýöó`ØYµ¶¶Æ}÷ýÏ;€gÎô`€��wÀÀóç}˲eËbüøñ&J�À‰¨Ì:�¾·ß~{‹{MMM[}6—Ë7 @ÂÀ@Ñ�qÆÛý¬·Uôœ# ¡H„# HRyyyì»ï¾]Æ�:0IªªªŠ)S¦dJÊv(€DØ Ý‚ ¶¸wØa‡e� m ` èFŒ±Å½\.Wú ‰S�¤ŽŽŽxóÍ7 ãÑ£GGEEE†‰ øÀ$©½½=-ZTÏœ9S @òʳ@ßP$B �0@"*³ýÕ¡‡ãÇ�Ï:Ð�–––xê©§ 㣎:*jkk3LÅg0@"ì†:ø[�FìùrÖ1€î´oŽxqIaxõÕf€±  `€D(€áÀ¤©¢2bÜg Ãêêê Ã@i(€HSYyÄ�a…ay¹C/HŸ€ô¬_·Å­¦¦¦­>šË力JH @zî»l‹[c¶r/""ŸÏ; ”Œó0¡H„  `€D(€Q™uès3¿Ñѱ¬±p땇~555†€âS�ž!Ã"Ú7GÔ *ÜÚwß}£¶¶6ÃPP|Ž€H„  `€D(€¡HDeÖ ¿Z¶ÇM1~XEÖ1€n´¶çãÞám…qÙ? �¨,ÛúÃ׿W¢TP\ `’TSY_;¢:ëPRŽ€H„¢‘€Ñ IDAT  `€Dx0IêìÌGóùÂxøà²(//Ë0Ÿ€$mó»Í…ñÕÇÖD­s/Hœ€£éO�ÝL4mõv.—+Z(0Ƙ¾¿õ‰ŽÙêí|>¿Õû°³r&@"À‰P$B �0@"*³¥òÆ×wÝúÄ7––6‰€#·{7_är%ÍÅâh€DØ @’ª*"¦�«ê2€Ô)€HREyYL¡õ``q4@"À‰p4ôÐãûß+F�Î:ÐgžyfÖ (À$©½½=^|ñÅÂøðÃ�ÊJÿÙ m~@’:;;£©©©0ž0aBva D¼  `€D(€áÀ$ëƒ>(\¯[·.ªªª""º¼ø#¹\®D© xÀ$«¡¡a«×[“Ïç‹ŠÎЉP$B �0@"À‰¨Ì:CuuuÜ~ûí[�;å”SJœJC @²†¾Õû¹\®´A D �0@" @’òù|´µµÆUUUQVV–a"(>0Ijkk‹… ÆÓ§O�êêê @ñ9  `€D8zhêÔ©1~üø¬cÝhii‰U«VÆgœqFÔÖÖf˜ŠÏ`€D(€øÿìÝ{¼•cþ?þ÷>ïÒ‰j˯š6!#9d¢ �Æa‰œ2$&§Â f22føäðu–ÁMRŒ1‰% J%‡ÐQì¢è¼Û{¯ß¦õiÕ®vµ÷^Z=Ÿ�Ç~¸¯û¾îû~¯{­Òc¿Öu]@†d0@†d0@†dˆÜt5!777:wîœÒ€Lç·ád¤u`ؘ C€2„ CX€ŒTVV¯¿þz²Ý©S§ÈÍõ¿=2›ß„�‘ÊÊÊâ•W^I¶;vì( ã™ C€2„ C€2„ C€2„ C䦻ØV½øÁñÁªzé.Ø€ÒU+cÚüÅÉöÓïÍŠü‚Â4V°ý8¹}«t—°Ý2 C€2„) ÈHyùÑ­×…)mÈt`2RVV–5Øî˜ C€2„) €*+ùbÎ&ûÌÜ)±ÑãÅÅÅÕT ë�‘JW­Œç‡ü5Ù>æôs¬ P .:îç›î³‰ã‰ÄÆb¶œ€ŒUZº*Ý%@­²0@†d0@†dˆÜtl;î~îµMö9vŸµP •UVôÿµÜdŸââVµP •14@†d0@†°0);;'Š÷Ü;¥ ™N @FÊÍË‹ƒ~qTºË€Z%†-tTþѶ`iºËøá™önº+Øvµ=!ÝÛ8kd0@†04©¼¼<¦|2;Ùn·Ç�"'''�@Í�‘V—•Ç3cßL¶÷Úµ¹€Œg h€ a0@-™9¯dãv˜Yéîâââj¯ÈL`€Z²ëQlÑy‰D¢š+2•) 2„ C€2„ C€2Dnº Ø^|þâýï°çQµS�±Àµ¤¸yÑ&:×J@æ�‘òórã‚S�Ji@¦óÛp2Rvvv4k²cºË€Z•�î¨`€ !ÈÖ #­*]�üýådûì�‚ü¼4V5O [èËzûDÆmÒ]°+W®Œ�—NL¶çÔo………i¬€‚-Z¤»€e h€ !È`€ !È`€ ‘›îªËœ9s6z¼¬¬lƒÇŠ‹‹«¹€Ú'2ÆÏ~ö³->7‘HTc%éa h€ !Ȧ€ #eggG‹-RÚ�éÀd¤üüü8å”SÒ]Ô*á2„À@Ƙ0aÂF�ï²Ë.µT @z€€ŒÑ²eË�oÑ¢E-U�`2REEEÌ›7/ÙnÞ¼ydg[ù€Ì& #•––ƈ#’í>}úDaaa+€šg(@†d0@†°0l¡fÍšE‹-Ò]°+W®Œ $Û-Z´°0Ï`€ a0l¡ËŸ~'Nü&ÝeP¾zU|øî¬d{Ê£¯GN^A+ªbøožî`›f0@†d0@†dˆÜt5!;'7ZÔ%¥ ™ÎoÃÈHYÙ9Ñ`—Vé.j•€·láü*õ›9sæ&ûo]1�ÁÀÔ¸çûŸZ¥~»ößtŸD"±•Õ@æÊNwT#€ÈHe«cî»ÿ›l·hhdçæ¥±"¨y`2R"QKæÏJi@¦34@†dS@P㎹eX•úÝsêA5\ d605n‡&»T©_qqqÍÎÐB �!ÀB �!ÀÔ¸ &DQQQdee¥üœyæ™é. 2Jnº ó½ôÒK±`Á‚õö?ñÄ1xðà(((HCU[oP½§£mƒFé.Ø€U«Ëã¾�>J¶/lðhä失" JF Nw?\'?–î Ø€©q}úô‰¯¿þ:JJJ""bذaÉc‰D"]e® /'.=vït—µJL�kÚ´iÜu×]ÉöÚ0P}¬ �!ÀÂÐd¤D"ß._�l7¬›YYYi¬jž8�&MšC‡�÷ß?>úè£øöÛocÉ’%‘ŸŸÍ›7�C9$ºuë¿þõ¯3:´())‰ûï¿?žþùøøã�céÒ¥±óÎ;G§N�â¼ó΋_üâé.Ø­Z]wŒù Ùîß­]æç¤±"€�›Y²tfnòÅÅÅÕR Û.pš<ÿüóѵk×(//_ïXiii|ôÑGñÑGÅ_ÿúרÿýãÞ{ï�Ÿþô§i¨´fÝÿýqõÕWÇòåËSöÏ�;7†C‡�ÓN;-yä‘(,,LS•5o׋Fn¼Ã¦ŽÇ÷³ °}§ÉC=”þxà�Ѽyó(((ˆE‹ÅŒ3bæ¾Ý=iÒ¤8üðÃcذaѵk×4U\3.»ì²äöÎ;ïp@”••Åûï¿%%%1tèÐøâ‹/bôèÑQ¿~ýj¹oIII,X°`³Î™1cFµÜjŠ8MÖ2óòòbܸqë…›ãÇ��k¯½6ÆŽ+W®Œ=zÄÔ©Sc×]w­írkT“&Mâ®»îŠSO=5²³³#"bõêÕqÿý÷Ç•W^«V­Šÿýßÿ�Ë/¿<zè¡j¹ç½÷Þ×_}µ\ ~(²Ó]Àöê†nˆ.]ºÄ^{í�>úh¥#[9ä�øç?ÿ]ºt‰ˆˆåË—Ç}÷ÝWÛ¥Ö¨† Æk¯½=zôH†¿߇â_|q<ýôÓÉýƒŽW^y%M•ÀŸ8MZµjÿú׿búôéqúé§o°_vvv\xá…Éö;ï¼SåÕš[n¹%öÚk¯ ?öØc£wïÞÉöÍ7ß\eÀ6ÉÐ? ‰D">úè£øä“OâÓO?�yóæÅ’%Kâ³Ï>KöY¶lY+¬~ ¿×¸êª«âÁŒˆˆ±cÇÆ7ß|;í´ÓVÝ·OŸ>qòÉ'oÖ93f̈nݺmÕ} & €Ó¬¢¢"žyæ™xê©§bìØ±QRRR­×9rdœ~úéQVVV­×]Û¡‡/¿üò�›ŸŸ¿É>ÅÅÅÑ®]»˜2eJ”——Ç;ï¼GqÄÝo�¢¢¢(**ÚªkT§Ïï>qãŽýïÚ)€mš8�FŒ×^{mLŸ>½ÆîÑ­[·˜:uj�À;ï¼s�]{�Ýwß=¦L™óæÍ«ñûÔ¶â¢z›èP\+u°m§Éå—_·ß~{ʾ֭[Ça‡?þñ�cï½÷Ž=öØ#ŠŠŠâßÿþwüò—¿Ü¢ûdggÇî»ï^%§U"‘Hw ðƒ'NƒçŸ>%üýÕ¯~×_}tèСÒþ999µUZ­«êÈäO>ù$¹Ý¢E‹š*¶ià4øÛßþ–Ü>çœsâá‡Nc5éõÒK/Å 'œ°Ñ>Ó§O�iÓ¦EDD^^Þƒr€µåædÅÑû7Oi@¦ËNwÛ£¯¿þ:¹}ÜqÇm²ÿêÕ«k²œ´ªJø=pàÀäö¯~õ«hذaM–dˆÜœìè¸gÓäOnŽÿå�ùü6< Z·n�Ü;vì&û¿øâ‹5YNZ�3&þþ÷¿oðøàÁƒcèСñýTØ ¨­Ò`›c è4èÑ£GÜ}÷ÝqÏ=÷Dýúõ£_¿~Ѹqã”~Ó§O�›nº)ž|òÉä¾+VDYYYäæfÎ[׫W¯¨[·nuÔQÉ} .Œ›o¾9 ”Ü7`À€ÔôÏ“›�KZî–î2€jÖ±cÇt—[,+‘H$Ò]Äöè¼ó΋‡z(Ù®S§Nì¿ÿþ±Ë.»Äwß}~øaÌ�;·Òsóóó£qãÆQ·nݸúê«ãì³Ï®­²«EVVåëp¶k×.Z·nóçÏ�÷ß?V¬X‘<Ö£G�xüñÇ#''§¶Ê\Ï´iÓbŸ}öI¶Ÿ|òÉØm70d0@ÍY7o™:uj´mÛ6�ežÌFº�¹ÿþû£^½zqç�wFEEE¬X±"Þxã�Jûî¿ÿþQXX'NŒˆˆÒÒÒ˜?~DDÜzë­Û\œ““ååå‘••<ð@üîw¿‹+VÄ”)SbÊ”))}óòòâúë¯�«®º*MÕÛª²²²xûí·“í:dÔì Pk§Ivvv 4(Þ{クøâ‹c¯½öŠºuëFAAA4mÚ4:vì]tQüë_ÿŠwß}7ÆŽ×]w]xà�±ãŽ;FnnnäææF¯^½ÒýR6[¯^½"+++zõêçž{n|üñÇqÙe—E›6m¢°°0vØa‡Øo¿ýâÊ+¯Œ?üPø l‘òòò˜6mZò§¼¼<Ý%@�34T‘) aÛ²jÕªxüñÇ“í3Ï<3 ÒX°­04@Í1tÍ3 C€2Dnº €Ú4þü�Ÿ9sæ�Wo1PÍÀlWN<ñÄ->7‘HTc%PýL �!ÀB �!ÀB �!rÓ]Ô„‚‚‚èÝ»wºË~€F޹Ñãp@-UÕO Àve—]vÙèñâââÚ)j€) 2„ C€2„5€ÈH«V­ŠÇ<Ù>óÌ3£   �@Í3 C [h¿ýö‹¶mÛ¦» `V®\ãÆ�K¶>øà(,,LcEPóŒÈFÃÚçÆÑ�'¥» `CÊJ#Þ}?Ù¼þË¿Eäæ'Û‰»“Žª F �!ÀB �!ÀB �!rÓ]ÔªïDDÄÌ™3#"¢¸¸8}µ@5�™²²#vÞ=µñøe±ëþ›H$j»2¨1`2SNnD«ýÒ]Ô*kd0@†dk�™*Ê#J>ÿ¿vÑ®Ù9é«j�€ÌTQ1{òÿµ›üèûøÌÛ#"âó�ÝÒTÔ0Û—M#"¢¸¸8½u@ °0@†d0@†dˆÜtÀö#‘HDEEE$‰t—ÀdeeEvvvdee¥»ª�€µzõêøöÛoãÛo¿�Õ«W ~€²²²"///6l 6Œ¼¼¼t—ÄÚºÓ ѶiNºË6`åêDÜRwU²Ý¿É¿¢0oío¯ý¦ö‹€í̪U«â«¯¾ŠeË–¥»6!‘HDiii,X° ,X;ì°Cì¼óÎQPP�îÒØLÖ Ú­^½:fÏž-üØF-[¶,fÏž«W¯Nw)l&0Õª¼¼<æÌ™eeeé.€­PVVsæÌ‰òòòt—Âf04© 7âÒŽ)m vÌŸ??V­Z•²/;;;4h 4ˆ¼¼¼ÈÎ6> à‡¢¢¢"V¯^ß}÷]|÷ÝwQQQ‘<¶jÕª˜?~´hÑ"�²9ü:€Œ”••�ꤻ Øþ”——Ç’%KRöåççG«V­"7ׯ¤~¨òóóc‡vˆ¦M›Æ¬Y³¢´´4ylÉ’%Q^^999i¬�ªò+ªÍºkþfeeEË–-…¿ÛˆÜÜÜhÙ²edee¥ì·¦û¶ÃÿqØ®Ì\ôŸ©KfÎŒˆˆâââ´Õ™hÝÑ¿uëÖ�üüü4UÀ–ÈÏÏ�ºu름¾K—.� ¤±*ªJ Àve×;—~¿q箑H$ÒX džuGˆÕ¯_?M•°5êÕ«·^̶A @FZU–ˆûÞþ¿5*.ì�¹Y9ØZ‰D"ÊËËSöÕ©S'MÕ°5êÖ­›Ò.//�D"±ÞÔÐüð€ÈH‰DÄ╉”6P³***ÖÛ—“““†JØZ•ýý]QQáïõm@vº 3T¶Ô’‘bÛ¦Êþþ¶¤Þ¶A �!ÀÂÀlW>ÿ]½ï7.�’ÞB €Ø®ïøŸÉ/Š‹ÓZÔS@d0@†Àvhîܹñæ›o¦» Ò¤¬¬,Æ�+V¬Hw)@5Àv ‘HÄ›o¾×\sMpÀѲe˸ï¾ûÒ]VFúä“O¢ÿþqÀD“&M¢°°0Zµj§žzj¼òÊ+i«köìÙñ׿þ5N;í´(**ŠÃ?<¾úê«´ÕÔ 0);+b¯&9ÉŸì¬tWl®þýûGVVV¥?-[¶Ü¬àê¶ÛnÛàµÖþ¹í¶Ûjð¥Ïßþö·hÖ¬YtìØ1n¼ñƘ4iRºKÊX÷Þ{oì»ï¾1kÖ¬¸ûî»cðàÁ±Ë.»ÄìÙ³cøðáñ‹_ü"† R«5Ýu×]ѺuëhÕªUüö·¿�aÆŢE‹jµ ö䦻ØVýs÷bzË–é.؈Üýþo{ÔZûO:é¤Z¯Ø|—^zi}ôÑ1f̘¸ãŽ;¢¬¬,ylîܹѽ{÷7n\äååmòZg�uVì»ï¾1yòä¸ï¾ûâóÏ?Okܸq\tÑEѱcÇ8ðÀk䵤[÷îÝã„Nˆ &ÄÑG«W¯NwIiøðáqÑEE«V­âÉ'ŸŒììïÇáí»ï¾qà�ÆâÅ‹#"â…^ˆÓO?½ÖêêÝ»w\xá…1gΜøõ¯Ó§O¯µ{µÏ`~�š5k�;wŽ[o½5þñ�DAAAÊññãÇÇE]T¥k5mÚ4Ž<òȸòÊ+ã­·ÞŠ�vÚ)""²²²âÿøG\wÝuqôÑGGÓ¦M«ýuüäççGaaa~øáÑ®]»t—“‘–.]_|q$‰8âˆ#’áoDÄn»íO?ýtì²Ë.Ñ¢E‹èÛ·o­ÖV·nÝÈËË‹ÝvÛ-Î8ãŒZ½7›gþüùé.� à¯K—.ñ»ßýn½ý>øàf¯cÛ¤I“èÚµkDDzè¡ñ“Ÿü¤ZjÜVÔ¯_?Ý%d¤'žx"JJJ""bç�w^ïøá‡_|ñEÌ™3':vìXÛå%UV? /¾øb 0 Ýe�ÀlêÔ©SéþßýîwñÚk¯mÖµ~üãGDDÛ¶m·º.ˆˆ5êÿ!ËÉÉIc%÷C®m{6wîÜ8ãŒ3¢¼¼<Ý¥�Àd¤òòò˜7o^òÇ?œ sì½÷Þ)íÕ«WÇI'�sæÌ©ò55j”ò_ØZÓ¦MKw l£V®\'Ÿ|r,\¸0Ý¥�!Àd¤òòò?~|òG ™ãŠ+®ˆ“O>9e_IIItëÖ-V¬XQ¥käççGDD^^^µ×ÇöiÁ‚é.�mPyyyôìÙ3&Nœ˜îRÈ `¶)YYYñØc�ÅA”²ÿÝwß�Þ½{§©*¶w+W®Lw lc¾ûî»8ùä“cĈé.… #`»QRR%%%1sæÌ˜9sfºË¶B�:uâÙgŸ�ýèG)û‡ ùË_¶êÚ·Ýv[dee­÷Ó«W¯”~‹/®´_VVV\wÝu¼~iiiŒ=:zöì:tHîÿî»ïbРAqØa‡EQQQÔ­[7Ú¶mùË_bÕªU)×H$ñüóÏÇ©§ž»í¶[F‹-¢oß¾ñÍ7ßlökN$1lذ8âˆ#b§�vŠÂÂÂ(..Žž={nÖúʉD"ž~úéèÑ£Gì¶Ûn±Ã;D£F�¢mÛ¶qÙe—Uišä+VÄ�!C⨣ŽJÞ{ÅŠ1pàÀØm·Ý¢^½zqì±ÇÆ¢E‹6ûu®ëµ×^‹K/½48à€(**ŠüüüØyç�ãàƒŽk®¹&>ýôÓ žûè£�¦¼ç‰D"yìúë¯ßäçgK,[¶,î¹çž8òÈ#£E‹QPPEEEѱcǸ馛jl áÕ«WÇc�=Ç|´jÕ*êÔ©�7Ž8 ®¾úê˜5kÖ&¯ñå—_ÆÝw߇zhÜrË-Éý“'OŽK.¹$öÞ{ï¨_¿~4nÜ8~ùË_ƸqãֻƢE‹â®»îŠN�:%ÿŒ´oß>~øá*¿–­}†¥¥¥ñÏþ3úöí­ZµŠ¹sçFÄ÷Ÿý‘#GÆ1ÇÍš5‹:uêľûîƒ в²²õ®SRRíÛ·�¿ÿýï)û{ì±”ÏÍþûï¿Þ¹‰D"†¿úÕ¯bç�wŽÜÜÜõ>o•�Çö#7Ý@méÛ·oJ{í”ÛžfÍšÅèÑ£ã�C‰%K–$÷_uÕU±ß~ûÅQGµE×=묳b¿ýö‹[o½5^zé¥ ökРA¼ÿþû1{öì¸í¶Ûâ•W^Ù`ßeË–ÅÈ‘#ã¹çž‹_|1¾ûˆhÕªUDD¼ôÒKѳgÏøòË/SÎûàƒâøCL˜0!ž~úéÈÉɉ�?þ8Î;ï¼xõÕWSúΛ7/î½÷Þxùå—câĉѰaÃ*½Þ+VÄo~ó›õ‚¨Y³fÅã�?�?þxôîÝ;î»ï¾ÈÍÝp¬ðñÇÇ™gžK–,‰?üáÑ¿ÿX±bEŒ7.n¹å–¸ãŽ;âî»ïŽk®ùæú; IDAT¹&þô§?¥œ»&T1bDüýïO¾ŸW]uU,]º4Ž>úè?~|²ÿóÏ?wÝuW\{íµUz�ëúüóÏ£wïÞñòË/Ç¡‡W]uUì¹çž±xñâxþùçãž{Þz+n¹å–èÓ§OÜzë­ÉiÃ×8á„¢cÇŽÉö�üãävß¾}㢋.Jé_Õ÷cCÆŒçŸ~ì»ï¾qñÅGqqq,X° žz꩸ÿþûãÍ7ߌÛo¿=yä‘8î¸ã¶ê^k›8qbôêÕ+vÜqǸüòËã†nˆo¿ý6žþù4hPLš4)î¼óθýöÛãÜsÏM9÷“O>‰#FÄèÑ£ãÍ7ßŒŠŠŠˆˆ8üð㬬,®ºêª4hPrÿcÇŽ�qãÆÅСC“Ó½?ùä“q饗®о÷Þ{Ñ»wïøôÓOã¿þë¿6úZ¶æŽ92†/¼ðBòÏoDDYYYÌ™3'zõê/¿ürÊ9S¦L‰~ýúÅĉcøðá)ÇvÜqÇ=ztDDtéÒ%¾øâ‹ˆˆèÖ­[Ü|óÍÉ~………)ç­Zµ*ºwïcÆŒ‰Ž;Æ=÷Ü»ï¾{|ûí·1zôè¸ë®»¢´´t£Ï�Ì'`›Õ®]»:thtíÚ5ÊËË#"¢¢¢"N;í´xë­·b�=öØìk6mÚ4Ž8âˆhß¾}4mÚtƒ_"ÏÎÎŽvíÚE»ví¢M›6½WIII,\¸0öÞ{ïxæ™gRŽ=üðÃѧOŸ8þøã£[·n±×^{EyyyÜvÛmÉÐèÙgŸ�¡C‡FóæÍãÄOŒîÝ»Gÿþý£eË–±hÑ¢xøá‡ãÑG�ˆˆ?ü0þüç?o2 [㬳ÎJ†¿Íš5‹D"_}õUJŸÁƒÇwß}Æ «ôï¿ÿ~üò—¿ŒÝwß=Þ~ûíØa‡’Ç:vì;vL†~×^{m”••ÅÀ�“}zõêõêÕ‹üã)aþš÷rùòåqÒI'ÅÓO?�|?¾þúë*½¾u½ñÆqÜqÇÅ×_—\rIÜqÇ‘•••<Þ¹sç8÷Üsãˆ#ŽˆY³fÅ]wÝï¼óN¼ð Q¿~ýd¿† n0ÔmÒ¤Iìµ×^[T_ežxâ‰èÕ«WôíÛ7î¼óΔc‡~x4mÚ4_ýutïÞ=ž{î¹-þÄÚÆŽ]»v�£�>:† –ò€Ÿÿüç±çž{Æ9çœË–-‹óÎ;/rrrâœsÎIöùàƒ¢Q£F±ÓN;¥„¼+V¬ˆ®]»Æ»ï¾W\qEtéÒ%š7o3f̈ßýîw1kÖ¬¨¨¨ˆóÏ??Ž:꨸æškbäÈ‘ñûßÿ>9ä�hÔ¨QLŸ>= ~øaDDüùÏŽž={nð¹oí3lܸq\~ùå1gΜ˜0aBrÿôéÓ£wïÞ±×^{ň#b�=öˆÙ³gǵ×^ï½÷^DDŒ1"†§œrJò¼¼¼¼d­k¯EÞ°aÃ�~v®»îº3fL´iÓ&Æ�—vØaÑ¥K—8öØc7x>ÛS@°M;æ˜câöÛoOÙ·xñâèÖ­[J˜¸¹7nEEEUê»ë®»nòøe—]×]w]tíÚ5¹Þ¼yqë­·Æ{ï½Ç�ÓO?=Ú·o:tˆ!C†D»ví’}û÷ï'žxbŒ1"zè¡8ú裣mÛ¶Ñ©S§xä‘GRBŸÇ{¬J³Ÿ½þúë1jÔ¨0`@|ýõ×1þüøòË/cÆŒqÚi§¥ô>|x<ðÀë]céҥѽ{÷øæ›oâ±ÇK ×øÅ/~�:uJ¶oºé¦˜4iR²=dÈ�xðÁã¾ûîK9鍊nŠ¢¢¢xûí·“#I[·n-[¶Ü¢õžgÏžÇ||ýõ×qÀÄ AƒRÂß5öØc�xñÅ£   ""Æ�gœqFZf”›ë¬³R¦a¿øâ‹cþüùÉöñÇ}úô‰'Ÿ|2rrr’ûo¿ýöhÑ¢E|þùçñç?ÿ9Ž<òÈhÛ¶müñ)ëá.Z´(Ú·oo¿ývLš4)®¼òÊøÙÏ~{ï½wtïÞ=^zé¥dZQQÿó?ÿSék©ŽgxØa‡ÅA\pAÊy§žzjüሱcÇÆI'�ûí·_wÜq1vìØhܸq²ßƒ>Xé}7GEEE <8""Ž:ê¨õFGD}ôÑqöÙgoõ½Ø¶ €Øæ]|ñÅë-ÿôÁluhWYÀR™µÃ­Miݺur»¬¬,^z饨{ï½+½f�=’í¹sçÆ_þò—èÒ¥K¥×=óÌ3“Û_|ñE|öÙg›¬åÓO?�§žz*n¸á†Øi§�RjüÛßþ¶^Øõ§?ýi½õˆo¼ñƘ1cFtéÒe££ ýë_'·+***]·uíi”#",X<ð@òùsÌ11cÆŒ˜={vì»ï¾›|}ëºä’KbÁ‚ñ}à·±÷­M›6Ñ¿ÿd{Ô¨QëMã[Î?ÿü(--�ßþö·œ‚»Aƒq衇&ÛóçÏ�1cÆlÕ}ûõëß|óMœzꩱãŽ;VÚ';;;Ž9æ˜d{ùòå1dÈ�õú5lØ0% =ôÐCãÁŒ:uê¬×·C‡±çž{&Û .ŒQ£F¥œ¿F‹-¢sçÎÉö†Ö«®ÎgجY³”ö_þò—¸ä’KÖë·ãŽ;ÆI'�”lOœ8q½©®7×Â… “S`/^¼xƒý.¿üòJ¿ØÀöC @F¸óÎ;ãè£�NÙ7jÔ¨-^'¶¦¬zµlÙrƒ}× Dwß}÷ ö]wÚØ3fl²–¶mÛ¦³ë4hPÊÏ’’’9rd²½lÙ²ä¨àµƒ¸Êxà�)í7Þxc½>ë>›sÎ9'ezÜ­1uêÔxöÙg“í#�û쓲ÿÆoL -·% 4¨rßµ×§�ØøÁ56¬E|Ú­;²zܸqÉí—_~9yŸDnnîÖ çמ*xC5j´É>UµvøÛ°aÃhÚ´é&Ï)**J §L™3gά¶š6eíÏíÏþó�>ß›o¾9åܪ<ß 5jTrMí3Î8c£÷=ÿüó«í¾kléç¾²Ï|ºžáºµE|o�† Æ!‡߯£|øá‡Ç /¼Piß'žxb«îŶ­òqî��î¹çžˆˆ”ii€ÌÒ Aƒ=zt|ðÁñÕW_EDD"‘ˆž={Æ{쑲¦î¶ ;»êã¸Öí»µkÀ®qâ‰'Æþð‡d{Ú´iÉí×_=¹}ýõ×G·nݪ|Ý MÅ[SÆ�ŸÜ^7˜Û˜:ÄK/½”l¿ñÆQ\\\�¥mÐÚÏw̘1Ѽyó*ŸÛ°aÃj¹ïC=tP•Ï­lZç͵¥ŸûÊ>óéz†•ÙÚ) #¾•ß©S§(--�/¿ü2Ž9æ˜èÚµk 4(ezy¶o`¶EEEµöt =ZµjÏ>ûltîÜ9-[¶,ºuëo¿ývÊZ·™lkÖ>^[ëÖ­£aÆñí·ßFDÄ×_�<6kÖ¬ävÓ¦M×}ýCòå—_&·—/_^åóÚ´i“Ò.))©¶š6eíç[\\¼^-µqßæÍ›ÿ ß×MI×3¬):tˆ¡C‡F�=’ëq�5*^|ñŸüòËã�ücÔ«W/ÍU’n¦€ #åææFçÎ�“?µý�R ½>øàxì±Ç’ëeFD|öÙgqÊ)§$§¶¥j²²²RÖ)ÎÏÏOn¯½¦éÖ®oZÓ–.]šÜ^²dI•Ï[wêÍ �·Vºžï¶ô¾nJ&½–5N8á„xýõ×cÏ=÷Lî[µjUÜ|óÍѦM›xúé§ÓX?`2Rvvv%6gÚ 3œrÊ)1pàÀ”}cÇŽ�+®¸"Mm»Ö^“uíµs×þÒ}m®�»%vÜqÇäöêÕ«ã‹/¾¨Òy;ì°CJ{Së&W§t=ßmé}Ý”Lz-kûÉO~“'OŽo¼1eJó/¾ø"N:é¤¸à‚ |Ùe;æ·ád¬Ä™gž™²ïŽ;îˆ'Ÿ|2Mm›V¯^�Ü^{:൧Ó;vìf_wÙ²e[WØfhÕªUJ{Ò¤IU:oí‘õ»¼ØÖ<ßÕ«W§¼oµu߈Ú%½)éz†µ¡°°0®¾úêøüóÏ£_¿~QXX˜<öÀ¬÷¶`2ÚàÁƒãç?ÿyʾýë_iªfÛ´páÂäö‘G™Ü^; ž1cF¼ôÒKU¾æèÑ££gÏžÕS`tîÜ9¥ýÚk¯Ué¼yóæ%·óóóã�C©Î²6jíç;lذ”õ—7媫®Šûï¿«ï;vìØøè£�ª|îÝwß×\sÍÝ·&¤ëÖ„… ÆQGµÞþÆ�Çm·Ý“'OŽvíÚ%÷4èÆS{ÀlÖŒÄ+++Û¬óòóóãïÿ{´nÝz³ï¹ö»ïæÖ´-Y¼xqrêÜ]wÝ5%€:ôÐCSú^rÉ%±jÕªM^ó“O>‰ž={Æ\P­µnÌ 'œÉößþö·H$›}ªô¬Æ�W^yeœwÞy[tßš�®g¸9Öþ{fSÓ6¿öÚk9¿çž{Æ‹/¾˜œ¶|éÒ¥1cÆŒê+”mF•9òÈ#£mÛ¶é.Ø€ÒÒÒ2dH²}úé§G~~~+¶ÖšÐcÝ)y«¢qãÆ1fÌ˜èØ±c,^¼¸Êç­½þë'Ÿ|²Á~Ó¦MKiW%,ÛVŒ92ùz˜²¦êOúÓøñ�Ó§O�ˆˆ?ü0N?ýô6lXJ¿µÍ˜1#~ùË_Fûöíãˆ#ލùð»ì²Kœ{î¹q÷ÝwGDĬY³âÙgŸ�nݺmðœòòò3fLDDdggÇ€*íWQQ±Ñö–êÙ³güéOJ~Áà‘G‰}öÙ'.¿üò žóÜsÏÅ™gž HY÷xstëÖ-vÚi§øæ›o""âå—_ŽK/½4î¸ãŽ”°rmo½õVwÜqñ›ßü&Ú´i³E÷­ éz†›cí©›75ByÅŠñÔSOÅYg�Uéñ]vÙ%ºté£F�ŠˆMÊd&#€ÈH1sæÌäOuý£HŸ5£P?ÿüó-:¿M›6ñôÓOG^^^•ÏY{:Õ·ß~;Æ�¿^Ÿ¹sçÆYg��5JîûòË/7xÍ•+W¦´7¯;²xckæ®{ݪŒJÞTP½råÊøóŸÿgŸ}v¥£!o¸á†”öÈ‘#ã'?ùIŒ3&eýÔ¯¾ú*:tˆÅ‹Ç}÷Ý·ÞµÖ­yÅŠ›| ›ã¿þë¿b¯½öJ¶¯¸âŠõžÛÚüñøâ‹/"âûð{ß}÷­´ßº_*X´hQ5TѼyó¸ð Söõë×/N>ùäø÷¿ÿ�Ü—H$âƒ>ˆÞ½{G·nÝbï½÷Ž+®¸¢Òk®ûŠÊÖ¸­S§N\}õÕ)ûîºë®èÒ¥K¼úê«)¿k›5kVôë×/;ì°¨W¯^ÜrË-•Þwí缩ÏÝÚŸƒM­½©Ï}u?ÃÍí¿îôËzÝÍ›7OnÿûßÿNyO–.]Ï<óLJÿ›o¾9JKK7xßo¿ý6"¾_ÿØ@¶í“€¼åË—'×l}ñÅ·øËÞ‡~xÜ{ï½UîÎ9ç$·‰D{ì±qÏ=÷Ä{ッ¾új\}õÕÑ®]»8óÌ3SÖ†>|x<úè£ñÞ{ï­°­;ZxΜ9¼ÿºÇÖžŽx]kFá®±¡ ¼I“&Éí÷ß?e�Ûµ•––FÏž=ãã�?Ž=zTØFDtïÞ}½©œ'Ož¿þõ¯£~ýúQ\\�5Šf͚ŵ×^+W®ŒaÆÅ{ì±É×ðæ›oVzÏ-U¿~ý5jTGDħŸ~g�uV¥!èÔ©Sã²Ë.‹ˆˆóÏ??þøÇ?nðºï½÷^Jû�7Þ¨¶šo¹å–hß¾}ʾ§žz*:tè 4ˆ]wÝ5êÖ­mÛ¶�‡~8~ô£ÅÈ‘#SF•n¬¶?ü°Ò~—^zisÌ1)ûÆ��;wŽúõëÇ®»îõêÕ‹âââ4hPÔ­[7žyæ™”Ï× .Œ’’’d{cŸùu�/\¸pƒŸÑˆª}î«óΟ??¥½±>ûì³”öšÕëêÔ©Sr{Á‚qÖYgÅ[o½cÆŒ‰N�:­ôÑGÑ·oßJå‰'Æ„ ""âÆo4+âv*çºë®».ÝEÀ¶`Á‚)ÿ0ìÓ§O¥±"`cÊÊÊâõ×_O¶;uê´Ái‡€êQQQ±^ÀѸqãÈÎÞº±Hï¾ûnœ{î¹1uêÔˆø~ŠÔ>ø öÛo¿JæMiß¾},_¾<&L˜�;wŽÎ�;o°oëÖ­ã»ï¾‹‰'FDĪU«âùçŸ�x }ôÑx÷ÝwãöÛo�¾}ûÆ�!C’ÓDçææÆ’%K"‘HÄ�Ë—/�É“'Ç_ÿú×x衇Rîñá‡Æ.»ìåååѸqã(++‹iÓ¦ÅĉcàÀ�±pá”gѰaÃÈÉɉF�E^^^L›6-ž}öÙ0`@J5eÊ”hÔ¨QTTTÄŽ;î˜ù|È!‡Äû￟}öY¬\¹2{ì±())‰òòòX¶lYÌš5+žyæ™8ûì³cÊ”)qóÍ7Ç­·ÞºÑß­{ì±±bÅŠ˜8qbJ(U^^ß~ûmr]àÝwß=žyæ™øÅ/~‘ì“H$â½÷Þ‹'žx" K–,Iy +V¬ˆÜÜÜXµjÕ½ßëjܸqôèÑ#>üðÃøøã�cÚ´iñÜsÏE�:u"‘HÄgŸ}?üpüö·¿�ÜÜܸí¶ÛbàÀ�ëM}¼hÑ¢øàƒâå—_Žþýû§LÝ;þü˜9sfäææÆòåË£°°pƒ�ì¦äååÅi§�“&MZo=×ÒÒÒX¼xqrTêGÏ=÷\´lÙ2¥ßâÅ‹ã�wÞ‰Ûo¿=œrì�wÞ‰¦M›FYYY4hÐ ù9ÉÊÊŠ“O>9fÏž“'ON9gõêÕ±xñâdpþ“Ÿü$F��2b>âû0ö­·ÞŠ~ýú¥„¡³fÍŠÂÂÂ(((ˆ‚‚‚¨[·n,\¸0¦M›Æ ‹¿þõ¯)Ÿ£·ß~;š6mß¿+W®Œ×_=î»ï¾xôÑGSúNž<9š4iåååÉsªãF|ÿ;ÇþýûǧŸ~šÜW^^'œpBäää¤ôýꫯâ’K.Iù<ï°Ã)kh¯Ñ¦M›ûì�Þ£uëÖ1cÆŒ˜;wn¥áÓº^{íµèÔ©Sì¿ÿþëtëZ3rsmï¿ÿ~Œ3&ÆŽŸþy”””DYYYEÛ¶mã˜cމßüæ7›µêÔ©SãÁŒýë_1oÞ¼X¹re4iÒ$<ðÀ8餓âÔSO�‚‚‚”s.\˜ ê6¦yóæ1wîÜ*×R¯½öZ<ùä“ñꫯƼyó¢´´4š6mš|ý={öL™Ú{mwß}w\|ñÅUºÏ}÷Ý·Þ(é-ñ /ÄO<&Lˆ¯¾ú*"¾.?ûÙÏ¢gϞѥK—Jϻ袋âž{îÙäõ+ûœDDL˜0!yä‘xå•WbþüùQ^^;ï¼stÐAÑ£G�èÚµëzhDDçÎ�ãÕW_Ýè=o¸á†0`@Üxã�qÍ5×l´ïš?#“&MŠ8`£}[µj•œ6~m[ú ÿûßÇ�!C*�ܬY³øéO#GŽŒˆˆã�?>Æ�—þ®±ûî»Ç\°^8ûÖ[oÅe—]ï¾ûn4jÔ(~ö³ŸÅïÿû8øàƒ“}6ög%'''ŠŠŠ¢sçÎq饗ÆATùƒÙ Õýwúò–š'†*òl[ÀPûj*, ö €·]ÖÈ`€ !È`€ !ȹé.jBVVV4kÖ,¥ ™N @F*((ˆ .¸ Ýe@­24@†d0@†°0©¢¢"JJJ’í¢¢¢ÈÎö½'2›€ŒTZZ÷߲ݿÿ(,,LcEPó …È`€ !È`€ !ȹé.¶U/~ðE|°ª^ºË6 tÕʘ6q²ýô{³"¿ 0�d®“Û·Jw ü‡ÀB �!ÀBÌÿÏÞ�‡WUÝûãÿœ� A‚("ƒ‚Z¿ ¶íul©âÔV­Zi¯×¡Öö:U-Ø[/ÖÛZëS…*Îí¯bÅ:Õá*Z+¢·U 8 b”Ê$CC¦óûC=5ŒIL²“�×ëyò¸ÖÙk¯ó>AÎÊɇ½�ùI€¦�Ÿ_ûrx­>¤�0©”×®]”ì1$é©°tÑü­Ÿ×5»Í9JJJ) [£ lÕy_ûâÖ�×aŽlvÛEb>?{¤„+€ e²ÙlTTT$#µ #“É$`³€H¥ªÊÊxeúÓ¹þ>ù &h>ñÐC%#µF�íÛ·O:Àf)�J55Õ1ïí7rýá À¤›0¤Ø /¼�t„Ô5jTÒ¶Iتß<üÜV�3´O3%`[JKKã…^ˆÅ‹GMMMôêÕ+F�»ï¾{ÒÑ€f¢ lU�Þ}·z¼¤¤_3%>�½÷Þ; l‘U_•••1kÖ¬¤clÓ‹/¾]tQLŸ>}³Ç9ä�¸ñÆcðàÁÍœ hn ÀÐ(§ÔoûÛ8÷Üs#›ÍÆðáãÿþQ^^³fÍŠE‹EDÄ_þò—Øÿýã©§žŠ‘#G&œhJyI a¦N�gŸ}vüñ1wîÜøÇ?þ÷ß<ú裱`Á‚øýï�:uŠˆˆµkׯ)§œ §š’0@+´|ùò;vlL˜0!¦L™»îºk­ã™L&¾õ­oÅÍ7ßœ{ìÝwß�§Ÿ~º¹£ÍH úùϧ�vZ\zé¥[÷�o|#vÜqÇ\ÿõ×_oêh@‚ì ÐÊÔÔÔÄìٳ㡇ÚæØL&»í¶[,_¾<""¶Ûn»¦Ž$HèˆÂ7bHû5IǶ <*bn»Å¹þñígF‡ö… &H±×_I:Aë5两­T^^^<ñÄu¿jÕª\{ĈM h!€H-_ˆØ°aCÌ›7/""F�£F�J6Ф€H¥í ãÒ±c’މ»çž{bݺuÑ£G�¸ë®»’Ž4±¼¤Ð4-Z—_~y 4(¦M›»í¶[Ò‘€&æ `€zûí·ã„Nˆµkׯ#�<C‡M:Ð \ �"«W¯ŽŸÿüç±Ï>ûÄ«¯¾+W®ŒýöÛ/þýßÿ=V­Z•t< ‰)�JÙl6Ê7Tä¾²ÙlÒ‘ IÍž=;Î>ûìèÓ§O\z饱víÚܱêêê¸ùæ›c¿ýö‹ùóç'˜hjn @*m¨¨Œk&ߟë_:vLth_˜`"Ú¢y —n}@Çy[=\RRÒhY€ô[³fMì³Ï>±ûî»ÇÂ… ãoû[¼ð QSS“3wîÜ8ùä“cúôé‘—ç:AH#`€&Òÿˆ³?×ùîdÔÇp@­ÇæÏŸ?ùÉOâŽ;îÈ=ö /Ä<cÆŒiæ„@sðO;Rªoß¾qûí·Çu×]Wëñ?üá %šš0@Ê]xá…ñå/9×ÿÛßþ–` ))´çœsá IDATN®½téÒ“MI  9rd®Ý®]»“MI  èÞ½{®Ý³gÏ“M)?éiõÞ“¶>`àÍ "Ö­[—köj` ]€šHÉÎ=¶1 ¤YrDD¼ñƹöI'�”` )¹4@0uêÔˆˆ:th|õ«_M8 ÐT€Z¡%K–Ä£�>‹/ÞæØ÷Þ{/~ûÛßFAAAÜzë­‘—§DiåФR~»vqȆÖê´e•••IGh•Zê÷mÙ²e±çž{ÆŠ+"???Î9çœøÙÏ~ÅÅÅ›Œ-++‹1cÆDyyyÜyç�±ÿþû'�h. À¤R~~»8dÿ¡ÛÐFÌš5+é4¢… ÆŠ+""¢ªª*n¸á†˜:ujüçþgwÜqÑ·oßX¶lY<òÈ#1nܸ(..Žgžy&:è „“MÍõý­ÌðáÃcìØ±µ[¸pa\xá…QRRíÚµ‹AƒÅ#�<×]w]¼ú꫊¿ÐF¸èƒNCcûí÷H: ЧOŸ¤#@³5jTÒh"·ÜrK\vÙeñüóÏÇ¢E‹¢ªª*ºvíÝ»w�þýûLj#ìõ m�0@+µë®»Æ®»îšt  Q •ªªªâïÿ{®ÿ…/|!òó-{@ÛPXX£G�N:Fj&`‹ü&€TªªªŠ^x!×1b„0Ðfd2™hß¾}Ò1H€¿¤„0@J¸&�:óçÏßêñªªª-+))iä4ÍGH�8 Áçf³ÙFLмÜ %€RB %€RB %ò“ÐØf̘±Õã½zõj¦$ÍK€Tjß¾}œsÎ9µú´}ûöÝêñ>}ú4S€æ¥ @*e2™èСCÒ1 YÙ %€RB %ì @*•——Ç­·ÞšëŸuÖYö õ€H­ 6$š•04PÏž=£OŸ>IǶ ¼¼<:wîœë÷éÓÇÀ¤ž=€RÂÀÐ@?œúrlÿâ‡IǶ ºrC¼ùÊ?sýWï˜í Ú'˜¨¯{ÏúbÒ Õq0M.›ÍÆï~÷»8ì°Ãbذa1`À€1bD\sÍ5QVV–t€Êf³±zõê¤c¤Vqqqd2™¤c´*—_~y\}õÕqüñÇG·nÝj›?~®=xðàæŽ©£ @*e2íb‡]v¯ÕZŽG/=y›cú_ºíy²Ùl#¤HŸÕ«WÇØ±c“Ž‘Z“'O®uÕ*Ûv饗ƥ—nþ‡üçž{.""vÙe—ø·û·æŒ©¤ @*ååçÇÎ#¾˜t hµÊÊÊâÆoŒG}4Þyç�XµjUl¿ýö1lذ8á„â;ßùNtèÐás=Ç|S§N�‚‚‚˜ûl{ì±1yòä8þøãëuîC=ßþö·ã£�>Š/ùË1iÒ¤èÓ§O¼ûî»qà 7Ĺçž×_}<öØc1`À€åûàƒâä“OŽN�:ÅwÜáê_h$ À)²nݺ¸á†büøñ±aÆzïýØc�Ř1c¢ºº:N?ýô¸ýöÛs{�92N<ñÄøú׿�=öXrÈ!ñì³ÏÆ®»îZ§¹?úè£8ôÐC£ºº:JKKcÇwŒ)S¦ÄÁ\ï× lž0´Ç�ü|e�úªªªŠ™3g&c‹²Ùl¬\¹2–/_o¼ñF<ùä“1uêÔøàƒ4ß²eËâ´ÓN‹êêêèÚµküæ7¿É?õéíšKJJbÁ‚qúé§çöñÝ–í·ß>^yå•\ö?þñ�qôÑGÇA·ÞzkôéÓ§A¹�ñN@*ekªã£ïæúÛ÷Ù52yíL�¬üü|û«¦Ð�wÞgžyfD|\˜2dHœrÊ)qç�wÆòåËë=ßøñ㣬¬,""¾ýíoG§N�6;®wïÞ1zôè˜:ujLŸ>=î½÷Þ8餓êõ\™L&N:餘7o^\rÉ%±ß~ûÅÿýßÿE¿~ýê�ø`R©¦º*þã_ÿê°¸×.ÑNZŒ£¯™²Í17ž¼3$€Öíë_ÿz¼ñƱýöÛGÏž=#///""î»ï¾z€W¬X·Ýv[®ÖYgmuü™gžS§N�ˆˆn¸¡ÞàO�zê©q饗ƒ%KâŒ3Έgžy¦AóS Ùuܱ×6Ç”””4}håºté]ºti”¹î¿ÿþ(//�ˆˆvØ!†ºÕñ£F�ʵg̘ï¿ÿ~ì²Ë.õ~ÞÞ½{G¿~ýbÞ¼yñ—¿ü%^ýõ2dH½ç>–—t’÷ÔSOåÚ{ï½÷6ÇwíÚ5·go6›�Ç|³ãf̘}úô‰�ƬY³6;f§�vʵßxã�úÄ6¢ @Ìž=;×8p`�ÎÙ}÷Ýsí—^zi³c~þóŸÇÂ… cîܹqÇwlv̺uërí®]»Öé¹�ÍShãjjj¢´´4ׯkö³ã¶tuoçÎ�#"¢ÿþqê©§nr<›ÍÆ‚ ""b»í¶‹#FÔ97°)`€6îŸÿüglذ!ׯë¾Âݺu˵çÏŸ¿Ù1_ûÚ×b»í¶‹Ç{,öÝwßMŽ?ÿüó±bÅŠˆˆø�ÿøWÃç¤L-Ó§O�1cÆä6yo 3f̈=zD&“©õuÚi§5Ús ·hÑ¢ZýŽ;Öé¼ÏŽ[²dITWWo2æÄOŒ£Ž:*Ž=öØZWê׿þuDDzè¡1a„úÄ6#?é´,O=õTüéOŠ>ø JJJeÎ'Ÿ|2–-[¶Éã¿ûÝïbòäÉѾ}ûFyžæv]§©1¤óIǶ ¼¢:®iÿj®iqet(l—`" Þþ89é­Ë‰w&�€VlÍš5µúu:¯°°0×®©©‰�>úh“+x3™LL™2%&L˜x`|õ«_�Q£FEûöíã�ücL›6-®¸âŠøÉO~Rçç¶L˜&wÎ9çDYYY,]º4""¦L™’;–Íf“Š|¢1 À±Å;ŒæççÇ•W^?úÑ�â/ùK¼õÖ[Q]]§Ÿ~züþ÷¿�N�:5,8° `š\÷îÝã†nÈõ?[’·nݺZý¼¼ºí"ºñ…^ŸÝGxsŠŠŠâè£�Ž£�>º~�:³0@·ñ•¼uUYYY«ß¡C‡Æˆ|® • óóâìÃ÷¨Õ6¯¨¨¨AçUTTÔ껕3$O€TÊËËD϶K:´ �;wnÐyëׯϵ3™LtìØ±±" är¨Íœ93.½ôÒ8úè£cÀ€±ãŽ;Fûöí£¸¸8 g�uV<üðÛÜ??m–.]?ýéOcäȑѵk×(,,Œ¾}ûÆ7¿ùÍxæ™g’ީם_¿Zýššš:�·bÅŠ\»[·nuÞ;h:®NÈ£�>£G�ŽêêêMŽUTTÄ[o½o½õVÜvÛm1|øð¸é¦›bÔ¨Q $mZ“&MŠË/¿|“Íå,X÷ÜsOÜsÏ=ñ�o|#n¿ývûmÒ¼¥kê8pÞ6‡”””|®,¤Wß¾}£   ·§ïªU«êtÞg Àl’l@ý('ä–[n©UüÝwß}cç�wŽöíÛÇŠ+â�wÞ‰yŸ|xŸ9sfvØa1eÊ”=ztB‰›Æ…^˜kï´ÓN1bĈ¨ªªŠÙ³gÇÒ¥K#"âž{î‰E‹Å#�<ÅÅÅIEHDÿóî¯ÛÀ:ŒKû¦h¸víÚÅàÁƒcÖ¬YQVVV§ó.\˜k+CË œ�Ï2 â™gžÙ¤¸ùüóÏǸqãbÚ´iQ^^ßüæ7ãµ×^‹þýû7wÜ&µãŽ;Æ 7Ü'Ÿ|rîÖ•••1iÒ¤¸è¢‹bÆ ñ׿þ5~øÃÆ-·ÜÒ(ϹtéÒX¶lY½Îyç�wå¹�污²:næ_oÏ÷óÞtÓMqÕUW}îy€–+›�ø`åúZ}`Ë=ôи馛""böìÙÛ?gΜ¨ªªÊõ;ì°&ËÔ��¸Ò¯_¿xê©§bΜ9ñ­o}k‹ãòòòâ?þã?rý—_~¹9â5›k®¹f“âïgsÌ11vìØ\„ Í ÚœcŽ9&wÁÚÛo¿¥¥¥[ÿè£�æÚƒ Š#F4i> n\Ü‚d³Ùxë­·bîܹQZZ .ŒÕ«Wǻロ³víÚ6¾­¿?uÙe—ÅÍ7ßÓ¦M‹?ü0ºvíÚÔÑ MÙn»íâ„NˆÛo¿=""¦L™?þñ�·8þÎ;ï̵/¸à‚&ÏÔ�pÂjjjâ�ˆûî»/¦M›K—.m´¹õ«_Å�~ô£È6ྦྷõÝg¸G�1þü(,,¬×yu_RRÆ ‹W_}5ª««ãå—_Žû·«×ólìœsΉO<±^ç¼óÎ;qì±Ç~®ç€–ìâ‹/Ž»ï¾;ªªªâºë®‹sÎ9'vØa‡MÆ=ýôÓ¹ý‡ Vënž@²€ôÇ?þ1Æ�sæÌi’ùÏ=÷Üøò—¿555u>gÒ¤IñÛßþ6þüç?GïÞ½ë|^×®]ë]ü­�ÝvÛ-^}õÕˆˆX¸pá瞯G�Ñ£G�Ï=@S{ï7cê6ð˜_6mZ�êêêX¿~}®¿zõê:Ÿ;hР¸úê«ã’K.‰²²²øþ÷¿wÝuW­1~øaœ{î¹Q\\S¦L‰ü|%'h)ümLÈøÃøÕ¯~Uë±ÄÁ{î¹g <8vß}÷èÑ£G¼ôÒKñ•¯|¥ÞÏQXX{íµW½ÎéÙ³gDD <8JJJêýœM¥!W1¤AI�NuXÒ¤9€Ö¯ªª*é­RKÿ¾UTTÄk¯½ååå±|ùòxóÍ7ã¾ûî«uÇÑË.»,æÌ™£F�Š>}úDqqqôéÓ'WØØÅ_Ùl6®¸âЏûî»cÉ’%qÎ9çÄN;í³gÏŽk¯½6JKKcç�wŽ|0öÜsÏæz¹@('àÑG­Uü=ꨣ⪫®Š/|á ›ß®]»æŠÖìêºpÎ�;7×îÓ§OSÅH­™3g&�&°hÑ¢Øwß}·:fíÚµ1qâĘ8qbî±qãÆÅøñã·xÎ%—\Ç|Lœ81¦M›§žzj”——G×®]cðàÁqÞyçÅ÷¾÷½(**j¬—4àüáȵ¿ó�ïÄ­·Þš`šd=ùä“qÜqÇmuÌœ9sâõ×_�ˆˆ‚‚‚-Ê ­)))i²»hî¶ÛnñË_ÚjZà”••åÚ_ûÚ×¶9¾²²²)ã$êÖ[oÝfø§?ýi®}ÔQGÅöÛoßÔ±RcÔ¨QIG å% -0`@®=mÚ´mŽâ‰'š2N¢þüç?ÇŸþô§-Ÿ×ùÙl¶‘’@ýÙ  %€RB %€RB %ò“-Éý÷ß¿Õã#FŒh¦$P Àð½zõÚêñ’’’æ  àÐ)á `R)???¾ò•¯Ôê@Úùm8©Ô®];·g Íq h€”PH `€”°04ÐÞ{ïC† I:°qÿý÷çúcÆŒ‰ÂÂÂ@ÓS •jjjâÍ7߬Õ’·bÅŠ¸þúëãÁŒššš¨®®Ž=öØ#®¹æš8p`Òñ ÕS†ú³G"ºÍL:°%U¯ÌÎu¯úàù…‘ýÍ) †€¶í•W^‰Ñ£GÇÞ{ï>ø`ôë×/""žxâ‰8òÈ#cÆŒѳgÏ„SBëf`šÜ¼yóâè£�Ž!C†ÄC=”+þFD<ýôÓQVVwÜqGr!%\ @“ª©©‰c�=6ÊËËã¶Ûn‹víÚåŽ-_¾<®½öÚˆˆxÿý÷“Š©¡ )SSSeeeIÇH­nݺE^ž›¬ÖÇþð‡˜5kV\xá…±óÎ;×:Ö­[·=ztLŸ>=¾ñ�o$”ÒCR¦¬¬,zôè‘tŒÔZºtitïÞ=é­ÊÕW__ýêW79–ÉdâÁlîH�Zþy Mæí·ßŽ9sæDDÄî»ïžpH?`Ú†ÕË#V-‹yóæÅ¼yó’N-^YYYüô§?�‘#GÆŽ;î………ѽ{÷8ì°Ã⦛nŠòòò:ÍóÄOäÚ½zõŠ_|1¾ò•¯Ä^{í%%%1vìØxï½÷šêe@›£ @Ûðÿ]q÷…Ñ¿ÿèß¿Òi É=ûì³Ñ¥K—˜:uj½Ï}衇bÀ€1nܸèÔ©SLš4)þú׿ƯýëX·n]œ{î¹±×^{Eiié6çzã�7rí—_~9&MšúÓŸböìÙñꫯƲeËbذañä“OÖ;'°)`€Y·n]\sÍ5qÄGÄÊ•+cõêÕõ:ÿ±Ç‹1cÆÄG}§Ÿ~z<ùä“q 'ÄÈ‘#ã[ßúV<÷ÜsqÔQGÅܹsã�C‰wß}w«ó}ðÁ¹ö/ù˘4iRGDDqqqÜu×]Ñ¡C‡3fŒ+�¡(�N™LDûŽÿú€Êf³±bÅŠ˜;wn<øàƒqÞyçÅ€â²Ë.‹ 6Ô{¾eË–Åi§�ÕÕÕѵk×øÍo~™L¦Ö˜‚‚‚˜=î½÷Þ-ÎùÙ‚ï—¿üåÍŽÙc�=""â¾ûî«÷Ë@m À­Ô׿þõxã�7báÂ…Q^^ÿøÇ?â¿øEtìXÿ»â­X±"n»í¶\ÿ¬³ÎÚêø3Ï<3׾ᆶ8®[·n¹ö€6;¦k×®QUUÿûßë”ؼü¤Ð0]ºt‰.]º4Ê\÷ß”——GDÄ;ìC‡ÝêøQ£FåÚ3f̈÷ß?vÙe—MÆõíÛ7×ÞRaº°°0×^²dI½rµ¹€¶á´_Eœö«xï½÷â½÷ÞK: ´8O=õT®½÷Þ{os|×®]£OŸ>ññ^Ä�?þøfÇ�1"×ÞÒ¾ÄÙl6×n¬‚6´U À¤S6±aí¿¾ŠwŒèÜ=JJJ¢¤¤$étÐâÌž=;×8p`�ÎÙ}÷Ýsí—^zi³c:è ÈËû¸$õéþÂ[·n]½ŸØ<`Ò©º2bÖãÿúª®L:´X555QZZšëº'ï¶|vܬY³6;f§�vŠƒ>8""æÌ™³Ù1 ,ˆˆˆ}öÙ'vÝu×:=7°y ÀmÜ?ÿùÏZ·g®ëm˜»uë–kÏŸ?‹ã.¹ä’ˆˆxä‘G6{ü™gž‰ˆˆ+¯¼²NÏ l™0@·hÑ¢ZýŽ;Öé¼ÏŽ[²dITWWovÜG§žzjÜ|ó͵®4Žˆxøá‡ãïÿ{üû¿ÿ{{ì±õLl,?é$kÍš5µúu:¯°°0×®©©‰�>úh‹·�¾í¶Ûb»í¶‹ƒ:(.¸à‚Øe—]âå—_Ž»ï¾;®¾úêøñ�Üðä(´q�QŽˆ(//ßâØ‚‚‚¸ùæ›ã­·ÞŠ3fÄÂ… cäÈ‘qùå—×yÏa`Û€¡�^ëú_1¤{»¤c[P^™�kŠþµgÉ¥;> 2W�óñã>J(´<ëÖ­«ÕÏË«Û.¢Ùl¶Vÿ³ûoÉ{ì{ì±GÝÃõb`€6nã+y몲²²V¿C‡�ø€Ú¸¢¢¢�WQQQ«ß©S§Æˆ| Àm\çÎ�tÞúõësíL&;vl¬H@)´qýúõ«Õ¯©©©Óy+V¬Èµ»uëV罃�¦ão!@×·oß(((ÈõW­ZU§ó>[8p`£çê/?éÐòó"ŽÜ-¿VؼvíÚÅàÁƒcÖ¬YQVVV§ó.\˜k+CË  @*å·ËÄȾ›.sóV|rëšyó""¢¤¤¤ùB@ và�æ Ào¾ùæ6ÇWTTÄ[o½•ë:´É²uçz(Ú”þ¿^óñWÿþÑ¿ÿ¤ã@‹q衇æÚ³gÏÞæø9sæDUUU®Øa‡5I. ~€ˆcŽ9&Š‹‹#"âí·ßŽÒÒÒ­ŽôÑGsíAƒň#š4P7 ÀÄvÛm'œpB®?eÊ”­Ž¿óÎ;sí .¸ Érõ£ @*UVgãñ¹U¹¯ÊêlÒ‘ Å»øâ‹#???""®»îºX¹råfÇ=ýôÓ¹ý‡ cÇŽm¶ŒÀÖ)�JÕ5/.¨Ê}U×$�šGuuu¬_¿>×_½zu�Ï4hP\}õÕQVVßÿþ÷7óá‡ƹçžÅÅÅ1eÊ”\ÑHž¿�­T¥\uœ IDATEEE¼öÚkQ^^Ë—/�7ß|3î»ï¾XºtinÌe—]sæÌ‰Q£FEŸ>}¢¸¸8úôé={öÜìœ_|qd³Ù¸âŠ+âî»ïŽ%K–Ä9çœ;í´SÌž=;®½öÚ(--��wÞ9|ðÁØsÏ=›ëåu  @›òÞ�>nüàÕdƒ@#X´hQì»ï¾[³víÚ˜8qbLœ81÷ظqãbüøñ[<ç’K.‰ã�?>&NœÓ¦M‹SO=5ÊËË£k×®1xðà8ï¼óâ{ßû^5ÖK‰0mJI—Ov?()I44†’’’Èf³M2÷n»í¿üå/›dn éØ %€RÂ-  eºuëK—.M:FjuëÖ-é[¤ )“——Ý»wO: p h€”p04Ðÿîö_1§oߤc[PQQo¼ý@®ÿàc£°°0""N8ᄤb@“r0@J¸€T*,,Œ“N:)éЬ\ � À)¡ �ö ÍXºtiDDÌ›7/""JJJ’ M@€Tª¨¨ˆx ×?öØcãÜsÏ­5&›Í6w,hRn � À)¡ � À)¡ @£Èd2›<–ÍfHÀçUSS³Éc›{Ÿ§åÉO:4—o¼1""Ž>úè„“@:ååmzÍQeee$�€Ï£ªªj“Ç6÷>OË£ @›Ñ£G�ˆˆ())I6¤T&“‰Â¨¨¨È=¶fÍš(**J0 ±fÍšZýÂÂBW·Êô4šâââZýU«V¹ 4@+“ÍfcÕªUµÛøý�–K€F³q� ²²2.\¨ ÐJd³ÙX¸paTVVÖz¼sçÎ %¢¾Ü€FÓ¡C‡(((¨U8X½zu”––FçÎ�£S§N‘ŸŸoI€¤¦¦&ªªªbÍš5±jÕªMŠ¿Ѿ}û„ÒQ_ À¤R^^^ì¾ûîµú@ÓËd2Ñ»wïxÿý÷k]õ[YYeeeQVV–`:êëÓ÷uûÿ¶ À¤R~~~Œ1"éÐ&Å.»ì²I€Ö%“ÉÄ.»ìEEEIG¡€¡�?üð2dHÒ1 Eú´¼hÑ¢Mn% @ËWPP½{÷Vüm…€hEEE1`À€Ø°aC¬Zµ*V¯^IÇ` £¸¸8:wîíÛ·wÛçVJ€&“Éd¢C‡Ñ¡C‡èÑ£Gd³Ù¨©©qkh€$“ÉD^^ž‚oJ(�JUUUñÒK/åúûí·_äç[ö i™L&Úµk—t H-¿  •ªªªâñÇÏõ‡® @êå%€Æ¡ � À)¡ � À)¡ � À)¡ � À)¡ �ùI€¦Ð¾}ûøÁ~P«i§ @*e2™Øa‡’ŽÍÊ- RB %ÜêhÆ µúï¼óNBIZ§�ë+×_øü€¡ŽæÏŸ_«ì±Ç&” æÏŸûì³OÒ1RÅ- ¡ŽV®\™t€TQi| ÀPG«V­J:@ª¨¿4>·€†:Úo¿ýjõï½÷ÞÇgœ/½ôRì·ß~qÇw´š¹ÍŸÜÜæß²wÞy§Ö­Úxà�Øm·Ým~ i4õ{Nš¤ñ{ÕZ^SKÉÙÜ9šãùšê9k^?_ÑrÞZƒ´~¯ZÃëj)­UÉÌk½¢¥¼´iü~µ†×ÔR2&‘£µ®W�9ço¼'�tR®¿qý…ÏOê¨sçεúƒŽ!C†4êstìØ1÷ßÖ4·ù“›Ûüu·Ûn»5éü@ãh®÷„4Hã÷ªµ¼¦–’³¹s4Çó5Õs4Õ¼~¾h›ZÊ{@k�ÖïUkx]-%£µ*ùy#¬WmQKyh-Òøýj ¯©¥dL"Gk]¯š2÷Æõ>?·€H `€”PH `€”ÈO:ð/gœqFrÈ!QRRÒªæ6rs›Hï u—ÆïUkyM-%gsçhŽçkªçh)f¤ƒÿŸê.­ß«ÖðºZJFkUòóÒ6ùÿ©~Òøýj ¯©¥dL"Gk]¯ZÊŸu“Éf³Ù¤C@kðúë¯ÇСCsý×^{-† ’`"`kü�›Ÿ/h ¬W´tÖª¦çÐ)¡ � À)¡ � À)‘Ÿth-ºwïãÆ�«ÕZ.g€Ææç Zë-�µªée²Ùl6é|~n � À)¡ � À)¡ � À)¡ � À)¡ � À)¡ � À)‘Ÿth骪ªâoû[Ìž=;V¬X=zôˆAƒÅ™L&éx@#)--�Ÿýìg±÷Þ{Ç~ðƒÍQ^^3f̈9sæÄªU«¢wïÞ1lذØgŸ}9-iÒR× 5kÖÄ_ÿú×(--�uëÖEß¾}cĈ±çž{6xNZ–¶´}øá‡ñì³ÏÆ?ÿùϨ¬¬Œ~ýúÅþûï%%% ž³¥r0lAuuu\wÝuÑ·oß8ðÀcÒ¤IñüóÏÇÕW_tP 80î¾ûî¤cÛPZZgžyf\ýõIGZ¨wß}7¾ó�ïÄ AƒâŽ;+WÖ{Žõë×Ç•W^={öŒÃ?<îºë®˜>}züøÇ?Ž}÷Ý7FŒ�=öX¤ 5k©kЊ+â¼ó΋îݻǘ1câÞ{ï�§Ÿ~:¾ÿýïÇàÁƒãK_úRüßÿý_½³Ðr´¥5hþüùqê©§F�=âÛßþv<ôÐCñØc�ÅØ±ccÀ€qÌ1ÇÄÛo¿]¯9[¼,°‰•+Wf>øàlDd»uë–}æ™grÇjjj²·ß~{¶   Ùï~÷»Ùêêêä›UZZš=óÌ3³ùùùوȎ7.éH@ óî»ïf¿ó�ïä~^øô«¾?7¼ÿþûÙ¡C‡f#";`À€ìÌ™3sÇ*++³&LÈFD6“ÉdÇ�ßȯ€Ö¨%¯A³fÍÊî²Ë.ÙˆÈ~á _È–––掭Y³&{þùçg#"[XX˜½å–[ꕀ䵵5hÚ´iÙ®]»f#"{ÔQGe—,Y’;¶|ùòì‰'ž˜�ˆlçÎ�³?üp_}Ë×nüøñã›­Ú ­@yyy|å+_‰çŸ>2™L<þøãqðÁçŽg2™>|xôìÙ3~øáxå•Wbݺuqøá‡'˜øÔ{ï½ÿùŸÿßýîwã•W^‰šššˆˆ8ä�Câ�CI6Ð",^¼8.ºè¢øÝï~ýúõ‹%K–ć~˜;^ŸŸ–/__üâã­·ÞŠ¢¢¢xî¹çbÈ�!¹ãyyyqÐAEeee<÷Üsñ—¿ü%ºwïûï¿c¿,Z�–¾Í�;7>øàX¼xqôêÕ+ž{î¹èÓ§OîxaaauÔQ1wîܘ9sfüùÏŽ}÷Ý7Xÿoͪ-®A3f̈#�<2V¯^Æ ‹'Ÿ|2vØa‡Üñ¢¢¢8î¸ãâÙgŸ�·ß~;xà�8òÈ#£wïÞuú>´dn ùÑ�~”»}ÀI'�_üâ7;nìØ±1|øðˆˆøÅ/~>ø`³e6µxñâ8ûì³ãì³ÏŽ.]º¤rß qTTTÄUW]O<ñDü⿈‰'6x®ÓO?=JKK#"âüóÏßâ/.¿üòèÕ«WDDüà?ˆ—_~¹ÁÏ @ëÕ’× ÊÊÊ8餓bùòåñ“Ÿü$ºwï¾Ù±ÿó?ÿÛm·]ÔÔÔÄ)§œóçÏoðë y´µ5hÅŠqòÉ'Çúõë#"âÚk¯�í¶Ûn“qùùùqýõ×G&“‰õë×ÇqÇkÖ¬ÙÊ«o€á3fΜYëMïûßÿþÇf2™¸à‚ rý‹.º(ªªªš4°e�ù �nýúõ‹�vÚ)×ßu×]4σ>�>úhD|üùàüóÏßâØ¢¢¢øÞ÷¾UUUqÑE5è9hÝZòtÓM7ÅÌ™3#"¢¸¸8Î<óÌ-ÎÙ»wï8餓""bÕªUñ“Ÿü¤A¯€æÓÖÖ Ÿþô§±`Á‚ˆˆØ}÷ÝãÈ#�Üâœ#FŒˆ/}éKññ~Á¿üå/·8¶µP†Ï¸æšk"›ÍFDD¯^½bÔ¨Q[ÿõ¯=òóó#âãÛÜyç�MžؼÆúh{òòöÑx„ ¹öÿûÿ/vÞyç­Ž?á„rígžy&¦M›Ö ç =ZÊT]]×^{m®Ì1ÇDûöíë<ç]wÝsçέSvZ†4¯A+V¬ˆI“&åúÇüVçÛxÎ_üâ±råÊmžÓ’)Ã'V¯^<ð@®ÿ¥/})2™ÌVÏéÒ¥Kìµ×^¹þÝwßÝdù€úiè0uñÖ[oå¶Ž‰ˆ8øàƒ·yÎСC£[·n¹¾Ï4DS¬AO=õT,Z´¨^s~öwg555ñûßÿ~›çкµ–5èÞ{ï�òòòzÍùÙ1kÖ¬©U/j�üv>ñâ‹/Ɔ rý}öÙ§Nç}vÜsÏ=Wë� H§¿þõ¯µúuýü0bĈ\û�¨õê¢)Ö †ÌÙ¹sç0`@®?eÊ”:å õj-kPCæÜsÏ=£C‡[œ³µQ†O¼ð µúƒ ªÓyƒεkjjbúôé�š hyãóÃG}³fÍjÔ\¤_S¬A�1ç›o¾Ë–-«Óy´N­e úìœ]ºt‰=zls¾üüü8p`®ÿÜsÏå¶ m�€áŸ½mAÄlj×ÅÆãfÏžÝh™€–Éç’ÒØkP6›�¿ÿýï¹Ç;uê�;wnМþa@ºµ†5hÙ²eñÞ{ïÕ;ãÆc×®]¥¥¥u>·¥Q†O,\¸°V¿W¯^u:oãq¯¿þz£eZ¦Ï~~(((ˆwܱNçùüÀçÕØkÐG}kÖ¬É=Þ³gÏ:g±®´-­a jh­gks¶F Àð‰+VÔêwêÔ©Nçm»Ù÷Öl<î³o€@ú¬\¹²Ö^Puýì°¹±>?PM±5ôwb[›€ôi-k�uíc Àð‰uëÖÕêÖé¼�ßÖ®]Ûh™€–§¡Ÿ"|~àóiŠ5Ⱥ@]´–5Ⱥö1`øDQQQ­~eee�ÎÛxÜÆóéÒÐÏ›ëóõÑk�u €ºh-k�uíc Àð‰âââZýòòò:�·ñ¸�çÒ¥¡Ÿ67Öçê£)Ö ëuÑZÖ ëÚÇ€á½{÷®Õßø6[²~ýúZý�vÚ©Ñ2ñÿ·wïq^ÕuþÀ_3@(˜Ü‘‘¼¡&ÙbjJˆlV’ ÖCñÖêÃîZë®þèbº®™ëe5Ë×\ ,MMÚ-ñZ¡MW LE‰›\dàüþ0¿ËÈ 04Ì™çóñ˜Çã{¾ŸËygΗÃw^s>v>íÚµK·nÝ*ÛoÿL°9>?°=vÄ9h['¶¹9(Ÿ–rr^{“þjß}÷­³½páÂF�{{¿8 ÉjvN~¨©©ÉòåË5Îç¶WSŸƒ:uêTç—å�ý�Øææ œZÂ9hàÀ�©®®n°ß¶ÌÙ €á¯\g{Á‚�÷òË/ov ||~ ¹ìˆsÐÆ�_{íµF_Õå¼к´„sPûöí3pàÀ­®ñísvèÐ! hôØ��þê¨£Žª³ýì³Ï6jÜÆýªªª6™(Ÿ¦øüйsçzè¡MZå·#ÎAM1ç�Þ½{7j-SK9m<ç¢E‹}¥òsÏ=Wy|ÄG¤M›6�·3Ã_ :4{ì±Geû‰'žhÔ¸™3gVrÈ!-zMx q>ò‘�ÔùeÀ¶|~1bDÚ¶mÛäµPn;âôÑ�~´N߯ÌYSS“¹sçV¶�;î¸FÕ@ËÕRÎAÏYE~ÿûßoqÎçž{.Ë–-kpΖF Õ¦M›|æ3Ÿ©lÿú׿Þâ˜Õ«W×ùÇhãñ@yuëÖ-£G�®l7æóüyóê,)æóÛbGœƒ:è xà�[5ç£�>šÚÚÚç |ZÊ9hÔ¨QéÞ½ûVÍùðÃW·oß>'žxâÇìÌÀ°‘ø‡HUUU’äùçŸÏþð‡ÍöÿùÏ^Y�¾sçÎ?~ü¯Ø9œ{Ç>ø`–,Y²ÙþS§N­<8p`�_œÀÖØç �ç¼óÎ;ëüb}Ksyä‘2dÈë åk ç w¼ã9óÌ3+Û?ùÉO6;ßÛç7n\�¹%ÃFößÿœsÎ9•íë®»n³ý¯½öÚÊã‹/¾8»í¶Û« Ø1–.]Zgû­?òÜ’#FdÔ¨QI’ÚÚÚÜpà ö}ã�7rã�7V¶/»ì²TWûHÐÚíLç ñãÇW®ÀZ¼xq¦L™ÒàœK–,ÉäÉ““¼¹ªÞ¥—^Ú¨ºØy”ýôÕ¯~5}úôI’Ìš5k³W?ýôÓùÕ¯~•$Ùm·ÝrñÅ7Ø·¥ðiÞæòË/ÏÀ�“$7ß|s�µé76iҤ̘1#Iòá8_þò—ÿf5[¶­ÿ�ZŸŸýìgu¶ýë_§(ŠF�ýþ÷¿Ÿ®]»&I®¸âŠÌŸ?¿Þ~ßùÎw2oÞ¼$o.O6f̘m/€ÒØ™ÎAíÚµËÍ7ßœ]vÙ%IrÑEÕ¹âÆ.¼ðÂ,_¾k´­õtÇw;v,’£G�..\Xi[¾|yqê©§IжmÛ×]wÝçk)ªŠ¢‘q>´2«W¯Î7¾ñ�Üpà YµjU<ðÀôë×/Ï<óLþ÷ÿ7]»vÍù矟 .¸ mÚ´iîr¡Õ[¿~}žzꩼüò˹çž{rà 7Tþjë-'œpBN9å”ôïß?{íµWöØc�fªhN‹/Þªû9]qÅ9ÿüó·8ç…^˜ýèGY·n]†š=zdΜ9yá…Ò·oßL˜0¡Î}¨h}ZÊ9hþüù¹à‚ rÇw¤mÛ¶:th:wîœ'žx" .ÌþûïŸË.»,ÿøÇ='Í«5ŸƒfÏž�¯|å+™>}z:uê”C=4mÛ¶Íc�=–eË–åÐCÍ•W^™áÇ7zÎ��¶`Íš5yøá‡óÇ?þ1«V­J—.]2xðàüÝßý]Úµk×Üåµ#þ°µ^{íµ<ôÐCyî¹çòúë¯ç�ï|g>øà|àpÏ_v¨qZ¸pa~øáÌ›7/ëÖ­K÷îÝ3tèÐ|ðÁM\=-YK9½ð ™1cF^|ñÅlذ!½{÷Î?øÁì·ß~Û<çÎJ Pþü $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!ò—¿ü%ïz×»rûí·7w)l0�É“'祗^Êúõë›»¶ƒ „/^œN�:¥ªªj‡~ýèG?jî—J™ùÉOæ?ÿó?³ë®»6ØwåÊ••Ç;vÌÅ_\oøîw¿;ÇÏûßÿþ{ì±I’ý÷ß¿‰+§9Lž<9I2vìØû8¦Z†ª¢(Šæ.€¦³xñâôîÝ;ÇsLî¹çžTUU5Ø·¶¶6»ï¾{V¯^�$9ꨣ2}úô-îcß}÷Í‚ ²råÊÍÎOË0xðà,\¸0¯¼òJÚ¶ÝôoÅS-‡+€JæŽ;îHÛ¶móƒü`‹AÚ¬Y³*A]’|èCjÔ> �]wÝUPW³gÏΓO>™sÎ9§Þð7qL´$ÕÍ]MkêÔ©9餓²çž{n±ï#�ùä—^vL´,`€™:uj>õ©O5ê>ª/¾øb^|ñÅÊvc—ê]¶lY–.]šýöÛo›ëdç0yòä$ÉØ±cìã˜hYÀ%²dÉ’|úÓŸnTßm½WëêÕ«sÀëZ¸ÚÚÚÜvÛm9à€rÐA5ØÏ1в¸0@‰<ñÄ�î»ñ½Z“Ƈu}ûöÍSO=µUu±ó™>}zþò—¿ä¼óÎÛl?Ç@Ëâ `€Vjã«5ûôé“þýû7_1üÍMš4)Éæ—ÞZŽ)€æ'h…V¯^�Y³fU¶{¥&åPSS“Ÿýìg9ôÐC3pàÀ&™Ó1°s´B¿ûÝïR[[[ÙÖµ.?ÿùϳbÅŠ&½ú×1°s´BÛz¯VÊaòäÉ©®®ÎI'�Ôds:¦v`€Vhã{µvìØ1tP3VÃßÒŠ+2mÚ´|øÃNŸ>}šl^ÇÀΡmsÀßVQyôÑG+ÛøÀÒ¶mù>nذ!K–,©óõ±�}¬¹Ëjv·ß~{jjj2nܸ&›³µS-�Oc­ÌSO=•×^{­²]Ö¥zzè¡yä‘už+Š¢™ªÙyLš4)ïxÇ;r '4Ùœ­å˜h , ÐÊl¼ToRÞ°îˆ#ŽHMMMþë¿þ«¹KÙi,\¸0÷Ýw_FŽ™w¾ó�M6ok9¦Z0@+3cÆŒÊãêêê|ðƒlÆjv¬öíÛçÄOlî2vS§NÍúõë3vìØ&�·5S;;0@+³ñÕšƒ J—.]š±šϽhÿÏäɓөS§&¿rk;¦vf`€VdÑ¢EyöÙg+Û–êm=æÏŸŸG}4Ç|:vìØdó:¦v.`€VĽZ[¯É“''IÆ�פó:¦v.ÖÁhE6¾Wk²uaÝÊ•+óøã�géÒ¥Y¶lY–-[–³Î:+]ºtÉã�?žG}4555y÷»ß�#F¤C‡›�oîܹùío›E‹¥oß¾ùèG?šîÝ»7ºž?üáyüñdzxñâôîÝ;‡~xú÷ïßèñ[c{j}å•W2mÚ´,\¸0ýúõ˨Q£Ç¬]ü5IDAT²Ç{dÉ’%™6mZ^~ùåŒ=:ƒ®3níÚµ¹÷Þ{óÌ3Ϥºº:x`?üð´iÓf›^äI“Òµk׌1b›Æ7d{Ž©uëÖeÖ¬YY´hQåë¼óÎKûöí+ߟ—^z){î¹gF�•nݺ5ií�Ùÿ+¯¼’w½ë]9î¸ãÒ¹sçÊØÕ«Wçî»ïÎ /¼�nݺeäÈ‘ÙsÏ=7ÙGS¿o¶ÄÀ­ÈÆWköîÝ;{ï½w£Ç>ýôÓ9í´Ó2f̘œyæ™¹à‚ òûßÿ>Ç{lnºé¦tîÜ9mÚ´É\�þýûç–[n©wžùóççˆ#ŽÈ·¿ýí¬^½:ýúõËC=”¾}ûæ+_ùJÖ­[·Ù:æÍ›—�|ä#9þøã³xñâìµ×^Y¶lYÎ=÷ÜŒ5*Ë–-kÔëùÝï~—¶mÛ¦ªªªòÕ«W¯Ìœ9³ÉjýÖ·¾•÷¾÷½Y¸paöÙgŸÌ˜1#{íµWÎ:묌5* ,È�wÞ™c�=¶Î¸©S§fŸ}öɤI“Ò³gÏE‘ÓN;-x`ž|òÉF½¾�Í�;7sçÎ͘1cÒ®]»­¿9ÛsL½òÊ+9üðÃ3jÔ¨œzê©9ÿüóóúë¯gÒ¤I9í´Óòú믧k×®ùÎw¾“þýûgÚ´iuÆÏŸ??ƒ J§N�*?Ãx ÒþÆodðàÁéÒ¥K¥ýæ›oÞªýï¾ûî¹ì²ËÒ¯_¿<øàƒI’_þò—ùøÇ?žE‹¥gÏž¹å–[2`À€Lœ8q“׸½ï›n¸!}ûö­sœî¶ÛnùçþçJŸ ¤sçΕö¶mÛæ”SNiôÏ(™€VaíÚµEûöí‹$E’b̘1Û4Ïï~÷»Êƒ *žzê©:í+V¬(† R$)¾ûÝïn2~øðáE÷îÝ‹_þò—už¿êª«Š$ÅÉ'ŸÜà¾çÎ�[ôèÑ£ØgŸ}Š¥K—Öi;õÔS‹$Åyç�·É¸·ê}»K.¹¤HR}ôÑÅÌ™3›´ÖË.»¬HR|ï{ß«óüI'�T$)~ñ‹_EQÿñÿQ|îsŸ«´_wÝuEUUU1a„:ã^}õÕ¢gÏžEÏž=‹E‹5¸ßú\xá…E’â�تq[Ò”ÇTuuu‘¤¸õÖ[‹sÎ9§Ø°aC¥ýÙgŸ-’]»v-Ö¬Y³Éø—^z©h×®]‘¤¸ÿþû7i_±bEѽ{÷"I1qâÄmÞ¯^½Š™3gŸøÄ'Š7Þx£Îü�:u*Ú·o_¼òÊ+ ¾ÆíyßLœ8±2þ¥—^Ú¤}éÒ¥E¯^½Šƒ:¨˜7o^½5­ƒ •xä‘G*R’⪫®Úæ¹ÞšãÞ{ï­·ý±Ç+’íÚµ+fÍšU§­C‡E’â¸ãŽ«óüúõë‹w½ë]E’bÆŒ›Ì¹víÚJ@v÷ÝwoҾ뮻IŠÑ£G7XïÆV¬XQ¼÷½ï-¾þõ¯× ûš¢Ö×^{­2vÉ’%uÚ~úÓŸIŠ|à›Œ›={vÑ®]»¢[·nÅ믿¾Iû[¡òùçŸ_o½ Ù{k¾}û6ø:·USS}úô)’Æ +jjj6iß{k$Å}÷ÝWïø·~õÀEñf˜ßP¼5û8p`½üQGU$)n¾ùæ_ãö¼o6lØP 0 HRL™2¥Þñûí·_1wîÜ÷´–€h%Þ¾|îa‡¶Ýsî³Ï>õ>È!‡dذaY·n]¾ýío×i;묳ҹsç|úÓŸ®ó|uuu† –$ùÍo~³ÉœS¦LÉìÙ³Ó­[·M–LN’«¯¾:ÇsL.ºè¢-Ö½xñâ}ôÑ9ï¼ó2a„TUUÕÛo[k}øá‡+Ëï±ÇuÚ �äÍ%¨W®\Y§í›ßüfÖ­[—qãÆe—]vÙdÞ·^÷m·Ý¶Å×ø–ßüæ7™7o^N:é¤_ç¶jÊcê­¥©G��öíÛoÒÞ«W¯$o.w\ŸêêÍÿŠcKí�ÝÿGQh{öì™$yùå—7»ŸdÛÞ7UUU9ãŒ3’$7ÝtÓ&cgΜ™>}údРA[Ü?Pnm›»šÖÒ¥K³zõêÔÖÖfÍš5Y¶lYzè¡|÷»ß­ÓoêÔ©Y·n]ÞùÎw¦C‡iÛ¶mºté’Î�;7IÇsL~ó›ßäÎ;ïÌš5kÒ±cÇ$oµW_}u½cÞê³bÅŠMÚn½õÖ$ÉСCÓ¦M›MÚO?ýôœ~úé[¬ëÅ_̈#röÙgçì³ÏÞlßm­uÕªUIRo�øV°[EÞxã�ÊókÖ¬ÉÝwß�$9à€êÝçÀ�“$/¼ðBV®\™ÝvÛm³õ'ɤI“’$ãÆ�Ûb߆ü-�©ƒ>¸ÞçßñŽw$Éﻼ½¶´ÿ-µoü3Ý ½o’düøñ™0aB¦OŸžyóæÕ¹ßòM7Ý”3ÏëcjãÀ³9liÿ;º¾Í½oz÷î�ãŽ;.wÞyg~øÃæ’K.I’¬^½:¿üå/sÍ5×ìÐÚ€–ÁÐ%Ò®]»¬\¹2EQlÓWS…¿IÒ¡C‡ÊãÕ«WW¯\¹2_úÒ—Ò³gÏ\zé¥4hP&Nœ˜Ù³gçcûXƒó½öÚk›Ì»µF�•k®¹&}ûö̓>˜o¼q³ý·µÖÁƒçÈ#�̆ òøã�×i»÷Þ{“$_üâë<¿fÍšÊã+®¸"øÃêýzõÕW³`Á‚tïÞ}‹¯÷¾ûîËÂ… 3vìØ-ömÈÎtLµ ½oÞrÖYg%In¾ùæ¬_¿>É›W^üñõ^q´>®`‡Øø^­o]µ»pá ><Ï>ûlÎ8ãŒ\ýõ•¥s·dÏ=÷ÌóÏ?Ÿ¥K—nS=íÛ·Ïm·Ý–÷½ï}Ùe—]rì±Çæk_ûZF��¾}ûnÒ{jMÞ\>zÈ�!ùüç?ŸŸýìgéÕ«Wxà�\{íµùÔ§>• .¸ Nÿ�¯lnÌ}dcòäÉI²]0[õ½o66räÈôíÛ7/½ôR~ñ‹_dôèѹ馛¶øÇ @ëá `vˆGy$I2dÈ�ôìÙ3I2a„<ûì³yÏ{Þ“ï}ï{[ TŸ~úéüùÏN’qÄI’Ù³govL}WM&É®»îZYyäÈ‘9í´Ó²bÅŠ|ö³Ÿ­·ÿöÔš$·ÜrK&Mš”Q£Fe̘12dH.½ôÒ\ýõ™:ujª«ë~$ïÙ³g† ’$yî¹ç6»¯Æ„àk×®Íí·ßžC9$ûî»ïû—ÝÆÁêά¾÷ÍÆÚ´i“ñãÇ'yó¾¿O=õT6lØPYv@ À6[·n]½Ï/[¶,wß}w’äsŸû\åù‡z(IrôÑG×¹/î[ÞÒM™2%÷Ýw_’äì³ÏNUUUæÌ™“?ýéOõîwýúõ9ì°Ã¬kcW]uUúôé“iÓ¦åÖ[oݤ}{jMÞ\~yðàÁ™0aBf̘‘9sæäW¿úUÆ�×`Mo}¯~ò“Ÿ¤¶¶¶Þ>EQäè£�®³dt}¦M›–åË—·š«wÙe—$Ɇ 6i[²dIæÍ›÷·.©A[û¾y»3Î8#ÕÕÕ¹çž{rÉ%—T–…HÀl‡K/½´ÞçÿßÿûYµjUFŽ™3Î8£ò|�=’$‹-ÚdÌsÏ=—x Éÿ…x6lH»ví’$ïÿûó…/|!6lÈE]Tï~'Nœ˜‘#GVÆlÎî»ïžn¸!É›÷ã}{ »=µ&oµW]uU½�dCÎ8ãŒ{ì±yõÕW3eÊ”zûÜxã�9ꨣұcÇÍÎ5iÒ¤TWWçä“Onôþ[²Aƒ%I/^¼IÛUW]•=öØ#ÉÿÝKº9míûæíöÚk¯sÌ1©­­ÍÏþóœtÒI;ªT °Í–,Y’sÏ=7Ë—/O’ÔÔÔäâ‹/Îu×]—O|â™:ujªªª*ý'L˜�]vÙ%S§N­ÜŸ6Ižx≜tÒI¹öÚk“$�?þx’7—{6lX¥ßW\‘³Ï>;“'OÎç?ÿù¬Zµ*É›áë~ðƒÜ~ûíùæ7¿Y§Æ·®ü\¹re^yå•:mÇw\:uê”%K–äSŸúT�¥•··Ö1cÆdâĉéÑ£Gößÿì¿ÿþ?üáóúë¯'y3„¿õÖ[SE8à€$É•W^™ù—Éý÷ß¿Mû¯¯}ýúõ™?þfëÛØÖ¾oêsæ™g&yóþÎ�:uÚâ>€Ö£ª(Š¢¹‹ ey+œš7o^î¿ÿþ|ÿûßÏš5kRSS“äœsÎÉßÿýß×b=ýôÓùîw¿›éÓ§gýúõéÑ£G˜¯ýëÙwß}sùå—çòË/Ï Aƒò…/|!cÆŒÙdŽÿùŸÿɵ×^›¹sç¦S§NéСC>ùÉOæ+_ùJÚ·oŸ$yì±ÇrÊ)§dÞ¼y•%wÛµk—þýûgÒ¤I:th=ôÐ<öØc•yÛ·oŸ}èC™>}úv×úä“OføðáY¶lYƒßÇöíÛçꫯÞä>ÄEQä®»îÊ 7Ü�_|1íÚµKÇŽsâ‰'æ¼óΫwIê�ÝrË-9õÔSsã�7æì³ÏÞlßæ´`Á‚|ä#É /¼P m«ªªÒ¯_¿|ík_Ë9眓AƒåÏþs%ìO’Þ½{çôÓOÏ%—\Rg¾'Ÿ|2—_~yfÍš•¶mÛ¦S§N9ùä“sî¹çfĈ™3gNºuë–nݺ哟üdN8á„mÚÿž{î™ñãÇç[ßúV>úÑ�fæÌ™u~ÎݺuËèÑ£3qâÄ:õmÏûæíÖ­[—=zäW¿úU†º•ßy ÌÀlµ�ƒ¬þýû7o1;¡[n¹%Ÿýìgó¯ÿú¯?~|vÝu×$Immm–/_žùóçgÆŒùÎw¾“ dæÌ™9øàƒ›lÿÇ{l¦OŸžW_}µ²ô1ͯ)ß7óçÏÏ 'œP¹à-›ÿ“a`«,Y²$ŸýìgsÚi§åsŸû\�¶¶mÛ¦k×®éÚµk9ä�~øá9øàƒs÷Ýw7Y¼hÑ¢Ü{ï½9r¤ð·Ä~øÃæôÓOoî2€��{@zþùçSSSS¹çìæì½÷ÞI’W_}µÉöÛm·¥¶¶6cÇŽm²9i>üã3dÈ�|á _¨<·víÚÜ~ûíùô§?ÝŒ•;+04¡÷¾÷½éÕ«W~ô£¥¦¦f³}oºé¦$ÉÈ‘#›lÿµµµ0`@Ž?þø&›“æ3mÚ´Ì™3'×_}6lØ�$¹þúë3nܸtéÒ¥™«vF`¶Ê3ÏÖdûÿüç?ŸçŸ>�:uj²9Ù~Ûú¾>|xª««sÑE¥ºº:wÝuW¦L™’/ùË;¢L ªŠ¢(š»v~�=öXÆŽ›ùóç§¶¶6IRUU•~ýúåšk®iÒ³ jkks×]wå§?ýifÍš•êêêTWWgíÚµéß¿FŒ‘SN9%=zôhîRÙ�šâ}sË-·äª«®ÊºuërÐAåšk®qg A`€’°4@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”ÄÿbwÉ”g@IEND®B`‚unyt-3.2.0/paper/paper-final.pdf000066400000000000000000024325161526544257300165450ustar00rootroot00000000000000%PDF-1.5 %äðíø 5 0 obj <>/Filter/FlateDecode/Length 15191>> stream xÚí]w@Iß„ÞAŠ ˆXQé ]@ÀŠØ{ïåÎvêywêyÞywž÷ÙÎÞ{ Š¢X(R¥IQNOD¤I“ÞI¾ì&!HÈN²»ÉjÞ�lffßÎüvæ½7oÞƒ 9ÉINr’“œä$'9Éé+' ¿þw^Ë»ANÒ%-·q~}¡šØûwßR…eÄlý”Iþ˜4&ú¯œ0P×ýûpþ­~qð† £OSGOO[¿«¡¦ª†²*r©¾©®¾¡²äSEUEeEu½´9TÔÖÕÓÕéÜE_U]E]¾Â¬i©i¨/+.ª®¬¬¨ªdÈá&œÆïè…þzêçdR¿G_³~ÝÍuÔU„•hª¯+Îýð.?+'_í`Ú»—¹…™©†š¢�̆úê¼üÿrr³>~–�NíuV kQÆÂW„ñKèüWÞ® –)ªõpqî×ǘ†µ|Yö»ÌçéyMäqhÐo�­E/m¬Å›ó³þK}þ_©Ô{Ö&s§BÎ/ffÄîþíñxK©Œ �ÖÇi¤CUðŠï“§¼m&žCMko¿Æàõ˜ùob"Ó ¥Ú»Ö/T°mqM –—?~8?§Í~) 0t2ÊACüúu�"â*‰äP×sÄÐÞ4ñë={ô4�)G"M½"ä‡ïZiã°Ï„ÑNÊ·’u7²˜•ݧ í)q+õIaÁ/¾v$vŽ3öÓ¦mR…¡ºß_mœÚÊ‹ Œ.Â�Ãî“fÙÒðiª%#$8±á«FâÁo…ËYÒááÌù6¸6XpÿV®“üÀ…“õñl�ñòFpê׋Dß(ñF7K ‡]-쎫·/§ãÕ–ëš±*¸3XuénÉ׉Dͧöý¼à´TpØiñJbZ®�<ñ¨ ‡v~¯L ‡¹×/$~�HÜòkÇ+ÚÀ|òq¨0kc_›}æR®„M˜®_¬Fƒ �NÝküº�hØÇ÷'’°S ¹5äÑaûP‚ïPxéˆ$[ëŠ 6›Ìáó£×ª¿$vuäÖ§ ů.÷åÓ¨ Ò6+Ô¿_¯Iü]Ê/ì‹v� ¡2þ¹Rýå#‘ÞÏw°§@…ÆŒ'áÏHÙ'µÛëEâ?¯9+V=Úâ? Èá0e܇/‰ LE&�þ©ÝÚâ0a°�RNNü½‡íÜ"´5š &k¾¬ÆÉß`þÎNdM¾S¯‰¥KížKƒYÔG¢¾ÛxO%‰ /Ï…¢·úŒšæ¨(.ÓŸ\‰B �S'èÀHdÒso=J“|ÃJmÛw¤I£Y¶â,~¶'Iãð?R}uÖòón†úþñƵ86JôFL¦%ß™A78ÜŒžá�2E6Æß I“¬í.'ýÉÓ‹þY#F¥Q';“Æ`ƒG"Å‘¨{×£í¥æØ‹ÁP¯…ÓzàÀycôÑ�jºóÜ€vúcݪ’4Üçª=y@lvÃÁiþA5ò8|æÙBq$Y*ÐpqEc².nzÝM/AK|Åàñµ¼Õ‡¼a†ÝÁ-v«v+�Èáw{!j#qöY$5JðÛÿÊòv/29]·¸ÊêÝt¬²É¦6<Õ‡¤H‡¿³¢Å=R�Xãð´Êнdº=¢4µBIˆcÖe±ê™<°"•Ï»£AkÌ8«H*‡Ó®R‰³ÎCÒ¥Œ�â­Ó¸ãK.›sÏV|G‹TsíJ©�Ä{þRF"Ó7BŒZÇ‘Ëe�5à8÷ˆ0#—Ã#ß@”Fb·T])#Ú³¼Î7‡HfòÌ|°òjwIž³[††S‰+öKˆÐ{{à=*§'ä®|sHX…í?’Ü‹i©�ÄÇ~RG"sd(` Íð�$óø¯#˜£ÛÐ{J$s¸e+Di$Z¾P“:¡s .n$›Å­[€ŠëÅô'™Áz‡×ÔFâ�Û¥D(ÏLpŠ$ûõitM*ÿ¿õd÷aØPµ‘xr� ±ÉèÐ’âC²9ŒðgÇ(ÒWšÅ' j#qç:@b¹}6HñIçp�^G¿;’lKír)ŽÄMÈ l@ŽIjÄ[’Í`™MHqÿ`:Ù^š Q‰«öÊßÛ‚œâ\v˜toM’ÂÉß?w›êHœJ�øÊ`¿O;¾é Ž)p‡tߦwvÕTG┫2€ÄWÏÙçHçï£-ÈÑ0…ûCIçpïwÕ‘èO�9`é‹r%�¿}«AJ»Ä(�Í`³ÇsÊ#Ñ=š&}$Þ‹½¬G„„®VL&³ž5ÓUitŒ�Îðy rÁð 2Z`iEI™†UñIôh <û¦ªH‰ ÞÇ‹y“Š‚÷osÊ***ë[êDS£«¨kiëê™™›tÕî0`M’ÈŽ®AZñlúœýáßOŸË+k$*ª(¨jjkëô21Ó×êð­Ã�\æ�8 AvûÎÎÃ\T/E_«‚äÈçï‹…ÅŸSÑëÜÝÙ®_wa“í/¿ƒÜkæ1lÉLKÏ-b>§iu2éëjÕ[Xä1ÜÉe‰�n’>¡º…˜Ý¶'^n½êþõH 95ûxzztðCµ#Ð8ßÌá7o¥ˆ¶Ð:Û{r;‡Ž '"ÊtæÀj#Q÷¡$S´Pô¸Z²@ƒÑC$²÷ª,J=60üHé%ê±nsç÷v'—9$ÒÎÌ‘- B•#ž‰*Ò= ÙJƒo¬¤, ùΘçúÿ~æ-iÜ]ý+û8&Q‰2áÆOÿz‰2ûù>hdQèûêûÌh|ÀO�9‡LÄ�…4S‰ö‘Z2‡DÑ'«€R]ö8D�8t(^dP <‘¨öÄMq†ˆ½–=ÎOE6ŸÈí{ç±¥�‰¿n‘ÉGÌsÏéð÷k“±·:B `– ô{ú9=«Êæ3Þ˜Òá:�0»¥qVÌ2»ÏZ‹GüW�Dí{Y}ÈK*ÆOÿñR`ßÀ“±Æ&ë«G"ùçÂ1S‰ó{á?j¦ÄîüæˆØŸˆ½ìgË‚¯‰Qê²û”fw`±ÈpB�wV Ü/9нl¾mÉWŽDÅ»Ãeø)›ü ýÍ0@øö°¸_à<ýÙ*ÿ+GâôK2ý˜ñƒ…:�gÄzüéo)0ÿýìekmÞ}ÝH4|ÖK¶ŸSx.óTsüþURà}ãŸØË2Ã/JjFÐ¥W_ ­’(îŒÓ6RŽs$ž[鯮]ÏÀ›ã=xf[®�>û°ä‹@"´m¥�˜7$³Í•CßàzƒºÐKªpm±s‚)®íå^Id~HTº<‘Â@¬ÛΑ¦Ëón8ß$óÚ…·x¶7ÿÎ 6<=RNy$B¡ÔUW– ù%VâÚŽ©êÁ‰ˆFÜZS¼í�;‡ï.^yMu$BýžS‰{Ö ¸H¿4•€[=?}7y¬O,�ª‚O…3¨�Dhèm5jñÎ�è®Ñ„x¢¸z¯”ÝsÏÒÑǃ*)�Dè›C”bê�bÁ? V!ä†AGŸáÓÒñEÄtÉÛc—ó¨ŒDhßJ ±hHš°ŸÖϽéþáP<ôTíDe¼)8ü? #‘’ÛÏ)ŽBÅ"ú±…„Ý6|ß=NI÷~dNƒe×dP‰@áÔd…rl…[.ÔGwãg;‚%O†ç~W�0«®îM§(ÿØDA$VXv éßö ðÖK¾F\%ÐK¹êÌîlJ"‘(šPjrLëà×®7] ¼7#è·TIÛ˜|†H‡ùO{VR‰·ÆQQwöŠêè×.×<‰¼yõþ�e61ñ4¡cÓ¹E=$†£"G„vøs§³„Þ>ãç [vÞˆP/ozO5$F ¢"E¥hVÝCl(LÆ©ME’µ`wÁ’Pó~>C1$&ÙS‰³En0¯ÿ]…P2W>–¬ã#‰í£‹ßR ‰ôk*"Cú€Q‡ˆ ˜Û°m›dÕ­ëè„røúÛ !Q%¹?‘¸ä¸è2=øËDÐ2 O OÞcB(ƒ5öS‰Z)” ^·‹=^iÝFB5Tèå í9½w�&¶Ÿ¬¯—#‘PžÂ��îò"”�‚¹†½SXü±:ô�ùeA¢rò*"ËêŒË6t&’�ªE×$l¡ÏÖi„öTÌ´\j ‘¢ ö‹=7Í&òàXýB‰S�þe ‘]•0.�Hüb­8<òÜ0R¶¡¨¶`-‘"Râ¸\J ñË´lóÓÈï}‰c¥nRˆÄmÎû¦qF�ùL$>NE$Tœ>tÅE¢x)ž(y#úógN šÖ@$ÞOE$zFƒÖp[4Q‡ f2ýòqhEküw¢²yîúžH<º„‚@lrô׼‰cÁqIx¥8xépb  Œ¹d‰ÀyÆd�Ê-Åš…t'Ìö"dƒmÃvœê?g*!c©çk™GâÊ}Db¶�˜q±iƒfN0ÄŸŸZßx¼šê4z®‡2þ†�l�u$N¼NA$&;ŠïÁo2f¶³Þ ÅûâDŽæ8{lwÜ»líG"ýÄ| "±l”$‰+\¦Ž1Ç™£ïwáÙš^À_œÏ”¸¾“m$þôUgè??ÉBmê™âƒë»"'œcö˜j‡ëÔ}~ŽL#qâeŠÆPŒ�4Цùˆ‰ÎÚø1th9Þ�¨ì0i¸%~v�&ŸF¢C¨DQ:±Dò€ ½ÜñŠ TíB@ˆW—±þýðjìÞ†Ì"ÑøI?ˆ²ô#.aG¬FN±Çg<ò !�©é1n>Q![GË*Õ‚†QˆPÓ´›¸´£ä0mTÚ©°Ë&èI |gzã±?8EF‘Hß·¢2•Á+KŽö°©8lnlÙJܳöš8Yr×±*§e‰ö tJ#×wÜbÂ,I]†ÿu 21…²ç¬Ñú¶ñÇfÙDâšÝÔ"”cƒgRõ¡ ‡J”»€9ú±ÏÛ}êL‰xåT+‹H¤?ò¥8™£îãÛ ý¼é’lž!|“@ÝÑPI²!Od‰ÝÓ´(ŽDhßjܧ�Y‹ÌÅ®œkC‚Gªç·ãÄŸ¹'—:g\¤:¡Tgü·õ æ.[“ö¿OÆSÛ¯š"îN`¦c­ "1på‘Èp�' ÕN‹V‰y ~;I©–ÖMϽÑ)Uö�¨—bFy$B?ýMH³&k–iˆSï…{3I>øg?±ê-?${H웬N}$ž$* ©ýŸâœ¬°É!ëÉçnÇsìúdDb’õ‘xœ°£ô¥[Á·ä™CŸ�÷ì¦Í¯”îØH$OvÏ•äHÄ�¬Žº×ÙHª�ÝÂ�À¹â«l ðéK—#Ò9<é¼øµ%�³½@«Œ !”¡(Ì^lÍ.Ir$b–Åv‚Ú+]ZH}þ¾7¬kü°ƒH~ü°G7m°çžñ²HQ¥>O/ ´yÚá¥`>Ú�œá¶w(àÁÙ„¦$}sÑz;®;†^”%õ‘øíabÛW½5¨|�C&É=àòLV C$7‹�a.Zk™Íý×û¾Õ�xkjÁw0‹óRõ‰ »–�½Œ ®Dʇç«úóB˜–k‘,zç•Oø=æœ*¾à4Ù� äî\`]J 3Çc.úÉš—�VñúXJ±1àñ7Q Š¥†[0ìärP¿Î’H3ÎìÁšßÙWñ¾˜F™S‰DúHóhü �ãuÿD~?�L(-.‰ÄqB�ÇîXžäŒ\N÷§.÷üÔHÆm´^‚ª!èXU‡4áHi¿0â8锊Ýuä©7ß×®û'R‡%kÏ“t§ý+ _œE~W¤v( Œžc?&y§ÍLNÿi‹2�øbI Y·šz ðmiäã¼ b™™M`üº'±—mïàNt*'BèôZò,Èöña2J#Bï_ Âé²£Ä1òÀž”‰ºÇßÞF”‚aÓÛ‡I¼�Ñ+€#u>Rè�å cÌd#–�!Æ{a�±ËºØ¹z[ëS…�¢c_“šwI3¹·Œ#(ð �HìŸ �´sô]!?˜ô÷æ(ã0¬¼ŸUCö]ÕB¶DyI¡_Æ€(!ø†×ã#€½>¨Ù¾ƒøÔÚ±2¾½è¤4Ô{áÈÁRàpH‚{LÅ"zèì…‹l;Jù;î&M–�9¬Q·í”`$‘Êê¼ð„L¬ÎýΣ¼¶ïèX&í†,gĨ÷}&•ûš§ib/üH1¯€¢±ç¾´s@៫#»H”ÆöL^+Å­ RàðHÏÌzÌ�&Y@樃 ¹:w‹€í/¿É,ó\ò¤scs-tn®8| râT¨Î Ìü]’`¤ÿRzºˆýõÇn2 DæÌËRºóq�“¬ûW‘Ï`×4 ÓKX8OÚ�€ò#Ä~Ým£@‚Û4»¿QÂ>RFƒåHe²�I+Õ ôo¿’Ï!�Dƒƒ°yÏö¹2}<|L<ÿEÕÞ Å‹¬ŠEù~‡L1Ë£›P7àΑ_†=1(ˆŽ±°2ïÃf.³Ö‘Øq]³ö]‹@ê … )”*Ý*ƒ@lw[ÁSó“÷ÜÀ‹ÎŸ,*¢@çL�À^àÉ`ßDÝJ(ÄÖ%•°/ëÈÙ"P&ÖÚË·m]¦_´ îûaM1a”ÊÒß’�_Á/zÜð`�4!Â×>.Í?Å*uûH8~}sÈ-d†Å0çâI°4B?nŒê8Ëå‚“2Äd?ŒÐšrùóßåsÿásg£§ ÅEŸ2 €?'îUâÃáôó@© ñ¶T‹·Fý|ëT,f£Žîß ÇÎ+m>`)¶o¥Œ±Äk¬µVGúòg¢pX¤5®Ž*ï."åIŸdn¼ƒ·®ã‘ÀÅ=¸Pya›}íÔž–ÈsÁeØ$éíö \G{a‚¹ú½Á²%$NÄXÒ4•-5ðV†„wÖ9 ¸é$2#:slMXàý 9ô¾Ú¬ÂàH�—é÷ì~ûJŠÈP©Nk'ƒç³Ù¹[¹áÝe ‰¿ÿ‚µä·ù¾ÖÅÞ¼/ÉI6ë# 1š–ŠðFQ|Êo¯ýøøÚ3I¢Ö/Ú˜ï­ÈZ°2âøL 8Ü’~÷Qj’‘ÁàyCTÀÙfø<ÅXÒ÷® Ê8^ÖÎÿ <þFä[ñv±Ô—lîX…uH¶ÛÇÌ~'æÌØoË4Ð*1ž‚;£ƒƒÊŸ%&g”´×¸5{ºyø˜ŠÅø;[̾}«ÿ‘ ¾òÁlR� èªyñèI°Ì¨>a�0¯9¶"–?/òÂÃó�_—žK‚[9„„|7Ní¸©Ï9y9 r?77²ØTRÒ13îenn&ö ¨ƒØ©Ñö¬– æú§a.+Ô'…ñ&!âyöe�f1iª•Ì^žÑñïÊÏm…üR‘žž�ÝëMËyÎ(q¬mÃ+ذ Smf3½YQQBçAÆà(ì…ÏM— ~�=¬JtGç¾ ^'¤}È)9Ú:–ncÅ‹è7ODèï°ŽÌn¹ÉI™9y¢fGš™�ßñò# C€ M/H=÷þÒ­ ´æµ‘2ÄŠÙÁØ »ÄˆTâå³òò?äTW×4µ U¤¤¡Û­OŸþvfâ¾òUvYÀpö­¾ô]N^AqΧڪúæ6&!º²Ž^Ÿ^}m¬ÄöÝ»6UàeŽ–,Z–­OŠ D„?µ 0€[RSCEe]]}c]c’-@A]M]CSÇ@²à¦wEl ê&›cn«±º¢†ÅaSMK 2Gª¨i¨ijêëJv:}š@È)<Bæ –Øç‚)f/eàH>ˆŽzJ)s+*Pب»Rf°ÀVàâì­H&W€•™L�Ä�*åÔ¬y¶"œX€œfˆ !nï§æ“ÉDµ`´Ó€`éèÐæÉRfV”—¬aº”#4z>t¹ÛK=2¹8±°P8¢ ‚ºÞËnÒåµÞ)½ã³ÎK¹7¨–oÞJ&àéÎeÂ%ç•#æpÓ.K™×+3D˜_Øn8Ò#f€À Z‰¤Ê×ÿû´Æª½2€Äl›*Ì@˜*“K�z&kK—Ã(?�Û¦3/�ÉÄ{—bÐ*›þ�$Ø`Ý’í–&å²fËø«ÍðèO®ø„Ô*bÍÛµV�Xa�Õ—fÑq)sêöºã a^Òåðö�¾“‘ $24‘\Gêª(LMéØ ÒûH—Ó­[D°y!]ûl¥‡à®$Õ´Tàž ^iÍn@â{ŒÇx¾ÐÒ¡TOQ‡ÈÕPÛÓ/¿ ¼Ü#™D©†1ýšµú$iJ‰Ç°f+ÃèLB5ŒˆQBå…µT9Œóìu°u3‰Lü³F¬j!Òw�` ÁxN!ÆEªŒþ)27“ÛSEi2Xá+؇W7±'yL<S'V=�¸ŒÑ[‡jl]¢”¤Éç£1"ÍžR>¦&ìXÃÜ3äñðzˆ˜)ÅDùñ’@˜­ n”&›ïçˆ*¢™$U÷ açÅ•"É‹ƒT0ò¥¸Uo�“2Þwh$ô“"›£D{ó¤›%€Žrz¢c×]\©d¼øQX&_“2S\0ºÓû<‘¢ßPýl ñ ¤jKòÿ$äò6¦Š§I�KíÖp©±iÖ‰äð2)r¹CúR$JŠ´(}Œ°íëgdÙ¾>N‹•¤z�(i"s6FÝ4S©1Ù¸K�kiºgdŒ™eêI’�ør¦„AÆ_“¢é!ÒëÑP°ЏRí7ç° 8†+%NéàpÍÀ¿}Éàáö²BI›Øñ½ «Yg4ætÅ‹ËØ«>Ã�˜)ò|ƒµ‰«S¤5Ì¥ 0 ÝRu¥ÅáãÙ‚@iÑO„'ËkúûwÉ“F¨Žl« Ô„Ÿ{XO›kƒ“•O‡7CÖS'´;åXºóy3³äNRæÌyñ˜Ê­Ý%- ž\#Ê­ÎxýBbÿY‚G3Jîc†£óe\¿Â9… æ=u¤db8óùÍœ0}šÃ¦Cyï•?½÷ s;nÁR2|ÞùcTê¿~’ƒu±Äò°^?E…0ZNýRˆW[j.#†¨1TT˜tZÌùp´ìÖuØŒAbEÍ º׌úÞwü ƒ&ˆYË gÝŒ‹«Ô{õ\)D¯ß¶kÀ…á?xKˆ¯Vb´œ8­GP ¤ä�pmOQ‘©¨AôöQ_øsŸ‘™qAQíSQo�˜ÍLHŒü�–ßM%‹‰kŸ‚ôà˜uî$3È8¾»{´Ã’)«ÊÛs„Ì4‹¦žC¼{”¯~þ8¥o.,™Eæ]¹wGX %ÿo‡’iOÙ vººÏŒÙ½ðå èä¡\’ß>HËÎÕÝÖƒ°Qþ.>&á 1Lôœ5¯IÏ˼µUœ=TŸ¥£ÉŠ«QôÏ!ฌºþs=ñ[¤s/Ê�¤BÚfn‹˜àïz�ßL úæ¹’±�úô/q…Ë…È’Zy~—xLí&�€�|xîò'Hz´ng‡?g,%šE÷icˆÞ ;xG‚שӨ©ƒUˆe°üòAñw44<&Ž�ÔÂXòèBX=$MR ëÐÇh)©:ûNñ$Nb¬~pì1SÂ6¬GM´!îLKöyIó.trçi!¶Hû).èa>$mr‰Pþãõ)L’Ø0ñãNÈÌøúÖ…×x´£d5z¸"c}Ô…»e8´£nçå6иZmfttT!$ $xw�=e»ýG"#ƒûZà;ñä>¸†_ö+º…Ÿ÷ .¸2Ø”|;¿æô-lœì»êct†¯-ÊŽ‘þ®’Ò‹œtõ>’yQéïâçhŠ›³Âï=+Á›C#[_ œ¢6•§ß}üw(èwлog##--!Ë5£²òSQ~fæÛ¢ H¦H¨oòÓ¡�R`GËÜÕÕ²—�Dm0Þ§G‡ge¡íléáØ×\2ãIõ›Ä°g9Ê>JêºÆzººZjªJtˆ®ØÌ€Zšêëj*?W”åUÕ´@²Hë(ÿÄ.øWZÑ�¬,-lz‰áàÆ,y—œ–”QM0‡jæVúY›ˆã¯Ó˜Ÿ‘’–˜Mî¢HcBT ÷=Îí®ÕíÞ^-]®hú¦ÝzØXtÖÓÂdBaTW}Ly“õ±€´NW261ïmßÍPWSt�†ê²¢_þ—“S ÉIinZÓf´“×DÊk4 -=³Îf]ut´´5TTU”[åqfscc}C]UeeEÙû‚¼ÂÊJ©¬9 ÚZ�M»˜hkki«©¨*«Ð[§òæ–Æ†ú†šJ|øô¡¬ª†)›òÙƒN;Ò´k…ìñ¨¨¨ ¡®ª¬ÊhëjkM Ya�®¨ ¬¡¦¦¨ÆQ˜uÍuµ5�-Mr|P§,9Cü)æÐy‡ÈIj¤l;~˜=½(*èI�¼3ä$]Rr1‰,”wƒœä$'9ÉINr’.š{'£n6ÿÞ‘u6 ŒzX>yŽ­°Ž³]�²ÿ’^UÊÍ_IÃÁ±—Nùû¤ô2ê #õU ]ßËx×iÞ°ÕS†æb ~@_¶¦7ò3zD­uhúFN&éLï"Ùá*jëcûï;Ý Øsmæ%,³çþÖLq�†µÿYÛ ‹êçâÂü{U u›J>Kc»DÃÐH«¾¤¬DÄD·åWî)ÎR0Z»­kÇ­ú»r(|°¸Hôû–AŒ�ïHAbJw¬H\~ õßßiÛ̈©¶�ÕhÍ5yÏ.G�‡y¾Ý4 ÆÊá7_�ì8ç=ÏÝD�5|Î êÈgpb`«·ÕÉE0 4»Öä‘ȧ ÐQu½ $@â’£ð§ËsÙB¢Q"Ä«&‡ÞEÇ·MÈì™›-x_Â6ÇâÍ¥êï+xä-�sÈœp öÌà�ìª?(\ÜR�±CŠ|héÒ‰%îLö´°0Øñ‰œ Š‘ùy@¡H\ÇNkqM�-$N „?/mý@3´‹äÛ|VÛ˟Ѳfýa|™T:É—3êø2Å— ¾ˆÿZÒ q ýñ ³“c\1ôb ëÛ¯d"QP¶ûŠ~_‘,ôïmÛŸQW:3£í¥qe%°ˆáAâðþ³ý­Ê&[hÉoá‡.µÿÈùíA6Ç�BäDš6ìŠÖP�ˆ nŸ¾4$Ò.Ng}^ŸÜþ—_ؽÍLΨ×È>ÔØ02Gµ•=!¶ÒëåÖ9Í‘ÄÅ™£."±Œ®oá®swŒp¥eç:XOõfJ ‰êÈ1H¦ú8hÁ�ÕˆLÁ(la#ñ¯?M´Š‹ùÝ“Lº(Tç—bF"͸«R}>†ÃÏtmM Ze%בUCK[]¡¡¬=pºúê´†âO�"‘¨fªO+Ïãùn"1ã$Z·�F»_lŒdÝGúoHÔ¹D/®™GUCGK±®´¤­cÒU©.ŸÏÔ¡¬©­©Â¨(iç.êŽa¿2QË»Žo@¥V0î¬T—‡!dŒ¢¦–³²’wn@ßX“YUÀ;;§ljH¯Èo߇�Çyû&d{L~‰Jܨlb¨P•ÇË»uð[ÖÇÝÖ0Ÿ·p“YÑ…{¨!?)hëë*1« ùPAÓÒÔ¤WUò–¡®ÆÊu…¢öÿURû²>ÏÍm½€ 1§ÁX½©<ëò^÷vš;­¯.ÔT”p,µ§Ïî׉ÖRš~êzç÷¹ ˆ–ü²dº2!úuø|ÍÜÑÏ¡‹¦*T[ùþÔ%ÈØËÃÊTG]•ÞTù1äø¸Öø˜ëi+AŒòœ»Çs:Dbß%#Í4¡ú‚§GŸq®ÜÏúÈÚóiµ‹x*!íÒ4øOäΠz!PDÒ\j d×]GS]¡±";ä"ê8 ú´yô¡–’´“�l„*zx:öꤩ¦Ä¨)K8þP�„p¯]GéÏžÖWj.I9q‹3Ы&1 zÔ&˜¯½Y]s~0…žýl»¨«1kʳ!³ÈÎP j(yuùòžš,×Sj(Œ9Ü&¨>’ö‰é˜ÜîÞf ÆõІ?Å}̹rÎNQŠ$Ô£-~ÃFbv6Ü_Ù‹ç.d�YÍEª§�¡ªùðÛÓù”&‹Ç]·!ûå¶]t´XkIiêéëìG¡™8ø4ÕT£ÕV~¼†;*Sæ[ëÓZÊ2N]íð‘F2œ¤ãü~$réÅ î8 >ÐÂðÔwU¢‘è~Àž{=âv¸C$‚_´'üïá'AÇ²í¼œmm„~Fgv+XÆÞêÑ}cØzíãÂG qåoÜ`$�‡6Öñ�Ȧ&Ë·­ÿ÷| 'b+umÅÙ7‡àÏÇÃY:( ÕdÙö]ÜyÁúhë©þै§™É+TÄEæÑ5õí­?ÿÙ¶Ÿ†ýÓzøðy)d<’ý¹ ÆÚßx¹â~üë£ÏþÖð÷™¶ð¨NÚÝ�ûh{~æ[ûÙѧ_i{ï™ÿãž fž]WÆC"‡&²‘Ȧw– >HÌ9Äæ`›ÌBçØÑÓx]ã¡ù§xU#êਲ਼¼�gÁsÃÑV@=\œ#6¡D_ö¬8üªËoNo…Ä!�¨³9�7îw8�W8Tùž?ëc,Tÿ± 5‰Ü@YA{b¢G£â:{þ+‰|ÉyçÔ·Abµ=o~cg¿Ú½Ž7ß%Á�j›÷¬ù‘?ܱålC Ý�n¼‹qþðúfšÎ—û�kÊqÏ­üá,¿Õ|â9Ôy¯W£Ubï*ÖÇmXŽ %Ûr�·•anëý³ 2ç-©+Xs�£X…—�?óWñ¯®+÷¢j†Oü܉ŽIh$¾¶oÐIƒŸùû]\Íæx®Ý¿\ÿ:ÔB®1¨@§  Á êíwý+ex‘ØH„Öî�?Ícدƒ}çïöŠ@b÷¾ø‰>UÂ�øÏØÜbýš«Fpé‘?‚ËðJÚÌñÀ>ºLÙ—?·A"£oND¹2vAóx|)‰É—³U†Ì‚ïðÌ–ˆŽÃ¶÷¦C×kl7Àbe¶}yÇHDÊCÏ/æõ]€è�ÈK%‰Ç šô-´æÖ±‘øqG!Íf)|B¸Ñ‰ó3Ã/ñÍç&u¯µp(ã,»*ÁHÔO‚5`Æ•Ð&�ð8Ô¸dp‘ø*m­¯$í)¼©Yb…Ò§ØÙàär›¶e6t‹p[á‡Îg§¤=¶´×Î\ÉÇb+ºNEÌwüI3~ÜÎÒ“ó!œ‰‘8þuõ“ÕBÄä>ïl‡HÌ9YÈ0èÏXÔÂÖq¡’ˉ•F–vs²!ÅXÄ©ÙÒ䱆|¬7zç×VZrÿ\gbT�q€ÿܹSå´žË[††s‘ø!™,ÿÊa#ñÅ ¸¿ ·5AS¯pŒ`jÉðš‘gýÒH�ÇtÜmÒÚW�ž] ™Î˜×Þü‰G?Ôëõ6™W}‡LdWOwÿîðz§t@$“0íØ"n‡³³Ûn€;¶OŒ†Q!"±w2\þñdÌöáLå ñ©7ŸiåútÌMøE˜Ã7Í�¸­ÌºƒCª`$²%=d›rŽ»°s=‰ÈbÆgLL€ƒÅ§:¡Ä ·çÉ$Öô` ç ;ë7–Ì ›lÎ��õÃáÙñ›#\$z²Ô�AÏÝЫ¡ê^ú¥¤=‘éÀî9<-Í` ±Áz1¨±#$"Ób—I�Uª·ã‘WS�Á„\£YÔ2V±ÜBYjC³+zBît‹—Þ>r[kb‡$@&sŸÛpüÛK3¹H¼3–Owæ ·f©,Ì6:¿„œžÁãÁô ‡l_°!Ïû†vmüPã¹H|Ó�3õi%´êÃÚáÜ) ‰ˆ=Ñ= ~1Å@ТãðDh� Ûÿàá˜2š‡D¤|½’Duö9îÌ-‰l5¦‰ñ®ð0¦÷j7ɰÅyX~„Äû#à�õ@$÷ ¸g3œê8H<Ú6�”JJ?.ä¹ä/ÿpú_6ÀâµF<¬¨=wo�‚áM¨þÈ$º ÞŒ œÂEâPX ýáox6·åËJ®ºu%o·/pbŠ;gbdÉ ô$[;Úif¡G4i÷à¤ë7'òfõDË6wjo¾ïç?e [�`ú?€t^Â}öÓßl¥jr„=HD$­W¶é¦Ð;ÍÎP‘ee2Ks*µ�ãvýu* �$îo+åÚ|–‰ôgmƒ{ð6‡"1Ö•g-g�ù‰ÅÀH<±�»M÷;6w!H�¨ÊÓ ­T8ŒD(†x³jk;C4‰ˆ)†a“Áž Ðôʱ Y=`·|6.,~P³RÊ®-„%¬¦÷卸�íÎ?Nì�CâÒÕv�Æm {B`Õ4Ì0ä¼j°ÖÿÆÐÔk"‘H g ñMvqth—éTˆéQ™Â’bÀï…é=¾ÌL�x±íÖ~¡U©Dsb¤g›ZO†t´:ÓB‡òVpöœ¸÷; "|€‘èóxò>AF]…#±ûKÔœèËš ˜ÞQB‘øý®*·^×ÙÿË�Ä÷a=Ú&“c@QŠS36$Âzù9ØàRbS �dÛ½Øs"lÅÆ€Ä‡p—_›Ö:¨%µÍ'�¨"íiån¸ÓXË¢NªoN4OƒçÄñA"‘ÈNnµ 3‹ËÁVX¬ÂÊþBØlˆXx š¼r­.z‚‘Ø.‘ï{›jI�È–â7´†G¡ {�ˆT°šÅ6!$¹ äDØ,‰X­œ™ HD0�¿,ªÒzjŇÄhK�tsž.5óW‚DëxšÊsj=”?÷4¬:Çy5ñ#q¼[\j›Ç6Á¿û¶ ´Ï/ ÌH„®Ás{�C&[•z:˜É›ÅaóÀ®µÜåB¨œxÞ°xáÚª›Óca©ïÖ¾V !ý��0¥1ðlZÚ¿Xá™ï-ü~½½¢#që^u‹d5–”ÔÉ*´0e1üôóXŽE¥{¬_ýõC£ÒÐ;‚‘ˆ×…‹xÂmUZ‹#‰tr…U.ÇÂ_ç†Àu:Õ™5´Ið†Öý õÔù ,XgÛ²²c ›áئ¬HŒsæîÄò�¨™Ò‹cHáÑšÝÜ-&( P•»±-‰Ð¶-7ô§x©›ô²)”åTÆí×Úþ0¨†Á6ò³,±G ¼ß™<�ƒQ³±Q$g :›ÄÊ€PSöêÌ1Ë]™ÕA=ÃáÕ2݉ÕK3`™‚9vM²ŒDÏH˜ßˆÉì逯dëRй՜Mí*>Ñ}m׳¯Ø£ä}[‡½:C¯sv÷!È5^©n�g¶C"²ž}´G‰s\7Ë%ÇÙ–#îâ<ÎÃQ: ¨$š¤ÂÒ諜%T£¹AB$*?F ’s3¬˜¦oãÐ{Tßf{CLÜ{uÇ ˆÉ`/b ¾4q}8ôqÀjD¨E †i°Q¼bÏc†îv€ÕùöËó“ µ(îê̆góÅ q<¹£K Ü~ÓÉÀÆ‘ËáÎoòŠë‰´Sl¤öyfM;ŽÊNM€ô+3îÞsÚˆȾ25¶ô]róQSÇÚÞqaŒ($ÒîoNOÍ.¬3°…¸pDn�î"Ð =VสOëv*[“-ÚýÒ?ÔM0•#�Í÷×—£kUú»U®‚t�Ý×A‘å FvuüÑ~)j©½ë^¦},l6²÷×âª3šÏas,óòùŠÁ«‘Ä›nAí�ÈÆ]äÞõ�=×WµjÏlY±¦CP±-,ÔØ&Á ü‰??1h~w#‘mσÊo>ÌajYÛ9}.!!Ÿ|±¢}"xÿ률SgÔ{&Ø\ÍrG ÂgæòÝ+Ù;F- %¹F•[TÚ�ûùWÄ%PH„ôî j{‰ãÑvßù±?<³õ�á{&DF퉈€…&Ä5Æ%Œ/àmªlh¦Ýâ·ø @"4ì*"-ìv;ã"ºJ]ÿhï‹Gü鉚|a·±‰×ù.Þß܉l¡æþlÉqñDÞ#�¤¾­N6�êsd#¾¼˜AÓ5‚Äž±|¹f;rŠÇ†DhÕô“-=ÆûŸ7WÔ�~ݲñì¡íc$�¢ú¶³â@îaH¨ÎB”»©â±ù¨bOÇ}î‰P—3Ãù/ìÜÐ,‰CÙhŸ|�,Ä„Þ!qEç Í/=„êÊüÑIl?ŸHmQHäk¯Èªj]+Ù4�´êÜlþ{sÆeÚ?}d.Ô‰h#§I6ä‘Í^DµbŒzÀÛöéЊA£.£Ój²WL!HD4N”„ŠèN;àM„ÎúEææoS^¥PþJ<—@–lºë®�óø½­.T¯–rÝ8}ΠçOd3QIÙЃ¸ÀLrl�Aó¸ýyËö]¾l'lIrB‹¬*¬l %{uE o·J�©�µ„­]…z5^o äŠd|HÌœÇ}ö ² Fæn™êÜW‘ßk &¦�ëÐÙÇë�nबœ³£õ®I‹“8ÿ�=Šž<©ñ CÛËÿÎ+ã3µj3*�üzTv.ú¾ùè™·ü¯l!’¶þçV`p½‘x½ þÜ9vOÄ5Œé”ÈÝÖ{íÀqçØ´ ýn¦Û28^aÙV<'óÁ{QFGÄ )„Ô.˜1!ú=žÖ~d ¢Ÿ†gQ½KLˆ¶Ž3,Æ  òBavÂé$´Æ2gxøfNÌ¡Þe“ýXËI}Fà žôkºrdo˜ùæâ‚¬”°í’% ˆ–ÒzÈnÑ2Ö×tdjÛ<–ÅÈcdßY^@ßΰ„RUšû>õÛ£Æq™›™Ö™ùü�3h¹¬—½8z‹k°öe5sCÈѶî3†[Á¯#7õÆÍVÿt‰u×l,Ô¡Ú7A‡y>uz³'Ú n`%R.Á>¤FW´X]´ÖØ�°þ«œ‰ö‘ï9η?;FÍ»˜Ó/Z¯÷Xéß›õ4µ©hŸøž«†ö‚_£¦¢‚¬ÄëðNíª9,ÎcW¡Ù]6Âî¾ÆìÄ­ˆ÷q¯%Ã-`ÝŒQ�w’/ž½å/ cD¨«xŽúÉn¥lu¨H:}…£uÿ0öGÍ-ªKfXiÀ}’t�ã×ýÓ$=s.<Éh^î¤k]�¹š!"yyчw�ƒYpø•5€9³PybµgN±A^ɲ/¯„v <ÃK�ÁÓ»è,µŒóYE˜­?Ñ{šÒ*‹?·Ý_Q075P¬þô_W1U S­òoùÏ›+÷4ÔbTV”q&On­ubC}E1Â"c …æÆò"´aTÙÔàÓ‡¶ÏcÈÂlÑ»\þça ?Žabn¤\ù) Í;‚Äê^e=õ¡Ò÷m¬$ÝÍ •ªJò ¼Þcw QÅÛÞG³»Q'¥†Ò‚lþf4úšªÎþ�¿´jOC�檪‚Ï ^_´å\©—I'Úçü÷µè Ðçâ\[ºÝ õèu%ù9üMèZtU.ÉʆÐ]Þæ6ôžÆš eïy}¢À¤µ´â…†>Û£db  5Ô•–4 OŽQw#åêâ¼ÙLU!ĶlËINr$ÊIŽD9å$G¢œäÄ%äesïòž�“tÉvœi>/Ï&'9} ôï$ú< endstream endobj 6 0 obj <> stream 2 5 300 1 300 650 1 249 2017-10-24T06:10:68 Pixelmator 3.7 endstream endobj 7 0 obj <>]/SMask 5 0 R/Metadata 6 0 R/Type/XObject/Subtype/Image/Width 650/Height 249/BitsPerComponent 8/DecodeParms<>/Filter/FlateDecode/Length 66092>> stream xÚì½g°d×u.vrìœoÎwæNÂ` ‘Y¢$J¢HñÙ%«¤²~¾*Ó%•ä’õƒ¬¢õÿüT®gë•ô^Iv•DS|õžY¦( 1 09Ý;çÓ'ŸöwzÏ4¯&a0Ó3s¦}OŸÞ½Ïë[ßÞk¯EQ�H �H �H �H �H �H �H �rwÂMÈ£!Ùl6�ó<¯ëzÐ�ÈÃ.LÐ�<Ô’Éd&''÷îÝ›Ëåð~hhh~~~ll,�N�óØJ·'·¾ÈCÝ¿ý×Û¹þ� ôt £(Ї‰è² }ýK÷Äó<Û¶5Mk·ÛÅb1h®GL5ÃöB纮‹ŽÆŸ^Oˆ^Ɔñ‰nè‹ã8|ÚÿÈ×}´¯ýð'n#Ãï1–’ÉäêêjÐÎV^}õÕ'NX–…ÞAÇ¡kÐAä=™æèJ–eÉ•~‡b$`âãfrOÿ ¹Ÿt7¾%Šâ׿þõo|ã<È=Pd(h(\Ì^Ì´˸ˆOeYnµZ/^ íáØa†a ÛàÝlén•`§‰'î¾B”þŸýÙŸ ¾6xå«_ýê÷¾÷=¼¸¢ÁïS/“í#7¹ˆ_�&Á{èŠF£Às 7:ªª‚êMñ±277‰D*zÑtdv]#º®‡B!(VÜÐl6«ÕêöövÐz…ŒŽŽ‹EÂ}ï­Ž¾ü&¯dDÁ\ºéî­.â&Ò·ºl÷‘ôW$I‚zy°Mì=Šô×ܹi>pà@*•�LiØ4äu·•ظš”¬gÎÉžtІ+è)˜\è5(Ç­­-°(·'Ý«ò`ëFÄì QâBO^}õÕ ûnSÈ¢ 6‚þu‡ÌåÞŤd_ µBõˆéœ†V ØócÍž!ƒ¶´2P233‹Å Áût bYÖþýûvï2¢1qýµ×^# e» ÌáZ­í´çà 2tú«¯º™‹W¶'x�jµôéõ‚™ ¢L�˜z]·Èb8qM °ÀsÏ�\‘ááá‘‘âݳ[³ƒþóŸÇë5÷ãÎsçÎ�—zÄ0äˆó0†­eY�a/K’„Wâ@ðèõ2žÏU«Õ`Š¡£§§§ïÓªIÏ<ºLLLÄãñë�±B<ýôÓ7[h"ûÓÛÛÛÄÑ£/˜NÄå;ˆ^ò)K(B¯5›Í‡qûŽqšlQg³Ùîgôéq�{$m¯â4:¶>zZe÷Û=‘À)��è5ðàë¯CñÍÏÏ¡o¦è¡ `Õß±kf8M&“ ÚöSEQ`iš†^{¬bƒ�†Ù½³³C½m`JaÞí>‹ü8t1T žš˜bh„p8°ç€=?.Ô™°®ë!öÔ¹O ñºµµu �Fiø€&´ð}•H$eM<¿ó¦ Žß±{ñx¼ÓéÉW¿úUhív»híÝê›DË©T*�01ö'Â#àAcú÷>Mö5öïß°ç€=?: åbÓy^Ì&#»½²Iˆh7\œ�� ‡Ã«÷1Cvvv�îÜÍ¡‰�˜é0t|&Kuê… Ùï¡(ŠræÌ™Çj‘óÈ4Ú؆Áü0bÛ«¯¾ºµµ…Éø8ì1ß NS,™LÞÁzIp°jPàù1?X….ÆG>Ä!1” y…i\މ¦¢übeº›N§a³£Åžzê©ÛÁæK—.‰K¥R«Õ"!ú!Šjµz‹¦yÕ±:]£Mu]Û2ê[Á±«»â#óíÏ}²úYç …ýCq�ÜŽ�Xß±X Š(`Ï{~8$‘›�OIͽ(gæäÄDdä€JѼì46|Ó¶]ðÁé ÷ÐÐTš ¦(ÉŠqk8þ< ð„;q?¾…FÆŸ˜-@kIhÏGŸÃi!šc%<¼'œ� g¦DAäÅ`5ãI?L[Ðw@³Hb�Á¯ê·¾õ­Gò¸Ô§Ðņa@ÏC•ì9`Ï÷E¢Ñ(ư- ðî,T$7Å !96*„SœÅȵ;596"F2r|”ÕæÏÿ�äÖ¼.­ëº$I Ë Í»C†‘…Aè›Á30u;{ölßy›ø‘ÕëõjµJœ•P²k›ÔÌoóé=µ•ãžcº Ñž:ã9–Ý©›­¢çjVyýÎyR©T¹\¦zá…ɹšD"ñ¨–ºÛÌwIIü�4tT»Ý€ùnô<8F­V à9€ç{#ñxœDBî¯Òc�$kê@)“º·1½Óáé§x5å:V(=í˜ "+(¶ÞRÓ‰©gäØ0E³…÷þ#½ú}†—P,Èn&“I&“×DåÅGš¦,hߥÀHþD+ŸŸ¾ùEö˃κc!ntŸàþ É¹¡1˜ÈqûëÓuô×0Añž`3¦îÍb}ć÷«Ã{ÄPJP“À9AQ�Êjj*”�夈VZVR“Í�óŽ�rvX«n•ßýßCŒÝ¥x¥ø‰›� DõÀÝ+• j{Í ¨äÚÚêv³TШ<¾H¸,Ã‹ÖÆ›fd‚Þk4òV»âX:/…cc‡%®ff´òJkç‚­7åÄþTÒ3®©;F=î§WW"ý6‰ÅbÄs �`\jWò`êjdfš Íûâ�ú££­ýé+îO™7Ø|Oä·~ë·¾ó�ïðÈ�K&“À?5âWEœK ¨‰�F•ûÈ�ëñx”TÓ´f£¡i-A‰L¿(F‡]«Ã‰ª¿t¬Ä"#Ä®cAÕÖ>T³3¢š0›E^�ù¥Q´ÓXõMêêa*€®¢Üôh2I‰‘Ïçs¹Ü5«`+€:_¦{7óÞåÂM‰«-ÿ¨,EC‰1)6ĉ!šå½ÁÉa1”éøÄ³UlnŸÓë;ÃEFâgÔì¼^^ÖÖ�£°H$Jš¥oÄ JOðäø/Áì~jÂÝGkðþ¡ NöJ­}÷‚É5???˜™ZP7Lù �î^0Ó?6ðȵòGÂ}€e³Y²²ÝôAB3’|·»ý­¨+ Ñ´ªÈn—vCã|r–W¢–VsM-6v82´˜×Ü<-¨ @ >Ò K–Zqìß�µv.¹žÝøðÿ ql÷*Ê’è`·(Ž/|á _þò—¯¹ŽJ~ýë_(Þ,‹6Eß§÷c¬¨oÙåKÝĨch ð–ŒfQ§º”‡+x °|1œîz]Ðk½±�+¼““ÓÃsúVHÆsíƒý5Lâ·`ô�Fëg·ÅØ�FƒD¨ òÑPy<“=ÜÁ`Ø,j�#ؽZ Ïù¤†Np°jP:oV…B¡p8Lέ& °á>0ï&¬†a¨ÞUÊsíŽÍT¬°Û+§ç>]ÇT’ãJb¨ÆJ*'È(ìSŠfi†gX–á„ÖÎÅÆÆ©øÄSÑñ'ÌÒoý'¸x •¿u»ýÑýQ2™dÿµíVVV–––ð,7û"žø½Ëå�îºvúé?DÅÌV¹SÝhå/2 ש¬9F˱tVP¤HަèèèÁôügÄPÊ1š®mâ �lè®í1ŒÓáXŠþW-ãŸCÃâ‡úMÿ¨+êÙjµÈòêó°8‹]“u;�»œûäñ Uì¡8èõ°È`sÏ<ÿ+$£Ä!+�NßbÞHÈB®�ÜžÓ±º-nÄËõXY %q=<´'wàWäÄÍrr|D¯nêõ-@/Pœáx‹W«òj4:²Ÿ—£¬ «é™ÒÏÿ†Õ6h†ë›íàñ×çªê 4Úøøø×¾öµîÛa2¼ýöÛ×§‚ÞMY�}#ˆikiòe žëh¥%×ÒA÷9A•¢9)’e•êzZyUM�ãf\ -ˆ‘´£7íN�¢9iè ƒ�Yz‡q5Žep‰?ŠŸ ¾Ü×ב}ú~²÷ÁÅL6>‚5í{8÷?‘7ï§#ŠX«‡Wî,6\°¸È%ØŒaÞ|‹�î„ö™¦!‰B»cuØ4ŸÊú…ùpf:1õ 'G<ÏîÚh5Éáܼc¶««ïwÊëÃO~)2º_ %Y^j•Ô$¯Äò§¿oÏ*ßÝ…¾d™ýf�XXX¸Ùò5>"û¾7oÔó_¥‚ÆsÑ^éô÷Ç”hdhAØó² &ôÚV§¼†W!”¢º.¯Dü-c£ei53˜²œµ´ Jlm�e‰Q' 3ÁwÖì+!»©…�êE"‘z½NbŽÞ˜Éf³år9Àæ{(ÄD¨*“ —ï-ûºƒÍ €=ìùŠ’ûð@6Joq³(ð­¶VÖCžd£”ëø^rD '¥pÖ±:ø6'(-×êðJÔh¬f12´DY %™YÿÈ}—Âuຒïä/X‹ßç®®l“ÅgTãf«ÓÛþàþ€qÃOUU={öìõéªv/7éºNØíEISŽÇdŸý9’ÑÊ+r|Ô7{•h(3 – Þ¼s꟭vÅs,ÇÒ<׿¤¬<Õ¥³ ŸUR㞥[í2Í ®”iÁpiUU…[(:r’ì�Eoâé=˜‚ºg¨îíÄÇ@¨]|ØÄ6ßs ìÎt{Àžñ%‘H æA_€öÝŒ:û�<<·¦yzäŒ 5>ɪñäüKJb¬U¸Ìr"ÃòZq¹]Zᥰc´€Ñb(›ü°ÛuÄpº¼ønræYš¡Q'ø9›ÝæÇüB%�íØ›�Œ"õŒÇãSSS·x¨ýû÷;vìIveYÞ½ýLÓ,­=S³,…ä¾ ¾léíÂ"ø1(uvßç¤Øp+õBq†}ĪçA©q'ž+{àóf«ÔØ9Ê&MvÇ](XÖ¾OSž8a H}‚‘÷C0—ÿâ/þâõ×_¿³¯{Ï�øˆý �&®Xâ3åO×®[Õ¼;Ã&ÔÄHsë¬QÏ JÜÒ*`�zuÝhìTß6›yßBŽ�1g>kiÕ�cßÑëÛ=&©ÚZt1<´·U\,œý±Ói„sóÉÙ{‰égÛÅ•ÎêÛ …¬Ca�Á“¨¨ ,úÝûsä}³Ùœ™™¹�GÅWˆ_ô5¡EQÈ)2¢»£‡­Q+ éÒÒÒí`ØÚÚÕó#I%Q¯©«É(‰7±NHÚ+rHºÛõêKoùPí9Í­3`ϰ9²>ï9–Qß¡{^¾ü6Ír(, »xîǵU?]44¯Æ©.¥¤&•ô¤m´ð¼hA‰ÅFy®íš'HNhºD�Uê-Û2ÉÃö›=‘H ‡­¾óÎ;�â¾ëón÷=Tc ,ÂGi�äçBo‹|�8 ù·ñÓ™Lf÷-PÌ4Œj7Éfž°ÛßJŽp¢JMùÎ>ÈÑàPvFIú!´zÜÒë[]×á䈟LB á ™^^\œm­&†’ñÉ£ ÝR$ÓumϵÔÌhéýo›ït{C5I&“}ºFr3“뺮·Z-ð{Ü …òùü‘#Gf·~´¿ÿû¿/ `¥˜' ªha<&‰nM¶Ûû?„Ÿ€)€7ºa2ŽÆfh•5€k|ü°VZÆ"x"¼¯¯}€WšÂV«d4v"# ¾ã›ëØ�†^]§h°k,˜NeÝÖ›b8ÅÀNQc¼F;Øz]Lδ¾Û)I³{+õ„é0 )&³Ùì@ûy”æûà„åzóÍ7 ì>Qç»Ü¼Øs ¾ìÖÀ,ðKvŒ �ú¼–e#¹y)> 6ÉJª Dkk'Ú¥%AM¸–n4 `ÏÀ%˜¨&­V¥¶|¼SÝÄÍb(ekUV µò´Âbdh/ʹTS“õ�S¶þ*☎¶øc5ì/öBG€Åî^J%Ëì�F£R©� ipkâq �Z¹õCá[çÎ�#g¸ARñõp8 �&ÞÚ»�0‘ÓM{ ´(ɬUi.¿•ž%”™æ‚õ²‚VͲB§¶Y]y?2¼WMOûÛð®%ô’X Jœå$Üiuê~Œn£íY:ekÅËxpNŽú8É‚‹³œØXÿˆaE=´§Ú´ÀÓû5¨Œ÷0bRuŸ÷€8ç¿úê«Aw &uØsÀž}¡$ÎÛ½CÀ”aºU:ÇÇ'¡D¬v9ÚsÀ6ê[¬ Ú�:0ÆßpT^ŠøJ€Ðõ-M­¸ÔõCyø‘2=Çlæ/rR8äX`èf|â°kuäøXïØ•^_?!FRÅSß·—ÿ…ãü=o’dú< !Á˜£Ñ(ÁÑ+—eA ?÷¹ÏÝ"êÈøÃkÂ’à=šq÷aª>BŽŽ’Æ_‡ƒì¢s´ò2¬�Vá2˼îT×CéÙN}S¯íàO£Y@A¾/Cã)’‹ŽÀŸJ|„åeÇÔÄpíäÙ‹—Bþƒáo9s~�µŒîrž­KŒÎMªQ¯×ÁsÝ1øÀ^Å= FØÆÆF@�ïS/ßý à9€gÿ×Z¾�t·«›v;´ÐåU€—ššÃI×Ö�ÊV«ìŸr¥ÀàÍ‚sô†É9f›å¥øäÏ6}ÇgŽ—cC`–þ2oeEãðH½¾©&'ñy(3Ãp¢Ý©n¼÷�Œ ´.ýP´Jà–à¦Ä1êúêõÂVÇ®¯3˜îäääøøø  Jçïþîï€s×zîŸ3¾þ´É`�/2,o5všºkµ+Íü…ÖÎy�cÔ\Ž�T—�™í’QÛ2jÛÝ®ÛÊ_ì…â¤9Qåål%5ÉŠ!´`Ûé4Ðh55�›Ífѧ×í î gçäèP§²†몣–V•híö\«Õ�Z‘óuÁܼÔsí�ç¿éW&X ¹BvÓî¶w‚v „äÌwL·=LñaP½øÄ%5ä&iåU°@àˆ¯ã‰sbØêÔ gF(F2 '„‡^bY+¯�+«Éq±·ÁŒ�ôúp»¶ö�¿Ë ¥ó¯­¼õŸÒû>ë/}k›ŒžªKN]_¯)ȕƖ¿öÚk7{¨‹/Þ0¡$93}Ãm?BkˆWšÀQ¬U¥PíÕzeƒWbþ¾Ñ6Û¼­žo´©¹Ñ2žmÕV>hç/ëÕ�æÖß³½¸äo(qPjÛh)Éq)šklœ’ãÃ0h<Ç í‰�`£µé¡çënˆîz$pÛ ŒŠÀaûþ!b£Ñ„šÛ÷O£Þ“xp{س¿ä+‰"C³-e^ŒO´‹—3{):²°êÚÀ#i«Yòº.¨0 ØLu=0?ÁO{ Ð*ã½ê»A¹?àå&È¢ÍâëRtÈ6š¸GP“­ü¥ÊâÛ(?2¼¯vñ§\ã\ž¯„ž¾~LC}rCû´\.?÷ÜsøâõŸ~÷»ß]YY¹ÙöO«Õºad4t�a~ F«â©äÔS4Çoô=€+ËËų?êø9%§=«ƒ{¤HÖµub†a99Ù¥§x%ê-†—]Kc…î%“îTV5Ñ ¯ÆÁRA“ö6ì�í³~pr>Þ©nr]³V¯?pjÕ?iö`á5]üÀù"*0 ¦OïœB÷ÑèåÝr³,vŸš@�LNNV«Õžx¾ƒÉ�m�çÂCZñRfßç¢ÃûÀâ:•uÏ1]Ë�#½$Éêâ»`~jfXÕuÌðÐ^«]¥gD5iwꬨ˜Íˆ#ÀØÃI¡Ææi@àå8�†Ù.�=GG ¨âÅ7í�·Þ£è+S‹ì._OëÑ2@‹Ö¼Óé¹8pÍõf³ù·û·Ô�b“lÖ$>×õâÓ«!JhÊÖZº U¨mõ}°áÚÊqþs‚gë°?ðŒ@b€4Øp(;«$&`—à¢QßN3¬ E³zeÝîÔ€Ö~³„3`Ò4äцø=Üb4 ­üE^�{r¦ž_²; ëACãà�øÛ¡)äŒÙAçò=!k!’$õýÿ©^:&b–ᕽ*$î:Ñéýp1÷¯ÂÒ°˜8²À~û½»—Iøa¼â:ôÃî0>äŒ(IG‹ú}ê›ÝW;ú¾F;Gá•J%`Ï<ߪ”VÆžPGÒþ"3Ùωþ>t«p  ¢¦§qH³¯±ÌÏ÷urm×6åXθ‘¿di5N‰„sójjÊg�,ïZ:0˜T½±í“`CÓ*k>Œy^§¶U<ý}3N¥[‚ ŠŒÇ…BרòžE!�;®ŸQ˜o˜/¾ø">uvÉÛ=¹™×9÷Læêõ�XÀ2L»^jä«ë§NEnïœëºNïT˜s$1óŒÛh}iŠñ3išhqsó +Èr| �WVË—ß‚Qâ˜^�¡m�F¼YŽ���viÅ?=qØí-•{œê¹ŽÞ(<ÀÑ;i�“ZöUmωÏWÓ™L9¼K–c xhíÝxOÜ lÛ&›ë�îUÁ 333˜†xOžŒº{¨Ê*<ê ¯l÷ñ˜²ÿùŸÿùOúÓkzýHzy÷wу¤‹IÀ¥~“ïâõ¯þê¯Hw÷•À=ìerjîž´mω ¬ÀskçÃ+¾ƒº©�·v.úé&Õ„c¶ÅH†Wb€g¿•lD™4¸œWÓ“íâ"å¹rjZ•VyíA�F‚m‹Ê PÖ˜,ä|j{gW«U¢ÖûA.Óé´âí*ɾËúÔvï`®l‚‹É;66V«ÕH/£ î84æ5òÍo~S×u2ÈûñXTU%}÷½Œ¡r¯6†x~Üáyò…ß#9[«Å&*¬V Ô°S] ÅÆû‰ -½SZ‘£½ ÝåÄPéÒÏ”ä°Ê÷XVbb8MÖxi†ÆÍZiE+/ƒ:3¬$ó“S¯$ª1?–ˆDB$ž%×#(DMboèJMÂbßl= ³+‘H|ýë_Ÿœœœ¸*ããã¸~üøñ›e“$‹Û¸ç†Žâ˜ºý)Чeh*�ÆÃJ\åššMK‰sxpÏÖÕ¨Vvÿç©®‡ÖcCh:^MðrÔlýXiͼÜ?#b�ËChOϵêk†ss@eüа%’!ñÔ´òJ�g8ºSÙ|P£qÐ7QÙ$ú÷õlé¾ *ª1J}Çþ;ÝÚ$«AƒÐžx�Á ê~�ù…ùŽ9ˆ¯×ëŸÚONÐú/ÿò/Éfö�áô=\ àù±†ç±#¿²•¿"5ÿ²^týÔL¡xsûœ^Û¾ZZÕläÍv%2¼Ï?%åX¶^§)†ÕPj<[Šæ:•5`Œg€ãôÜ‹x&«S•”b9®wîf˜Vˆw$IÖ4 Ú�°[<;&F8¾áf0 óù‹„�ÿz �Ç¿øâ‹×Ï�7Þxãf³‹ BÉׯ~“uoÝóê�¶,+ø«T×›®BÜízb([DŠ »V� ź¼ct¿SoÄ*©‰úúGÀr^Ž Ðn¸G%a蛓³Ï34äöc’ëu3Íò,/ñR¨|éMNŠÐŒ@µÊ¦ùi€N¥RƒvÜ™¬c“…è[ ²LzëTi7’³uštÐ`GÌvcܺß8dcû�4nVå^™>™»ž_~ùå………k¾ˆÆ|íµ×Hå[°¢ëáU‚v@GbMV×%QhnÉMS´Ü4=ÿA‰›Í‚VZe ítêÀl?«fu=6vÈßöÒœ®o|ÄŠ2Õ¥y%ЦÓÊ«®íg’FÁC‡~UIŒ¡Ø7`†þŠw} æ‘ÿ^Џ–…�$»~éS¦[„F ÎÔ€Ö†¶¹¹9P–l`“¨v·©Á*Eɼ2P¤ÙqœAóx 8ý•¯|eyyù6› rŸ"8÷ü˜Jll_dìˆEŽMöCVu}¥ìS®mʉ±pn>:rdšåPnÎó\­¼Ö‹L™éz¯ÄñÝææ`ˆ#°D�dÀ�Ù*ŠezuË'Ü®í¯‰w=ʱ .µQh¤û ËÐqýä•×ñйõÄÞ·oßõס4gff®Q…»loèF]�î¹kqÛ¯ÀN¾¸ÕbÛby1”›7š½‘ïÒ ÍrB$�G†AÃp"ÚÄjWõÚ6.ƒ=7wΣA|W?&¨ŒV… #ª ϶B™ßùŽfbG¤h¶²ôóvþ¢0+·=¢¦§‡ÿž-”�‹Íüòãø``k¶G¼ÌˆÓ-pš,Ì B�_}õÕÁÙ¼ ûñƒœ±ô;ßùYl¹ÿX>}oÂöü8²çäÄ�ðÐ)> ® lõòU˜õ¼m4åX.6~ØêÔ–c8Þh�0‚õ£d J»¸(ªIÊß ä@þ<ÇLμ …3®c†3sàˆ€m91 ÔºÚm½n5KB(ÞÛO´âr«­«"îæJfæ Ï.Ãz%~@»µI�LS_ûÚ×níÍfóĉ7Cwâ¡}CöŒ^ÀG}g4üJ±éÙ”@¹~ð/pb`4^Õ`À ¹b(í3sàµJ²¾³úŽŸ3£‡ïh@ß0±ôæö¹ðÐÜ�6o†Ô;º¶Ö©m…2s‚]F™®é{9©é)@~»pÙ?E�kî\ü4‡â€èî›E�@ùæ7¿I¶-Izò6ààÄçÊçóÒ°dMûa9aO©Þ&Å a] �t�°€=?Ž}’WbT×KÍ¿ÈI¡Èððͭ3�ÞÙ§èØá®kû ='2²ÿö€ÿßc!”jÁ¡õúЈWãíÂ%Gš—Ã0ÐDϵÌfÑî43ÏŒ=óµøÔQÀàÞK³B¹ Âá2=O ïÈÈÉ|| ãâ-ô>Êår7óÿš˜˜¸u#†£øšiF~ßí-ŒûöAÙ�ºRBMŒ$ç^¤9‘—#¬¨x¶‘˜z ÓQŽ� Ñ<×éTV•ä8´J(ÉqÝQ.ƒ^sR¤S^5Z%AMù©½(šå%1’Aã46N¡‘¥H&5ÿR|êiÐncÛóhN@�‘ÜÞÄôs®¥«Ù=Ù=/:cttt@ÖtÏž=7{L(÷X,Ö›k‚ 5 ŽOIâçÝË�àñøâðð�®ùºcx||âp|âI<)'*�ÍSÍ­sþa3S³Zån×EëÕ–ß“bÃ,/£à«^ÛòË�FŽÆi—aŽôv—£°`”Ä(E3ŽÞÔÊ+jf8M¯ùœ”œ}ÞlWŒFø œÖy)–c†Žš™KŒìýÆF¹\�Q*ÂâââC:ÅVWWÉÎ4qj#8}o÷# h™C‡=¼õ'§³È‘rJóž‡: àùñ’Øè%5Ù©¬û‘¢³s®ek@àbcó´kuü¿WPÍUãžk×7N�úˆÝ ],ëÔ6 ´‹¡Tmõ JcëL+ÁsLºw„ˆ µ£×�úŽγp¹téM½¾ÃpRzï«êÔgjtV '�hÕýì.Ä­ºÙl‚m€XÃD”î>ÊÒZhð'žxâfOªªêÜÜÜ É7ðÞ4MžL&¡#ð[djõ|¹yUU¨®Ç±\±Ú¶¹h|ü P[[o2 /…3JbÌ_Äæeÿؘ¿ØÕml�öc�z6ˉV»ÛEŽ�Œ]³ÓÜ:ÏðÙ1ZøŠV^í”WðÀ0Y8IE±¡Ì LÒ°b4SY9øo—–ОxÔä̳°�(–â£�•â�|‹wÏSIØ»[»P|Ê28σìUp›Òjµ OÒPG÷|% Ø{ùtöžyEI;äXº &FŽ~Ù�üeu<×b8„/½ç×1¹ùÆöVPý5mÏ5¶ÎJ¡+È�êþÔ«ë Ê<³àÁ�] PyD0:zPŽy¶©df@»ytyL gäø°­7¢#û•øl³œÀ‡rÍ«Të”­…jÃö®xh‡t:Ãóøß3«ÝnJw#4ÙUå+_ùÊÍ·![[[§OŸ¾F3¢ðr\$;Ö$�¦¦µyŽÑÚ-5®·Í�š~aµDGÆaÍ Ax5.ņÄPfJjþ%)’ÖVÁzñ0ÜKÆEà �i‚æÂ³÷¤ÕŒÆ¸1¡ÝF³û†—"Ç¿“Åî481äôReh¥e£±íŸC£üÉŠJdxŸ¿Þ *àÙ‰©gzaOF]»mÔó÷{‚Ûö£”Fé›ßüf�ûë†# Æñ#“±´¿-ÀsÏw(©éç"#‡–¸¶.„žm¡A�3ÏiÌfQŠ KÑ¡ÖÎy??±etª›¡Ì48#nNͽà˜m�H? –ëHѬÌ6X^âä KIŒö)î¨é)Üß.\Ô¸ärë,h¥’š�¢9Àôn(= 8—£9ÀžÍFò¥F©ÖêX^]³5ÝŒD"~è= ÷®Ç°ø�1 #ÑPÜ=šË0@gffæ _øÂ­Ìžãõ×QôOv14C¾è8Íf#¤ª½˜€®¡ë^—ª5õ|‹î¹²/é¢Ö G'ŽF†÷ø‡¼; 1ìïšÍBlâ0ð– �̉jcû¬ñ<˜ªÄG;µ-U?œF�‚FûUåÐÿ=E'gŸ:ôkÝn/ae§V:ÿZ/§H’“Ãhd55¥×wbã‡9)„C)`3¾Îí¡YV+.£‘%IÕª÷ñˆÑ dk !”�„(‰DbÎ/±,{÷ùyá‚&xL$³÷U%5Õ¥¼Ä4�8ÌR}ã$/GõÊzzßçÀ§�ˆ€RÏO)&g_XïŒÚöø³ÿhTÖ ;ÀÔá'~=:r`ùg£•V€ŸÐ¥@¯Øø“Zy…—c­âb¼™—ýM4­¦§[…˸‡ãe9>ÒKM�C×Ö?ô×É»ÌPL|ÊÎÒœ¨5ò]ÎöB‰UÛ M«k¶<«ÁØe‰§}VjnšršbªR*d3Ù3gÎøÉ–Y–ê…ÔõÛ½+«Ù¶ãJ•õÍm?�غkSŒO±Ñê.C•,Ý0\¯ÛexFŒÚ–ÈðoR]¤V‘¢é®k™­M³®Ý)_~‹ååäôsøÓ ·çg¾/˜šð€×¶}Töㄵð§‹«nªéhK«à3ÏF‡ý$`½dCb$ æ•(lÐhT�‚1dµÊšˆ¦…PÊs­ÈЂÑÈ›ËÇÔ¡…xùB­V»Oƒd@üÂäÒ#)²k@âÌÝÀs Tfæp/$§—˜zÆÏ]hw”H€ºyìÛQð6×Ò†'NôB_5äèp83Û©o³¼è‡¢äDà1( ­7%¡ó;F}›Wâv§f÷‚ré�µ€íPnÎÑf»$klù©cOê��+܈a@¬‹ç^#i)œ"i”é;Xyž¨FÛ…Ëz/ë¢mu`-ÐbÊÓ`ƒµò+>Me0ZÊs<—_ÿá©ÿü³ÿ êe%FQ=löùªâŸÞnÇf¥(ï„)ÿ¼—Ìr*´‚É\ʇ'¦ÁS{[È<BÜ*:�&3:ºŸC”ÿó>\:–Þ*\êº6 Ö?Ãí9LÏ[¯®·vÎ?õåÞ³GþÓ‹Ùʫ׶XA‚MàŸX §åøpjî3`Æ~M8Á÷&[ý »ïshíêÊñèø¨F§²=èï)t©øÔÑòåwŒFÁÏ$íÚ¸->y_a¥Hxö—kÇ¿sŸÆÉ ,)?2YSƒ.à9�_,g)¹CžëDÇ�¼¶ò�ÄÐÄày‘‘`ºÕ•c‘¡½´Œ�¶ —ÒóŸi/'¦Ÿinž vôf;©|éM£YÞÐ,aš†n²bR+-ƒä�ÂÒUºü¯&h¶Á° Ó_ªC  /ú¬i¦ë{™�œûü×ñ­ÈðÍrþõ^˜vq¹Ä;l¶K‘áý½ë] ¤�Ÿ.-á €÷«©IÊ/‰µ�V§¶…: JÌhCÙü–Ï›;uT2xŒ ™�$!¦Õiþy§gÔ䤩Ul½ÞãôT+.ÁF gç]ºs& €–ˆ¯ÝØ:ø«¶á¯3'Ç÷B¬ í,˜8Ze½±qÊGßè0î×Ê+À^^ŠàA`î Š¢±eó´Í)©É™Aá齯àYëë§BÙYVôÏÈÆÆŸlc#œá¤**î¯a°|éükxdX$ÞgxhOùÒ[(-1q¨ºv*Ø�Ü� Ⱦþ=ÌñK°÷<r_÷žåÜ~1’cxiüÙ¯avZÍ"À8g6 ‰égY^�"ÙÆæ8°XC§²=ÔÑ«› ŒJrRIM˜+—ß-$¦žîÔwœÊ…Ù‘¸"²-W¶ô&A_0i–Q& DP¢fäo%\ýÀ½,p~*ˆÌ¬΀බϋ‘¬úÃ1ýCÀ~ʬ=`Ÿ®m�¼rK+¯‚Kñq1>·sz³Fêv™zaÙÐ|$'DG^¥y¥UXtl³Y\±ŒŽâÃ?Ÿ…ñKhUµê6^Åø(Ê:ŽKóª©55ÿˆ¶×Ú¾$EÇ”ä”Æ�ÿ%µ‹—a(€þãGQUNTõêÍ&ET¸±u&œ�ùÑ÷×±ë[¶VÓŠ‹ÀW×Ô,½l–ÝÊÜXvPÓ¤3{_á•h}õ}Ø´¿™ÎÈÑL ?®‹mÂþØ<þ­¢²fëu†‡PÌüŒ1”ôó_9ì X ¨�µsážÇ•H§Óƒàª3P)Ix~àÍK²›ð°çÇ]x^QÓSÐéÉ™ç@ Aîüåk†Ñ+ëɹ—€¦€"/Gš[gÍv›^ø¬Nu=Á9)lÔw<áá}`¨`~µ¥w¦Ó*ˆbXecf§ds`¥r|DˆdºŽÝ*\ŠOuMÝ_î�ë¥kÛ½ÌÇ#Õ•÷‰S˜ç9b4k›m`'+F›[$ðf�àv“¢»àâ–V*œù�@[’M%Ó2_“˜ªªp‘£¹sÇ2‘ÌL= Éa–érL—gi–IœùhÉl/>û¥Wü­Ü®Û#ë4C3««ÑÅó'÷z254e9®ÿŸGy~ø�±ão¿VrWSÏ?¯·u£sÁ²)ÛêÒ”ÈÒÎÖ‰ÿ*ŇãGÀ\)ÿ8#ÊÍ··/ˆSO5·Ïƒé°p¬Ž¿Áœ™ö»pöG~¸ÓpÁ€CáÈd&$N'"íB#öµ™WþûØØµÕ6Þû‡ñçÿ[£Ub|а0B’³/ �Ãà `ó”o¯0’²~¥º|Ì?õËm1û" VPÔ©#ÆÊ‰{;TT>Ók$ÐÚ÷Uú™­ øIߟힹs �.ðj2ÉÆÆ·‹KàÄË7¶/Er³½][Zo´ê:Ë+áÑ':gÔ©íPŒ.ÀJKo1¼R8ÿ:€ÇóÜòâÏ+‹ïÅeJ`»ºn¶Â¼]¬6\Võã“tj â®á{w;zSIO2 ]Úr $�Ðêuß÷¸ëZ Ó-/¿�ˆ;ûö?JtÕ˜¥DQb%Eh¬fÒÛ�—?ó™l6+‰~\OI–0­?øàƒÄoüÛj­vôèо2zÁ¶?üè£_{ù{U¢GFÇú�öÌ©'÷äFÿèk/\xâð“¿PR®uâĉßzî÷Ï–Ë�} ª,Û® ´µ:×¶O_8ùfÁ”&i¦©——»°x•áeÀzùò;`Ì൞cáa{!Ã|8aX<E€[�F8 ˜Wu]g:bÖª+ïÿçÔÜ‹+ ùmXÙ™§Ðz4C鵚zâůξe4 ä°x}ã$'¨­�Kœ†5À+qÇ?Æ&3¼ ßþè{rb"Iw+ËÞáB΀Aðªû(rpN’¤¡?~U5h‚�蚎D"�FãÞ›š~JLLDFÄ'Ÿ¦=³¹ô–U]¦õ’( `Æž¿óê3(F 8Éu,Šá»]�‘áÜ\×ÒìVѳ »SõO ƒ$vª M›ûz6ZíF7vNùÁ¢§}ðó\1’‡vŒ¶ï›M3Õå÷‰{ú×YNfÉÿÇñ–®�DÏ�N„ö=ÿ"s5Bþ—ßÚÜ[«Ù³÷ØñãÏ?ÿ<ù-˲Ž?>111::šÏç777Ÿzê)ª@øüùó‡ŽÇã°*Þ~ûí§Ÿ~“¿^¯Ÿsú°VïtJ¥Òá#Gû•©UJùB1�ollzâ� JWHƒc;vüù^XZ\,•ËO>ùd?žÉkÇŽíÌÍÅâqÔöÜÏßwùDvnŽ¡©ËÇO.®eÔÔP×nJYZ»±qŽ•ÒòJ/¹+§ÆÁ˜µÊª^Ù©ÆÚ‡f§Ö\~gr(v£,½Ç&Mí¯ïùËï¦ixž_ÅoSæj¾#B«»Ý+Ô‹ÝÖuY´Óe�Ólx¤¼y‘ ·K«ÕÕ{wirr þÀ¡18rs_–ë œ{~ˆò�<ÈV šà“L&ƒìñÃÍ;;!Ub5è{�c»(vÙg]·ôÌí½ò"/Q¬nÙŠ"‘ûÓ>rw¯+ wV*›åꆚžÄŸÍ?®g(3=蟥¦™vñrvnŸ D««'3{ž0ù‹º…3Ÿý|N¤ìèè…ÍÍF¥M&ýTQgÏ~áÅ©^Œ0ßF½¾²´´¹±67;Ç3ôöÖ–åu-·Ûîòÿë¿û÷ɑɹùù¥Ÿ¼Óíí4{¾G7÷öOþY�'Ž>y¤òÁ9QàeQÀ?E[†ý×ý׳3³O=‚潤–/îßÿíóç½Ã‡O½õs!9‘smÊ£©É{×—Þ÷ÜpÓî´+‹ÇÓóÏ0¬PßZWÒíNM¯m9F»±~Ҹ͉½Ð'\,$òçݘƒÒ=u¿%鹊„vøîw»úƒæhÎgö~ðO»D• Y™1õ‹gæöï7zì···ïÞF„PçÇA‚ƒUõ´çÚ¶ÞäÙ¶4ž÷BéQ_ûÓ\§^Vb©vµ¼g¦=6sÀîáÏä¡CË~¨<óŒsúôï<ý´Ÿ²¢V+”ËmË*ë�ÿøüÇ©gE¬¯y|˜’Â+À|È/­4¢‡Êñ=;ì¨ëŸ¿¢z9.©ÂÅÙéWôhäýèœg{”éQ†*li­Æj1$IÑÙ™ï^¾ìt:!ž÷£pñ|T–;‹—ßúùûcϼÊf «Ë²xvЕęýÉ —¶åh¦¼øAræ('ª0,©ŒÖ,H‘Œ &,­Z8÷#^‰ûv�1k2O;®ÛAJ0�@ŽwU@É ‚ X–ÕOœð±:«‡Ú,Õ;ÃÖõ¬T"ŽÜH…¤Ói€4J€‰³³³s£¨T* 4b$?1·P0T‚Fà9�OCâñx.—]†šî«x?€VOϪ¡P£ÑèEÁdnÈ�ú�@PÙí ŠÞ“L,¤(\4MÛíE´üÈØ~6R eÇÍ�Bdì€Ý©«ÉI ™QßûᮇãP£èèžÚÚiA�E™ Oýò³dÓ°ý“ļ$ýà¯þê³{ö¼qù²AÓMÛæ"‘ØPîÜ鯨—~O§"‘¹y? X—b9ªpù² ¦ö|iíÃwuoo9ØÇùí³ïeF†R“s«Ç& £ðδj�2¶^ù7¿ZXZ¢#‘‘ÉI´ŽÓíÚŽƒÖ¹´¸È²ÜgSñqÁl®Ÿk8TÕ°*®Ë'R±L¸ûÁéíÍPzæ°Š h­èè|ó÷©p\+­d|~ç£ÿOŒdXQ•zrr¢^ot:rÀ”Ø70tˆå„7Ä~"¶>išF�u7Nß­»þª¸‰nBiÄr{¢ª*>ŠD"€j€ôÊÊÊ'eσ/ äþ Ø€8oCÉ`”=Àó£)ÃÃÃPÄÀQÆ×Ï:r¾�À3Ép×çsÝ«²›ä¡(EQD?H5Ýÿ”ñ±ƒ¾î& † 5J²Ûò¾pÅ‚‡ Ë‹Ñ ÃÍísb´&©R(3DX¯„!¼}⟾ð›Ó­Í«Rñ�ËŽ$IMó™þ“OòCCÃÄ{Css}½á…fž>tþgïèµ!Q kK+ËZ£9¼p”b(%–læ7cÃc° ¶O‹ç²ññé®G©ÉáV©f×7×síÈçžd964VÞÚŽ%¨ëçÕâó§O/˜æË¿ó;|øáÁ…½BoCÚ³ý”YµV»ij•ÎÉÓVˆuíb›WÓœ(H‘ˆRœž“6Í ‘ä\ùÂÏZ[g…Ø0O{ÑH$OT*•jµŠöDÓ‘ÅŒ~¾¹~à ¦â64i§'»÷û »×Iwà"zä†K…ø9|Š~\__¿}ÿØÝIG¸=zôHg4˜2 ˽<4AèÖ�³˜ƒ&ˆnøä®a333 ÎPÄ·æX©T*‘Hô)õõ¯bâ´Ý¨ü±&¯Ðþ½TóÉFK;�g•̼Nü">íÔ6õÚÆÄSŸãÞ³}�·ôúFlåÍÿñø·YVEQ‘e¶‡ˆï;69;û£óçGžÞÏ\AQV§óÖ'’ŸçXV«U×Î-Ž>ñLms³²¹5rðYâªæXfþÂÉ¡ýG·OO���]Ç¿nëzáÒ‡“O½P\< µ^x ¬»Û[`^z÷ÍC/½6 ÚZ9qâ¥Tj¡—4zkk«ÝnïN �–9~ìØÔÄÄkk+ÆÌlm«¼v¹ÜÐÔŽv\¾pñŒk‘á} ËåOÿ µ}žbE¥}nßdFK¹\F‡}›Ú� 1,àz4í'‘í¿öwðæÑææ&Yê¸Yù¸= Cá6·¥aííìì Ȧ`à vŸdp\¦1>a˜úV³ h‚©·?m »§§§“É$8ÙÍ”)Ù?ŠÅbý E¢Ù¹žôø®O³$ l0BR “ÕìOdã+À¹Þb:W6eÊsRsŸá•¨Õ®´ò‹¢{鉗÷§ÓÆÌ¾ÌÔÞÌè¾ÑQ^ÿÊÓãÑ(ê&JÓÛ#~t\wfb‚±íË;;±L<îÄ»ï³Ã ²¢¢BJL6šõÚv©¾³5´pØs\³cT×­m-o|øVj|B‰§,Ípm�^¶Ê…ÆÆùñ)aá…§{qº|ïk�XËpx–± Ãþè£ßØ»—»¢z™%/\¸0::JH$Zã½÷Þƒ ”ÍåxÝX±�‰…ùÉýÓóÑT\“¸úùŸ|WH�zɬK3;–Þ’ÍÍt"V(Á‰É*â'$˜¹\. =!̲;ß;ŠÅŸ Úhüy‰_©'(çv,¿?þã?~ã�7gRȲ8÷ÞsÁ`œVí/éÀó£ÏPÊÝ[p& zÀ%� ñ±Î>„Þœ èÒ»—Loßokí¶áê|ÖO„œ›ïTÖº®Š/}qÏðÂÁìô/‡8Qh”*GºÍ§?qòÔ©±±±þ²í‡'OÎïßOó|&‘ØYY1Âár¡PÐ¥Ôøˆm˜íJ¹¼QÜY\yçÿoZ�-¬ò+ÅÂZ¹¸QϯV×?:¡µY‡�ÜY©7…�®o/.¿ûFu§fws�_Z=½X\Ë7+íVµmvô ?ýá×üÊK/(¡Hÿ)x0äñŠF…=vì˜t6›ÅGÉXì™3îȨoÝB"•pÍúÈtöÜ{çѺ‚g…DE­B×ÑA¼©½EG °ºÐž·ù]ØUÑo†ÐÄ~¡Ì�Ísõú믈óv¿ò0�ªÕj îí²ÄàøÆ“ñøêðü(À3ñú«¸a‚i ø}R„€×4 êæ“Ö_ÅrC7Ø8à95÷¢šç¤ÄبñÊ—_^?¿Jw]ÿ¨RwñôoÝÇ÷ž #ßÝÙÞ6ÚØ^L̼ԥ)6Î)FŒ±rÊóøF~%>õ"ÅÅé𡎓iêÙR9¼µ),�kœýù…¥3ù†“»´Q†˜íš"2¢$ Ã!uyy l^XX@S_é† QÔÙR)œN�Yo^ºìØö�ž_¿”¯×<½²*ņ­fQ�îÔ*#ËÊ`s³ÙL$ »Ÿè»¡PˆdCú4ØÇrè;`ü÷Uw£Â_ùÊWÎ�;¨ˆ{%`”Í?÷!ŠÁFFÏ=<ƒCƒw:ââKˆ/ð˜l$AQ ×w¦g B£4âPv›\Êß15͆N5;v(=Ÿ< iiÅ—¿8>69^ÜX¥…˜ ˆÍbñY¾331Nì ²’Œïž:sffaAàý„Y­fíõ÷.üÃw~ör×dök�8-Ž ¡¡vq)”™ˆ íi휓¢YßeÂsë«ÇÃé96Ôu,[¯ ¡ÍÐf#ßÜ:?,E2�òŠ Æ8Þ_ÊçDÉln­R|òY>”6Â{–;éã[âOÎj?þ`ëËùÅå5×6 ›+++K ûr¹ÜîgŒÇbË.x££�B¡žß™?r”¡iÛj®¯s¢o/[ZU+-ó¢¢t¼ ܦ›U¿‘�Íñx†×à:z ?s‡,œ!#�¬  p²‹�Qqë­¾�¢Väé0NŽ9rgGŹ^²Ùì m÷’£†Á*wÏ1<ƒCƒ %{ŠPè™Lf|||jjjzzœtªR©Üî#4¾NT<€Ÿþ×r}µ‰gË0�¶aøÉ±~J•c!~ûÕß~–RIB~};œÍ¸>úÍ£û¹^ÚJ<qTÆO´-kntt»°ó_~zêÿüAþG—�N†’c]Ç�"i ®VZêR°4Öµ:®ÙÔxmå˜ lŽƒ—Ûœ ´Š—Õäd§´¢W7ÓÏÀ>ðÇLͳt1š±;�úú †Ç>Ì ²Ñȱ%YEeøPÊ‘G·Œè‰Uýûo_üá›'¸®11?{þB©\nkZ«ÙDk[–çù—–›õÆüÑ£àÓÐ%‘„zîݳ”4„zvªëFm‹—£1¶INI]ß»›‘8@ЀÏh4ŠŽ» E¼ÉОÏ>û,ÆÀÐÐH8&^i~šÎv¿EÎÝá"q2xXà™ t±XDã§­î‰`° &b¾@ç|ó›ß ú(€ç‡ ž¡sS©Tß Úê•W^™���™™I&“ÐÈ€jL<áårùv‘Q Ì^EQÈ(ÕKDÎP¡ný51âb†7ä ¨p8Ú*k|z_jæY½¾ÅŠá'ŸSçöϹ%«JqyÐýJ˜šíÿgqq±R-qŠúO?=ÿ~Tý :á…g�Ö¶J„2S~b()ä9& L΂1„ŽCâf¨§þQòO„Í(ÿàÁƒè5²Í‹Å`±Á˜›ì †à� 5é[ìæ¦âF•ÐhÁ&å=Súƒg„ƒõ[ßúqx úˆHpîù!€q"‘èï%C³•1ŽÉ²6d7¯…ê™Æ \YYñƒf]‚ÄoQ=Oèzêj¬+K|ÇÌ�ÏÿŒoªß4ôŽaÅ£^Žksÿ³¿DbFÕT´ðú&ç× …æA)”söôGß}ã¿ï¿i³sR\Q(·ëhf»¬ffhñég*‹ïºF+2r ±yÚj•m£iëÍæÖ†퉣Õå÷z‘ÈhGoi•U×ÔSó/íÔ6¯ÄC=µZ}ý£pnEµmÇÏK-³¼ˆJú,ê[ze<[Ž�ªQ¦^ÛàžKÌþû7NËâ©Ï=wØPU<ÂP&ƒyòÖÉ“Ÿý½ßK5›ÒåË‹ºÎOMŲÙï8æ´V)£„pnO}ë¬Áñ4ÕE³ }„­V‹ø`£GÈYdHÿ”uõô3  Šö¼}çy| ͈b8€òûgß©][QÃùóçû×a ¹766nX&ê6˜ÎÒd­Ëãî×d`0+%4 QÁxäv§Ó5g¨r¹Ùo¾Ù('„–—— ÄÞÎOÔëuL ’÷©¯É £ŸC‚„ù¬T*ÔÕ¸c¦í˜N7”žÂß]FLĪàÝåK—¨V‹m63:À»nôxŠJùÁOî¿ÔùuîH¬®ErCã·½¾#F²¬ »¶ÙÊ_,�Íç¾µM`§Ï5ß÷85û’Ñ,Øz]Ž�º¦¦×·Á‰SÏÍ"8´ölÃl–­v™‘ÔPvÖs�ÖÖ¹nïÔ³këøŠm´Áªs>Ÿœ}QIú”ÚuLÜ€_—"YÚ5¸äÞÿí‡géìs‡÷½%¦“/æy~ÿO,¿÷Þ//,<ë8—67Ï\¾ÌgÃr¾º Ö~(2¼P^zO—4�×õHL˜l6‹ç½aL’ÝQQÉ�d÷v|úPTî6“Ø«7c$hjô)J&+oVìŸüÉŸ ìê"AhXxA²£{¢Rs¯—Dk q�‚À®Áâö Ì–[(|®LÔ+.4øÁƒwÏ®kÌa2÷ð|ê¬ï>F\íö#ëc0ŒV  `r3ãz÷·pxYÜV¹XiÔ�ÐÈ¿f¶+­­³Ÿ�p¿¸°p8‘8œÍݳ§‰Û2™g¦¦2Ùl´' ‰Û…ÊxÛR³ójb´¾v Á+±vþ¢šžnnžÝ8öíâÙÇ&ž í5x ЋÔÔd×u^ÔJ+f£îo÷úËÔžÃò8´­7:µmša¥øˆ Ä91,g8É6Z¶¡y¶ÉËq!äVöÓ*¯}¨UÖç‚cX®S^U³³ø„Á‡Jîç'WöåìÑdb«Px{{êÈ¿ýe¹pñâìÔT.�>466äu?úéÿ»ÖTÕÔ8ËIõ�Óv«˜K(^Ï;�N¯Çã¨$Ü #‰ èî¸1ý¾ë{~Y–…þÂ0¸árôî$EmmmT&‘dnæÂýúë¯ßìD}O¢¯ç f.Ùä^Æ G?ækÝ{~È ^ŒZ(}�­�]„Ä� Ù¸ vh,³zÒ×ï¸Þ­Výtλyóí׸9“É”J¥f£Ñ6È,@Ã’;�ËØ'gŸÔËáA-–kÖüÿÏÞ{É‘�w‚éMU–7ÝÕÞ Ñðv€cIŠV¤(Rä‘!Å�»¸;éîV«XQÒ*.‚¤øÇEè¤Shy¥¸[™Û]jER”¡$RÃápÈñÀÀ£�ö¶¼wYé3ïËú5ÍîFOÏСõ8VW¥yùÞËï÷ý¾÷øÐ…çn»ß,Ö¡¡¡m¨óÑ Àü™Ï|”ÐͤÕÀóþâ/þâêÕ«ë-ácìö ¢¿X(”ë-¾7äë= èæãGôžžøòòòÈÈs}~^•B¡Å©©“–Eµå³¯L]« /×uÛ6Iš„¾ý_¨®^åüqG)I^/µüÏ‚#ó”áB çÐn¦ÏÖæP XO­V•Ü áÆË™G#�´5RÕ\òÊ8„�#œ¦£7à‘4]“l©×ë•[™FK0ÄΛ`=!µšnææ¥ø8pqCi€føŸT˜Oÿûßÿø¯~„X] EB’?@DüàÁ+7o¾3)•J©túüùó^jþÑ?Ì62w<±Q‚ó—«õ}ãc;ÙEÞ0wX(ìw~çwΜ9C¯k›Ã´þþïÿþÒ¥K@ ßT�Âýf˜&t{Óð�žç÷¿øF—±ŽGzW8¼¥ÑÛ-ýÄðwLtø ™»©îJÝEÔdH¢õ4wûÄ¢¿¿6wM©—%IR__ßoýÖo½ï}ïÚ·á½}Óèg8^òI†i‰Áɰ¼UyÇ™‰�¡Ü™ÖZ­5Ó D" @h8 T»Í§Ëÿù¥:H¸%›,.l(l«´=ðÕ\b3}T2&(ëÈŠ¶–Ê4›2IÑA:nÉd þúÔvdãðÏ7þskR»xAÔt£¥¨ÎëÕ¬i÷?Š¡h.›/–ÊUxÛûƒô › 7/Ùé—¬f†õ†ówž¥€}'&¥ž‰ààq�òúä�4;/ÓϽ2õ⋯ݼrÍQÕ2Ï­­­ÍÌÌœj[¼ßyf,ÚeiM‡â)Æ­¸½½Ü0°¸— 8 ØüÎw¾è¨Jp̼½ùôÇcØÛN€æ:‰´Z-ô"ܤAÞWµ1v¤a(p=cØB·½iµõ¾u»“† Ì<8Òݽçû}·ß{Æ*RØ`¥&‰{1°ÎŸóúÈ#�ŒÞµ3oOÊi@º]¹re}±È7%èÀ\ ÅRÑ Gö�sï>_õS<ËrüââboOÏí……Z<.ùýð>9×\Zéïÿ«o\¼Ô˜àÛq_­ÒŠÔ³€yõ•/Ó¼Ïi¦#æ²m;¦e‹nÙ',k"ýãð-…/Ñ�Í¿÷ÒfàHýnëŒZö`¨ëõz£)Û!°4cVƒŒÜPI‹`jÉþÄAF𩵬R^ �ž­æÊÃûC½‡ÛÞxÅ V’ùRCþöß|ù½ïx*u·±C¡ÀÍÛ³i³‡!‰ÊÊUÂ1û"^bg؉ žèàÁƒÿá?ü‡ááá�,Pª€=opÚßz‚hÆñÖ­[ˆd0p¯íSìÄf~â4L+¬P:á1»´Û+7�é/|á 8Ë{ÞdÒ…ç]Ïð.ÁŨ�¶Åb€zËT!ë?|øÃMy‡Ý�¸víàú†¬÷z™)Š\IfÉÄ#žPpè_z"qâÐ8ŠøR±8+Ëá^W2¡œË’ÕÆ—^"Ø@?éX¤ëª�üñµ‹céªc*¡ÖM¿$fsyQÜ\Ä$ÌÄÒ‰ÈBç)è!ü‰�›Ó§Àñëë` aj­N‘Møý¤|>Àï§l�ˆ�0ÕFiá%_â@«¸äï?ì^�”W§F�À­D¿ÏßדËÖë:6ªª¢´ç…#�ú3Wsb ¦V3J½”‹,Ëì›±ï~÷»í×~ Øóg –A2™ìLÓ–„QÎ/¾ø"¨5°À0Ä 4›í³{îêZ°< ó€ÍX`»[Tã^m÷Æ‘ãÞšL õööîÕ²W]xÞð - v|€¡á`@èmàTËp8üÔSO½%59‹=üðÃsssétzCb“-¯ãØÖ�ùµÀÁ÷P¬À¶Rÿþ/Îí-ÌøÆ7ÌvêïV³©6J£Q(dþëß\¬ûOѤíâ#Ãkõ|iá@ÄV%Pf"“+?A;÷E5¹“úªó `Ú¾: Xbsdž`ŒY©‘sw®Œßl{<^k+­–´ï�$E¦.ÿ­ƒ}Í0œØ¨š"��¹™>WoNI‹9wêûû€˜BŽÿþå…t® ø"åµ[!‘ Hžíw нýô§?ý‰O|âmxë\¾|¹³ý¼%„o~饗ÐÕ™¸›ÆÏöE qe·›Ñ»U4L…Û•3ë› »]wA2�%aîÏ\+]x~ àY’¤õÛE(y�«þA.ûzƒÅ ¿>ñÄ;4–®o^¯÷Â… @°fggávÖ5b]¥gÄ6x7 FâäϦ=!¬¾ïɇ–––§§§õú3/CCŠaÔ�ª,·ei)ùÂËE)Tn•Ö€hæï|W)'ÀÃÌ«ýa¶VoT*•õöjTèH“Í]ù‹5¦Øu -Þ=¹™Mb6�Í7A|‚!Ö(5,Á›Ôê9!ØK1œ\X´ …õDK©Ô葾Âòr½¢&&�P,“Kgßqp`tl¼Z­®®®ä’‹·–«‘¡£µìœÓÊ÷ÅCÎ:fwb¥ Û˜ˆ ´®_ÿõ_ì±ÇÞÆš …B7oÞDÚ¬9¡M±¹³— @õY^^~dwgØ1£åë–Àê(a{&Ó5¾Yãp_UÌü![×s{w´B¡âº£!Â*\ZZ¹|òäI´ß¢1„)½0“s'‘È[mpâ¯üʯ€Œà�kº‘BíÔžh"Æ}ßv‘gy5)Ä9¶ÑHßé;èZœ€���ÃÑìÁGi�ôðaã®&xír%4“z÷·;lëÍŠúê_{cãzqf Lkº�¹›ɶ䈼Ùñ ûýÜ`Àà%8 žb}ý týÍårý} µr¥I{Äð ©4|‰¶e€2!æ µù�ÿôW#'Ïô9eE�`ÿk·ç.œ>111aš£W®\¥Œ*A±‘ч²/_ËÇ|¼ à–9ôÇÍÄÂó¨=` ;tïcûØþýûßöªÝ°Öçóá5Ñv�úPä ØŒm‡ = o÷m抷ÒèI·°°€[!»tóõGLÎî†×ï=¬ã'ˆ{^»ÝÓ» Ï»£Á:k'ù�]dDh }áp“ev–&Šžßû½ßûøÇ?þÑ�~ômøâÂ>|öìÙÎêÇèiÀPn·ÿý ¿GÒ‚RÉ ö=ñh,�!Í}öÕ+üøÉRv^1u’áàö™d2�²œªV³"SŠi•–iVd½ak-ײåRec8&¼lˆ£›� ¸ùä÷û·DøºÇ@W7$áÂÔÓ0Vpet¸Ã_áe-$•Îx=‚<÷íàñ�Û–^[»}ˆŽ IññzzzîÚUOŽ`¦Â£‚Ç#Å—f–14šåAî?ùÄã/Íþóµµ)_||•/\¸pþÂ…H$ë—@[ŸX»V«­®®¾½õ¨ü¥/}éöíÛ0³ B!üà’€{a¸ ØŒ˜JÛÎU´=–¢“u&xÆ95SÙcÅ7à4L4¼ƒ»4l׸}_´�T¬Â`›Íú/Hg€mÌYÑág�Š“—.]šššж%Ëܦe2¸,–d&6Åb�BÐßß?4<ü§ÿé?óÃ�yûŽ‹kû™“Ù\سc™ÿtk•œPë mWƒ‘¬³—¿uµ,�2gÈ%>ÐcFáÎw�šÚFËI¿ÔŽHÖ‘È¢ Å$*DÛ‡eiÆwdûýZ4séë.»�Nav‹N¬|ƒþ2¶Þ2˜0#ú ¹ìO h¶™›‡ÏÑɧÎ åfår^ôŠ ‡eSÓҙ̉“§L‡üîkËp1˜Ê_xÏÙþìâñ8ô©3BÂúî­¬¬ôõõ½%=ÿÇüÇ?øƒ?Èf³XwÙþQÛ€¹CsîúáÖ·Û;¼Ñö�[{@ˆ£Gu¦ c´¶· �àãæ4´]§ˆtãžwMñºYb‚pÁ-Xâón"¦”<æ3Ÿù§ú§·t»µµµh;jh›véâÅTÙà¯Ñª=v$žB—à•d*φ CþÞáÌJz\«––—Û%Vôj±™�±L� «8íh†eÆM1-ª¸‹Œhz×¢îº#GßIX–rB¯1,é�Åá{,� Ÿ1 ®Ì2¬—m‰ulG.,6ó ­òšÞ,„†O2B »œ—"‰þcçÄÈPzf6ŸÉ~åéï/-.œ9snwþØpoO†Ÿbù¿ûÆ7·7¢ý­X,î|RR©Ôg?ûÙ?û³?ƒG@þz°Á„¬¸¶Œ7{«îQhÞÃïT‡iaNò·Qämoè½ýŒé�cçñ]xî¶�¶J¥R¯×·”ø/t¯¥‰á%ò'òùÏ~‡eíá¥èzÓ‚Wÿòôw¥¡³¶ãøhù‘ãã—®t½v}­ÈĆ‹`EV5=�zeæò’Nö%Ü"BoVjé)ÖÐåÕXœBÏ| 4£ó0V�ŧ* …€¸cF ²ÚÆ �y °bc$�sá‰àxºðÀŸx;¸ Òt§Ìm—¦½=ûƒ—_ü«Va)<ú°û¶Ð”aGªéœé Ç�?LŒ<{u®Xª Gïï85"2�þ`ÏØ«W§“©Ôö8<<Œù[vÒ¾õ­oýÆoü&wÛf·]6€N|°„ÞÒ’CîáåÚ ÁßT1ÝK ·x„)ƸxÐÖxÿoºw�Û÷EÛ‰qfÃ^,nÄmSͯ¿ººú½ï}ŽßþF€â�Ê’÷„pMûÝßû¿é�G M=1Ä}âý“”+ÚV–.5®o�rÓ`ç//\��¦Ï>·ü#@E7Ò·ÕZ–õ„êóßó9E’b0‰ âñú»ÀÏ À ý_¯æ£:‘[5$Ê0\ëm pq¡Ý¹7ìËbuçj&PüðAÁ—ó B¨ßÒešÎc¬^[ì!H¢Y.çμ+áT”jQÓu1K©={½ øBéù«G÷=|p›1„žÌÏÏn?…Báÿðÿöoÿû¹�Š�Fcýaè¬sú–˜:6�Çó@…¯÷ôFÕpÏ?òXK»“Þäá}ëcÑu Ûe-�N®\u^'ø Ru¼œ¶Pn{K�Üù£?ú£k×®}èC‚Ã:žÞ˜ñwG_[[ûèG?º=Š_¾re>ÝØ´¯¸zûgÎŒºe$Úäÿß /¯ö�ö.-Ú¦åØ6ÅP7¿ùrM?à‰Üvl7ù—mêéëÿ,š\aÔ<#¶ëO´û°A¥Å·h=Ä®ÿ )¯,Ë› ¹(dýíì ßm›- Àد1I6[øŽ%4½0m(‰Àà1ÎòÆÆ™Ð-¼±ñz�3TU©W ËsGÎÚŒ�Ë$?zöÔíé™W_}åøäà@`u)]‰ì»ðõ¿ûÆ'?öóÛŒ!ôáÒ¥KÏ>û,nQw Bw|³²²ò—ù—åryûô2�©Gsåz¥–s>Ÿë †FéA+;ÑqM@‹ÎäääÔÔÔÞFè½ä¨¿s= CÐ)ä>\ä]xÞe ðä,HÌN�2EÀ¶N¤Ð64÷b�Cë[ߊÅbëK;cˆn^¿¿ÿû¿ÿØc�}ò“Ÿ„ö¼Ô3ßý>™ 9I°k^»|ù²‹p$¹˜)*ÙØò0œÈrŒEEÎï º¶¡·rűM1|¸R©,ÌÏJ�›¶3èúKœËf{z{·À^xáË_þr.—ss�·Û†Äg8³Õj5‰l“~„øÁ Ðÿõ?´ƒ¾õ¶—Üžôïݹ‡ÓÓÓhw٫٩ˆ¶£â}^eòÇªŠ¡ë+ÌòoÿöoîsŸ»OúÖ5nßm‡Æml@yqǹfgPjsšª-¯'QÆÒ�†Þ¿�´Ðæææžþyø4zÃ$PÝÏþdG�jÃÓšÿÙ'OŽŒŽ G¡K ¯!„úâ<~Î#ª�f6ÍY¦xLq<Ãûš¹9µšCjúÛ\tøúæR èß´%u^¯õ÷öö¢“×úC�˜ïåö‚¡5€d€>ÀYí_YÂlitúi*uNаb€¥(2(—R…™�«0_3½òÈþ„n˜¯¾zñ©'æ…ËÕ–ÍJ157õó|ßzÕêk_ûÚÿñ§R)˜¾íÇ÷ã1•é›b3>f>Ÿ¶�Ó‡û?¼ÕW˵=¹eC#³í½ÑÀG{�º£Š�ZŒ©~~ºZi×s{·6»étºQ¯cŒ ¼W+++™Lfs¢¨õ¡VëÁi'�­p)à¯ËËËŸýìg¿ô¥/u\ÿå›ÿªZTpø„ÀQxòd±TFÝâµù4é †ö•’+pmÛ° é&#<áAµ–†¬V3¶¡Òœ UÓ„œa9p ¶“Å ËW í6!h—öù|÷’’p5@÷í“C¡G Z¹‰»IÊಯÇ\Q¤Y]öFÇ´F¡ºv]käË‹=ÑQ)>æÐQÓ`ƹà�s³¯UW¦“¦'“-\¹rybbbphøÒ4•c™Wo,¥SI¼Ý+¯¼ò›¿ù›_ùÊWàF[æ(Ý,)С}Ãôm˜P4<Ȳ¼¸¸Ø ‚×u-—ËÁ €ÿ‘¬·mL Çê”PÛc`º³L¬+a‰ ÝeÏ]öüØóëØ=Är‚ÄZäݲNXŒ–”ÐN'y/�)æŽVI;ùÎÌÌÌ /¼§ôõõýîïÿ‰&�‹á¡AŸþ?ÿÂyËrË.ù%Ï¿ÌU‰è DZÍbžåyµÙX�Wx)N3¬Ö(*×Ó®ƒÈ´ÆÂ÷³@R4^9+ꪘùÕØ-•Ñ9oãÆL´·Ó`@6ë+�ÐüÃübøNbÖ­v¯Çh±‰SÞèheù2€tÏÑ÷ðž�mɘ�ÅÞ±A û,­™_[YzõÙw=õxo{§ÙÖêߟ·(ÒY�ymr(ÜÛÓŒù«_ýê–Iж7“¬?~3à~y6›- 8MížS¦ET _)³ÐeW?V!þ…/|‹±î0dñ>oð¾€Êû yîÄ^òSÙÔèÂó.†çðÀ!ÇÓkj²@én ÓÝÜX€ÐhëÞR»ï¸Tl¿³»í ‡—_{í¯¿üå;Y+ºïœ¦›�ïÞqî–ó½<-†"ŽM°59W/6d­—áx¸Ã{Ùµ’d8�ÚÈ+ ßù7*Gák¢¡Ómøz¸¡tÊDôƒMûÎã¨b�çõ.Wøn<£Q £?7ä÷vLÅö$X)ª7‹¼/F86EsŒ Q §T²½Ã’æHŠä½’\É—“ “=¡`[iûÅ}qÊŒ[Jõ¥oíúåW’ÉTøw¸$ 38�[Ú?ðq€.'“I�§��" G7�¦¸Ït¹P&ˆeÐÈ6^‡,Bÿ¹\nÏìIãvOW Û0Ë?�î·wqSV�¤#×½#Ž¥w¤6²Æ¥¥¥R©´“:v±ˆM¹Æ¶Y£°@½îÌ/3¾>NŠYrñɇ&�ïüÒ+Ó«Bï(ø¬—ãÔ–²t}þPë9¥¼¦Ë¥Òü˵ä”RI鵌°I`i‡õ=ÈÄT‹˜ÅÃÀ¹×Ãö6†ÇÄ 'u€Ç˜(ó‡Ã;[õˆ:˜Œl½µœ¡i-w£‘_ðaDŸ¿ï \\¬­^',Ãab�R‰á ¥ZZ¹übïþƒ“ïù`ó•+WVVVü�ÐéqŸª*¾øHA¦kõÆIóúÊ`è¶Ù£›¸ë¶ºº ¼¹CšÛØL¦e÷?áé?úATä«S»tß¾õS†ù.PÜÀ†¯FWÛ<˸é¶C£c—=?Ðì9Ð;቎úøö½£±v…±IwÄ7Fñ6›MôñÆà+hðe½^¬ZŸ~a‡¯bÛª¬Ï'+±£ïg¥ˆ¨%ýSïP É¥Sÿ噋–G*-ÏÖ2ËJ=ߪVž=‘aKkÁÚ¦9±ž¹ÍKQ_â€^¸CÕвMÜ­·±yѣф f1Æìk7Ì$°½qÉ%œ‚éÊ1E(B5 –aÄØ“ÎeIŠRkY&~ÌÖ›nþmo|Ÿc›õÔ”e,Ýäx²¸¡•Ϧ––�ãgNDÂð 1+�«×çüý$+øø@/phËP(Šm»p+zî&¿Ž�¡,Øœùz"‘è�’ÑÄ­T*N÷2ÃÕØ0Z ¥L§h´\.·Ù× ½�‘ ßý†àYJÉM‹Áü%WGÄЀì«§¦¯ó+,ýÞ‰ ïpl ÓŒÞ\[<~pÿÉ“'�Ôf3WéÚ?ñ¾ðØÙÌw¿7á&ȤߘA¬ÃsÁx²í$ä'väg˜x£o7¨&¤;›:1ð¤ÿϰ¼¦ÀÝ#—"D%÷#_x .Àj é †Þ‰ì†ñÁÔ7;¯v6¬ö†N*Ý™Ý0Ëð&Â{úãÎØÓ5nïâ&bF«jêruåJhü\ðÜ¿Ól–t¬õË­»¸Y "™4 }? ¤~°ÔÐËw½uKr�«h¾ÄAÛÔšéÛ~Þ C‡~ì±ÇÂýÃ#~F.e8—•’–áäW’þþc�ܬxWR@%IŠÑªk”Z쨘ÖjËí.¸î wB§Ö£/ph ˜¾ËwËk®�Ç+t6¹Ñùvó‰è¿ý†K‘<ãh�¢ehZ#O´“êÍ »?q<4 ·,ħáD>OJpœÕÛÛ;4ØŸðª­Z^Š9¾áJ¥º�&�Œ¹P('†&m Øy˜&´`ÕT56êj õÃÑ3¿ìëÝ/„úYO�¤i–þqYá@�€±íZ¹·ß EíöñA„îZ¹ï5˘±çÇgëîÂó.n$ë¡h¦ºv#0p�Ï7pŒ=ð ŠÅ:æF#9@2ðÅ-K¯#„#H×jµd2‰äl– gxSÑÊ-›¢)ƒP¬ÿ½?ó¸C�x°˜+û÷“ŽÖ,�%j�†,S¼/¾V9 ¤½™™¡y¯¤vå’­·:ï|�¶4lζÞ6Ï}Æt¤ëÐôʾ×{Õ)¹±åO볉9ÕÊÞ½  5²s —TW¯Ê…E—F÷�é<<é«Î¿Xˤ†(:B2í²Õ™™àÊ¿ò?|ªUZÓ›åÀÈÃÉl™"‰ Ú3¼äù|€dú`^ß18‰õüêØ¦®ªÞ}± ÿK«°`[|ìÙ±AËø1'A7ì"ô6â7#Þ´´ÌýÜÐS¬‹ÐÛ˜01ñ�ãâ]ãön†gÒ-¯ä�ŽÔ3Óð/#BŸ¾»øÊŸÉçY–Gwn?À€b±�Ç·ÜOB�Æd[ vÛ°òR8ݶÌÕlE×ìþþ#bd4¤Ï?õĹ;Swz{z!fó&ÆõL^½yMŠFåj� ÃŽmH±±ÊêU!7”ïïQª²:CÒ &4†Î %p³e¿Ò¯ 0 ƒN>üðÃN„'½téÒ6Q@èã†%­6¾ ƒV43¨ºáa³‘õÉßz:yék±É'„@d/Åús™ää±CÁ¾Þ¹«S¹©éX­ÖjÆðÌ™3’?Õ?±YåÿÔ§>y/{2\ssRO,‚^Ó¸9 Ø#òŒVš§¥xKW€›"g¥¡”7MÂ!YþÐÙS}ÅÂík ÿòìõ_xôä™3gá�¾Dl$ «Ü$™»m1R¡¦p,ÜI3nrÃ#ËSçy`Ø?Ð[Çõ#µ£Ç¥ƒLœýï* -S÷„‡ªk×ôf…b8št½õXŠè»÷`flÞ¡øFúè£�>÷Üs»ñ`ÑŽŒŒ¬®®î$Äã�¥Ñ0J?Z=¬kÜÞÅðl( ÖRËRpäaÛ™kÿ˜›ú¶à��½÷wú>ò§Nߣ¦®‘w-œ C�Vbuší¥ è…›¾�@  Ô[ºIûGmS7ÔÆÁ×ì<<2²–\+Ö† ¶ˆÞ‰ƒ�ÜJ9'³€âÍ’\\vl+wëi­Y¤8ÏK1í@dÜZF*‰ µ&áW ¸Ûwxä‘G6=?}ú4zmÜ«~×–É€àÃ`køä)Ö½¦hÖÈß� K¾ÞÞ訥µª+ný†çs©–ÒjÀ €V¢±á‘H©‘+KèDÑÜ…# Sk�ùzÆKu�a¹`0C —Å‚¨¼‰GE•J%ô}Ý®`ƒºî÷]øÍñ�ÿ™¿ÿhyá¢�'~ó÷� ‹ =Àø¦ö“Y�?HÙà·�Ð0ÝÏ?ÿü6›5÷y[^^Þ)Ðm[êa?BCwžwqc8Ãy‰6š75Õ:À€'Ô×*¯µÊ+RlläÃÿ—çì¿• Ê15’|½|Ów s…b\“kàÒõ¼ÌA—âûÜ·Ô(ž::?øDÑ#Ißí)…€ÍµjåÒêŒÞ(¬^}©žº!W€ sž'EÄа|»ºDR´sw3›¸[x Ý’;Csúæ"ðF›Ûøøøððð–ý¿páÂö˜‡éúŒ;©6�:wz…ÃE î™uKkà)å5ÿÀÞ//^´ Úžr¶'@wg_~Ytˆ÷üò/'úûoMMÍÌÌÀ©§'{i³®5Š¡Áã!äË ò.Ù¡G &ìÄäÛn¯[iVZÜPä�¿ë{L-¯R$mȵÜÔÓZ#ïÆ”+UЇê©)Û6Iú'÷‚ãHn“ä¼Û0”q³[ß.jè,Öu8Ø¡ 7FƒéÂóƒÛ¢.‚šmÌJ½ž¼á‰ yƒþþþø>µ’*ͽ`ÊåàÄS‰Ÿû�ôøûU¹LZÓõF£‘J¥Ð„»½$ÅýW×L‘å¦Ù4Yod�á%Jözµ‘‘8Y•¤§¿÷|eåf=9eÕWBfò‘Ó¼äÖHï;çí§y/PSkê�¥dI’Þ,áF°¸Ñ± -ÛÕju{IqæÌ™{=ÂÑ£G#‘H§æææGÃ,% h@áüØ%üfóÕ€ãë•e]®ºîšÍ2pèÀÀ‘ÊòEV› §Q)Í¿üòÈèèÈÄãó‘¢xþÜ9˶_|é¥�žðX„l׃ǃÃ'’Ù2Ü.ãÿ¦),Ðy­\.g2­]ÛÔ[:NþODô¨eij-­É%µYí‡ éfvô0S©³žá$A‰á¡Ÿð²„Ç*ŸÝ7ô^ãƒ`vï#À:üÈG>Ò¥ÑÛϲ››è®©;oÝ·è¾ho#-I‹ BCÇžy_Ìp3ft·„[!ÐKóàÐð'p©âì÷IŠ’FÏ‘¡ÉúÚuÖ–E¯ßqlLvñ¦9Ià¹% <·ÖTÃé9øGMUø²Ç'‡gçæV–—á eMñïß?ròH¨7á‹…k¹B*-µJIÁæ©V3ÍüÐh[Îѵi`Ïø´>C$î@cÊ3Qa4à²H©ïU(øÕ_ýÕP(´eÏá KKK³³³›E!æË, p nÁ1ðFÁ˜lpRE‚»UL86²hÍrÞè0Œ-Íò  Õ’w* ßëí >yÒ Zp IÖ—–&b±˜$I‹‹ Sׯ$µ�JÀƒ—R3>Vw‹…´ ûÛ3((•J:‰vc–¡5µE <9ôÁÿ34þ(ÓvÌöõNŠáX0é¶¥›š Ê™èå}ÑZêÃ{õz¶YXúÉ˦ññqô-è¾Ú÷âX °Kûûöm|5ºS¼MÃþ?LŸ.{ÞÅ X)¼è•åËþ¾ ‹tDàÝ' ÞÛÔ-S£X¾UZcnä‰3ù鿦{NÙF‹¦)ÜWÎårÀÌpßwK�œ`i&S¨©L„€±ÚÚ wã¶Uay× \^}…¹¯êx¥!âv,|†¾‡^ïá…]|Ýf|}ôQ nÞðhðàù|¾ã.Žñß�gËÝè×íÞÅèUÖ’ Kj-K1œcÛ­Ò Å jºÔ5½ý‚¬¡¬ª¦®ÃL„C¡ÃGŽ‘¼f4ó–®x£#žèH²¤5êUA·mèˆW*•0 ë@Ž¥¦tâSû?þE1Øgi š¥Þ‰òÒ¥¶«šåε¡ÂOõôwÜy,C1 í§²2ÝìwKYw9Ö–«}”�ŵ̮±dˆ{?̺ð¼»m(�¾ƒ�ì\#;bÚµ“4pèÒâ+ÍüP«Øäã‘}çIZÌÜøÀù¾_ú fâCZKv�)¤a V¥Ói7ó×]$ëdxvÁSDQ÷’4°Ú@«¸lè­pßpìñÇm† ·#¯*¥’î=t\[¾­)*\@uc£y tp!¹´ ¬Ž¤iKoR­ŒnÚ˜÷ã^JåzÐB„®×ëÍf75qkC¿Êåò�;wî56pØ­[·@‚Àah-ï<éï?ä†-•V[Õ”©6€|þö·¿ îСCDÃêêêïþîï>óÌ3�@‹Ì(í·\Ç�íÍS`¶Û IÚªŒ œhšVO,Ü"¼”ª®\ ô Ÿ„§œdõòÏŸï?<6nf2s‹‹|8 1 Ÿ(~õÅWäƒÇÂ=ñ…ˤ8&HÂQËi“õ3zÁ4 ¸,ÞîU©T›1�öÁ k Ìöy�ÿâÀÙ�òÞ¨\^5äÃ{aRYÁç½ 9· †úé;œfEŸ\Xà¥h37¯7 Z=«T³?mÒFÕ§ûšo98¨"ïꧨ·«ÎK’ÔÍÄ~/Êá÷ûߪxïÂóî†gÁ 1Ø'øãœ'H1\iîEV𳞠\‘f´Áj] ôP4ËzÔZ!y髌ÔK†ÆõFޱZI¡ugÿ^6xÓ°è²ß/%KšÎ†ï}ñ}œ²t³¯ß<þı:É©Ë c}}ó««do/ïqkk+«ÙJÅ©7ƒ1 (•T~ê™ÐÈ–¹ÚmžcàúH ÑÅq}ú°{©™˜”+[àV1q7¯ÙË/¿¼¸¸xôèÑ´?ýôÓ€Íkkkx5Lk*f ‡„Ï[ÖgDï°×¡±½;Þ¡°pÓH$\.•¨Àˆf½a´ ¸ÛÒfó]‡Ñ+%âñ!AX¼u+¯ªl­v3•)ŽD# K¥ggKeQŠئ^]»ÊxRˆù–Ã\`@èAF¯O!£¢F˳/|òy)´›pH14 7ŠÕµë¬Çψ~àÌœm ÙÅKŠº3n™  érÙÒd9yCS÷‰„BM«Ë±6#t'-ü®nhg½yËì„8<ƒl/—Ë]x~PàpBê™ YQŠ��Dnæ¤Ø¨¯÷€Lhõ¼›¤žym›*@s-5å†Ãޝw²²üZïÑ÷3±ƒÙ;ϳ”ùF9Â6HN„B!·n E.®¦*ô€7Øç��x"C–®�}à„?1>ÀKÒÒZzÜÃçnûúè6ŒEÃáZ.yñÅéfƒPJËŽ¥ûš…PKåjw}� wÝÁÞ(E’÷Š5BäÞ\c }Ëž¿ÿýï ~ñ‹_üó?ÿsLòù`àp@…·ÌU‚&÷Ãhª5Šaêé;�ìŒ ðÉr~ô-¹¸Ü*­Â7�Ô-¹°Äù¢¦&Ó,WON©µ,€·œ¾v_íq¢àï±ïþ ‹ï=PäªÒ0ËÑh´[Kcã�á-�ÕͶ«oÓP\S¶Ö,6³³þ¾C@”�VÅ &HBo–‰‹³ÏG<:á ¸yI‚¤9±²rÙߨû=é8*€DgBg³Y¯GLjjTðÅ-SóõL]“ Ë,iÅú'Ü�S‹ð:ò�¯õGB¬(ñ¬ F¥’lò–ˆÇÇÏÀÍáf¡þFnÎéÀˆìð'Ü’ÄŽhßۜڳӫmXˆ{PK?÷¹Ï�J¶Ùé¹×õ;¿bÑuìÕú2Y®ýÙ¶1d*uǃ}¦Ò¨%§C'4“j*o@`¹R¡ ãÜãïš™^Srÿ�ý BDa†\‚‹5²s½Gß›½ñM]iÌg[G8PÜ@²õÆvWKеòK Od@)¯¨µ|=5sJ����ÞÀ~ßg*À3ÃyR—¿t0Û²MVô×Ó·9Ñï 4wî·e‹þ2hÔíf%ØKOT,_˜v©›.Ÿ&î¦A|Kêr—=ïbö9 ÔL—Ë´à’Ú.Ÿì–GC}ð«ZËÔ3Ó€©¼/bé-]®Ø†ÆŠ†÷n)æKB ·¶v#.Ùý«®\�¹NL‚ÔÊÏÒôÆ”RX€ÐWôÛÚ,¬‘¿¾©Š³ÿ£- Uaqhx€aè:o¶&iÆÀ2’2m‡Oªµ¬Ò¬•j.¼uëV¡P8þ¼ Š^ÒÖkÅèÈHâй\Rž{íšÏ§ëÍ’7êæ8ÅÈÔ[�¾I"0^T¸LÝ‘5`–®kðöÆb1–e`^,])/^ ž`�(÷îõ¨‘™n—Ífh†óFGk©©v]ÇÖÖÔ[£Uq7º4Ù±LDzZŵû| ƒF…™éºQXè|°' ` Ûy–ÑÛtçÇwáy7¿Ïºi-�õþÄVð›J½™›^»ø Ô ͰµF� )ÛÔL­ ÔP¶¼t)yé«î¶ey xÃ2„<˜–|�JS_ÍVÖŠ-&ñ+ú=‘!€XþRï$ü? —--¾–[œ75#:²oüìÑ�¡_øÐ‚œžžît,â¥-µ8ÆK‘ò«+P oè*ÐS ¯›+7w¾�Wäõ–u±¼Õ£€w¼“6p,€�©¶;Öìõ£T]ÕÁqU Sk¹† ÷*�jDÔç5UÇ&(šé;xÄ×w 3{Ó6à¾pC)>î:»É•ðèéȾs„7QÔÄTÅT Âã•oQÕ¨&oÀà�ƒÚdi2L´c[©Ëç:…$/EN„‡95T—"»ÛùŶêHÚš²[V2NàS§ù(ÁÑÜ××·WÞ}TŘv{0AzK·˜{µ®qû~OoøÍ:ëO€t–ℼ?0¬Ö2��£| ÞΨ™jCkkÉ›“ùÛO723JyE©fôfY)­Àñ ñ‹åJ±EU-_½!;´WŒ ¹®àRÄpSy+uø VSp5†óð¡þCg÷'ö Ág’&ålîTHÚ?1‘L&K¥R<‡Ž•K…g§ `Þ¬'är¾ôíâÜ Rÿ1S•c!ˆžN-)4\c'âîî/fÛ!î†ãÎ\0ìs/ÃÑ–Së±® ( `-J‡N†t&ïÌn‡ã�0ô¥¿¿n^j–CC µšQëYÐWL]]|ñ¿¼ÿÝO8x¨s;�e^[Í3±„›\Ó±g/MÕÕ„Cp -ÁŒþ9¿hªuÀiÛ4\'p‚ÐZ ƒ ÔuN³@nY³t‹„c´Z®žžª®Ý¨,]ª¥n­Pv‡°iÎ-&–Á�6£­Ös „ÁÐ[U¥´d5ÖLs7ÙKaêQyÚ¦�èޖݰ>÷öƒþóŸ·Û-l®S÷€Ìò£éºð¼[á9àó14I{{Ü Mà ”[¥·d…e¸åŸJ}1š÷4ss@…½‘aèJ-Có ”Ñr 'x££!¨6K a½YÃýþ¾¼?n*`<îVqú=뉌Hÿ‹L\HÏÎõ y9QtHÂ,ÎÆÃ€¦½½½¹\.ŸÏ÷ôôX–ùôõ鉤 ñ%¹¸Èò^:0bU—*4°%ŒªBaÔÙrvûÖöùì:ã~0| "»cšÞÒ~/xî`s£ÑvŽõ6ÐG#¡7èòp@­‘Ð04U•ÍÓÉ�Ðè™Ðð)[Îb½£}ò|, -.-µƒË\÷rš"ïdÊZ ‡¥ìÛÏ_,Ôû<‘!¹” ž°ônSorÅ¢T©g¨°RI‘¬ bU%L‡¦Hs#; êÐn âþÄ�ÐðioËPà"€ÊB G­¦M]v§•vOð6Õ& fI­&z¼»±Ò0LFé`ÉÑJvÃ:ˆÑédýÎôÕ;1váyW³—ìñôÄ":å}qŠa8o¸¶vö òE³J5Uœ}` A«çŒVpšõ·~3#Žcè�"ðoK©‡N°‚ä‰ +¥Uàa$I³‚�÷†Äð°=F�ýôf:2rÐbc…¹«#ûŠ&²éS=Q¦ ŠÌ@ 3™ô`ß7¯äL¡O¯çjÉ��#±É'²·ž†÷Ï $AÏù$©ÞÎÉŒ¯%ÖQxÃ*Ð.��”+NbÈ2rÜŽCuçeFÜj7Ü9Þðà]ŠÅ" 1fóF<Ñ€½aÓƒQdÀ‡H$â÷ùšŠY•Ž“ŒÏŠ t™ó¸¸ú¡ñ£'†Æ÷í‡ÃóóóÉdÒ…h¯4½²*‡Ó/^ÌWR|.Ü̯ÑB�óÅ`èLJ9 ψ>KS,C…Y`x ”*Ð�€aóÞ°;YÞtŽg½A½Q‚Y`XÎÒšEOxÐ%§šm—jÉ[0ã–®À¤ë­Š\X$iŽn.û=Œ,·€¦üh«ÄÿÄÚë)Û¦õÁ±x?h5•ÑIððáÕJeK×�=9Å;ñìÂóîƒg׋Xûûûžoè4Éy)ŠÂ$ûh– e:åVa9çYÇ4,­Eq"Pj bíRÁ€²%¢]Z«çzÚYON¹}á�8ïï?$pJhèd#; Xî=jp`‚fØFSÐË3‰‰~}æÎÙ‰}Ä]¹‹ÅšMymeiº$¤²%C.†Çβ®•Ûý0ÉrèV£Žç�È¢…gCú°×íÃímÈΟèD §tê@#ùì�þÅàB¬:µžŽ}f�þGë/¸95 q××ù: uoo�¢(ÍðyJJ˜­êÀÙ�1¼ª›ûÚ¦üòÔoüPCv æ �À¤À)³³³ÅB¾\­¾z'Un Hñawš¢ϬZ‡ZÏŽÅIaÐ¥´Zô ¶_½â��Ù†ê��³«´B»1ë鯦y¡äÛF«jÛ&<Ÿcpø·í§�î^¡4`šj+ךeµ\4ìÓ¥d·gxF£7ZQ‚ïm¨ÞÕ3Þ^+ hôÞ·on~ímœÞ‰+{žwé›è.<ï2xFÞŒ™óHÂÑ,šï³´füàSœÇµ”²b°U\@�ŽŸ£yáØõä-µžõÆFx)ª—½ñQâ mh ñAP ב‹ËÀ’CCÇÂj•ׯÖ(¸;Ö¬dN..~û{†x@S7´CóþÛßûÎ~¾â÷xW×Ö¦§§³Ù,z]…Âá¨Ç^®Ð•º¬ µ=¤9AŠ�U×nrÞ`ËÍV™Ôk/¢¨ÅìÖ¤Ds÷–eq1Ñ .æÐFKõú�í’ Åb Èßë%‡_×åÑtS‡bø‡ íp#K—¹nü½4Iæ ŸÿŒð`¥¼FIñræûèI†uÍïПÞÞÞÎe/Þ™¾MK:x¶\\uç×c˜2T­™Ÿ ôU 0Þ5à³èO@y]‰lnu Ë„?�:³mcFpàˆ©¸ŽÙ Q¹D¹´Ê þv|—jirdüa’¢@‘2Z@zŠåÝåü"à ¼²ÊДë(.IÙ²—v4§OŸ> ŠÑždZ?d-Â=Ð@ÝG“‰¯]zç$Ð]xÞMðì÷ûAÔ‚RÙÙRÕ Óäc†\Le=A P@°Ù1<ènXŠÛÒ´z.2q�÷÷èÍ"ð-×븞m“ã I3€7J%›|<ÙÎ'#ùû¹þó¢Ïߘ— ?‘ntXoœvm+OxP©fZå$MÚ‚žmGo¿¾/ÂM {éÅÉd2È´ÂáðÞ³?€¾ë÷Ò¡1»\§Úìž¡ÔÛ»pwáy×À³ÇãxÈéÔ~@ç&•ô3@pÅ€à‹ÛºZY¹„˜óø@šË¥ÀfFðïÍü͸;¯ní\)­Y†âï?Äûâb¨°�÷†[•5!� YÎmf§àD­Y” ‹€åQb0.ż®w¿Ô3ÈñBüØèj:s¤Ç/®Kˆ½´´44<2<Ð4W^žSø`?/EÄP?‰[þY©Ãæ˜è ¸´Vh§+¡€cºGŒ­‚ï•‚�¶r¶¤×ëF3où2cúL¡M.ˆz:I¸u$�èi&ñPpà(phPwBƒ'\÷øj:ßj6&©›ÿë§~– _�õZXXÕúó�—_½"„{ö�׳¥L†nÇšóÞh/ç ¬¼ò SÓÞ7E n©7ò†\�ÑöƉI’n×8I±v»dêîæt=ç¦-‹ i�¼›µ�ÚÅÔ[pVÛéÏ5kc¦X!ЫT’ ÷�ZM¢šn�Ñ»7øw©�Ø›6X9$øn"x„¾¾¾F£Ñ�L&‡Æô {Còo£„uáy×À3°Rôlêä­DÌ‘MŽõ†Öã ”W.þ¹~Åž�æŠþ2#úÝlTr…w7/ë­ò %°då}'~€V«gÝÔͺÜ˱ o|Ìv½ÉÕµ†R…ËR4ÍyCž`?-øÛñÅy�zIjqvä@ÂŒ ߸víPÔ+ˆ|…€Ó ÁCMŒöå™ËI á–£¦äÂÒÀé�εJ+nW9Sn‘­Ë04ÃâN0ºj£K׿èŽ^²Þÿë^£º <»å2ÛÎ_x À{X†a ‹¡ÆÎ3ô0aîænÏDtâ‚Ѫùz'yŒó'ÌòµsÇx ƵÞXÔ�C¿vgö2ˆíßOXD³ZK§H΄›[ªœ™zÅ2©àÈi†�ક `=}æ®PÜNÓb8O37ãOL—zÜdm0S­âë ÁO.B„ìPwÅ“có¾\ ˜tP¿@÷jºë´–÷ñ®4ÚÃØbÉ“ÝgõV%8ÛnÏb�ÁÝD˜›[¡PÀ¸;Tßwû%‰{)a]xÞ5ðŒ{¢ëáÙ=ѱªÃGFÚ©U À(¦ÚI \ÊÍžQË2¬T¬™Ÿ Ÿð»Ù¹)`cm/n¸*°gšóT—_c½!r½Yp=³8Á±L_â€'2è·] ’=±}ÅÅ+¢/Äy%ÐùÌÚìð¡1–ãµ@Ïõë×F¼À¡óù|³Ù¼›üˆ<¶¿¯²zãvÉË‹>×›‰ ávžÐ #Hj5í� Š±ÉºÜ"Ô*Cê¦e£‡2c,0µ!ÏØ`BƒNž¯{�* )Ò©õQXèì�²0| }4xŽsCáz<Ç>% kåLµ9;ð”¡Ôà?7"Ü!ÌÊ�Ç>ÐâèÁñC‡*¦9»´”I§MEyáʵµ¡Éèĸ­»žì­z#µæþ Ö,§®~�ñöƒzÄù# 9‰�^^ŠÖÖn6Òw„`îš Í 0YF« Ê�Jè2¢t)—õ ^€a˜_˜¯FfÖ ¯âuêN‚Ì5Û)M`M£}{s _8ŽîÄäwKXÂ÷¸o½^ö:€Ù bìàcÀ\m]iäæÇßÙwÔ³íÝÆú”âÌùwxGŽrr™¡¾„×ï� ˆÑè÷žþb¶ì‰Ç“但#[u9“$uµ•ºñ¢ƒk*µŒH� ü¼¶z f fAŠ�Yz § ²r…ð%EÒN»R7|   * š/>ŠL„ì%á)ç9)D‘$L%€7ۦRk•VÛaµÏ1d{/=<Ã#ïUûö– ]w/Í {¬˜Õ�CÛÕÕÄA(uáywÃs0ìÄ쇎#.DZ#:Ò�-àvÏa·*kÁÁ“@�é6iölÐÝD–([÷ÆF$š™i@`ŽðYð÷Ð4Ï{ݲ ¼/ RÊk‚/Æùbra œ©4€Ã¹¾Æb¸²|�÷úÃQ*>u�¬ÁÐ.B_»r™®¸–mÜÖ­×ë•J¥\©Ìïÿë×KªÀñnŒ¯›ÖJm0‚�ó†ËK Ç–bã\ÏQès}�¡;–{·!0Ã¥`ð©;qÒ0b¨{®ÇiŒ¼‚†IÄ0›ôFdê„M¯3‰%ÑÃï’Æ ô´ ¥žší!4rºlÆ�¢c›|ò´~쩇”–ΔóÏV;mýâÌLˆç}�÷÷ôÔréÜâ¼æ²sfæÊ\9•òD&(†s=¾š%14 5ò•åËœ�‘„ÿqÞç Âóªõ,søjjMТ\Ó·Çï�Ž.gà"J5㉑Ží‰ŽZ8·72Ĉ~@e!Ðw#Ú¡» ªvÛñ �½øø0Jðg³Ù|0i–ÏçÛu¾Ð¸Ú»r' µð]WVd'ƒ.<ïx2ŠË– VUŒ�n�fÇTÙ80<Ωí².]å¥ç *•$'…mK8„?ÁßHßAO"C®Qnᣠ²D»¥Ô³¢U\º¦7Ë ñBÜÝÍjJ«QrS\éŠmÍeo>#yêaÖ2I¥œQ«9B«6Hâåo}£A‘YU]ªÕ’­VÎ0 €£>?mçeµUW4M>êÆU»õµ”FvÖÔ¶Þbý ›k¥%–´ò�pd€^ÜlF»7u—âgÀ̤ ¸³ÉÚÉÑ�‡Á7p´õØLÂðº<>óß»þZÁ^×ÔÌpáѳÁápj3; cBÒ �û£'ˆ‡ßβڎi…ìð@?Ü`vj*D’½‰ÄtS%�žžPb€"­‹_ÿÛ©®x"c4ÍÂé@ ­ð)çç½ÑaVðÁ€c¶íFfZoA»¦@ð»³ÙÈÎ)•”HhõFR áFh±îN?³/ÊGG•Z†¦Z—‹+0Â@…Ûÿ%\G÷âJ-yð»í‡ï JWªäm«xÅÒZ¼?¦”S†› ÎõAàÌÉS�"`°f¤1« ãúÔi`«×ëhA�åtÿã4tïÉ'Ÿ|î¹çºbð-5Ü�i€³|ŸOñ½a—=ïöŒƀʠûw’N¿>…©j@�4Çísã¦|1ôs©³iT–_$h'p°¼�}¦Rw‘@©3bÀÍBÔ53mé²c[j5Óª$õf¡ºrÅ ï1uÂõÑ&´à{øäï=€ÕœÇoÚÞìš “ñá„ë—M’J­>ΓgZ›žÎ5›ÁhÔjÛ©‹ÙlÃ4c‰¾ÉýµäµdÊfD?0>·þR=ïë™�zö¹å¶ªi1˜pc|CcÐË å„clxÓ¶)‹~4Ûør£,Æ0h¸`±l‰ôàBtÐÓVi:›|"2v�ÉnÒM`½  •':TÉæÕFÕëóQïäR´eµÚC§OÃd,¬%‹Þ€'àµæù¯<óÚ ‚ñµ-Ï>!Ø 8š¾òw¼›�iWÕjª‘›­,½sÄzƒ.¢º¥Æ²À­Aru‚Р֕Kuf¤�ýMò÷»±´Z®ºr•bxª]ÔRÎ/ÀH‚B·p«ˆ2¼Ùª„™:Ë2ô€gô§ƒaDáõ 74w£Wÿ}ŽÐ˜�¶+$ßÞ,?ñÄ©TêþWºð¼[á áf¨ó†Í•v¬Ú"Ýòz³Èp@@%¥’Rkië®Í“æÞ`Ãz‚^`o€£•@8€RZÓä²!W««×õV@‹fEàsn61ŠÌäxäì\¡Yp“x+.0>{u�2‹ý“Czµ6ÎSÁ``p` šJ%s¹ho/ÐÕ…™ÿÀçñ�Ÿ<2hÕfeNêm�Á»[æŽ#ÅÆàƒ«( Ãp�Ñs¶§W),è­2àKÇ¿EòàN­hÜ]îlÔuŠE뢨át:w#V×tÃ"çøÁsÑý�ÁQÀMåÂÒè£ÿÆßwÐMsMŠ[V$N�œR¸=>i�;ìŒOÈu-=7ß,27®ì�ÇÏž:e¶·Ÿ§çÕİc(OÿÅ·<€ôÐ;Þßh]š}!sýŸ\ÞÜ3A3tV)'ë©[Þø8Œ? o33Sš{HvÛ“‹‚9–ÜÌ/h“ çq“iÛ 9ÁSi�Eó¬à“âû\ŠPZ�nsb mäh¹ú–'h××"kƒc…›ñè&Ö…çŽ!ô³Ÿýì‹/¾xߊïN͘îd½½¶¼¼ £‡¹†îçYîÂó=Ûöñ9÷<‡ÃáÍŽÊ„¥Õ4’õÆšùñ@ ]ÌV›€ÄÀtmCЬËU×áÈqÜTb†@^Y¾ Âݱ�’r·ŒàeÛÙ¬\{©¡¶ÍÎ6�fÛ2-\Èlƒ};Ãɬ¡ÔáÊna%_˜æƒËÓÅf~~øÈˆšÏð{$IÐìíÕkµ…••p"‘Éç{ÇÆ¨6’rMìò2éùéœÜhúÚ¼°³˜Áõ‹3Ïc¬�{*4|ÑCµ</Çóèq�¶eÜlî Œ–&î–œê 5ÛŽK†.Á¿p:Cõù=p4  rxô!ÛÍוo»¿¹uAxŸQ¾zì\lôÔÑZ&+z= ^x�@ÿ@öά5}mldDQUšaàÒ³™tÖ&þõ/ŸË—ã¢/Ú�ך…ìµ…†÷Ç›µz¶™›�Á5È€áÕšE½îØŠ~OdÈ �k–�F7ss ¹Œ_oÁ\³‡!¢(æÑµ%lÓ´.—Ü„êRD ö›îþýt[üP¬¼ò VsÇe·ê»ðÜiÏ=÷ˆïÎʹ{¸�go·íœF£(¸?§ƒ<7ÛHºðì6�Ú?]óLàǽ„&À3f ƒ~{Þ⚮ժï: 9ó% anëŠåZ§IŠå´z¾¼tQ­¦-­E³ž6œ'd¨5Àrǵö–9oKZµJ«ÀçŒVÕP†Úl•SõÔm¥’q–¤Ôjªž¾ váßÔ€ÏeSznîvˆo�!Û$U·¬h(dÕj/¿ðBÓ4=^O1_(¤Ò¹L.—/ AÎ]�yõe›ôFN—‹Že¸=õ€¾S4£Ösúùÿgï=€ÜJ¯sA7ã"g s`3 ‡I3#iFJÖ(:H^�½ZÙOVYkïÖsÙU^Û»ûìª'[O–íÕ+•ö9­eYÖZ~’¼²,{¤‘äÉ3ä0 c³Ù9hä|/nö»ø‡¨9$»$ï!«  ïýïÎw¾óŸÿW_µZ³ÔóT+^ŒT™P’|œxMNH·ƒÅH²n,EŒ)Àß$o5J]V¼‡œ~ \/¯‚¼â"~ÀÅtFÇT¹\N\µX)©°ê ÇÞ³Ï?0ØÔ-…ø‚+èÎCM®^|\PÞqâ�£û÷KõúÜÔT¾Txñ•“O=5­XöpÆA[]-—Óé«ÏXšøg©-%®JÙy½^–‹éòêzX.¥ŒzSõŠ‘W„6J�Q o°ä–UD1\ÓHù�³nà#гãM)¿Œï3†OS¬6ºÑP�âÍa,€ý^ªÀñ¼e#-T©TLxÞPt]ÇÊ"µCº“@›ctGœ%$c¶�DϘð¼±ìî˜AiH6ËCØ3V©QGX×7ÕÈA 䡼‚'„Ò”ðW iF½£,Ö8¨xc÷è x°¨mœˆ²Zð¦&åb¢^J—€ €ºÿÕФÌ4­­À¨9VË÷ù/+Õ«¥ºƒT-Å/ƒe2vwC©¦VÊÏÿ ÏKqVk6™,¬®æR)¼.-/Ÿ?eÅâ¨Y5‹³ÎzÚ£ð^ÊîéÛ;¨ÖU›ë€;¶�u€ÍàèšTdAm¹eVp‹�~+¾|@Î'lj�²Ñäù‰2Ý0XÌr=³é7³‘ÐCÒeÏ\ô(ïðURS6+å<Ú÷nšsÔr‹í0uÖN\|ŠÕ¯>þóq‚�V�§üòl @·Z+—N=9àˆ…Ëš0j#ýý/Ÿ¾ð×_;£3½z=§¸t1=ù\-³`±ÑJaÑR^°×WlÕZ^då§x›¦Âi6ÐýšŠ4çR!ŽT3B«þ¦à2R‰µN¨£U0™ê…Dañ¼R6ȉÁa#˜<·› 6™‘ÛD*ÂvÑ ³A‡Íjµ­ï àÙÜ{ÞLdY~üñÇ———»�ªÞ'%�w ¡ArºÐ±avOž»Â}Ô¼~Du3x&™ÓIùÅ Ö* Zj€{‚‡ñ®0¨'¦"Í;ÞUÍÌ—V.S¬²ˆw¬+Í‹‚;fhürºº:]INª5#�I‹MRº”sóÍ€ƒ :¬­{DÆ!ÐvžáY6�†ƒ¾�‹qPR­Z¡ì¡Z1¼w÷°ûO¨¦² Å££ÁG>‹Fñß(’ár½ë¡cJU*¹Âžž(¨/h(Ë2ñk—{8Þ¿/Z^¹˜OË´àEO¨RQ)§…Všn18XÍÌ)ÕìkŒöùÃ^Ñ-²ÕJMâðü/ðlØ'zEºY/hz“C0­Œdc˜ å´\LAaÅUÞÛÆŒGÃÐà#Œ¬3º\– /©˜à=1»¿æ‘.•ÜTÍÁY:O�w.þ\Î(°AΡ™«~½�}J²‹ÔU ³¿r½í˜§¤;zý¬3á¹[ÜGäTîfó‰ì›b‰¢©é |#¶¦¬3Jƒn´�Ѭ‘ØÜK©ìÞ^SÃo,z¡ôÕô|-»n @unEf5”J¶iì3—Ašû¼ÏÞÙ¬Õ$–åHßÁÝ)Š.•Êj]òðMƒIKåZ>™KL óõجMÉâ|n¼ eæŽîë¥h#Šmee%ÖÓsl¸·6{u*]âýA ‡±ý�Ëz{ûmÛ;ÖoS—WçW({¤^}t±ŸñP oä¯WÒ“ÏI<¬VÆÓ¯P®Râš�iF#Q�×Kø1Ùo6;µL¨³@À -M=§ŠÌè‡,bÄÕäŠÍÆ8#£þÑ·ÕËÖî±1Ú�[ØýƒµÜ²ƒºöðûö²ûzü#•l&57aµÑÕbv žùí GŒ¢Î ñøàèhµRú¯ñ�o¾\±X©ÖÅË+gÿ¿ÜÜYqVN†˜lOÐ¥jº,×FùjºP(¥Ð¶*Ú:Åc eŒ¶ ‘ꥴ‘ØÄa¤ƒ¶ žb±ä¶Ó¤Ž[ûq›âã^$# ÅÙÔþ°«!åV¦Ï•Ó˼ÃÏp‚à83/_¹|ñð°ÏétÎÎÎÆb1šaGû{=•ôåé9*V*ÀxÅ  ŒùýÍäµ+…tAp‡•j¶ššu®W2­âNšfì/6µ:m÷Xœ½šUÐ-6«VåY ·pº\°ZÌ‘Ⱥ“chd±P–¢«F0¶�¢A=ÃL•KF:0†+.�§y®i±2zuadD:úžG·{yü¢+<,tŽ`tæÌ‹úkÿþÉ÷¾#‰Ž]ÏUÊuUûôŸž¬2¶F:~ñºÎÚX7çðÙýý‚; ‚h¥™ØÑŸC@VK³a÷ÆŒ“í{Tæb5Å(‘ikÔʦªŠn¥‹ —oú2Š£y¸É¸JU)¯úGÞ>ø„»ç \LÂŽAÏP,�ŸÅÄd~á‚ß_{ø½ûØßhRZ]Í%â¾Þ<¶ÖhJ‹×ÞB~úÝ�Ò,‡ÅS*•tMùþ 'ÿò; ‹R˜g™Z~ ´{åÜ·èzf$bðZ¢P“d†y½Î´áÐæ8žçIÑÃvê.#ѦnKV™Ð¾wÇÞ8‘b< &•uUbZ‡Ùìþgt/#zac‰ãà™ÕFUÓ³0ª¬£ÕË6šQÊô#úl¹«cé2Ü °™˜YÀær¹|�•|ÞÁJì*÷ÖeM¹e„îžQÆ/..b…šð¼±Gkw@2ioñ 2Œz’öŠJ–ìC¹k-"ÖªÅãn芑-²Ù0rpÖ«PúŽÈÖá$ÇdE¯QÚø9Â{tƒUóÁ}�ö>¥_\¾ EjiÒªIvžj»ƒÐBŸÏש&Høtñ½Gƒnžj$Æsñ)Á× ¼ÌªÿúÌéÌÒø`O “É®¬¬$‰JµhÊ~ðoñ|¥AÛ-VŠbEN1Ðã öGFúö’ bx‡¥uä·•ÿ2 sÅöÛ(N*$jÙyÖî¶1öï«Ù<ù’T,÷-p\zÀ­ñh´A»U°ð=OüšôíF¾3K³œ˜|}F\´Õ¦ÔU'›gk¯ìyøÁààˆ­åŠWeI®Ö]áPµZ¥¦O|¿ÏÃRÃñXl``€¶Y¿ðgõ·ß�©Y=V½V\¾œ¸üýZüR�«{\BÓbhR àš=ô˲@wâ�0¢Õ,ÍÕ*#Fø±âÒ¥ÀÞwzúäœ�z1iièîþ#4'êõš®ÔZu�¥z1n]Y�j¨5 ™Åj”s„FÕZ½'§&]¶’ª¨$391ø0+€ÍFý±VN|Drf™rCyüñÇLuÏûM»Ê[ÃÐLx¾îÞísÏ.—ë†ñ´¤6"¡G¤ðÉÈAŽüÒ cÕp »àé±ûzÁžåBÜfcÔjD™±»ëå´+<*øûŒ8f¹¬ÕŠª\–r‹±Ã?î<Ž7¡ôË«SEgx�RN³ÕY–aÛ|" nXzü TæB©\¶sÌØp£—â³—mÎhpè8¹4µ œ~×C{÷ïß …¢ÑhÿÀàp,rx ¯ê|ÿ~»ËÁpe0ÑÍñ‘=ѯ”¾šK(>`Ñëh9x¤¡£4 Û:—<¯ÖŠdÝh¹Òí ©ØgAôõ:‚#Þ�£¼+yàýr)Å‚\Ò4@N*¬8¢cªª+ùé±¥÷ æ:àîZ¾|AW‡ß/•JŠjQäÊ`æÊ'=�ÅVâñ¡¡!£þnµü'ÿô7_I¼‡ÄüÂùÔÄ3!‡åèžPÀçªVk¤9�Mª$­qQ¢¯v³]×`zýž«´r%zèœËh?pˆ[Ë.ÁŠ‚a£h‹‘_MÖäJié´wè!<�=ÐK Cl$m4­ùI¯‘—�%A ¸L„l6k¹žô†üjÊÍÈüü<†²K\ÜæÙª{ž@·� &‡Ãù–¡˜¶|m&™£}¡ÜÂTp`”b(]mÔkRS—ív)sí™rbJ·8ìþ!gx´Éì0âÌ-Ö–£Þ‰‡R¥68öNà™Á³­–†ZZã '¿QiC,¬Œ×ò+�râaí9îG¬ëÔ¥qݶ6­žXPSõéúÒ÷„{ø'ñw óóÁ€ïäkWÿÓ_Ÿš/;Ãÿ¤Î<û—.m塆Â~WÓ(õz¸¯½%”Í ÛµËW“Œ¤ MÂ`¨Ü˜Fhºà)'&šÍû‘=°«8‡Ÿæ�F2N#››$úûA£�â¬àQ*¹Üì«ïâ•”“’›–7êd›É~3)�mòæ[�Z­Ö%ÔÊ<ú¼}âp8º$cýáž ÿÆ®‡]¼©ƒ¤”2 †ú€�ßY$‘¶6Ô†Åæê¯¤®¹¢ûl %ÞP¤Tûœó3Î+Ç Îj£U©gð6#!†+úàÅÅó�Ä«ŒV‹G$—åzAvÁaß�"Z�µ¾l Áª—Wæ&ÎYmÚ{v¶ræÜù°]qˆö@0¨µÒaFC9}îäÉÕR……ôô¸TH)Õ‚Õ¢úÃý�þä#Á°¥œŽWJªÅ*ØhxŒ rÎ@%5SŽ_å=QGx�áÎ,Þ˜Íj+.]€Íü†rÓÆÞ¹½2Á~øñÿåý‡Ž>Р˜Fkxv>Á‡G(ʪ5ùk㇔ô{�ìèᇧ¦¦çççžÏ¤“ÿòÂÄŸ~/Õp Ôs3ÙåkTâÅ~·zhÿDZ�FsÍS“p Ü$ù膺½mÑU:°ŸqÅŒ}q]• q#oŒ*×ÒsöÀÆ‹ÜåÕI¶EoeuÚF³6†£[b¥ÄÕÜÌI�iÊÚ°×fèë50ðet#�¦I"O4Æ\æ&.š²¡`�tO€Øšf˜ðÜQ‘·0?ˆþm<E‘€�QVA­èb¯ÅF¾Üf£¡Ê‚'&x{šìî9È9CšR€´5´:°Z©fñ<;0úhÈj6ò„¨ó? i¶M�7LÎ…6cr‡ÃáͯëFuê/ýõë Ïÿà_ÚëöG—óÚ¿|ï¹Õ¹K<ÝH¥3©TªP,:DqÔÍf'/Ô)*øÀƒÑÑ=îpÄ 1¼½VȆû#ýûöŽú½åjjºR4NxÅðxhOßa£òqC£X¡–[²{{ärª^Î8{ÉuE+Åû,×>~¤þãG�{O÷™ßÁ#{¼ÞgŸ}v³|¢è žç EÞŒ@ƒàMÑ\àá_{®—R€dãÜ9ÍiÌWË¢R4¹Lsb91^IÍàXW°?ÄàP%5m¥ÙznÁcICk#’L&�SvŠ’N§ÍÕ}›ÂqœyÍ„g“=8qbqq±R†ÝÚüþU«U’õ¢\.ã5´¢j¥(7gÏät¯”[2²ŽØ=J­@3<Í;1 ô­€³žþ£à�ŽÀ€q€§.'²g¾Ìèe0q´ Ôy³™D¹·è=€Ä'?ùIÀ^�ŸþÉ÷KÉñïÿË?Ю(/º%ß÷^¼à°–ö�ôâ^h|.Ÿ>6Ø#äâ³ÓÓçàBqy&66Œ{Tò¹ôÄ5}a~Ìãzë‘=;qôgÞÙÈ—ßã.¹õ„”™Sê’n¡_û×^?ÿ¡úÿúcÞ�>ñ`o,ØÖTõÕÉÉàÈpÜçóüþ•éé³/ŸrÉÒÇ <òàAº•£`vvvll¬R.|áËO}ñÛ3e�sûçÎüKTŸøÛÿû>ü“"é¬=ÏåË—„›•—&1Y”Í4î…Q¬êr�Žqõ=XŠ�ó.£övqùbhÿ»å’±! r ³Iô÷§Ø`Ò°«`ˆHùåRrÂ8ú?M5ä|+~-“1\¸,f‚™¶óŽL13?¹ÉÐv›Mx¶Äãñnp^1 s›G8a‚*)·DªUuMa�á†*;Â{œ‘½>Ì-Ù¬T½’qFÆêåt%y�Ü®Øh|U*€´9B£œ+di6*¿JYt¹^‡zÚ0Ë·q´©Zõz½ ‰›ÍltìàààÇ>ö±6Ë�8ñø‘½½?üç¿[^^ñ†TÆÿÜåìôµñF‚Ñ^(�Lœ6[O$|,ê«ÍMÌ®¬ i—�)�_Ö¥ƒÑÈ¡}ûb¡P±XòÒtOo__,|`8ú؃}?ñÖØá@I,�Û²—þãGúÈûÞî÷ù,×£¥Ò™LÂbñ‡BÍÖ[ŠªÊ¹\æìé·�ôº].»èd UÔUþ�?}ú…%gC6ò�/žü‡Ÿ~8ð7þÅáá¡5nÏ—^ziÃø¯6ñÚŒ@£Çð)n×4V Þ`½¾'4 0Ш¤g9‡Ÿ”Ä(­\6†Ãj‘ Ià±3¶¿–ž³ÚÀ·Ù™—U¹Œ,¯\*äò¥rt�L*[› ÷N ì0r|q×é�éÜÞ>é’- Ó¹}S6ËÎÛn°;xÂc¬ªšñ3¬Ïb£ÔJÎÛkägvG€¥•+øïî?l÷Ä,6«¥©³vo‹½…(NÌM>S¼üϘ'¸Î†g�-­,%äÓÍz�D�}øÃÞ»wïš�†‡‡êCïY¸zöù§þ;kwÒ,?¾PøÞž·ÖVýG£i™ž™Y‰Ç3åŠÈ3:Xô«¯Œú}o?~|Ïà àtê-´KÇã~Žóx½äš°K®NLJ5éÈ¡½Ø †®\¹Bâ¨Éf––ô ,QÕ´…ññê€ß?Ú×÷Øc�Û®]›€.s?|ùòþe)e ´jrê¤-uæs¿þ±ßü�_çÖb€g’}³ÀzB‰7T¸ää:úQªh¯ÄW\ºhœœŠî³4ôV K-¿Ì»£ùùÓ;›‘eÔ_Ë.¨R17s’¢ØF5“�O©­SmæBÞÙ¬ˆœ)÷’tCtð†`t_Ãó§?ýé矾àôŽoqI¹œè q¾~)¿Ds¢àíµ44µV¤9»^¯9£Æyèô©„�y�÷¥BÜJ1KOÖAÉ,o'¹µ×ûoÉ®³ßïß‚;BœNç/ýÒ/mN`äþ‰\ìK/ÞÏårh'äÌĄϞäâbòòå¿ÿØáÃåj5èpxÜn¯×Ûßß¿´¸ø›ŸýóïOèjƒÒ«©•óßÙç)}éOþˉw½k3SöÇ… 6t_ÁG¤†ã†»Ô$¸Ï¨8¢”{ßLjž•3ÿdT5PÕ�ºŸ¼³^Z•‹I#õ'™dä °9~îŸÄЈ.—–^û¶©[·U\.Ww�6e[ik—Åûž_~ùån P߀‡í(TPÎÌ»¢£öàHqù"ï §¡å¡ÎÒUÙ7ü°qʙᚚZ¯åÔj>7w&7ý2[¸ÊPVB‘EQ\Ïx3 °·¡Ú"éo@ mÉ�}üØÑrjî_ÿñ/Àþ¼}ؽ½yE˜LjNF>t`HnÙl’,g“ÉýÆúúèfs~b"“ÍÂh4†x>•N���ƒÄ?øàƒÐ¤–Vu,üŠf{{{ñ5|³|¶X,¦ÓÞfó¡#Gü�Öâôøøh?kXúwŸ9ý_þö¥UÛ`hô!KS_<õ�~kòk_þ«=cc[t/,€gžy¦³–åú®€ƒ;¯·QHõe(…VÞÅ"ØÀ˜Ý×g„pGöÂ`j6N+Òâ©àœ!ã)ŸjR¹VXfxGaþ”TL™ºu»×¦¹}?H7tïúÔ}¾öºÁhÂÚÛ¾¬6UâýýM]+.]‚Þç�!ÅP,ß*má\Aš˜V¡*U*1Î@}uœ.1GÄ糞ɮ3 pè¨6Paºÿò/ÿ²÷ºóyÃõð•¯|åÅ^ì ¥æ¯Äg/ó®�‘QÜ5tòræÒù‹}!. T¥”ËE{{1Nn§s¨¿Ÿ±Z®^¼xò…Õb¡¯·÷ð‘#�wI§Óh[›Ñz<‘çÿøK_™™›ûÐ;Û¿gO“¢`‘ÉŠRH$ÆFFÒ©Õ?ú›§ÿæ…J¾\óDGKÉ©ÅçþÛˆOî;áüØØ^Ÿ±�½±8Ž……w’}3 –Œ‡]C I7ðlà.UY�f¢oñ�<\Ë.°vïŽÑõ¾^ Í9ì¾^Gx¬UÚ›=…?¯®N¦§O™ZuÄÜË¿ç¥KN·›iIÞ0°nHfÙæ°~ÉÈIRuDöqN?ëð74E*¬XšðæZfÎîí±Ò¬&W ç»ÇÕó@åâ×hµ`iÅ'£Uè¥N¶‘»JQ0�€ˆÆ‹‘ªªŽ��}øÃÞ ´@j¿øÅ/>ýôÓ‚ ° ‹ÔZaiæŠ*ížÍ0‰õì+R%Ýsƒ­|¾\¡°_}õòøµ|µàðÍäÊš7"ØšQà;ŠOÌÎ΂4“ýòr±ðÃÓþm©–`=Ãï~ÏT2“X˜s œK‹¥’Ûf¹|má·ÿŸ“r!«.Û,ÍÂòxæÌ—�Žøûûû¬­¸ë^x¡§§ܬ{a¾<ÿü󤋶@èB¡@ò¥oÏÆoj•ëyX�Ùh®ššÿùÏ“„á– #­V‘is©ÔÂUKSCC[4¥n雕¢±ÀàÎé/ů®œûÖ@Hè»NךÚäé` \¹reqqñèÑ£m FŸœ;wÓþ=ïyÏ£�> =33CÊ}®ñ%€:£7ð>ìt¢OŽÒ’Ì!o|S“*’"÷jr9=ñ f£9¥’Õꕆ¦d&_hÅï˜ÌÌ÷ÕÇ 4íŒD"÷ÕA#Ìó.q°íLh1æöú¢I÷ƒt‰ƒdýùêv.·æ©ZÇmUŒq—ƒ4‰˜í’Æ�ó¯¿û»¿»Ý7*'§Ü=Xg°¸|‰áDU®8£ûÀÕ€põbÂ?òÖòÂI}é9ͶǗ$ *tÛÕ¨È2†šv:�mÒL’HŸ8qâ×ý×ÇZÑ΀¢X,6==�J¥Âá0¾ó�ï|çÏÿüω®ÙlFÕjÃп£*©™Äb-;ëÀ쾨•õ-ÏV.]t8¬ÞH°œÍ»#‹EÏ'âó—f/½<•ʪì˜ê:XÊÕª«‹‚�á"XH¬ÄFû- íÌ¿=ÿÒSÓ5½W«xW7L^~:~îŸöÄÄក$×a'­áÇí_aOÌÍÍ]ºt ÓõÚk¯Áε´Ò<òÈ#“““¹\ަ‘óTÄë@òž’1ô IƒP,Iݪ×g‚ͦkZè‘O²¼S*&xWÄÛ"(x¢j­PZ¾b£éjj"¿8±ó³”ØßxŒÝýÒÝÃYwÀÛ‡Y�%Œç…FÂü¼OR™vOÒV¨‚={ö¬IÄKÝòXnÀXÉP=„+t!HßÙ wžÿóþÏ;t/Mâ}ýª\’²ËÎÈ�6šaìnP4 uþÜW5kµQm‹}Èéæv’’ˆ‡ µ¡²åW~å§~ê§øŽôx´žž¬ù‰‰‰§žzêë_ÿ:>Ý,O5¹l©dd¢fYÎg·©¶Z·Ï_Ÿáã¥iI&ÏNæ&l�J)+_=»8;©•Õʵ�sy•bšwúíÁáš$Ƨf+™%»KÔë¥Z>ûì7_]\XgÔÚTäb‚á�+çþ9?õüÞ{o$@RŠB+­ÏÁÒ†OVôr΀ÕFK¹E¥šÇk  ¾ø C¿1Ð*�æ ‹a�f5ð>ð�_ýÕ_�oxS�oL»¿üË¿t¹\kPjý—K¥ÙÕ6X;¯+ªª ±Jr²^\<±†Zoh’�âÓ ùÚ©³ù¢ÓÞóV1ØGѼµå‘/%®Õ$iŽfyÞ×#)®éW^ºôo_�™�5* vŠf•jNÊ.&.~·ž¾v°Ï ú-¼$AÔPî$1h!÷ŸøÄ†)YáÇŽÛ»wïÌÌ °œ”v¯Øv^ÏÎëÓ6K1Ÿv=Æ èv]«—1R«—ŸÖêÕjòjjò…]™¢$¾d�*'üwiXèÍX$Ý£µ0C° w¸òæ'©Ž!†¸'S¸cµvÏìÝ0ñÖáù&-2RM“Áî€ w3H@Wv›*!i+vÒDUjyKCe�AµVô ½Åîï‡i„–s ÖÌ¥vÍ`K+c68ñ†= P�E’ã7~ã‰'žØ"s䥗^ºzõêÖ)ƈù0g k’TWê´ZªW M{¤¡J–¦Å3pØîëgŒr[šs3b¨°xèÁ»ajXñ…Jjβ¡ÍVK%9››½P)Tu›ßk()¿‚'M�ÿ 7{Æfi†Ø¢�—1EqG2Q7„ÒN%…ßõ®wm˜ �H8~üñÇñâÌ™3¸àf²¯yã ÍF“õx|º‘b©/ů–/©ÕLiñŒ*W»Gq´ùYÝ÷’ÇÃ#¬{ö¿H’Ÿm½&󆺑€4îN·ä^2ÅH]×î¡Î†Ü <¿Ùsºd×í3Ÿù Z°+f)&_­VëÂ�‡]ÉIäi¥I·ŽÚæœÑýkç=ÑZrÜš»b£ÞˆÙæy>l6}ñ>,ú?ú£?ÚìôTç7¿ò•¯@wo†ôm Ý$‰×¤8&/.®Q-¤«ƒ¢¹âÒZpr³¡)•ŒèïgÄ@% »Æ#¸äbÒ(¯Î¤&NU²ÎÕgXœÀ;ƒ°HÁ™�|±²:‹ç X½ŸÕF‘Ý_2EAAØ0‰ig;¡»Á�·8 MÛ¡C‡`^¾|y »ÏX,߸£Õª¨M]ˆ(•´V+—ÎççÏqN¿’]È/_Ý•)zÃmHâ*«V«x–{@ƒ{½Þ|>ßmû_Û�"7tž·M±»%þ÷f|–] OȬ—[¸Ð-à±Â°Î¡¦‰OŒÄÔl·€»ºÓ�ǶF¬m’x<.¥—šºZ\¹’™|Ábµ—/Õ ËÀ©N£ÁãñlaU K�9â÷ûox»B¡°ºººóÖof›a¤»Ýn˜˜„“q¤Më@�÷5–«ù8P9qþ;Ùé—ÉÑ/àðU sî¡Õk—_ýçJfiéÜ÷³ s´=&Gl ·ÑnPIN®œý–THм3l�» ®LÎM‘c�˜*Ð;Éd�¶Y‚Ëõ-ùÉÉÉ›éjpè-ü ¸ÉúÒÖŒFIn½f£YÁÓƒÆ×rËöÀ€œ[L^{q·¦èM2 q‚NÜ¡üº "w…`°`{u›…±E¸Æå›×áä  –Ì9»YÈŠë*D §ª6ú[x¶Ûy0w™™™!hä;þ´ vXi˜CàCÝ67’�âêµjz–µûÒÏ.¾ôeVôñ¢Ûji¶U-ñsla‡¡Wßþö·ß̽¦§§¡ò¶Ž6×j5rzÍ`1V 7Ô㥤%x)NLM<»ðòß©RQ×)·TNLTRSªT.&—ÒS*™´‘ÓƒnÓ5­^¥X1}íùôÄsÃiªdr}A{ à›k<$f ´Å69–8ñÍ©ƒƒƒk®¶fÀ êÄÊjaí.в³§Zc¦âžÚÅYú¦¼;m ^¯×ÉÆ ”ø]q`7‹¡µ]¸ÿµ3FÉ›#2ÊbXÞ§¡oï–'Eƒ»Ê§Ý’a-»P¹SχKa˜IM\ôFzlllMpùMJ0lŸóÁ5»•;{ì³ZÝ� E)¿Âò"%8õz•<ÊêyFÉ‘\ž˜¾°™\.×f/0p>ŸïSŸúÔÍl'ûÛßž››ë4D:/ lÎårè„ͪJ“C0[[SÍVîþâ¿_“+ùÙWu­Â܆yá� žç 8BCõR ¼S“K ¡x‘_8#çW»Ä•&öE6Iµ¨õ¨I({±X$'•;[ÒÙæ|>ÿØc�ÝP+ᛸÑéÓ§7ãÐxd|„«]¿—±¸èØ[róg�Òé¹ä¥ïî®:»�-!âýÌg>CÎt†B¡.ÜŸ0“*éÝ Ì;v;¥ÚY8äœÒ.Æm&Ä�ÓµÕÐ7;×þæàÙn·oÇ)1Â]ˆ ØLr;�‚h§SÁØ“x“œê!GˆêÄ#ÆïÝ’^O·»Úªš]°Q´àë3 ¡–¤´7RmoFUÞö¶·½ãï¸ý�o|†á†ì™à>Ý›-×ú¼>ÐM5_ªH²,¸Â‚7 ŠÌ¶m£ý#X-V£Þb½Ê9C¬ÃÏ{Œ ¦«—ŸÎN½Œùe³Q UÎL½uèN—ŠD’¤ÍêXcÌ­êlvç—aÿíÛ·ï†ûî–VEÂüà[¯ÌzK^¿W³Y¨Ôår¶–žÎM¾Õ·»ØpûꌬnŒ#qŠŸºe‡C‘×·êsŸûI@Û͉8ˆ p»»âNépÿK¶/!{÷î½5®u§$صÀl¹ ¼¡uH½Ù1Ø™‡$7"€Ý¾)É�жÊI�“Þ¿}JÛZ ã&E.®Â¼AÿÙÊs<û:6à ڬXd[eÿâ/þb8¾áõ‰àyãm•6C9nvv‹|L¶%¿‘‹Tk9ÎÔÕ:0˜b¸râ*à™±»A7uUâ\¡¦¦TW§åBÂÒlðî°3< z­T2ÕäOé¥r)Ÿ/@å­áÇ7DèNxÆÜÊzë[ßz3ð|åÊ•x<¾ÅFnÑÎÚ�y](Õ0/äôt�°{2::zÇ“ëµ×5°™Øß$¿)ÈÍ-»ÍÞ”x½^r¨÷÷~ï÷ÖëBÙî¤ßèù;�J5J†˜ V:ÖÝvskt×þá’e ÎÖý£L|KFÛ½ x†:ÞÐ?nÊ­­ºh4 pÚõ–HŒÎ6(‘V9–‚À, …B›�"t6 þüÏÿüÍlœ¿òÊ+'Ožì¼Ñ5Ä� LÚÂ?L¾„ \”êZ±*³Ž�RN¡­VJðÄhÞYMÏjJÍFžvM*–.˜í¾~¹´jlB7›å¤±9­WS~gkå]!ÁÆ@è-N=á'„nošt~Š•ÿÄOÜLp ˆtÂfz–eY$™î!7X¹^Íͽ¶»ƒ4i»MpâîÂ�2™ ñ„—Ù&„N!‹aªÜÂ-Hx#&*IckyMÈ}ï ›žlùm÷áŽmE¯vo““d§ƒ—Œ2~о5û «˜xXÉ(þ‰qp¹Q7;Íô&B“°~Ì´ìwP–——»¢ét¹Tòɲq›,›-¾ü~ôÑG·8õÛ)$„Šä7hkÁÝb3HsûFd›V‰/Vi;ï æçÏöYŸ!˜¼@¿�¬Ùûo·�ly¶[»Æ�)Ôy‹»ÑˆßÖ-˜/í.Ú™QîœT�G$ð˜Pí_É’$Ù2È�.’ œŒxóz!òeR¶äžÄ¦û·Þó®{3º'ažÇcw8\‚`‡�ÓúÆ…‘ŃUñ ¿ð �@à†—ýÖ·¾õ�o||¥ÚèY,Bò+”ÂÖØ\*•:±™Ü]SÕB±BÙ}ŽÈž†®–V®Øh¼¹©+Fm€ÍZ-6½^µÒ,E³ÕÌœ”_¦9ÑF1Åø¸­žwŠœÕjkß…pè5{Ì?b½¶Lr²= -@êi¢ñäõÜÜÜ¡C‡:k~l(àããã‹‹‹›ù §ˆ#�¸Y.ì”ÒÜL`‘tmš‘æu±txË;ß¼—|lÛúDªªv§ã·�Ô9Êí×÷Ò@“ü¾›�#¿Yx¾W³÷í–7£«Îõ;�À-ñ¾ƒع±Èyè±±±ŸýÙŸÝâd°¥åýã?þão~ó›bK€OÄ‹E¼—™LfM‚ÏõØŒï¬q‰Ý†–¬¢5Á)††› �Ü®È>ÁÛK³ö†ZçÝ10@’–›³3¯Ð¬Ð®å¥BÂÁ4h æE³M…É)‹­3H í@2rãAì-Ás¥Óéçž{.‰Ü�CÃ{á…6 F#±ëP”¶–‰�Ý ¨�'°¹TwWqow³Ne7`ÁyºnöÜó}Xelû–Ä®d#ÙºIíBrmçó¸"+Ü1o�'arrò·~ë·ž}öY’=›˜½ä©�O€Ÿ- c�X°Nlœ5:”,�ÇÃ9¤1’qVÊ͹BÅø©°b±Úšq]Å£pžÝÊ Æ9ŒèÛµì#¸�nOÀïÇ-@ãÉ!oR¸vg"‘Ø"?ƒf§ISۜǛ€±?øƒ?øÒ—¾´µ/„œú#þí5áî$WOûv[›>;#woÄå½D�·Õ�±Ùq SvR¶N‡|S8qÿÔÛ™U×mu`Ün7�¯sãpØöÙ’÷A©$ ‰x1???::ºaf¨ï}ï{Ÿÿüç …æÌfz�¶áÖ5î øq|ãÓ†V“UIµ|n»]]NåÊMÆÕÔëÃ75EðÄDÿ@53ßÔ5ÃÆ Yàfqù²¥©Ó¼Ój£hNTª9\ï{¸†(0¼ÀËu½PUY«Fµ’˜]«Õ6ó·÷é†ÏKò�ž?þÚµk‡"ÉyõÕW¿úÕ¯¢?ÏP¸�öQÁ$#f»·±ÖÖ×®ÙáùpoW£º+ŒøíÎ�zW®ßó£¼5°Þ,�3òN�GW•I!âóù:‘‰À30€D¼Ê˜C Í###À�Èd2yúôi0ÂγUÝ¿ø‹¿–¼Ùã“ÊÐëmF‚Í€%‚Í`· |Sè-S¡ºEÈÊr­ÚljÙRÍbcª6,� �bpˆµ»åB¢œšÑ•š&—yW˜uë¥Õ†V— FB)»¤«uÑZ‘êÊJ¦ZÔE� 6…�U)ÒÍ(娲™BoH^ñ©Ýn߬Ñæååå_|±¯¯/‹uöÉ×¾öµï~÷»\K�( À˜d '�¼ººÚYõ™tÞÜÅùÐ͇Dï!&£Ù÷ü(oíÀ¸1‹%wðàA¼377{eff¦½ÑNüä0k€ô@h|w,‹�¡ò¤çaí®ƒÇ\ï»kÄow­eXÞf,Ñ®có‘#G‰ÄmÁ3´iJß©U·E�Þ. c�/S$°=66ûl} I%qíÚµ©©©|>ÿ…/|„o ~ÙI‘ñ“ œ. $? Te³‚æJV7»ï§iÏ@S¯—ãã•Ô¬�â4SË­° ×ˆsEhN¤Þ¬î=Ä»B4ïàÝQšä|\Wªù…×4¹B±B-»ÍØÝÐG¢·‡µ{ªÜÚÓÖ(ÎÁF�V+%‹”¥,ͰhZH2Ð#‰Ø‚U�.ÚzÓ�|óôéÓ+++xðf¹×gÇ¥Èár˜5$KÆOÚ°[óÄÜÉêŽݣoÆ캀,--Ý`&lýñ‰'æççÍ®¼#ØLb€»°m„Ïu.Wrê÷رcíd°rb¨òT*õÍo~“„MÝ̽€$5 ÀL:„ÔY±6u­i�þÂÀOü^5³(å–mc–ÝxQX|M­äÐŽVAIUðD5©È.»¯¿–[Ä›Àõ¦®Þ^Öá$WS³vÿEsõR×Àµš¼1ÿÈ[qMµV¬¬Nr¢×?ü–è#çûÞ^X8c•2 ‹•çÆ‚‹v’œðdïù†1}„÷Àj¹xñbooï†pÞ>BÒ¥¡;»Ž$~�5°[ÉØIÌ»‹Šb»w�Ÿ|òɉ‰ žww”oÆ;ruJdn�Ü)‹øw~çwž}öÙî„gmçr<úûû׬á5 �_É™æ›ÌR‚Ë&“I0K 2QC䬑‡µ²Å»'öã>þ3¥å« ïv÷x�»÷ +¶O.­‚CqX¬½ÑÀ„×(šWåŠ+º4ºšž{n¡_£¿Ê:ü«…ýõJšbíJ%׃.­ ¾Þ�·ýOîž¼}‡ñ]Î î·�b�82÷°EV—_c)#¤¬MñÁcÀeÉ3Š¢ˆG¸ad5y(ôê†ØÜù+´p<_S{of³ÙÝJImjíÝ•Øÿšžž6-°]§j73Ô ×ªéÙ¾#ã2ºui„]—˵Æ/�Aµd³ä$íׄoM+ÉqjàÜÂÂ&%¡ÚoCYš†>н}ø£j §¯>Ç»"œ+¨T³œèkhJzâYM®—/hY‡¯å²9gÀJ1ÕÔŒÝ×Lj>ܤ' ¾~Фü²V/S4‹;Ô2óo俤žwGyOT.%ñ�Ëãyg°¸|Q ùö½�ìBSz•T![ãÄŒ ÉI6ŒÍÞ�€úýþ-ªR¶%þ£ ÂZç¾êù|~Wb§a‚˜Š{w…ÇãÙnÛ©tbÊX`[í¥ñÕê*ô½óçCûÒWXY�ñ ?†šÒ5Y—Ë¥øU@)Ð:3ù¼xn6)†k¡uÅîëÕêUóvÅöàÍ»»·E¯ËÕôLqéÍ;A¦¥b’½àÍ â6Šiåèö¡õ¢`¯Vó†ÓÛÛ£×kµìRiå’\É4…çQÓWhÊfÐû³v ©€¹…ÀÀ3ú_Ûzá"`Ï�ɇÑó Î»’PóÉ'Ÿ7ì.’ªPä¼€ÙÛ»…ÍP Ї· Ï;àc¹ú7‹uCeª­“¦óL@edddëŒ6„l%“É-6žqA3Áë'¦:pÛðŽ~ðs¾Ñ·«R±š™Vª9ðÚz9­T²©kÏ5uÝFsøµ´|ÉÝw¤©)WÀ¥XQ/Óht¹U´J” IZp´"ºC ¾Jµ@Ñœ#<ª)5ðìz)m@;ÍùGߦI¥üÜ|„{É¥¤Z+¦'žcÅ87-¸xw¸Q¯º¢{]{N4í¡Úò9Úª[¬¶Îù yWHÍŒÍLh[,¢œkl±%Lö0_ªÕêÌÌÌ®Ì�©©)ÓßEEÑ××wk…¹Þ”˜1Û»( ü©M«M�Û°ßÍQ¼}[‰$¬èþ¦f2™N'´dë•L8â$0¶¸¸ìYóV `TjDíÿðu„†‹ËÁ_ƒ{§XÞ3xÜ;`÷÷•W§”r¬×È6ªÖÑËðÃQœçåh•pâÖ‹«Z½Â»"ƪÌ"Þ©¤f€»®È-8ÕZPÎ9ƒj-öŒ4+�~ËÓœˆÿãfSCÃÎÈ>@{-»È¹Âœ+$ç£ÿÏã¿]Õ¹¦^_£IÉQoRìrÃ."gc¶è½vü6)zØéÉØ­9pÕà»÷ÖÈœ‘ ƒæï–@W¼Ù ?›ÙkÛ·äÀŸH±³î—ZKØÈ²Lâ“Ûù¥7\ÒÄÓKeí®¶ë‚�æææÖ'³6u¥Á8ßö¿þ$èo)~µ^Îzú�2‚K­•š ÍJ1õrÆîëó =$ÅÀ0Í9=ýGÀ°­V H¬É%šYÁ ăååËÅ¥ @b¹ÏL½äÇßâ"͆¢ÌØ=õRŠbÞA+º*å–�‘110Ú­É 1 Ekiâ"†ÛÜÛÇnÐn].S‚·ç#Ök·®Ó§ÉdruuµýàÖRqCnÝîOÒÃè%RÊ/v€?m(� àLÙaEcng\•Û½±mÊÞ‘›ßr~ã¯6|w»ÞÝ'KîîÚãi§ð6ƒùa%ûý~òfû¡ÚS o®¬¬\½z5›Í‚—[R½.xMrUþ·n꺦T‚óøÿ}äãJi¤V©æ}ƒÇ[.b›RIó®0`Ô€]¯dð&`R“ ŽðÞjf¶¡ÕiÁ¥Õ œ|=õRšæk·�Ç�}'R4'—V�²…ÅóF^n#5h…5ŽJë€j0ï �…;‚#ªd :€_¯Ã„j‚Ž—–/9Ã{ðW[U.ã˸š«ç6t0»4Ѭ­Úš*ž©½M’·@Èá+º‚dY)´6ŠÃáXdGú“ úÌÌÌ•+WÐáÄÐÁ¥vËׂq7—ü®( †av,L»ò�);<Ê‚ Ü‚mDmv9Ór;ƒÁq\fÛZ€©¢(º\.g€  ÐÒé}%ÀœH$.\¸°°°@b�Ûu ¡ß¡hHp‰I¶(ko+l�ÛÿQßñOØ¡šžN]ý÷†®FµÑ,+Ð\ haá5WÏŠåã””^/§8gˆÝr!©TsFö0N²ªÆJ%'xcFþíÒ*k÷‚ãŠ�\P*¬€(;#{ †à²{z¤ü�dØj »A�K+Wܽ‡p9ãHt9e£]•¡Q£Å-žíÛàô•Õ)¥’u�ž¨ÓžíTŠq[£n£^iô:Jï�Îò\@襥%#Òm?©"wîܹééiòMtú ¶În¹[Ì%¿[¤jÇŒxL»N)Ý3ppkÞ‘ ày»‹ŒÞ¼ù.í@(h ÉáEݠȘX�@€„Aµ�8ÔØîôèÏ6ITiÀ3 ¯iÓ=û„?CùFßA1(¯\L4›ºÕb.J…8ðÑÆ�óµì¢Ýßω~ã¼½&KÙ%|$ø�jÊVŠ)''ñ«32F± ]W%)¿  B7u èn£h]¯ËŤ¢høw¯ ±Évìvf‰ª]�¬ñ[(Ùžw&¾ßtUu¡`<ÚÉ¥Û1'À�«W¯ÎÏÏwóf�€°Y­u­YPX=pÔ½ÿCî¾Ã–¦nÀ0Å)YÑëî}°^Í8Ãc­›ùZf.;ýJ½’±{{€ª–ÉÍÏŸ|}l+ëûòs¯ÚXN R4§T³dóX*$�ÊÏ.­–V.¹ lfx]©É…#íZnÑî�Ñœ_Ãu Ó�]±†ñ˜W¤ôµçJ ß„­€öèõ*çð žž–1á”ó+Z½Š¦ÂÚ`D¯ª54.X®)@tÚª“ÂÏ[tAnÒèatæ¥K—ðWí#àísá»5îÄóa®ß{[Q˜•Nv…7ßN°çð l&Ks,߬Ÿ Àv·³’½’$kûi1ÃÀ˜‰vk`&›[•J¥\Ì4·E '£J«•ä5M.Kù•†¦:£¼ÓHx \l¨uÖácìn¥V°›¾4 P.$Á€åb<=ñœá©Î¯€F׋‰jfžbì¼+ÔB_ ìd~¼æœþV"O+ç€+µ\)~U­�ϬÍ‚}ĨãÊ ]u„FJññRrB.ÄóógÕjÎÕûï‰qήœv÷=hµXÀ@hpzOÿ1Ý(O¹œ¹öüêÕÂÈ€n-•‹•bZWëè1,™­ÕaÒÀæD"�yÒ&Í$9ÞÜ]�‹¹ØwRkï|.³ÒÉ®ÀÁmFüQ›YÓÇŽËd2梽ÉõÜÚ·oßÊÊÊ=ð8¥R ðLv ÛîkËæyÄÚ1Þ$e¦ ˆ`© ^›hèùz)MQ¬*ҵ쀌Ö@}ÖNób5»\Y�dzú�hrˆË»£¬èQ*9†wâÚ‚' NLqv0rU*ÕK)�`ÎT*¼™¶Òl‹(»tUƒC„ŽÓœÀÚ½‚¯×¸”®ÖŒ�±¥ ¢¿ßÈJÖlà z½F .ßÐCõJšs…5¹Ôã£F‰I£ÚÕ®Lsb99‘žø÷ìôËZ½BÑLyu¢0{º²:]+Ñ]0_Ⱦ2ɺÅ.RMÏ®Ž__¯—3J-ÄÖ¥Ruuª˜šÞð1£Ñ(z‰oÉz79)ƒšL¼&õ4w7ÿqù˜ |g†~W†ÛܲÜIóëNÙ»Ö›ù¦ +0×ðš‘ ó»UûoÇpÚáp�=iB” S|½ÒT½Æ|“nX{ÞÑÇ4]må}ý`Òj f30öGp,° €´Ñœ\ˆ;Â##‚òæ^s„Gk™#˜ËáÇd#O§G.¦ŠË—í�~†w·2„VKñqÁ·Ñl«*FÜW £ÕV†üƒ%ã#XîÞär ï>0Ì:‚6ŠèÚZdÚ++&- ³Å¹Âøˆbí µ^4êdõÔSÄ´a0Âñ¥¬™=DG“Ø »Ý¾M¡ð¦l‡pçv»  -ŸÏÌv@DEàñ£ÜÕCÜe‚ÊëîIçGíÊ]ÇÇljÝݹ}uüøq(P(bBtÚK¢³–pû£Îb|~J—r¹\<ϽLô¹©YÝö®³ßÉÄ´ÂØU«UüäZ²™ �9€¿‚V(jµ^“ȈYÎ|[…ô6Yןþô§OŸ>Mrš’¥ÚýÜšñD“@{x<žJ¥BL óøF[°ŽÚÑE½½½Dµ¶ûínq„ï)ÐDynnŽÝÓN[÷4åìÙ³D™MÛÈÝ)írâø Û~½á7Ñ˸N6›ÝÅZ@¦ÜAÉd2àdF%é–í…wÀcâñ8©QÝ©ÈkÌ¥ÅÅEÌbÌ*ø“:爛‰-Õ^•Ä绊¤Å]cXï°‚n Ùb$ÛÉ0 ð@0Òé´9Ž[Ëòò2,˜6™>zô(Æ—ôg»ðÝÎñ†£Ì´qà§×ë%À(�é΃pVsn™rwI0dYkŒ¸C,­ìXlx“¸a )`“aÕµé^!`ù™½×m‚! …B€phvRa³=¬›9K‰ÏŒÔeY¯Ž7%"-ßvÂe�+HÞûÞ÷~ýë_7ÇbûäÉ'Ÿ|úé§± I¶2v[„ý“™Ð.$³~(·p¤¯q£â›0Hš»n³Ü„gSî>ñx< 80�‰²†Œu„æyÀL3f,osWe<6å$[® ÁO 4îz?$)ª†÷º„ß%ØïÁ†ÍT.—Iµ!Œò†¾.’ÌC¬ª*‰8¾W]¤&<›r·J h‡s[®Ÿö!ïÏ$ÞÁ"¿ý¢è¦˜bŠ)&<›bÊ›—ËE6º^ŸÐ-ò³Àl&–1ÅSLx6Å”]§ÓIj¡›áµ¦˜bŠ)¦˜bŠ)¦˜bŠ)¦˜bŠ)¦˜bŠ)¦˜bŠ)¦˜²ó²YÃHÞ|’bë#k¦Üòä“O.,,�$yäÜá®÷z½ä°#IŒ@¼ñÓív›iãL1åö%“||d‰‘$$$'¹™›ï.�v³+îÙ• Ak¤�‘j}Û Ab±˜9L¦˜r;ÒYÉjýòw8fu;{6¹²)»0­)jëܹ·œÚÓçóaJ“<½¤DGoo¯™�¬SÀœHZ7ò}e‚Û k·ÛII\ŽãÐíÛM^1ó1¬[¤ý:tèP"‘0GÇSLùÞ|CÍòf¯éñx òÖ'ˆîÌØüä“OÞÏÝxX“]¹Sè–˜“óŽcäú‚@�}ŽI»M¼ykßÙHê$i�@v¬sÔL1å>‡Ã±™·­Sm½Y.~3ŽzÒ÷-Nܰ‹Hu ãÇ�›³ôöÅétÞÌ´$}~Çï~Ã%Ö¾)u]Ì-NSL¹ße=]½ Á‰––ß&¼×ë}SØü¦ÔÖvhÃ.’ÞüÎ~Ó”7 �[XNwÜÛbÚÛíöÿ¿½«É­j‡Á•Þ�x©¢ºHÜA�Ý!`ÝKc˜ °$F ÿ}ŸjaåÙŽ�““äžÛªËáü$Žÿí8`±™xž0a‚ì€àxöìÙÅ“ÂÿJCMvÆ·;)HG‹?zô¨ëŠSÂ{.Ê„ <¸»»În‘ïÔÍtPÝÙï€Þ™¸M¸¼¼Ô  ?FAoÎÓO]t*—&9Æ9C÷¬¡ÿ¸<ëìv;:îíÉ“'�?® N®›å åq¹…ƃ¿Ó©†×¯_Ó¹Š@Pq~~~uuåàcÚñ—0�ûãëÅ%¸4Í‘Æò~¿'j¡‡>ææOš=¥Fßæ�þÞ-<ÎË�•e)í…/..ðu<ò×=àwbµl\__‹‹ 6úP×I­f(�ÆL§Xú‹HÕû*~«‹Ÿª™˜ñ¹ŠAšéóCñr¼tTOŸ>}¨ªS£•å%+Ò àJ1ëűAñ;¼�Só$¬�¯ãÙÈ×çX‡pH=sRÔæÆh?2sØ„¾.†Ór§\U”°9Z³¾¿:™ÒpT=8N«46Dô¾j}3¿ÐßSàU«8Œc²Ì¦TU�툆źPL{MбÂiXO�- ¦£¶È½‹˜7‰¦}¤.´›Îë€ï² $¾îÓ§éÁÔ±"GÎ�è¿ÿ�˜Ä Ý߸z®[àÖ_nŒªG¾ ‚¡0TÿxáápXòg‡aÄ Ú5†ëDMdsT$ÐO¨Š™B§7ˆÿÕ�³Õ²h¾�™£‹ä!¸Õ§dzaQiêV2}èÈž z\pűt3/C§M‡¥Fhd¨&§Ù<Åñfµ•qP:$x´Z£Wk”œ†ö­–”Ö„(ã*6WÄ[´.Á}kÇÊè§fYÿuÕ¸-˜ÁÕÄI¢¦(À¬yÄ›‡Åº¡´|õ,&.¦ 3âœ]ŠsÍJV]´xr®ÿi€&íÇ8jc@Ŭ9ž�øôkl“4Ó‹NuOÛˆMPX¯ñÕ*è0ò¡º§âS‹Ä3š|:¾=ÌÜeÎoˆ„ʃ�i£“Aæ ‚C0C#C]Tç9Œ9×ÄùÁº�"+gd<Ö·l $8ϦBÛÙ~]±+2M&^]]Qòëé¸m:'o|ÂÕÄA)4ª4Ñ�×U[¬!VZT\7e½S8\¨Iu›ø±ßﻛЮ¦t žºT:D„K•úÙVVˆ)ÿH`LˆBO0RÙ¡Gâs;­WúÃwÍ:,.r)õÝieI¦¯¡[çNNìåtª®´§å¦™aªÞ&8­±³X3TÀd‰�Ñý)ÚÅì(Žý×oÐ æÕ«W+U&gŽgÚd1"çÂ],X Ö4…³g¿Ûím�—ЂRI‘�™¤X *0UðŽÿëg™=MMw”Øjhæ2EÇñuÈ·¡š‡¹|{ÂÌYnóô�¨¸àÓxhEjz ‚è+8ª^¾|©1’7Y“¼½½Õ�§W´ë,P¡-›ø‚jé÷ z#B ¨Ðî‚©¢RûR{çÇÚ�¥·3™6­ËÓûƒÅ’ ]Xä½-&8s…~‹BUkèaÍd’S„˜!}¹HK;Uœ¾ªV°5ѱ°Ú’èSZÑô­¥¤¦­‘Æ�®ÁÑ÷lsÏ>¤ªÏ¥>Yk»¤‡Û dê’MåNÀ É0ª¡ˆ}©éÊ©k­à�º‹'AK‘‚ ]j¤?ª5Џ²�’ŽÅн˜�Ϭö.€ÉHc»H4‘èJ%MlÃr¥âÓ~yÏ¥šò…àªÞí)Y‹DA·'PÅ­Õs:hM%Î PÏ:ù¡ƒQtnÌÈp\+åaŽ®?ÄGr8î×c<ººÊ\M-�K·ù°ÎcÓ,U$šÀX,ú‰·Ü=ñr!­KÍJÜ¿¨0„s¬}-µ½õ ¨D¨¨ÚDfíÁy©A £€ÃöYåê¿üªAù¦(#\ 9ÖJ”E„¼¶!úí¿íf^*ÂE�RîÁHöH‹¡­µ¡ç;2–¨K7M ëXs kÁ©N×aÃRËLKRÖšr��ç*Sp(‡qÓ!‚.Láè e¦ázÄ`êLyÊÓçpžRX,‚L­ž‡¹z‚‰ÈJ%CZÛEŒ ;)�”jò¾ç‘Á•yœv˜º9÷«ˆ«£ÑÝŠ>ÞGÉ•—†š«ç:ëxýÒ§�Ü:õ|DÛšJ¥œºe�¶Îq ê¹þ× ÔX.ÅÀˆ­f±‘BL¨gêWÈÉI‰AÔEŠ š=P7¢ª¶Ðõr´÷Ü)ØÒÃ{Þlb“ÏÅQÇÍa±ú‰W¤wäͯҊûÜ¥Qw�Ábõ³’néŒ-�•F;Ó7K´hv‘¦4ýô¾î´a>=ïy€¸Ñò1-ÀÑã)Í=ë÷Ÿ æq…7­uŠÉèÚ¨`î¹¹£ï(•8â‘Ò³��ºÂS¡œÈ¤r6G0÷|†Ò³ðóú:t?rÉtù$1 Î=û{—MñítG%®_^^¦ì)êáEM–igàq*€¸¾¾nevœ.{¶œsïh€_w­“µN£W“\"oØ`ÜbeEõvs'¨=‹G”>º¸/ÂWçuHÓÄÃÉcGÉ�–zNÍ©H¹¸_¹­ªÓ>F½š‹�Sõ’•šk=Ô³.PÒ½#[TêV?ÞCM;»éõ\›½umŒ¼ÕkR|J§£Cm|þü9G(ñδ!ÝlÜøë×/�å/^¤j&%ŒçË—/iˬ½xƒ`c!Rñ†oß¾=0£JwÏÑ8 d?þ|ûö­#¬i�>|øÐv oÞ¼ÑîY-‚l`†ãÊ÷ïß…ÛW±E“Dçû÷ïs´‡�æ‚ç#ƒfäÜ`x¦îÁkžbÜ ÙJ žn†¶Æ4Å;S–Ë„7|üøqŒzþúõ«ï-‘�±½{÷.×7©èÄ0êA”³ÏLO÷ùóçæÿbu>}ú”^�C¢éëÒ�xsÄÅJ¹éîÄ*0nÓÿ­0\:ÅÛ0¤?~ä4tswbC¦wz°ý D)V.¸„”Ïâjûˆä4®Št_2Û,üùÛ© í` ²ØšÍl‰�‰ögI$>p©‡•œ“ †“»Šx éÒ›É~�1M�4ÓÄ |ÐòHRa´p.�F²ØÐ$:I‰vôù‘³PÊP­¦y8r²ˆÂc4ñ´ÑØÄ\²T|qs´x`Îj§8§�æê·Óahë™{˜äèpMœ&×!üì÷‘—&§˜’0 œäº¥ çM�Úºqp»·ª¢X:1cÊžä<ø¸” v̇=T�¦è/j‰~oü2JO0Ã’EŸ.úP+ˆ“J5Ñ™ù¥í©ÐI…A)hÀ,¬Í•Fzht�ld½Ò ¶Oð¢Þ8(²‹ÚþŸY;‹Ôm¼ÕhÄ­ÔÓÏUPš†GVt�Ši¿š-혺ÚV¹­Ëf›aÔ¨Šê¾‘ U©��KIó Ûq‘¨Þ€Á7en0Þ¸6º*•þ˜ûqæ›2+iïˆÖ3sŸFN�Ás‘’¸|h2ßÈ)«)�Ǹ úú¹fáÖ7=\°9qMÿ‹GTåŽ^&6ã²ý:z61ÁJi.ÂÌdo掵�ŒÇï•äØS±ŠrôW]¹zss㣈¢Fcv î÷û¸„mâÉù»‚"`ŒOYDÉG,›ŸÅ(Š+ôæ ½|AV ªÌx‡�•Rˆ² ¢Pæ E“"Mºg.XÝpU+úD›adáüüœèI }‚ø)ôœ®6_$JJ�‰—p¢tQs˜�Ÿýwo1¥¦ŽˆsÌ‚)¦É@©/Ó-æîQŒØRÑožôb]5€ëˆÉsë…ÉU÷°œ5¨i‘­#ïHâ;¼0,¹ÅD3TÈãYtbè=B’ÆqK�;8!Bm‚Ÿ(ÝX$sÒ„tÐ]1SÒâ Í£ö:±˜¦ØEZM]LínŠ$ºO`Bi9ÖpÖ U_VD–æTÃrþ}ø ¼W·k‡˜£WQe´{éy”°×è\[ þ6‡¡f°ÄÀø'¦ã8îÇÒÓ$t"Æ,Æ�gÿWãß%O´�˜rõž± Y�+[“í&L˜0a„ &L˜0a„ &L˜0a„ &L˜0a„ &L˜0a„ &L˜0a„ &L˜°-øwƒ\ñ endstream endobj 33 0 obj <> stream xÚí<ÉŽ$»qwEþ@çp_€Â ë²O²ðÁС«û• xF‚|Ñ`0‚Lfvõ“—ËÃL£ª˜\‚ÁØ#˜Û_6½©òOoÑl1ä=åííÇVš½ß³6ÆÀcŸ÷h‚�Û‹·{önÛ­­ý¾üö‡ÚþéÏÛï¶ü¶}ùIo:îF—çß[v{ n{‰yW:mßÞÿã¦TxWÊ•¿Ê÷¬”yûúâ´-OìÏJé7|jå3•6S¾¿}±*–îÎ=\yâ]›/a{�oÁóÕ_ZL™ÃëƒÂþ”2¶÷xðlú�Z£Á5a ˜-ˆÝГ`¨mqï_ÿðí_ ö^Œ.¸$xËÛ·ºþæâÑlºŒðÞH�R£ÃÔÎìÆ"ÐéI Óè�¿úéºÆÀ=¸¹(±êу;lÄ?“ ÙcŽ€âÄÓžC1ó¢«p ¾p™ßM˜÷âD×2»©âîÈA N4�]QW€u¦nö•€dSޤ<¡õ&ݨµŽ I¦ž£É7–2]úÜYzáò__ê©õßirÝzÕ?:Ks_HîÁÈ ¤ä åºC�c ��O#�wMXt zo+™&ã¾·&7ûš°GËtŸª!‘„TÛ|¯p Ö³;múyõÓ—GúRN PH¡P­ É_¡2¡sA$Ôß¹ý£ð¤*@,ÚI„ÖÚÞ%ë/¦‡z��T„ÂÙ+ êj  n0K·…ùueþ°ÛHÌoªÐTx\E‘6 Rôõî‹Bÿ·î_ÿû�¨W̵�'¹`°à™§À”+»VŒãoj³µ­Àë30`+ásècñÓýÌðT@þHšM@à슭P E¤Ñ1k¢F .�n,Õð3¨®%HeŽD¡ŠcÊÄEñ¦D3¿ÅÏ¢H§=Q;ÍãIk¨FÁ¨A¦í²eU„i°g É£}ý cÀæÒü×­6—ÿ/ÐPN¤ù!‹@Œeoß·­È謼_´à§®MøÐ­š^ -Ԧ߶?ÁÚjweW�Q»‚¿ôŸ´ŸvwÉùü�~ÆB¹|7E˜ò»tÖº�¢ßo[IMß·>ššøsnÇ¡0˸ÀwÙD0L nýþÆÛ¬?a8‚¶<þÆ®eÔn 6~¿ó·þÑgv›ªÝFŸ?*âc¬Ö }~§ÁóÈT�»­GÒWêý]@ò§öå‚3l±*møû9c˜‡8£+>’$_Y6‚ò9e™ªÊ«lªÓW·ãW–ù•eþßYÆÅ=¦x`¤Yµýkÿö_Ÿg£an°š¹ÎS7ã®×<(žr„¶Íò+ýÊEÿ‡\´¶õBÚ¥©W] ê2H+¼rÝ®ùÆåb±vÇ š›Á“±]=xŠËØî«TSÌÚj¯Ù•‰�sŽn„·ÀDþÇ Î å ýB+!Lä�= !NZ}€`ÄêZ“ïÐý#‚(,Õö—º iêø]†£ØMª¾^°Aø‡ÁÖþä¿\�º‰Na´kOÉ.4G´úc.Î (öÁ=+g€›Œ>ŒÇµE)v*"ƒzô¨ÍR,wAîÛzÚ#|kà̃=@º(å[lž"$]ö&É[óÊ!w—=ÍÓ)³ Ø<ÉʸB/¾x_÷c3¹kÔâôì̲ï~ñ>|Lz3`ÞÖÈtE †¢¿¬WE;’‡Z1Vÿ °Pñé—žæ¨g‹°ÊyžÉKM‘×¢¥\"¯Æ„ÝÇIhÑ�UŸT�&í—Ÿü–Ëâ5LgÒžÖî­‰‚õ[wm [™ÛÝ­„o²mì‡q„ÒBìd ;ä¶Åi°»$B�b —Œd + Ó²s ¼-«‘ÐÛ¬ÐÜ�H˜Àz0;28bBˆ�4Lq"µ†Ã=ˆPÝ�æ)ß`ŽðN=hØVPˆe�]ü'ˆbŸ$¹ž(˜òÚX13nÊMÔO{çÈDô ×1_€qQç ª‘ØÜƒ([Ÿ™å_Ûh&(Œm¸¶} ½úËß§vCÑxìë&áˆ-œ.™qˆm$—¤ AÀfòàõ0°H-±þ¥¸‘J&Ý8IÀ”iå‘‘Úcv)±¢)NŠÊù<1¶Ð)±pgÂë´-ˆ¼Œ êÆÏq–ád°éÀ¶ŒÀv›Àpˆ”Áy†KFÀ[ˆ—ZOx§Íî)j‰Ì��@HË�[™�s˜‘;Àµêé%'ÕÜKMr]6�eÏðÉä.° ¿Tö�šù…É:]=‰YŠ«S8S/ˆd²î‘IiTTŸD�7ô7hGµ_Yh4ö#x( Dì@Òâûf$’HI0Š5Ù*â¥ó±€RœœÅŒ�s�ÓŸ&è™3I÷Ä–qŽ];)ÆCÝ�‰^ò <Ö(�å×u�ÍÞzRÈ’ÅqÄA)�<�Íì—”dÝ€8j5zM7›Ûj’¬YT]ÉL)»qàŸ;û«©%NÞ…bšÅzR'z¨+ë9«ýå!´9ß…¥Ñ��}»^Lj^;f¡t?2€°·D/¶¬”}›™\ É¥ð¤g͆¹I^7H %íXfà~óÑ"ZI÷àÒ]–XÊøä>f!ñ Kg?![ÐÙ%§T ú¡GöY\KX¯!©ÇÛö4Šm´ðýzêü}†N• n ÇSÄÒ­øƒp _“¹ 5¦™nÚù&Û2ÚÎJ ßQ‘éª$Unò¿Ë¸z\*-Œ#¢¿~¨*-D'Î8lúõÚ²N 8:‰µ×¹P¯8ïê̘”Ä™ƒa�½ë!8rÛ|Ü"çÉ7aVôÝwÅÑR¸¤ƒE–ÆÒ¢“»YWUAžÓZ SQŒ·A=ˆ&q¾‘ا®Þ‡yÉœËi½.»³‡u æAå*÷98Ô!é©þn ²ûÎN>a¸öD�…>t&#º(Iݾ TdE,Ydi„Y+�kgAŽ-O’ö^1 iqð¬ùŒr€ÞÕv5Føª)-X±ÒÜÏü'¼ýŠ„¸»î“§¾7t߃pß�ÙË®B Øî¾ñ{ ™«L›Dý(U“z)ÜØtt)ʈ’‘åBv˜¥Á„t¡ŸÂ�Co¦?÷÷¶ ï`üM:í0§úº±æ„æ$'O¬ùNÏÎl•ÙÊ•î9ÂRƒƒÝé9˽ԜI4=Kë°—ÙTÐ\žL›âŒ N›:8m. Sm4ŒÙ>À^«]Jã”CÚuDZŒ �NǼjë“<†~'…„m¬ôr®«‡hD72\¾&\ЩÕ‹ Ùç a2W¼8Å~d=prÉ]ZpžÓ{Aôg8χÀœ÷.½é•¼êö�a'è¥?9(ï@1^üv< þäã(ue“*ÞFž„A|Ÿ ¨pj¤…™Ìq��ƒÀS!î&ëéÍ},4놶”åuq=p”Ö³‚–î6äcħõhµsN›+�«}Z`i}8Wafê1ZÔK(û>M7e¤*·£WAh=ÒÐÚ8òŒ«XŒÍy/Ô³ÒnǾPšiŸ$Œ6Ã3TÁ¯©ÐLñ<;yGž¯Åh&‡O0½ÛÍ“ê·ÑCžVê*üõKt#ç92VFÆÎ3ÚñåguF…ˆƒ7ÚÝÁÝéꞸ T¹I†”â=X`¡G?úí½D¼“­}¦uØ‹†¨ÊäEGë£ =@¿pìˆ í,JC1ÃLäÚÆcÏ“h„´”{‡¢<Á,Ý™.¯múˆœ­Úƒ2'Ô\þ~®J£³eɇ=Ä>�¹ â"ë€qо 1]›ž‰éÎq‹wª\àˆŸÜO+&%3ÀWS|±ÇdödW'#QئrtÅÃٸ潜‹5©—¶KÇ‘ô¾–AÄøÊóÛ15ÑÆÌJºJÈNV÷~2  ‡ýLgUÏ�Џ{üDGI˜'3’GK *~BRšü·1yÞ„ ï(¦ÝÅÏi*ñ)‹Tf;4’Š,ÍœòŸ1­ðÊ„²»÷q!RQ$�€@áäô"ÁÒ/�¼Ïw (¦°¾±õƒ­ƒo((;)Gœ¿8e§"í>Û%Ï_ËS:ñWWVÍSƯ{:+æÎB+ì"ñ/JÓPÆšgèý\^„¾�º€Õ_…Û†–-+q×¥S2[Ø�³V¦ÁWGN¼Ø‡H„¾¿x’®í…ãæÝlt‹L𳓳=dG;…À=7«}ç$·À¯zc£Þg°¡Þ3¨­é~g¹‡Oœ8��ÎÜ!ƒ�ó>ðÞèÉ¥©= ¾$îÎuH2aÛº¢x+¼b¬ ¯ãÄõÞŸh¿ð¨Fž+¯Nåc57ee T&Í�¾›�¥ª†Î¬õžg)dlðŒÞÛS™.²f`{qc”9ÄÃ�Nîvfu^ìåì€�°ë€`]ícáb΄ ’±ïL˜G%šã¼ù”µÎ\›ƒ|C‹jŽs¡:Âl'ÈÝåÞº¡q`:ÙÓTvpÆ?œmU5ƒ¢³ÝE¯�Ùsv³ñ6)1vCJæLÍlÆ­ ÈÚjfmÛ½øvYÚbó¥-¥ %o¤s9Ê<)ûÛ¶†¸@ž /ìÒpêªè¢{0ízÇ*1®Ü\êe"ÈÍY¦[•›Ôò>+EA™§k;K8½” ¨!z>÷#}¶sÖq0hYk ‚N[‘Ìj}®¸Þx½G-2 º¹Îww+ÖÏ» ‰Ç�»=›Á]e‘ï®íSX¼PŠè&%U ÐgKÁ#™Y3™Æõ,|×Nõ zÍÌj-©Q³uà!¶¾�¼qžÇê-½¯@G¼D‡O—è�=ó“¯�Ä#6–.éøÓáÔŸ¿ùm âEl@íÁñ]ƒÇƒo^‘Ï»5faVp0Ì>- ©·~;¦¡�8wšqt ³X@ÁêncŒ–�Œiº)deûœÏª"ì}•ót\ß¶ÜIo=‘£ðª 祈ã®eAI1°;ƒS¥’WZ�eî">øœ~^y±bÒ$ œ�ð†ßÇR4¯Ì!Õ ý§Árä$t镤—ªVÑä ÖsÔ˜pâÜÊGc{j.ÈL3ûïýÉ‘—¡ö&Õ¸>Pöè–¤›(ßOÔrxkˆ;Ôc¹$R"CJL”Љ±D€.­HÞ¥'I4›_ÕÆ ¬íâðn€$±aç4ÀT©ØgŸ‚ŒÝ½!ì4JÏrLœ–¦m/üÔvO�õ*‚»ã!XÄõ÷…tÝe}(íøPç=Q{U(Ž·c€‡ßšÑ­X•‚Mý†‘ëS¡~´÷ädwkÉ¡6¯)$Ç÷=$:`�SêD' µÜžãóþÊK0ƒcÁ�Œ)¡ÀΟÀñ(“„sBJî©¢¾ra£–Š žº¯Ñ¬T@Ô*W7-P¿\ɉº¨ÿ=xű¿Œâµ™öˆ©W.å•VíÂ(¿ª2ÆNh¾›DO püÕÕÐák7W‘"çYEáæ~`+4Â÷7FM“¨3«3ë‡/6‘i’D?Áð?ƒé Ì÷¿dŒõ¢8ësÉíæªAZœ¸ÜXóK¹\kµ{‘Zý8,awcÃà›ÌUΡš¼Y¿Ùgk'Œ•ï­1§a&Ó#D$m$LöqO„�±çÌ聯Â�ð;Æ'¬Ý“šs»G}0¼«ê™€¿ÏƒW}QfhÃeá7‰Ø©VS*Ÿ>�/|R+±xyÇ ¼Ï¿ ¶Ã·lìá– CAþ`§gVßÒŒ‡Za;›¾ªç¨ê76V€¿¸ÓÇ-Þ#W[ýÕÅN¬ |Ò«º7^yÞ ­ïÊŸpx -p‚‚D;Ù cuÄP�ÀžÔˆÉO‡ºOoŸ›žÉéUeëõ1 þí¤ßúk±î=Þ åä|§ô/Ûn\ÖÛ_ëûÛö�‹ˆª|ñyû±•÷XÌ¡Þô}û=Ý��âUh�·ö!Fþ×_a–e‰jô{ŒÖôýE-¿û‡¿›W-å endstream endobj 42 0 obj <> stream xÚ­<ÉŽ$»qwE­CQdps¼À¾Éž›¡ÃÔÔ´tЃ _üû&Œ`�ÉÌ®  o:“K0ö�yûûÍÜtùÏÜ"ÜbÈ*åÛ÷ßnå±÷*h¯}V‚�·»·*{wSÖÖq¿ÿ�ßôí_þvûãí_o¿ÿ7Ë*·¯ï·ìT îv·Q™èo_Ÿÿó¦µ3å÷ür·Ù•¿Ìw­á´ÿïy”çÞÈ¿loáËŸ¾þgÙ3ˆ=“U¾§ûnáY×Ñ:†¾J*ÿÿŽÏp¿¾†„ÛUÞðð(cÂðÜì A¥t²õf(èñ–Ç×åë6è°AÞ•'º=�Xþއ†€:z r ¨�…/�Þh5ûÖÁ/0�ýro¯vgËú7¤„�Ü÷mÝ÷~Ô²’·õ¸í¨w“‚‚lË?La¢¾÷å§qÏFg‡ëµÃ?ìþÝ™¶[Y3fü…:3Ô7á  }^EOýà±yTÝ-š/ $zs£ÞÝÙ:¾u^K) Z�´@Û––ïcéN£{ƒÀ?'¦ã&º:%Šyè¿pÆK)*€tÍÈ˳ðcE“cæ¼*h7sžìÈÝV•`¡2|‰Šú޼þ [Nªœ}œ»‹~g�Ô!©°‚egöqogÌ�Ì�ëÍ4õ]BªP»ð@T�0N`Ǽ§T*r|[!㯩»Bb»7õ׸Lž°i'²EÈ‹º/dAdªâíÊ^Çá,z!]¨M0Êó)Ý•a¨Hg°ƒóêÿ›(jØh7|úŠvsÚ v;Bm4úm_žõ¥í£?#‚é3†„rT¸°"³êtàúããñXèbA»7ô ¹õ)2jg3@ýŠ{ÁÐÊ�ÚàL±³«¦=2dg3_™ÒF\#èÊxÐy)º÷ISa¯šGðù,�–HM,í‚|Kvg»ID‡’u¤Ï� ç§[œ0lÏ¡š0Ë=û_Õ@޵ÎGxž‚¦“Òdê^ð2 í%×C³ZæèF½�ãÊÐB B[Y~B TV-š†Q×E¾�Ú!¶Î`9Ì-�üFƒ�݈dE{ìM;�}" © ô9g¬[Y2ín»»7t!­Œš| tèÃN<›Ä^c×G?­ÐD}§3²ÐT’É3Nh>rÂ>u@ÈèªîIЬŽhRÿ>VnîZ›·’£ï±1(¸ yCoÌðÊ3«àšÓó@Ñy²æ.â‰h¥@ö¦¼±ùm%A6y‡§Ð3»Ÿf ~VÕváø¦ÖrXíypWj8Ø—PYGú ²T_¾"1€}Ðúä<#,“Rl«Æç¢ÌýÜÕ‡�¼Ï~ݦØÊר™æ®Ú£)øŽ›‰0á@˜#"ˆÒD ÔÝ1Ë:z²Ä‰7ˆ*7 ‡}`‰ƒC-]¡ú6�‰BI¦H›/L�]x ¹ÆKâ0.uÔ/´÷¹Ñ”ûÏ\˜b�®D%Ê¢¯-Môé9VM/xðè/YgU f>áæyåÃB6ÌÒ<�"”¿î1]÷XUR�'�Ñ�±íðÞª¨0³j׊bB³ÔvöÖ$( �í/&|ZõZyöCšü³áËÙUpñÉSH@èìØÎ ï=LÂÍs�£ÖÚ oãàÞd$tbýëךšQþfnÿõïüÏÿýó1ã|VÆ×� €ŠšHTw¢Ø¤"¾AÝ&x¡ÿvnö"…e„’Ž ÀñtêºÛü0k+)Ÿ!Œ×£nÎ6©à*F§é«®eÊÄ6nÆ)ëÈ«|Τᾠcà›p±º+â^ÎO…MHˆrd´Üʯ Ž0¢2:±?‹ÞœõÊf8Òçõ!©”çd’Œl*¼õ,•d2Tvù(ý‘YùÊ5�x{ $ïdÐìàÈæ-^%±™œ3ǵHÁ“ì|þ>’¼©©U|‡æ~h—1CêÒͱ 2Û5`‰ßÆ8ò`ú©»ŽÀ½Éô¬±9bžÎ>Cx2¯ëËÓRæ«Çf;ßé@µ­?ô`àèîÎþȰ�$±ÃFáú–çað/yu8¦&4…÷žlƒ’ž°Eœ=Ò?«·³I•tÿFz‡üžAIkGöJÎ|;w¤ÙsT�yÖ¶G—sÏbIV �Ú-W嚸fÃ7Ì0V4:hšÊ ) èwŽf}’kYcÞ»�Ã}Èž³>g»¾C<®‹L°cÂum2“’4¸Æ©ig9“-'ƒî¶Žp²vÎîNè¤ÓàN‚|C~$€Lž;�c¼#ÇfI?7žpa¥ Xaq0´¡ ð4‹ï!vB$mòhÙ(]K:’+û4[[t(äœÂ¨öÛ,Y�Ø„)ÁœÖbBß\æ “VÎd Þ/±oQ+°æp„%QÚœ¡ÌêÝ>vŒ \d}�T×H ìH ©zçõÛZ+8¦Ö9K BóTOÝ›MºŸî]Èaft@£·!úÄA)(ñ×FД[¢òS't‰µÓu‚ÀÏ㧺d5ûɬ¡ˆ~ŒÊ81™–s_Cv?e玌ˆ m mdv•è=j¹pá—àZÒÙÅ'2®;užüs2mêꘫݓrI´%Qµùª-‰|¬ô&â[MÇQ^Ó�Ü1ÐNÕŠ‹f›µ=ô«Ä4•6ê“,ÆúNdÌÕ#ƒ÷Q##6g µ…h³ñG‰n'Jçlob~[�#‘i•ÂG§7Åß°Hʱ³Àã&ÏáY£%Ë »z\T]™?!e^…”— øÌK­­Ë(›ÒZÔ’¼h#Eè‘_¦�f§™J+8sx|k”4}R‘\Óƒ¿9žÍN&žòZµÂ•¸u"óîË‘Ò)Tî”iþ±~0ËIaª¦»Ø�  Q$‹ö–¬¿”±ú¾ÓªK 쌌6ºŸ$#Î$2Úè7dÄ1“½P3” Åq2!ÆŽ•pî<‡Rä-áÑk²X,W°ãÜ 8'W8Rµà±sºŒ‚×bgIkU l“_û¸rÂZ§‹£ÎÊs¢V[Hëý¥xO#~6˜õnG./aÙsuܹùPz´ áÓËfX0EÛ¹89lU\ïUi1ûûIß“ÓÊø—:¼ð­µÓÊ”!±w•C}4g6üšÙð-w±KcöFÉ;G&浿í<ÛA% ¦‹^ð›ÃÛÒ¢�ÃYó�ýù”†¬0÷�Äiã”ï©e™ØiíµI:uâµû˜Ïhí~ð�Ö-Rqæ4+3Á¢³èS 6*Ûh~ªh\.ÆÔ}"L©®±™\ckœðÖŠ3ŸfíšBè(ºi1«ÑÉ^öjHSì1w8IŸ’c¤´Ó�5¼Í¯I£¦¢A03Ï·6Ÿ£t=0‹ó˜/÷ã5NW#=ÕiõI#ó¬QÁ»Õú‰n`xÊS5O%¿9Pò,‹èÿšSuyý9øa(ŽN“+•WÇAfø¶d²VV„Û»VëK÷¥ö…:;‹�>tñk½)×!¼§õWDîœ�)Okþá\ö7' E®órÀ]òË*mà%î8��CNØ´·^Ø+mÆtÇ&}9VÎÜf¢´Ò:½x(3©ˆËú±ìÃýwí,†Ô¦yimpÞl['<«Oë³Ly¿4»’CI]þ‡â¿‰LM†®|ÒKõŸ÷R“WZ\( nÌ6×¢eÝ6²^Øø£«sns÷\b³bšª h4S _”­¤ÿš-â�l×£ƒžßˆ±ÃÚ» —žRÈçœé”ÉÇ«'l<£¿Ð Û˜�pSðÜ…s U+ê›KR2‚TôbE2ñqÞ »ÛÏA®¶–y·û|‰yw4y_"/Øö'Û-æGs^i�?;´l'î¹€4ødí çØ‘lV‚$@'Z+�®~ö—)ŸÖb#;E46žyÏ6íÚ§Ûx‚uÊìŒrA¶yž0•ñ’܈ÏÆUðl: P$Â(§i,‹{>ë ÁkSÃ-Ï•ýL\ÌžôÌ©|>á ¬)v‘,¼oh´�\Ö^T|2G ± À¼¡ÉY«³5Ý�áZØ?ÿåw›ë”ÅQ#eÒd÷µqä¤d°�¹U»©nx1ÎY 1r‡‹E uVÚ�YÔ»òIòíÚ·´Ë„‹Èð¹Î;#<ÙÆœ”=ñ³w êú&°YvØÁe‡�Þ4ZAЯ„VÿÄÝš5;(x†—¤«wÈ  }¬=›ƒô£vJ3œ”‡ôIÄr¬qˆ4Þ&oÀ|{q©kp §ñÉ$ûÓÉÆ½+£¢ Ùž5â(‹Ÿ�ÑœïѲҤoÎúfÎÃÏ2€¨ßOÙ g_K6ìj]FAþÔv ~E}óƒþÕ¢/£øúدi_5ÊéøZûªÉÊEóÓí«-…µY.ˆ?ÖÁD¡µYÞ*8tùLw¶xþ”v'-’ôŠóî�<Ä÷Wåx—ÞÖÏ8ȹVÀ�þl×É. u4E&+Dư…Š&>`„7²O8ïhBŵú-_Lü1øbê–rg÷“‚%3G’Åó] §ÕÊ£J:�}#äqáØú�¨ƒ[Ÿ��Ÿp‘±Éò�HŠ}^튓[D‡7o¹˜ãòB~Yr�Ðv½eøô#8`úŠÙÊb‡Óõëô¿)p%Òø¿*x%æ(îwÔåÅøÿvs­ÖÆ£¿Þþ›>oE�Çzåî]L-qK´‰î]ÊÏò½‹Nå'¹-s™›êø=EÇ]i;.úfýš|gMôcwåZ®.ãe ïׄ÷ú³{8²£ÿn�VtM'A% iþˆ�½Â)'ÈnS­ø—F�Âr7?ÃQ{”äRð˜Ü[3ßHë•-~@h|–�Ÿä-cêwGãÜÿâ-Uý;c7®Mv¶²ØrWYÆý�_�¸øØÆž©‹*mO>¶ÑÜÕïã³ô™ ×ËÇUì3ð�cè 6ÑŽ•ú¬ÞjŸÐpâó!@ý }Œ¥sm?§‘e€½Šñ š½u·Ìüã?ý?½€Ê endstream endobj 46 0 obj <> stream xÚµ\Ë®#­Þç)úÌÅ]::‹(%»$³‹²8�³É(J6ÿë( šnÛ3'�ÝMÓTQ—¯.xûϦ6™þ©ÍÃæ]!n_¿oé²µ"*(·mœöÛÅj­Ù„ÖyÜ/ú.·ßý{ûËöÛ/Û/p[Ñ�۾ܷhDpf»h/”·Û—Ûßߤ„«”VI饔¤téõUJðÏÁû?¾ü9ÍdÙLV &­çÈÏ»[ú‹é³¡Ïï�îj_GÈ:_“IdH×gÒé­igØ¿¬PÚø²Ò4A ðjëW™©ÌkÊ«õé‹ ¸ê<—¡1+Ê=�võþJm¡:úšïè7œSß3—kuvà(í ÜqWø.åµæÙ­ZíŒV}ÊÎ\´‘BG·]”JFòB\Ê\[ï�úÙPÆüþK’`á£ß~Ý”�$¬ib§…·nû¾­ù¶]ù×ö7`>u{Ð[¡•øã‘ »ôæÿ½[P¥’ðKÛn"ç ä�ÉÊE¥ÏkFâM À©2©£çÔ×+�¨�I½›¨/²¸­¡î½öù›n• o$Vem3Ct¢ÎæyÒx­Óx]’/ùXoÙô÷�O$ûûÓ™øo84=�‡\ ™ª,?£ý̺ë­ü˜78ÄÔMÉ#¸êáÈ¢zÀ¶´o—û@¢òªu(ôªÊ†üWÁ]$:­ÿò“æÛ­.¼Z0.�h…�Bø·¬Ûï…Hn…õõp£ðµÕ|C"lb›R1ÖÛ…¶@Vn¯6ÍüËC‰¨:t©¶ ”!pÉ¥K¢KžGY`®Ç«÷PÌPÚ cdÝzÿA,ÈWó^˜°¼C¢‚ß–¢‚·PŸû7ú”yîϓͨK!­w·º wz† RYÖµÎù™m­W˜ýÇ+ê®ñJ~®¸ãêw2#�¬ JG²@ên8Ã:voX±§&—¿W-g U™åIR}‘Ý+n›ÀpäQEÂã!ÚLœç©cP†{èF6oA]LÕrÜþ ØiûôâGªVçÀm™G·»¾ZàâCw‰*•ßLV×bm7€ÖTf´Åµ×4»¤Ñ;½Þ(‹¢¸U;˜¶Äx“§ó]ÈLf¼ëfc<3ÌîFWò«³ÌÅV$·`¥Ítt×HÚTáNïÉ#�îâC»lnç+ɳ£’¸\I¶qYÉØ½u·TÌVñÏï\±»]T\{ްT–Ó¼p ¦ŠŒ­r_Ù Î|oƒ¯$ �ÓEî‚d#KC¡‘d¥ÜE®Ñ73JícWø°'Œ4GÀf�ÓLBÞ¡»“a!´�•”ýë´ÊÚOÆÖJøv-ϴ˸2R®¦6M’îUÂ|ë›X¹üµ.áŠø¬Ow@$wž|®‰ußÝÓAŠIAE÷î€4ç|C©NŠýˆ¤öùZM^•ÒbsµzëbGÞb_$´#’íyI<€‰Çc¶CälGÂt3m͂À|à‚«pUl¯«‹Âè¸ Ã*‡÷;^°F6ÆäOæ£ZÊêxõ��Tîö x#’EžmA Ÿ ;nÝæfP’vsEóÓìt¥z<øÕ¶&¯…’Þ9¦GÏlµcâJˆcOÕÅyøFFÛé¾bòdÚ”·î¡Ë~5>�ð„ëüWü¿€¡ÕðŽû¹òLX=ÇlèE/ ªi7 ¾èé¬HsX××»Hhxa�zYš½dº)G/ÚÐE{s§“®,#¨¶žsÇCw€ÒLƒx¨Ň ï,œ¶î!‡<—XœapmM@ÜÁ71¢‡kö©N@D5E# �©ŸöÒ˜!E =IîÆªÔd—ظ˜P >ÙòÔ&#†ëºÀwÖâÂ��ùÃrGK õÆ1_6°LOZ©Ùœ{Ð×2oÛ C[—¹9‰É‚A1&Ã^–eÍ ú¢iOû<2ÜÅß¿Ç&uBså!A`4Ù.E§Þ.”¼pðZ£¼–Xh&Ó g l‘±Xd¼•J(­^H|&Ì<Þ.qa¯‚0*¾¨j‘Þ+A¿’òxØA ýgbÅ„ÅG2¢¡ˉGLkV&|2XM|¾ó ªß×=¨ÈÈ"°�¾E˜˜'4-º©ûV}ä½ÇÀPR9ig÷4%ÝÌÉ.?du�àrnÌ}ìî"al“ÿsCâ9›ÔÆ#‚šÒ­Dk€¥œ+®"?L¦.ÿ¿´&I‰¶'+ Ží_J†¼Š'ÃDvÂqFp­ÇŸÝ—·”Ìß ´¦[”Ý–Ý@ ’ï BËx²0Õ1â6»ö¢{wóÅ0ªe£ÍM`Šg‹@¹Þº�ÊïÖoüÍ�"&ªeLcÔ ]u஺¡“2I3…åA’qÍäÚß:Z©Q—œ¬XÐá9°P½²S£EHÄi5”›¡íiL,#»+¥¤[¾3 ¨2®€�ú4K.Ì}"Ýý %Ijªüdþ»kûzåÙôÐóD˜$ÜAWˆ›®FÚ-h1,`Î! Ñ~/±èqKbØí<î‚5!iø;愲ñie9qŦeTCh˜Bè¦ØÁŸaý˜“Þþ‡}gÉ}Iù(žË¶ÌšŸDzýKû<•öíq„À4§¤Ü þ�â>’,5¤x)Ú0 Êr�0@­¹¤Z¯,âþ…È¡Tß‚�£¹>঎ÉÛÅS‰9ÙRè,#\í`1È`9ŽÃÕ÷Àº;‹B÷Þ"WÔ’ÅÒîŠD'³jCÑz@)ež– �,¯.I·¦]YdФý5+äý ÙBŸkP)¾fÉʧ"Ê�xQ®r4{›AÅÅbdÚ�©œ´°' …_gÓ_Ì3Ý´¬J tš±ºStÔ(á[b$ÏX©o‚#‡„ꬰ&18m?PN€�ŸÞ¼¡UÜŦF›·9ÛR åßÿ:vÈü·qÕæ•¯h–´è5Í1¸ÕÌbx njÁY›M¨»€W3ïˆæ}®±'pôãuà>%ÃhýÎk¢ç2d-Rµkú(âC) z‘À˜§õ>Èøš>±†¡®Oî©’ãÌÿ•ÚqE¨µî$úô«è³<ÑóÉ»ü^¹²ŽÚ„r˃† Á¿(Rðf²Óè¹êŠò«ò�¾'/eН�ãGš‰»¸L¯p¬ ¾M|0ŸßnÆc³½Ü’KÖ�Xa߰φãè Ê/ƒÐaצ³ ]àeTVæ_V=\àòV¾­xCþŠ|*Lm­”§Ño°š0Ï›(ê3ÒÅTNfkpé.0¦ÍÍDãœÍâNa{ÔOf�Ö*A=­sxÇÈh™�ˆˆøzÕ1e¤¦i&Û2FSëT6=_1¸"Iï5ÑZW¤^å{1³v”µÀGû´j#)A�]VþËC<p”2ò[kŠìe¬Öž$ K Ôo (�$Npgî&x­^àëÎ�rŸ>÷éNʱÔôP«p»Z…s38uî “°¦±éŽ øÆýüvW £qƒãk³’¨·ÀI¾[¢ƒKY%ìÎ\Á0LÓŸÓÈB>ì ¬°)ÿ®#ŒwÐ;¥•1Ɉëè�+o¦“ ¨³^Ú¥¸^«˜ôB£ô³å�WóÿžÅUÏÔZX¸ø0�ïÌ“é|íÈ´â3ǰœ`ñZ <óþBœ�1XÌ�èÝnÌÝËuE½Q]kÌ:ã7û¾lfüKÈÛÚç@}ZC‚õ/ Î,™ó"F;–x1‘}_—äAûEI0óJÆ�{PŸYì´ŒmA×±œßÌá\=UÇ]ˆdåÝZƒêK (’ÍôL„¬µÈ¡@¿ F9†4Á’ÏS¬Fº�KÓ p[.K€I·Ãqš˜‡"ë1<¹ë¨•'.Å»V0ˆá0-½÷ñ-=ÃQÞ\ù6±¼ð˜!G‘Õµ n`TŽ¥ÕvNxmžÌ ÓÒr'+‰r3_aVÆÌžIO‚Rlô¸³É �GUÍ– åpE8Ïï:j¿ SûÝÐKÖUóÆ«GîFTš�õ®ºTR(á`›‚y±Räy«Fÿö }«%»m¨-¾îÆO8xÞ¼ï(M‰#äî¤ÄcÏš׺\唂:K|rOkñ(n(ù$ΔO­5¿¢?U’êy=Ç\Ë#3¨ÂÅDïf"{Qº“\Ž*DZ‰„{µü¡¤‡� ú³r} #ü­O¯Ë“Z$gù’ú… ^«CEÑ +�£Ÿñ[|覕Ì�àñsýsûñØÑíù7žÇ9w˜§#$9°î¢%F˱Š{Ö¨ƒ¥Ãf&áÒ­H¹R¹ ¥{Ô0+çÆ0CËÕ¸Þ_3÷ŸÜ¨ÕÅ�¹šB5õGp,“¡Ý’ˆU0‘Ç "øò6*H3'”»jë�ûQ ûèCUÒ<<Þ·k5W*(à÷¬y¾‡ã0øfµ¨éÔ)¯óÉ$Z7�bÇvÚ»ÇóE´âÞÎ2T�:Jà {]×7w?áÕ•ÔêÓLZRZ™6X³]Zjèm¤#—d0pžÀ+få6f(z!º·#®b‘ä5 ®a%“Ø¥9gtÚQOd§f™Á1³ë±ÒÇ%s¾\<ôáÊú¦¬ÊD‰½ŠÕ‰G,ˎ˼¬m²AL#…Ãã¡=ÓdŒ·úÎé©Ò�2wx/’†É§ùŸi^rB8í@Áõ>“¼2¤ýÇÉ«ä)«ó>ó£¬±Û Kâ™DbjþCjœ#(£l7jù®KEª»›_Ë{R/´›ûåF0TNbf`JÖ’šPö1. å#ãdJ‘¿ñ µ˜ÒTàÙ�Ik¦¢YI‰{ÅÜEÏþ×½ó’á½þª¹Ÿˆ:LªÚ®Â+Œó?ÖÂc”Ð STópȽe%Á«©„wÊy~DyuTçN¹°:¤ðD³Õ² Ï«³ŒÈ?©_J�8†ö4ëòµ4²ë37«S'~×™äá™S“˜õ£F|f'øÉPÖ,æaΑ¶CÀ§Q—�x8QE%sÁ4> Lœ~ÎRPwÕðy ‚°ñð€e­_5å^ Й)l§WÀ§3¹–Œæ èÖó8p óÖï�É4gv%Ÿ¡—&4ksÉ »NùYMŸé.ÌÕvÒòÕîÂØ²þZ¿q°¨—�P0SÏgõðÊœ[I¢¦Ãþ/|éký_„FÏz½@å>‰?Ȳ\lÒëß›“4à×|@¸˜ ’—éC2†ß·´òòK3íûå ¿%D哇(ÕzTáu Öµ�ÞüPü(U‰o5沦7LÕo$÷–~1¡\- Ô+;Å®û)vãa‘愯tGÛwlívh»õDÌ^5øà ;Ô„nã¯DuÊv'¬Y¡l{X{²†‡cÈÝ)&X°Á�ÀvIC2vŽ•4 ŸåTŠµÃ‘8ü&Êh©‡uäöp>UK w©Ç¤ K÷*uÕ\¶”Ê?ÄåÇä Õô£4U0Ê/³8¾Eùgyè‡ð`Häå&…ÝÔö×?¶�ÿýç™P—SÞš�S§”o”,y[þÁ½{û,Ä¥Ç7vˆÎ±ß ¸úò«4õZþ=�<ƘžÜru.ú}‰,þHW§)S©ˆÃI[+¼ß©fýe¢ôä_~ó?_$´ endstream endobj 49 0 obj <>/Filter/FlateDecode/Length 4539>> stream xÚíÕ1 ðñ'ݱèQÙò$´Eð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüF=’Ìš¬ endstream endobj 50 0 obj <>/Filter/FlateDecode/Length 59041>> stream xÚìÝTWûøq:H± b�‰]Ѽ–X5‰],Qƒ&£Æ#šbIb ÆA±‚F,`ïhDQ»bCì J‘¾ÿæýÏoÞ]@@V¾Ÿ“ÃyæÎì�»ÏÌr̳—;º*•J€‚¦G Ú@  ZA  ZA  ZA  ZA  ZA  ZA  ZA  ZA  ZA  ZA  ZA  ZA  ZAÿ•žžüäÉR @�€WR©TuêÔùè£�ÜÜÜŠß»{üøñ�vgЉ‰9|øp»ví¸èÙIII™0a‚¯¯¯µµõüùó�œœÈÉ¿wï^ÿÞ½{÷íÛ—„¼-(@¼Ú¾}û®_¿þàÁƒ_ýÕÊʪx¼©   Ã™ÎŸ?¯R©¸Ê¹äêêº|ùr<{ölРAMš4©^½:iÑ’°°°½{÷îÚµ+88899Y´tîÜ™´¼E(@¼ÚÒ¥KÅÏ„„„U«V}÷ÝwÅãM…„„˜››;::^»víåË—\å\:qâ„§¤¤œ={–´6ˆÜŠÄ>xð€T¼Õ(@¼BxxøîÝ»¥ØÍÍmÒ¤IúúúÅà}Í�;W :vìøÙgŸq¡s©iÓ¦;wî”bCCÃF�‘m022ŠˆˆHNN éÞ½{RR9xñB€WpwwÏÈÈ�â»wï³7øÑGq•sÏÅÅÅÙÙÙÒÒ²zõê6l¨Q£Æ+_rùòå"2ø¢3’Ü000033÷ç^”<==ýÚµkÜêó�:R�ƒÄÄĵk×*[/^ܯ_¿âô­­­¹Ð¹gjjºnݺÜ÷îÝöíÛGGGúÈwîܹpჾu9·µµ}“§›6mš¹¹ùôéÓ¹Û^3 r²aÃ†ØØXeˉ'N�:U¬þE¨Ç¿ µ%--mÀ€111…>’»wï:;;§§§¿�iÔÕÕ}cçÚ±cÇ‚ ä?zÀëþï)È�›››øùé§Ÿ*-ZDf�...ʇ–ÔÔÔþýû?}ú”+’³;wî 2D¥R‘ €‚B [G޹xñbéÒ¥7nÜèàà ·ûûûß¿Ÿü g^^^ ., #1bÄÉ“'¹"9‹‹‹ëÖ­ez€‚E [Òôgé‰s#GŽ”ÛÓÒÒ¤]@v‚‚‚FŒQF2mÚ4///®HÎ{õêuñâERP°x!@ÖîÝ»·mÛ6Œ=Zü>|øÌ™3“““¥½+W®œ>}º©©i>zŽ��ߺukÏž=-,,¤–´´´cǎݼyóéÓ§•*UjÑ¢EÍš5ßpW%Azzúþýû­­­ßÿ}¹ñÑ£G—[ä°I“&"cyZqXô©¯¯¯Ö¸jÕªo¾ù&555OÃKHH {þüy©R¥jÕªÕ¾}{ùÊæCRRÒĉ=<<òÝCddäÉ“'£¢¢ÄíTºté *´lÙRüÔÒgw¯¸/_¾¬V­Ú‡~hee•¿ï™3gîÞ½+> –––vvvmÚ´±±±Éîøôïßÿøñãù8WttôéÓ§ÃÃÃ_¼xann^¾|ùÖ­[W®\™�€„4@Ö–/_žžžÞ¡C‡:uêˆM›þýû¯_¿^ÚûìÙ³uëÖ�5*÷ªTª£G�zyymÞ¼9!!áöíÛiii ,XºtéÇ•·mÛV àÝwßÕvW¯´cÇŽnݺe·×ØØ8))I­±B… QQQÊ–Î�;ïÙ³'7§‹ŒŒ¬X±¢fûáÇ۵k'oN˜0aÉ’%š‡yzz:T³ýÌ™37nôññýϘ1C*@ß¿ßÅÅeÓ¦MÊGó5nÜØÛÛû•éºv횯¯¯xí²eË”(N¤v¼ZQ[m•áäää™3gº»»ÇÅʼnM++«øøxqA---¿þúkkkëýû÷:t(O.::ºS§NçÏŸW6+G"î�#GŽh¾V$DÜÞnnnçÎ�C-]º´˜ô\>ñòfÍšM�:µW¯^øq»yóæ´iÓSRRôõõÍÍÍŸ?nhh8|øðŸþ9÷ýlÙ²å·ß~ q©R¥ôôôÄD¶¸�]]]k×®­ö’��Í•7fe’7Å=#.�æ=9{ölñSdÆÈÈÈÄÄäŋҮ6mÚˆ£H¿H(@d!99yõêÕ:ÿú³ä›o¾‘ ÐÂ’%KFŽùÊÙ²éééG� غu«ZiøîÝ»ýû÷ÏrqÞààà&Mšøùù)‹¿ØUîýç?ÿùý÷ß/^|ïÞ=e{ÕªUųœéùóÏ?Ÿ8qbݺuR™µiÓ¦cÇŽÍåéJ—.-NwöìYe]X�“““��Ýõë×Åû’«~šBCC7nܸmÛ6‘µ];vì}:22RÙ>`À€=z\¼x±qãÆNNNmÛ¶µ±± —æ™êd.¦±uëÖŽ;ÚÛÛxWj”“=‡ZµjUyÓÔÔ´E‹ƒ  ‘æçJöïßïìì¬VË“4mÚ´gÏžÿý÷õë׫W¯~êÔ©ºuëæ2󆆆ât½{÷¶²²RNšVU•*UZµjÕ½{wñS¹À±8o£F�äMq½ÄU3008{ö¬ÜØ®]»»wï~öÙgÒÒÞÇïСógÏÜ©S§û÷ïW®\944TdÆÄÄDO�5Äx’’’¤¥*"""İ»víjmmý:Ÿµ¥K—Ž=:55uÊ”)âRŠ++}âÌÌÌZ·nýÉ'Ÿ¬ZµêöíÛÙ]bùGîÛ·Oº¾"ÛåÊ•“¾ªT©’¸Öþþþâ+¿wïÞ/¿üRzSòçZÊF@@À�;w¤Æ�Šë"'J­R/î鮫]»ö_ýåàà �Kú; qE?éééb¢Ÿü­"Pl0 Ò3GŒa`ð?ÿ^úæ›o”uÀE‹}òÉ'9wõy&|÷Ýw ,�Û�œœ¬¬¬¤™’r£ÚZ´IIIÆ ;wîœT”,À®òÊÖÖöÇTÎW›‚­IšL:uêT33³|œ±oß¾ãÇ�åamÚ´177���Ïr¯ôÀ/¾øâĉW¯^•÷íÛwêÔ)±KäP^Å{ìØ±"]þþþÒ¦ŸŸß’%KÊ–-+wåàà°råJccãeË–à#(D·"¨S§NÓ¦MÕöŠáyyy5hÐàÍÜöâ’õìÙSšQîããS¥JµôôôæÏŸ%ÕÖoݺս{w‘Ìü-†®“YÖ—®rçÎ�çÍ›§y@£F�D~úõë—s?7n”‹ìíÚµSû»16l(·\½zUZ DK]åÞ_|akk+o*W#Ñ$Òfff6pàÀü�®|ùò¹<²L™2¯wëÖ­uëÖÙ)% ._¾œ›ï ²óõ×_«T*‘üßÿ=»ÕlĨ”s̳´k×.9¾ÿ¾æÊÇNŠÏÅë$êMž     néÒ¥:™é¯ù4&&F|ðA΋´hÎ WóòåK9~ôè‘æÊo)^9y¿èœ    ð?¢¢¢¤u¤?Ø×4jÔ(emÔÛÛ[*¢½ú^ÿ[QÕ¬nËêÕ«§\€øÂ… áááZê*OF�-WrÓÒÒ¤J}–¤´³³s¹¬Ê"µÚš J5jÔ�ãÇ�gw˜±±qA ¬téÒR�˜˜øÓO?eyLÇŽó]ÇÏ=å¢.-[¶ÌùàÁƒ˫Ӥ§§+·˜KâSóçŸJq�=r>XùýA–”ktôíÛ7ç »[rÉÉÉIîMÛç((@ü�+V¤¤¤Ô­[·mÛ¶YàààеkWy3))ÉÃãÀ‡¡¶rÅ©S§ŠBWÖÖÖÊeIV­Z•�� y˜8Å­[·*W®Ü¡C‡·ëê+ �Y¾µײeK¹œíææ6eÊ”ÔÔTµcLLLvîÜ©ÕaDFFþóÏ?R\ªT©ìV)³µµU~@”�‹Ì%///ií�ÌåM^süƒ Ú¾}ûäÉ“wïÞ=dÈ�œNKK{�s}ðÁGŽçòññ™1c†VÏP P€ø?©©©R5yÔ¨Q96fÌåæ²eËRRR v$�:uRNs¾víZQèJ˜8q¢¡¡¡ÇÆÆ®]»Vó�Ìš`î—Ñ("”sW322ÞÀ­¬¬FŽ)oººº6jÔHz„Ý›tøða9–'eçÌÑÑQŽÃÃÃsX�%Kû÷ï—ãZµj½þ[èÞ½»È^—.]ÔÚU*•8×äÉ“•-¯y®6mÚˆs©-Å.9yò¤æÚñ%h€ÿðèÑ#ssóœ×ŽøðÃßyçy322RZq¢‰1888țϞ=+ ] öööÊ)ÕK–,Q+ÔŠM???�¢´þF7gÎåÚÓW®\iÛ¶í�!Cäå¡ß€[·nÉqnÖÔ5j¤ÜŒˆˆÈýéÒÓÓOœ8!oæ²ä�W111óæÍ«Q£Æ€rXw¥@ÄÅŹ»»×¯__ür@f@ dnnn:™Ë¶ZZZæé…‹/.ðzkÍš5oß¾-ʼn‰‰E¤+á»ï¾[¿~½4�ôÖ­[���={ö”÷?|ø°I“&ï½÷wTn˜ššîÙ³ç£�>º|ù²Ü(24gΜ#F¼�‰äʯãââró’J•*e×Ã+EFF*G.ðêpXXØ‚ 6lØ îü™3göïßÿÑ£GÞÞÞÚHÝýû÷.\¸fÍkkëÉ“':ÔÜÜÜÓÓ“@Bà¿Îž={üøñ|¿6888»e£óÇÂÂBŽ_sŠhv%Ô­[÷ÓO?ݱc‡´¹hÑ"eZZƒéÏyR±bÅ���/¿ü2 @n|öìÙ¨Q£þüóϵk×*gÜkƒrÁkgdd¼²ê­ö%MRRRîO÷äÉåf|||AM‚Žˆˆøá‡|}}Ë•+·råÊÏ?ÿ<—ºó!&&fÖ¬Y«V­211™9sæØ±cå3@Æ¿�þkéÒ¥âgÛ¶måÒjÎzöìyðàAysñâÅ[€655•ã2eÊ‘®$...r–Ž=úÏ?ÿHÏ‘KMM 000P{ò!^ÉÒÒÒßßßÛÛ{òäÉ‘‘‘r{HHˆ££ãúõë{õ꥽³[[[˱J¥P›à¬Iù­†P¶lÙÜŸNm’ulll� W¯^=nܸ—/_¶nÝZ܇¶¶¶Ú˘¸ÿ���Ÿ={öÞ{ïÖ¨Qƒ{ K¬ ð¯'OžHSw¿ùæóÜùöÛo•=†‡‡à�”ke¼æSÚ °+IëÖ­[´h!o.\¸P öîÝûôéÓ.]º”+WŽ›* tíÚ5åªñññ}ûöݹs§öΫv½.^¼øÊ—¼|ù2‡r&>>ÊͰ°°× "i_}õ•UÆ ÷ìÙ£Õê³»»{�=ž={fggwðàAªÏ9  ð¯Õ«W'%%U¬X1÷óL»té¢\æ8##ã�?þ(À!ÅÆÆÊq«V­ŠHW29öóó{øð¡¤‡1²þÆë°´´œ7o^XXXïÞ½åÆôôôqãÆiïév 6Tn^¸pá•/QÎb.UªTž–üV›.}öìÙ׿§§ço¿ý&Åâchff¦½ tàÀq-¤goΙ3§B… Ü´9   “––æîî.‚#Fä~W]]ÝI“&)[Ö®]ûâÅ‹‚•<-ô�wÞ©X±béJÖ½{÷:uêHqjjêÒ¥K_¾|¹}ûv+++±‹›*—üýý‡®Ùîàà°bÅ y ãðððC‡ii­Zµ244”78ðÊ—(çû·hÑÂØØ8÷§³³³S®¹!n›×|bb¢üç*ThÓ¦�ö®—J¥;v¬T}¿+úôéÃ= �3 Ð:›7o¾wïž��Áˆ#òôÂÁƒ+Wˆ‹‹[³fM� )**JšS,|ýõ×E¤+%]]Ý)S¦È›+W®ôõõ•‹ÈS-2—T*Uv»RSS‹þ=–ÃäeåJâjÄ 9qâDyóæÍ›Z†™™Ù'Ÿ|"o:tHí9�š.]º$Çýû÷ÏëÍ£\Â%44ôÊ•+ù~S[¶lyöì™W­Z5¯÷Ožuüøqùë›,§Zçõ\ÅhWWWñ³[·n¯|ðšccãAƒ)[þøã�Y'aÛ¶mR`aañÅ_‘®Ôˆ÷ngg'ÅOŸ>�0a‚N�®¿add$Ç�=Êò˜ÄÄĘ˜˜7|Ã(+ŒÙU•ƒž?ž]o§OŸÎnï¨Q£äXíÙ}ùHcÃP~��––¶qãÆœ»Ý³g�T¨PaÈ�!yU¿~ý”9œ6mZ+¿cÐü|)Ká�?⇨¨(å»Ëw¢”çzöì™4:‡såp:€‚4(évìØ!-A›¿¿¦8p r3""BZù•²,]IT*ÕŠ+¤xþüùVVVZí*))I¹™ûº‘‘‘Tt–¼xñ¢zõê­[·.¨K£\-$ ËcfÍš¥¬NÆÇÇgyX.ß”Z*²£|¨cBBB–Ç(—˜ÐÑxΞZQrùòåÙ�ËÞÞ^Žk×®��4*GrëÖ-µSË›-[¶T®:={öìì’©“¹Hô¹sç¤xÞ¼yù˜óþÙgŸ)ÿz 00PZGSttô¾}ûäÍ»wïª O–>€Y~!±aÆ,�Ï.QšÏE”n!åk“““³\,[y.�Ìïfø5 J2 РDKKK“§^V¯^==Ô¯_____ÙòÓO?½|ùò•/Ìaáooo©&Þ±cÇ‘#Gj»«7n(7###sÿö¿þúkKKKyóóÏ?/À«óÁÈñ–-[þüóOåÞçÏŸ‹wäîîÞµkW¹ñ¯¿þʲ+åc“““³;£ò½+«ÌJ Êå)"""²Ñ“&MR~ß :Ý®ZµJ™¹z®ìY™¨ààà{÷îÉ=|ûí·¢µs â\j_ZxzzNŸ>]yéCBB4ÏPrèÏœ9“,€’)55uôèÑòJuêÔiÙ²e^;‰ŒŒ\¸p¡²%666,,¬K—.jÓBEû’%KäÍÔ«WO~ŽŸìŸþqrrJIIqttܹs§‰‰‰æI °+•JåâârþüyeKî—ôï1***44TÚ\³fM™2e êU¨PaíÚµòæÖ­[Ï�;'~ôèQ�‘#Gž:uÊÏÏ/==ýرcÒ1—/_¾téÒ½{÷ôõõ+W®,¿£©S§Êχ444Ìr-줤¤I“&‰tI›zzzâöÐ|úôé† ÄÙnjӱcG�ÌúòæÍ›322Ž9".–¹¹¹²Ñ>bÄéww÷æÍ›ç#�åË—·¨\“Ý»w¯¸óÃÃÃ]]]ùå—Õ«W;88H»J•*Õ¹sçíÛ·Kk}?~üÝwß­[·®Z‡ ,pssÓÉ\µfýúõʧæIýúõE~¤/H¤ËtèÐ!Ñ¡¸Ä"câvo_\‘ˆM9á›6múã�?vïÞ-Ò(ZLMMÅ»�»½pá‚Ø%R}íÚµ€€‘mñ–E‹¸äïÄ�#N'>DìÑ£‡<ùK‘®;vH¢ñãLJ„„ˆÁˆ•+WnéÒ¥r•\ŒÓßßÿÙ³g"Ÿ���âHqÇŠNÄ©å…8ĹDŠ<==W­ZU°ßм(@€’èÁƒ¿üòËèÑ£:$7ŠøòåËáááñññ5kÖ̹‡«W¯z{{ûøøL˜0As¥±×ËË+,,¬F�¶¶¶R£ZÕ¸ZµjË–-»téR¥J•ìììôôô?~ìîî>dÈ�„„„�?þxëÖ­ÖÖÖYž½@º ܰaƒ¿r}�ÌÅöïßçΑ�ÜT<+W®,­ ѲeËÉ“'àe²··�‹‹;qâ„ÜríÚµ½{÷8pàÂ… FFF›7oîÖ­›¸prZ¼wKK˪U«Š‘K¥ð”””_ýU¼Y¹“ÈÈH GGGåÔuqÇŽ+WÒu2W~]5iÒÄÀÀ@lŠkäææ6þ|å,Ý»wïúùùÝ¿_ÜT 4ÐÕÕ•w™››ûûûË›ÿý÷¶mÛÄÛݽ{·8L|ˆöìÙ#&Î.n1Bù\Ož<9|ø°È§Èª¸1ÄEìÕ«×�7Nž<)¿#qÅÕÿñÇ5jį_PÒ�PݸqcÁ‚j�ééé~™zôèÑ¥K—œ{8~üøÄ‰s8 22rÍš5­[·Öœ@*Ù±c‡§§çâÅ‹ŒŒŒJ•*%=÷¬^½z“'OÎÓ²ùëjÊ”)×®]ËrWH&H3Ls&Î"Nš’’R€�”ýþûïåË—ÿõ×_•ÏßÓÓÓëÕ«—¸‚U«V•[:tè0xðà®]»J¥RÉÔ©SÝÝÝ5¿!iùé§Ÿ:v줓ù ¿uëÖi.œòí·ßŠÃÄ^q®Ù³g+KœJ"�óçÏAÿþý•ÓÌûõ몜 onn>kÖ,qç(ëÔ²û÷ïËdee%ò)­R§NWWWåBù z¸råŠ\ÃÕÉ,¶zxxtîÜYóà*Uªœ|çÎ�ŒŒ ;;» 䦮W€]½¾°°°wß}רØ822ò•ÏKÌŸ/^ˆ·vóæÍ””{{ûöíÛ‹7(ï=þ¼­­­ò‰…EÊ… ÄàkÖ¬Ù¥K ÍcÄ¿ÉcccÃÃÃoܸ!Ò(UÌË–-ëèèØ´iSÍõ=òAÜúHšÛ®&!!A#®…¸R­Zµjܸq–çãÜ¿ÿƒJ—.-Ö®];SSSµ›vÛ¶mâŒâºòÉ'ZJ@ÑÇ h€ÂdccÓ·oߢÖUžH“ˆ»wﮥê³NæºòB½š6lX”/qƒL9£««kmmÝ4“–†¡§§÷Q¦<½ªf¦7“¨j™²Üåèè˜Ë†žÃ*TÈùÁÌÌ,7k W¬X1ç)ÿÒR!üŠÐ#xëÖ­?¿úê+R@ häßÑ£G/_¾\½zõ?ü�lPCù¤R©\\\D�ÝSõ”p �O®®®'Ož,W®Ü°aÃÈM<„à IOOWn¦¦¦…®r###côèÑÞÞÞmÛ¶1bDóæÍ×®];mÚ4±÷çŸ.Uª×€& ÐoÈ£G�”›<¨U«V¡w•þþþ+V¬A||¼o&yW³fÍFŒÁÅ�%–àxCÖ¯_¯Üôöö. ]åFTTT–íeʔٴi“žÿ¤�5f@h×_ýuèСݻwŸ™I...¹©`WyR½zõƒþðÃgΜIII©U«–““ÓøñãÍÍ͹¾r «R©È À±`@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+(@´‚4@+ HA‰,ÅöööÆÆÆäx}ÉÉÉ÷îÝ“â¶mÛZYY•ØTP€.¹‚ƒƒ{öìIíÙ¶m[�=JìÛg €VP€hKp”\ööör¼mÛ¶š5k’¼í’““W¯^-ÅÇgesP(nÞ¼)/~«¬Â•@ K.em®fÍšuëÖ%'xÛ%%%ÙÚÚJñ{ï½gbbBN@á*á3äX‚ Ì€P|O�:UŽI@ᢠ øÐÕÕeÙ €¢ƒ%8ZA  ZÁЊ�¤¤¤Å‹Kñ„ X pQ€P¬$%%‘€"‚%8ZA  ZA  Za@ J2•J•‘‘!~’ ”Xºººzzzâ'©(p J¢ÔÔÔç™D@õÐÕÕ544,�I$¤ P€(Y’““£¢¢H S©T)))1™ÌÌÌÊ—/ollLZ^k@” ©©©wïÞ¥ú ä@|@ÄÇD|XHÅëc4€âC__¿Q£FrLB@Mzzú½{÷ÒÒÒH�3ñ1* ¯‰4€âÃÐаgÏžä²óèÑ£äädySOOÏ2“øÿ)“”X©©©/2‰Xjñ‘©\¹2ùy J„ôôô¸¸8yÓÈÈÈÁÁÁÀ€êðßO„™™Y¹råîܹ“’’"5Š�Œøà0 úuðÕ@‰ \÷YWW×ÞÞžê3 F|(ÄGC|@²üà (@”ÊéϦ¦¦FFFäÐ$>â"oÆÇÇ““×Á×\ø×Þ+¯$›“¼í2ÒÓïÞ “â*5ëèñ2¼=ú6q  mʉœ$ÈŽ¹¹¹üy¡ýš(@(>ÒÒROÙ'Å•ªÖ0¢ ÿŸJ¥JOO—7K•*EN€ì(g@‹Žøø(å@ž°@ñ—‘‘¡Üä¡j@Ô> jä h€âO¥R)7™Î ä@í¢öñAžP€hh€VP€hh€V�¨ÉÈP=IH&BY3c==žÙäh¨{’�l;-€<Ñsû”³0!@þ°@+(@´‚%8£ßh†F�ú ’cP¸(@(>ôôô¬llÉ@Á­  àµ}ú´8¬Y³fëׯ—^¢¯¯Ï•…Œ4€7gL·²nϪ‘§ Š½Ê™ìììš4i¢¹×ØØ¸a&KKË�>úHmoZZÚgŸ}fnn>cÆ ©%55U´;vlÞ¼y­[·NOOß°aƒ´JFTTÔ˜1cvíÚ%¿¼|ùòâ…>\¹r¥Ôâää¤yCCÃ÷ß_ìÚ´iÓ°aÃFŽ)µ¿óÎ;â§©©©´)‚:uêpA¡‰4P˜Þ}÷Ýœ¨V­šfcݺuÅÏzõêÍ�;7))IÄ‹/nݺõ¥K—Ê”)#Ó¢E ±kíÚµ"Þ³gϽ{÷ìíí•�L�:uÍš5ééé" š0aB–ؽ{·Næ‚!\,ä•) ‘‰‰IÎä°¨…¡¡¡\nnÚ´éŽ;äMÉW_}%*•êĉj/¯V­Z¿~ý¤øðáÃW¯^ÕÒRSŽùKÿ‰˜„Þ¾ÿ·MKËec�366ž0a‚ïÚµëH&ggç^¢««+ééé\;d‰4PÈÌÌ̤àÆ�š{/_¾,Ç*•J{Ã9r¤¥¥¥t–þýûëdN‹Îáx)xòä Y¢ ²úõëKA``à­[·”»._¾|øÞ½{DüðááC‡Jí666>>>]»výù知–¸¸¸�7vèСAƒbSÄ))ÿ} RppðíÛ·«U«&w«R©þøãys×®]¿üò‹••U#±³³ëÕ«×æÍ›ÍÍÍûôé“ó°ûõë7sæÌ;wîˆø`&¸¸¸ÈkI €B¦««ëçç·råJOOÏË—/‹ÍêÕ«;99�9²\¹râ€5j|üñÇ}úôiÞ¼¹žÞ¿«ìÛ·oúôé¡¡¡r'±±±uêÔyÿý÷çϟߢE �… *•wpphݺõ–-[Œ��³L×®]7oÞ,Î%¯L�SSS1Œ±cÇþõ×_¥J•rttœ4iR§N�¸ �Q€ ŸžžÞÈLYîݾ}»ZK§L9t˜Co9»{÷®ø9dÈ�Ü\»ví½{÷rù�í�M È‚‚‚ªW¯Þ®];R�×Ç h¨+kf=·y�RQ¢ÞoXXØ©S§æÎ�«««ËÕÇë£ uzzºå,LÈC äêêjjj:|øpR�‚ùeB G�õòòúúë¯mllÈ 3 £ßh†­:u“c@¼½½ÝÜÜ,--»wï>`À€7n899Y[[ÿøã�$…4€âCO_ß®ZMòÀ+ÅÅÅ :4--MÄûöí3fŒÔ¾iÓ¦2eÊ�–àJœR¥JYXX¨5Λ7¯_¿~$ˆÐ@‰c``°cÇŽÉ“'Ÿ?ÞØØ¸eË–S¦LiÓ¦ ™Aßi¤(�Z¶lB U i©)¡‡öHñûº‘€BD@ñ‘‘‘ñ â–“€ÂÅCZÁ hü«³Ñ•ºÆñäo»$�”ú�¤¸�ñ9c–ààíqùŸ·rØu{qérÀ h€VP€hh€VP€hh€VP€hh€V�ņ®®®•¥™“€ÂE@ñald8áónä ˆ` €VP€hh€V°4€âC¥R=�K”âÒ¦<‡ pQ€P|$§¤.þ3HЧïmblDN ŸT:‰OIÿLËè貊�O  !ñ©Î‚¤á_“oé˜Ù� øö  ZA  ZA  €’%&&&==�<à 0 �¢Õ›Ì"ÔªV­J¢E\ZZZŸ>}6lØP¥J²m£ ¹R­óÈW£R©H ˆûñÇ�;–‘‘A*ð°PRlÛ¶í·ß~#xc˜  ýFÓ×ïÒº±“”Nž<9hÐ þ^ohÅè7š�þ¾Cд{÷îþýû'&&©Q‰ñ<}ú´råÊ\ âŠ4P$¨TªÀÀÀM›6�:uêÑ£Giii666Íš5ûüóÏ{÷î­«««ù’„„„eË–mÙ²åêÕ«/^¼PÎn?~üâÅ‹¥xÁ‚S¦LQî­V­šoݺµgÏžòæå˗ׯ_ÿþ}ooo±úÓO?‰Ÿ¥K—ž;wî AƒÔÆpîÜ9__ßÇß½{÷éÓ§ööö;vKÄHFŒ1`À€���ððpÑ’œœœ��  ¯_¿Þ¹s爈ˆÞ½{oÚ´ÉÀà¿•ÆÖ­[‹W}üñÇgϞݸq£èPYì~ðàAõêÕ«U«& oÞ¼)^"ÆæååU·nÝøøømÛ¶¹»»KUo777##£ßÿ]:ØÚÚú›o¾yñâ…\IcèÚµ«fJ›6mªR©–.]úÑG͘1ƒ{¬°è‘ÅFjjÚž¿þ‘þ1 «ª�­úÈ -Z){{{©ú,ÑÕÕ�8q¢/[¶,))IÞuñâÅ'Nˆ@¹z†dÖ¬Y3·‡$õéÓgõêÕ{÷î­_¿¾Ô3bĈC‡ýùçŸgÏžuvv5jT™2eÄÞçÏŸwëÖ-""ÂÎÎnݺurõYR¾|yÑU¹råDÖ«W/yä½{÷ž0a‚———|°¯¯ïôéÓÅ{2dˆ££c»ví/^,^.O÷É9v옲ÿ1cÆXYYIñÎ�;³{¬âîÝ»¥ƒ¹Á hÅGzFÆÉó×¥ÿDLBo‹Ë—/KÁ�7ÔvÕªUK nݺ%·_½zU bccÕ^b``0nܸü�äÝwß•‚+W®Ì˜1£I“&"¶´´\·nÝ‹/–-[&í»®_¿.‚Q£F™››köS®\9y¾öéÓ§—,Y¢Ü[¥J92dÈ—_~©öò:üüóÏR¬R©fÏž­Ü+•Â¥øæÍ›{÷îÍò½øøøˆa|üñÇÜ`…ˆ4PȤ—©à«dff&ÇÏŸ?—c)X°`Abb¢Ú«œœœôõõó1’R¥JI�µµuÿþý³<æñãÇ+V¬�âN�:e×ÕÀ�¥IЂ««kJJмKù„@{{û,_>~üx)Þ·oŸ8©Ú^9‹-Ò|ùùóç¯^½*Æ ö4B¼a €B6eÊ??¿+VåpXjjª·mÛVšz|åÊ•:\»vMy¤­­­¼nrþXZZÊ�þS³wï^yI y‚¶&###yy�'Ož„„„äi&&&½zõ’b•J%­7"+_¾ü�!C¤xß¾}òr™���Næôjî®ÂE(dººº}ûö1b„r¾óµk×¾ÿþ{yr´NfVŽK—.-/LZ¿~ýÉ“'¿xñâ Œöøñãr¬\±ZS³fÍäX­‚œ-[¶”ã;wî¨íïWOï¿åMÍIЛ6mªW¯^ãÆ�¹» h IKKóññiÛ¶m·nÝlllüüü²;rܸqS¦L‘âÔÔÔßÿ½víÚžžžÙ=”¯ HÏK”h®þ¡¤|bttt^O¤|¹rùIÍš5ûôé#ÅÞÞÞÊþOœ8Áôç¢À€EAZZÚŠ+~ûí7}}ýyóæ999éééEDDäð’ùóç׫Wo̘1ÒÜ稨¨/¿üÒÃÃcåÊ• 6ÔÒ8ãããåXœ7‡IÐVVVrœs©ú•/Ïò,...›7oARRÒòåËg̘!µûøøˆ4ˆ›ªÐ1(|×®]kܸñ˜1cš5kvñâÅ~ýúÉëKäìóÏ? :t¨|ü©S§š7o¾víZ- ÕÚÚZŽ5WÆPR®("?Q0÷ þoú¬üvìXG>xð@Ž;tè�×ݼyS ìììj×®�å1~øa“&M¤Xz¡���È@�=¸µŠ Ð@a:pà@XX˜׫WOmoOܳg�fcçÎ�ÿüóO)V›ž¬««+Çéééùp‡Ê—//Å���ÊiÎjä4kÖ¬F�y=Qhh¨|ýõ×9æââ"—.]Ú±cÇ–-[úõëgbb­UP€ ÓÅ‹å8&&FmïÝ»wå8%%E¹ëرc·oßÖì°[·nÒ$hµ*³²&ûäÉ“|XôóÝwßIqbbâêÕ«³;rûöíR ?0÷ÒÒÒ¤ –-[vôèÑ9Ù§O¹º=lØ°ØØXÖß(:(@(>LŒ�f~3@úOÄ$ðVPNLöóóSîJHH˜>}º¼©,FëdNŽþùçŸ5;LIIyùò¥>øàe»���Ÿ8qBŽwíÚ%×£ÓÒÒ¤@ê!;ãÇ�oÛ¶­‹1hÖÍ…#GŽœ:uJÇÿôÓO³ëJíMÉV®\yÿþ}¬X±¢lÙ²9 F__ÿÛo¿•âèèèš5k¶jÕŠûªˆ  &e™ØÝÝ}„ ÇŽ ]¶lY“L†††Ò^77·'NˆŸAAAR‹——×úõëÕ:\ºtiJJб±ñ¯¿þªl]•*UJŠgΜ¹iÓ¦óçÏÿðóg϶°°�Ú¯^½*ÑÑÑÙ�ÙÀÀÀÏϯqãÆ"~öìYŸ>}Ôâxðà�4 ¹[·nb<9¼}1þU«V©5ž>~Û¶miiiûöí›>}úÁƒåã�9"úIMM-Uª”æ’Êfffƒ zøð¡Ï�;w6mÚ$ú×ÕÕ½w¯¯³³sll¬¼8…\@WoM ׯ_/Æ``` Îuûömww÷Q£F‰3.[¶lìØ±¹É¡8ÅãÇ�Å[X»v­••Õý¼høŸÊÛèѶ¶¶%ödÀï pyyy5iÒdÍš5ׯ_755­Q£FÏž=GŒ!.=<<¾øâ‹Ó§O—-[V´Ï˜1ÃÆÆæìÙ³ÒkU*ÕÆL"622rpp7nÜ·ß~[¹reÍÍ™3GWWwýúõÏŸ?g\³7sss1ò‰'®[·îÀ�?üðCbb¢[­Zµ&Mšäìì\©R¥W¾÷O>ùdÆ ³gÏž>}ztt´¥¥¥˜ˆ‡ &?ê07ºvíêêêÚ¦M›ªU«rG €B¦§§7!S–{«W¯¬Öèää¤R©òz"ƒù™ÔÚÝ2åoð 6\¸páë¼ýÚµk¯[·î5s(­%Íã‹ Њ�¤ä”y«·HñÔá½y!%GPP�¹¹yß¾}IE‘BLËèL¾Eþ› yÏž= 2dˆ¹¹9Ù(R(@@ƒ®žŽ™ iÀÛÂÍÍ-99yܸq¤¢¨Ñ#Þ^ׯ_Ÿ7o^Ïž=ß{ï=²QÔ0À•’’"Ç/_¾ÌÓk÷ïß?kÖ,##£Î�;<øÅ‹=zôHKKûìÝ ¼•s¾?ðÖ¾¦›Â¤vg¤œ2EgHÃѸÕ+cr$1#é„8d^.ÍÌaÆ8T82^s—"EJ¤8è8Ea2Õ�!#’èBWv{¯½ÖÿÑó?ëìÓ�â×Zûñ~¿šµ¿ë÷<ëY«ïº¼ö|z|ז߬H!@ó¥�uÜ}÷vú@]WYY¹¶þœ¸þ°I—úõëë Ö‡ê кukMv±7Þx#WÏ›7o‡n{Î9ç,_¾<*^xá…aÆŋ7ß|sÛ¶m5¶  €]äÝwß}õÕWoºé¦ÜÊ3Ï<óÏÿüÏ={ölÞ¼y»víÊÊʶ„h·8€Î4hPt½-Lh`9üðÃW­ZU{%›Íþë&Q½`Á‚Ž;nÿãÇ�¿ôÒKgÏžÕÿðÿ0dÈ�Þ½{klÁ@»ÈÊ•+¿á:è gžyF'ëŠ"- 4AÁ$Gqqñ!‡’«5 ¿Ð@r”––þøÇ?Ö€aA B @f@É‘N§çÏŸ×?øÁJJ|Ää“tHŽt:=cÆŒ¸þû¿ÿ{4@~Á@h‚@„€ Ð!€ 4A ¢D ØL6›­ªªÒ‡HYYY*•ÒØ9h6WUU5eÊ}ˆœtÒIåååú;G $Gô Á\�«5¶´dÉ’ÍVÒéôf+À·B $G*•Ú}÷Ýõ¶£[·n_¹O6›Õ(¾h¨ÃæÏŸî¹ç.^¼ø‚ .¸í¶Û4„‚R¤Pw ~üøÿ÷×pvˆ¾C^zé¥ÍVZ¶l©-Àö}øá‡çœsΉ'ž¨ì(4|‡ì»ï¾›­´nÝZ[€í¨¬¬ìÛ·ïÊ•+µ‚�`4°u555ýúõ›={¶V°sÐPª««ß{ï½or„t:ý->žµk×öíÛw„ žvš�gþóŸï¿ÿþ±cÇöêÕë¾ûî‹Vf̘qï½÷Μ9ó£�>jÚ´i—.].¼ðÂ>}úlõæ ,xä‘GÆ�Ï=÷tïÞ}³­UUUÑÑ&Ožüä“OΚ5«uëÖÙlöñÇÿãÿ8wîÜ5kÖ´mÛ¶ÿþC† ))ùß´pùòåݺu{÷Ýws+÷o×�:uг'ޝ$€€üxã�7|ðÁÇ{lÑ¢E¹ÅÕ«W8ð‘GÉ­|òÉ'S79å”Szè¡òòòxýÍ7ß?~|´ç[o½µÕãOœ81Úáé§Ÿ^»vm¼’N§—,YÒ¿ÿçŸ>·Û‚ ®¸âŠÙ³gG;ç›5köä“OFűÇûÑGEEïÞ½ûÛ߯[ëׯïéãë@@~,[¶¬U«VíÛ·ÏÐ+V¬øñ�\UU5zôèÎ�;×ÔÔLŸ>ý¶ÛnÛ°aC½M�òÏ~ö³Ç{,ª_}õջᄏ~ýú«W¯ÞÖñ÷ÜsÏ¡C‡.Y²ä¥—^ŠW.\xá…F÷8a„¶mÛ~ðÁ7ÜpÃ믿mŠVÆ�úé§Ç{–––F»ÅE¼²ûî»Ç+ðõ   ?ŽÛäç?ÿyÓ¦M«ªª¢•©S§þú׿¾öÚkS©T¼Ï�~ô£ÓO?ý¨£ŽŠƒæ‰'Ž3æœsÎùá&õ6�¡|ê©§nõøG}tt9pàÀ\}ÆgüË¿üË�!Câ«�:u:òÈ#Û¶m»jÕªèê=÷Ü“  á[áK ŸvÛm·½öÚ+®�9æ˜ë®».—>Ç:vìx÷Ýwç®Þxã�µ·~åYÉ-Z´ÈÕ¿ÿýïsés¬Y³f§�vZ\Ïž=;“ÉxFø  �}¢}ÿDµ†PWäÆ\ì»ï¾[ÝáôÓO?øàƒãú­·ÞúÓŸþ”ÛÔ Aƒ¯yðzÛH«;tè6løì³Ï<|‹Œà’£¬¬ìä“OÖ’'•J�yæ™ ,ˆ¯¾ôÒK]ºtù¶Þ¸qã\½aÆ=÷ÜSÃù¶8Cê€nݺåê÷ß?нÁÁ·K u@»vírõš5k4„:A u@Ó¦Msuí¡PÈÌ€’£¦¦æ½÷Þ‹ë6mÚë ‰QRò¿QÞ÷¾÷= ¡n¼nµHŒêêê'žx"® $€ IÖ®]›«¿Åo „ Œà€:`Ñ¢EqQ^^^û ¡�   ˜3gN\œ}öÙ�5Úe÷›J¥â¢¦¦Æ³ÀŽ@@ððÃ×ÛtúóUW]U{=“Éäêl6û­ßoýúõãbÕªUžv” Å|°Õõ©S§Îž=;*n¼ñÆvíÚÕÞ´nݺ­Ö9étzûwúùçŸçê-#ì}öÙ'.^{íµêêê¸^¿~ý¤I“<_|%4Š^xaøðáµOj®·iúóùçŸ:tèf7™?~®ž7oÞ–Ç\¶lY®^½zõ–;üíoËÕŸ~úéf[�<òȸX±bÅyç�÷Ê+¯<õÔSÑbˆ³­Iž-€ѱcÇ;î¸cܸqƒ>ôÐC‹ŠŠž{î¹[n¹eãÆ�¿ýío‡ –ÛsåÊ•‹/þË_þrýõ×ço½õÖÆ�wïÞýÀlРA½M§?�3&·ÃرcO<ñÄÒÒÒÜÊ'Ÿ|Ý]íºtéRû!]tÑE#GŽ\³fM½Mc@"ÅÅÅÑJŸ>}<_|%4Š.]ºLŸ>ý¦›nºõÖ[?úè£ ì¿ÿþ—\rÉ…^ئM›Ú{Þ}÷Ý×]wÝf7_³fÍå—_wÜqÇàÁƒ¯ºêª‡zhéÒ¥¹}ôÑ™3gqÄ'NŒ®ž|òÉ/¼ðBíÁ#FŒ˜2eÊÀ�¯¸âŠx¥eË–Ï<óLtعsç6mÚ´[·nÑa?üpO_‡š/µhÑ¢uëÖú@]WYYÙ¤I“¸Ž^Ò¹/I€:¤U«Vwn²ýÝ®Ýdûûü~“íì0yòä¯ó�;ì°Y³fyjØ f@„3 Ø\YYÙI'�¤q+4všHÔïýû÷÷ûÀ7—J¥ÊËËõø†Ð@rUTTè@�@ó¥¡�ýi÷ÙŸêÀfÆ_p”&»@UUU\|ñźA’øBȧU«V}òÉ'q=oÞ< !Iœ ù±dÉ’¹sçÞzë­™L&^ùë_ÿ:`À€¾}ûî³Ï>÷wרQ#]¢N@É‘IW0ç?ãz¿Ã�+*)Õ YŸ>}þô§?m¶ø›DÅ”)S~ò“ŸèušHŽl6³aå²\­!¸×^{MH63 B @h‚@„€ Ð!€ 4A ’/•JÕ¾šÍfõ¶%“ÉlçíÃ)Ñ I¿PÕß}Ï\­9EEÿç4ÄêêêÒÒRm�­J§ÓÛyû°CÐ@r—–}¿ûÉú°¥T*UVVVUU_]¿~}ƒ ´¶*zƒäêè�ã èoBxð�иqã\½víZS8`«¢·FôÙê‡� €øN¨�£UWW/]ºT ›‰ÞÑ[#zƒäVš4i¢-ß„ß õë×/--Í%këÖ­{÷Ýw›4iÒ¨Q£’’Snù.Ëd2étzýúõk×®­�>Go™òòrýù&Ð@rd3™�ë>‹ëòÆÍR~y¨%•JµjÕêƒ>È�ø\]]½jÍ�m½e €þ†Ð@rdjªß�19®Û÷:»¸È?Qü 4Øo¿ýjgÐÀV¥R©èÍâ»:¿9§|‡Ätii©VÀ¶Doéó·ÅÐß- 4øþ÷¿¿qãÆµk×®[·®ªªJO RVVÖ¸qã&Mš”——›¼ñm@À—6¬\¶åââÅ‹7[©¨¨Ð+ •JÕߤyóæÙl6“ÉÊÁwüQTT$tA _š:ìŒ-Û Û|Åÿ9 yR©Tqq±>!˜ @h‚@„€ ÐQ¢éõ»G¶\ü·3ÓØih 9ŠŠKö9ä¨\­!ì�†{µÜr±¢¢Bg`§ h€äH7ݯ­>3 B @h‚0HŽL:½lÁËqÝòà#ŠJ|Ää“tHŽl¶fõïÄu‹Ž‡ùˆÈ/#8B @h‚@„€ Ð!€ 4A ¢D €$).-Ó€!€’£¸´¼}¯sô @Á@h‚@„Ð@rd³ÙLº*®‹JÊR©”žä‘š/ÝÖè±Mšêu]eUÍï&-ˆëa½®_V¬'|SþXÇpßû=i#8B @h‚@„€ Ð!€ 4A B @%Z$ç­8Õ½C‹\­!ù%€ô‰V\”  È»:9‚㨣Ž>|¸' �Õ½úõ×_Ÿ9sæèÑ£+++=«îзß~{t¹|ùò±cÇzþ V  W®\9nܸ¸1b„ç¨-]“™ñÆÇñŸ¨Ö€üªcô=÷Ü“›¼ñÆoLŸ>ÝSä¤k²µ謆äW]  ÓéôèÑ£k¯8  `Õ¥zâĉ~øa�=JKKã•éÓ§¿ù曞E€T—èøë¯»îº“O>9·è$h€ÂTgè¹sçΚ5«C‡?úÑ�˜[3fÌŠ+<‘…¦¤®<Ð;î¸#º¼è¢‹¢ËcŽ9æÀ|ûí·£º²²ò®»îºá†¾ò™Læ…^xà�>øà+¯¼2Z;vì¿þë¿FljŽvï½÷rÈ!ñž_|ñÅã�?~ÿý÷_{íµGuTtõ–[n¹ï¾û–/_~ôÑG�3¦Y³f¹Ã~øá‡Ñm§OŸþÖ[o­]»¶Q£FÇüe—]ÖªU«ÚàÎ;ïü§ú§­>¶wÞyç€È]=òÈ#gÍš•»ÝéŒ3¼X¨mñòõ[[]¼ÙBôÛ©^�/u#€^¹rå¸qãvÛm·sÏ=7ºšJ¥~ñ‹_Ä!rdôèÑÆ +//ßÖÍ_yå•ñ›,Y²$º§Õ—]vÙ¨Q£âþüç?:túôéÏ<óÌ„ üñuëÖEë×\sÍúõë{ö왋ƒ§N�zûí·ÇGÈf³¿ÿýN§/¿üòßýîw¥¥¥/¾øâo~ó›è€wß}÷¤I“Ž9æ˜ÜÃøùÏÞ¦M›‹/¾8~‘† ÞqÇ�:uÚÿýk?àûî»oÆŒ]tQ&“9ùä“�`KmOÜÊê‹Ño­z@¾Ô�úøCeeeÿþý›6m¯Dõµ×^-Fõ'Ÿ|2vìØlõ¶¿þõ¯?úè£Y³fåbßÈÍ7ß묳¢â³Ï>»ï¾ûr‹Øþç®\¹ò—¿üåÎ5mРA}ûöýÊÝ-ZÔ»woï’¤¼´hXïƒsµ†äW¡зß~{tyÖYg5iÒdË­çœsÎÕW_½~ýúz›¾Ý{Ĉ÷ÜsÏ.{l—^zií•ÊÊÊÉ“'?ðÀÏ>ûl¼²­ïïÛ·ï/ùË÷Þ{/ªG�5hРT*•Û:nܸ’’’Ÿýìg;÷ÀšoâÅÍwPô>ª_V¬|G¼wç)[Y=ñV� pô‚+V¬7n\½­Í߈5iÒ$>�8öàƒ®\¹2/uÑ¢EC‡­¨¨xâ‰'¢âÌ3ÏÜþþÅÅÅW^ye\¿óÎ;S¦LÉmª¬¬|üñÇ{ôè±÷Þ{{�°-ÍmåÏ4 €<*è3 ÿð‡?lܸ1*6ûúÁÚjŸb\YY9zôèë®»nW>È… ^ýõ“&Mêׯßk¯½Öºuëz›¢ð¯¼áùçŸ?|øð+VDõˆ#~úÓŸÆëS§N]»v­¯êºÂ  ÓéôÝwß�J¥¦M›ÖªU«íìyÝu×Mš4)®ïºë®«¯¾º¬¬l<Âl6û›MvÛm·§žzê„NØ¡›G·2dH—Ϙ1ãõ×_?ä�C¢úá‡nÖ¬Y.�¨£ 7€~ôÑG—.]Ú£G�¯ vkÐüñC=Ô¿ÿ]ð/¸à‚ÿø�ÿˆŠ±cÇîhú»ä’Kn¾ùæx†õˆ#xà�uëÖ=õÔSç�w^yy¹W'ì¨Êªš‘SߌëËzý½yÐùU¸3 G�]nö-[u衇üñ¹«#FŒØïᇎÓçŽ;žtÒI;w�fÍšý⿈ëGydÙ²e“&Múâ‹/úõëç¥ ;§²ª&þ£yW ôË/¿<{öì<°gÏž_gÿ«¯¾:WÏŸ?ÿ¹çž ýï¸ãŽ¸èØ±ã–[kO¦Þ¾Ë/¿¼´´4*ªªªî¼ó·~8ú[qÄ^š@]W ôÍ7ß]<8•J}�ý�=öØvíÚå®Þzë­¡á‚ â"þÁÍ|ðÁqQUUµýã´nÝúì³ÏŽëÑ£G?ûì³N’¡è¹sçNž<9*úôéóõouÆgäê§Ÿ~úµ×^Ûl‡t:_|ñÅvŽ“Ûmû{æ’ñ—_~yÉ’%µ7=ñÄ/¾øb\ç’èí¸òÊ+ã£}öÙg555çž{®×%�@þùç—\rI\7lØðëßð€¨}uРA7nÌ]ýì³Ï>þøã¸~õÕW3™Ì¶Ž³páÂ\=gΜmíö�ÿø�¹|ÜqÇ�7îõ×_Ÿ6mÚ€.»ì²¾}ûÆ[—.]:räÈ3f 2d[‡êСCnÒH÷îÝ÷Ûo?¯K J 硬ZµjòäÉ£F�š?~¼Ò¯_¿Aƒí·ß~:tØÖ­6nÜø×¿þõoûÛfc7^}õÕþð‡C‡=è ƒÞ|óͻ¦æÿ)Ù{ï½×·oßóÏ??:r´5ÁœÍf_ýõçž{näÈ‘¹ƒ<øàƒ-Z´èÙ³gË–-k�øˆÜxã�ÿõ_ÿµ~ýú¨~ûí·Ï:ë¬xýøã�Ÿ9sft�<òH¼rùå—G—×\sÍvþîƒ~úé§£â¼óÎó¢’¡€è)S¦\pÁµWžÜdï½÷Î�¼¼¥… rÈ![Ý´`Á‚óÏ?¿aÆ6lØlÓÄM¢â�wÞ‰O�^µjU—.]6Û-“ÉܼÉ>ûìóá‡ÖÞÔ©S§W^yå†nxþùç×­[×¢E‹#Ž8¢_¿~½zõж¶jÕê–[n¹õÖ[£MÑûâŠ+z÷î½�¿{�=JKKËÊÊN=õT/J  (€î¿ÉŽÞªsçÎÙlö›ßû^{íµ£Ç9è ƒÆ�¿­­Wnò5µlÙ²êêê³Î:«Q£F^”@2iA!˜2eJt9`À­C]î¿ÿþöíÛ}ôÑZ$F‰äÝÿ÷Ï™3ç®»îÒ ø†Š‹R�+öÈÕ�_è<«¬¬4hPË–-Í߀o®´¤¨÷aûé@�@ïRï½÷Þ�!CV­ZuØa‡ 0`Ÿ}ö‰.ÿò—¿Üÿýåååú$‰z—6lØ“O>/¿üò¨Q£âÅ^½z�{$Œ/!Ü¥š7o¾ÙÊG1vìØTʰZ iœ½KÝtÓM6l˜2eÊúõëÛµkׯ_¿Áƒ—••é |+j2™¬Žëƒ÷kZ\äߨòI½K5nÜøÞ{ïÕ¤:��ôÊqݾÕîÅþq ¯œ@h‚0‚ƒ/Íkqƺ}ÿN¨ë6nÜøáîÆõœÖç–——ë ß9³gëuH×®]5’ÍÐ!€ 4A B @h‚@D‰‰QZZÚ§OŸ\­!ù%€’£¨¨hÏ=÷Ô€aA B @f@ÉQUUõä“OÆõO~ò“²²2=È#4�ÙlöÓO?ÍÕ�_Fp„€ Ð!€ 4A B @%ZÀ®±lÙ²ÚW/^\ûjEE…@ ØEN9å”ílÍf³Z #€’£¨¨¨eË–¹ZCòK $Giié‰'ž¨Â‚!€ 4A˜ $G&“ùä“Oâzï½÷ö=„…fâĉµ¯rÈ!zÉ&€’£ººú©§žŠësÏ=·¼¼\O JË–-k_­¨¨ÐH6§„€ Ð!€ 4A B @h‚@„€ J´HÎ'ZIÉqÇ—«5 ¿4@rWTTè@�0‚€ Ð!€ 3 �䨮®ž1cF\wïÞ½´´TOòH $G&“yÿý÷sµ†ä—!€ 4A —ò¥N�:uèÐA¨ë*++_xá…¸>üðÃëׯ¯'yä h‚@„€ ÐáK�äH¥RM›6ÍÕ�_h¾Ôñ_ž¬·çŸõ�Dø^ô¿ì�gk@ÞÁ@h‚@„H�l¶ÞÆ ÑŸÕ«Wg£€¼@ RS]oÞ´èÏÈ‘#7nܨù%€ 4A B @h‚@„€ Ð!€ 4A”h�EÅõöëýìÙ³GI‰Ï7€<Ð RT\¯ÅÑÏ®]»j@ÞÁ@h‚@„H�št½÷çE¦M›V]]­ùåK�Éfê}²¨ÞÆÏ§M«jÓ¦M»ví´ �œ $Îüé£F�jß¾½Nä—€ Ð!€ 4A ¢D €¤ùA�KÜþâ‹/Ö €ür4�8å š6mºÿþûë@~  B @f@IúH+«wØ©ÑÏáÃÏÖ €¼s4A B @h‚@ ’®ª÷ÊcÑŸáÇWVVê@~  B @h‚@„€ Ð!€ 4A B @%Z$Gª¨ÞÞD?»víZ\\¬ù%€¤¸¤Þþ�¢Ÿ={öÔ €¼3‚€ œÍ—þ²Ço:|ϼäWƒ6_¹a�®ìb΀ g@É‘®É¾öQM\ÿC«â’┞ä‘HŽt¦Þ´Eé¸îÜ¢¸Ä\€¼2‚€ Ð!€ 4A B @h‚@„€ ÐQ¢@b”—Ô»¬ky® ¿$4@r¤R©¦»i@¡0‚€ Ð!€ 3 �äØ˜ÎŽ~µ*®/þaYyIJOòH $G6[oue6W�_Fp„€ Œànñg™M?ÇW+**ô`×@ ×fÔú/Œj_Í °«Á@h‚@„€ ÐQ¢@b¥êµß«8WÇÞ»´Ñ—?.[ ?»˜H޲’Ô™—n¶XÑlÓêQQ¡?»˜!€ 4A˜ $GM&ûΪL\·Ý³¨8÷E„äƒHŽêšzãþR×ÃŽ,/ößxä•x€ Ð!€ 4A B @h‚@„€ ÐQ¢@b”×ëß¹,W�_h 9ŠŠRÍRúP Œà 4A  h 9ªÒÙ‡TÇõÏ.-+1 ŸÐ|é™~³pß}õ�º®ªªjê_'ÅuÙA½ËÊÊþwÛ£�ÖÝ¿×i§�æÉê"#8B @h‚@„€ Ð!€ 4A ¢D €ÄH¥RM›6ÍÕ�_h 9JKKO8á}(Fp„€ Ða4�™LfÍš5q½ûî»ù76€|@É‘N§Ÿ}öÙ¸îÝ»wYY™žä‘ÓB @h‚@„€ J´ 0-_¾<./^ÚÔ!h€uÉ%—l¶’Ífµ¨CŒà 4A  h 9Š‹‹øÃæj È/4�ÅÅÅmÚ´Ñ€!€(Pÿöoÿ½zõÒ  .@¨æÍ›ÇEEE…nu‘/! g@É‘N§çÎ�ׇzhI‰�8€|’ÎÉ‘Éd/^×�;wÖ€ü2‚€ Ð!€ 4A B @h‚@„€ J´H’ÒÒRM(h 9ÊÊÊúôé£Â‚@„€ Ì€’#›ÍVWWÇuiii*•Ò€<@ÉQ]]=iÒ¤¸îÝ»wYY™žä‘!€ 4A˜Í—N8á„:èu]eeåÛo¿×§œrJýúõõ �œ @h‚@„€ Ð!€ ˆ-’ó‰VRÒ½{÷\­!ù% ô‰V+€ ïŒà 4A  h 9ÒéôÌ™3ãúÈ#�ô=„ù%�’#�NϘ1#®»ví*€È/#8B @h‚@„€ Ð!€ 4A B @%Z$Fyyù°aÃrµ†ä—HŽT*U¿~}}(Fp„€ Ða4�•••#GŽŒëË.»Ì�(-Ñò¢ï¡ûkÄŒà 4A  h 9ª«6¾ðÄ„¸þñOû––•ë @  �äÈf³«W­ÈÕ�_Fp„€ Ð!€ 4A B @h‚@D‰‰QTTÔ¼eë\­!ù%€ô‰VZÖý§}õ @8C€ Ð!€ 3 �äÈd2+?^×{µØÇ÷ä—HŽtuÕŒ)�Æuïþ—•××€<@ÀÖ-ÿhÉNÜjñÙÚ¿¢¢B«H*4lÝà“ŽÚ™[íàþÙlV«H*RB @h‚@„€ J´¶êÎ)ÿ½·:±ck­€˜¶®y«}wâVûkÄŒà g@ úD+)ýÑ 'åj È/4�EÅÅû´9@ „!€ 4A˜ $GººjÎóÓâúðcz–”–é @  �äÈd2K¿›«5 ¿Œà 4A B @h‚@„€ Ð!€ ˆ-#•J5lÜ$Wk@~  �ä(-+?ñgè@�0‚€ Ða_êQöf‡òõúð-xcn~î·C½ Ð �äÈf³kÖ}×»7nà{òK $ÇÆªê‘N‰ëažR¿¼LOòÈ h‚@ðÿØ»xŸêüqüîjÉ)&B“ ¥"*Òb´‰Ð"Z´1íšÌ¤ÒÔŒŠoS~-“Ñ:"¦2%zIM¡h£ì»ìÛÝ>ÿ3÷|¿g>ÿ‹›íãò¹Ïç£Çg^ŸsÞg{�÷=Æë¾½@B(@� Ð$„4 ¡ @B(@� Ð$„4 ¡ @B¤K� ãEåO.Uª”œPŒ,Z$tªW¯. �ÜÌ @B(@� Ð$„4 ¡ @B(@� Ð$„4 ¡ @B¤K�4J–,yýõ×G±„-h y¤¤¤T¨PA¦à ! HhÂÐ@òضmÛßÿþ÷0¾ú꫽‡ h)@É#‹­_¿>Š% h™‚€„P€ ! HhB€„P€ !Ò¥€½´páÂ=Ø*''g·ÚתUKªàࢠÀÞ:ýôÓ÷ÃQb±˜TÀÁÅ$„Ð@òHMM=æ˜c¢XBŠ–4�<233/¹äy8@!@B(@�¦à`oM™2e¶ªV­šÔ@rS€’GnnîO?ýƵk×NKK“€ý£F�{°UõêÕ¥’›4�<²³³G�Æ=zôP€(Zæ€ ! HhB€„P€ ! HhB€„P€ ! Hˆt)’FfffÇŽ£XBŠ–4�§½äääÄ�ªÞYYYwÞyçž½ˆlÍÊ}rìì0¾£íq惀â&;;{]¾ P}vKJJJFFF…|A !ûŠôžÛ¶mÛøñã‡>3ßÛÌš5kàÀ�'N\´hÑ–-[âW}ùå—�5*‘_}>ýôÓÿýïG«>üðÃè÷-A�_»v­lÃ.Úš•+ P<ÿ’¾|ùr/UöX,ËÊÊZ™ï�C9âˆ#J–,)-{Oz·egg¿÷Þ{¯¿þú[o½µnݺ`IÍš5wØò¥—^ºé¦›Ê•+÷ûßÿ¾yóæA—ýüóÏüñ¹sçÆ7ËÌÌ2dHÐÅ»víúÙgŸKN9å”W_}5\{@ÍR Ôæ­ØøѼðkÕª%-$Ç_Õ,X�““#À>±iÓ¦à©ü­ÙPè½§½Ûžzê©yóæeee…Õç�™5kÖ�7Þüá÷Æo´jÕ*\xÒI'uîÜùôÓOŸ={v|ãzõêŸeÊ” ¿Aýúõ¥Ø·jÿöÿf™ÿ¿À¿I äææ.\¸PõØ·‚§Jðl©Y³¦á¡{Iz·õêÕ+ 6mÚôöÛoï¬Ù‹/¾tÓ *DÕçP°äùçŸ?ãŒ3w†+V¬X¹rå/6›3gŽ» ÀÁnéÒ¥Û¶m‹¾¦¦¦–Ï—‘‘Äò슼¼¼ìììõù‚8\<[‚'LõêÕågo(@ï¹úõëR€þæ›oÂnºeË–Ò¥KǯjÑ¢Å)§œ’¸{öÙgzè!7€¤—››»aÆèkfffÍš5ÓÓ•;€Ý<@9ä�*UªÌŸ??+++\gØ ЉrÁ„ÁC=Ô»wï-[¶Ä¯íÕ«W£F�d öFüðç2eÊdffÊ °—‚'IüÀÓ�7ÊÉÞð[ÁDéÚµë Aƒ¦M›‹Å{ì±aÆ 0à²Ë.Û‡îÑ£GÇŽ±Ùœ9sÚµkçNpðŠ™X®\9 ö‰²eËF�轤�(o¿ýö9çœóÕW__çÏŸß±cÇV­Z=õÔS'œpBB}x>·(à§§ÛÿotÁÿÈI ‹åææF_ ¼� `�Å�€ž3ÁÓ&~Rv‹)8èðß2eÊÕW_-™8qbãÆ�ï¸ãsÇû_­ÃËþïÿGN8¨åååÅõ–0`_)ð<)ð´a·(@'VÙ²e_}õÕ÷Þ{ïÄO —äææ>õÔS'Ÿ|òܹsåöñ©)�jU ÿ b €ä‹Å⿟ì+ž'ž6ìèÝ�——·yóæ=ØðœsΙ>}ú�!CêÔ©.ùî»ïÚ´i“••%«°e¤§¶;õ¨ð¿ –€¢¥@³}ôÑ .¸`_tÑEK—.�¾¦¤¤\yå•_ýõí·ß.™3gΰaÃdHV лjõêÕýû÷oÓ¦Í.¶�Åbï¾ûn�…%K–|òÉ'Û·ÿß÷€MŸ>=~m4¶?þ ©âX€Þ³YÃo½õÖµk×þæ7¿Ù~?;›æÕW_Ýáò.]º„A�Bs©R¥Â`õêÕº&p°+Žè 6DqNNÎ/¶�Åbwß}÷СC�<òÈè]‚ñû‰ßa¼I“&}øá‡Û/_·n]œqÆñ˃ý‡Á÷ßÕ ƒ34Sì¢Ü¼¼éó~ÿËõ‚Z€¢Vì Ћ/^»vmôõƒ>(¤ñÆ�GŽÙ¤I“'žx"øzþùçǯ�9sf¬Y³fáÂ…;ÜC·nÝ ¬Ú¶mÛÓO?Íš5‹æâµhÑ" rss;wî·hѢŋŸvÚiRQ$rrr>ú裦M›–.]Z6HVÅ¥ýÌ3Ï<þøãÁSuû  ¿É÷‹{HKK;çœsJä—¡çÎ�[`í'Ÿ|Ò¡C‡ùÓq”-[6~ÕêÕ«ûôéÆåË—?á„ tíµ×¦§L~™2eþõ¯Ýzë­üqðÜiÒ¤É]wÝuÞyçé¦À¾‹Å¦M›öN¾éÓ§wëÖ­˜ øá‡^xaüøñ .ܸqãGÑ´iÓ[n¹¥eË– :â‚ Þÿýå[³fÍO?ýT«V-=“dU\ Ð=óí“]Í™3gWšñ=Øù±Ç<ïôKH¨Þ½{?öØcV¯^ýóÏ??âˆ# ÙpÀ€÷ÜsÏÎÖöïß¿À¿½>Ð :ôŽ;îX±b…>zöÙgï¾ûîvíÚ=ýôÓ+W®¼óÎ;çÍ›·`Á‚áÇ2äÊ+¯Ü·‡8pàSO=õã�?Ê<ÅGºÅÍwÜѦM›1cÆ<ùä“Ñô›‹-êСÃĉ322v¶a·nÝN<ñÄ3f<÷Üs?ýôS¸°råÊ¿ýío›6mzòÉ'à\ॗ^:eÊ”àò³³³‹y7>|xpãjÖ¬9dÈ�p¢Ôàæ71|ظqãöyº{÷î·ÜrËÂ… /¼ðÂ]ùù�R¥(nªV­Ú²eËþýû¿ûî»%K–Œ–Ož<ù·¿ým!V©Rå¼óλçž{¦M›V©R¥`IJJJ°“¾}û¶iÓ&X{€_xfff©R¥Î>ûìN8¡˜÷��7Þzë­±XìÜsÏ�^ÓuôÑG�9²ZµjÕ«WßWÿ˜>^™2e222‚£téÒÅ�áXºt©$t €â«uëÖ·ß~{ü’Aƒ=÷Üs¿¸áa‡vñÅÁ™gžÙ¤I“ƒîÂË•+WÌoýk¯½NER`Ò•³Ï>{É’% .lÚ´iâŽ^øL/ìÐøñ㣭qQ€ŠµÒ¥KXrûí·ôÑG¿¸á¯ýëà³Aƒrx0=zt¤¥¥íÿ£ÉAj‹-êÒ¥Knn®Tt JwÜqQœ��}Ùe—-\¸°ðM*V¬}rЙ5k–$,¶nÝÚ±cÇU«VIÅÁH D¯^½:vì}]±bE»ví¶lÙRÈ&™™™Ág!o,ä@¶råJI8(äæævíÚuêÔ©Rq�R€øÏ»_yå•SO=5ZòÅ_tïÞ]f’ÕÖ­[%áÀ·~ýúŽ;Ž1B*^éR$�ÌôԛϫÅì–Ò¥K¿õÖ[§�vÚ‚ Â%ÿøÇ?6lø»ßýn×w2`À€{î¹'~I·nÝ^~ùå0^»ví¡‡Z`“|°oß¾feeýë_ÿ>|ø7ß|óÙgŸ•È¯Ä <88Ã`ÉÆ�k×®ìùöÛo/Y²d¸I,7nÜ+¯¼´_²dÉa‡vÉ%—<üðÕ*UúÅÓ¶ Žìÿßÿþ÷æÍ›«V­zæ™gÞpà gœqFá[�5ê�7ÞøôÓO—/_ž‘‘qä‘GžwÞyÝ»wßÙÔØ[¶lùç?ÿœdŸ>}‚�_û÷ïägÅŠg�uÖk¯½¶}~ ÷ÑG�9òÃ?\¼xq˜ÞZµjçpÍ5×sÌ1ºöÚk ,|(ßï×.Ú´iS°IpkfÏž½råÊ *}ôÑ]tÑM7ÝÜ…½é“ÙÙÙA' ’<}úô EeÊ”9ꨣڶm{ã�7Ö¬Ys‡›,[¶,¸#ÁÝ šõîÝ;X2cÆŒ^xáý÷ß_¸pafffãÆ�ï»ï¾V­ZE›¬Y³æïÿ{°É÷ßt­úõë÷ìÙóúë¯ß‡—ôçI“&íßyç�É“'W¯^=èXÖƒ½uíÚuÙ²eQËÙ³gß{ï½S¦L9rdZZÚ÷ßã�7~øá‡QƒÅ‹?ûì³|ðÁÔ©S+T¨PÈ9oٲ媫®úç?ÿ-™?þßóuïÞý¹çž‹¯ F‚#^}õÕA¢‚ÓèÝ»w°“‰'>úè£O>ùäÓO?}ÿý÷?ðÀQã°ž>bĈà(anƒÄnܸ±M›6“'OÛŒ;vàÀ�>øà.¦ú§Ÿ~ N/¸À3Ï<3ØÛ±Ç»víÚ`'Ï<óÌ´iÓ‚3éÑ£Gp#™RB—^ziÓ¦MÃ8|‡d gÏž¿ýío£6…çj{cÆŒ¹é¦›N<ñÄ[o½µV­Z+W®|ã�7þú׿~úé§ùË_^z饋.ºhÏzcp㮹æšC=ô®»îzøá‡×­[\ÝO<1}úô§žz*Øù 7Ü5þᇂô½78n^^^°äì³ÏÎÉÉ 2l. M˜0!¸SÆ çœ2dÈwÜ?½ò—_~$vîܹþóŸ÷þ’ƒþ<|øðqãÆ…ý9œÕÂ… ƒK î]Ô쫯¾ºûKG ƒk®(Z·n½dÉ’ h×®]¿~ýµ¥J•ŠZnÛ¶­C‡Á‰÷7èuêÔ Òlô¨ ïy²-h€ÿ:ᄆ vñŇ#(óòò.¿üòiÓ¦Õ­[wW6¯R¥Ê¹çž{ÒI'A,+°655õ„|õêÕÛáW¬X±jÕªãŽ;îÍ7ߌ¾ð =zô¸ä’KÚµkW¿~ýàÄ ÖéÞzë­àl�<òÈöíÛwèСwïÞ5jÔX³fM°I8Œ÷Ûo¿}ì±ÇvVI uëÖ-¬>W­Z58çåË—G«¼~ýú×_½À&3gÎ<çœsêÔ©óÙgŸrÈ!á¦ùºçƒ>|þñ� W]sÍ5eË–}÷Ýw£Ê~˜ØÍ›7_vÙe#GŽ sµzõê]¼MŸ|òÉE]´¿í¶Ûž|òÉ”””pyË–-o¸á†àÌŸ?àÀ�ÿþ÷¿Ç�W®\¹pm…|vuØa‡YݳÞòÚk¯—Ö³gϧžz*Zd ¸ûÁµ§Ü”·ß~{×�™0aBÐ Û´i$?úÀgœqì±Ç^wÝu›6mºñÆÓÒÒ‚8\5{öìŠ+VªT)ª5oÙ²%ØÃ_|Ñ«W¯Ö­[�dΜ9·ß~{�™ ÍM7ÝœÕý÷ß?jÔ¨ßýîwÍ›76ÿæ›oúôéô™`ó ÛtíÚuûÌìî%W®\ù®»îZ¸pá”)SÂ%ÁQºwïìyĈÁOÁ‚ ‚Þòå—_«‚%AÇîÔ©SØ2###<�h¦õàöíðfõíÛw̘1Á�Õĉ£ÂôYg�\ø\à±V´ þÚ¶mû—¿üå¶Ûn ¿®]»¶]»vS§N�꘿¨råʇ~x|%·€Úµkïlù�wÞ_ýõÈ‘#Kädîß¿ÿ—_~yÜqÇEÍþñ�|óÍ7_}õU÷îÝ{Ó¦M#FŒhݺuÔ E‹+W®3fL‰üY þô§?E%Ú>þøãE‹õéÓ'8n8YÇܹsƒ¯Ã†  >üì³Ï¾é¦›¢M6nÜØ¡C‡Ÿþ9ØsT}µjÕ*8t°Ï Ú¾}ûF�…'|¶iÓ&Ø0l¬­Y³æ[o½•––6vìØ ÛYYY»8éö‚ .¹ä’Õ«W7nÜø‰'ž(piuëÖ?~|Æ ·mÛ6yòä.]º¼ùæ›;»ü½1cƌ믿¾V­Zÿó?ÿS`ÕÝwß=`À€Í›7ggg_{íµ?þøcüpÝ_ÜôN�:edd <¸ÀðónݺõíÛ7œ%æÖ[oýÍo~S­Zµ |^uÕUAß wôák®¹&èE¥Kÿï¿nРÁ¯~õ«p¢ó5kÖœtÒIA/�>}z°IØ èc§�vZ�À­[·æåå½úê«~u±—|ÖYgŸ7ß|sT€îܹó#�<ý|w*è3ÁAÃ_? 4(*@ï¢àTƒDÁùçŸ_ ÏA— NæóÏ?÷X+BæH(èÖ[oíÙ³gôuöìÙ]ºtÙ~Ds! /8¦¥¥¾y4qNNÎ{ï½_}7¿âŠ+ÂxÑ¢E�?þx|õ9tõÕW‡Á’%K~üñÇ�hîܹo¼ñFüTÑÁ¡‡zóÍ7Gmxà�mÛ¶E_yä‘9sæGÜá î /¼0 òòò^xá…øUѬ�•+W>ÿüóaÚ¶mìpÁ‚'žxâ®äö¶Ûn 6/‘_ôÜa&ëÕ«N=ztü¬ûÐM7Ý”••uýõ×o?EIùòåÏ<óÌ0^ºtiø›€]\×Ï?ÿܹsçígÄNMM ÒÆ›7o+û‘ *DÕäà UŸC§œrʱÇÆ«V­ ’µU¯^½eË–aüÑGí«K®ZµjÝ5ª>‡‚˼ì²ËÂxêÔ©ñ†ìŠUùJäÿ®hûµwÝuW"~ýÀ®3šÿ˜Qµó†GË»àOÁpr¨ðÿñÄÏóÅÿÏÔ©rÀ®ˆfÇ(žžz꩹sç¾ûî»á×Ñ£G?øàƒÑœ‰_7¬Q£Æö ⋹uêÔÙ¾AüLsæÌÙþ�|¡ D%ãxO<ñÄØ±cѶ+V¬5jTXòÞ´iÓóÏ?_"²‹îðä“OŽâO>ùdguÝu×Eó*ì–¯¿þú­·Þ ãóÎ;ogÍzôèñç?ÿ9;;»DþhëÎ�;ïÛ4yòäO?ý´ð*@Ïš5+ Âù�=ôP»ví ßÃö5ì½É“'‡Á/NÉ}Ê)§„èùr÷m:ÊØ1cŽ<òÈÂoÿæÃ]Ùóßþö·p¾æB˜acßöœÝ&q—\ÀîNÁQ"À~‹-²²²–-[Ö¶mÛ‹/¾8X²³Qÿìg Ð;¾(¯eË–a1nÓ¦MíÚµûì³Ï¢“ {ö�D�9æ˜ *¬[·.ˆÃĕȟ " ªT©rüñÇïÿkY¶lYlÞ¼¹ð–õêÕ‹â+VìÛÓˆòP«V­øíÃ=yä‘E’áýÉ{ï”SN6lØW\NV>zôèñãÇßu×]øÃÊ–-ë9V´¼„ 0§�vÚ+¯¼½ÇìÇìÔ©S8IBr .9š~:zËΚ5k ûÙÆ�Ã`Æ …·ŒŸåã«Õ»+qy(ò t'ºôÒK?þøãè‹Û¶mëׯ_½zõFŽé!V´ ~A§N�â_?8a„^½z‡ �æ Žf[ŽfÕ˜7o^‘œÒ¡‡ÙÙÙK–,)¤å!‡Å;›êz�%.EžáƒîÄ"Mš4™1cÆ#�<MÏô�Ë.»ìæ›o.¿1:`)@ü²>}úÄ¿îÉ'Ÿ2dHÒ_uvvvDsADs�L˜0aWö°iÓ¦}{J5kÖŒâéÓ§Ò2+]"Öˆ}{»•‡ì|‰Øs‰ îÞÿ—¼•*Uê¾ûîûé§Ÿî¾ûî >ÿüóñ¿@b?S€Ø%ƒ>ãŒ3¢¯ï¿ÿ~Ò_òªU«Âà¼óÎ ƒ¨=gΜè;óÎ;ïtíÚußžRË–-£ø£�>*¤åâŋà 33³yóæûö4¢<¼þúëÑÙ;óûßÿþ¯ýëîîy„ ß}÷]á�Ÿ~úéûï¿ÿt†Ä]òÞ÷ÒóÏ??~IåÊ• 0cÆŒè}¡O<ñÄ~«ÔS€4P¬…ã4srr~±effæ?ÿùÏcŽ9fWvͽÃ=ïÊáŠÜÚµkÃÉj×®øÎ<ǫ́Ám·Ý¾óm‡~øá‡®]»Þ|óÍûö¬.½ôÒ’%K†ñСC y¿b4>ú’K.)S¦Ì¾=�(6l¸çž{ i9bĈ矾K—.»»çàÒzôèQÈNž<98ô�7Þ¸úCâ.yךv6“ÆG}´ýXûc�=vüøñáL,7nœ3gŽÇ]‘P€е°n?]C!*W®}úX›——·Ãx×uíÚ5ÊÉK/½ôÄOì°ÙÛo¿}õÕWß{ï½ÑÔÕ¿¨]»vÑd|ðÁwܱÃ2mÚ´‹.ºèª«®ªW¯Þþ鉻ä_M¦±³‘×[¶lyã�7vØ[Z·nu �»"¡ ká ߟ~úiÛ׫WoäÈ‘…7‹þíÿgŸ}6yòäøU‹-êÖ­[TÅ^¶lÙö›oݺ5ŠwXŒ/ûîpžåø=2àzgåï`óÇ{,®½öÚCY~øá(5jT“&MÆŒMø»|ùò?þñ�§œrÊÚµkŸ{î¹��ó–-[öø–ýùÏ®_¿~÷êÕ+þJ#ÿûßÃW'sâ‰'Xœ[¯Y³fÎáÈ#�¼å–[¢¯wß}wÇŽ?ÿüó(«³gÏîÞ½{»víŽ;î¸í_Yÿ �s%—.]ú¾û8°uëÖ~øaT(Ÿ?~p¸³Î:«lÙ²�>úèÎîûÎîltv6=÷ÎzÎÞ\ò/ù�Ÿcû3Áá¢t9|óÍ7£6ýúõËÊÊÚ~ÏëÖ­+‘?�uƒ <îŠDºI#55µZµjQ,!À/Ú¼ys8�ðøñãóòòvñ¯gŸ}ö³Ï>�Ãݡ뮻nذa%ò«i\pÁŸþô§ÓO?}ýúõÿú׿‚mûôé3qâÄpˆîðáÛ5kÖ°aÃã�?>ªkÇ‘^¸páQGU`ÿÁÂ(ž>}zpˆ ¾ùæ›(Þ¾¼~Øa‡…ÁÌ™3/^øBYYY]»výþûﯸâŠEä@‡n¾ùæh†ß3f\xá…%K–¬ZµêÚµkÃz_©R¥þùÏÖ­[wg§ôé§ŸÆW3wK¹råF�}ÞyçÍ›7oîܹݺu{íµ×â%ðõ×_ßyç�ApÓM7ýáØ~_~ùeòÉ'{v�>úèäÉ“¿øâ‹ðëù‚s«\¹ò²eËÂ2n­ZµF� àÝáA¿ýöÛ‰ºãŽ;&L˜0vìØðëÄ|eÊ”9üðÃW®\Ž+Uªôæ›oF÷1´jÕª+VlßCvØs‚ÆÛßúí{Nü¹íñ%/]º4Šã«ÿ‘ü1ŠþùçÚµkǯmÑ¢EøæÃàòƒÛä'î»ï¾|0jóÝwßõìÙsРAÑ|�©S§N™2%yä‘ÌÌLO¼"‘Ö·o_Y(ž‚Ôà¼èOŽ}øÏ" ÈžhiiÇþŸ –ØKÕ«W—à@–——÷óÏ?G_+W®¼»#Q¾øâ‹n¸á믿.‘ÿOûgϞݰaý�9餓6oÞÿüó/¿ürpпüå/={öüÇ?þÎΑžž¾aÆX,vòÉ'ûœ1cÆ‹/¾ø·¿ý-ÚÕ·ß~[­ZµÜÜÜàsrrfÍšìö�ücô†À`Ÿ*TþT±bÅŒŒŒ Á[o½Õ§OŸ¨Ò÷ÕW_«‚Œý µÍ›7Ÿ9sæ�?þ¸uëÖW^yeÅŠÁþ7mÚ4þü7ß|óÚk¯ 6éׯ_ÿþý£Yâ]pÁ[¶l N#¬l¾nݺpJè:uê;iÕªU¸*hóå—_¾öÚkÁ)W�R°‡`çÁ&»˜óxA*®¸âŠ 3ßÿ}p½o¿ývéÒ¥ƒWô /\ýõÁž d)¾¹fÍšà.ðÁ½{÷Ž&sXºté¼yó‚öAòKåÛÅs2yùå—OŸ>=~rᬬ¬ íá€ßsÏ=78±5jDkƒUÿþ÷¿ƒ0xðàha°¤J•*Á&åË—ïNpÎ;v\°`AТfÙÙÙÁæáøß&Mš¼óÎ;Ñ(ûù•âiÓ¦Ý}÷ÝQ%7¸•Áµ”ÌW¦L™ ·‰zýõ׃ÞݵÏ>û,8t˜Ï '|üñÇÏ=÷\ÐK£Á w'¸¹a³=¸äù߃„Ï�;7ê*—^ziü_Û—/_~Ûm·E}ã�C)ðRÁzõê {WðÄÁ…üáèÖ­[‰ü_#5üAø×¿þ\uÐÕƒŽñꫯÞrË-ÁV=ôP�™ýüx‰¯¼õèÑãðÃ/¶Ïê”vš!-xèDo/2dÈÑG-'ÄkÚ´©$²œœœøé•ëÖ­»ÃRéý¿ÿ÷ÿúöí_`Šyä‘cÆŒiذá/î$//¯C‡AËB†÷ >ü™gž™>}zvvvÍš5/ºè¢ž={A°êÆoÌÈÈhß¾ýYg��ùË/¿|íµ×îpWÇsÌœ9s-ZT ºï£�>jÑ¢E£F�â —ñ&Nœ_.Ÿ9sfp±&Løé§ŸV¬X¤ôðÃoРAÛ¶m¯ºêª_¬öõ×_4èý÷ß_¼xñÖ­[;ì°“O>ù²Ë.ëܹsôžÀù#mÃòå .j�»ApÉC† ùðÃsÈÊÊ ž×®]·Ÿªûé§Ÿ¾õÖ[ ÙÛsÏ=·oM7nÜk¯½6eÊ”åË—‡Wtúé§'Í>ùíoô‡�í§ÀÝ û|饗&Mš´téÒÜÜÜ#Ž8âÔSO½âŠ+.¾øâ㮂 ƒ$ìp·?üpŸ>}yä‘ûï¿¿�®ôÒÆ�ï°AÐcÙjöà’÷»ßýãÿîNüªU«6kÖlÔ¨Q%ò_\xT}Õ©S'¸ñUãiÓ¦Ýyç�_|ñEp[ƒc»=í´Ó é`A~‚ΤåŽ;î’¶?/¡øÊ[ð“Rœ'Q€.¾ (œ4p€Ûû @‚/ Ðs¤�~1$�¼¼¼ðßþŽ8âï!(Z Ð@òÈÎÎ_!¸úê«ãg`ÿ3<€„P€ ! HhÂK€ÿZºtiÏ›7/ŠkÕª%9ì.hà¿Ú·o¿Ãå±XLrØ]¦à ! HhB€„ðB ‰žhééçœsNK@ÑR ’GZZZ­ZµäöƨQ£¢¸qãÆÀÞP€þ«ZµjQì7:ì%s@� Ð$„)8€ä‘��=iÒ¤0nÙ²eFF†œ!h yäååÍŸ??Š% h™‚€„P€ ! HhB€„P€ !Ò¥ ‰Åb±¬¬,yÈÌÌLII‘ØÏ ’YVVÖèÑ£åáâ‹/.Y²¤<À~f Âh y¤¤¤”-[6Š% Þ'Ÿ|Rh ydff^~ùåòÀbîܹŸ|òÉÒ¥KóòòªU«Ö¬Y³ºuëJ ÅŠ4@1Ò°aÃŒŒŒâp¥ÙÙÙ3fÌ(ª£O�:õž{îùøã� ,oÙ²å3ÏyH¨çŸ¾gÏž±X¬Q£Fµk×ÞºuëŒ3–,Y¬š4iÒ©§žúþûï7mÚT¢( `Ÿ9räÍ7ßÜ©S§~ýú}ôÑáÂX,6tèЛnºiãÆ�›6mºêª«¾ùæ›ÌÌLé"é)@É#øã<øƒ<ŒË–-ë=„ìg«V­êÞ½{¿~ýz÷î¿<ø+ê•W^~_üñÇ>ø M›62FÒK• idee½þ‚XBØÏ{챫¯¾º@õ9rùå—vØaaí´ÓJ•*%'ì7©©©ãÇ�/¼ÍúõëàqãÆ2F±ø¹�ضmÛ6oÞ¼ h–OB( `6lØæÍ›?üðW_}U6(&LÁ ·dÉ’û~ýú#FŒˆf‚†¤g4$Ö÷ßߦM›M›6 :ôøã�—Š#  Q6lØðì³Ï>üðÛ6m ¾6iÒäúë¯ïß¿ùòå%‡â@šÿ8þ‘wJTž.ôr²J|1óÁ¶'ÊEnæÌ™Ï>ûìСCׯ_-ÌÍÍ4hÐĉ'L˜P£F Y"陂ö½�7žtÒI<ðÀ�wÞÙ¼yóÔÔÿâ~øá‡Î�;çååÉIÏhØ÷NÏ}]¸pá<ðòË/‡_?ùä“7ß|³}ûöEr3H¦GZZ‰£¶É—žîl@jÔ¨ñÒK/=ñÄÑ’¡C‡J IOH¦GZZ‰ªušæS€àtç�w¶nÝ:Œ§M›&!$=hØzôè+V¬� ’ž4ì?M›6 ƒ´´4Ù é)@ÀþS¥J•0¨Zµªl�ôÌ‘ $‘Üœ‹f½ûnå lݺuFF†”p Ù¼ysDC¡!‰)@I$–Wbùœ©SËaË–- 8Íž=; :uê$$=SpÀþ3räÈàóøã�¿ð eƒ¤§ ûÆòåËÇŽ»téÒ�5øé§ŸžþùŒŒŒ^x!5UiŽäg €b$;;Û•&ÈÊ•+ýë_¯Y³&==½G��<òH¹råâ¬^½º}ûö[·n}å•WN=õT½‘â@ ™1c†$$Èâŋ׬Y9999rd¯^½.½ôÒ5j¬\¹ò�wÞyðÁË•+7qâÄ-ZHÅ„4ì�5êÞ½ûàÁƒÃ¯‹/¾3_W¬X±eË–O<ñDûöíÓÓUä(Ftw€b¡Y³f’�hûÛß~ÿûßOžhŠ¡W^yåƒ>¸þúëãžqÆÁçÆ�ß|óM)b?S€€$±jÕªœœœ—^ziõêÕÑÂòåˇÁÆ�¥ˆýÌÐÉ,‹mذAÊ•+—’’’ô—yß}÷ýéOêСCü+.\ÇwœžÀ~¦ �Ì6lØÐ½{wyùä“âyáÍš5+òsøðÃÛµk7xðà:übãÑ£GwíÚuݺu­[·þë_ÿZ½zõüqàÀ�={ö|òÉ'Ç�wÌ1Çìâq—-[Ö¹sç²e˾üòˆ?S$  Q6oÞùäøå“'O^³fMÜrË-F@³Ÿ)@@[²dIrÈ!…´ŒÖ._¾<777~UÇŽó›ß´k×.Lzê©§‚ÏV­Zõë×OªÙϼ¥ HÛrbÏ}–Æ·œ’Y2Ý4Ð6nÜÅ…´ÌÌÌ ƒ¼¼¼uëÖÅ�hNIIyýõ×ûõë×¼yó /¼°Y³f%K–1bÄ„ úôéóÀ¾gHh yÄb%Ön�E1,ö غuk�µééé÷ßÿÝwß=iÒ¤ï¾û.77·[·nC† )[¶¬$S$  ˆmÞ¼9ŠSS ›577ä*š6º€2eÊ´Í'±9s@@‹×\¸ììì(.Uª”Ôq€S€€"V¦L™]l™••Å&ÖàÀ§ E¬|ùò»ØrË–-a�’’rÈ!‡H8h(b5k֌⼼¼BZ®Y³& *W®\ølÑp ÐG ˆÕ¨Q####Œ×¯__H˨}ì±ÇÊ>h(biiiÇw\¯^½º�–‹/h ÐPôš7oß~ûíÎÚdee}÷Ýwa|üñÇK>h(z­Zµ ƒ™3gî¬Í7ß|“““ÆgŸ}¶¤qàS€’艖R¢þaiáA ‘ .¸ \¹rAðý÷ßÏ�;w‡mÆŽõë×oܸ±¤qàS€’GfzÊåÿ_{÷^E™6Ž›„Ð HG@EAW;MDETÄU,ØÑ]u] èÚ±£‹]A¥DP±°º ØuYA¤ˆ¢"5HûÍ—ù¾óÏŸ@Œ�IBrß—×¹ž3óΜ™g&ï™ó8¼Ó¶Bø_K{�*UªôíÛ7Œ'L˜°Ã6£G�ƒk®¹FÆØ#(@@‰pà 7$$$ÁC=´nݺíæN›6-ºmÛ¶—\r‰t±GP€€¨dffnÙ²%Œ7nܘã–-[Þu×]A�’’2dÈ�ܳ~ûí·«®º*'L˜Ö©¡äs¦”!±GØÙÓˆlÛ¶mîܹiiikÖ¬Y°`ÁĉW­Zκ馛æÏŸß¹sç&Mš$&&¯ 4Ønñn¸!;;û–[ny饗’““¯¼òÊúõëÏ™3çþûï_²dIãÆ�'OžÜªU+g2{ h ôÈÌÊ^”’ÆÔ‰÷ B€¼¾ùæIˆÔÊ•+;tè°ÃY©©©£r„o‡ 6|øð¼Ín¼ñÆ3Ï<3h6uêÔ¤¥¥Õ®]»uëÖƒ4hPÕªU%™=ˆ4P¤–­ÍŠnå[3²Ÿœ¹-Œ¯èX±RÞç.[V¼»ß¼ysç@éüôËÎÎÞÍ•´hÑâÁ”LJh Híû覢ù Gÿ“¾£©ûïîïþ%À.ëܹ³$EÌCˆ„; J³ÄÄÄgŸ}V‚@Ù4kÖ¬Þ½{·k×nòäÉÍš5 ¦¼÷Þ{ݺuûüóÏ4h ?%h ô¨”wy§Šò@Y¶lÙ²=z´k×îÍ7ß,_¾|8qÚ´i)))/¾øâßþö7)¢()@@)‘••Õ§OŸ´´´çŸ>V}^³fÍý÷ß?þø£QÄ ùÿnñ�ùûì#”~'¤Uß¾}¥ (5²²²RRRä¡N�:ñññ¥~7Ç�7{öìk¯½¶qãÆ¹÷½wïÞŸ~úé9çœãL ˆ)@”f)))õêÕ“‡U«VÕ­[·Ôïæ]wݼöêÕ+÷ĸ¸¸É“';( Ð@é‘••µ~ýú0®Y³fYø?Ûóý÷ßÏŸ??8àÙ „P€J�ŒŒŒ÷ß?ŒûôéS±¢°GJIIyâ‰'¦L™²xñâ 6Ô¬Y³mÛ¶}ûö½è¢‹*W®¼³¥Þ{ï½0hذá—_~yË-·¬Zµ*XüÄO¼ùæ›÷Ýw_‰¥è)@@´>úè£>}ú<ûì³gžyæï6~óÍ7ÿüç?¯_¿þ„NxòÉ'›4iòÃ?<öØcW]uÕ#�<ò¯ýkÿý÷ßá‚óæÍ ƒ¯¿þ:Xðõ×_OLLܸqã€Ú¶m¼=餓 Š˜ŸQÙ¼yó½÷Þ{Ê)§¬[·nãÆ�¿Ûþ_ÿú×gœ±~ýú .¸àý÷ßïÛ·ï‘GÙ¿ÿO>ù¤{÷î‹-êÚµë?ü°Ãeýõ×0xðÁŸ|òÉÄÄÄ ^ÇŒS¹rå`µK—.uD(b ÐPh²³³×®]»hѢɓ'¼þôÓO\pÁ�¸;wîœ{¤Žš5köìÙsÓ¦Mÿûß Š˜!8 ÐŒ=zàÀ�årJÆ|ðyç�LY³fMA–>|xJJJüùÏ®^½úvs5jÔ»wïI“&}úé§IIIýúõÛ®A¬è| 'l7ë ƒ ^'NœøôÓO‡wFCÑP€€BsÚi§Í›7¯fÍš 4ˆ�ÿŸá&NœX�ôÚµkŸþù0¾øâ‹wØfàÀ�“&M ‚Ç{,oºN�:a�w�èÚµk¯3fÌ8þøã&ŠŒ4šZ9vaÁ×^{----öÚk¯6mÚì°MçÎ�ÃàóÏ?ÿñÇ›6mš{î>ûìÕªUÛnÁŠ+†Arr²cDQ24¿>ø Úµk·³6µk×nÒ¤I¹œ‘¦ß}÷Ýíæzè¡a�wÈé }ìZqv™4¿9sæ„Á�˜O³8 fΜ¹Ý¬£�>:ô#H:·Í›7dåPè  ˜eee-Y²$ŒÃñšw&6wöìÙÛͪ_¿þ±ÇóçÏßnÖO?ý¼vØaûí·ŸlS”  ˜-_¾<6nFþ£dÄž4¸bÅŠ¼so¼ñÆàõí·ßÞnúôéÓƒ×[o½Uª)b Ð@éQ¾|ùNÿ'ˆ%€=ÅÊ•+cqÞGæ››œœœ™™¹ÝÜSN9eÀ€O?ýtì~êÀ[o½5cÆŒË.»¬OŸ>RMK� Ô(_¾ü¾ûî+ìq6mÚ‹+T¨�OËŠ+†AVVÖúõëóŽ×ñüóÏW©Råè£�¾æškš6múõ×_¿ôÒKwÝu×ßÿþwy¦è)@@1Û…t ---oƒ`ñ§Ÿ~záÂ…ŸþùÏ?ÿ|ä‘GÞ|óÍù�+ ÑQ€€b¶yóæXŸß¨¹ÙÙÙ±86lt^å�XŠ�1  ˜å¾¯9éé鱸råÊRG çh ôÈÈȘ5kVvØa º8ö U«V-`ËmÛ¶ÅâêÕ«K%œê Pzdee-[¶,ŒÛ·o/!ì)jÔ¨QÀ–[¶l ƒ¸¸¸jÕªI%œ!8 ˜5kÖ,geeåÓríÚµaP§N�üG‹†’ÀÐåV­Z•ûmì6ê@óæÍ倨í³Ï>*TÇwÞ°aC>-cèh(~UªTéÛ·oO˜0a‡mF�×\s�Œ±GP€€á†nHHH‚‡zhݺuÛÍ�6mZ8tÛ¶m/¹äéb�� O<ñDî·=zô� Effæ–-[ÂxãÆ�ù7nÙ²å]wÝuã�7¦¤¤ 2d̘1±Y¿ýöÛUW]‰‰‰&LëÔPò9S�R¥B… »°T½zõr¿mÞ¼¹L°k¶mÛ6wîÜ´´´5kÖ,X°`âĉ«V­ gÝtÓMóçÏïܹs“&Mƒ× l·ø 7Ü���}Ë-·¼ôÒKÉÉÉW^yeýúõçÌ™sÿý÷/Y²¤qãÆ“'OnÕª•<³§P€J�Š+ž~úéò@1Z¹re‡v8+55uTŽðí°aÆž·Ù�7Þxæ™gͦN�:`À€´´´Úµk·nÝzðàÁƒ ªZµª$³Q€€BÓ¼yóìììÝ\I‹-|ðAɤðB"¡ @$ Á”ÙÙÙéééa\¡B…¸¸89¨S§Nì!xe<’EO(=ÒÓÓßxã�0îÓ§OÅŠå >>¾nݺòO$DA€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H$HPj”/_þàƒŽÅP¼ �Ò#w€bg"¡ ì‘âââr¿ÍÎΖ PdeeåÓÛð‡(@{¤øøÿ_Y#==]N€B‘‘‘‘OoÃb h ôÈÌÌ\°`A·lÙÒs t‹‹‹«X±â¶mÛ·›6mªZµª´»/èObqÐϸzw(@ó?N>ùd�n£HKK›?~ŸvÚi•+W–(ÝSRRÂxÆ uëÖU'vSvvvПäîgädw¸{ØSå. ¥§§ÿüóÏF‚vGЇ=Iî!}jÔ¨!-»ÃÐÀžªråÊ*Tˆ•Š6nܸdÉ’5jT¯^=!!Á°­@eeeeddlÚ´iÆ ¹«ÏAS©R%ùÙ ÐÀž*..®Q£F?þøcìÆçôôô”’Jc`ŸÝäÿ{°ªU«6mÚT…(\A¯ô-mºû €=[Xƒ®P¡‚T…"èOTŸ ‹!8€=^ÕªU÷ßÿ­[·nذaãÆ�Û¶m“à�ªX±bbbb�5*UªäßUh 4ˆ‹‹«œ£^½zÙÙÙYYY±�¡~·‰��WtŽ‚4PÚÄÅÅ•/_^Š�1 ˆ„4‘0PzTªTéoû[,–€â¥ ”á#Gä „0‘P€  ÐDÂÐ@é‘––öÈ#�„ñСC� P¼ �R%--MJCp h"¡ @$ ˆ„4‘P€  RPfmݺ5/^¼XB(gõªU«ÂxÞ¼y•*U’ èå®¶å®Â•A Ðe׊+bqŸ>}$„RfÔ¨Q’»+VvØaev÷ ÁQv­[·N Re¼ §]vmذA Re¼ g޲«cÇŽ±8))©uëÖ»¼ª /¼pæÌ™Á _|ñÅÝÙ¤ÂZO Ü$)*šõ,^¼86žÌo¼Ñ¢E é”…ø·o÷Ü�,²O�èƒJÚWØ.¯Äw�?I»©oÔ7êuv³äoaÑl@Éï em»¼†yóæõë×/ŒsWáÊ 貫F�±¸uëÖ|ð.¯ªZµjáë×S7IŠŠr×BÁUoa­ Š]¡ÿ�ØÇ=q#‹ìÓ#ú ’öV(+ñ]£ß°›úF}£¾ÑŸ¤Ý,™[X4PòûÆBY[¡lOî*\d"¡ @$ ˆ„4‘ðB Á…^صk×æÍ›—�õ”ÀM’¢¢Ü5ÐÍÚÇR¹‘Eöé}PIû ó½£ß°›úF}£¾Q§a7KñÍ”ü¾±PÖ¦oÜ}qÙÙÙ²P6}÷ÝwmÚ´ ã¹sçzN1Îjð] oÐ7.Cp h"¡ @$ ˆ„4‘H�‚2«nݺÆ ‹Å‚³|×èô�…+.;;Û @¡3‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H$HA”‘‘ñÕW_Í™3gíÚµõêÕkÙ²åQG'3�%K–Üyç�íÚµ:thIKKûüóÏçÏŸ¿aÆF�µmÛö°Ã“I@ï—¿M›6}üñÇÁçnÞ¼yŸ}ö9ôÐC[µjå@z¿üýöÛo}ôÑòåËÓÓÓ›5kvøá‡7oÞ¼$gXºlÉÌÌ|ôÑGGŒñ믿WMš4™7oÞÒ¥K[´hqÛm·�þùRDÙüæ€Ð?ü|‰¼ôÒKÆ +È"[¶l¹ûî»GŽü�èСÃÞ{ïýÍ7߬\¹²}ûöÁôîÝ»Ë* ÷ËkíÚµ·ÞzësÏ=—��Ý©S§ªU«~ýõ×)))]ºt ~±qÄ  ÷ËkÅŠ7ÝtÓøñã«T©,L™9sfjjj·nÝ~øá<°dæ9.Ø[g[±~ýúÓN;í£�>ªS§Îĉ»víL N€Ñ£G4(==ýÒK/}òÉ'ãã ÌB)ùæ>|¸œP@K—. ¾DÆŒ|‰„S òUüèÑ£Çܹs÷ßÿI“&µk×®\ο6{à�‚ßqqqÃrH/ ÷ËmΜ9§žzê�?þØ©S§ñãÇï·ß~ÁÄÔÔÔ`Ù‘#GV¬Xñ‰'ž¸ä’K@ï—Û´iÓÎ:ë¬ß~û­{÷î/¾øb½zõ‚‰)))W\qÅ«¯¾Z£F�W^y¥W¯^%0Ûåhʈ´´´O<ñ³Ï> þÞ}÷Ýc�=6œ¼mß¾}ƒ Þzë­Y³fmÞ¼ùä“O–.öÄoŽ¿þõ¯—^zipgeeSºæ�~×/¿ürýõ׿üòËÍš5KNN®éÃé¿ûU²fÍš.]º,\¸°jÕªŸ|òÉÁN���?úè£ÓÓÓƒ‰~øaݺu?üpyô~¡E‹?HƒOoذaвI“&áôŠ+vïÞ=˜ûÍ7ß¼óÎ;:t(±·òz¿¢ïý>ÿüónݺmܸ±mÛ¶ï¿ÿþ^{íN6æôÓOÿè£�¾ÿþû7Þx#hÓ¨Q£’–s÷º–ùË_þóŸÿA¿~ý‚¿–íæ^rÉ%íÛ·‚x`òäÉÒÅžõÍqyŽZµj•ð1�(™¶mÛvûí·¿÷Þ{Á…ШQ£ ¾à\°dÉ’ ¸úê«óþN¸ù曃_A0tèЯ¿þZž½_ ===øMºfÍš ¾í¶ÛêÖ­»]ƒ#FT©R%++ë¼óÎ[±b…ÃèýÊå ÜqöÙgoÙ²%ˆï¿ÿþ eî¹ �<òH\\\ÐàôÓOß´iSI˹t™ðÍ7ßÄþ¢† ’·ApŽ^sÍ5a|ýõ×Çþõ”âo5kÖ¬~ýúaþCÈ‚˜uêTéÊxï—™™yÿý÷‡qÏž=+Uª”ÿâcÆŒ ~Ÿ::@ïýÖ®]ûä“O†ñ™gž¹³-Œ-þÀ¬[·®dåÙ©Vêmܸñ�7ÞãcŽ9&..n‡ÍjÕªuÈ!‡„ñK/½$o”îoØ . 7 Ä­‘W›6mêÔ©ãú Ðû…>øàƒ•+Wþîâ±ß­YYY¯¼òŠ´e¼÷KJJJKKûÝÅc³6mÚ«–Š5¥ß—_~¹uëÖ0>ì°Ãòi›ûÉ'ŸÄþ0ØÎÇœ÷ j‡=ôÐ0~Ä.ÉÊfïWÀÅkÔ¨±ÿþû‡ñ„ ¤(ã½_oÕªUåÊ•Kfç©]ú}ñű¸eË–ù´lݺudee}úé§RPX×WëׯŸ={¶Ôe¹÷Û…Å,X°zõj™Êrï[¼V­ZõêÕÛÙ² ±G#~òÉ'á`¼%„téû7årF4ϧeî¹sæÌ‘:×W…ÒûeggϘ1#œR½zõ5jpqÿ÷(˽ßêÕ«—.]Z��ÎÝ 55uÉ’%%'� Ð¥ßÏ?ÿ‹6l˜OËÜs¿ûî;©ÈÿúªB… {ï½·ë+@ï÷»½ßúõë7mÚNiРAþ¤óô~áâ/ë•äÎSºô[»vm,®^½z>-sÏ]³f�Ôä•••µaÆ0®V­Zþ�]_z¿°÷+ø/S�' ÷+e�§té—ûL� F¾C¹çÆþ´Èmݺu±1õò¿¸r}èýb½_Á™ê<½_)ë< K¿Í›7ÇâŠ+ð4MMM•:€Ý¹¸r}èýb½ŸÎÐû•ÙÎSºô«Zµj,NOOϧeî¹¹—`.®\_z¿Ø‚:O@ïWf;OèÒ/111§¥¥åÓ2÷ÜÜK° W®¯½_lA�' ÷+³�§téרQ£Xœû¾ý¼¶lÙ‹ëׯ/uyå~úyîË'×W€Þ/ŸÞ¯à¿Luž€Þ¯”už Ð¥ß�‹“““ói™{n«V­¤ ÿë«´´´õë×»¾ô~¿ÛûU«V-VFÉÿ—©ÎÐûÅoÑ¢E||üžÞy*@—~mÚ´‰Å+W®Ì§åÏ?ÿ¼Ã¥p}°›½_,X·n]þwê<½_¸T¥J•Z´hQ��νx•*UöÛo¿’“@èÒïøã��Å‹-ʧeln\\\î¥ØÍë«5jtêÔIꀲÜûíÂâ­Zµjذ¡Ìe¹÷‹-¾zõêüï¿^¼xqtíÚµ|ùò%'� Ð¥_ÇŽk×®ƳfÍʧåŒ3 C‡†ÙØ™N8!vM_Àë«“O>9!!AꀲÜû�rÊ)±ù,ž––6wîÜ0îÙ³§´e¼÷‹-ž��ýßÿþwg‹/^¼xíÚµ%³óT€.ý‚¿�óÏ??Œ?ýôÓ�5KMM�ý ÄÚ�×Þ{ïÝ«W¯ß½¾ZºtiìBº¾ô~íÛ·o×®Ýï.þÅ_dddè<½_¨G�uëÖýÝÅ?ùä“0¨T©R¿~ýJT Ë„Ë/¿<...–,YòÍ7ßì°ÍÛo¿CS£F��J@>®¼òÊ0øè£�RRRvØ&))) Z´hûÑP–{¿Øâ“'OŽÕYv¶øqÇwÈ!‡È9PÆ{¿Š+^rÉ%a} @ï—ל9sþò—¿L�:µZµj�:u V2sæÌµk×ñƒ>Ø¥K—’™sè²hóæÍŸ|òÉüùó7mÚT³fÍ6mÚ}ôÑ*T�Êà7ŠuëÖ}üñÇ‹/Þ²eK­Zµ=ôÐ#Ž8¸πÞ/ÉÉÉÁ�Ó¥K—¦§§Wõ;v Ö «€Þ/Ë—/ÿì³ÏV¬X‘••Õ°aÃÎ�;tÐA%9] ÐDÂMDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@@i³jÕª}öÙçµ×^“ Š—4”6ãÆ�ûé§Ÿ233¥€â• Üš5kš5k¶yóæBYÛ˜1cÎ?ÿ|Y-tãÆ�KLLìÕ«—Ã@ñR€àxýõ×Ãòeƒ Ø¥K—æÍ›W«V->þþiݶmÛ†úÖ[o…�oºé¦ M•*U‚8;;;--í×_�>}úˆ#6mÚ®DJ Ý?üðŸÿüçüóÏ3ïðPŒ ø’’’‚×3Î8côèÑÕ«WÏÛ`ãÆ�aPµjÕ[o½u»èÐ¥K—Ã?¼{÷îÁÛ–-[Ji¡7n\ðzî¹ç:|;c@PPkÖ¬ùðûwï>qâÄ–/322f̘ÆGydÞ;pCݺu;à€ªU«Ö¤IY-tãÆ�Û{ï½O:é$‡€bçh êõ×_OHHxæ™gâââvØ`öìÙ©©©aü§?ý)ŸUí·ß~Õ«WßÙzØesæÌùî»ï®¸âŠàH9|;w@PPIIIgŸ}vãÆ�wÖàóÏ?�ÅùW0³³³ à…±cǯýû÷wø(  (�p‡‹.º(Ÿ6Ÿ}öÙÿ^eÆÇyä‘ù´\µjÕA$«…+;;{üøñM›6Í[>vø( ÐÈ믿ިQ£.]ºäÓ&v m›6mjÖ¬™OËüÑ-´….ÈÿòåËÏ9眼ƒc8| h $))鬳ÎÊgØß9Â8ÿÖ®]ûÛo¿¹…¶Ð�7.x=÷Üs>Jh $%%eÀ€ù4(ø©©©­ZµRÁ,\¯¾új�ØöíÛ;|” R@AÌš5+ÿ±„Ëý^³I“&óæÍ“ÒÂ5uêÔU«V <Øá äp4…#v m£F�š7o.!ElìØ±åv2þ†Ã@qQ€ ¤¦¦Îž=;Œó¿–(¤¥¥½ñÆ�:ujÑ¢…Ã@É¡ @!øê«¯222ÂX³è½ýöÛ6lØåÛŸ>"¢ @!(øÂDaܸqñññgŸ}¶Ã@‰¢ @!ˆ� \µjÕöíÛKHQÚ°aÔ)SŽ=öØF�9|”( RÀnÊÎÎþâ‹/Âøˆ#ŽHH(Ñ™YYY)¹ôîÝ{OÏÿk¯½–––Ö¿ÿ²pøØ³¸¸`wÍ›7oݺua\òpøøã��;î¸ØÛììì==ÿcÇŽ­X±â™gžY{Cp°»b8”Û*˜]»vMKK{å•WJGò“““§M›Ö­[·Zµj•…ÃÀžE€Ý{„]|||çÎ�KþWªT©_¿~¥#ùIII™™™çž{nÙ9|ìA Ø]±[h>øàš5kîÛ\jF:7n\µjÕvg$ë=ñð°§P€`·¬^½zÑ¢Eal‡"¶lÙ²/¾øâ´ÓN«ZµªÃ@ ¤ Àn1‚p17n\ðÚ¿‡€’)A ر„Ë ‚¹qãÆ¯¿þú·ß~[›ãÒK/­Y³f0å‹/¾HKK;à€N>ùä*UªìpÙ¹sçþç?ÿY½zu“&MN9唺uëæÿYß|óM°æ5kÖ4lØð˜cŽiÞ¼ùnîéÚ€_~ùeÊ”)ÉÉÉM›6íÑ£GíÚµSRR‚)?ÿüs¯^½Ú´ik¹uëÖ>ø`áÂ…ñññíÚµ 6µ|ùòܤ±cÇÖ©S'HZѾôôôÙ³g¯þ?ƒ®T©R¸_?ýôSãÆ�ƒ=Ý{ï½wycòY�Ï}öÙ§gÏž5jÔ§¦¦¾õÖ[Ë—/>±[·nÁ§Ö™@!R€`·Än¡mذá¾ûî›ã \xá…?þøcvvvð¶cÇŽ÷Ýw_óæÍ;wž~ýõ×4hĈþóŸs/µlÙ²`©`ýA³¦M›~øá‡_|ñàÁƒï½÷Þ *äý”¥K—^rÉ%‹/¾òÊ+›5k–œœÁôW^y¥V­Z;Û¶¯¾úꨣŽÊÌÌ ßÖ¯_ÿ­·ÞêÔ©Ó.lÀ?þñ�G}ôºë®ÛÿýƒÆW\qÅ9çœ3gΜ3Î8còäÉO<ñÄŠ+–IIIA³c�=¶G�«V­ >%11q„ |ðïf~nŽË.»l‡ÛÅáûå—_Ž9æ˜-[¶„oƒ$Lš4iܸq§žzj�:uxà� ÏÁû;p={ö ^7oÞ¼�>}z×®]ƒ`Û¶m‡vX�„ 6o_xá…`Çó_ÿ^{íuÏ=÷™ ¤ëßÿþwpžôîÝ;8LÁâÁç>ùä“Üå3mÔ¨QwÝu×Ï?ÿ¾­^½ú�!C‚)A¼råÊ–-[nܸ1ˆË—/öÙg'’?|€*?|øpY`×lÛ¶íꫯ‹¶Ýºuëׯ_þí7n÷Üs^xa»ví:wîIIIO=õTÍš5ƒ·±¥z÷î=þü;ï¼³ÿþmÛ¶=õÔSƒëØE‹õíÛw»�øî»ïºté²eË–Y³f�xâ‰mÚ´9òÈ#ßÿý‰'¦¦¦Æj£�Ûo¿=x�]ÛV¾|ùiÓ¦KM˜0ᡇŠÝTû‡6àÞ{ï½å–[~øák¯½6øô^½zÍ™3祗^zöÙgƒ >b¯½öêÞ½{Ðò‰'ž¸øâ‹ƒf#GŽ<ä�C‚]Ö|î˜1c‚–¿;¬ó#�<òé§Ÿ>øàƒ»|s÷=|Áq¹ùæ›{öìµììì Ÿ}öÙË/¿Ü±cÇ:œtÒIÁƼ÷Þ{Á:Úx°§W]uU°/ÁfeeA¸©A®¼òÊÁƒ9Ù¼ysŸ>}Ú·o_�õ�1âÝwßíÚµk�Þ7Þx#ÈX°`p‚·o½õÖ%—\R½zõ];Ó:uêtÝu×›7yòäàí?ülU¸ªàX_~ùå£G�nÑ¢ÅçŸ2øg hvÝ×_½uëÖ0.øÂámÅ�G}´U«V±é‰‰‰Ï?ÿ|Üxã�sæÌ‰MŸ9sæêÕ«ƒÆ±)C† ÙgŸ}Æ�Ÿ{ãr9Õþýû¯Zµê‘GÉ}³ó¤I“ÊåÜ�›ÏVmܸq„ Çÿ÷¿ÿݱcÇܳ ¾ëׯ¿ãŽ;‚ଳΊM »a¥{àÀ��=öX|ûí·×^{m�:uþö·¿ÅZÖ¯_èСÉÉÉ÷Ýwßï¦1øô&MšsÌ1Eø4h�?þøÃ?NoѢžûî›’’òå—_æn߸qã°ýv‚ÃݲeË?ºþ_ýõÜsÏ}úé§c÷}ë9âˆ#‚yï½÷vóL»à‚ öÛo¿ øôÓOs¯'8—jÖ¬ùòË/ïþ@.e�4»nÊ”)±ø¨£Žú£‹ï¿ÿþÛMéСÑG™žžŽ~ºôÒKkÔ¨1`À€ÿï*6>>hÛÕ:Ç�?gΜ½÷Þ;¼Å8æÑG=餓n¹å–�mÉš5kN<ñÄÁƒ6,VñÜ… øä“O¶lÙ²×^{Õ®];61¬i~õÕWá0¡;î¸#ØÍþýûW®\9÷Â-õÕWóO]ð¹K—.=ûì³ónm¾°øÛ«W¯J•*垎W®\¹ý¯ŽøÿîØÙôü×ßµk×íFš®_¿~ð@c—Ï´ ™á ÎÏ>ûlîÆ3fÌhÔ¨QAÆE`;Æ€  ~ûí·ÔÔÔŒŒŒÍ›7¯]»öã�?~衇bs“’’ÒÓÓkÕªU¥J•„„„š5kÆž÷‡œtÒI_~ùåäÉ“ƒO ‡¡x4ÇvÍÂYá Â1/¿ür¹œ·{ŽßE9vö‰+V¬8ùä“åØaƒ‚oÀ¦M›‚×íʦa‰9;;{Û¶má”`×Þzë­ È}[n¨E‹ÁëòåË7nܘ˜˜¸³m;vlðÚ¿ÿb<|‡zèvS*V¬X.çY‚…r¾ílý;›Kï.ŸiårnQ6lØÔ©S—.]ûÙgŸ½ä’Kô»@€IOOoÖ¬YX`Ý¡sÄÞž{î¹a‘ô�:è ƒ‚×­[·.[¶¬uëÖ±éëׯóÍ7¿øâ‹o¿ý6ˆú駼˳‚צM›üã.\xÒI'­X±bòäÉC‡Íç†â‚l@›6m‚×Õ«Wgdd$$üïÅvrrr¹œ»wëÔ©NYºti8öÅ}÷Ý÷ä“On·’úõëÇÇǧ¥¥í¬�™™™””$ê°Ã+ÆÃ÷»£Tï¦�­¿°>w‡gZÆ {öìœ Ï=÷Ü�wÞLIMMý÷¿ÿœÀ¥ @�T¨P!÷Ñ©R¥J¤¦¦†Að¹·ÝvÛ¨Q£öÝwßÁƒ_wÝu-Z´¸ð G�½Ý²ë֭˽†‚èÑ£Çc�=võÕWôÑGO=õÔå—_ž·MÁ7 M›6ÇwÜôéÓ¿þúë#Ž8"œøÁ¯C‡�5Û¼ysŒ1"ïc ×´iÓ’““¯¸âŠxøö yÏ´Ð¥—^:yòä_|ñöÛo/_¾|RRÒi§�¶Ý]í�1 (Yb#‡72'''wèÐá‘G0`ÀìÙ³¯ºêªp�Šjܸq¹œ±& øY•*UzõÕWûôéóÌ3Ï”Ëy$]ÞûšÿД˯£\ÎS ùå—ìììéÓ§�9ò¬³Îºþúëcmb÷hç3lq>Æ�W.ç&egK!ži1ݺukÒ¤Iphþõ¯•3þÀîQ€ dùüóσ×C9$|²Ü°aÃ-ZÔºuë'Ÿ|2ê7¯ üøã�årO¼Î™3g‡Í¶»Ñ5P½zõp‹nݺ]xá…6l¸ì²Ë¶kó‡6 0f̘±cÇöèÑ£oß¾Á^Ü}÷Ýÿüç?“’’r?p/ص`V,^¼x‡+̧†¾uëÖ×^{­C‡xàž~¬ó>®°Ï´˜òåË8°\NéyÞ¼yYYYáÈ*ìhŠMÞ§Õ­]»6|:ßÕW_Nùøã�ƒ×O<16¤r(wírüøñÓ¦M ‚AƒÅÅÅ}ûí·?üðÃvkÎÌÌ<ꨣòy>ÞÃ?ܨQ£)S¦„O2ŒùCP.g|Œ6mÚ 6ì³Ï> ¶äý÷ßßá£Ãœ8qbFFÆv³²³³ƒ�‹ Ó±�` ׯ_¿gÝþ>†1+++÷Ä”””¥K—–œ3-·‹/¾8>>þ�wÞ¹óÎ;/½ôRª»L€bs÷Ýwo7å¶ÛnÛ´iS·nÝ.¾øâpJ½zõÊå<Ö/w³Å‹øá‡åþ¯¦¼V¨P!?üðk®¹&x{Ë-·l·æ^x!XmØl‡öÚk¯Q£F•ˬ9wqùm@¹œòñÃ?¼]±5¯`»wïþ믿Ž?~»YO=õÔñÇ¿³Gí�;6>>þœsÎÙƒôÁ¼®Y³&÷Ä Kµk×.÷#wû™–[³fÍN:餌ŒŒ·ß~ûì³Ïö§ °Ë (6)))W^yåúõëƒ8--íÖ[o}üñÇO?ýô¤¤¤¸¸¸°Í°aÃ*W®L >Ìš5ëì³Ï9rdýõ×årÆÜ8òÈ#ù#FŒ4hPÐxÈ�!›6m*—S~æ™g^{íµ;î¸#öÑá½·7nüå—_b{öìY­Zµ`«Î:ë¬Ø túöíû /Ô«W¯eŽ6mÚ³úõëwß}÷ņé;¬³OŸ>A&L˜¬·mÛöØc�M™2%oÁ4lð;ï¼Ó¥K—p´ëb±víÚ09K–,É==8‚á�Öyǹá†*UªôÜsÏmÙ²¥\N�þå—_^[µj¼}ðÁï½÷ÞéÓ§pýÛMÏÌÌ\¶lY¹��gRÀ3m;á¸Ïçž{npJøSØeqÁeŸ,PÔ—¡9U¿¥K—NŸ>ýé§ŸÞ¼ysZZÚ~ûíwÅWœzê©ÛÕ,XðÐCM�:533³^½z-Z´>|ø�x_Žƒ>øšk®éÛ·oîEÞ{q#GÎ�;·ZµjUªT9ãŒ3þò—¿TªT)˜5sæÌóÎ;/øèpX† *4oÞ|ìØ±;vìÔ©S07\CÐøOúSð¡t¾ûî».]º¬]»6ï^ë|ôÑGs3\�¿ù曣F�Z±bE°%U«VíׯßàÁƒ·î#f̘1\pÁSO=5hР¢?j+W®<á„–/_Ö‘ƒÃÔ´iÓo¼18jA~üñǰâhذáE]tç�wÆ– ÒäjöìÙÁ®åœsιòÊ+O>ùäo¿ývïÁ1:óÌ3 ¸þÆ�8ðÿøÇ)§œ2cÆŒX¶ƒõôêÕë…^ص3-·àôŽõûᅵþ`výÊ_€b¸ ý¿²`óæÍKÓ~�3æ²Ë.»ÿþûX½zõ`JFFÆúõë—-[öÙgŸ=ðÀ+W®œ1cÆ¡‡ºkëïÞ½ûÔ©Sýõ×pð ¢;Ó‚Cvæ™g†w¸°Ë Á…#%%å²Ë.»ð ¯¾úê°úHHH¨S§N‡† òæ›offf†Ï¾Û«W¯þàƒN9åÕç"ðÜsÏ]tÑEò°›  p,Y²$---×x‡öÝwßàõ×_ݵõ¿úê«çž{®TºùóçrÈ!×\sMøvëÖ­¯½öÚ€d`7)@@áhÛ¶mƒ ^z饴´´6xöÙgƒ×nݺíÚú322öÛo¿ÓN;Mª Ý”)S¾ýöÛþóŸáÓ ƒ ÿþ5kÖ”€Ý¤ @Q[¸paÌ�;·4íW•*UÞ}÷Ý´´´:L˜0!öשּׁ¬3f\pÁ·ß~ûO<Ñ»wï][ÿ�!C–,YR­Z5§P¡Ÿi]ºt‰��¿å–[‚×7ß|süøñ×]w�ì>! èÌœ9óÜsÏ]¶lYFFF¹œÄ5mÚô±ÇÛåšl ìÚ›o¾9iÒ¤Ù³gÇçØºukóæÍO>ùäóÎ;¯^½zNƒ’y¦�3æá‡NOOoß¾}ÐÒ@Û…B€H‚€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆ„4‘P€  ÐDB€H(@ h"¡ @$ ˆÄÿ�Ý¥¥ endstream endobj 56 0 obj <> stream xÚ¥XI�\5¾ó+|ÌžcWy•š> Á-07Äaz:� $Hñïq¹\^ºß$CÐhÔïÙUåZ>×òÔe•)VEP1d�²z|ReÙ{�-ÔmŸu„€QmuöNiD¢{ýý“Q_ÿ¡ÞLÄa2VHY;D›Tv:§6ç‚vÞ66Ël_Ý«×ß‚J:‡BsÔÁi“¼º?ÿ|0ƒ1Êïɘp.ÿ¦<ÃqÃe×—x<þrÿCæ&aÎèìH–bO…Sy�ˆè:KÙñ–)¼»¢jR°i5³¼ª$æFgy‡è½É$c§[8ÓapÐÉ“¼,2è�$“Vôï’1±ëMî"ÝHñ„ DG\•憎dW]:íc“K¾Àz;ßΡDkuα»Ÿe4/˜á‘Î=‡nC%xj³%†>‹ˆæhQ²«vâP’Ò€07ÞÄ©€¸ãÔk.œOËMº!�°×µLÔvÿ h.g¬Ž–Õrj“»çJ›P»ŸçJôڠKg؃{g‚ÕPðyG–ØyÛy}:nÅd:<µ{¶ëæn”³ºR8ßè¨cACüêþ®Q8UROŒ�(¼Æò°YmVª÷�w¯~½ þÕû·w;RÁWSÏ—»¢³Î© ²€:TªßIî_Oïé矻[/hëQ ý¡µa‰'BºB7§˜�¯Ž1¨¸Û@²…Ä‚<è Üñ&PäâŠfÀË]¶-ÿ‘çénJÊFüÖ³Þyåï×§e½F}q,ù±¬â�nŽÍŽ#ä)˺`ëîÈTx ¢ÁjÏÐrµ§qáÄéšÅ':—Ÿñ49º`5YO2.¬i½"‰3^K2D³="#Õ‚ vvÀMBæ#(]3íÄÀþ1M «¯N)¦q¹fžFZªÏTP‘׆·šñSÁ]Š<´(Ê-_eD³ëϦ!­ÎuµÇÅÌv⥧­OºÔ|†K÷‚Ûý‹á ½aæ–¤ycö]í>å;B]¬ÕÖÆè\ ÄcRÙY‹±*§<ë]Þí7¯y,5UiSKÔÍ<‹’pêÎ °Y}g[`Øì©ZÊ¥äfWØøý&æ*ÉÔ³÷×›®¤ÝøÝx²ô2ÙV¼±šœ—èðÚU*7õ‰mÞ ‡�Šûuk"æòÉ"ï%x–d£®£ŒÈü½%iMë!UuhErû5·žiבܸf„IîUÞdiÐîs|˜´î Rçoù»¤ó÷.·kJœé‹„µ†ô’ižé%ë†óP±ãÅØÝ£fÌnÁ1pc†Ð†‡†Ö˜:uPYÌãìÎM3sïÓ¯ï5ìÜ¥©¤U�$©ŒâÕ-L“Ý0[ÇŽìVÍeÒŒ²Ái°i)…õÒb¹2uÇ̹Œû-�Dx6«öYÇù«–YÒÀº»´ý—U™:¡8×PD®ˆfܾ¹»¬€ ¼Üêì�îЖ1rzAÓùòΰ4œ.Ï�áÍ�çü|¡ëL L‘ B»ÀsBï…°¯¼t꽚i«Ow¢µ«tŸ+]8´ +‡Ö¤×rìN{ÓÇfcA `CLš¦�Z"Ò¨¾·IÙ÷·™ÄïM*1iÌã�t.#ÃíŽF^»8F£«¶w'Üe6cQ Ìîm Ùáa’·(àʨb§qp)?©Àè½E‰�Œ� Æÿ1Â<Í7÷êƒ"ü[õw…@‡ìÕMy(™áIkÊ�ÆÒoê'ùTU,—ÎXþD ¬Öéˆ|hW<µ¶›¶õƒE1ػØÝùMnÁŠr8¯ˆÂ©efˆZâˆsãY›…\¿Bµ|»¦)—F·ÃÒ{;Òz©O77ú¼h)bêÊóãY§¸Éxõºêñêî§"ÖUZö ‹¹Áè •1�¦(•1Wû�€pt õúŸ§ÞˆÅK§ÀoüÑeCÓW××®¢@ÒвKù††‚Ì-p•ScËÚ¨m°ç `kÁ1 Fˆy®&ȸ·3ä�2Ú+«~ü®?þùîc §Á €úÒB’Pê'Ïòø$ À ž§ëúÑ40„¹É`íé]Ö01�sc€ M–4'¶kØDÆ4+2} ø3�×1Þ^Í,œo¾øööÕ5 endstream endobj 59 0 obj <>/Filter/FlateDecode/Length 4539>> stream xÚíÕ1 ðñ'ݱèQÙò$´Eð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüF=’Ìš¬ endstream endobj 60 0 obj <>/Filter/FlateDecode/Length 62181>> stream xÚìÝXW·ðqzU@±ì½÷[ì-*Ø¢"–5v “Xb•ÄÅ X+öŽEQ DQ, `A:ß¾ÌûÍ�{(ÂÁ#¼øÿ=>}º¿¿JJ ©@NQ€ø8tuuÕØK*[«W¼>�ýû÷/^¼˜<@= ò’‘‘‘øihhH*�8055•T@= ò’ôB ºwï^—.]¢££IÔÆKþ;<þÜÇǧÿþ¦¦¦òÊË—/_¸p!::ºD‰íÚµ+]ºt6�–��ðï¿ÿÞ¸qãÅ‹bÑÊʪV­Zõë××ÑÉî…Ó§O×­[Wž<äîݻǎ‹‹‹kÑ¢EãÆ�óOÞ’““îß¿%b› *ˆfʱ×ñãÇEnkÔ¨!¯¼zõj```XX˜¥¥eÍš5›4i’£^ÝHóôéÓ””qd‘ÉJ•*esß'OžDFFŠ‹%-ÆÄÄìß¿?44ÔÎήwïÞîuóæÍ+W®ˆããã‹-Z¾|yq¥Œ��3û”óçÏÛÛÛ‹ª�ölfXôG|ÖÇÅ·_ñâÅ«V­*’ýïfÄý¿wï^qÿ‹§@y¾gÏž··µµuëÖ­+V¬˜�C‰dúûû½yóF$GìÕ¦M›Â… óû@m òµØØØC‡mÙ²EüLLLüꫯ¤ôÁƒ§OŸ~ãÆ ¹¥¶¶ö˜1c–,Y¢¯¯ŸÅ#""æÍ›'øúõk±haañöí[éýr666?ÿüó÷ߟEíïéÓ§›7o^¿~}ppðƒÌÍÍ“““§N�úçŸÊ/©[¾|¹ø9nܸÌR¹rå   嚸¸¸ôÅÐï¾ûnõêÕj§.$$dîܹ>>>âL Ò¼{÷NÚT´hÑþýûÏœ9SœrG�ôððç¶qãF©½{÷nqØ«W¯*[–/_^d¾{÷îYwIäjÅŠnnnwïÞ©W\SiSãÆ�ÅaÛ·oŸÙ¾ Ý8|ø°¸LRúèÑ£ŽŽŽQQQR›&Mšœ={VYù���—cåÊ•âb‰E333‘jq(­´é_F�5{öìôS�‹öãÇ�½U®lÓ¦�rÑ××·uëÖ*;Þ¹sÇÓÓÓËËK!ýV"‡â”�9"ò ]ý÷ïßK›J–,éää4mÚ4Ñá,ròäIq'ïÝ»WAôG*@Ÿ?^Ü�þþþÊÆ}úôY·n]G‰©—Fñ-ž q·$%%‰]Ä}X¤H‘ãÇ�Ÿ:uŠßH9E ?JHHðôôܳgÏÑ£G媜$11qüøñé+³©©©nnnoÞ¼Ù¼ysf‡õññqtt|ûö­¥¥åÆ�ûöíkbb"×­[÷ã�?FFFŽ7. ÀÃÃCe(ttt´ØwË–-'NœPÖ%SRR $ºªl¼hÑ"??¿W¯^-]ºôåË—ÊMÕ«WïÝ»wúá¨úúúüñÇÙ³gÅ)KkÚµk7xð`õ²'R1sæÌ… Š\ÙÛÛ‹S«W¯ž¶¶vXX˜»»ûüùóE¯V®\¹iÓ¦åË—;99©ì~ãÆ�]i•ëãããÇŒ³aÆôŸÒ£G�3fÌ›7/³^Ý¿_œ»8øÔ©S'NœX¼xq‘=‘¨ &\»vM¤½cÇŽÎÎÎ ,P9ÿmÛ¶yyyIÃÕeûöíg—””$¯¹pá™3gÚ¶m+-Þ¾}[|bPP�¸š¿üòËØ±c‹+&rrèÐ!q"áááâùúúŠkjee¥9xð ¸ÛU6Í�;wöìÙòw!²;vDEE�:u*Ã1þ111â~ÙEÜ"«… ‰í§OŸîêê*Ú´jÕŠßKjÐ?# jpwwøð¡¼Ø³gÏ:uêäô {÷î½víšØQì®\ÿòåK??¿5j„„„Èã[…1cÆ 6lûöíM›67nÜ AƒªU«vóæM¹H}ýúõ-Z”+W.ýg=z´G�qqqZi¨{õê%�•644G+Y²ä¾}û¤#˜››‹5òŽ¢±££ãÕ«WÏ�;§,wNœ8qÑ¢Ek×®mÔ¨ÑÛ·o¥qµZiUé… ¶jÕJ|ÄÆ�åA¾Â­[·ºvíZ»vm•¾éèèˆOìׯßîÝ»ÅùŠøÔ©S¶¶¶j\Ñ�¬^½ZtcæÌ™«V­§&�é633kÙ²¥ƒƒÃž={¢££EK±I9V7((HtãâÅ‹wïÞU¶[·nóæÍóôô,S¦Œ8BÇŽíì잨K—.¥J•²¶¶VVùÅ%·„VÚLÍ›7—nÑ_~ùå×_•ÆÎëêêV©R¥sçÎëÖ­KNNŽŒŒ§,2¦ì­hÐ Íœ9sä•...âÄüÒÄ"“C† ™6mÚÉ“'Å¡äÆNNNâÔ2¼@¯_¿=—¾iX¿~½¸Frù»hÑ¢:th×®ÝÎ�;ãããccc½¼¼Ä9Ö«WOyoooñȈ�S>€¢ ,øý÷ß«W¯. ±(öºw3¥¢±¸v*‡’ˆ+"n<­´‰eDf¤iLD¢*T¨ îüãÇ�‡‡‡‹ÓIÿ]>ˆ4€š4Z€655mÑ¢Eƒ êÕ«·nÝ:yýÕ«WÿùçŸmÛ¶ýþûïÍ›7;~õÕWýúõÛ²e‹\ �‰‰kT>(%%¥sçÎR¥RWWwýúõ*ólÔ®]{íÚµÒ$ÿþûï¤I“ä™*T¨0jÔ¨áÃ‡ÛØØ8p@ÞE¬_²dÉñãÇçÌ™3`À___©Ù½{÷¾}ûŠÀÒÒòÍ›7çÎ�“w4hP³^$&&þôÓOñññ6lWﺌ7nÓ¦M"hß¾}†£•­¬¬:uê´qãF©˜~úôé²eËÊ×Nl3fÌĉEòEžå½DNBBBV­Z%Ž).V»víz÷î=~üx‘ÒË—/ËÍΜ9#’/N\ù‰qqq­[·¾ÿ¾½½ýüùóUúcll¬££sôèQiñäÉ“âJ•*UJZ9rä°aƺzõj¹Ä/sç~÷Ýw{öìùþû£/\¸ Ö*TÈÕÕUªn‹S8{ö¬Ô^\ •r°µµu``à­[·Düõ×_+'P–) ÐÖ”Å]×£G� &ˆÛéâÅ‹Y7ÖJÐݧOŸ'NˆøÛo¿�9sfú6eÊ”iܸ±4�_Ü·Ï‚¸Fr‘L‘�.]ºˆ§@^)®Î¡C‡V¬X!.PË–-ÅmÕªÕ�!CvïÞ-èÃÂÂDÒT>Nz^’““«T©’~»¾¾¾xÐÖ¬YóÅ_P€Pƒ)ÈϤѬ²‡ž?¾W¯^Ê•vvv“'O–�?žššªrœààà��)NNNNÿr9]]Ý HñóçÏ•s˳ôèÑC¹Ë�?þèãã# ø}X·nݪU«”s€Lœ8ÑÐÐP^”JÙ9zôèÛ·oË–-Û®];õÒµk×.Ñ)V™ËB%«¢óòâèÑ£UÆ; ]»vU¾}.!!Aœ “““r†eccã•+W*kšqqq?ýô“Ê¡~ùåiÎë3fdØŸþýûË߈k÷믿ª$ßÊʪY³fòJqŽ;vœ;w®Ø*ú³xñâ3gÎ,Z´Hô°xñâR›C‡ÉíŸ Ðùš4šU¶víZi¶\]ºt‘ãèèèG�©4P™H:}Z+­Z'Çáááé¨Ì¨�4@¾¦RŠ522ʰYùòå•‹Êù‚%5jÔ¨ZµªW©RE,fýYÒ\*ôôþÏ+¬»wïž�S˜:uª<†úÕ«Wîîî6{ÿþ½���ÕËÕ�nß¾-ÅÊÊx† û÷ï//nÛ¶-}•Vùº g¨�åìì,/&&&*'*Y·n�4ÀV9ÓtzÊÚ´8•+W²H~Û¶m¥ �³ Í‚¢•6L»k×®j\îœRuÏІ ä�̼@666Ê×._¾\ž�$ÃSÈìѰ°°P–ÚÓ?æææR+�¡â«¯¾ú`Â�! Ð�Ê@阘•úúúgΜ™5kÖo¿ývîܹ̪u2åË3cbb’�¾U®\ù믿–—-[–~†aÿþýïÞ½kÚ´©Ú³?Ks;ÈúÁör‰V:_µ§¡úõ맬V+gC–Þ¶'”,YòIæT†§Ÿ$§™_¹råŠ+¦OŸ~éÒ%ù»‡Ü\îÜËÍzõêU@@@ô�F³fÍäҹȘ³³³òµ™ñ¼(;€ìÓ#€Ê@é”””ôm¬­­3{uDDĦM›Ž?.¯É°F¬¶iÓ¦ÉuØààà¤=½}ûv­\ |}}åXÖš…ºuëêèèȹ:}ú´r¶�¹­_¿þ¥K—¤Å;wîHÁû÷ïåÙ´M“Íf6Döéëëÿý÷n½Ú¹sçŠ+4t¹3”””$¿1›Hž”\¾@_~ùe.ŸŽô�†……ŨQ£ä)>\]]<¸jÕª–-[ò‹ ÷(@|ÖNž<¹jÕª}ûö5nܸX±b¹Ÿ 8Câà­Zµ:s挴¸dÉ•ô›7o>l``Я_?µ?åþýûrœ�Y¤MMM+V¬(‹CCCssŽ5jÔ� Я^½’‚›7oÊÃi'L˜�ý—+fg€°nß¾-½%ÒÚÚZí‘æê‰ˆˆPŽ>ÎΪT©’‰‰‰>¾wïÞEŠQïø¯_¿VÎ#��½J–,) ÓÏœ#Êz®\3U³F�ݺuË«Ûõĉ®®®Ç�ïСî]»Ú¶mëîî~øðáOÖ•ôfçéèèØØØ|اOŸÃ‡—)Sæ|n—.]jÖ¬(-.Y²DtCÞšûù7Tæö}ûömvö233“㸸¸Üœ`áÂ…åXž_B ­õ‘^ô§†³gÏ:;;Ÿ?¾nݺçÎ�kÚ´ižt#Ï/PÖJ”(áïï?lذ]»vÉ+Åå=zôæÍ›7lØ ¡1éßä¨Iå½ê½ÆMª©)k—ÙªU«¡C‡>}úÔÝÝÝÛÛûÓTŸ%ÎÎÎrìéé!÷êÔ©SVVV]ºtQûà*C§Å fg/eæ---ssvÊ-Zô?ÛVŒœÕÜÞÌ$&&~ÿý÷_~ùåùóçEpñâżª>ç‡ ôAfff;wîܲeKñâÅ•ëýýý4h Ob€¡  ¦’%K*ÕßúæÍñÓÊÊêt888¸aÆ~~~"^¿~ý�!C>qÆú÷ïÿÅ_HqBB‚ü¼;v$''‹­¹ n’F^”‡Zgíýû÷rlmm�›³“§Ý*V¬(òÊ���O™mqj:tX¹r¥ˆ‡.²­§——ÿüQ%½ŸþeÓÀ�ïܹ3mÚ4###åÓݧOŸƒò{ §(@¨©R¥JÊEõÆ·†……‰Ÿ¶¶¶šîmLLL¯^½?~,â6mÚ 4èÓgLOOoòäÉòâêÕ«¥ò¢§§§Vîæß�Ô®][Žoܸ‘�IQ”3ׯ_?7Ÿþúõk9nÞ¼¹(_aççç—’’òɲ=jÔ¨Ó§Ok¥Á/^œçÏ‹µµu‰%äEù�ŸìeŸ™™Ù‚ ‚‚‚z÷î-¯LNN?~¼øÉ¯>€¡  ¦† *ïß¿ŸÓ#¼{÷îÞ½{"¨Y³¦¦{ûçŸÞºuKŠûõë—WI1b„<=Å‹/6mÚôèÑ#ÿ*Uª¨äS mÚ´QæöÂ… ÜEyÕ”»«!((è?ÃÖÑiÕª•W¯^]ž+<,,ìäÉ“Ù<ÚâÅ‹wìØ¡vgΟ?/r+Å�:uRΤœ‡”¾}ûvxxxÖíSRR>|ø±.PfvîÜ)nËôëmmmwíÚµfÍùu£ân9uê¿úr„4€š4h œàôéÓ9�ÚÇÇ'11±dÉ’ÕªUÓtoׯ_/Çvvv¶Qï=Š9bjj:vìXyqéÒ¥Û·oŸ;xðàÜÜÁÁA¹øÁnll샤ø‹/¾ÈåüÈÿþû¯tëÖMžžÅÀÀ@Ü'r›Ù³gg'ÉÿüóÏŒ3”ºóÃåÎýàß>}ú(?}çÎ�Y·¿{÷n||¼‹«£¹ùʳøb`äÈ‘“&M’¥oŒ�} Ô¤«««œÈ"""âƒ5¥„„­´ùyå!–òþý{åÄ™Í)Çê½S1;Æ�gll,ÅAAAóçϧÿQ¦©[·nûöíåE///¹|™¡ãÇ�ËEÕÉ“'çfŠäàà`yô„ ”›(ÇþþþëÖ­ËúPâ*ØÛÛwíÚUeŽ—¹qãÆG¹ÜÊY¹¥ùʳ ¬hgXÝîÑ£G•*UäE�¬xäÈ9ž6mšæ�ÐÐÐK—.e¶uôèÑr¬œÙA@}“'O655•Ç�§œ1 ©©©bß›7o/^|Ê”)Y´Ìæ°Ó¸¸¸,¶*§'2¬µ=zôèï¿ÿ–_¾|ùÁÎ$$$¨‘4++«aÆɋoß¾mݺµürÂ\rqq‘k¦áááË—/Ï¢±lܸqúfܽ{·¼X¯^½fÍšýïßùtuÅqäªerr²»»{DDDxxøéÓ§—.]:vìØ/¿ürРA'Nœ�Ú'%%]¼xqøðáöööZiS6ûúúʇ»;99©1sE‘"E®\¹"²!b‘1e}<—š4i-ÎW+m諸4}úô‘ß(‰ŒŒìܹó«W¯LMMEÞ”¹Rç+Ï;(òÖºuk•kúâÅ‹.]ºˆT-ZôÔ©Sé ÇZieñ   ¹à›’’"Ò¾lÙ²K—.‰ ‹X\âÉ“'¯^½úíÛ·S¦LùñÇUŽ vÿù知ŧOŸŠ;'‹9‘£¢¢äK)8p@ôÿÙ³gÿüó�‡‡ÇСCEf6lذmÛ6©�¸‡ÅGˆ´üðÃâŠÔ©SGZÿàÁ¹Ê,ŽyîÜ9qW=zTÜ%J”˜1c†œ oooå(.�£££òkY»víÄÝ%eC|X¡B…}ûö‰|fv(eºbÅŠ{÷îÔÊÊÊÖÖÖÀÀ ..n×®]âPÁÁÁâÉÌâµ�={ö U>^Ü9óæÍ›:uªÊß-[¶\»víîÝ»â°é?·V­ZÞÞÞÊ[âöíÛ‡>xð ¸îÍš5AÍš5׬Y#@·�h ‚ß~ûM•/R$n ù¶yðà�Ș¸+Ê•+'cccqʼn‹N.\¸P9KÉ£G�DDòÅÝ+:£¬ÚëêêöîÝ[dOœ{jjªH‘#GÊ”)cgg'6‰räH†Ws/44ô—_~Ù»w¯ôÅ€8Yssó7oÞˆ”V©REœÚرc•/ÙKÏÎÎNžÔ{ãÆ�ºººÎÎÎ"‡zõê•8T‰%FŒ1cÆ ©d™µÌœ9óÊ•+*ëžýúõQê+>K?ëcÚÚÚf8ß…èùÀ�Ï�;§\Y¹rå©S§Êï½ôôô}TXXXˆgPš¯CÜ-®®®Ýºuã·€(@|d111ׯ_¿{÷îëׯ£££ ‹-Z¤H‘*UªT­Z5oû–��pêÔ©›7oŠ¿–.]ºI“&vvv*mNœ8qåÊ ‹:ØÚÚj¨'GŽéܹs‰%?~¬2ýÂÇwöìÙ‡FEE*T¨xñâuëÖ­P¡BvöU)@KuØ¿ÿþûöíÛ"°±±ÇiÞ¼yNûÿàÁƒ€€€§OŸŠ¾‰{CÜ�5úà$Ôê¹téÒ… Þ½{W²dÉ5jÔ¯__¥Á�7Ä-¡­­-n†† fx�ðððƒŠŠëÕ¾}û,¦þPƒxFüüüž?…ääd9NLLäš9E±bÅŠ]»vi¥U¢ÿJ#oêÝ»w§N�òyÿ“’’ž={&/†……qM€œb hDddd†ëË•+·nݺüßooïøøxyqçÎ�ÊEÙ¡;{öl²€�ÎÜÜÜÃÃ#%%E¹²F�Ç�·±±É·Ý qww_´hÑÂ… SSSåõÏž=Û¶mÛÝ»woݺõôéÓjÕªq‰€b hD“&M<8gΜÀÀ@mmíêÕ«óÍ7ß}÷�¾¾~~¯ï”)S2Ütÿþ}7774nÜØÞÞžK |�¶rX s@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4‚4@#(@4B�êyýúõ™3g¤¸L™2†††äB||üãÇ�¥¸U«VŸm*(@j:sæLÏž=ɲ°wïÞ¯¿þú³=}¦àhh€F0 ¦2eÊÈñÞ½{+T¨@N�ÅÇǯ[·NŠGŒÁdå|÷îÝ“çnU‘>C 5) y*T¨^½:9A>W¬X1)®V­š‘‘9àSúÌGƒ1@# ™¡¡áôéÓ嘄€O‰4dÚÚÚL»ò Sp4‚4@#(@4‚9   ‹‹‹[ºt©Oœ8‘ù À§D ¸¸¸8’òSp4‚4@#(@4‚4@#(@4B�|ÎRSSSRRÄOR�Ï–¶¶¶ŽŽŽøI*>: П£ÄÄÄ7iD@õÐÖÖÖ××7O#ò±P€ø¼ÄÇÇGFFÆÄÄ� @–ššš��ð,�©©©���¡¡!iÉ=æ€øŒ$&&>zôˆê3�ñ€ˆÇD<,¤"÷ ™®®n�:u䘄Ÿ¹äääÇ�'%%‘ kâ1‹­­-ÿ7�K   Ó××ïÙ³'y yúôi||¼¼¨££c–Fü¿ƒˆÉ>[)))‰‰‰oÓˆXZ)ñÈ”.]šüäh€ÏBrrrtt´¼h```kk«§GuøÏajjjmmýðáÄ„i¥xdăà èÜà«-€Ï‚rÞgmmí2eÊP}Tˆ‡B<âÉðÁ�(@|”ßMLL È �žx4Ä"/¾{÷Žœä_sÁÑ[á·â ‘äC)ÉÉ�îIñªèð�†à3Ö§ž-I€Ïœr gáÂ…I�™B… ÉÏ è\¢ YRRâÅÓǤ¸¤]y ÐÀç*55599Y^466&'@f”# Åƒ#å¤È¦à(øRRR”‹¼T Ȃʢòø G(@|©©©ÊE†sYPy@Täh€FP€hh€FP€h„)€Š””Ô1ñäA°45ÔÑá��€š(@@Õ‹˜øb?î"B”‹½ua#ò¨‡)8A LÁú·¼¾Aû�rLBÀ§D 2 «bää ¦àhh¹òôéS’€ Q€ ¾k×®�1‚< CÌ YbB¼ï¾RܦG}Crøˆ¢££ûôéS²dIR� Q€€‚,55õõ‹grLB÷ÿ:�œœîÞ½K™a ê˜:uêîݻɲÀh9“��0iÒ¤•+W’ d�4�7ÆŽëææ¦\3kÖ¬Ù³gKñÕ«WëÖ­«²ËÆ��œœ”k‚‚‚|ÒôèÑcúôéÒqØ#GŽ}úÔÝÝýðáÃþþþåÊ•“w?xðàêÕ«Å‘å75oÞ|Ö¬YÊ6‚­­í… –,Yâå奣£ãæææàà```°uëV±£££ã¥K—D³† nÚ´IÚEWW—+ h àÛýËL7e²ž·Ô�‡J§)UªT½zõÒo544¬�ÆÌ̬}ûö*[“’’ P¨P¡Y³fIkÅ??¿ ´hÑ"99yË–-Ò,‘‘‘cÇŽ=tè�¼»���Ø1<<|íÚµÒ‡ôŸ¢¯¯ß¸qc±ÉËËkøðá£F�’ÖW®\Yü411‘EP¥J.(Ò£ 䥪U«fÝ lÙ²éWV¯^]ü¬Q£†‹‹K\\œˆ—.]Ú¢E‹7n-ZTjÓ´iS±iÆ ">räÈãÇ�Ë”)£<ÈôéÓׯ_Ÿœœ,âýû÷Oœ81Ã>|X+mÂ.rJ‡yÈÈÈ(ëYLj¡¯¯/—›ëׯàÀyQòí·ßJAjjêùóçUv/[¶lß¾}¥Ø××÷öíÛé?"!!a÷îÝuêÔ©U« 9Eø/¦¯¯/åÊ•“c™4PZòøq¯‹pvv–‚ÔÔÔ¥K—¦opøðáׯ_2„TC  €«páÂr“¾A�:u:vì(Å›7o~þü¹JƒíÛ·ëéé}óÍ7$j  ú·¼ŽN±¥¥?"&!ð9KIIÉpý´iÓ¤àýû÷«W¯VnЉ‰Ù¿§N�Š+F¡^Bú·¼¾Aë}È|>Vì÷ËlS×¥ÉÈP›6m6lxéÒ%»¹¹9;;H›öíÛËüPh à(V²Lf›ììlÉÈÌ´iÓD±}ûv¹â,â"EŠtïÞ�A=üslàs׫W¯J•*Iñ’%K¤àÕ«WG�íß¿¿¡¡!)‚z(@Ÿ;�~øAН]»vêÔ)ìÚµ+!!�ù7�«[‹@–’’þXú“Ù»&\¢D )^¼x±VÚü•+Wnܸ1É�Ú(@@A–”˜pzÿNé�ˆIä÷ÿ�KJÊæÊ�ÎÐÐpâĉR|èСÓi³ØE[[[ ’““¹vÈh �™ššJÁÝ»wÓo½y󦧦¦j®£F�233“>¥_¿~Ziâ³hodd$/^¼à""C €Èëׯ«T©Ò¸qã… 6mÚtõêÕ‹/VN*}ÿþ}[[Û-ZìÞ½ÛÐÐ0³ÎtëÖmÇŽâ³ä™©3cbb"º1nܸ³gÏ7hÐ`òäÉ:tà‚BFÈ{:::£Òd¸ÕÇÇGeM‡4Y0‹£eíÑ£Gâç�!C²Ó¸R¥JG�åò!Ó›�íß¿¿\¹r­[·&È=F@@•¥©a”‹=y�RñY�oPPÐÅ‹]\\´µµ¹úÈ= ÐP¥££m]؈<|†\]]MLLFŒA*ðq~™�ÂßÿíîîþÝwßYYY‘ |Œ€€ý[^O¿y‡îrLB²­[·®X±ÂÌ̬G�ýû÷¿{÷®ƒƒC‘"E~þùg’ƒ�…4d:ºº¥ÊV ÑÑÑNNNIII">vìØØ±c¥õ^^^E‹%?øX˜‚øì.\Xeå‚ úöíKrð1øìèéé8p`êÔ©×®]344lÖ¬™³³sË–-É >ò�F €ÏP³fÍüýýÉ4Š4dI‰ §ŽHqã¶�ôô È ød(@@A–’’"Ç$|J¼„ Œ€>‚Ž·ª¾#ȇâ´îê>•b{ëF†LÁŸ±›ÿ’Õ{‘þ‹0  A  A  A z¤ 0mmm 3S9&!àS¢ ™¡�þÄÁÝÉÈLÁÐ Ð�  Ðæ€€‚,55õMt¬›6á=„àS¢ Y|BâÒÍû¥xúˆÞF†ä@¶¤¦hž$ ÿ䨖6³j¢ €tb_jý^ž4ü�©!Z¦V¤PßÞ4‚4@#(@4‚4@#(@4‚4ðyyöìYrr2yÀ' G ùPhXTkMCÓ¯³³³#]�}IIIööö[¶lùâ‹/È4�4 ?*ÛqT6[¦¦¦’.ȾŸþÙÏÏ/%%…Tà` às±wïÞE‹‘|2Œ€€ý[^W·S‹ºrLBàsváÂ…�òGð)Q€€ý[^O·IíÊäpøðá~ýúÅÆÆæ«^‰þ¼|ù²téÒ\ ‚Š4�/¤¦¦îÛ·ÏËËëâÅ‹OŸ>MJJ²²²jذáàÁƒ{÷î­­­�~—˜˜˜•+WîÞ½ûöíÛoß¾UŽnž0aÂÒ¥K¥ø÷ßwvvVn-[¶¬ïÙ³§gÏžòâÍ›77mÚôäÉ“­[·ŠÅ€€€_~ùEü477wqq8p J®^½êéééëëûèÑ£—/_.\¸L™2_}õÕ AƒêÔ©“Ù™úûû»»»{{{Oš4iöìÙb¥���øÜË—/GFFZZZ6oÞ|ôèÑmÚ´Qîèàà°k×®ô,Uª”è°¼(R§¯¯¯l0kÖ,éSð‰Q€òÞ½{÷ pùòåÚµkÏ�;·J•*�?^¶l™Oš^½zyzz(wyøðáW_}2hР9sæ/^\ì²qãÆô%Ú�vëÖmÏž=3fÌ�Öœ8q¢T©RR, @~ðàÁŽ;¼¼¼þý÷_±ØªU+ñÓÛÛ[ì›””$â·oß>ÜÁÁÁÐÐPÚñùóç£F�Ú½{w­Zµ&MšT³fÍØØX___Ñí?þøcñâÅâŒV­Zeff&÷$ `ëÖ­b—°°0yå“'OœœœNž<)¯ ß‘fìØ±þù§\|ÿ믿ڴi3eÊ”øøxi�H”««kùòå•ç«§§'2éáá±|ùr±8{öìqãÆq�å ЀüèÁÑÕ¬­Ô‘Ì(�ÂÃÿüòˈˆ??¿Â… ‹•uëÖíÞ½{ëÖ­ÿþûï={öüüóÏ*ï0`@HHˆ£££‡‡‡´¦V­Z]»výé§ŸæÏŸ¯lYâÿ“×”/_ÞÎÎN^ܵk×áÇ?~,UŸ%¢'#GŽìß¿¿¿¿ÿýû÷Åšøøø˜˜©ܱcÇÐÐÐÞ½{{yyééý§ÒØ¢E ±WçÎ�¯\¹²mÛ6q@e±;,,¬\¹reË–• Ð÷îÝ»ˆ¾¹»»W¯^ýÝ»w{÷îuss“ªÞ+V¬000øã�?¤ÆEŠùþûïß¾}+WÒEºuë–>¥õë×OMM]¾|yûöígÍšÅ=–WtH`‰‰IGÎþ+ý1 ÿEìJËàOFÈ€`É’%"(S¦ŒT}–hkkOš4IŠW®\'o <þ¼”³gHæÌ™S¹rÎ^doo¿nݺ£G�Ö¬YSZóìÙ³‘#Gž:ujóæÍW®\qtt=ztÑ¢EÅÖ7oÞtïÞ=44´T©RrõYbcc#emm-â   ^½zÉ=ïÝ»÷ĉÝÝÝåÆžžž3gÎç2dÈ� ´nÝzéÒ¥bwy¸·HŽŸŸŸòøcÇŽµ°°�âƒföZÅÇK�¹Áòh(È’SR.\ –þˆ˜„@þtóæM)¸{÷®Ê¦Š+JALLLHHˆ¼þöíÛRðúõk•]ôôôÆ�¯^OªV­*·nÝš5kV½zõDlffæááñöíÛ•+WJ[Ŧàà`Œ=ºP¡Bé�cmm-�×¾téÒ²eË”[¿øâ 92dȰaÃTvoÛ¶í¯¿þ*Å©©©óæÍSn•JáR|ïÞ½£G�fx.Û·oÝèܹ37X¢ ä1iÂeA*ø*™ššÊñ›7oäØÈÈH ~ÿý÷ØØX•½tuuÕ艱±±)R¤_¿~¶yþüùš5k¤¸C‡™ê›o¾‘A ®®® ò&åË”)“áî&L°²²’âcÇŽ‰UÙ*g`É’%éw¿víÚíÛ·ETÞFˆOŒ4�Çœ��½½½×¬Y³ÿþ,š%&&Êq«V­¤¡Ç·nÝjÛ¶í�;w”-‹+&Ï›¬333ùÕ*Ž=*O©!ÐNÏÀÀ@žäÅ‹þþþ9ꀑ‘Q¯^½¤855UšoDfcc3dÈ)>vì˜<„\¶}ûv­´áÕÜ]y‹4�Ç´µµûôé3räHåxç;wî̘1C­•V‡•csssybŠ€€€š5kN�:õíÛ·Ÿ ·çÎ�“cåŒÕé5lØPŽU*ÈÙѬY39~øð¡ÊVq¾::ÿ)o¦íååU£F�ºuërwå- Ð@>’””´}ûöV­ZuïÞÝÊÊÊÛÛ;³–ãÇ�wvv–âÄÄÄ?þø£R¥J7nÌì¥|‹ô¾DIúÙ?””ïBŒŠŠÊé)wWN?"©P¡‚½½½oݺUyüóçχ††2ü9?Ð#@~�””´fÍšE‹éêê.X°ÀÁÁAGG'444‹].\X£F�±cÇJcŸ###‡ ¶zõêµk×Ö®][Cý|÷î�‹ÏÍb´………g]ªþàî~Ê´iÓvìØ!‚¸¸¸U«VÍš5KZ¿}ûv‘Ã�rSå9F@yïÎ�;uëÖ;vlÆ ûöí+Ï/‘µÁƒ999Éí/^¼Ø¨Q£ 6h¨«EŠ‘ãô3c()g‘ß(˜}zzÿ;|V~Ÿ¡Rýúõ¿úê+)^¹re||¼’““½½½;tèP¢D î«AÈK)))}úô‘Š­?üðƒrØovîÜéââ¢\S­Zµ]»v9rÄÜÜ\+í�…ò[ ?®Ö­[˱ŸŸ_-ÃÂÂä¸mÛ¶9ý {÷îIA©R¥*Uª”a›víÚÕ«WOŠ¥Wnß¾]dà믿æÖÊ(@yéĉAAAR\£F •­Y¼QðÈ‘#éWvìØqóæÍR¬2|øëׯ™#ÿ  ™‘¡ÁìïûKDLB RLöööVnЉ‰™9s¦¼¨,Fk¥ Žþõ×_Ó0!!áýû÷"øòË/•ëK•*%ÇçÏŸ—ãC‡Éõ褤$)�Ž�™ &´jÕJŠEÒ×Í…Ó§O_¼xQ#FŒèÚµkf‡R9)ÙÚµkŸ}Z'11ÑØØ8ý”ʦ¦¦ ýyøð¡———8¾¶¶öãÇ�===_¿~-:/>B. +‰S“‚ lÚ´IôAOOO|ÖƒÜÜÜF�->qåÊ•ãÆ�ËNÅG<þ\œšèÀ† ,,,>éó’Îÿ)�S¬X±ÏöÒãw�·ÜÝÝëÕ«·~ýúàà`“òåË÷ìÙsäÈ‘RárõêÕC‡½té’¥¥¥X?kÖ,++«+W®Hû¦¦¦nK#b[[ÛñãÇO™2¥téÒé?hþüùÚÚÚ›6mzóæ�ø”Aƒ�7N|âØ±cÝÜÜT_»vmàÀ�"øë¯¿FŒ‘þh… =Ÿ4i’‡‡Ç‰'~úé§ØØXÑ·Š+Nž<ÙÑѱdÉ’<÷.]ºlÙ²eÞ¼y3gÎŒŠŠ233ñðáÃåWfG·nÝ\]][¶liggÇ•P€ò˜ŽŽÎÄ4n-W®Ü™3gTV:88¤¦¦æôƒôôô¦QY¿"�z�¯]»öâÅ‹ssú•*UòððÈe¥¹¤yý`~C ²¸ø„ëvKñÿcïN ¤*ï¼wõ.²Ù”Fƒ²ŽÜ‚x5qC5Š#¸Œè0htâ0*.‰[4€ŽF=‰¸*AQFQ@ý5Ša5 È"²”¦—ªïNWRÃ@ƒ€ýV7ÕÏsH÷¿nݺ}ûWVòóúÖàËÎò9„dª‰'Ö­[·OŸ>¢¨QÐl£Î�²þ}¡þ5ÞÚµk_|ñÅ‹/¾¸nݺҨQÐl#–�µ÷¾b`OñàƒnÞ¼yРA¢¨i²Eì¹>û쳻ᄏW¯^íÛ·—FMã h ­JJJRó¦M›v鱯½öÚm·Ý–ŸŸÒI'õíÛwýúõgžyfYYÙ¶Ÿ¬HM €†*ðuÝŽ "j âââõ…ï'ç¥õ»Ê¶Ô²eK!@úÍ›7/5Ïš5k—Û·oß•+WFôiÓœÜøÛßþ¶M›6‚­�Ð@š,\¸ðƒ>¸óÎ;S[&Ožü«_ýêä“OnÒ¤É!‡’ŸŸ¿ã#D»% 蔫®º*:‚lk&4�&GuÔš5k¶Ü’H$~W!šç̙ӱcÇaܸqW_}õ{ï½͇~ø Aƒzõê%ØK ¤ÉêÕ«àÚµk7yòdIî)²E@ h‚°@&ËÉÉ9ì°ÃR³@€tR@d²¼¼¼=zȨ–à 4A( ÂЙ¬¬¬löìÙÉùŸþéŸrs½í飉Èdeeeo¼ñFrnß¾½H'Kp„€ С€ 4A( B @ h‚È[I$%%%rˆäççÇb19ÀîQ@°µ’’’‰'Ê!rúé§Èv� “EIºôÒKS³@¨µ–,YRéö²²²m7I  J( 2Y,kР� k×®;¿s"‘�@•P@ÀlöìÙ]tÑ¢E‹.½ôÒaÆ „%[°ç8pàìٳׯ_?|øð©S§ „E {°òòòÔl!)j4@&Û¼yóȈf�džáÇ·mÛ¶~ýúW_}õ 'œî-_¾\Úì*k@d²D"±~ýúÔ,€Ìsä‘GΟ??ôOyõÕWÇ�÷è£� œ]¢€2ßôéÓ+ÝÞ¬Y3áÀ÷Zºtiß¾}O;í4Q°«Ð@æÛÿý+ÝÞ²eKáÀŽ÷éÓgõêÕ¢`7X¨\yyù?ÿó?¿÷Þ{¢`÷(  F(--ýâ‹/~ÈÊÊʪð|Ö¯_ß§OŸgŸ}ÖSÃn³T³™3gŽ=ú©§ž:õÔS{ì±hËo¼1jÔ¨·ß~û«¯¾jذa—.].»ì²Þ½{Wúð9sæŒ;vܸq#FŒèÞ½ûV÷–””DG{á…^zé¥wÞy§eË–‰DâOúÓÈ‘#?úè£o¾ù¦M›6ýúõ4hPnîÿ¶…+W®ìÚµëÂ… S[FWH·zhtΞ8¾—ªÇ¼yóžxâ‰çŸ~Á‚©�ëÖ­0`ÀرcS[V¬X1©ÂYg�õôÓO$·üñÇãÆ�‹öüä“O*=þøñã£þû¿ÿ{ýúõÉ-eeeK–,éׯßÔ©SS»Í™3çºë®{ï½÷¢�S÷ÙgŸ—^z)N8ᄯ¾ú*zõêu×]w%ï-,,ôô±3ÐP=–/_Þ¼yó¶mÛ¦ èU«VõèÑ£¤¤äá‡îܹsyyù«¯¾:lذo¿ý6«¢P¾à‚ žþùhþàƒyä‘ÂÂÂuëÖmïø�5ºöÚk—,Y2}úôä–ùóç_vÙeÑO|öÙgÛ´i³xñâ[n¹å/ùKtW´eܸqçž{nrϼ¼¼h·ä�ÜÒ AƒäØy h¨'V¸üòË6lXRRm™4iÒ¯ýë›nº)‹%÷9æ˜cÎ=÷Üc�=6Y4�?þÉ'ŸìÛ·ï²*®P>ûì³+=þqÇ}0`@ª€>ï¼ón¿ýöAƒ%ozè¡ÝºukӦ͚5k¢›#FŒHÐP%|!T§½öÚkß}÷MÎÇü�!CRísRÇŽyä‘ÔÍ;î¸cË{¿÷ªä¦M›¦æ{î¹'Õ>'í³Ï>çœsNr~ï½÷âñ¸g„*¤€Èèwùììƒþ!šP3¥–¹Øÿý+ÝáÜsÏíÔ©Srþä“Of̘‘º«N�:;yð¬í´Õ:tHß~ûíÚµk=T!Kpd²üüü3ÏÿüóÔü·¿ým«{»uë–V­ZuñÅÿùÏ~ùå—£�!®¶&óäŠjˆŽ;>ðÀcÆŒ8pàO~ò“ììì)S¦Ü{ï½›7o¾ë®»œÚsõêÕ‹-š;wîÍ7ßœÚ8tèÐzõêuïÞýàƒ®S§NVÅåÏO>ùdj‡§žzê´ÓNËËËKmY±bEôã¶Ü¡K—.[žÒW\qß}÷}óÍ7YË€Drrr¢-½{÷ö|ñ½ÐPStéÒåÕW_½óÎ;‡úÕW_Õ©S§U«Vÿú¯ÿzÙe—µnÝzË=yä‘!C†lõðo¾ùæ—¿üe4<ðÀ¼þúëŸ~úéeË–¥vxî¹çÞ~ûíŸþô§ãÇ��nžyæ™Ó¦MÛráŽáÇOœ8qÀ€×]w]rK³fÍ&Ožö£�>jذa×®]£ÃuÔQž,v†ª@Ó¦M[¶l)j âââúõë'çèŸÒÔGPc5oÞüÁ ;Þí¦ ;Þçž ;Øá…^Ø™S:òÈ#ßyçO »ÁÐá h¶–ŸŸúé§Ë!…`·) 2üïIýúõów&`WÅb±‚‚9?� “eggɨ h¨×>?£Á{“Ôã.=V@Õ*))I›6m’™Ä‡@uZ³fÍŠ+’ó¬Y³B&q4T�%K–|ôÑGC‡�ÇãÉ-Ÿ~úé%—\Ò§OŸ-Zxà�uëÖ•{44@&‹—•.~ÿõä|ÀQ'fçæÉ æèÝ»÷Œ3¶ÚøÇ Ñ0qâÄž={J‰=š “%ñoW/OͨQ>üðC!�Ù¬ @ h‚P@„€ С€ 4A( B �ùb±Ø–7‰„L`{âñø^>ì’\dö_2 4JÍâ€Z+;ûÿ\†XZZš——'¨TYYÙ^>ì4@&ËÉË?¨û™rb±X~~~IIIòæÆ�ëÔ©#¨TôIÍÑ ÇÐ?„ò V¨W¯^j^¿~½U8 RÑK#z�TúÂa7( j…-{´ÒÒÒeË–é a+Ñ‹"ziD/�Ô–úõë‹å‡°@­PXX˜———jÖ6lذpáÂúõë×­[777×*·Ôfñx¼¬¬lãÆ�ëׯ߲}Ž^2òù!Й,�oÞ°69ÔÛ'æ/”P‹Åb±æÍ›/^¼8uásiiéš Â�í½d,ý) 2Y¼¼tá/$ç¶§^˜“í_Û@­V§N�8`˨T,‹^,>«ó‡s)@-’ì óòòDÛ½@´ÏUÅеK�:u:è Í›7¯_¿~Æ %%%2�H~~~½zõêׯ_PP`å�ª¢€€ùvõò­¶,Z´h«-EEE‚`ϋŠ+4iÒ$‘HÄãq‹rPË_ÙÙÙJçа#“Ÿ·Õ–Öƒ·ÞÇÿc`�‹Årrrä„` h‚P@„€ С€ ˆ\Àœz÷Ø­¶üþ¼#Å;C �ɲsr[vljÀnØ{ßf[m)** ì e@&‹eç4< �€ja h‚P@„€ ¬ �ÉâeeËç¼›œ›uúiv®·} }4™,‘(_·ø¯É¹iÇ#½íéd ‚P@„€ С€ 4A( B @ h‚È@fËÉËP-Й,'¯ í©}åT Kp„€ Ða h€L–H$âe%É9;7?‹ÉH4T�auŸïP¿¡¨�ŠKÊïž0'9îÕ©0?G&UàÙ‘2`Ðg´ €jg ‚P@„€ С€ 4A( B @ h‚P@D®2ù]>'Ö½CÓÔ, �Ðý.Ÿ“�* ÒLÍìƒ>9räÔ©S—-[ÝlÙ²åQGÕ§OŸž={fg[^ª™š=Ò¦M›®ºêª×^{mÀ€#FŒÈËËûë_ÿ:jÔ¨'+tîÜùñÇïÔ©“  ) ÙóŸxâ‰õêÕ›?~ô5¹±[·nýû÷à� 4sæÌÃ?üé§Ÿ>ûì³ÅÕE]¹‡zèÚk¯Ý¼ysòfaaá}÷ÝwÅWH¦&¸úê«ËËË'L˜=/[Ýõoÿöo‹-6lXIIÉE]ÔªU«Ã?\bÔfeåñ·?Y™œ»µm’›cu }4•{á…RísVÅ%·£G�KMðñÇ�9òw¿ûݶísÒ�!C4h�U±LGÿþýãñ¸Ð¨ÍÊÊoÌû:ù'š¤“ºrwß}÷Å_|ÞyçõèÑ#¹%t�9zôè½÷Þ»sçÎ7n”ÿ<ùä“ÑsqÊ)§ôïß¿¬¬lÛ6lÝ›œçÎ�;eÊ¡@µP@Wî°Ã{ì±ÇÆŒsóÍ7§ç'Ž=ú»ï¾›5kÖôéÓå¿ï¼óNôuãÆ�Ñôè£�VºO÷îÝSóäÉ“…ÕB]S¤®°¶dÄŽ­\¹25Ï™3§Ò}š7ožš?ûì3¡@µP@³‡iß¾}jîܹs¥ûäæþï§kn¹–7�N¹"`ÇFŒqÝu×=üðÃ}ûö­ G>|øªU«fΜ٧OŸ~ýúUºÏ–WI7kÖÌ“@Æ[´r›Ï’Y´hË[EEERÒOýw3fÌxì±Ç^ýõ¥K—F7<ðÀSN9eàÀ�ßûÀ™3gŽ3föìÙŸ~úé7ß|³aÆüüü-ZsÌ1½zõêÙ³g,«ô�ÿò/ÿ2räÈD"±ÕöÔèm©nݺÑé�}öÙU{;cêÔ©7n|ûí·«¼€Þ½#pÀo½õÖŽ÷yÿý÷Sóa‡æo2^ë�ã·Þô·lû=Ò@�µaÆ�>ñÄ[þ…lv…ÿú¯ÿ:çœsvðØI“&�qÆååå[n,))ù´Â¨Q£:wîüÐCýô§?Ýö±cÇŽÝù¿nܸñÅ_¬´€þ!ç°37n}mÒ¤I•'èÈñx<Ê$9ggg÷éÓgW�°råÊU«V}ïn ,ðò€¨íôêÕ«O:é¤�>ú(ysŸ}ö騱c£F�fΜ¹hÑ¢M›6=ñÄ;xøþð‡TóÛ¥K—-Z¬]»vÁ‚‹*þ{·è8ÇüرcÏ8㌭y̘1©�œ:uj²ô<î¸ãš6mºÕÎuëÖ½þúë«üvF² Q@:òË/¿üå—_&çK/½t7–àx衇n»í6ïðÕê:�ŸþùÉö¹°°ð®»îºâŠ+öÚk¯¬Šÿyç‹r[Ù°aC·nÝöÞ{ïQ£FµmÛ6¹qÛšøÏþó%—\²ï¾ûFGÎÉÉÙ™“ wä­DOÜÍ7ßœœ7n|ûí·{‘@uɮͿü#�<2eÊ”hØk¯½&Ož|Í5×$ÛçH,;ÿüóŸ{î¹ÜÜuô¿ùÍoN8á„¶mÛ>öØc[6¿‘cŽ9&:fto4÷Ýw?üp ß¢ ÏaÉ’%³gÏ~÷Ýw»té…“ܸß~û¥¾Æãñ;ï¼3:ì¼yóÞyç�o¿ýv'O2Ü‘·2bĈ™3gFCôÄ�;6Ä…ÛÀNª½W@—••Ýyç�Éù׿þõ±Ç»í>'�tÒ\ðøã�oï ­Zµzýõ×·wovvö•W^™ì¸g̘è©Âshß¾ýäÉ“ï¸ãŽ7ß|3zÔË/¿ÿüóä]»}Iï®ú�çð³ |ðÁ½÷Þ;~üøN�:Ýxã�Ñö7ß|ó?ÿó?¿ûî»~ýú]ýõíÚµÛÕ wä¤âââ>}úD¿oNNΨQ£.¸à‚ÝΰIïd†X,V˜Ÿ#Èx_ø‡çÙgŸ½å–[æÏŸ_�¿K s(///--�¾&ç’’’ä\�|ã�7Ž3¦~ýú&LØí•7€ªU{ èD"‘²³wQÔk¯½vøðá©›tÐqÇ×®]»öíÛ·iÓ¦I“&~øá‰'žô qÑC~ûÛߎ?¾qãÆ÷ÜsÏÕW_ý»ßýî†nxøá‡/¸à‚ÿø�ÿØí…2ByĈwÞyç~ûí÷Ê+¯tîÜÙ«jˆÚ[@7kÖ,9,\¸p»•––nï®I“&¥šßSN9å¶Ûn;âˆ#¶Ú''§j–^�WÈÍÍ }Ó¦M»ýöÛ§N�Í={ö|ôÑG,XÍÝ»wŸ={vß¾}G�ýøã�Ÿyæ™C† ùÉO~RíGŽ¸êª«Z´hyÛ‹Ù׬YóÝwßí¿ÿþ^êÔZÅ%å÷Mú89_sj{ëAéT{ è®]»&‡—_~9‘HÄb±Jw›4iÒöŽðÌ3Ï$‡K.¹äÑG wªK—.�ÎvÍš5O<ñÄYg�îæÏŸ 'Diìµ×^C‡½òÊ+³*>­1úºråÊvíÚM›6í®»îºõÖ['L˜%³zõêzõêUã‘g̘qî¹ç6oÞùä“:è víÚmÚ´iúôéÑ×-w^°`ÁùçŸ �:uºñƳ*V‘¾üòËÿð‡?$‰»îºë¾ûîëܹs³fÍÖ¯_ÿÉ'Ÿ,]ºtˇϞ={ï½÷nÔ¨Q�:u¢‡÷ïß«“‰~ûí·/\¸pÍš5‡vØá‡Þ¤I“yóæ}þùçÉ «GUí9T*y ø®ßm»wäè7íׯß[o½Íßûé‚ÑS¼íeã@zd×òß¿}ûöo½õÖG‘¼¹pá—^ziÊ”)Éöù�C¹ÿþû“w­Y³fl…›nºéƒ>Hn|ä‘G~ùË_fgÿOŒÑCÞ}÷ÝñãÇ¿þúë©æ·sçÎG}tr.))Y¾|yô#î½÷ÞmϤ°°pâĉ­ZµŠæòòò÷ß?º™lŸc±ØÀ�|ðÁJ…*<‡J�xâ‰uëÖ=î¸ãª<üÝ;ò 7Ü0f̘�Ü9z“Éé—+‚ƒ>øÝwß7nÜ“O>9kÖ¬U«V5hРK—.ç�w^ß¾}ãñøÈ‘#·\¿øÇ?þqjååìììaÆõë×/Úçµ×^[¼xqyyyýúõ£?üð^½züñ›6mº÷Þ{“mò† ¢GEûWz&íÚµ‹~Ð<0~üø… nÞ¼¹E‹Ñ.»ì²TE¾­ª=‡m]V!Dò»wä�oŸ³*þƒÂ ºÄ‰„`7Ì›7¯cÇŽÉyîÐ3:ìßP&Ô@Å%åwOøû¿BÜ«Sa~ŽL ¶è3ZP]þOq4wn‡jmV' 4AX “ådÇ:ý(5 H'4@&ËËÍîuärª…%8B @ h‚°4@&+�Çç,^—œ;Ð0'Û¿wÒG �ÉJËþ¼89·mÞ '_$@ú¸€ Ða ¨³šž·aÿå@ ´yóæ¥ žHÎï·¼¨  @&T­£�>Zl�+ B @ h‚P@„€ С€ ˆ\d°¼¼¼Þ½{§f�餀ÈdÙÙÙ�5’P-,Á@ h‚P@„5 2YIIÉK/½”œ{ö왟Ÿ/ mЙ,‘HüíoKÍÒÉ¡€ 4A( B @ h‚P@D®€ïµ|ùòJ·/Z´¨ÒíEEEB@ |¿³Î:k—öO$B@ �ɲ³³›5k–𤓠“ååå�vÚirª…«áB @ h‚°4@&‹Çã+V¬HÎûí·ŸÏ!`·�?¾Òí‡v˜pØ4@&+--}ùå—“óE]TPP vO³fÍ*Ý^TT$¶Ç¥p¡€ 4A( B @ h‚P@„€ С€ ˆ\dò»|nî‰'ž˜š¤“2 “åääɨ–à 4A( ÂЙ¬´´ô�7ÞHÎÝ»wÏËË“ �6 h€L�Ç¿üòËÔ, �,Á@ h‚P@„€ |!T�C=´C‡r *..ž6mZr>ꨣ e¤�+ B @ h‚P@„!Èd±X¬aÆ©Y @:) ¡ t¼ý¥¬F3å@MÕ8ú_âÁ ¤™%8B @ h‚P@d´D"kó·ÑŸuëÖ%¢ �Э¼4kÖ+ÑŸûî»oóæÍòÒI @ h‚P@„€ С€ 4A( B @ h‚È@&ËÎÉ:àÐèûÉ'Ÿ”›ë=H+e@FËÎÉjúãèûÑG- Í,Á@ h‚P@„ £•—e}9+úóÊ+¯”––ÊH'B�ÑÖ¯ÌZ<;úþÊ+%­[·.((ˆæ¢¢"Ái €ÈhO_Ÿü~ÿìWï¿ÿþäœH$¤�%8B @ h‚P@„€ rE�É.¸'kî”èûÕ=Ú^yå•"ÒF �Ñêí›UP'úÞ°aÃV­ZŠHKp„€ ,Á�ÙoóùYGž}¿õÖ …¤™+ B @ h‚P@„ £••dýùùèÏ­·ÞZ\\, �С€ 4A( B @ h‚P@„€ С€ ˆ\d²XvÖ~?޾}ôÑ999òÒI �Ñrr³Z}?ùä“…¤™%8ÂÐPæþè7[Ü€ší¶«¾Ÿ[¾‘P…\ @®€Ède剿*O·7ÏÉ͉ÉH4@&+‹g½² ,9wnš“k© �,Á@ h‚P@„€ С€ 4A( B @ h‚È@+Èͺæè‚Ô �NÚ€L‹Åî% zX‚€ С€ k@d²Íe‰‡?(IÎW‘_�“ �6 h€L–Hd­+N¤f€t²A( ÂµÝ¢µñL‹’ß‹ŠŠÄüp h€Ú®õýÿ>Ýß:ù=a¹h *X‚€ С€ 4A( "W,;–ÕvßœÔ\©/®®û÷éš9ª� “åçÆÎï”·ã}ŠöùÇ ST$1  Y‚€ С€ k@d²òxâ¯kâɹM£ìœí}!@ h€LVZž5fnirÜ­ Ç÷¤‘*€ С€ 4A( B @ h‚P@„€ Б+€ –Ÿ“Õ¯s~jH'4@&ËÎŽí“P-,Á@ h‚P@„5 2YIYâé9¥Éù‚Nyù¹ÖƒÒG U`ò�3ÿýå@ TRR2éÓ Ñо}ûøàÁY……2ÒÆ¡€ 4A( B @ h‚P@„€ Б+€ ‹Å6l M›6�f�餀Èdyyy?ÿùÏ£áœsΑ�f–à 4A( B �ÉâñøÚ _ýu4 H'B�ÉÊÊÊ^{íµhX¶lÙàÁƒ e¤�+ B @ h‚P@„€ ЙlÕªUßVX·nÝ—_~) �rE�Á®¹æšÔ|ÿý÷' ™iã h‚P@„€ С€ ˆ\d°ßÿþ÷ÉáÔSO•�f h€LÖ¤I“äPTT$ Í,Á@®€Èdeee}ôÑÿ¼ÝçæžvÚiyyy2ÒÆЙ,�/ª0sæÌòòr�餀 4A( B @ h‚P@„€ С€ ˆ\d¶¼¼¼èkaa¡(€4S@d²üüüÞ½{GÃ9çœ# Í,Á@ h‚P@„ “%‰’ ÅÅÅÑ, �|!@&+--�0aB4|öÙgƒ.,,” �6®€ 4A( ÂÐP~þóŸwèÐAÔ@ÅÅÅŸ}ö™€já h‚P@„€ С€ 4AäŠ “ßåss»wïžš¤“2 £ßå·( ÒÌ¡€ 4AX “•••½ýöÛɹ[·n>‡H'M@&+++{ã�7’óÑG­€ÒÉ¡€ 4A( B @ h‚P@„€ С€ ˆ\d°‚‚‚Áƒ§f�餀Èd±X¬°°P@µ°A( B @Ö€ÈdÅÅÅ÷Ýw_r¾æšk¬ ¤“ à ¨–à 4A( B @ h‚P@„€ С€ ˆ\d°œœœÎ�;§f�餀Èdyyy½zõ’P-,Á@ h‚P@„5 2Yyyùœ9s’s§N�|!�N h€LVZZ:a„äܶm[4�N–à 4A( B @ h‚P@„€ С€ 4AäŠ ƒåçç0 5 H'4T�W?þêãÍuå@M÷Õ�Ùúü¤•jKp„€ Ða h€LVZ²yÚ‹Ï&çgôÉË/� �6 h€L–H$Ö­Y•š¤“%8B @ h‚P@„€ С€ 4A( "W,;;»I³–©Y @:) 2ú]>/¿û}äT WÄ€ Ða h€L�ÇW½,9ïÛ´…Ï!ÒI �ÉÊJKÞ˜ø\rîÕïÊü‚B™i£€j¢•_-ÙÕ‡,úQb—ö/**’3@P h &xú±»ü�]Ü?‘HÈ (‹�„€ С€ 4A䊨�œøÿvõ!§ul)7€E ÔDMšï¿«)*j%7€Åá h€Œ~—ÏÍ;æç§§f�餀ÈdÙ99-ZÿX@µ°A( B @Ö€Ède¥%ïO}%9uüɹyù2ÒF �Éâñø²E S³@€t²A( B üöîN§²?cf�5"¾ÈH¢­¤ÅÃSiCÚ³µ(E«6•ÊSž–¯ž¶§ôTZ´Ú“¢”%¿PiCIÙCd);cÆÌü¯ÿœïïþÎo0¡¹gï÷Ëk^ŸûÜ×¹Î9ŸsîÃ|îËu . ˆ hâB€¸P€ . ˆ hâ"Q аâÅ‹—)W>KP� в¤ä’ç\~µ<…ÂÄ…4qa Èg&ÿxDÉ òPÈf~+P Ž8_È›4@Q–••µvý¦(®Pn?Ï! ’4@Q¶%-ý©7Þ�âž]Ú•*™,'@�14q¡ @\(@ ÐÄ…4q¡ @\(@ ÐÄ…4q¡ @\$J@Q¾Ë—(Ñê䯱XB€‚¤ P¤ïò‰%š4¬/@¡0q¡ @\(@æ€(ÊÒÓ·ŽûrF·<ñè¤$·} à¨De™™_LŸÅÍ�?2IF€d âB€¸P€ .Ì ü�…¿®Ø…ÖeîL«””‰Øg)@ÿ£Î™×å{ŸYYY °Ï2q¡ @\(@ ÐÄ…4q‘(EX©’ɽ»_*ì¤cþ³ ­=SÆÈ›4ð?RjTÝ•Ö)2@ÞLÁ@\(@ ÐÄ…9 вÔ-i�öÅ=»´+U2YN€c4q¡ @\(@ ÐÄ…4q¡ @\(@ ÐÄ…4q¡ @\$J@V"!¡IÃCc±„I (KJJluò1ò £áˆ hâB€¸04@Q¶ukÆ×3çFñqG’˜XBN€£ P”mÍÈøhÒwQܨAh  )@C>ø­ì‘*Ô—ö@©©©ëJ}ÅKÊ[ªT)9€}YÍš5%(Hæ€ . ˆ hâB€¸P€ . ˆ hâB€¸P€ .¥ +Y²äÕW_‹%(H ÐEYñâÅ+T¨ @¡0q¡ @\(@æ€(ʶlÙòÆoDqÇŽ=‡(H ÐEYVVÖºuëb±„ÉÄ…4q¡ @\(@ ÐÄ…4q‘(EÆâÅ‹óxwëÖ­y¯ž’’"‡@>R€(:N:餿²zVV–ùÈÄ…ÐEYBBBݺuc±„I (KNNnÓ¦�<…Âh8âB€¸0@Ñ1eÊ”<Þ­^½ºI (ËÈÈX°`AשS§D‰rE[­Zµòx·fÍšR$h€¢,==}äÈ‘QÜ­[7h  ™€¸P€ . ˆ hâB€¸P€ . ˆ hâB€¸P€ .¥ KNN¾è¢‹b±„I (KHH¨U«–<…ÂÄ…4q¡ @\˜ (KKK1bD·mÛÖs€‚¤ P”eff.Y²$KP�LÁ@\(@ ÐÄ…9 !T«V­fÍšòÀ(55µ|ùòQ®ÒR¥JÉ P`Œ€ . ˆ hâB€¸ðBÈ=†}Sá‹?ä�=PFú–Ÿ¾ý%Š¿mR‰¤’rì_}Š$@  P´/U¡r,–  )@e%’’ë6o#@¡04q¡ @\(@æ€(ʲ23·¬_Å%Ëí_<Á÷Ž@ÁQ€(Ê23Òç}ú^78»}‰„’rCሠhâB€¸P€ . ˆ hâB€¸P€ . ˆ hâ"Q а„‰5Ÿ‹%(HŠEYñ„ª'@¡0q¡ @\(@æ€(Ê2·n]öýçQ\ý¨¦ ‰nûÀgãªeÛ.\¸pá¶ SRR¤ ö.*EYVVÆšEs¢¸Ú‘'¸í{ Ñ=/Ùva�žÛ½§eIì]LÁ@\(@ ÐÄ…4q¡ @\$J…èìGm»ð¹KN�( (Le¨¾í””™€"ÀÄ…4qa €"®DR²$…B (+‘T²ÁÙä(¦à . ˆ hâÂÐEYVVVæÖ´(NHL.^¼¸œF (ËÜšöÓè·¢¸ÁÙíK$•” À˜‚€¸P€ . ˆ hâB€¸P€ . ˆ hâB€¸P€ .¥ +žP¢JýƱXB€‚¤ P”%”H¬Ú ±<…BòÁe‡Q¾¢<@¾Ò_àÿwÑ9öjæ€ . ˆ Spe[32'ý´"ŠOnP5±„£ P”mÍÈútæoQܤ^•ÄRCሠhâB€¸P€ . ˆ höV'N\·n] ¶nÝ:vìØÌÌL¹€B‘(ÄÏï¿ÿþÜsÏ�=zîܹëÖ­«P¡ÂQGuá…^uÕU¥J•ú‹�wîÜ9ôߦM›3Ï<³Q£Fµk×.S¦Ljjêo¿ý6cÆŒñãÇ><¼\´hQXî\@ÁS€&^FŽÙ©S§µk×¶lÙò?ÿùOÍš5çÏŸÿÌ3ÏtïÞý©§žúðÃëÖ­û7±aÆ·²m÷ÝäääO>ùDõ ‹)8ˆ‹?ü°]»vk×®íܹó'Ÿ|rá…6iÒäòË/ÿì³ÏÎ:ë¬9sæ4oÞ|þüùñÛ�råÊ 8ðÔSOu. °(@“ÿV®\Ù±cÇŒŒŒJ•*=ûì³Å‹�½•””Ô¿ÿðsÉ’%�;wŽÓ4kÖlÚ´i矾s…ho�‚£_¿~=zôزeKô²T©RO=õT×®]�Ñ=AïÞ½ÿý÷têÔ©lÙ²¹Þý¯ÿú¯Ö­[6lÒ¤Iƒ¾øâ‹w{CGuÔ!‡òÝwß-_¾<33³f͚͚5kß¾ýgœá,@¤dRB϶GÅb  ÒÞZ€~ï½÷bÕç 55uÀ€ Ð{‚Õ«W¿òÊ+Q|õÕWo·Í•W^9lذ<óÌ3¥}Ì1ǼöÚkry(^¼x©äòнµýè£�V¯^=55uÅŠ&LK233ãºÅtëÖ­^½z“&MÚvT/1Çç%+V<òÈ#·Û¦iÓ¦Q0eÊ”E‹tÐAòEÏÞúß±7nüÚk¯ 8ðþûï/˜-0`Ó¦MÓ§OŸ2eŠë&cÇŽ�‚† î¨M¥J•jÖ¬‚¬¬¬�>úHÒ HJ”‚�aï¡Ö{»3fDÁ¡‡šG³zõê-Y²$_ýõµ×^+o䣬¬¬ðû{ø)ÀÎ(^¼xBBBø)ùNšüþvŸ7o^WªT)�–±w§OŸ.o?©iO�þ1Šo9ûpóAP´¥§§¯ÍÕg`—/^<))©B¶HH~I�‚½Ý‹/¾X®\¹7ß|sOèù—_~‰=rÿý÷Ï£eåÊ•£`ñâÅN"ÄUjZFôG*(ÂÂo£‹-š;wîÊ•+ÓÒÒTŸ�]îáîî!áNî'±Ñ^3ú›o¾yíµ×ÆŽÍÛpðÁŸuÖY7Üpß®8mÚ´�Θ1ãçŸ^»víúõë“““kԨѬY³¶mÛž{î¹;Zíµ×öïßÛ¿±Âv·m\¶lÙ°{\pAþîÃÎ?~ü† &MšÔ¡C‡üÍùnô¼téÒX\¦L™ùä2eʼòÊ+ 4ˆn[&ž:uêUW]uÀ„žwò+šüêyÓ¦M9ÿÊÏc‹9‡oìÞ”:!Ÿá 2$W¥»xñâ/½ôÒØ±c׬YÓ¡C‡Ÿ~úéÀÜ¥žûõë÷�üÃÝ`Ï—‘‘~¥�½LNN®]»vbb¢Ì»*Ü@Ê”)S¥J•_~ù%---Zî0qòXöèoÿóŸÿŒ7.¥K—þøã�o¹å–¨ú\,»Èx饗:4ï¿Tzè¡–-[6hÐàµ×^ËYù š5kú ïË.›>ÿüóq:Š|܇ŋϘ1ãóÏ??öØcCr¢…Qu5ú™™™ùðÇngΜ9yòä�7îäNæWÏ9Ç5ç-===—*Uj7;iÒ¤m«Ï‘Š+¶oß>kÖ¬¹í¶Û|Ίªœ¿Ÿ/^¼V­ZªÏÀ_î!áN’ó�m;_acû)Ýc÷lëÖ­?üp?øàƒ§œrʶmÎ<óÌË/¿üõ×_ßQ'µk×;vìŽÞMHH¸þúë£÷7ß|§ÉÇ}8üðÃ?þøãþóŸ'N k�5ê•W^‰�S^¼xq‡þÏÿù?árÞyçÝwß}åË—ßÉ�̯ž÷Ûo¿�Übì{¤bÙ˜ìFbó×|Ì1ÇDÁàÁƒŸ~úéÊ•+û´=9‡?‡ßIw~\ÀŽ„;I¸ŸÄêÎ6lØù"ÛÚs ÐS¦Lùõ×_CP¹rå›nºiGÍÚ·oŸG:—¬¬¬ŸþyΜ9óæÍ �‡¿¥æÏŸ½U`_eüÅ}8=ÛW_}Õ·oßáÇuÔQ÷Þ{oX>qâÄ»ï¾{Ó¦MW\qÅ�wÞyØa‡íêŽåKÏ;ÿiܼys/^¼L™2ùžçZµjEAzzú°aî½öÚ�_·[·n]tÑŸ6›;wnÛ¶mÝD QÎ_¥sý·c€ÝV¶lÙœh ù+öÜô¤I“¢ M›6y|�¹3ßmfffŽ1bèСãÆ�[±bE¡NþîÃñÇ?xðàùóç?ñÄ={ö Kî¼óή]»ÞrË-5jÔ(Äžk×®�ó�óh¹zõê(¨\¹r< ‘sjŽiÓ¦íÒºU³¹;P(<Ûî_œó/ �{Y·nÝÓN;í°Ã;üðÃëÕ«WµjÕ¯¿þúïÿ{\$ûVyì±Ç†^¥J•ÿþïÿ¾ùæ›üñ{î¹çù矿üòËïºë®Ý˜‚#_zÅp\Ó§Oñï¿ÿžGËh~•b»U€)�9sfžyæ™óÎ;o»ÙÛ²eËŽþEûÖ_™ Å¥TŠÅ@Q+DŒOòK®ûI®» »dÏ-@W¯^= æÍ›—G³h°ív�=:Vù=묳þñ�üñ¹Úä×w™Ù¶}Òn¾ïÄ úôé3~üøŸ{î¹/¿üòܹsCܼyó3ftèÐaÀ€¯¿þz›6mî»ï¾Øƒø ²çfÍšEèŸ~úiGmÒÒÒ~þùç(>òÈ#w5Û«V­úÓìå}ÐAù¨³ÏJJLh{‚�P8öØ=;餓¢`Ô¨Qy|É0zôè½õÎ;ïDÁUW]šm[ùÍ/K–,III©P¡ÂðáÃ㺳fÍjÙ²åøñãK—.ݯ_¿÷ß¿jժьÒág­Zµ¢"r‰%FŒÑ´iÓœÏ.°žÿö·¿EÁŒ3òØÜÖ­[£¸E‹»š‡ƒ:(11±\¹r=zôˆm.— Äâ“O>ÙG Þž;ºY³fUªTY¹rå’%KÞ~ûíöíÛoÛfõêÕo½õÖŽzˆMqÞyçí¨M¨sgêÿŽnNMMÍõÖÈ‘#£Y†GŒÑ®]»øíC�5Ž8∲e˾úê« 4ˆ._¾<ö3!!áÞ{ï=ýôÓ¯ºêªJ•*åœ.½Àz>çœsÊ•+·~ýúÙ³gÏ›7¯nݺ۶‰}m¶Õ¸qã]½6š4i2;[ÿ»ê«¯¾Š‚Š+¶iÓÆG Þž[€.Y²äM7Ýtß}÷…øöÛo?餓êÔ©“«ÍÕW_½råÊõ+}Ž7®mÛ¶Ûm3f̘�ÜŸ5jDÁÌ™3sõM[|ðÁq݇òåËÿý÷¹ÆÆ)Ç–œp ?üðÃ.e;{.]ºô…^øê«¯†xРA÷Üs϶m 7ß|óv;yì±Çúöí[¹råÐOl,|Ì•W^Ù»wï¡C‡^tÑEÛ]}óæÍcÇŽ�â^½z•-[ÖG ^ž¼s·Ýv[ôÈ»ß~û­yóæ9 µ«W¯îرã»ï¾›Çê—]vY<÷Üs÷ÜsO®gâÍš5«C‡ÿú׿¢—›7oŽM ±]±©ž|òÉX­6++ë‰'ž6lX±ì¹É·-1çï>lWT ŽÆ)ç¯ÝîùÎ;‡ä¬Y³&×»ãÇ��&€>ꨣºté²íêŸ~úiÏž=C®fÏž¸í#kÖ¬ys¶%K–lw m÷¼óÎëÑ£‡Ï9û²ŒÌÌi ÿˆþdx 'P°÷ä�+]ºôСC[´h±|ùòE‹µjÕªnݺ‡vØæÍ›§L™~ælóæÍûý÷ß7n|ÜqÇU­ZuæÌ™óçÏ�\wÝu¡ÿ\kåï>lW4<�‘à»m·{nРÁ?ÿùÏ»îº+äꦛnzýõ×coýñÇÝ»wA¹rå ´ícƒ¯¿þ:‡ó:©R¥J®6!™áׯðáÃs=Æðûï¿ïÙ³g±ìï ¦=™}\úÖ¬SýÏgó¿*”H– à”èÝ»÷ž¼UªTiݺõ—_~¹téÒbÙŸgÏž½`Á‚h¤pýúõï¿ÿþ�>ú¨Xöðá™ÙÆ�Î9çD3f„`ýúõS§NÍÊÊ «,Y²dÖ¬YóçÏ_·n]Ô£F�RRR¢BpFFƆ ¢MDEÒœO?ýô>ø`íÚµ¡·_ý54 �‹e�}¾á†þýïo·Ö™�û°]kÖ¬™0aÂ�7ÞxÔQGåoòÿJÏÍš5+]ºô§Ÿ~:mÚ´Ï?ÿ¼|ùò¡·Ñ£G_qÅsæÌ g'œµ£�>z»ë†$D3xËžÕäî»ïÞ¶M8—_~y¸0zôè}ÎËŒ3ž{î¹nݺmÙ²åž{îyå•Wv~ìݰråÊ~ýúEq·3ëW­PÊ …=ÐÖŒ¬I?ýÏD:'780±D‚œÀÞäˆóåò�™™ùÇÄ^V®\9!Á¿xwMT¦¨Y³¦Tίl[·Nœ8±ZµjIII²QÄn/ÿOá¨[·ªU«î³ÉLÜówñÐCýüóÏüæ›oNŸ>=œ¼ *{ì±—\rI‡ÂÕпÿœórÈ!±™—ÕñÄO\qÅ¡Í'Ÿ|²hÑ¢ŒŒŒòåˇÇw\Û¶m[´h±yóæ¾}û¾ÿþûóçÏ_¿~}X+´ßîžvØaaCÿþ÷¿‡>oÞ¼-[¶Ô¨Q#ôÐ¥K—ã�?~GûŸ¿û°­.Ùâ‘ù¿Øó]wÝuÁ<ÿüóãÆ� g*55µR¥J‡~ø 7Üpíµ×æQ>å”SB6}ôÑpÿ�ͽ­ÐàAƒ>ú裗^zéúë¯F™2e4hУG�°Ûµk×v¯€meeeM�:õƒlÓ¦Mëܹó‰'ž¸/'dΜ9/¿üò˜1c/^¼aÆ<°I“&×_}óæÍã´ÅE‹�;öãl«W¯^°`AJJŠ+“¢ªx¸éÈ솙3gÆfÿøá_­�¨UQNØ¥¦e<:â¾¢ëÙö¨RÉ%äö& �ÈÃÖ­[çÌ™{Y¯^½íÎô¸]={ö|ì±Çr-¬Y³æ×_}à�æ±âã�?~Çwìèݾ}ûÞ~ûí{rÒÞyç�[n¹%zìS¤sçί½öÚ>{õë×ï¶ÛnkÛ¶í 7ܰråÊ[o½uáÂ…Ñ[o½õÖå—_ž¿›{æ™gž~ú騄®è"v{‰ü?…£~8âˆ#öÙd&ºž€}Í-·ÜÒªU«Q£F=õÔSÑ<ŸÅ²ç£¸à‚ &L˜�Ç|�;w>ú裧OŸþüóÏ/X° ZX¹rån¸¡I“&Ç{ì~àáÏ?ÿü)S¦„ÃOOOßÇ/ƒÁƒ‡W»ví·Þz+š`!œÜp׬Yâ?ü0ß Ð]ºt¹þúë/^|î¹çΚ5Ë'‘}�©‘€}NµjÕš7oÞ·oß�>ú¨dÉ’±å“'O¾á†òX±J•*gœqÆwÜ1uêÔJ•*Ë~4Tè¤wïÞ­Zµ ïîážœœ\ªT©-Zäû£¤ö:6l¸ñƳ²²N?ýôØô¾|ð°aêW¯^³fÍ�|:×.Ùo¿ý’’’ÂV:tèàc¸–-[& {h`ßÕ²eË›o¾9ç’_|ñùçŸÿÓ8à€Ö­[‡àÔSO=î¸ãöº/W®Ü>~êß|óÍh*’\“®´hÑbéÒ¥‹/nÒ¤Iü¶ž÷L/lט1czõê%{h`ŸVºté\Kn¾ùæÏ>ûìOW<ì°ÃÂÏ}yj×½ÚÈ‘#£ D‰BxXN¡lt¯¶dÉ’:dddHÅ^G Øá‡‹ÓÓÓ/¼ðÂÅ‹ç½JÅŠc?ÙëÌœ9Sö©©©]tѪU«¤bo¤ PìöÛo¿è¢‹b/W¬XѶmÛÍ›7ç±Jrrrø™Ç Ù“­\¹Rö �:uúâ‹/¤b/¥ ðÿ?KpÀ€'œpBlÉ·ß~Û¥K™)ªRSS%aÏ·nݺ‹.ºhÈ�!R±÷J”€",91áº3êÇb €<”.]ú½÷Þ;ñÄ-Z-yûí·6lxç�wî|'�?þøwÜ‘sIçÎ�_{íµ(^³fÍþûïŸk•x wïÞ¹¦¥¥}üñǃž5kÖW_}U,»׿ÿ°‡aɆ êÔ©z¾ùæ›K–,­’••õá‡0 ´_ºtéЦM›‡z¨R¥JºÛaݰ­Ðÿ7ß|³iÓ¦jÕª�zê©×\sÍ)§œ’÷ZÇ:tè—_~¹|ùò¤¤¤5jœqÆ]ºtÙÑÔØ›7o~÷ÝwÃNöêÕ+t^öíÛ7ägÅŠ§�vÚ›o¾¹m~òöÙgŸ 6lâĉ¿þúk”Þ”””°W\qEݺus5ºòÊ+s-üG¶íž¯�´qãÆ°J85?þøãÊ•++T¨pðÁŸwÞy]»v gá¯\“éééá" Iž6mZHÑ~ûíwÐA�}öÙ×^{míÚµ·»Êo¿ýÎH8›¡YÏž=Ã’éÓ§¿üòËcÇŽ]¼xqrrrãÆ�ï½÷Þ¿ýío±UV¯^ýÆo„UfÏž.­ tïÞýꫯÎÇC×ó§Ÿ~ÚðÁ“'O®Y³f¸x•.¹o¿ývíÚµõêÕ §ì¦›nJLüßre8ä“N:iÞ¼y±%²Eqøl†´ä¼ Þ þþûï9g‹ÎÕ’¦ P”%$¯V±´<ÀNªV­Ú|ЬY³õë×GKî¾ûî† žyæ™;ÙCçÎ�Cû¾}û~òÉ'Û¾[¾|ù3f,Z´èñÇÿôÓO·m°qãÆáÇ¿ÿþûcÆŒY·n]XÕCo�:uúí·ßb-üñÇ»îºkÊ”)Æ +Q¢ÄìÙ³¯½öÚ‰'Æüúë¯ýúõ?~ü_|Q¡B…<öyóæÍíÛ·÷ÝwcK~ùå—7²uéÒåùçŸÏYŒ [ìØ±cHTØ�ž={†N&L˜ðè£�>õÔSÏ>ûì}÷Ýwÿý÷ÇGõô!C†„­D¹ ‰Ý°aC«V­&Ožµ=zô3Ï<óÀìdª,Xv/à©§žz;ôÐC׬Y:yî¹ç¦N�ö¤[·náDD3¥DÎ?ÿü&MšDqô É {÷î7ÜpC¬MÞ¹ÚÖ¨Q£ºvízôÑGßxã�)))+W®:tèþóŸ/¿üòÉ'Ÿ|õÕWÏ;ï¼Ý»É»âŠ+ößÿ=z<ôÐCk×® G÷ÄOL›6íé§Ÿ�_sÍ5±ÆsæÌ é WoØnfffXÒ¢E‹­[·†Ì„U¢%‘qãÆ…35pàÀhΙ·Þzë–[nÉ9½òwß};oÞ¼‡~ø¯r¸žüá‡F×söjñâÅáй‹5ûþûïo»í¶pÈ¡qla8öpD!hÙ²åÒ¥KCжmÛGy$z·T©R±–[¶l¹à‚ ÂŽ…ó.€C9$¤+¬®¨pí¹³.h€ÿuÔQG 8°uëÖÑÊÌÌÌK/½têÔ©õêÕÛ™Õ«T©rúé§sÌ1!ÈÊÊÊõnBBÂQÙêׯ¿ÝW¬X±jÕªÃ?|Ĉ±…/¿ür·nÝÚ´iÓ¶mÛ „{üñÇ£:Ý{ï½ö¶F�íÚµ»à‚ zöìY«V­Õ«W‡U¢a¼?ýôÓc�=¶£Jb¤sçÎQõ¹ZµjaŸ—/_{«ÿþëÖ­4hP®Uf̘ñ÷¿ÿý�Cùꫯʔ)-l’-ª{>ðÀáçƒ>½uÅW”-[ö£�>ŠUö£ÄnÚ´é /6lX”«ßÿ}'OÓçŸ~Þyç…ö7ÝtÓSO=U¼xñhyóæÍ¯¹æšp ~ùå—gžyæ›o¾ùðÃË•+½[![®®8à€�ÕÝ»ZÞ|óÍphÝ»wúé§c CÂÙÇv/œ”÷ßç¿Àˆ7n\¸[µj’ûà”SN9ôÐC¯ºêª�7^{íµ%J”qôÖ�?þX±bÅJ•*ÅjÍ›7o=|ûí··ß~{Ë–-ÃE2wîÜ›o¾9d&´éÚµkØ«ûî»oøðáwÞyg³fÍÂê³fÍêÕ«W¸fÂêá²éÔ©Ó¶™ÙÕC®\¹r�=/^ûì'Ÿ|ò¦›nŠ^®Y³¦mÛ¶_|ñE¬Žù§*W®\µjÕœ•Ü\êÔ©³£å·Þzk~øá‡aÆËÈÜ·oßï¾ûîðÃ�5{ûí·gÍšõý÷߇¸gÏž7n2dHË–-c N>ùä•+WŽ5ªXö¬ÿüç?c%Ú\&Mš´dÉ’^½z…íF“uÌ›7/¼8p`Ô`ðàÁ-Z´èÚµkl• 6\pÁüñGè9V}Žüío ›}†8l´]»v�5Šv8ülÕªUX1jÞ­]»ö{ï½W¢D‰Ñ£G‡l§¥¥íä¤Û‹-jÓ¦Íï¿ÿÞ¸qã'žx"סիWo̘1 6ܲeËäÉ“;tè0bĈþ_1}úô«¯¾:%%å_ÿúW®·n»í¶Ç|Ó¦MéééW^yåüùós×ýSá¤_|ñÅIIIýû÷Ï5ü¼sçν{÷Žf‰¹ñÆÏ:ë¬êÕ«‡8$$ülß¾}¸ö¢ïNÂ5|ÅW„«¨téÿù±GqÄý×E�¯^½ú˜cŽ Wé´iÓÂ*Qƒp��xâ‰!�©©©™™™¯¿þz®¯.vã�O;í´ðóºë®‹ /¹ä’>}úÄ>_áL…k&l4úúáÅ_Œ wRØÕ�¨œy晹ò.¹°3_ýµÛZ!2(@n7Þxc÷îÝc/üñÇ:l;¢9yK”(‘÷ê±ù‹·nÝúÉ'Ÿä¬>G«_vÙeQ¼dÉ’ÿþïÿÎY}ŽtìØ1 –.]:þümhÞ¼yC‡Í9UtØô;ï¼sÝu×ÅÚÜÿý[¶l‰½ìÓ§Ïܹs÷;ˆûÜsÏ�‚ÌÌÌ—_~9ç[±Y/‚•+W¾ð QÎ>ûìÐá¢E‹Ž>úè�ÉíM7ÝV/–]ôÜn&ëׯMŒ92ç¬ù¨k×®iiiW_}õ¶S””/_þÔSO�âeË–Eßì¼p\üñÇ%—\²íŒØ !]Q¼iÓ¦¨²S¡B…X59ìÀ‹/¾«>GŽ?þøC=4ŠW­Z’k©Y³fóæÍ£ø³Ï>˯C®V­Z,—k¬ú ‡yá…Fñ_|‘sÂ��±*[±ì}·G�ñøú��g4äƒéÕ.Y_ë`y`þeM˜ý+0çÜgìQbóQ°çxúé§çÍ›÷ÑGE/GŽùÀÄæ”ˆ·œuÃZµjmÛ g1÷�CÙ¶AΙ æÎ�»íù"GqD¬dœÓO<1zôèh¤íŠ+†•¼7nÜøÂ /Ëžìb»{ì±±øóÏ?ßÑA]uÕU±yvÉ?üðÞ{ïEñgœ±£fݺu{øá‡ÓÓÓ‹e�¶¾ä’Kò÷Mž<ùË/¿Ì;±‹'ä!6ôûOýòË/C‡ݽ çLrÍš5·»z¸rfÏž‚Š+n÷��áʉö<\6ùuÈ9ÏõvçЈ=µ2\`«W¯ÎUÏ[É’%‹/ž••5dÈ�ž={æühËÖ½£GbR0 вððü‹%v^‰% Ô¬Y³~ø!ZÒ§OŸF�µk×nOؽòåËçÝ ç„!ÛÙn ²Xv³{÷îwÝuWôr„ QzüøñQo½zõºï¾ûòÞ‡eË–íè­Š+îÞ�ǪÏ*T¨R¥ÊŽšU­ZµyóæÑ£ ¿ÿþû… ¦¤¤äcþ‡§œrÊŽ~Û™*@Ë�›¿èXF�U£F�¼oûäÃ�éù¥—^ŠækÎC®6ò÷ÊÉuÙÄï�sÙÕ)8ŠeØ?ùä“ÓÒÒ~ûí·³Ï>»uëÖaÉŽFýSÀ v(zP^óæÍ£bÜÆ�Û¶mûÕW_ÅfLÞ+ìÞˆ¬[·n… Ö®]âèqŲ'ˆˆ‚*Uªyä‘,¿ýö[lÚ´)ï–õë×�Å+V¬Èß݈å!%%%ç†ò±ç5jJ† þ�ÿºã�?~àÀ�—]vY4YùÈ‘#njӣG�{î¹§lÙ²îc…ËCòrâ‰'0 ö³ùóç_|ñÅÑ$ E[8äØôÓ±'ʬ^½:WPÀ6lØëׯϻeÎY>þ´Z½«â—‡BÏð^·c‘óÏ?Ò¤I±G,nÙ²å‘G©_¿þ°aÃÜÄ —4ÀŸ¸øâ‹s>~pܸq·ß~û¾pà±ù‚c³-ÇfÕX¸pa¡ìÒþûïéééK—.Í£e™2ebñަºÞmñËC¡gx¯Û±˜ãŽ;núôé}úô‰MÏ®� /¼ðºë®Û¾1Úc)@ü¹^½zå|"ÜSO=õÖ[où£NOO�‚Ø\±¹GÆ�·3=lܸ1w©víÚ±xÚ´iy´Œ�•.–=kDþîÆ.å!=[-§¹uëÖ?m™œœüî»ïÖ­[wgº�ͽݞwfs…nÍš5Ñd uêÔ‰øN=õÔXƒ›nº)zæÛvÍ™3§S§N×]w]þîÕùçŸ_²dÉ(~ç�wòx¾bl|t›6möÛo¿üÝ�XÖ¯_ÇwäÑrÈ�!/¼ðB‡vµçphݺuËã'Ož6}íµ×Ìõ¿CÞùOÓŽfÒøì³Ï¶k衇Ž3&š‰eÆ sçÎu»+ ÐÀ>-ª[圮!•+W5jTΧÛíHlâ9sælûîÌ™3cqÆÂ5|øðhß|ðÁØü¿M›6=ì°Ã¢ø§Ÿ~ºüòË·[LŸ;wîßÿþ÷cŽ9æôÓOÏß½ª^½ú5×\Å¿üòË{ï½·ÝfáL… !!¡W¯^¹ÞÍÌÌÜn¼ó:uêËÉ«¯¾úÄOl·Ùûï¿ß±cÇ»îº+6uõŸjÛ¶ml²‹ñãÇßrË-Û½B¦N�zÞyçµoß¾~ýús=Äï�ÿTl2��¼Þ¼yóСC·{µ´lÙ2vI¸Ý h`Ÿ ò]°`ÁN¶¯_¿þ°aÃ’’’ònû¿ÿ_}õÕäÉ“s¾µdÉ’Î�;ǪؿýöÛ¶«§¦¦ÆâíÖs–}·;ÏrÎòp½£òwXý±Ç Á•W^™k(ëC=‹‡~ÜqÇ�5*6áïòåË|ðÁã�?~Íš5Ï?ÿüŽöyóæÍ»}Ê~øá Dñí·ßžóHcÞxã�è…agŽ>úè\ï†}‹Å«W¯Þ�}¨Q£Æõ×_{yÛm·]tÑE_ýu,«?þøc—.]Ú¶m{øá‡oûÈÊœ_xäš+¹téÒ÷Þ{oìå3Ï<Ó²eˉ'Æ å¿üòKØÜi§�V¶lÙG}tGç}Gg6vv4=÷Ž®œ¿rÈ:ä?çüÛîyØt„ÍÅÒr8bĈX›Gy$--mÛž×®][,{ë#Ž8Âí®P$J@–��P½zõX,!�˦M›¢y„ÇŒ“™™¹“ÿlnÑ¢E¿~ýbãp·ëª«®8p`±ìjÚ9çœóÏþó¤“NZ·nÝÇÖíիׄ ¢!ºƒnÚ´iÆ �<òÈX];çéÅ‹tÐA¹ú cñ´iÓÂ&r5˜5kV,Þ¶¼~ÀDÁŒ3~ýõ×X�/’––Ö©S§Ù³g_vÙe¹ŠÈÁ\pÝu×Åfø�>}ú¹çž[²dÉjÕª­Y³&ª÷•*UêÝwß­W¯ÞŽvéË/¿ÌYÍÜ%åÊ•9rägœ±páÂyóæuîÜùÍ7ßÌù•À?üpë­·† k×®÷Üs϶=|÷Ýw±øóÏ?ß½ÝxôÑG'Ožüí·ßF/‡f ûV¹råß~û-*㦤¤ ><6€w»ýé§Ÿr%ê–[n7nÜèÑ££—²í·ß~U«V]¹reT8®T©Òˆ#bç1²jÕª+Vl{…l÷Ê �·=õÛ^99÷m·yÙ²e±8gõ?fþüù±ø�?þ¨S§NÎwO>ùäèɇáðÃéù Á½÷ÞûÀÄÚüüóÏÝ»wñÅcóu_|ñÅ”)SBЧOŸäädw¼BQ¢wïÞ²»!Üé¿bõæãÿ+�ü¼Ë—(qèÿb ØcÕ¬YSvUffæü{Y¹rå]uñí·ß^sÍ5?üðC±ìÿÚÿã�?6lØ0WEoGŽ9æ˜M›6M™2¥y¶mÔ­[wݺu_|ñEˆ·lÙ2zôè^xáµ×^ }òÉ'»wïþöÛoG³s$&&®_¿>++ëØc� }NŸ>ý•W^y饗b]ýôÓOÕ«WÏÈÈǸuëÖ™3g†n|ðÁØCŸ*Tÿæ¯X±bRRRhðÞ{ïõêÕ+VéûþûïÃ[!cá·×¨PÛ¬Y³3fÌŸ??55uÀ€+V¬ýoܸñ—_~1bÄ•W^Vyä‘Gúöí›u!§sÎ9góæÍa7bƒUÃêk×®�¦„>ä�CB'ûÛߢ·B›ï¾ûîÍ7ß »Ž4¶K¡‡ÐyXe'sžSHÅe—]23{öìp¼ï¿ÿ~éҥÆÂ½üòËW_}uèùñÇYÊYŽ\½zu8ËãÇ�ïÙ³gl2‡eË–-\¸0´É/•m'÷!dòÒK/�6mZÎÉ…ÓÒÒBÚ£¿§Ÿ~zرZµjÅÞ o}óÍ7áèß¿laXR¥J•°Jùò壳öù¢‹.Z´hQ¸bÍÒÓÓÃêÑøßãŽ;îƒ>ˆ�²/–])ž:uêm·Ý«ä†SŽ¥d¶ýöÛ/\-!Qƒ WWì¬}õÕWaÓQ>Õ0iÒ¤çŸ>\¥±aÂÙ '7j¶‡\,{øsHø¼yób—Êù矟óWÔåË—ßtÓM±k£L™2¹*X¿~ý�±èê Ø‡¹çž{:wî\,ûk¤p¡F„�?þ8u¸ÔÃ…ñúë¯_ýõa­üã!3|{ÉY8êÖ­[ÕªU÷Ù{uñ=vš!ØÃ…»vìñ¯o½õÖÁ,'ÀnkÒ¤‰$쪭[·æœ^¹^½zÛ-•n׿ÿýïÞ½{ç,0ÅÔ¨QcÔ¨Q 6üÓN233/¸à‚Ð2�á}ƒ~î¹ç¦M›–žž^»víóÎ;¯{÷î!o]{íµIIIíÚµ;í´Ób{þÚk¯]yå•ÛíªnݺsçÎ]²dI®ê^NŸ}öÙÉ'ŸÜ¨Q£œ…Ëœ&L˜�³\>cÆŒp°ãÆ�[°`ÁŠ+BJ«V­zÄGœ}öÙíÛ·ÿÓ±V?üðË/¾8vìØ_ý555õ€8öØc/¼ðÂK.¹$öœÀbÙ#m£òåv…„‡ƒÚíË rø­|âĉaÒÒÒ†¢ýïÔ©Ó¶Su?ûì³7Þxc½=ÿüó»ñÔÄ?üðÍ7ßœ2eÊòåË£#:餓ÂÄf޹á†Âõ°£~r�� ôùꫯ~úé§Ë–-ËÈÈ8ðÀO8á„Ë.»¬uëֹƅC¶ÛíC=Ô«W¯>}úÜwß}y\Zá*mܸñv„+6š©f7ùÎ;ï|ûí·ÃÙɹ°ZµjM›6>|x±ìGD†�UŸ#‡rH89«ÆS§N½õÖ[¿ýöÛpZöB·'žxbXÈO¸˜CZn¹å–�´‚¼½DrŽÂ'e_žDv“4�� vÃ_¯Äéö¢c>PâƒEYfffôÿ¡‚<Ðs€‚¤ P”¥§§G�Õ:vì˜s6€x3€¸P€ . ˆ hâÂC ,[¶,çË… æ|™’’"E ÐPÚµk—Ç»YYYR@` âB€¸P€ . ˆ !(ÒwùÄÄ¿ÿýï±XB€‚¤P”•(Q"%%Eö@ÇÏù²qãÆr@Ñ£ … zõê9_ú¾€"ÉÐÄ…4qa €¢,==ýÓO?�âæÍ›'%%É P` вÌÌÌ_~ù%KP�LÁ@\(@ ÐÄ…4q¡ @\(@‰RP„eee¥¥¥ÉCrrrñâÅå ˜4@Q–––6räHyhݺuÉ’%å ˜)8ˆ # вâÅ‹—-[6KìË>ÿüó}óÀ›6mêìCaQ€(Ê’““/½ôRy(óæÍûüóÏ—-[–™™Y½zõ¦M›Ö«WOZا(@ìC6l˜””´/izzúôéÓ kë_|ñÅwÜ1iÒ¤\Ë›7oþÜsÏ~øá.Eö Ðû�¤lòW/¼ðB÷îݳ²²5jT§N�ÔÔÔéÓ§/]º4¼õé§Ÿžp cÇŽmÒ¤‰D±/P€€|3lذ뮻îâ‹/~ä‘G>øàhaVVÖ;ï¼Óµk× 6lܸ±}ûö³fÍJNN–.Š<h€¢,ü'üã&ŠË–-ë9„qµjÕª.]º<òÈ#={ö̹<ü:vùå—G?ÃËùóç�?¾U«V2F‘— EXZZÚ ÿ+ÄW�=öXÇŽsUŸc.½ôÒ8 ŠgΜ)]ì   dffΘ1£oß¾;jP¼xñC9$ŠK—.-cì LÁù aÆGq„<°JMM�0aBŸx≥J•’€8IHH3fLÞmÖ­[�7–1ö‰Ï…@زeËÂ… CÐ4›„°/P€€‚0pàÀM›6U­Zõõ×_— ö¦à€¸[ºté½÷ÞÛ Aƒ!C†Äf‚†"Ïhˆ¯Ù³g·jÕjãÆ�ï¼óΑG)!ì;Œ€€xY¿~}¿~ýzè¡�7†—ÇwÜÕW_Ý·oßòåËKûhÈGöù XåiòÀnÈz¶½$I3fÌèׯß;ï¼³nݺØÂŒŒŒ_|q„ ãÆ�«U«–,Q䙂ò߆ Ž9æ˜ûï¿ÿÖ[omÖ¬YBÂÿâæÌ™sÉ%—dffÊEžÐ�ÿNÊ{¹xñâûï¿ÿµ×^‹^~þùç#FŒh×®�DQ´)@é»|bb«V­b±„–Zµj½úê«G}t�=¢%ï¼óŽ4Ežb@‘¾Ë'&6iÒDö·Þzë¨Q£Æ�â©S§JEž9  àtëÖ- V¬X!y ÐPpbÿQµD‰²A‘§ §J•*QP­Z5Ù È34@Q–žžÍ,´lÙ2))IN צM›¢À3{Ø(@e_|ñE7oÞ\ Ðýøã�QpñÅËEž)8 à 6,ü<òÈ#Ï=÷\Ù ÈS€€ü±|ùòÑ£G/[¶lG ,Xð /$%%½üòË Js}¦à؇¤§§;Ò8Y¹råa‡¶zõêÄÄÄnݺõéÓ§\¹r9üþûïíÚµKMM0`À 'œàjd_  °™>}º$Äɯ¿þºzõêlݺõ™gž6lØí·ß~þùçתUkåÊ•|ðÁBòA£F�ºtéÒ¿ÿè寿þzk¶W¬X±yóæO<ñD»víU䨇¸Üö M›6•„x{饗î¾ûîÉ“'/]ºtëÖ­•*UªR¥J�:u7nlÆgöM Ð�oÎ&Q€(Ê’““[·n-!’O (+^¼xÉ’%å(¦ž .Œ€(ÊJ•*Õ»woy …ÐÄ…ÐyZ·2®Ý/\¸0®ý§¤¤8‡@aQ€ÈӷƵû:qî?++Ë9 ‹)8ˆ # вÔÔÔG}4Š{öìYªT)9 ŒÐÄ…4q¡ ÀÿÇÞ}ÇWQ¦ ã'!ZBSº€‚Š€¢+¬¢Øi*+Š(¢ˆ¢¨¬ûØÖîÚ;¨ *Pi‚Šu-Xqw-� ‚ˆ -†NBÚoÞÌ»çÍ/@ˆÈINßïçs�™{æÌ¹fÎ�™‹á€¨04@‘.x8ª«_ò·žr Ä+h€"¥îÕÕ7mÚ4ªëÏÈȰ€Òb¢B€¨P€ * ˆ h¢"I âXùòå;tè‰%(I Ðñ¬B… ]ºt‘ T‚€¨p4Ä�¼¼¼_|ñ™gžY»víÖ­[SSSûöí{饗֮][r(y Ð'233{õê•——7zôèC=4˜òÎ;ïüéOºë®»&MšÔ­[7)¢„‚ žeggÿë¿‚XBâÛÝwß�••õÆo„ÕçÀé§Ÿ>hРM›6õíÛwÕªURD S€ˆgÙÙÙoÿ—4@Ü7nÜ|pÉ%—œØ©S§àuóæÍ¯¾úªQ  N¬[·.;;ûÙgŸMKK‹LLMM ƒÍ›7K%ÌÐñ,//oÓ¦Mò�’’’��÷_óæ›o¾óÎ;{õêUð‘ƒË—/ƒ–-[:(a ÐñlÓ¦Mƒ ’‡±cÇFnŽc7æ+4ñ“O> ^7n|ê©§:(a Ð[ÒÒÒüñ3f,Z´hãÆ�Õ«W?üðÃ{÷î}ñÅWªTé7­jÕªUÓ¦M«P¡ÂرcƒW¹¥„)@ì>ÿüó}ó‹wìØ±Ô·á£�>êÙ³çØ±c{õêµÛƯ½öÚ…^¸aÆ“O>y̘1�5úñÇG�uå•W>òÈ#o½õV³fÍŠù¹«V­êÛ·oµjÕž{î9·?S*  Z¶nÝ:jÔ¨#Fdffg0î·Þzëì³ÏÎÉÉ0`À³Ï>Ž[Ý¡C‡sÎ9笳ΠævîÜù£�>:è ƒŠXɆ N<ñÄ`%‹/Þo¿ý&Ož| 'Ø” h€}HÛ¶m“’ö‰ŠPvvö7ß|SòŸ›——·~ýúuëÖÍ›7ïÝwß�6mÚªU«Š¹ìÚµk/¸à‚œœœZµj=öØcŸšŽ¡Ñ´iÓŸþyÀ€á°Î»R½zõ¯¿þ:ܘ—^z©[·nÇwÜÓO?ݨQ#?J˜4À>$))É@ÀQ5nܸ�–Ë/·jÕêüóϦ¬[·®8ËŽ1"---.¼ðÂjÕªšÛ Aƒ3Ï(™Äh€=wàÈÍQÿŒ‘îµ5�¹«Y¿ÿ܈};v” „y!Qáh€x–’’2vìXyò Pò âYBBBjjª<¥ÂD…4Qa€=·äšjQÿŒaßþž¥333G�ÆC† INN¶×€£ °çšÖŒþÿ#iÚô÷,�‘‘Q£F�0nÒ¤I¥J•ì5 Ä‚€¨P€ * ÁÏ*V¬xÑEEb J’4@}znnnNNΡ‡zÏ=÷rÈ!2C S€ˆg õêՋİ/øúë¯Ï<óÌ6mÚLŸ>½I“&Á”wÞy§K—.³fÍŠ\$BÉP€ˆgÉÉÉ—_~¹<ì;–.]Ú­[·6mÚ¼öÚkåË—'~ðÁiiiÏ=÷Ü�7Þ(E”$hˆ¹¹¹={öÌÈÈxæ™g"ÕçuëÖÝwß}AðÓO?I%Lö‚6ÿûü�~¿Þ½{K°wåææ¦¥¥ÉCíÚµãþkNœ8qöìÙþóŸ6lXð»Ÿy晟~úé¹çžëH „)@ij´´´:uêÈÚ5kößÿ¸ÿšwÞygðÚ£G�‚¦OŸî T(@ijÜÜÜà+Œƒ3Î}á_ûöY?üðÃüùóƒààƒ– b„4@<Û¾}û˜1cÂøÆo¬T©’œÄ¾´´´Ç|ÆŒ‹-Ú¸qcõêÕ?üðÞ½{_|ñÅE\Ù½óÎ;aP¿~ýýë_·ÜrËš5k‚ÅO9å”›o¾ùÀ”XJž4D×G}Ô³gϱcÇöêÕk·�_{íµ /¼pÆ 'Ÿ|ò˜1c5jôã�?Ž5êÊ+¯|ä‘GÞzë­fÍšítÁyóæ…ÁW_},øÊ+¯¤¤¤lÚ´©ÿþ‡~xðöÔSOµ/(aþ/6DËÖ­[ï¹çžÓO?}ýúõ›6mÚmû·Þzëì³ÏÞ°aÀÞ}÷ÝÞ½{wèС_¿~Ÿ|òI×®].\عsçüq§Ë®Zµ* |ðÁ1cƤ¤¤qð:~üøJ•*«]²d‰=B S€€½&///==}áÂ…Ó§O:th³fÍnºé¦ÌÌÌâ,»víÚ .¸ ''§V­Z�=öXBBBdV… ÆŽ¼þüóÏ Øéâ‘wÇŽ ŽÔQ½zõîÝ»oÞ¼ù¯ý«D 3ì5ãÆ�8p`¹ü’q«V­Î?ÿü`ʺu늳ìˆ#ÒÒÒ‚à /¬V­Z¡¹ 48óÌ3§M›öé§ŸN™2¥OŸ>…DŠÎ'Ÿ|r¡Y‡zhð:uêÔ'Ÿ|2¼3J†4ì5g�uÖ¼yóªW¯^¯^½ÄÄÿ3üÀÔ©S‹S€NOOæ™gÂø’K.Ùi›�N›6-F�µcºvíÚa°ã ѵjÕ ^³³³¿øâ‹“N:Én¢Ä(@À^S3ß,øòË/gddA�5Z·n½Ó6;v ƒY³fýôÓO�7.8÷€ƒªU«Z°bÅŠa°zõjûˆ’d h(}ï½÷^´iÓfWmjÕªÕ¨Q£rù#M¿ýöÛ…æ¶k×. vr:h{V‡=¦ ¥oΜ9apÈ!‡Ñìàƒƒ/¿ü²Ð¬ãŽ;.ô#Hº ­[·gå°×)@@)ËÍÍ]¼xq‡ã5ïJdîìÙ³ ͪ[·î 'œóçÏ/4ëçŸ^�<òȃ:H¶)I ÐPÊ–-[7£èQ2"O\¾|ùŽso¸á†àõ�7Þ(4}æÌ™Áë­·Þ*Õ”0!ˆg*TèÙ³g$–€Ø´råÊH¼ã# ŠÌ]½zuNNNùòå Î=ýôÓû÷ïÿä“O:´Y³fáÄ×_ý‹/¾¸ì²Ë"WˆPb âYp"Ò¶m[yˆq›7oŽÄEß?T±bÅ0ÈÍÍݰaÃŽãu<óÌ3•+W>î¸ã®¹æšÆ�õÕWÏ?ÿü�wÞù׿þUž)y ÐPÊö ÈÈÈØ±A°ø“O>¹`Á‚Y³f­X±¢C‡7ß|sÑãJCô(@@)Ûºuk$NL,ê±myyy‘82lôŽÍ'±”:!€RVð¾æ¢eeeEâJ•*I1ÎÐñ,8/yóÍ7ø{÷îžC›ªT©RÌ–Û·o�ÄÕªU“:bœ4@<ËÉÉùæ›o¸K—. б)55µ˜-·mÛ U«V•:bœ!8 ”5iÒ$çææÑ2=== j×®]ôhÑ Ü ð¬Y³&ªë_ºtéÞ]affæúõëÃxÙ²eÉÉÉM›6µbÍP¡B…p|ç�7Ñ2R€>ä�Cä�ا ð\yå•ewãGŽYîÿÿ¸dbDùòå[¶l9{öì NKK+¢åŠ+Â@š2Á]úPúŽ=öØ0øþûïwÕfûöí ,ãÖ­[K±OJ߉'žsæÌÙU›ùóçggg‡ñI'�$iÄ>h(}Ý»wOII ‚~øañâÅ;m3cÆŒ0hÑ¢E»ví$�ا ¥¯råʽ{÷ãÉ“'ï´Í¸qãÂàšk®‘1Êhˆ ×_}RRR<ôÐCëׯ/4÷ƒ>€>üðà $]” IRP|�?þxT×ß­[·½»ÂÌÌÌÑ£G‡ñ�!C’““íD€’”““³mÛ¶0Þ´iSÑ�[´hqç�wÞpà iiiW_}õøñã#³~ýõ×+¯¼2RRR&OžÖ©!ö9R~ƒ:uêDuýM›6Ý»+ÌÈȨW¯^7iÒ¤R¥Jv"@Tmß¾}îܹÁåØºuë¾ÿþû©S§®Y³&œuÓM7ÍŸ?¿cÇŽ�5JII ^#—l×_}^^Þ-·Üòüóϯ^½úŠ+®¨[·îœ9sî»ï¾Å‹7lØpúôé‡v˜î¸ã<‡€x’��P±bÅíÛ·‡o7oÞ\¥Ji~¿ ?‰ÄA?ãèßC%ö‚ÓN;­U«Vò@ ÊÎÎþðÃøC‡ ÐÄ™”””´´´0Þ¸qãþûï¯NüNyyyAR°Ÿ‘“ßÃÝã@YU°0”••µbÅ #A¿GЇ=IÁ!}RSS¥å÷p+PVUªT©B… ‘RѦM›/^œššZ­Zµ¤¤$öÅ”›››��½yóæ�7¬>=Lrr²üü Ð@Y•��РAƒŸ~ú)rãsVVVZ>ÉöJc`ŸßÉ¿eX•*U7n¬Bì]A¯ô-múû)@e[Xƒ®P¡‚T{EП¨>ï-†àʼ*Uª4kÖ,33sãÆ�›6mÚ¾}»œ¿UÅŠSRRRSS“““ý¿Š½Eˆ •òÕ©S'///777204Àn;�ÄÄDEçhP€âMBBBùòåå Ô€¨P€ * ÁÏ’““o¼ñÆH,!@IR€ˆgácXä(†à * ˆ h¢ÂÐñ,##ã‘G ãaÆ(I Ðq.##C€Ra¢B€¨P€ * ˆ h¢B€¨H’Ø3™™™‘xÑ¢EB̨kÖ¬ ãyóæ%''Ë D[ÁbQÁ"Ò>HöÐòåË#qÏž=%„Ø7zôhI€¶|ùò#�}ú„qÁ"Ò>HöPjjj$nÙ²e«V­öl=U«V _Kq ±³ß%+‰ÎÚ÷Êz`¯Û»‡ºï³íÏÝëëß[+ü�ëùý›¡ÿוéÇöÙ~,FNJõc~ò¾Wìl˜~¬´ú±‚E¤}�!8ˆ h¢B€¨P€ *<„JÙE]Ô¹sç¦M›–âbg%¾K4VûBOè{•‰ ‹öçîõõï­þÎõø[à'ïKéÇÊú¹±~ÌOÞ÷Š� Ó�ùu”Š„¼¼úhÙ²eYYYMš4ùÃþдiÓXΰ4ü999#G޼ÿþûW­ZtL�5š7oÞ’%Kš7o~Ûm·]pÁRDÜü5 –ýøã�AÇþüóÏggg>¼8‹lÛ¶í®»îzôÑGƒ žöíÛï·ß~ß|óÍÊ•+Û¶mLïÚµ«¬e½§JOO¿õÖ[Ÿ~úé¼¼¼£�>ºJ•*_}õUZZZ§N�‚‹¸cŽ9ÆNÊzOµ|ùò›nºiÒ¤I•+W¦|ùå—[¶léÒ¥ËÃ?|È!‡Äfž‚oëhƒâذaÃYg�õÑGÕ®]{êÔ©�;w&¿ qãÆ <8++ëÒK/3fLb¢‘mˆÝ¿¦#FŒ�€2mÉ’%AÇ>~üø c§§{®Uºuë6wîÜfÍšM›6­M›6åòÿS×<\Ã$$$ Ï'½@Ùí©æÌ™sÆgüôÓOG}ô¤I“:è `â–-[‚e}ôÑŠ+>þøãƒ ²w€²ÛS}ðÁçœsί¿þÚµk×çž{®N�:ÁÄ´´´!C†¼ôÒK©©©/¾øb�=b0Ûå# 8222N9å”Ï>û,èMÞ~ûíN8!œ¼mÛ¶m½zõ^ýõ¯¿þzëÖ­§�všt#MÿçþçÒK/ ŽÌÜÜÜ`Jç|2PFýòË/×]wÝ /¼Ð¤I“Õ«W×áôÝvïëÖ­ëÔ©Ó‚ ªT©òÉ'Ÿ´jÕ*œž˜˜xÜqÇeee?üðÃý÷ßÿøƒ<e±§Z¸pap�|zýúõƒ–�5 §W¬X±k×®ÁÜo¾ùæÍ7ßlß¾}ÌÞ詊î©fÍšÕ¥K—M›6~øáï¾ûn�5ÂéÁÆüéOúè£�~øá‡W_}5hÓ AƒX˹[5¡Xþò—¿üûßÿ‚>}úÝM¡¹ƒ jÛ¶m<ðÀÓ§O—.Jý¯éåùjÖ¬ãã@P|Û·o¿ýöÛßyç�à|côèÑÅ_pÀ€‹/‚«®ºjÇë™›o¾9¸ ‚aÆ}õÕWò ”¹ž*+++¸L[·n]ßvÛmûï¿¡÷ßåÊ•sssÏ?ÿüåË—ÛM §*s=Uzzzß¾}·mÛÄ÷Ýw_вàܤ¤¤Gy$!!!hð§?ýióæÍ±–shؽo¾ù&Ò%]}õÕ;6~ä×\sM_wÝu‘ÿ¾eë¯)±¬I“&uëÖ ãð?lÇôéÓg̘ž®K;6¨R¥ÊàÁƒËåÿïÑà4Fž�2×Sýãÿ.Ù‚ %%eàÀ�;.Þ Aƒ>}úÁÆ�o»í6» ôTe®§úÛßþöóÏ?ÁÁÜ¥K—o×®ÝñÇ_.��|0Ör® »wÏ=÷„£¥×¯_¿cÇŽ;msÖYg%%ýŸ§z.\¸pܸq’F™ûk @RügNÜ}÷ÝapÌ1Ç4lØp§mz÷î3gÎ|ÿý÷¥(C=UNNÎ}÷ÝÆÝ»wONN.zññãÇ—löP†zªôôô1cÆ„q¯^½vµ…‘Åxà�õë×ÇVžjP´M›6½úê«a|üñÇ'$$ì´YÍš5�8âˆ0~þùçå�2÷×€ø³`Á‚p ±@ä ;jݺuíÚµ�Æe±§zï½÷V®\¹ÛÅ#—r¹¹¹/¾ø¢´e¨§š2eJFFÆn�ÌÚ¼ys¤�+¥ Çí_ÿúWfffyä‘E´ŒÌýä“O"= @iùøã�wÿüóHÜ¢E‹"Z¶lÙ2 rss?ýôS©ÊÜĭ fÏž-u@Yé©ö`ñï¿ÿ~íÚµ2”•ž*²xÍš5ëÔ©³«e“’’"�Füä“O±dc„4ìFä?Y”˾ˆ–çΙ3Gê§1Ñë©òòò¾øâ‹pJµjÕRSS‹¹¸iÊJOµvíÚ%K–ç£ 6زeËâÅ‹c'� а+V¬ˆÄõë×/¢eÁ¹ß}÷�Ô1rS¡B…ýöÛÏi g=Õ† 6oÞN©W¯^Ѥ£ÊbOUüªT,wt аéé鑸ZµjE´,8wݺuR”¢ÜÜÜ�7†qÕªU‹nì4(‹=Uñ/Ött@í©â££S€†Ý(øS�Œæ¾SçFú&€R±~ýúÈØEŸÃ8�ÊhOUü‹5PF{ªøèè a7¶n݉+V¬XÌßù–-[¤(ç0Nc€2ÚSé耸ï©â££S€†Ý¨R¥J$ÎÊÊ*¢eÁ¹—ˆås§1@í©tt@Ü÷TñÑÑ)@Ãn¤¤¤D⌌Œ"Zœ[p)€X>‡q”ÑžJGÄ}O�4ìFƒ "qÁÿø°£mÛ¶EâºuëJPŠ >¥½àYŠÓ nzªâ_¬éè€2ÚSÅGG§ »qÈ!‡DâÕ«WѲàÜÃ;Lê€9�ÉÈÈØ°aƒÓ ÎzªªU«FJ3E_¬éè€2ÚS5oÞ<11±¬wt а­[·ŽÄ+W®,¢åŠ+vº€Ó€hôT‘`ýúõEß™¨£ÊbO•œœÜ¼yóâ|tÁÅ+W®|ÐAÅN a7N:é¤H¼páÂ"ZFæ&$$\  ¬œÆ¤¦¦}ôÑR”•žj?ì°Ãêׯ/ó@Yé©"‹¯]»¶èû¯-Z�;w._¾|ì$Pvã¨£ŽªU«Výõ×E´üâ‹/ }ûöÆJÝÉ'Ÿ¹ö(æiÌi§�–””$u@Yé©N?ýôHƒ"ÏÈȘ;wnwïÞ]Ú�2ÔSEÏËËûßÿýß]-¾hÑ¢ôôôØìè a7‚.æ‚ .ãO?ýtWͶlÙéD"íJÑ~ûí×£G�ÝžÆ,Y²$ò6�Æe«§jÛ¶m›6mv»øçŸž��­£ÊbOÕ­[·ý÷ß·‹òÉ'a�œœÜ§OŸ˜J 4ìÞå—_ž��‹/þæ›ovÚæ�7ÞÇñIMM8p ¤±àŠ+®ƒ�>ú(--m§m¦L™Í›7�\\”•ž*²øôéÓ#µ›]-~â‰'qÄr”¡žªbÅŠƒ ã©S§îj #‹÷ë×/R°Ž а{-Z´2dH?öØc;móè£�†Á­·Þš’’"i@ôüú믑¸èGÙœvÚiݺu ‚àRgôèÑ;6ؾ}ûO<Æwß}wä1ëe¥§8p`xkáºuë&Mš´ãâiii'N,—ÿß[ïºë.»(s=Õõ×_ß Aƒ ˜={öNo‚þþûïß}÷Ý HII¹õÖ[c-ÏÎ/¡Xî½÷Þð©£Ï=÷\d@Ÿˆ &|öÙgAp '\{íµÒEYük @òꫯFâà"$//¯ˆÆO>ùdíÚµƒàþûï_ºti¡¹<ðÀ’%KÊåÿOÏÞ½{Ë-Pæzª *—i•*U â[n¹%2jÄM7Ý>¶ë¯ýk‡ì ÌõT5jÔxꩧ¢öµ×^›™™YpnnnîŸÿü眜œ ~ä‘G<ðÀXËsù#F8Ú`·*V¬xÎ9çÌœ9såÊ•A÷tÌ1Ç4iÒ$œ5eÊ”�fggwéÒeÚ´i•+W–.bÇèÑ£?þøã0þ”^|ñÅáx2”9ÁEÅwß}÷¿ÿû¿#GŽ|øá‡#HË—/Ÿ;wnpU“‘‘‘œœ¼ã©Hjjê™gž9cƌիW¯'œpBø´äàZåÑG½þúëƒxÀ€ÁUML=-ÐS¿§ªW¯ÞI'�ôÚk¯ýòË/}ôÑÉ'Ÿ\³fÍ`zffæ­·Þ:jÔ¨rùÅ�¿ÿýïN†�2ÚS|ðÁmÚ´yýõ×—-[öÍ7ßœrÊ)U«V ¦oܸñòË/Ÿ6mZRRR°’Ë.»,sžPti(hË–-·ß~ûèÑ£7oÞüì7n¼`Á‚~ø¡víÚÿó?ÿsÝu×¹l#FþšÎ›7oÅŠo¾ùfp¸†ÿ êÕ«×ùçŸß´iÓ&MšÔªUK®Ê�uëÖív8¿ûï¿?8'ÙÕâÁ%ÍóÏ?Ÿ••uÔQGÕ©SçÛo¿ .`5j4|øðÈÀ‚e·§ZºtipQöÊ+¯$%%‹§¦¦~ýõ׫W¯nÑ¢ÅÝwßݳgO;(ë=Õœ9sþò—¿¼ÿþûU«V=ú裃•|ùå—éééAüàƒvêÔ)6s® ¿ÙÖ­[?ùä“ùóçoÞ¼¹zõê­[·>î¸ã*T¨ 3ÄÇ_SâØúõë?þøãE‹mÛ¶­fÍšíÚµ;æ˜cŒû ÄSOµzõêàzmÉ’%YYYÁYñQG¬AV�xê©–-[öÙgŸ-_¾<77·~ýú;v<ôÐCc9] ÐD…›ˆ h¢B€¨P€ * ˆ h¢B€¨P€ * ˆ h¢B€¨P€ * ˆ h¢B€¨P€ * ˆ h¢B€¨P€ * ˆ h¢B€¨P€ * ˆ h¢B(ikÖ¬9à€^~ùe©ˆo Ð@I›8qâÏ?ÿœ““#ñ-I ˆ'ëÖ­kÒ¤ÉÖ­[÷ÊÚÆ�ÁÈê^7qâÄ”””=zØ}ñM€¸òÊ+¯„åËzõê 8°S§NM›6­ZµjbâÿùÏÛ·o6lØë¯¿6¾é¦›‚6•+Wâ¼¼¼ŒŒŒU«VÍœ9óþûïß¼ys¸)Ýë~üñÇÿûß\pA˜y» Ž)@W¦L™¼ž}öÙãÆ�«V­ÚŽ 6mÚUªT¹õÖ[ Õ@>øàN�:ýáèÚµkð¶E‹Rº×Mœ81x=ï¼óì>€¸g hâǺuë>üðî]»N�:u§åËììì/¾ø"Œ;tè°ã¸¡.]º|ðÁU«VmÔ¨‘¬îu'NÜo¿ýN=õT» î¹€øñÊ+¯$%%=õÔS ;m0{öì-[¶„ñ±Ç[Ī:è jÕªíj=ì±9sæ|÷ÝwC† ö”Ý÷Ü @ü˜2eJß¾}6l¸«³fÍŠÄEW0óòò à &L^ûõëg÷ì  ˆá_|qm>ûì³ÿ{œ˜Ø¡C‡"Z®Y³æÐC•Õ½+//oÒ¤I�7Þ±|l÷Ä%hâÄ+¯¼Ò AƒN�:Ñ&r mëÖ­«W¯^DËŸ~úÉ-´{]�ÿeË–�{î¹;Ža÷Ä%hâÄ”)SÎ9çœ"†ý]ž/Œ‹À!==ý×_u í^7qâÄàõ¼óγûö Ðĉ´´´þýûÑ ø#oÙ²å°ÃSÁÜ»²³³_zé¥ ±mÛ¶µûöIR@|øú믋nA¸Üî*˜�5š7ož”î]ï¿ÿþš5k†j÷ì;Ü À¾"r mƒ š6m*!%l„ åv1þ†Ý¯ Ø'lÙ²eöìÙa\ôý³DCFFÆ«¯¾zôÑG7oÞÜîØw(@°OøÏþ“��Æ*˜%ï�7ÞØ¸qãßþl÷”Q ÐìŠ?‚0Ñ0qâÄÄÄľ}ûÚ}ûhö ‘„«T©Ò¶m[ )I7nœ1cÆ 'œÐ A»`Ÿ’$Ľ¼¼¼Ï?ÿ<Œ�9昤¤˜> ÎÍÍM+àÌ3Ï,ëùùå—322úõë·/ì> rê@ü›7oÞúõëÃ8öpøøã�O<ñÄÈÛ¼¼¼²žÿ &T¬X±W¯^ûÂî  Cpÿ"8”+ ÌÎ�;gdd¼øâ‹ñ‘üÕ«WðÁ]ºt©Y³æ¾°û(H€øy„]bbbÇŽcƒ“““ûôéÉŸ2eJNNÎyç�·ïì>" ˆ‘[h[µjU½zõ2±Íq3Òñĉ«V­ú{F².‹»€�4qníÚµ . c8”°¥K—~þùçg�uV•*Uì>€}�4qÎÂ¥hâĉÁk¿~ýì>€}S’ß"#—+FsÓ¦M_}õÕ¯¿þšžïÒK/­^½z0åóÏ?ÏÈÈ8øàƒO;í´Ê•+ïtÙ¹sçþûßÿ^»vm£F�N?ýôý÷ß¿èÏúæ›o‚5¯[·®~ýúÇ|Ó¦Mç7ýMðË/¿Ì˜1cõêÕ�7îÖ­[­ZµÒÒÒ‚)+V¬èÑ£GëÖ­#-333ß{ï½ $&&¶iÓ&ØÔòåËs“&L˜P»ví i%³û²²²fÏž½ö¿†šœœ~¯Ÿþ¹aÆÁ7Ýo¿ýöxcŠX�Ï8 {÷î©©©aã-[¶¼þúëË–- >±K—.Á§ï­#   Q€ ÎEn¡­_¿þ�Xtãï¿ÿþ¢‹.úé§Ÿòòò‚·GuÔ½÷ÞÛ´iÓŽ;fee]wÝuƒ¾ÿþû/¼ð‚K-]º4X*XЬqãÆ~øá%—\2tèÐ{î¹§B… ;~Ê’%K ´hÑ¢+®¸¢I“&«W¯‚`ú‹/¾X³fÍ]mÛþóŸ?þñ�999áÛºuë¾þúëG}ôlÀßÿþ÷‘#G^{íµÍš5 2äÜsÏ�3gÎÙgŸ=}úôÇ|ùòåaË)S¦ÍN8á„nݺ­Y³&ø””””É“'·jÕj·™Ÿ›ï²Ë.Ûé6Dc÷ýòË/Çü¶mÛ·A¦M›6qâÄ3Î8£víÚ<ð@�çàß%²ãºwï¼nݺ5x;sæÌÎ�;ÁöíÛ�<òÈ 7n Þ>ûì³Á/zý5jÔ¸ûL ÒõÏþ38NÎ<óÌ`7‹Ÿ;f̘�îñ‘6zôè;ï¼sÅŠáÛjÕª]}õÕÁ” ^¹re‹-6mÚÄåË—ïÛ·op ùá1¢üˆ#d€xµ}ûö«®º*,ÚvéÒ¥OŸ>E·oذá°aúuëöÔSOo¿üò˧Ÿ~ú¢‹.jÓ¦MÇŽƒ`Ê”)O<ñDõêÕƒ·‘¥Î<óÌùóçßqÇýúõ;üðÃÏ8㌔””àL{áÂ…½{÷.ôß}÷]§N�¶mÛöõ×_ŸrÊ)­[·îСûï¾;uêÔ-[¶Dj£�Ûo¿=x�œ±ÛV¾|ù>ø XjòäÉ=ôPä¦Úß´÷ÜsÏ-·ÜòðÃÿùÏ>½G�sæÌyþùçÇŽ|Áà#jԨѵk× åã�?~É%—Í}ôÑ#Ž8"øÊÁúƒÏ?~|Ðr·Ã:?òÈ#Ÿ~úéƒ>¸Ç7wÿÖÝì—›o¾¹{÷îÁ^ËËË RñÙgŸ½ð GuTûöíO=õÔ`cÞyç�`�aM<ø¦W^yeð]‚/˜››á¦I¸âŠ+†ädëÖ­={ölÛ¶mqÖÿý÷¿ýöÛ�;wÒûꫯ  vAðöõ×_4hPµjÕöìH;ú裯½öÚ`ó¦OŸ¼ýñǃ­ WìëË/¿|ܸqÍ›7Ÿ5kV°Ëüð€Øa hâÙW_}•™™ÆÅA8¼­80räÈÃ;,2=%%å™gž ‚n¸aΜ9‘é_~ùåÚµkƒÆ‘)W_}õ0iÒ¤‚C—˯¨öë×oÍš5�<òHÁ›�§M›V.ÿ†Ü"¶jÓ¦M“'O1bÄ?ÿùÏ£Ž:ªà¬âoÀ† þö·¿Á9眙vÃJ÷À�G�ß~ûíŸÿüçÚµkßxã�‘–uëÖ6lØêÕ«ï½÷Þݦ1øôF�üñ%¿ûêÕ«�=öØÃ?œ��NoÞ¼ù�˜––ö¯ý«`û† †í vw‹-~ëúW­ZuÞyç=ùä“‘û¾ƒõsÌ1Áyç�w~ç‘6`À€ƒ:(>ýôÓ‚ë Ž¥êÕ«¿ð ¿ €½K€x6cÆŒHüÇ?þñ·.Þ¬Y³BSÚ·oß¡C‡¬¬¬pôƒÐ¥—^šššÚ¿ÿÿwž�˜4 ‚BµÎI“&Í™3g¿ýö o1Ž9rä©§žzË-·ìjKÖ­[wÊ)§ :tøðᑊçlÀ'Ÿ|²mÛ¶5jÔªU+21¬iþç?ÿ ‡qýío ¾f¿~ý*UªTp á–¿ôÒKE§.øÜ%K–ôíÛwÇ­-�Ý{ô葜œ\pzX8^¹reáë¢Ä�_íjzÑëïܹs¡‘¦ëÖ­¼FÐØã#-Hfxƒóرc 6þâ‹/4hPœqQJ˜1 ˆ¿þúë–-[²³³·nÝšžžþñÇ?ôÐC‘¹S¦LÉÊʪY³fåÊ•“’’ªW¯y^Üorê©§þë_ÿš>}zð)á0#ójÎ Žxá…Êåø[è9~çÛÕ'._¾ü´ÓNœo§ Š¿›7o^ •MÃs^^ÞöíÛÃ)ÁW{ýõ׃ àm¹¡æÍ›¯Ë–-Û´iSJJÊ®¶y„ Ák¿~ýJq÷µk׮ДŠ+–Ë–à^9Þvµþ]M�¤w��´rù·¨>üý÷ß_²dIdPì±cÇ4HÄ hâDVVV“&MÂëN=˜/òö¼óÎ ‹¤¿Õ¡‡¼fff.]º´eË–‘é6lxíµ×>ÿüóo¿ý6ˆþùç— f¯�7.þÇ-X°àÔSO]¾|ùôéÓ‡ VÄ ÅÅÙ€Ö­[¯k×®ÍÎÎNJú¿—«W¯.—÷níÚµÃ)K–, Ǿ¸÷Þ{ÇŒSh%uëÖMLLÌÈÈØU:''gÊ”)A¢Ž<òÈRÜ}»¥úwÚÕú÷ÖçîôH«_¿~÷î݃ƒáé§Ÿ¾ãŽ;‚)[¶lùç?ÿœk ˆ*T(8‚DôT®\9 ¶lÙÁçÞvÛm£G�>ðÀ‡zíµ×6oÞü¢‹.7n\¡eׯ__p ÅÑ­[·Q£F]uÕU}ôÑOúè£çœsÎu×]i¹G»ˆa‹‹0qâÄrù7);Zöâ‘Ñ¥K—F�»æ­·Þ*gü ¶)@Ào3kÖ¬àõˆ#ŽŸ,7|øð… ¶lÙr̘1áP¿;úþûïúé§rù�§ ^çÌ™³Óf…nt T«V-Å¢K—.]tÑÆ�/»ì²Bm~ÓÆ�?a„nݺõîÝ;øwÝu×?þñ�)S¦|à^ðÕ‚YA°hÑ¢�®°ˆzffæË/¿Ü¾}ûC9¤¬ïëWXŠGZDùòåX.¿ô|øgŸ}lɻᄏÓG†_pêÔ©ÙÙÙ…fåå妣�` 7lØP¶nØ››[pbZZÚ’%KbçH+è’K.ILL|óÍ7ï¸ãŽK/½ÔOˆY аKwÝuW¡)·ÝvÛæÍ›»térÉ%—„SêÔ©S.ÿ±~›-Z´èÃ?,÷ßšfðZ¡B… øÃþpÍ5×oo¹å–Bk~öÙgƒÕ†ÍvªF�£G�.—?XsÁâòoÚ€rùåã‡~¸P±uGÁìÚµëªU«&MšThÖOúèܹs«V­Z¹rå³Ï>û/ùKrrr0ëË/¿<ÿüóƒ�‡e¨P¡BÓ¦M'L˜pÔQG}ôÑÁÜp Aãc�=6øÐߺß}÷]§N�ÒÓÓwüÖÁ:GŽYp˜éàzáµ×^=zôòå˃-©R¥JŸ>}†Zh¸�ˆñãÇ0à‰'žêÕ«W1×ß°aÃ�þýï?ýôÓ¿øâ‹H¶ƒõôèÑãÙgŸÝ³#­ àðöõ»ï¾~°@ìžW+@ÀNN”ÿ[lÚ´i<}¯ñãÇ_vÙe÷ÝwßÀ�«U«LÉÎÎÞ°aÃÒ¥K?ûì³x`åÊ•_|ñE»víölý]»v}ÿý÷W­Z^AôŽ´`—õêÕ+¼Ã f‚öiii—]vÙE]tÕUW…Õç@RRRíÚµÛ·oõÕW¿öÚk999á³ïöÀÚµkß{ï½ÓO?]õ¹<ýôÓ_|±<1Nö‹/ÎÈÈÇ5Þ©<0x]µjÕž­ÿ¥—^ÊÎÎ>ï¼ó¤z¯›?þGqÍ5ׄo333_~ùåþýûË ã `_qøá‡×«WïùçŸÏÈÈØiƒ±cǯ]ºtÙ³õgggtÐAg�u–Tïu3fÌøöÛoÿñ�„Oƒ ‚~ýúU¯^]f€§ …-X° æÎ�Oß«råÊo¿ývFFFûöí'Ožyb^nnî_|1`À€Ûo¿ýñÇ?óÌ3÷lýW_}õâÅ‹«V­êÚëGZ§N�o¹å–àõµ×^›4iÒµ×^+�@ìóBø¾üòËóÎ;oéÒ¥ÙÙÙåò׸qãQ£FíqM6_íµ×^›6mÚìÙ³óeff6mÚô´ÓN;ÿüóëÔ©ã0ˆÍ#müøñ?üpVVVÛ¶mƒ–ÚÊh¢ÂD…4Q¡ @T(@ ÐD…4Q¡ @T(@ ÐD…4Q¡ @T(@ ÐD…4Q¡ @T(@ ÐD…4Q¡ @T(@ ÐD…4Q¡ @T(@ ÐD…4Q¡ @T(@ ÐD…4Q¡ @T(@ ÐD…4Q¡ @T(@ ÐüíØ±À ëQì+Œ€…€`! Xh€…€`! Xh€…€`! Xh€…€`! Xh€…€`! Xh€…€`! Xh€…€`! Xh€…€`! Xh€…€`! Xh€…€`! Xh€…€`! Xh€…€`! Xh€…€`! Xh€…€`! Xh€…€`! Xh€…€`! Xh0à/ endstream endobj 64 0 obj <> stream xÚ¥ZK�ä¸ ¾çWø”G¢ž }²$·MúäÐÕµ•KÁæ’¿Q)Ê–«»g1hLY–(Š��yùm±‹)ÿì’`Iq[ó¶¼_Êpëf ¾Ûš º´\‚[·à—Õ9œ÷í/ßÍò§ÿ,¿”.ã ³¹ºò¶zçl^6¿æè—‹³q�>´e@Ëþøº|û–¼n±Ìy}ôÙί�¶åõþ�«1.ã¡ü3&ÞËŸ)¿áåâ],oc…÷—¾þµ󊘇5'_¸!*öVV˜T~�{¹À†„ Q_B!áåwùß¾¿@¾Ò&>Ê’ò&XšünV£âdƒ¸½Ê¤Ém¤Î»íGƒ•§ò>´#jú4éÚw܉çë9ø‡ÏxªT¹Ž2¿pÿ8Ùqks"Qê;MNð!wø„´+(¬¸ñb|r©3^��»4%]¬)–Å r²Œç ¹� Uù–´ˆ\8ïž ½ }^ªÜ¶}phçöDYd„ÚË4†òlTÊSòdø–%Žÿ³Î«ÝÜ…ƒ& zÒrnï%`›W9!nSìœI z%_ ËVÌâàK)¯Þº�/1“HÿP´(@F«°i?àhü4s8’3l ÷f|žó|È8×ÈÎè­yðÖ@{ëËÞŠrÂeÊ䢒 x»æò“q!¸~ŠÂ-Ђ„bš i>Ü'DãZTÑ¡æ�5Æ^AGÍ…LÄí<Ï�ɶ1­Ûô¶MDÊ«'§ k‡<Þ÷=?šÝíâ²[ ú¯´Å+c{› É½Ê؈õ}ª_€UF@~€£píböfô¸1U{ei)¥ìŠ•�KØ |Ü[$41DØoQmÄé‰Î{;Ì�ì¢xÅLÄiuà)£$D ·™¤·Õ…®™Q|©5 U”PHU¬@àÔ¼–—*s«2ò¤JÈ%î¦ÔTv†¡ ðâ£òúã©]9€Í?ì5Ù9øŠ@„4Õp ïËG®Z¼uó¨§-¦ŒoÜM�ºdÆnÊ'•_vpÑs'2«J ͉�ÔZ 9R³èÈg‚kÇoYùMWŽ¡Þ?AñÐŽBQG,Îl€Æ§ÀåÓj·®&\ƒ¢ì™ú ¡=£* T©(¼Ä‹½‘iØw~ gçòÛ2œú „½[ØÔ–c¨l>µ–´&—?g.6¯!æçö‚ä¶]€àã4«n\3°ú'"†g°'ÓS7æÄ·iKˆ DRF•šZYL­¹³T0…IìõÉ_{Ñȵzм–gQîÀ#Â>w@êX��ÕÄöèæM4ÜélÙáÞ1ªŸÑ_65|ÇúƒÌ®y+<º—c£X˜�Øó}Î6o¯ôdvF‹Á5ucúR ¾‰`:Wç§àÛJï1½CiT½4<–È´þ�ƒ .·uÀô@ªêæ+/*“±ÔÙc8çÑC"q#±,ÎÁ™Å9P-âSº]Ž“— :-¾ÁǬÓÒö�1åÀU-3$a�äaß«#þ¦ ÙÚÒëjB$öÖ6z¶©Ÿõ�:[:x•™}Dª€ý|†�šhÜúƒn*½CV-%þ v5)5<ר®­+vf¼Í’Y>Q̘„ò&Zór ê î�7¤¯Xi�½ß¹ÊçPŒôh÷?�n~|‚6ªÚ�漘º¸¬AM#oάȃ*Z²� ÊSzÓƒ¤B½ÇóV^ÍÅ·C.žGVÝ|âvà¨Öù3í²?7‰övof¼‡jH½€'è¥�ÊåµvâL;Á}Á¹\ÝʬÍ5xô MÐàX:dä �˜¦ß!u®>Õ•eF¸ŸÇ (î/D9æï9øp‘ÜÀ�„vLA$×?D ¾‡‰F[\}jYÐ�¥¹°]ucA•�~û¥+�‘ûmkŸq]9DÕT4lѨÔÔ³;Ólõ¹7%=ª\>s7Í$}ÔbäZˆë`î·:ÖLº‹Ÿ³GIz÷}e;¦¿R«;8))ˆÞpáÃNÇ;êwwûJëæäBî×Ù¼Û÷h„ƒÌ‘qž5k xg¤n°_µ¾Z’¸ê•–ÎÑYâ¹ÀqÌÙÝm �Hlvö£ÞD³fßïVðÔ=�õt V5Ý ë¼°­H©0ž0§C6]íD3«ŽoËzíÀWÕx•‚·|£þ°/CÜTjÙ³÷ÜÚ§559 $m±N+ ™k�§|9É*Û黋ÊÀuu*¹¢jöÊìdvÉ í¤›Ã+ uBÚôFØ6:´n:ëøÔWp�ÃàˆüùóÂf½˜úá„Ä–öÙÿú‚²q —F’+!HXPÝÎ ßýÛŽ¬´òÝ ×N¾Ìè÷„Ìpg‘¥-Ø€÷¿žçEàNM‡»š]ç´¹[ÿ‚¢ï�¢Ioúé) j>Û~¦ áÛ•�']œÞ�RèY+Ô;' úl½DO$ÖR¥øFHßy®Î˜ƒí Ñ.m®ó¬$ ýnª (äžÖ›ò5Mji]ÔU7tæ%„ëoõ¹&ÞÖY9Ös{>ñœI„ˆ)î#„ÙfÂ"„5:BXiqÕqhÁQJÖ:êÓšŠÇ]ªÉØãÿi“õ¹—íÜ‚C#nëÔ‡Nt“¾¿ˆ0¡C7ÌZÝ Í&×hõ(†/\¦Ž$¶¬ãE&ü‹ïSùÆ)]IúdˆÛ™Òñ}¹NR oÒè¼Q«ÞI“ÓµÞ1V>µcAY¬)èKA˜ôa’ßõ9æ°ùû˜€å«n´¾ Ì9¢f/‘u»öôª×X�¯í&þ }oí�Ðþ›˜ãÏ¿$øéuùmYgüoÆ×¸…å’ 1lË÷¥(jM¥ú“¡/çO!ÓR2Ãdl½ä’¥Ö׫è–.¾©4á¡DÂ¥­T_5´ݲ-µ Ñš*¡vœàðùPýʲ½Á¤µŸ{üRƒ¨Uôï¾Ø÷$×¾\ráü®‘�Œê²oºÜejTàúY•üIÛ¹ñ ºr�[ˆäïß~ÎJKÆ»ïô'lú3;!?ÔëÔÄðØÝ…ùµ#)ÉP†·ÔCmŸG §úrs$Y¶¶-[*›ÒxJEù[7 M4ˆ®"WÂ"šŒÿU_�=¹bœ5øŒûä£îj:�[×vµˆ&\M97Lƒ>†‹s¼ûñ8—ÑÍŸÎ5½0܆ofšÒÑ5E¿üáÿGÀŠ endstream endobj 67 0 obj <>/Filter/FlateDecode/Length 4539>> stream xÚíÕ1 ðñ'ݱèQÙò$´Eð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüF=’Ìš¬ endstream endobj 68 0 obj <>/Filter/FlateDecode/Length 71189>> stream xÚìÝTgÔðqš€€•¨Q±w±·Ø�ÆÞ5&¶Xb‹-ÖØ5F�Æh4¶ÄÞ± ö{+6D±�ŠØP,HýîǼïœywaA`õÿ;Ïììì”û”eï>ûŒytt´ÉÍ‚ô@  Ð]�€è‚4@$ º  Ð h€.H@tA  Ð]�€è‚4@$ º  Ð h€.H@tA  Ð]�€è‚4@$ º  Ð h€.H@tA  Ð]�€èŠðQ 0`ÀÚµk§N�ÚªU+b‚�ÚØ±cçÍ›—&Mš#FôíÛ—€è'22òèÑ£›6m²³³›½sçÎáÇeM¿~ýŠ+6lذöíÛ'$árâÄ u9,,ìüùó$ ññÒÖgqêÔ)ÐÉ«M›6ëׯOàÆgÏžU³ÏJqÄû’wïÞ5hÐàøñã�7Þ²e‹²ò»ï¾«Y³æÛ·oe9((h„ k×®U_âåå%ÏJO¸aÆ–-[Êš�þüóÏ3fÌP6�ýìÙ³§~ýúßçÖ Ü¼ySÞ3gÎLXø¨‘€ ™ÉGå~ýú)Ë<(^¼¸2ÆP‘&Mš•+W*9âÐÐÐ��ÿ .lÛ¶M”m._¾Ü¡C‡3fxxxäÎ�ÛôáÊ”)³}ûvuç¥J•¢ðñ’ú¬}X®\9b’¼V¯^-]�¯¯oÛ¶m¯^½jzã’%KZZZFFF&¼8† rüøqY4h�º²B… ³gÏîÖ­›òÐÖÖV}JúÀfÍšIg(}�’}VüþûïgÏž=tè�ñKðÉwÊ×±BÞ+É>ð °7nQ@'éÒ¥»yóæ¹sçÔ5åÊ•ûóÏ?¿Œ‘+W®üùóË‡í† 0ÀÍÍíäÉ“ÁÁÁÊ–���«V­jÖ¬™é�ß*T¸}ûvŽ9æÎ�ûÕW_v¤Z/_¾ Ê�!C\”,YòÕ«Wׯ_wttüõ×_Û´iCÐ’—………¥¥å_|!qV':(Uª”t5ÆKç“'Ož³gÏš››wèÐaÒ¤IVV¦Æ¯øùùuîÜ9**J–gΜ©Í—.]:}úô¾¾¾ÒeÍš5K–•õS¦LÙºu«,Ô¨Q£]»vÚólܸ±lÚ·oß~ø�²ÓºråŠâ'yiÕªU»xñâ“'O¤Î¬\¹2[¶lŸs4ø40}Lu×8>ssó¦M›V­ZµvíÚòÙ[YùøñãvíÚ�:uÊDÒÇÎÎnÙ²eÄ…îÝ»7lذcÇŽqm`aañG b¥·&ì:ÄHà>çÍ›¡,Í0(†vMddäܹsãÚ>sæÌ””1 Ú™3g/^üI^]Þ¼y<˜ðí·oß>cÆŒ}ûöQ1Hµ¸•úRú%DæÌ™ÝÝÝ­­­Õ5çÎ�SgØ>jsæÌ‘ê­ �ÅgnnžìûÔæ‹²ÿãÇ�éw>Ÿ$yS4híHqïÞ½Ž;ª³Ä€Ô‰4ú²´´|¯í ( �U¸»»F|ìΜ93xð`âð {ùòå­[·Þë%çÏŸ'nïåÅ‹­[·~÷î¡ááámÛ¶ÕÞe¤N$ HuêÔ©£}èççGLðQ»ÿ~³fÍÈš}ò¥œ/ùœEDD´jÕê}³üŸ°=zœ”SÊ‘#G±bÅJ–,™À×>yòÄÇǧjÕªÊÃðððíÛ·ËšlÙ²µlÙ2]ºt±¾êæÍ›Rd}úòåËR“¥-HU©U«–´ŽRuÃÂÂ>," \ W¸œ�Å!JĹ%úº^½zuäÈ‘€€©ÉY²dÉ�;·TŸîòj|!;wîlÔ¨‘ºFú1)hssóÚµkKˆë…ÃcÇŽIý—’•:–7o^iA ¬crªÒÄ~üñGuMTT”ô Ò„¥ý:;;׫WO.$Ö×wéÒEºîTþ敼ï/qU9 ×À�çÏŸÿ¾§'½·ßÝ»w_¿~�!C†âÅ‹õÕWï;MHФ:7oÞÔ>tss‹÷%ׯ__»víºuëæÎ�+Ÿð�7 Û·oßÊ•+7oÞüæÍ›( ‚'N <øøñãÚ�[·nýï¿ÿš¾}â‹/¦M›¶hÑ¢ÀÀ@y(æå#}DD„YÌ}þùçaÃ†ÙØØÄõòçÏŸ¯Y³F^~îÜ99%=uêÔ1cƨ9)9±êÕ«7nÜ8®�ÈþCCC VfË–íÑ£GÚ5õêÕÛµkW¢‹C.ð·ß~“ØYYYÙÙÙ½|ùRy*]ºtM›6?~¼«««‰=Ü»woÅŠË–-»qãÆØ±c•ô¡C‡F�}äÈí–R(¿þúë?üïYÉÿøã�‹/J´ßÅPÖ-ZtäÈ‘ß~ûm\/ŒŠŠúï¿ÿ–,YâááÑ®];%}æÌ™¶mÛª?íŸ8qâùóçµ 22R^2k֬˗/ËC{{{Y£ßÒÒòûï¿—ŒÜRÙÚ·oÿöí[íÊ.1Ô‡²ÛÎ�;¼Ðßß]Œ¾}ûvêÔÉt(üüüä„===ƒƒƒ­c¼zõJy*S¦Lr�R©²fÍj" G�]µj•»»»ìAÎGI@_»vMªñÎ�;µ׬YS‘ñ•j÷6cÆŒßÿýñãÇJ»�Ë—*mkk+R¼xñÙ³gûøø¤LO"õM*Þ³gÏÌÍÍåd¤êÊÖ¯__Î0áû‘WIQJqäÈ‘cáÂ…Ú§–.]ª-M-ã› FGGËÿÒAIå7Þ~Y í‰X¬C\¥hF�µcǹ–´iӪè3fÌØ±cÇI“&988˜¨-r)倀å|¤?ìÖ­›tGÊRŸ7nÜ(íÚà…'Ož”Š$�•U µŽIÕêÙ³§4º¸¾u“J%•S¬¼VNXM@/_¾\vx÷î]uK©º²Yi°__߯¿þZ»¥q¸âŠ•1y§ˆµP¢¡*Uª”t/ƛݾ}Ûø Œd‘“‘V)UnÆ Ê[ŒJúa‰†Á¹I�ÒÖ7yã8xð vƒ 8PJVÉhK×-ÕFŽ’'Ož>}úx{{˸qãøó��€ ÕÙ´i“öa›6mâÚòÖ­[îîîk×®�5S �ðÛ·o7þµûĉå#wTT”Áúõëסüýû÷[XÄ>[×ñãÇ[µjõðáôiÓΜ9³sçÎJ¢mݺuýû÷ùò娱c�9²eËÙ@ûÂÐÐÐ�;w®ZµjÛ¶m½‡:mÚ4íÙó�!CþøãYð÷÷×>åââÒ¶m[uÜ´Ö„ Nœ8±lÙ2%ŸR¦L™Ÿ~ú)Ñeñ÷ß6ìõë×5jÔ�PõÕW“§OŸ®Y³füøñOž{ölã4÷Þ½{¥ì¤–Jm7xjÑ¢E}úô1ž´Z.SbuæÌ{{{ã󉌌”¢‘æ&þçŸÊ3fÌ(�’Ë‘_°`�l#¡K™nD©Ô„»wï*Thþüù�5’ÆøæÍ¹^ T¹råªW¯nzRí·nÝ*�Zª“ ã/¤øæÍ›§,ûúúÊU«O©ë 4¨]»vʲÔuߊ+ì_;]5yòdé^òçÏïééY§Ni&R|r,éÍ‚ƒƒÿúë/éëä‹)bÐj¤%Jk=v옶RI�ôÍ7ß>|X[ˆÒçhÐR‚ ˜3gŽ\¬tkržf1ß*I%+=z$]�thrPí7!!!ÒÑIe�:#õS{2ò”\©>>Òô~ýõWãS’"S²ŠK–,iÑ¢…¨*UªHs�5[¶lI™näĉR»äÂ%ÚÒÔ&`gg×®];©·Ò„÷ìÙ×Ë¥»øù矷mÛ¦4s ÆP–¥2hÐJ–И´ uùd uWq½D5|øð©S§–(QBªJ† ”•_|ñ…”¬­­­’¥õóó“Ú~úôiY¯l°0†t&Òa4Æ~øAbU©R%m§¤�v?22Rª½tË1 ˆ:åN®\¹fÏž-}”2ÄÙ³gåºä¬$Âj e‡²RjŽöû³àà`‰ÿ™3gd‡ß|ó�£££´Y9=õ‡ÒX¤â*TH}I¡‰W¬òåË7"FË–- ¾ìÔ’÷ea„ &’³Éøþ"mJºYé£LŸ¿´nåÂÕô—_~W4¤K‘s�f.ÛHUGÇKýéÚµkµjÕÊ—//…ÂßèÊ’Ÿ « .hÓ[...ÆÙ7õCûüùó{õꩬ©S§Îúõëc�eøíÛ·Mš4éß¿¿¹¹ùéÓ§Õõ²sƒßGרQ£téÒ 4˜>}ººÒÏÏoÇŽsæÌY¼x±|/UªTõêÕ;uê´iÓ&5Qxÿþ}ít¥ªöíÛ߸qCYž5kVÆŒµÏºººÊž•dñùóçejò+kÖ¬ru?üðC¹råV®\©¾¤D‰£G�vwwŸ1cF×®]½¼¼”DÙ²eåÍb&|°³³Ss ¢Q£F¦GüM˜0áÉ“'S§NU†+&Âï¿ÿ>iÒ$Y(R¤ˆÚ`4±ppphÞ¼¹\Èëׯ•‹µ°°P¿-°±±éÝ»w¿~ýš6múÏ?ÿ¨i¯›7o;vlÊ”)k×®mݺuíÚµeÙ,Mš4ÚߌK™ÖªUË`´¬ìD ]ž*_¾üŠ+ ¦8�3Ì–-Ûºu딇gΜ)V¬˜:ôÛo¿•È÷ìÙsÍš5j~M6X¸paåÊ•÷îÝûÓO?ÉíÛ·OŽbii)¡“½™ÅÌ‹"•PÙ~àÀ�“ ËK$ÎÊW&>tss+\¸°q0gΜ©�lÖ¬™ñLÊC¹^ÙöìÙµ3cÝX!'¼|ùrY¨[·®Tcã ²dÉR¿~ý%K–(3ÃHxóäɣݛ\¸œpË–-¥«ÉǧOŸÊnÇŽ+W- P¶¯R¥J·nÝä¬ÔôÙõë× d<~S 4$$Dªë²eË JG6–ó”ž6mÚèÚçHó‘FýòåK)A¹j5Q«’s�È,X°@‰ŒYÌ| juƒÐÐÐ|ùòýüóÏR(Û¶mSðlf|\í¤ ù”±yófõצwn3ÝÇ�!C$’»wï6H.�B*³Ò¥²]»vMz*å))e鈺wï.¥|ôèQõ%NNN6l�5Æ “.E:.ev�:|ýõ×jO"ýdºté¤iôu¢B… R·•oM¤þËq¥§Uw.��œÕ—_~©|M¢�æ Q5j”2«¸”E½zõ$tJÏ/{“ÞCÖ$1\ñ’mܸ1Þò’ú,=˜úPj¯6Éøþ"—ߣGikW¯^½wï^¼'&u[�ËÅÄ«œòÛšï¾ûNýZH•9sfGGG)Ž1ø‹�XRÒÛ·ooj\¿~ýÌ™3#GŽÌŸ?ïÞ½•�å#ýªU«öìÙ×è]Ù@>Õ.\xêÔ© ¹‡RÖ¬Yµ73¼|ù²|,72&h‡‘ž;wîéÓ§Æç¯Í“«B… ÊBxx¸v²W5aW§NíÔrí .TÆEfΜyïÞ½«W¯ž9s¦vâæ.]º¨ãÍb¦O5q±ru>>>:5õ¾N�:õË/¿(Ë'NŒkv×lÙ²i§ ™0a‚v ¢dÉ’Úœì³gÏöïßÿóÏ?k'ȶ²²=zôo¿ý¦®‰ŽŽ–m v5wîÜȰaÃbýõzƒ ´3«j7Êööºuëª+7nÜ(_´h‘r2ƒ>{ö¬Ô¨cÇŽ©73ܱcG‹Û,fØ{â^¤H‘2eÊ,XP®½}Y\äÌÕ¦L™bb·Ú©Qzõê¥~w¢’ÂÍ—/ŸúÐËËkýúõcÇŽÕ~å ñÑtPP�2Ò\ËÏÏO]nggkédÉ’%Öot’—Ôœ~øAÑ9f̘¸î|˜;wnuˆ«1ikU«V-P @óæÍµ–? e_Yhذa‰%Œ7°¶¶Ö¦·oß.]«AÏcp-Ò`wïÞ­ .–îÔÛÛ{Μ9K—.•& l ¥¬´ÊÎ�;ÇZ-�œœj×®­>”~ìáÇƕPûðåË—§OŸþꫯ´+Ë–-«�OÃÄàôddbbt­„Ü<3YÞ_jÖ¬)±rss5jT2^¦ú×�U»víª|Ùôä¨Ó§OçÏŸßÄß|ó�|J/W®\whggçäädp›¦X988¨£Ï&Ož\¥JãmÔá{jÁ`¢ØÐÐPíoØ�³-J¢A]ÖΛ¡²°°�mÔ¹ jÔ¨¡�çÚÒÒÒøY¶¶¶ýúõSžžžþþþÎÎα^éÚµkåÿ-Z$zò�1cÆ(£3dÈШQ#[vèÐaúôéÞÞÞf1# G�m|ƒ5GGGíöÚY�µ† æáᡎg÷òò:þ¼z ÊððpeÚ¹¨¸NÉÚÚZv¾{÷nåá•+W®^½j�ÿÊ’%‹º¬L  «[*†v{í-WÜï+wîܱH%5Pâ¬,*T¨téÒ&6:tèìÙ³•[ʵH ît§4 uyÀ€ÆÃ$Íb&;Θ1£úS}ieÊ”Ñn N$-Çòõõ-P €ñN:wî¬'×ÉêÕ«•o)¤g0}ÿF9ÿ„ܶ.Å&­6MZ™|ys鬔 1îîîõh+¿YÌlÔÚï¤|ûôé£Ý`„ ÊèoÓU¿*“�¥ ÷îÝ;®Ú%Ö­[k.[ú^u ±���´Mã_]$¯¸f™7`|3IýÞ_ô¨rjÃÔ~ÿ?Ÿ‡­¬¾ÿþ{þ8@ß?<©ÊÎ�;+W®Ü¨Q#ƒyiMÐŽ¥M`ÁÖÖ6Öm2f̨Í'ªÓ1«•)žÍb†IV«VÍô�´·¶3øÌ¯.7nÜ8!çß»wo5•1{ö츶TÐ;vL\x{{«#Ë”)ë(ZÚ4ßáÇ�'æÖ&zL ©yU…ö6e6lP¾f¨T©’‰S2ÈÆj§g1޼››[¬7rÔR¿�«ˆ53›�â~/ñÖçmÛ¶©32Kc‰woê-ïÌbò³ÆÙí„4 ÙF¹ßc\MC;ÓÅàÁƒc½}bÑ¢E îӘ씻>šÅüÎ@��8V‰Ñ$v/ºzóæÍ’%K”eó$¼Wå�·çñ÷÷Wæì–*¡æÿ¾5HàÆUÁ´Cú7ã{ú¥rÉòþ¢G•Sæ‰'´SŽ$¼&€¤c4)ªzõêÚ),Ìbr §N�òðð��Ç1¶Ç¨T©Ò²eËL�˜NvÚ�lÊ„ª6oÞô›±••KŒ¶mÛúúúöìÙSù½Ÿ­²eËzzz¦äÍ‘´Ù”›k°··6lX¬¯ ^½zõš5kÔ5±ŽM´�Ι3GùQ¼kñâÅ?ýô“Á6ÊÑ¿ûî»þÀܘ³ÿ;¬5.9sæÌš5ë£G�”‡4Èü^•A¹ó¤òðúõëêSÊ�þÄ’ Ü¡:eDRêC\cÉ¥ ¶mÛ&%¢Sq'W¹¹¹IeP+³PâЦ›†bèСÊ<ÅbÕªU‡ž5kVóæÍS¬ñîÝ»W]Ná/®t¥VþW¯^Å5ñN²W~õ >>>)pPƒ�Ò±ö½Ÿ€xß_’]ýúõ¥8þ¼YÌPzyk�÷ˆÙ³gÜ­èû™—�z(P`Ïž=]ºtY¹r¥²æåË—Mš49~üx±bÅRó™{yyÍ�;wݺu Ìš5«¯¯¯Gqvvnß¾½:‡ï¬Y³úôé£M4GEE¹»»›%aþ ³˜»É©Ë œÿ´T©RêÌËwîÜIÊ5JA« hu(ô“'OÔ)³¿ýöÛ„ß\1W®\zĽ{÷,X°hÑ"+++³èäÖ­[ïU@öööùóçW³ùI, úõë·sçNuþÿ-Z4lØpöìÙyòäI�Èhg¹MHjþc¡ÞòÑÉÉiñâÅ |Uo¼•&9yòä¾*ÑóÎC'R V¬XQ¹rey3UÖlÛ¶mß¾}£F�|øÒ¥K©í<·lÙR¢D‰V­ZÙÙÙÉé­[·®lÙ²z´hÑ¢ 6TªSB+”ù7’2üÙìÿÎLªš3-}úôêrhhhRŽ®�RVĪ…6K¦ý%‚±D¾|ùòçÏŸ÷ôô>>µjÕúá‡Ø�€D# @jd<é³:ÃCjÒ²e˦M›^½zõ·ß~Û·o_RF¿/í Ô‡VﺾqãF++«„ÏP+GGGuY¹§\¼´Yã$Þ:L{c´L™2ýÏ_lšiFôÀ—èèè‰'º¹¹íر£E‹/^Ô~�´¥óA (^ÖÖÖÿý÷®]»´ƒÙŵk×¾ú꫹sçêÚ0Õå¤Oÿ�Š>±üoýùòeXXX 4å[ôP¨P¡Ó§O�5ÊÆÆF»~É’%¥K—öññ!Dèø—! Êš5«ÁuFŽ.((¨J•*ʬ &L1bD Ÿ@ÕªU+Uª¤>œ1c†²°{÷îgÏžÕ¯_ßÉÉ))û×¾<�Ïß¾}ëËA�vÃLs¹Œ3ª+µST§€¨¨¨öíÛ�3&22²^½zîîîv–[»°€Hbuùòå©S§jçbïӧϼyót:¨ƒƒƒºü)%ÔÔú}ûöí>èǵ­/[[Û‰'^½zµeË–ÚõÒ©V¯^ýîÝ»„��€ 5J“&�Áí¼·Pddd»v픬_þüùS>û¬Ð‚vwwðà�,¬]»Ö,Éóoˆ’%KªË��� ÿ¨yZ¦L™¤];pµJ•*ÊÂ_|¡®¼páBJþ`|üøñJ`-,,æÍ›—òsn˜. Ë—/+‚§X%œ��ÍСCoÞ¼Ù£Gí ñ†þâÅ =ލÜ}þüùO¦?ÔÖÿ› _=hTT”öîŽøØ¹ººnذAÊ´D‰êÊ   1cÆtB€Ô(00Ð`�ö6w�»»û�”å–-[~¨td“&M *¤,‡‡‡Ïž=ûíÛ·žžž3f”§’¸sƒ{RíÝ»7ޗܺu+®—¿/íÀUuWŽŽŽyòäQ–CCC×­[—À½É–³fÍJôÉLš4IY._¾¼z–6¯^½:yòdJP\Μ9S§NãõY²dY°`ÁÖ­[Õþ¿|ùRÚ‘ç � çàÁƒŸÌ̶Úï –-[–ÀW={ö¬iÓ¦‘‘‘)yЛ7o&ý;0$£¾}û®\¹Òx}•*U¼¼¼ºt颮Y½zµö§ ‘€ 5:vì˜ÁšråÊ¥†[´h‘ºìââë6 ‘šDæææC‡U.\¸píÚµ¯^½jݺµÁüž‰Ð¸qcíNÖ¯_ïK®\¹¢,ØÛÛ'q~duJë%JT¬XQ]_¹reuyÊ”) ¹“Þ½{÷zõêU´hÑDŸÌÒ¥KÕü]rw¢‚ªV­ZiÆ[@oÞ¼QçmÈ•+—vþ–äuüøñ¸ÊEjÅ´iÓÔ‡7oÞÔãÔ!óâÝ»w«V­ú4úCmå— ïÙ³'!¯êÑ£Gºtéý%™ö îîîj7!<<¼C‡RÇR &IoG lÈrQ©¿†˜ŽÆ¾}ûb]ommýï¿ÿªï­wîÜáÏô@}%"+øµy^‘-[¶Úµk'äz'/_¾¬.Ç57Å£G�Ôeýfùî»ïräÈ¡,?{ölÀ€fÉ1ÿ†mí~vîÜdbû‹/ª·ÂëÞ½»zçÀD Q˜÷ïßßàzÕå[·nMœ8Ñô®^¿~ݼysWW×X‡å¦pq[[[«ËñÎ>o}vss«[·®úpݺuïÞ½3±Ã½{÷ªù©AƒYYYéT'ß¾}»uëÖ¸ž•º¡Z;%H2jÕª•ö~•¿þú«TýŒºl"—ðîÅ`'QQQñž°ö%&¶¯Q£†ö' }ûö5q]Š)S¦xxx 2$ÑÁlÑ¢…­­­Z±{õêoÎ÷§Ÿ~ºtéRŸ>}tª`ïÕŽâeð]]\÷óLùœ¬A5‹«Ö%<žžžqÝ»RÚK�=´=0´ ÐèëÕ«Wïû’ÁƒÜhkúôé&Æñio�e"/“Às¦‡Ö>þ\]öòò2ÞàÅ‹ÚܳgÏâ=™¸R¦Y[[+IgÅË—/]]]«V­š,¥6zôhõd� &˜ØxùòåÊBÖ¬Y‡nzϦ³r‹/Vr©•*Uêܹ³ö©zõêåÍ›W}8yòdÓH­kÚ´éùóçÿú믤D^[ÜÞÞÞ±æyµ?o�«¸µ7â3¸9žqµLH}–ËWçIðàÁìÙ³R@… Ö&›’·i(LÜ`ÐÖÖ6K–,Êr� ž�2eJžüí·ßŒ§MWœ9sÆÃÃCÒ¦Mëîî.ÿ'®i˜ýß™Ù�›†âÀ��B[¾JÓ°¶¶nÑ¢…ö))î#FÈÅÊѽ½½¿ýö[ãoè�?þ°³³S®_¿¾mÛ¶ãCå(Ò«hïæwìØ±Ù³g_½z5 À  )µ:i^¿~=Þ³Õ¾ÄôöC† É—/ŸúP‚\¡B…Ó§Ol&]P÷îÝ{÷î] @�ßÿÝDåOHÏ#íQûƒ)¦ÚµkŸçíÛ·›5k&²Zµjƒ6Q»LT0ƒ kÓ¶£7nh/æÌ™={ö|¯ªâââ’3gNõá˜1c”»Ëjã#×+=LñâÅÕ•qÝ�1YÞ_Œ«œ‰Z§�†ìjÓ¦Mêà 64jÔH»±ô]qNª½²ðõ×_koã ’‘å¸qãˆ:‘Ïá}ûöÕfäãwÞ¼yåó¼¹¹¹öc¹¯¯ïÊ•+;tè°ÿ~u½••Õ¨Q£þøã‡pww×~ð 騱£AîÒ,&Ñ3}útíG÷zõêïíĉÿþû¯úÐÕÕµAƒÚ ä<Ïœ9£>\½zõ�;wå… ,èÞ½û—_~)]lÞ¼YÙàQŒ7nôéÓ§dÉ’Ê<Âr¥Úy{ïÞ½Û©S'mÖ,�llldç§N�R.Z´()Ó_(\¸°£££’LŒŠŠÚ»woëÖ­Ó¥K§ÝæÕ«WMš4¹}û¶””½eË–±îjéÒ¥jJÅßßÿÞ½{õë×7˜âÍ›7òòK—.ÙÚÚnݺµ|ùòÆû‘šóöí[íüà^^^3gÎ<~üøéÓ§�=ºfÍšaÆIA?~ü¸M›6sçÎÕV3³˜$×àÁƒÕüïëׯ *T¬X±¸‚¶aÃõáÑOž<¹|ù²«k×®×®]Û¾}û’%K” ¢££¥zȵLœ81  F�ÊúçÏŸ«ãâå {öì‘-åBzôèñìÙ3¹5²ÿ9sæ¨G ’£hk¯ªX±¢\ˆT<³˜a•ãÀ¥z|óÍ7rt{{{i&Æéxå|$hêøM''§¶mÛo&—3vìXõ¡Ô´öíÛk7xðàÁ?ÿü# ÿý÷_Ó¦M�3Y?ÿü³ò£iÔ²�ö©3fx{{k×>|¸wïÞ±¦ËM“ãæÌ™ÓÓÓS]sõêÕyóæI-•J(ËÒôzöì)û9r¤ü¯ÜÎ�;¥Â¬X±¢Q£Fê÷(ÁÁÁTïÌ&Å!µô‹/¾0>nxx¸l)AP×HÝkܸ±‰S=wîœv&©WuëÖ�kå4iÒH‰¯]»V¶,•Y:+)Ö³gÏJ' Ljþ€¤J/´k×.uŠ…´b9œ:ǺYÌÏ5¤¬�{K•ƒƒƒôÒÔ.Hw'õSv.E)õðð˜4iÒСC}||Š)"mÁ ‹0‹™ÃgË–-êC¹Æ‚ kÕªUÚοV­ZÚ[J*2dÈ ì¿mÛ6)8iƒR”Ë—/_¶lÙûæOåJ�Y‘ôTRÏ¥ªH �:uª¨D[º>¹鸔Í8 ¥|ëÖ- ²:9¹Þ_rèóçÏk¯:Öy„¤–JÃQ[®ôÕR åĦM›&-Ê�;·¬ß±c‡–tr’Íš53(n©u]ºtyùò¥¼IÓˆµn€¤# @ò“í�=:|øpŸ>}.\¸`𬇇‡|l^¼xñœ9sdá×_9r¤,Ëçg5UmiiÙ°aà 6´iÓ&ÖC¬Y³fëÖ­ò*ù¬®�ÕáÞ½{îîî÷ïß/Q¢„’|úôi¯^½|}}ÕÍ.]ºT¾|yùü¯ÝçÝ»w»víªM!ùøø”)SF6Só˜²ÏåË—« ©èèh¹ÀíÛ·ïܹSš7o.ç,ûåÄÔ_@Ÿ9sF.-[¶lr³fÍ>|¸6Ãh“4_²d‰œÞõë×ß½{—'Ož„‡:gΜʸàÊ•+�=L¢Š+,Xpß¾}¡¡¡Ïž=[¹r¥££c¾|ùlllÂÃÃwìØÑ®]»óçÏgÏž]Š£uëÖqíG›€Î›7ï�Ö®]›>}z[[[ÙÕž={Ú·oâĉ/¿ürýúõ&æû®[·®„H›ƒŽŒŒ¼yóæéÓ§�9"'óäÉ ‹!C†HX´©– L›6­oß¾#¦¥6Êke—/_6Îz*ThïÞ½R�Ô5JrJêžœ­\‹”»››Û–-[Ôñ›²�Ô‡   )S¦H¡++ (°hÑ"õ§ô>ܶmÛ®]»ìììdo™3g–—lÞ¼yáÂ…£F�ÒNŒðüùs©oR«¥>ËN´™h©“õêÕË�!áC‡¤²ÉIJÝ“²�³²²²’**‘”æ#‘—"“3¬^½ºq<唨I*õPT¤Hmô$ªÝºu»qㆺæÖ­[²[ífjúÕ«WRUäT¥á888˜Å V•£H“—eibüñ‡ÁÒvÔ\°BjEÕªU�gêHˆR¥JIÕ’ú©ææ¤Îœ={V ËÓÓSêÉ›7oþý÷_ÙL�ÅE"Ö AƒÉ“'KH å|ÖÄèß¿¿vd®´w)i§r±Y²d‘æ ÕfÕªUÒç 0ÀàWçÎ�“z"ñ¼råŠ�’ 4‹”-ëçÏŸ?lØ0ƒÜÉ®äU×®]“J¢goo¯}6GŽ5jÔ�KPû³˜œ¸T{¹¨S§NIÝ“ÎPª±T-í\ RW¥§•ÞX›áUÊEÎ\ŠRŽ(×¢N�¢%=@ñâÅ儵§*µQâ)•šãïï/a©_¿¾Tiã=\½zUŽ«�ÊF¢T§NƒLñÑ£G%€Úë’¾·fÍš;Ì”)“ÒZ•‡RÓ¤yʹÉ9lÚ´©B… ï[Uä%Ò¿© \ŠIºk©'ÒGÉQòçÏ/û—z.UWM@§I“Fb%a)[¶¬2Gv²¼¿H+]–ô&LP~²  ÎÁƒ%æí(xib²7õ Qé7d3©s©ÆÍš5SÖ+ h³˜[ÅÊåÈ[F®\¹äVéx¥‹�j#5Mz�X¿ ÉÂ<îSÀgåÂ… nnnïû*ùœ>}úlÙ²•*Uª\¹r-Z´0=™C±bÅäã´é}ÊÇu[[Û5j;v,ÖéA3gÎ<`À€Q£F™Å$­.]ºë ÅY²dùûï¿ÕT¸··wûöí Ž.—½k×®*TÈxý�;wF�½yófevZ‰ªЋ/ärdû=zÈ©ªFkuèÐaÆ ±NJ+�Qêª2¹JãÆ�•Á•Æ›É�Æ�§ÌE~æÌi¹(ãa•!ç9sæœ8q¢ÁÔÞ 9óÞ½{ïܹS{§Ç5kÖ´k×.ÑõÖ××wèСUƒ¶_¥J•Y³f•)SæàÁƒ5kÖ,R¤ˆœ’„Bý¶À¸ýÆjÞ¼y={öœ3gŽTæxO¦OŸ>ê×NR9Ïž=ïK¼¼¼Œ«±YLºSºš•+WªSú¨Š-Ú¯_¿nݺŒr•ó”šfúpK–,‰µhþþþÒâ6mÚd\[*V¬( Áøû§»wïÖ®]Û`ZU®\¹ä”êׯ/½®Tþ¸æàvqqÙ·oŸ6“X·n]m®¿D‰‹-Š5V !uOJpùòåÚÎßÎÎNŠL:+å;€ªU«ÊûštïÒóתUK½7£Ò¹%Ëû‹ìÖÉÉÉô©JÏyòäIíés¤çÑN&#“f«-Í_ö¯}•Téfå•ïºêÔ©ó×_.\˜¿^Ð hðÞ¢¢¢Ž9rîÜ9ùŸ3gN777ã_‹Ÿ|øùóçrá ¬\¹²AŽïÖ­[»wï -]º´\‹Á_ųg϶mÛ�)S&©±ND�hrh‰ÆÝ»wƒ‚‚²eË&ÕR;^2eÈŸÖR¦wîÜñõõ}ðà�òE…££c‰%$hó®ÄUÓ¾ùæ›ÿþûOšXÒoª)EvðàA‰ùëׯsäÈQ®\95‰ïïï/g˜ˆa³©�ô|øÊ•+®®®uêÔ!ø„„„|ÿý÷R¥ù墀O hðQŠŽŽ6l˜, 80éS ÜÓ§OëÕ«wÿþý-[¶¤Îùv€D°"àc4mÚ´“'O:99uíÚ•hàcwêÔ©o¿ýÖÒÒòÈ‘#Æ·ô>^$ @ªÕ»wïU«V¥K—®zõê=zô(_¾üâÅ‹GŒ!ÏN˜0!mÚ´©ü"##ÕåððpÊÆöîÝÛ¦M›Ñ£G3öŸÐ UÛ°a dáÕ«Wkc¨O•+W®G�©ÿ>|¨.ß¿Ÿ2…±Q£F|’˜¤j�=Šu}¦L™Ö­[ga‘Úÿ˜9~ü¸ŸŸŸúpÇŽÏŸ?§X|&,Ç�G@ªåää´dÉ’°°0íJggç½{÷,X0Õžö£G�ä´ÿúë¯#FDDD¨ëß¼y³lÙ2__ß«W¯Þ¸qÃÍÍ�"ð c �ª¹ººîÛ·oäÈ‘gΜ ËŸ?«V­ú÷ïïàà�šOûÒ¥Kýúõ‹õ©ÀÀÀþùG²fÍÚ¥KŠÀ'Ì<::š(’s@tA  Ð]�€è‚4@$ º  Ð h€.H@tA  Ð]�€è‚4@$ º  Ð h€.H@tA  Ð]�€è‚4@$ º  Ð h€.H@tA  Ð]�€è‚4@$ º  Ð h€.H@tA  Ð]�€è‚4@$ º  Ð h€.H@tA  Ð]�€è‚4@$ º  Ð h€.H@tA  Ð]Xè*88øÐ¡Cʲ³³³�� 1À§íÝ»wþþþÊrõêÕ3fÌøÙ†‚4ôuèСfÍš|ž6oÞÜ´iÓÏöò™‚  Ð]0ôåìì¬.oÞ¼9_¾|Ä�ˆˆˆ+W®(ËE‹µ²¢ç¦Ü¼yS�–V›û ‘F�¾´wÌ—/_Ñ¢E‰ >:¡¡¡Êr‹-lmm‰ H m~ì3Ä]�€è‚4@$ º  Ð h€.H@tA  Ð]�€èŠ€i666 P— @‘€€x˜››g̘‘8¼/¦àè‚Пµèè訨(ùŸPà³ennnaa!ÿŠdGàsþ"†,�}ÌÍÍÓ¤I“!†,�äBâñîÝ»yóæ)˽zõâ>„>��9�=zýú5¡TÑÑÑaaa�cØÛÛgÍš• @² �”³ûꃫïˆ>:aïB�]»£,;�»cmcKLàsÖºtn‚ø¨…‡‡ß»w/""‚Pqyýúµ4†B'7!ø\DFFúûû“}â%ÍD‹4B‘DŒ€ø\<|øðÝ»wêC ‹ô1Ò¤I#ËÄŸ­¨¨¨ððð—1dYY)�EšLΜ9‰OR�€ø,DFF†„„¨­­­sçÎmeEvøŸaooïäät÷îݰ°0e¥4i8–––Ä'Ñøj à³ ½ë ¹¹¹³³3ÙgÀ€4 iÒ@bm8HПíðg;;;kkkb“¦! D}øêÕ+b’|ÍÄ"è�¬ëïdŠŽu½‹‹ A¤rÚ�œéÒ¥# @\ÔöB:‰H@±èÛø«Ø×DZ}tt4A¤fòV©>L›6-1â¢- Gš�vR¼¦àøôEEEirS5ÀƒbÐ|ð^H@|ú ~¬ÃpNÀƒÂoÝ’‚)8 9\òªË �H@@|eë*õš€÷ÅP>€. ÄbÎÖ#±®oX,'Áˆ4‹/¾tŽu½‹Kn‚øDEE?}ýŽ8ˆÌö6ܳH$Ðß_]‘‘ïÝV–³çÊcaiIL|òž¾~÷ň�ÄAMné”Ζ8‰Câ~lÏVe¹Yç^Ö$ †›tA  Ð]�€è‚›"åÔ³¾ZÔæqÀG'Ô,ì†åCe¹¥Í[kbŸµ+çRúˆE›u�Ê=|ø0{öìÄÆ ñ.^¼Ø­[7â€X‘€�H!!!­[·~ýú5¡@¬H@HŒèèèÎ�;߸qƒP .$ $ÆàÁƒ7mÚD`7!ð~ÂÂÂ8wî\BÓH@@<¬ÓXunVK]& ýܹËZû;Æë\\\Ÿ€¾}ûþý÷ßÚ5cÇŽ7nœ²|áÂ777ƒ—,Y²¤sçÎÚ5>>>ž1š4i2|øpe�ìv×®]ŽŽŽõêÕ?~|®\¹´¯*[¶ìÙ³g�O©J•*G�UÞ¼y3þü'о}ûÊ•+k_~èÐ!ssse9C† ÁÁÁ.dR .9¾ €�§^ÏnM¸ø >¼~ýúãÇ�?sæŒñ³… ¾p႟ŸŸlàíímðìõë×-Zäéééë뫬ùú믣¢¢&Mš4qâÄððpeåÇ—.]ºsçÎãÇ�»ººª/ß¾}ûüùóeÏêßUªT;v¬v‘;wî“'OþùçŸëÖ­“Èÿýw«V­¬­­W­Z%/ìØ±£———lV®\¹åË—+/±´´¤d¡" |9cäÈ‘£téÒÆÏÚØØ”Œ‘>}úºuë<ñí·ß:88Œ;VY.kŽ92eÊ”ªU«FFF®\¹R™%ãÑ£G}ûöݱc‡úò¬Y³Ê |Ñ¢E‘‘‘²¼uëÖÄz;wî4‹™0„ÂÂû² Àdkkkz“Z¤I“FM7—)SfÛ¶mêCE÷îÝ•…èèè'N¼"éÒ¥S—_¿~m¼A©R¥êÕ«§,¯X±âÉ“'¬Y³ÆÊʪ}ûö‰ÀÐ@jq{÷üXÖ¨Gd@²ˆŠŠŠuý°aÃvïÞ- oß¾�?þ¨Q£Ô§^¿~½uëÖúõëñʼn@H-\rÄö¹ÎÅ…È]Õ¬Y³\¹r^^^²ü÷ß:ÔÚÚZyjË–-oÞ¼aþ $SpŸ»aÆ) ���kÖ¬Q×˲££cãÆ� ‡4ð¹kÞ¼y�”å?ÿüSYxþüùîݻ۵kgccCˆ�8$ €Ï�……Å�!C”å‹/îß¿_6nÜÆüHRÕ":tè�={veyÆŒf1óo,X°B… ‰FH-"""¸2ÙÙØØ 0@YÞ±cÇÁ;v4ñssse!22’²C¬¬RL C±  |tBCC_ÚžR–Ò—±µµ%&€@ ­œ9sŸ{{ûׯ_ËÂ�7ŒŸ½r劺­ßiôìÙsÒ¤I/_¾”£´mÛÖ,fX´‰íÕÏÈOŸ>¥+F@XñâÅ•…-[¶øùùiŸºråÊ Aƒ”‡���¯5=>úÍ›7êr¼ÉëôéÓ÷ìÙSY ªY³¦³³³‰ísäÈ¡,øúúª9h9Ÿµk×R¦P�€€x˜››;ý/õ·E$£~øAY ­V­Ú²eË.\¸°wïÞþýûW¬XqòäɹsçV6˜?þúõë½½½•‡�?V–ƒƒƒ�÷|ëÖ-uùÙ³gñžI¿~ý¬¬þgÖÓóoˆªU«* ‘‘‘mÛ¶=vìØþýûëÔ©cœ%Çg‹)8 666¦p@uëÖm÷îÝ7n”åtîÜYYŸ%K–5kÖ4jÔh„ Êš���Õ«WתU«D‰òP–Ô§:tûöíí6mÚŒ7îîÝ»²¼/†, 6L�K  |`æææîîî .\²dÉ•+Wä¡««k«V­zöìéää$äÍ›÷›o¾iÙ²eùòå-,þÿ¬{öì3fÌ©S§Ô�*T¨B… S§N­T©Òüùóg̘¡�TúÖ­[¹sç®Zµê¦M›lllâ:™F�­_¿^Žeoooú´íììä4~úé§£G�¦M›¶lÙ²ƒ úúë¯)P¨H@ž……Eϱ>ëééi°æë&vhbo¦Ý»wOþïÔ©SB6.P ÀîÝ»)>ÄY± ÕÖ­[]]]kÔ¨A(�tŒ€€xDEE=yòDYÎ’%‹òC'èÁßß?Þm"""LoàââB$�¤Ëlo4¹%qPBñY]¯��ÏéÓ§'OžlnnNé#éH@@<ÂÂÂV®\©,÷îÝÛÖÖ–˜è¤råÊIßItt4‘’ÎÂÂÜ)>GÓ¦M³³³ëÖ­¡@òt&„€8|øðÒ¥KüñÇ,Y² $ F@Ÿ£U«VÍ™3'}úôMš4i×®Ý�7Zµjåèè8jÔ(‚ƒäBøì„„„tîÜY™XÏž=}ûöUÖ¯[·.S¦LÄÉ…)8€ÏNÚ´iÓ¥Kg°rÊ”)mÚ´!8HFŒ€>;VVVÛ¶mûìwÜ¡ì2f@ïQÞzë­ìììU«VEFúõë7aÂ�`îܹ}ûöµ¼$»’z�òòË/G§Ï�'Ÿ|rܸqéé•bÅ€ÑÕžnY£–ËD•³¹ øöôùázXõÂŒ´d=غ§Æí¢:g¼fl¯üã½zõÚ¸qc¥:«à|¾ÿþûF�¹@{*ôå²Ë.[³fMnnnPO�:5<è—ZUB(úûßÿ>uêÔwß}wÅŠEEEuêÔéСÃùçŸÖYg%&&nù” 6Œ3fúôé .ÌËË‹‚†z÷Ýw‡ë¿üå/×]w]ôÖ&MšDêgžy&;;;òpÁ‚ýë_—.]:qâ¿o‰ôÎ;ï ><øZ³fÍ‘#GöíÛ·Ì9|üñÇS¦L™={ö’%K¾ÿþûêÕ«7nÜø¤“Nêׯ_Û¶m·õ�¾õÖ[O<ñÄ´iÓ®ºêª?üáÁàsÏ=¼îûï¿¿råÊÚµkwêÔiРA'œpBô{öìùôÓOoyÀ† 'y´.555z‡#F„_…]L½G©[·î½÷Þ®#4•ߢE‹z÷îýþûï·iÓæ–[niÑ¢Åwß}wÏ=÷ø:mÚ´à¹EEEA�——wÉ%—ôìÙ3ò×ö«W¯8pàôéÓ�8∫®ºªuëÖ7nœ={vpÚwÞyçèÑ£ƒïèÁ¬Q£FäLÞyç�‰'OY¶lYdpéÒ¥ýû÷Ÿ5kVddùòåO•úhÒ¤IÁ£ÃîeË–5mÚ´I“&‘zÑ¢EÁS‚s{â‰'Z¶l¹~ýúgŸ}ö�§Þ÷ßZZÚ�wÞÞy¿ýö»üòËóòò"Izpgžyæ–-mß¾}(ºï¾ûN9å”#Fx�í.IZ»×]wÝõ¯ý+(7nNŸÃ¯ºêªp=f̘͛7G6ÍŸ?ÿí·ßŠèÕ3Ân¾ùæC=t»Nàì³Ï7nÜÌ™3[·nYµjÕoûÛW_}u„ }ôÑ\œØ Aƒößÿ`ëÚµk»uë–““Ó°aÃñãÇGÒç°úõ뇪[·nPþùç=zôˆœùYg�uå•W>ñÄ‘�§L™rÓM7ßË…^xÔQGuîÜùî»ïž™î4gΜ9ÑÇáb¿ýö »Õ}V¯^ýÐC…ë.]ºlëP}úô¹îºëV­ZÔ£F�ºêª«"“š£ïظqã­>}èСÁ·¼VP¿ôÒKAQ§N�è­wÝuWxbuPœvÚiežþÉ'Ÿ,\¸0Ø­ÌÝÙÅ*{=cÆŒîÝ»G|Qê±ÇkÛ¶í˜1c~õ«_¹–Û2vìØn¸aãÆ�‘‘¥K—N)uÞyç=þøã‘ŸV•P“ÁÓËý÷ȶþâ  ¹îºëš6múÃ?ôíÛ·œÝ #õñÇ_­Zµõë×öÙg'žxâøñ㣗ݨW¯^dÝäS£F�mÍûœ9sfdI�Èí-¥¥¥egg?òÈ#A½fÍš·Þz«sçαŸ@FFF�=ÂOþ/ßÛo¿Ý­[·ÈÖúõë_xá…áü¥—^Z°`AË–-£Ÿ>yòä„ÒéÕÞ]»We ƒwX$}nß¾}Æ ÓÓÓƒ�â¢E‹rJg¾|üñÇÁlêÔ©Ý»w/ÿP£G�þýï¿ÿ}|Œ—,Y¹égå|é@d� àcÙ®]»¢¢¢yóæåææ&”®°³|ùò^x!zi¡Gÿþª|Á•ò1£Êÿ LNìÜò€H­!ìt‰‰‰çœsN™Á/¾øbüøñ'NŒŒDçK5kÖ¼õÖ[‡Ôï¼óNëÖ­‡ rÓM7Õ¨Q#Þgûæ›oFêòc¥:„äÀÛo¿½]t cÇŽ‘§ûí·e¶þþ÷¿¶–””$”N‚7n\ôÖ©S§¶jÕª]»vÞ]»We #ïàÔÔÔÙ³gG¿¡ƒ7úˆ#fÍšµyóæÞ½{úé§Mš4)çP—_~ùÉ'Ÿ~Gîûí·_Œðn|é°:uêÜ{ï½½zõJJú÷ªß………cÇŽ½öÚkóóó_ýõ«¯¾:òIŽÝ˜1cn¾ùf!öŠ”ÉI‘â­¨¨è©§ž;vìŠ+8mÚ´cŽ9f«{2dÙ²eᥖ ï¼óÎ'Ÿ|räÈ‘ýû÷�뢵áû%†mܸ±œ :zRvxBäv‰~zôò#a|ðÙgŸô*¨'NœxÛm·Õ«W/¼éí·ßÎÉÉ5j”·ÓnWÙè[n¹eùòåÁiøðáeÞÊ�:uz饗ºté2kÖ¬à�þàƒFÖ5ߪôôô#Ž8b·|»ñ¥J6gΜ-ZDFRSS¯¸âЦM›vïÞ½¤¤dܸq}ûöÝÞ_@°s=ôÐCwÜqGrròí·ßÞ³gϤ¤¤œÿ¾FþóŸ[µj5xð༼¼àáÊ•+/¾øâ±cÇ>üðÃmÚ´‰Óy®_ÿŸ»t¯[N]«V­H½BlŒ¢Ÿ¾ÕWùŸÿùŸp½yóæ|pĈáñÉ“'=,=v�¤J~~tÐ+¯¼²páÂ>}úlåì“’"÷»üàƒ\έ ~ZE§ÏgœqÆ€ÂõÈ‘#5 `7úâ‹/Úµk7xðà:ÌŸ?ÿÜsÏ ÿ-{…Î?ÿüÏ?ÿ¼ÿþ‘ýß}÷Ý£�>ú±Ç‹Ó©î·ß~‘zË•1¢EßA1ú‚1JIùÏôÙºuën¹CûöíO:é¤p=f̘üüü (..ž6mZ—.]4hà}µÛ¥T­Ó …BÁGñ«¯¾Z¼xñ²eËÖ­[÷õ×_‡7mذÁåܪ­f÷a×_ýÃ?³fÍúþûï÷ßÿØ{Ùe—m¹2Ñ–-Z”��í*”ãÓO?íÔ©S^^Þ/ùË)S¦D¯±hРÁã�?~íµ×>|úôß±¹  `À€tP$ŸÝ‰‚ÃFê�?þ¸cÇŽÛÚ3z®tVVÖö¾PxZwXûöí·ºÏ°aÃfÍš•PºÄÇĉ/¾øâÙ³g¯\¹Òí+‰ª@—””<ûì³ûÛß‚7Ó,³—KKKÛÖ¦àcߺuëùóçðÁ§œrJ쇭WJ{Ù—¼ñùO?yŽmQ/%9IOv¥oî?«ìÐwj °')))9çœsÂaëµ×^cúü·¿ýí«¯¾ºþúë##‡~øÓO?=sæÌ^½z­]»6 Ýzë­ñ ;wîY^yΜ9—]vÙ¶ö\¶lY¤>ñÄ·÷…-Z.6lxÈ!‡luŸ“O>ùÈ#�üðÃJoExñÅOž<¹fÍš¿ùÍo¼µ*ƒ*@?õÔS#FŒX¸p¡«|ðüùóËü8¢‡^[ðÓÝŽi^7%YKv©¬zÕ¶ÊÒ`OòÊ+¯|þùçáºU«Ve¶†B¡m=ñÿþïÿ¢è°SO=u„ Ý»wO(�ž½)ú΄ÅÅÅ;|Â'žxbýúõW®\Ôÿûßׯ__­Zµ­î9�:4kÖl{_è�wÞ ¿ûÝïÊÙíþçzõê•P:‘ü…^˜>}ú¹çž›‘‘á­UTöúꫯ¾ë®»"ƒ·éñÇØa‡~øáÍ›7¯W¯Þûï¿òÉ'»�;¬œaìáÙ�a«V­:ôÐC£·.Y²$RDoš3gÎ7ß|Ó¤I“2ìÖ­[Íš5×®][&eŽÎd׬Y³‰pä8×^{íïÿû„Ò[ Ž7îÊ+¯ÜêžÏ=÷\¸ˆÜ0vEEEá Ö®]»œIÖ�³Ï>;ø^/^Ô—\rÉ�?þhý�Ê£Rÿ!ùŒ3"és×®]ß}÷ÝE‹=úè£Á›ûôÓOoÞ¼yðAJN6±âÏj9[¿úê«pѨQ#½Øõ¢'&O›6-zÓ† nºé¦ÈÃè0:¡tfáÿøÇ-XPP°iÓ¦ 8î¸ã¢Ç6l©ß~ûíH=cÆŒ5kÖ„ëH”>¶ :ôøã�×Á9¬ZµjË}^{íµwß}7( pÆglëPe¾©ˆ‡~xéÒ¥AñÐCÕ®]»œ“INN¾æškÂunnîÁÜ©S'ï«J¢RÏ€žûìN–ÿð‡?pÀ-Z´˜6mÚk¯½6{öìð>‘…pssssrr¶uçÀ”””à‰§�vÚG}ôÃ?'|x8F?ÿüó½©*�J@G~ñ¼M·µOø³‹+®¸â”SN)))ÙY§·ÿþûÇïÆ—<úè£Û  #¿"ëÚµkÍš5}v½:œþù&LH(½!á=¥‚ºfÍšùË_ °`Á‚—_~9ùä“O:vìØ°aÃþóŸ}ôQøéýû÷Ÿ9sfŸ>}7n¼bÅŠiÓ¦=ñÄÁs'MšÔ¶mÛèÊÌÌû<ðÀ]tQ,= v¾øâ‹ƒo-11±LÏîU©èÈ24³fÍ Þî[Ý'øtÅx´´´´#Ž8b·|#»ñ¥/¾øâ3Ï<³e=nܸ)S¦$”þ‘Â�7Þèð»<ñÄGyä£�>úå—_fff6kÖ,;;û·¿ým½zõ‚­cÇŽ½è¢‹Þ{ï½Úµkã#FŒ¨S§N$€…B“J%”ÆPtÐ�!C®¹æš­.¸zÛm·%&&þõ¯]»vmð*ýúõ»âŠ+ÂÁôù¤oß¾AñÈ#� 0`Ë£U«V-8󫮺jüøñ¯¼òÊ 7ܰqãÆàÜš7o~õÕW_pÁx`…ßûé§Ÿþä“OÞzë­7ÝtSnnn�5‚ êK.¹¤~ýú±÷ðÌ3Ï5jÔ¯ýë,÷¬®L*uÝ»wïûï¿?¡ôOªW¯|l¢W{Y¸pað¾œ8qbøá¦M›ŠŠŠRRR\Ô-õïß?ø9rê©§†®^½zäÈ‘£G�?¼ñÆwÍúŸÐk]ã¦.UN~~þÒšÂõ;�Î�ý¹sõ€=Õ1Ç£ {§¤¤¤+KmukÓ¦MÿùÏ–ìÙ³ç¬øš’’òçReÆï/µc'ߦM›Hдc9ä�ñãÇÿ̆גvûÁʦRǵ;v¼ôÒKyä‘à³4räȻᄏmÛ¶ 4ÈËËûüóÏÃk�GÌ›7oß}÷­]»vffæ 7Üãäü½DбÓN;­uëÖÍš5[±bEЫÈ*ò½{÷>|¸P¥=ÿüóÕªU;çœs´¢R©ìó…ÇŽ¼oî¹çž’’’M›6Eß�3¬mÛ¶sKgÁ¬X±"(F�%€NNN...NLL|衇†to~©È©©©7ß|óõ×_ïc”•¹ÂïkÃO­ Òûá‡þþ÷¿_xá…Ñ7B¤2¨ìtRRÒèÑ£û÷ï?nܸ—_~yÉ’%ÅÅÅá…`Ž:ê¨ìììOøàƒ»té2pàÀ¦M-ˆlMbR¾u´�ªâþûïÏÏÏ2dˆVT6UcÅä#Ž8âÞ{ïÝÖÖÌÌÌ¥\ÎhãJ…ëF��.¥-ìa¾üòËÛo¿=;;ûðÃ×�ÊÆ-û*�––vþùçGj €Ÿ©   RGîU£—_~ùæ›oþ…~ê©§öë×///ï7¿ùMQQÑ–wV¤2@T 111==]`gY°`A¤þä“O¶ë¹ýúõËÍÍ ŠÙ³g6,<øç?ÿ¹yóæ[  v›ð}Ô#rrr¢feei{˜Å‹¿÷Þ{·Ýv[d䥗^ºöÚkO;í´zõêzè¡þñq°[8€Ž¸ì²Ë‚#èmå$€ØmÎ:ë¬r¶†B!-`óË_þrÍš5eþ÷î/¥‚zþüù­Zµ*ÿÓ¦M:tèܹsƒú¨£Ž2dHvv¶ÆVZh`Y½zõÏ<Âa‡öÒK/édU!€¨@~~þÔ©SÃu¯^½¬ #4@Å¢oÎ @Œ’´€x@–àØm¦OŸý°]»vzìIлMƒ ¢feeé °'±q!€ .ÐÄ…€¸@)ZÀ.Ó¦M›–-[êUNaaá?ü®;v옚šª'±@T 555;;[¶—š]§ÕŸ^H¨ý±>PÕ…îï« ±°4q!€ .,ÁP‘’’„5ßýT×n¬1@T¤¤(á›÷ª÷k ÀÞ  èC ---11Q`Ç («  àùçŸ×‡@·nÝÒÓÓõvŒ ù*Ö­ÎÉÉ —YYYP4@ æÍŒM&].C¡�Æ”C UؼyóÎ?ÿüœœœK.¹dôèÑB¥’¤Pu úè… ÆûUfΜ9mÚ´G}TÃÙ.h€qêOE«“¾¹õý`¯²téÒ~ýú�qÆZÁö@Ä =ó§¢z�¬¬,ý`ï±yóæsÎ9gõêÕZÁ@T$9%¡åIÿ©`¯Q\\|ÁÌ�;W+Ø1’€Š$&%ì[Kˆ·ÂÂÂ¥K—6iÒd‡�PTT”’²Ó¿¼¼¼þýû?óÌ3. ;L »ÙÇ<~üø‰'ž~úéO<ñD0òÚk¯=öØco¼ñÆòåËkÕªÕ¾}ûôèÑc«OŸ?þÔ©S§M›öðÃwîܹÌÖ‚‚‚àhÏ=÷Ü /¼ðæ›o6jÔ( =óÌ3ãÆ�ûðÃ×®]Û¼yóþýû2$:¼ÎÍÍíØ±ãâÅ‹##ãK…ë6mÚçìÂQ!4ì ,˜0aÂÓO?½hÑ¢Èà�?þ8pàÀ©S§FFV®\9£ÔYg�5iÒ¤ôôôðøgŸ}6mÚ´`ÏÏ?ÿ|«ÇŸ>}z°Ã?þñ�¼¼¼ðHQQÑwß}׿ÿW_}5²Ûüù󝹿š¹sç;G÷Ûo¿^x!(N:é¤åË—EvvöÈ‘#Ã[322\>b!€€ÝcÅŠx`‹-"ôªU«N8á„‚‚‚|°mÛ¶ÅÅÅ3gÎ=zô† Jå>}ú<ýôÓAýÞ{ï�;6##ãÇÜÖñk×®}õÕW÷Ýwo½õVxdáÂ… ^ñ©§žjÞ¼ù’%KFŒñÑG›‚‘iÓ¦�{î¹á=SSSƒÝÂEx¤fÍšáˆ� "Å… _ÿ©>ì×úÀÎrr©K/½´V­ZÁÈŒ3þøÇ?Þxã�‰‰‰á}:uêtî¹çwÜqá yúôéO>ùd¿~ý:”J(�¡|öÙgoõøÇ|ðuàÀ�‘ºW¯^úÓŸ† ~ئM›c�=¶yóækÖ¬ >üðÑv 4»Î§ûßÒ²n²>Pål. Ýž�®‡Ý5FCعöÙgŸ:uê„—¹8ñć^f‡V­Z�;ö¼óÎ ?¼õÖ[ûõëÙZá¬ä8 Rßqnj޺ß~ûõìÙó¡‡ ê¹sç–””$%%¹(ì,ÞL°›E–¹hܸñVw8÷Üs[·n®?ÿüó>ø ²)333ƃ'l#­nÙ²e¸Ø°aÃ?üàr°   ²KLLŒÌ€D–ÔØ)ªW¯©Ã‹MÃÎ"€€* cÇŽ‘úÛo¿�Ó«”””h5;‘ª€C=4R¯]»VC¨ÐPÔªU+RG/š•YŠÄâÇÍ¡„Ò?qJOOЬ¬,=`WJIùO”W·n] ¡j¼oµ ÷¼Søï¯ÿÿfÁ¡PHOØ•òòò"uûöí5„*ÁP,Z´(\¤§§Gß�*34Tï¼óN¸èÛ·oµjÕvÙë&&&†‹ââbW�í%€¨èebBV-?-ØÍ&OžœP:ýùºë®‹/))‰ÔñX12###\¬Y³ÆU`{‰T*�–’Ø¿]š>° ,Y²d«ã3f̘;wnPÜzë­‡zhô¦uëÖmµŽ(***ÿE7nÜ©·Œ°6l.ÞÿýÂÂÂp½~ýúgŸ}Öõ¢Bh¨,fÏžý‡?ü!zRsBéêÏ]tQP 8ðꫯ.ó”yóæEêO>ùdËc®X±"Rÿøã�[îðõ×_Gêï¿ÿ¾ÌÖc�=6\¬Zµê /|÷Ýw_|ñÅ`0³­Ùó¤h@,¾ZººÖ•óµ€øiÕªÕ}÷Ý7eÊ”Áƒyä‘III³fÍ5jT~~þÈ‘#‡ ÙsõêÕ999Ÿ~úéM7ݼóÎ;«W¯Þ¹sçC9$333¡túó“O>ÙaâĉgœqFjjjddåÊ•ÁËEïо}ûèSúÝï~w÷Ýw¯]»6¡t�@rrr0Ò£G׋  b’µ_韌deiñÓ¾}û™3gÞvÛmwÞyçòåË333:è Ë/¿|À€Mš4‰ÞsìØ±Ã‡/óôµk×^uÕUAqß}÷ <øºë®›4iÒ²eË";üío{ã�7~õ«_MŸ>=xø›ßüföìÙÑ wÜu×]Ï?ÿüÀ�¯¹æšðHƒ ^zé¥à°~øa­Zµ:vìö—¿ü¥‹E,Ð() -YûÓ_ý¢¤$)ÉâEÄÑ�x©òw»±TùûÜQªœž{î¹XNéè£�~óÍ7]v€ Å O|\®‡Dnþ @ùД•––Ö­[7}·B`‡  (+111==]€ŸÉJ¦Ä…Ðì:/|ËÂÆ�õ�*§  à³/Ÿ ×Ó§OßãÿöªgÏž.:À®ÿ·g¸Ø´i“n°'1v§5kÖ¬\¹2\òÉ'ÂžÄ hØ=¾ûî»?üðÎ;ï,)) �|ñÅ_|ñ9çœÓ°aæM›V«VM—¨Òа{ôèÑãƒ>(3øx© xþùçÏ<óL]¢J@Àîñþûïk{6k@hâÂHNNîÔ©S¤Þ#¿ÇÜÜÜH�““.²²²\}àç@T 99¹aÆ{ö÷xùå—o9 …\}àç°q!€ .ÐÄ…5 *PXXøî»ï†ë£�>:55UOb!€¨@(Z¶lY¤Ö *JLL,ó/=�m))))çãÃv@�ðÀDêÓO?]C`Ï“”ô_ ±úûNØ–¢¢¢r>>l4 õêÕ‹ÔYYY{žÄÄÄ´´´‚‚‚ðÃõë×gffj lUð‰ÔÁÇ èŸCx°W¨^½z¤ÎË˳ lUðÑ> [ýà°Ð{…è­°°pÙ²e2h(#|#¨à©Q£†¶ü–àØ+ddd¤¦¦F’µuëÖ-^¼¸F�ÕªUKII±Ê-{³’’’¢¢¢õë×çååE§ÏÁG&==]~4À^!11ñÀ\²dIdâsaaášRšÛúÈXúgò«-€½Effæ/~ñ �T(ø˜÷êüùÌ€f×éÒ¥KË–-õ�*góæÍ_~ùe¸>묳222ô¨ºÂôòåË£×¢¥¦¦xà�Òç�B °wÉÌÌlÖ¬Y~~~^^Þºuë ôiiiÕ«W¯Q£Fzzº?ØYÐþ'§V­Z‘ZC€=ã_:¥êÕ« …JJJ" CÃÞù‰HJJò¯þx@T ==ýÊ+¯Ô`O•˜˜˜œœ¬@<¸ !q!€ .ÐÄ…5 * …Ö®]®kÖ¬éŽ1@T ??ÿî»ïׯ ËÈÈЀXX‚€¸@hâB @\ ˆ 4q!€ .ÐÄ…€¸@)ZPÁÊ””ÓN;-Rk@Œ$)ý LI9æ˜cô`{Y‚€¸@–à`×™ùÙòÏò«é@•vΑi1@T ¨°ðÓ÷Þ ×­:tJIMÕ€X *PRRüåü�Âõáí�IH@ÄÄÐÄ…€¸@Ö€þ#wùwåï�³¨œ­YYYz@„ø�ÁÝŽ«`‡r·†B!= ÂÄ…€¸@hâB @\¤h@ùÒÒ3ÎýÝUúÀ^âþç甿íé1@ÿQïÀÆåï�•u�.#KphâB @\X ù›Ÿ}âÁp�ÝPZz†žÄ hâ hv�SÓ>k™¾^¨r6'|•¼"\Ÿ�þqFzšž°W[ð¡T"-{èP™™ @\ ˆ 4q!€ .ÐÄEŠTf9Ër·¹mßœmmÉÊÊÒ:`·@TjMN¸Ï …BZìv–à .Ì€¨@rRÒ1m‰Ô#4@RSSN;öH}Ø^¦òhâ•Ú73ÇnsÛ!§êP™  *PTTüþ‚Eáú¨–§¤$ë °+e5¬·ímYúTfh€ ÿß…ë¶-š bd hâB @\ ˆ 4q!€ .R´€]æ_ÕZÕ¬y¨>PålÞ¼9/ã�p½´FûŒŒ =`ÏÖ¨Q#M`§0€¸@hâB @\¸ !@ÒÓÓ/¹ä’H­!1@T 11±fÍšúÀžä»ï¾+gkQQѶ6eeeé±@À^§cÇŽ;öÄP(¤{ÄÎÐÄ…€¸°@òóó'L˜®Ï?ÿ|÷!ˆ‘ ¡P(///Rk@Œ,Á@\˜ {�·Þz«œ­ 4Ð"v 4ìu7n\ÎÖF�i;…%8ˆ 4q!€ .ÐÄ…€¸HÑv™8ÀÕ©Š6oÞ\£F�p¼‡322ô h€ $%%µhÑ"Rk@ŒÐì:W?ýA͹ßëUSÃðMŸðŽ^TNÓ.9N ²1•€¸@hâÂЕ¯[¹4\W¯ß(1)YOb!€¨@IqÑwïÎ ×-Nï›,€ˆ�%8ˆ 3 ¨b6¬^±å`NNΖƒYYYÚ»‘€*fư^[6¶•=C¡�vÀnd âB @\ ˆ 4q!€ .R´€ªåôÛ§n9ø@¯£u*4U̾ul9˜••¥3PÙX‚£jËÍÍmܸñôéÓµâøƒ295«S×ð‚ZCbdtÕ6yòä¥K—kÄObRÒV§ÚP>3 «¶É“'W¯^ýÌ3ÏÔ  ²@Wa_ýõ;3��½Ï>ûèPÙ «°É“'_{÷î­@%d è*lòäÉuêÔ9å”SªÊ �®öt˵\8ªœ‚¢âIo|®ûÛ$-%YO*£§ÆéÁ®pÎx= vèªjÞ¼y ,4hPJŠ‹ñUR’�“»>R#ÙeU5iÒ¤àkŸ>}¢ßzë­ìììU«VEFúõë7aÂív=k@WI¡PhÊ”)¿øÅ/:uê=þòË/G§Ï�'Ÿ|2??_Ç€]Ï è*é­·ÞúöÛo¯»îºÄÄÄèñË.»lÍš5¹¹¹A=uêÔð`(Ò1`×@WI“'O¾öîÝ»Ìxݺuï½÷Þp  v tÕSTTôÔSOvØamÛ¶Õ â'rÞ¨¡œèGYYYº@9ÐUϬY³rss¬ÄU“ÁÓËý÷ˆÕÞ(Ÿºê™4iRÂÖÖߨÅrssËÜðp«-Zä’ÀÞIGüñ”)SæÍ›÷Å_¬]»vݺuiii 6ìÔ©Svvö™gžY悱ؼyó³Ï>Û¡C‡ƒ>8ögåææŽ;vÆŒ_~ùåúõëëׯì±Çþö·¿=á„vø»3fÌÍ7ßì*Û"€Ž—3ftïÞ½¸¸8z°  à‹R�=öXÛ¶mÇŒó«_ýj»û /äååm×ôç±cÇÞpà 7nŒŒ,]ºtJ©óÎ;ïñÇÏÈÈp½€�N/�<òH$}nß¾}Æ ÓÓÓøá‡E‹å”Þ¹åã�?>ñħN�Ú½{÷Ø;yò䤤¤^½zÅþ”«®º*\Ô¯_¿]»vEEEóæÍËÍÍ F¦L™²|ùò^x¡zõê.lKbbµö‰ÔÄH/‘H755uöìÙÑ ï›o¾9bĈY³fmÞ¼¹wïÞŸ~úi“&Mb9f^^ÞŒ3Ž?þø{»ÎäöÛo�NŸÿóo‡3Î0`ÀÃ?Ô#GŽÜÞ€=^V½j[ ei ±@ï"¡Pè‹/¾øê«¯/^¼lÙ²uëÖ}ýõ×áM6lˆå+W®|õÕWÏ8ãŒýöÛo»^ºœÓ×_}8€ž5kÖ÷ß¿ÿþû»RÀÎ"€Ž¯’’’gŸ}öoûÛ¬Y³Â÷ýÛaÓ¦M+..îÝ»÷ö>1--m[›²²²Z·n=þüàÈ|ðÁ)§œâ’ÁÖ>ȡܼÍáº^�Œ¤$7"ˆ‰:Žžzê©#F,\¸p§mòäÉûî»o÷îÝwîI|ðÁóçÏŠeË–¹d°UE%c_ú"\Ën�‘–¬'±@ÇËÕW_}×]wE6kÖìøã�?ì°Ã?üðæÍ›×«Wïý÷ß?ùä“cúh�=¶ºé�üc¸èÚµkÍš5ãÝ–Oèµ®qSoªœüüü¥5'„ëw�Ÿžž®'ñsÌ1Çhì1Ì€Ž‹fÍš…‹Y³fmkŸ™3gÆx´I“&_{÷î½c'óâ‹/>óÌ3[Ž�7nÊ”) ¥‹�Üxã�®°s™½{÷¾ÿþûƒâ�¨^½ú5×\S»víÈÖ… Þzë­'N ?Ü´iSQQQJÊ6¯Å”)S5jôë_ÿz‡Ï§ÿþ™™™§žzjøáêÕ«GŽ9zôèðÃo¼ÑúÀN'€Ž‹Ž;^zé¥�<òH(9räÝwßݶmÛ äåå}þùçK—.�ÞyÞ¼yûî»oíÚµ333o¸á†‹.º(zëܹs¿ùæ›k®¹&11q‡Ï'xÝÓN;­uëÖÍš5[±bEðŠ›6m oêÝ»÷ðáÃ]2`§@ÇËØ±c«U«vÏ=÷”””lÚ´éí·ß.³CÛ¶m322æÎ�Ô+V¬ŠQ£F•  ÃëoôéÓg{O 99¹¸¸811ñ¡‡:thpóKEvHMM½ù曯¿þz ˆt¼$%%�=ºÿþãÆ�{ùå——,YR\\\£F�fÍšuÔQÙÙÙ'žxâ¦M›F�õüóÏýõ×ëÖ­K(]+#ú ÁS¦M›v衇yä‘Û{Á¡{ì±à륗^Úµk×àdf̘ñí·ß&''|ðÁ]ºt8p`Ó¦n Ä‹:¾Ž8âˆ{ï½w[[333G”ÚÖ¯¾úêÊ•+ ´/=®T¸nÔ¨ÑèR®P©„ÿ,ZNNNôì¬,]€ªK]©Mž<9¡t™f­€Ýùƒ2%%rÐrî À8묳Êß! éT]’”Ê+??úôéíÛ·?ä�Ctv£äädC€�¤•ÖŒ3Ö®]kú3PE  +¯I“&%%%�wÞyZTEèJjݺu/¾øâqÇ×°aCݪ"k@WRÏ<ó̦M›úô飰۽ùæ›áºS§NîC#1J%5yòäÔÔÔž={jìvÅÅÅ_}õU¸>æ˜cÐ;ÑôéÓËŒ´k×N[`�!F©ŒV­ZõÊ+¯œvÚiûï¿¿n{° ”ÉÊÊÒØcXº2zê©§ŠŠŠz÷î­@Õ%€®ŒŠŠŠš6mú›ßüF+€ªË•Ñ�RúTif@hâÂì:mÚ´iÙ²¥>PålÞ¼yöìÙáú—¿üeFF†žÄ hâ hv�Vz!¡öÇú@ÕST�ðá¼§¡ÛE ƒäT+ol/4@…?)ÓÚw6¬¯Nlk@hâB @\X "¡PBqáæÍ›ƒ2===11QKb!€öny«*Þ§¸0áÓYÆ}”ƒ JOO/÷¬¬,}H@{» WŸã=ófþûë=÷T¸g(ÒW€k@'hâB @\ ˆ 4q‘¢À^íü»*Þ§¸0áÓYCOh”ƒ JOO×6€X �½[�ºïST��žY«V­ <è ƒ222´ –à .ÐÄ…%8*’”œÐð°Î�;ÿû‡fŠ›±’¤Täßôáá€ØY‚€¸0š]çÓýoiY7Yv²kõ€ÊÉ hâ h€ ½ñÆáúØc�uB€‰Q*PTTôÚk¯…ëcŽ9F #KphâÂ’C“óCÉ?Ή~”••¥ETh¨bšÜ³þ¿ßÓ$úQ(Ò"* KphâB @\ ˆ 4q‘¢Pµ|3´Ú=¾r¾žP9  ¡ŠÉÚï¿ÿp!+KOâ-==}ذa‘ZCb$€¨@bbbFF†>l/k@hâB @\X ›7o¾ûî»Ãõ•W^i=h€  *¶yófMØ^hv�—¾eaãÆú°³ôìÙS¨Ì¬ @\ ˆ 4q!€ .ÐÄEŠ@U‘››ý0'''úaVV–P© ¡Ê¸üòËËÙ …´€JÅÄ…ÐHNNnÛ¶m¤Ö€  *�ššš��­ÛËÄ…€¸°T<ð@ôÃÓO?]O¨ÌÐPeÔ«W/úaVV–žìÅÅÅóçÏ×­[·vB€  *PXXøì³Ï†ë-Z bd hâB @\ ˆ 4qá&„ì:]ºtiÙ²¥>À^ hâB @\ ˆ 4q!€ .R´ |iiiŒÔ#4@’’’8à}Ø^–à .ÐÄ…€¸°4@òóóüñp}ÑE¥§§ë @,Ð…Bÿú׿"µ†ÄÈÄ…€¸@hâB @\ ˆ 4q!€ .ÐÄEŠ”/)))+++Rk@ŒÐì:3?[þY~5} *Ú÷ˆÂÅsŸ®Ð €ªëœ#ÒØ•Lå .ÐÄ…€¸°4@JJJVÿkY¸®s@C÷!ˆ‘ E…ÿ�½û³¢¼÷Îî²Eº í²„ƒ "ű#6°®=T4ذ X‚ƒX‚ ^ *¶¨E°‚AD4н  Xé(¨¨Ô­ç?Ùùßs÷–ì,»ðùV¶w�NV *  *PTÿâÛÅÿÓþ�‚$ÉDB @$ÐDB @$<„`4ÉòRzëÎ߸/‹)4À6¨í1'92�+Sp 4‘@ s@T %%¥Qƒº‰¶‚$I P�ÌŒô+Ï>A6•`ôíäÑ¥ôîzŒÊUI ° еjVZoLe€ªä!„DÂЈÇ㿬Z¶Ö¯ã9„I@T 7/ÿÎÇ^ Ûûž’•™¡&É0‘@ SpPu¾«÷Û† wSjœõë×ÿšõ^Ø^Ü`Ÿ¬¬,5€@vv¶"P>w@ 4‘@ 4‘@‰ÚJ”oÑ¢Ewl܋Ŕ €4P�<0É‘ñx\¹H@Tt¡¬]»[·n‰¶‚$I’PÑ…²ví½÷Þ[6•‡ 4‘@ s@T ??ÿ­·Þ Û|pzzºš°½yûí·7îlÙ²¥ÊP>4@ ?ùä“°}À ØµnÝzãÎììl• |¦à h"!€ h"!€ h"Q[ ¨2-Z´ÈÎÎVjœõë×7hÐ lçpVV–š$ÃÐDÂÐT�ã?jøîOê@�S˜ŸûÅÇ Âö¬GÞJKÏT ê=ýÇC¨qÜ @$Ü P�´ôÌN'�¯›ÊÐDB @$ÐDÂÐÕÈš–•Ú?þüRûc±˜¢Õ– …ù¹_Lz"lw8öié™jDgÒÀ3Kío;°ôññx\Ñ€jËDB @$ÐDB @$ÐD¢¶TÇÞöT©ýwŸù;Åj4@5Rw§–¥öÇb1ÅjSp 4‘@ s@T %%­I»N‰¶‚$I P�ÔÚµ[üvuØTèmÊÛo¿�““³bÅŠDOïÞ½{ì±j²y#ê�ïÔ ‘ÛcÜ5`wú£j°í1ô6eÊ”)%ÓçÀã�?ž››«2@Õsô6¥_¿~?þøãòå˃öSO=vÆãq•ªžz›Ò´iÓQ£F…íD l¡‚¢¿ù1lïÛ®Ií4;�4@ ãÿš±$lw‰5®�¦$Iq‘@Wk÷ßýúõüq¥jSpl©3fŒ;væÌ™_~ùå/¿ü²jÕªŒŒŒV­ZtÐA999Ç|JJÊf¯üµ×^[½zõ[o½Õ»wï-ÙÈåË—�=zÒ¤I_}õU°ÂæÍ›|ðÁ^xáá‡îP•æ/_]Æ‚ùe}$‹©@ %€Þ"“&M:ñÄ Kvæåå}Y졇êÒ¥Ë=÷ÜsÀlÞú›6m¼6kÖlK6rôèу Z»vm¢gñâÅc‹ýþ÷¿øá‡³²²JªFÛË&”¾ ¬þZµâñ¸ºÔPè-òÀ$Òç}öÙ§U«V™™™+W®œ;wîüâ;8f̘ѽ{÷§žzêÄOÜŒõ‡ÑóÐW]uUØhÞ¼ù^{íUPP0sæÌåË—=cÇŽ]ºtéK/½T¿~ýM]m°†+VT8,(…ó¶Oè-’ÈmÓÓÓ§M›V2Æ�>}ú�!C¦N�º~ýú^½zÍž=»mÛ¶å¬jÕªU|pݺuzè¡:„�Ðï¿ÿþù矿ÓN;kNKKKr;ƒñ£F�:óÌ3SSÿ3ëw~~þèÑ£¯½öÚÜÜÜÿûß xà�6ußï¹çž¡C‡:€²xá¹ùæ›�8âˆ:<òÈ#ÜD|ÐA½òÊ+ÁÒ ½víÚ{ï½·üU-Z´hæÌ™ï¼óÎ>ûì3zôè°³yóæ‰×¢¢¢¿þõ¯Áj?ûì³éÓ§¯Y³&É�lذá›o¾Ù«W¯0}®U—_~ùåãÇ�{ÆŒóúë¯;š@årôiӦͫ¯¾ZÖÒÔÔÔK.¹dêÔ©Aû£�>*U;v|å•Wn½õÖ7Þx#øÔĉzè¡ÄЋ-êÝ»÷¿ÿýï”””N8á†nhРA’yÛm·%n©.é¸ãŽëÛ·ïý÷ß´‡ Ö­[7¨DèÊ�Ç¿üò˯¿þú›o¾Y²dɪU«æÍ›.Jæ†å£Š}ðÁÇŸ0aBçÎ� ô¿ñÆ×_ýÚµkûôésÝu×í¾ûî›´Ug�uVY‹‚Õ†ôÔ©Súé§Æ�'¿Ú~ýú�~úé›;wnNNŽs¶CèJPTTôÜsÏ=óÌ3S§N î·%öÛo¿§Ÿ~zÞ¼y#FŒ8p`ÐsÝu×]tÑEW^ye«V­6c…e-ŠÅb�;wž5kVaaáG}tÔQG%¿ÚfÅ}6É·w�Rú‚ãþ[q¶=è-5nܸ!C†Ì™3§rW[XX˜ŸŸ¼†í¼¼¼°]éÚ·o?kÖ¬ ±dÉGJ•™žzåqm€-kV¯Œ1ÅØö ·È€î¸ãŽÄÛvíÚvØa»ï¾{ÇŽwÙe—fÍš}øá‡Gyä&­3øÈßþö· &4mÚôïÿ{ÿþýo¿ýö?ÿùÏ÷Þ{ïYg�õ§?ýiS§à(_<w¡|)))�êf¨À¦@o¾I“&%Òçž={:t¿ýöÛ`LZZZò+œ6mÚ-·ÜòÚk¯íã�?þÁœ;wnÐîÖ­ÛÌ™3{÷îýè£�þãÿ8餓n¸á†½÷Þ;ÉÕ”³ô믿ÙÙÙŽ)P‰ü-ùæ{òÉ'ÃÆùçŸ?iÒ¤�ÓçM2gΜ#Ž8âµ×^Ûa‡î¹çž_|±Y³fáŒÒÁkëÖ­Ãx:--í¹çž;à€V­Z•äš§L™RΗ~öÙgA#==} ·`î€Þ|?þøcØ8á„Ê“ŸŸŸäÚZµjÕ©S§zõê=üðÃ:t;¿ÿþûÄkjjê AƒŽ:ê¨óÏ?¿qãÆuêÔIrÍ>øàÉ'Ÿ\ꢛnº)lôìÙ³aÆŽ)P‰Л¯]»vacêÔ©999¥Ž™ûìÆô˜1cÆŽ[«xž�Áƒ; P–ÜüÂ{_ù2l_rôn™éij� ôæëÕ«×]wÝ4î¾ûîúõë_}õÕMš4I,�3gέ·ÞúÄO„o×­[WPPP»ö¦<ŒžÃ; ·DŸ>}êÔ©sÌ1Ç„oøá‡aÆ�1"|;xðઙãÓg®j½³3‡'77wvíÇÂö»­ÎÎÌÌT€š¢k×®Š[‘zóxà�\pÁ<�LJ vç�wvéÒ¥eË–¿þúë_|±xñâ’ƒgΜY·nÝ&MšÔ©SgРAç�w^2_±bÅŠÄë–6©G��;wn׮ݲeË‚�Y·n]¸¨W¯^7Üpƒ£ T:ô=zt½zõFŽYTT´nݺwÞygƒ]ºtÉÊÊz÷Ýwƒv^^Þ²eË‚ÆðáÓ  �<òȉ'vØa›±miii………)))÷Ýw_ÿþýƒÍ›U,1 ==}èС×_½ãDA½ERSSGŒѧOŸ1cÆL™2eáÂ………… 4h׮ݾû“Ó½{÷uëÖ >üÅ_œ7oÞªU«jOˆ‘äúûÛ¼m ¾å¡‡ ^/¸à‚ž={Û9iÒ¤ ¤¥¥µoßþè£�¾øâ‹wÞÙ„@TЕ`�=ö5jTYKëÔ©3¤XoÕ˜ba;;;{D1 ¨2©J@Ü À¶ |ØÆæÏŸ¿AO,S+¨2h¶§œrJ2Ãâñ¸Z@•1‘@ SpT 55µM›6‰¶‚$I P�ôôô£Ž:J6•[ùˆ„; ØL˜0aãνöÚKe`+@°-hÙ²åÆ�±XLe`+@T °°pÑ¢Ea»uëÖiiij� 4@ ^}õÕ°}öÙg  ’ä!„DB @$ÐDB @$<„�ª³çž{vêÔI¨qÖ¯_?mÚ´°½ÿþûgee© @2Ü @$ÜMÕùí-/Õj2C*Qü®?(Õ–; ˆ„€H ˆ„9 *�‘‘ѧOŸD[A’$€¨@jjj,S€M%€†å×%ßÍŸ?¿ä[!)ÕŠj”Ç®*ù®íÿ}�ÇU€êÃCˆ„; *�——÷Ïþ3lŸuÖYžC�$4@ŠŠŠÓmmH’)8ˆ„€H˜‚j”³ï(ùîÛ›r”€jK 5Jƒ¦%ßÅb1% Ú2‘@ 4‘@ 4‘¨­T™Ù�oîÔ4M*ÓÐ~ÿÛò‹zD$%%¥E‹‰¶‚$I P�ÌÌÌ‹/¾X6•)8ˆ„€H ˆ„9 *PTT´|ùò°Ý¬Y³ÔT¿ºHŠ yyy£G�ÛÌÊÊR€d ¡Fš¿²h£®ù%ßÅb1U`ë@C�Ôväê »F¶-ù.�«[—™Lˆ„€H ˆ„€H ˆDm%€šèÛþõ6ìºr–²P­ ¡FŠí¸ÑŸ/ÄbÊ@µb "áh€ ¤§§çää$Ú �$4@ÒÒÒºt颛ÊDB @$LÁAÕy¥ýÍsZ·V‡ÊuÚi§)Õ“ ùùù'N ÛÇwœç$I P�ÂÂÂ3f„í=z ’dh"!€ h"ah¨a–/_^òíüùóK¾�ÅbJ@5!€†æÒK/-gi<W"ª Sp 4‘@ 4‘ðB€Šeee)À¦@C s÷Ýw—|{ì±ÇªIÔ²²²¨›J 5L³fÍJ¾�Åbj@õdh"!€ ¦à¨@<ÏÍÍ Û™™™)))j� 4@rsso»í¶°=pàÀ¬¬,5H†)8ˆ„€H˜‚ƒªsôÑGwêÔI`;áh"!€ h"!€ h"!€ h"Q[ *¸P֮ݭ[·D[A’$I¨èBY"€ y¦à h"!€ 怨@AAÁ[o½¶>ø`Ï!H’ ¯¿þzØîÚµ« I¦à h"!€ h"!€ h"!€ µ•€*3ùó¥ŸçÖSjœ¼ÜõŸ-û9l�ÿdAFf–šPý�¾wE`«s4‘@ SpT =#3§Ï%‰¶‚$I P�””ó>lSp 4‘0ÔTË—.*kÑüÆñ²Åb1¥ j *�—»~Ò? ÛÇžu¾ù ¨>.;á�2•ý©x<®tT 4@Åòòr`S™€H ˆ„€H ˆ„‡@Mu׋o–µè¸ßf«[�jªfÿÕº¬E±Xõ`«3‘@ 4‘04@RSÓb»vL´ Ih€Š.”éé¿;üuØThªÎ1ŸwÊ\­Uá³�·þ6t:ÙqØÎ™€H ˆ„)8*PXX8ëë…a»ó.¿IKóB€¤ *�_PøÜÔ÷Âv‡¶­ÐI2‘p4°Eæ/Y^ú‚ºóKíŽÅbа�@[¤í1oÒøx<®hÛ Sp 4‘@ 4‘@‰ÚJl‰o'�.}Á®Ç(ÀvN l‘X«fe,ˆ)ÀvN P�ŒôÚŸyL¢­ I’¤T 55µÅN;ªÀ¦òB"!€ h"ah€ äæå?üìkaû¼“»gf¤« @2ÐT�ïêý¶aÃÝÔ�gýúõ_­~7l/ª¿wVV–š@R/Vj�ììlE€Jg "!€ h"!€ h"Q[ Ø~,Z´¨Ôþ‚‚‚�;c±˜ŠÀ–@°9ðÀ“�ÇU ¶„)8ˆ„€H˜‚ ©©©ÙÙÙ‰¶‚$I P�ŒŒŒ3Î8C6•[ùˆ„; ØŽ¼ýöÛ¥ö·lÙRq Ò  ØŽ´nݺÔþÄc?€J$€¨@QQÑ’%KÂv«V­<‡ Ih€ äåå�7.l÷ë×/++KM’á>>"!€ h"ahªN‹-øÂ /<üðÃbHFn~Ñ�?Ûs:ge¤© À6fþòÕe/›_jw,S7¨�ºL“&M:ñÄ Kvæåå}Y졇êÒ¥Ë=÷ÜsÀTç½=zô AƒÖ®]›èY¼xñØb¿ÿýï~øá¬¬,ÇØÎµ½lB™ËÊX�ÇÕ *$€.Ó<�HŸ÷ÙgŸV­Zeff®\¹rîܹó‹o„™1cF÷îÝŸzê©O<±ÚîÅUW]6š7o¾×^{Ìœ9sùòåAÏØ±c—.]úÒK/Õ¯_3Ö¬dÅŠ Êå\€í“ºL‰X6==}Ú´i%SÚéÓ§2dêÔ©ëׯïÕ«×ìÙ³Û¶m[mwd§�v5jÔ™gž™šúŸgNæçç�=úÚk¯ÍÍÍý÷¿ÿ=`À€x`3V{Ï=÷ :Ôy”%U ÊróÍ7qÄ:txä‘G6¸Gø ƒzå•W‚¥A{íÚµ÷Þ{oµÝ‹† ¾ù曽zõ ÓçZÅyúå—_>~üø°g̘1¯¿þºÃ T:w@—©M›6¯¾újYKSSS/¹ä’©S§í�>ú¨ÚîÅm·ÝÖ¡C‡�û�;}ûÞÿýA{ذaݺusÄ€Ê%€NV<ÿòË/¿þúëo¾ùfÉ’%«V­š7o^¸hÍš5Õv³Ï:묲]ýõa=uêÔŸ~ú©qãÆ›´æ~ýú�~úé›;wnNNŽó¶Cè =÷ÜsÏ<óÌÔ©SÃg÷mž &œuÖY[¾I‡zèk¯½–äàŒŒŒ²Åb±Î�;Ïš5«°°ð£�>:ꨣ6i3šs†Û€oï:¥ÌeÇý·úÀf@—gܸqC† ™3gΖ¯*''göìÙ•@7oÞ¼²v°}ûö³fÍ K–,q¸€íV¬Y½²—ÅÔ6›ºL ¸ãŽ;oÛµkwØa‡í¾ûî;vÜe—]š5köá‡yä‘I®-55µ}ûöÕmãñ¸ DD]ºI“&%Òçž={:t¿ýöÛ`LZZZõß‘òï¹þúë¯ÃFvv¶ƒT.též|òɰqþùç?øàƒ5wG¦L™ròÉ'—ºhΜ9Ÿ}öYÐHOOß8^þ÷B™–Ò£K«D[A’”ª¥úñÇÃÆ 'œPÖ˜üüüê¿#å¤ç7ÝtSØèÙ³gÆ t(Kí´Ô®»6 ÿ´ I’”Òµk×.lL�:µ¬1“'O®þ;2qâÄgŸ}vãþ1cÆŒ;¶VñD"ƒvÄ€Jg ŽÒõêÕë®»î wß}wýúõ¯¾úê&Mš$–Ι3çÖ[o}â‰'·ëÖ­+((¨]»š³OŸ>uêÔ9æ˜c·?üððaÃFŒ¾|xu ÓÒÒ SRRî»ï¾þýûÛ?«Xb@zzúСC¯¿þz*TPPðÁ„íýöÛ¯Úþ¹@u#F)Sjjêˆ#úôé3f̘)S¦,\¸°°°°AƒíÚµÛwß}srrºwï¾nݺáÇ¿øâ‹óæÍ[µjU­âù.ªÃÆ›ñÐC¯\pAÏž=ƒ™4iÒ‚ ÒÒÒÚ·oôÑG_|ñÅ;ïl6 HJðoÿ³Ï> Û{ï½· Ib” ì±Ç£F�*ki�:u†«n›=¦XØÎÎÎQÌѪRª4‘0ÀV>Ò¼¤ùóço<,‹©P³ ¶²SN9%™añx\­€šÅDB @$ÐDB @$ÐD¢¶”/33³oß¾êDg„ ôìµ×^ÊlÐ[YË–-7è‰ÅbÊlLÁ@$ÐDB @$Ì P�ÜÜÜÇ{,lŸ}öÙ™™™j� w@ w@SuöÜsÏN�:©5Îúõë§M›¶÷ßÿ¬¬,5H†; ˆ„; ©:¿½å¥ZMf¨5OA^­�g9v•Ø$î€ h"!€ h"!€ µ•Ø~ýº"©a…ùµr×þüóÏAsÁ‚™™™å�ÅbJ PK l×»*ù±#gNþÏëÈ‘ŽŒÇãJ PËDD @$ÐDB @$ÐD¢¶Û¯³ïHjXa~­ÙSûÞ!h^rÉ%™™™*� 4°kÐ4©ayµ2ë4jÔ(h¶iÓ&++Kå’a "!€ h"!€ BlkâñxQQQðª@2RRRRSSƒW¥¨th`‘ŸŸÿK± !}6IJJJzzzÃbACA*‹šª3»ñÍ�š¦©5Ì�_Ö¯_Ûm Tª³ÜÜÜï¿ÿ~Íš5Jlžx<ž——·¢Xݺu›7ož™™©,[ÎÐ@Í–ŸŸ¿páBé3PY‚ëIpU ®-J±åÐ@ VXX¸hÑ¢‚‚¥*QpU ®-ÁF)¶�)8*�™™yå•W&Ú ÕʲeËrssoSSSKOOÚê$£¨¨(??ÿ×bA;ì ®-Á&;;[}¶„ )))�5R¨† W­Z•x›‘‘ѦM›ÚµÅÀ& . uëÖmÚ´é‚ òòòÂÎà \gÒÒ<ÕlóùM PS•œ÷9%%¥uëÖÒg`K×�àJ\OJ½Î°9%U`û4eQrãæ'3*‹))T½’·?שS'##CM€-\I‚ëI"w^½zuƒ ”e³  �íTÛ‘«“7²m2£âñ¸’@Õ+ygbýúõ¨õêÕ+@+È–0P#ÅãñÂÂÂÄÛvØAM€JQ§N�D;¸Î¸ílK €©¨èÿL¬ç)a@eÙàz²ÁÕ†M"€j¤ îI,ùÐ0€-±ÁõÄÐ[B @$ÐD¢¶Û§oû×KjÜ•³rssï½÷ÞðÝ%—\’™™©zÉ@Û©ØŽÉý H,¶~ýúF�…ïÚ´i“••¥zÉ0‘@ 4ÀvjñâÅï½÷ž:l-Ó¦M[·n�R° 34Àv$�¿ÿþû/›1cƹ瞻ÿþûoÏùúë¯|ðÁÉ“'/Z´hõêÕÍ›7ïÚµë%—\Ò­[·ˆ¾qáÂ…¯¾úê+ÅV®\ùí·ßÆb1g&Û*4@RSS;tè�h+lø·¿ýmƒÎììì?ü°yóæå|ðöÛo¿öÚkËZ:|øðk®¹¦:ïø“O>yå•W._¾Ü9ºçž{®¾úꜜœ»îºkÅŠW]uÕüùó.\øôÓO?ñÄg�uVå~ݨQ£FŽ9oÞ<•gû!€¦ê¼Òþæ9­[«5Ì3ÏüçZYûÿ_-_xá…ÓN;MU ¦»òÊ+{ôè1qâÄ;ï¼³   ì\¼xñ©§ž:mÚ´ôôô²>xî¹çî±ÇŸ~úé½÷Þûí·ß†�Mš4¹ì²ËºvíºÏ>ûTóvðä“O~ûí·ƒÝÏÏÏßÎOƒ§Ÿ~:8pmÚ´yâ‰'Âû�‚ƒÄŸþ9h¿üòË•@÷íÛ÷’K.Y´hÑñÇ?gÎÿÙ¸•Øî´hÑ¢[·nÇÿ׿þ•™™™èŸ>}úe—]VΛ6mzôÑG_{íµï¿ÿ~ãÆ�ƒž”””`%7Þxc�=‚¥Õ|Ç322²²²ºwïÞ¹sçíüX½zõå—_�Ç�:ê¨Ä_»î¼óÎãÇ�oÙ²evvö¥—^Zé_Z§N�ôôôà[z÷îíŸáfX¶l™"Ô8h`ûuÄGôïß¿dÏý÷ßï½÷VøÁ�vÚéÄO ‡zè¾ûî[ãv¼~ýúÛù¡üñÇéH6˜t¥{÷îK—.]´hQ×®]£ûöògz¡T“'O|ø”)S6^Ú Aƒ™3g.\¸ðöÛoýõ×7°fÍš &¼øâ‹“'Oþõ×_ƒž0g ÖvÎ9ç|÷Ýw‰‘ŸþùŸþô§·ß~{üøñiii_}õÕ…^øÆo$,Y²äž{îyíµ×Þ}÷݆ –³ÍëÖ­ûÃþðì³Ï&z,XðX±¾}ûÞ{ï½%3Á„àÏ>ûì PÁf 80XÉ´iÓn»í¶;ï¼ó®»îºá†þò—¿$‡yú¸qã‚o kvõêÕ=zô˜>}zâ®Q£F 2$ÉRûí·Áæ;x衇kÛu×]þùç`%wß}÷ûï¿lI¿~ý‚Δ:ùä“»ví¶ÃgH†?^vÙe‰1å×jc'N¼è¢‹öØc�Ë/¿<‹­X±â™gž=zô{ï½wÇw<üðÃ'œpÂæ��Á�ëÓ§ÏŽ;î8`À€›o¾ù—_~ önĈ3fÌ9rd°ò .¸ 1øë¯¿Êœ½Á÷=Ý»w/((*|$ì M�:58RcÇŽ çœyâ‰'‚ŸsKN¯üÉ'Ÿ…ýæ›oþú׿nù.çóÓO?ýòË/‡çs تE‹»»Ä°Y³f]}õÕÁ.ƒ�Á¾{4Ž8∥K—�œœœaÆ…K³²²#sssO=õÔ`ÂãœíÛ·Ê|68£‚sÏ•më@ü¯Î�;�;öÄO ï ,**úýïÿþûïï²Ë.É|¼iÓ¦GuÔÞ{ï46¾%%55µs±ÝvÛ­Ô._¾ü‡~èØ±ãsÏ=—è|ðÁûõëwÒI'åäätèÐ!ذÛo¿=Ìéžþù`k[µjuÊ)§œzê©lݺõÊ•+ƒ�„·ñ~ñÅûÛßÊJCçž{n˜>·hÑ"Øæï¿ÿ>±h̘1¿þúëSO=µÁGfΜyä‘G¶oßþƒ>¨[·nØÙµX˜{2$x½é¦›ÂE}úô©W¯Þ¿þõ¯D²víÚµ§�vÚøñãÃZýøã�I¦wÞyç„NÆ_qÅwÞygJJJØß­[· .¸ 8 ,5jÔG}ôòË/ׯ_?\Ú°Ø«Úi§�‚ªnÞÙòøã�»v饗Ž92ÑT 8úÁ¾›”_|1ù_`$L�:58 {ôè?ñ €C9d×]w=ÿüó׬Ysá…¦¥¥ípÑçŸÞ¨Q£Æ�'²æuëÖkøøã�¯¹æš#Ž8"8IæÎ�Û¿ÿ 2Á˜‹.º(تn¸a„ ×]wÝA||Μ9ƒΙàãÁisÎ9çl\™MÝå&Mš 0`Ñ¢Eo¿ývØ|Kß¾}ƒ5�7.øW°páÂàlùä“O‚EAOpbŸqÆáÈôôôp3­‡¯Ôƒuã�7Nœ81øg5mÚ´D0}Øa‡;~Üqǹ¬m]h€ÿãØc�½ãŽ;®¸âŠðíÏ?ÿœ““óî»ï&rÌ 5iÒ¤Y³f%“Ü ´mÛ¶¬þ«®º*hÌž={üøñµŠod>|ø'Ÿ|Ò±cÇİþóŸsæÌ™5kVÐ8pàš5kÆ�wÄG$|ðÁ+V¬˜8qb­âY n½õÖDD»�·ÞzkñâѾ7œ¬ã›o¾ ÞŽ;6ðôÓOwïÞý¢‹.J|dõêÕ§žzêO?ý¬9‘>‡?üðૃuíàKO9å”.]º„¼öèÑ#ø`82XÚ¦M›çŸ>--mÒ¤IAµóòò’œt{áÂ…'�tÒ�?þ¸×^{�1bƒ]Ûe—]&Ož¼çž{æææNŸ>½wïÞÏ=÷\Y»¿%>ýôÓ?þñ�±Xì¿ÿû¿7XtõÕWß~ûík×®ÍÏÏ?ï¼óæÍ›WòvÝ ýŒ3ÎHOO3fÌ·ŸŸ{î¹7Þxc8KÌå—_Þ³gÏ–-[í  Áëþð‡àÜ wœÃ}úô ΢vØ!ül§N�þë¿þ+œè|åÊ•{ï½wp–Θ1#øH8 8Çößÿ €ëׯ/**úÇ?þ±Á¯.6c—;ì°àõâ‹/NÐgžyæ-·Ü’ø÷©àœ ¾4üõÃý÷ߟ “ljP¨ qÌ1ÇlPçà” 6æÃ?tYÛŠ<„`C—_~yÉ™ú>ÿüóÞ½{oÒ${åŽiiiå<1qAAÁ”)SJ¦ÏáÇ{õê¶/^ü÷¿ÿ½dú:ûì³ÃÆÒ¥KçÍ›WÖ}óÍ7Ï<óLÉ©¢ƒ¯~òÉ'/¾øâĘ¿üå/¹¹¹‰··ÜrËܹsƒo,õ&îã�?>l=øàƒ%%f½¨Uüˆ�ûî»/¬Ã±Ç¬páÂ…{ì±G2µ½âŠ+‚�×*=K­än»íNxá…JÎêP‰.ºè¢¼¼¼?þñ�OQÒ AƒC=4l/[¶,üM@ò‚ýúé§ŸÎ<óÌ�gÄNMM ʶ׮]&û 6L¤ÉÁÜÿý‰ô9´ß~ûíºë®aû‡~Š“ÊÎÎîÖ­[Ø~óÍ7+k—[´h‘h§k"}»yÚi§…íwß}·ä„!Éø¡X­âßm¼tÀ€Qüú�ä  J1räÈ=z$Þ¾ð ÉOO¼åJ憭[·Þx@É0·}ûö(9SÁܹsËú¢N�:%"ã’FŒñ›ßü&l/_¾|„ a{Íš5÷Ýw_­âÉ.J]á>ûì“h¿óÎ;eíÔù矟˜Wa“Ìž=ûùçŸÛG}tYÃúõë—Xÿ­·ÞZéhúôéï½÷ÞæÕ¡| ,xæ™g6{͉"ggg—úñęӨQ£R˜8s68m¶d—KëRçÐH<µ28ÁV®\¹IÇ"333Œ˜Ç�7gΜ –vìØ±¬GbR5LÁPŠ´´´§žzê ƒš={vØsË-·téÒå”SN©›× Aƒò”œ0¤Ô;CC¥F�µŠsÌK/½ôOúSøvÚ´iá=ׯ½öZ¸¶Áƒßpà åoòeËÊZÔ¨Q£ÍÛñDúܰaæM›–5¬Y³fݺu 9kÖ¬ùóçÇb±J¬"‘?ä�CJPò~ùrê°±^x!œC£wïÞ‰ÛØ+eÍ›zælpÚD·Ëœ®kÖ¬Ùà¾ìògBðïô­·ÞZ·n]÷îÝz衞={–ðøã�» mEh€ÿ¸ûî»ËZ”ŸŸÿÊ+¯„í£�>:œW Ø4hÐॗ^ÚÿýÃÙœãñø9眳Ë.»tîÜy«o[jjjòÖ¯_¿_qÊ)§$èÏ>û,l„ó;†š““Sþ6ž¨aËMŸ>=lT8%÷~ûíеŠoÈ­Ü:Q‡‰'¶jÕªüÁ?ù0™5?ðÀá|ÍåØ`†�Ê=s68m¢Ûå l굊oØ?øàƒóòò¾ûî»c�=öÄO zóذu  þ£Y³fe- þ–xªFÓ¦M+÷ÿ²Õ\ø ¼nݺ…aÜš5krrr>øàƒÄŒÉ5Â&Í^�Ю]»† þòË/A;|@\­â "?ýö·¿­ú}ùî»ïÂÆÚµk˹Ûn»%ÚË—/¯ÜÍHÔ!ø!±äUâš[µjµU*\õ»¼åöÛo¿±cÇöêÕ+œ¬ü…^˜¸ôÒK‹÷-uéÒ%Oš4©€–Ë–- ƒ„„„£Ž:ªxßF$#GŽŒ �½+·ß~ûСCïšÇ�?gΜ‚?õÔS (™ƒ!z›üÇ�Ò“N:)ÿ”:uê<üðÃÓ§O�ÍìììB[&$$¼ûî»-Z´(Êj#cFïtÍEy¹=nݺuá` Í›7�øþô§?E\{íµá3ßvjÞ¼y—^zéÕW_]¼ïꬳÎJLL ã7Þx£€ç+Fî�>óÌ3«U«V¼o#’‡�7Þ|óÍ´|ûí·Ÿ}öÙ‹/¾ø÷®9Ø´¾}û°�_~ùeðÒW]uUÉÑÛ䢚v5’ƤI“v¼×~¿ýöûøã�ÑX6mÚ4þ|ÝÝáiZ”œnݺµmÛV(s233_ýõ0¾ð %Ê™°n•¸†Ô©SçÃ?<âˆ#Ö­[WpËÈÄóæÍÛqîÏ?ÿ‰ ¨0îY£G�ßÛ½÷Þÿ·sçÎpÀ¬Y³‚xöìÙÁUÒÈ‘#w|`ûüùóO8ᄃ>øÄO,ÞwÕ°aÃ+¯¼ò©§ž âÅ‹�;¶G�;6ËÉÉ öT¥mÏõéß¿ÿvsssswÝ¥—^z×]w…Hx饗ڵkwã�7îØìý÷ß¿ä’K‚7ººPÁæÔ®]û·ß~ âÏ>ûìúë¯üñÇ#؈¯¿þúŒ3θ袋ößÿ’9¢·É…Š ¦±«;¯·nÝúÎ;ïôêÕkÇ£¥k×®ï½÷^¥]¯‰6w@"8YôÿÙ½ó 4 oò]¸paÛï¿ÿþ£F�Š��/¸Yäÿ¿ùæ›/¿ü2ÿ¬¥K—öêÕ«V­Zá¯+W®ÜqñôôôH¼Ó uþ{¨w:Îrþ5pÃõ®ÊßÁâÿú׿‚ wïÞÛÝÊzß}÷EâÑ£GwêÔéÃ?Œ ø»jÕª{ï½÷ÐC]·nÝ�!Cvõž·nݺۻìŸÿügëÖ­Ãøïÿ{þ-�1bDøˆÂàÍtÐAÛÍÍÿ÷ƒ´´´Ýx�7¾æšk"¿ÞtÓMçž{î·ß~ÉêÌ™3ûôéÓ£G�6mÚìøÈÊüðØn¬äªU«Þyç�‘_ܵk׉'F.H/^¼Ü±Ç[£F�x`Wû}W{6²v5<÷®Žœ?²É…ÞòŸ|ŒßyðÒa¼\$]AÇŒi3hРÌÌÌ×¼~ýúJÛ°v[äžâh âÚ²eK8ŽðÇœ››[¤{õŽ?þøgžyæÊ+¯, Íå—_þæ›oVÚVM;í´Óî¿ÿþ#�Û­?˜‰§M›¼Äv ›”C;–×÷Þ{ï0˜1cƲeË"¾Pff楗^:wîÜ .¸`»"r gÏžW_}ud„ßéÓ§Ÿ~ú鉉‰ 4X·n]Xï«R¥Ê»ï¾ÛªU«]½¥ÿþ÷¿ù«™¿KRRÒ{ï½×­[·E‹-X° W¯^¯¾újþ? üôÓO7ÜpCüå/¹ãŽ;v\Ã?ü‰§N�º{oã�øòË/¿ÿþûð×w¶ Þ[�:uV®\–qSRRF�¹�w§/:{öìíuýõ×�?~ܸq᯶©V­Z½zõÖ¬YŽk×®=f̘È~ ­]»võêÕ;!;=r‚Æ;îú�œüïm·7yÅŠ‘x§ÿ=ðË/¿Dâß~û­yóæùç}ôÑᓃÍvw�Ÿ ¸óÎ;i3gΜ~ýú=÷Üsùïÿꫯ¦L™ÿøÇ?ôx{Då»ï¾[ˆž ;¾Vøoß¾AG)'”9ÙÙÙ“'OŽ|çíøŸeÀ‘››SªS§NËÇßÿý•W^ùÓO?UÚö¯ý3gÎlß¾ýv½]9øàƒ·lÙ2eÊ”.ÛìØ E‹6løê«¯‚8##cܸqÏ>ûìË/¿¼èc�=Ö¯_¿×_=�#¸Êظqc^^Þ!‡¬súôé/¾øâóÏ?YÕìÙ³6l˜““lcp…òóÏ?«½÷Þ{#O ÖY³fÍÊ•+תU+>>>h0vìØþýûG*}?þøc0+ÈØ^{íj�:ê¨3füòË/éééÇ_½zu°þÍ›7/^¼x̘1½{÷4hÐC=´Ó‹ ÓN;mëÖ­Áۈܬ,¾~ýúpHè–-[+9î¸ãÂYA›~øáÕW_ ÞR°¥‘·¬!Xy°Hsž_�Š .¸ ÈÌܹsƒí}ÿý÷«V­¼P°E/¼ðÂW\¬ùᇲ”¿™––ìåÏ>ûì¶Ûn‹ æ°bÅŠE‹íƒäWÙ¦ˆï!ÈäŸÿüçiÓ¦å\8333H{xÃï‰'ž¼±¦M›Fæ³¾ûî»à6lXdb0¥nݺÁ"ÉÉÉáÞ Þó¹çžû믿C¤YVVV°xxÿo§N�>øàƒÈ]ö•¶UŠ¿þúë›nº)RÉ ve°-‰ÛT«V-8Z‚D�928º"{í›o¾ ^:Ìgp$¿C† ŽÒHƒà {'عa³ÝØäð²:Hø‚ "‡ÊYg�®‘«V­ºöÚk#ÇFõêÕ·{¨àþûïd,<º‚lrÇw„cn;.8PÃÂþóŸ`«ƒC=80^yå•k®¹&Xêž{î 2SÂÝ‹šXDL©fˆò!èÚ"ÏH :ÿì@Y|Gþ§)øÊ,ú¹UÙÙÙù‡WnÕªUÑïyòÉ'ï¾ûîü¦ˆÆ�øá‡íÛ·/t%¹¹¹={ö Zp{ß[o½õôÓOO›6-++«Y³fgœqF¿~ý‚ ˜uÕUWÅÇÇŸ}öÙÇ{lä�¿üò˽{÷ÞéªZ´h1þü¥K—nWÝËoÒ¤IG}t‡ò.ó›0aBþrùŒ3‚�?~üÂ… W¯^¤´^½zÁÅû©§žzÑE:†op¥ÿÜsÏ}úé§Ë–- .�öÞ{ïC9äœsÎ9ÿüó#Ï ¬´íNÛ°|¹SAƒ�Úíà Øä×^{mâĉÁ{ÈÌÌ ^(|ÿ—^zid�“ˆ§žzêoû[k2dÈn<5ñ£�>zõÕW§L™²jÕªp‹Ž<òÈà tíÚu»–ýë_ƒãaWëÙnï‚u¾ôÒKŸþùŠ+rrrêׯØa‡]pÁÝ»wÏ_À  IØéjï»ï¾þýûÿãÿ0`@‡Vp”vìØq§ ‚#6©f76ù–[nyýõ׃½“bƒ :wîûì3é¢"P€€âñ¯ýë’K.¹í¶Ûv:÷ÏþóÞ{ïÆ?ÿü³tQ(@@1ÈÍÍ�1cÆC=´«111-[¶ ãªU«Ê�1 )9'%Ìl›¸I(sÒ+eΫ¼"Œ{&N«’hˆ.J½Ÿ¿ßÃo íYvPllìÇ\p› 6„AÇŽeŒŠ@ pŠÎüq‹- ‚ÎÛH�4@!ª$&ÜÖçlyàzóÍ7·lÙR¯^½W^yE6¨   ê–/_~ç�w¶nÝúí·ßŽŒ 垇@tÍ�;÷ä“OÞ¼yóo¼Ñ®]; ¡âp4DËÆ�Ÿyæ™ûî»oóæÍÁ¯�:uºâŠ+zè¡äädÉ¡"P€(D^^^FfV'&ÄÇÄÄÈ …š1cÆ3Ï<óÆolذ!21''ç¹çž›0aÂøñã›6m*K”{ Ð…ÈÈÌz`Øè0¾­ÏÙU䀊lѲՅ7ª¾¨€™)))Ò@E°iÓ¦ƒ>¸U«VË–-ûú믧N�š››Κ7oÞùçŸ?yòäØXäRÎ)@¿Có“®þƒkÈËË“F*‚#·‰üºdÉ’»îºëå—_�:uê˜1cÎ>ûl‰¢|ó7ˆº¦M›¾ôÒK�>úhdÊo¼!-”{ ÐPBn¸á†®]»†ñ×_-!”{ ÐPrúöí«W¯– Ê=h(9GqDT®\Y6(÷  äÔ­[7 4h ”{qRÝÂ�‡Þh¿“$ veË–-a¹Ê1hàwHi\¯�R$ veæÌ™apÞyçÉåž!8 äŒ5*øÙ®]»ÓO?]6(÷  x¬Zµjܸq+V¬ØUƒ… >ûì³ñññ/¼ðBl¬ÒåŸ!8 ë(+Wîrh»H,!@™–••eK£dÍš5p@ZZZ\\\ß¾}ÿñ�$%%åo�ššzöÙg§§§>ü°Ãs4R(@ÖQÆUîrX;yʇéÓ§KB”,[¶,---²³³}† þºlÙ²¶ âZµjuéÒåÑG=ûì³ãâTä¨@•5ÚÕ¬¹¿<”K—ÊeH“&M$� ¢sçÎ’mÏ?ÿüí·ßþå—_._¾<;;»víÚuëÖmÞ¼yÇŽ�øLŤ ÅfßmäB Ð…ÈÎÎþæ›oÂøÐCõ¯R@Ù’��н{wyò Pò”Q ‘��=uêÔ0îØ±£4P¶ÄÄÄ$&&ʰGz€¨P€ *ü#9åÖ’%K m“��]”U¥¤¤È'ü^ Д[Gydq­*//O>à÷2Q¡ @T(@ ÐD…4Q'”WS¦L)´MÆ % ¢D ‰‰‰}ûö�ÄP†4mÚ´Ð6Mš4‘(ˆh€BÄÄÄT©RE~/c@ ÐD…4Qa h€B¤§§¿ð a|ÅW ˆ  —‘‘! ¿—4%§AƒMš4‘Êœôôôäää0Žaw@‘1 ˆ w@Srnõ]ͯ~“Êœœ¬ŒÙß/ã_ž\9>QNJÀ[W# PÖ)@@ù‘——÷Úk¯½øâ‹kÖ¬Ù²eKrròùçŸå•WÖ©SGr(y ÐPNdddôìÙ3//oÈ�!ûï¿0åã�?>묳þùϾùæ›§žzªQÂŒ åÄ Aƒ²²²>øàƒ°ú8餓úôé³qãÆóÏ?åÊ•RD S€€rbøðáŸ}öÙW\‘â1ÇüÏÓ56mÚ4fÌ)¢„)@@9±víÚììì—^z)55521999 6mÚ$E”0c@°‡m^»blj‹-ÚqbJJŠtÀï•——·qãFyHJJЉ‰)÷›yç�wÞÿý={öÌÿÈÁ%K–„A›6m ”0h€BÄÄT®µO«H,!ÅnÜmçï8±ùm;¿~–.ø½6nÜØ§Oy6lXäFàrì¶m¶›8iÒ¤àç>ûìsâ‰':(a Ð…ˆ�‹kÜñy Ä¤¦¦>ýôÓãÆ�›?þ† jÖ¬yà�žsÎ9—_~y•*U~תV®\9jÔ¨øøøaÆ?å–¦ P!L�:µbnxçÎ�÷ø{˜8qb�=† Ö³gÏB¿÷Þ{—^zéúõë»ví:tèÐ&MšüòË/ƒîׯßã�?þÑGµhÑ¢ˆ¯»råÊóÏ?¿F�/¿ü²ÛŸÙ#  Z¶lÙ2xðà»ï¾;##£(ƒqôÑGgŸ}vNNN¯^½^zé¥pÜê#Ž8âÜsÏ=óÌ3ƒ¹]ºt™8qâ¾ûî[ÀJÖ¯_ÜqÇ+Y°`ÁÞ{ï=räÈc�=Ö¾`�P€¨@:tèW!*BÙÙÙÓ¦M+ù×ÍËË[·nÝÚµkgΜùÉ'ŸŒ5jåÊ•E\vÍš5—\rINNNíÚµŸzê©üOM ÇÐHIIYºti¯^½Âa�w¥fÍšßÿ}øfÞ~ûíSO=õè£�~á…š4iâ#@ S€(ìÔ!7gýÒ_þ÷+¼É¾1±žC”aqqqŽªáÇ÷îݻҶ’qÛ¶m/ºè¢`ÊÚµk‹²ìÝwß�šš—^zi�5¶›Û¨Q£îÝ»�5jòäÉo½õÖyç�Wè cbb‚f‹-ºõÖ[;uêôßÿþ·Y³fö%ÚçH@Árs²—ýð¿XNj¸Oeh€âvê#wœøôù‡É P�yæ™3gάY³fƒ bccƒ)ï¼óNQ Ðiii/¾øb_qÅ;mÓ»wïQ£FÁàÁƒ‹R€]|ñÅ·ÝvÛªU«.»ì² &ØG”$hö°ê{7ÜqbJJŠÌeÑ^ÛìÆ‚£G�NOO‚Zµjµk×n§m"Tœ2eʯ¿þºÏ>ûeÍ�5jÖ¬Ù¢E‹>ÿüóŸþ¹mÛ¶v%&V `�ûôÓOà}ûö»jS»vípç¼¼¼ÿûßÛÍ�2eJ0w¿ýö›>}úv³êׯ3gΔjJ’4ìy3f̃ýöÛ¯€f­Zµ ƒo¿ýv»Yÿú׿–-[6oÞ¼—_~y»Y[¶l ƒÚµkK5%Iö°ÜÜÜ „qÁ5âÈÜosNNN~6oÞüâ‹/Î?=//oéÒ¥APµjÕŽ;Ê6%Iö°Å‹gdd„qÁCHשS' –,Y²Ý¬3Î8£jÕª}ôÑ!‡’ú—_~™––×\s�; )aBXŠLž<ùÑG}ýõ׫T©²‹O™2¥G�kÖ¬‰L¹øâ‹GŒ!±¥ÜòåË#qõêÕ h™»jÕªœœœÊ•+Gf�{î¹#GŽìÑ£Ç|ТE‹Èô'žx"øyÜqÇ 4Hª)a ХȧŸ~úî»ï®\¹r÷žùþÉ'Ÿä¯>^}õÕaÆ%&&–’ |´Æ¨¶ÉµìhÊœôÌœ ãÛ’²ª$T–€’ðö°=öÒç—~ „mÚ´)ÇÇÇÐ2!!! rssׯ_ŸÿŽæ˜˜˜‘#G4訣Ž:ýôÓ;w˜øöÛo�?¾ÿþwÝuWÁk†hP€.?úö훚šºzõê úšpb^^žÌ”r»Q€¤§§o77..nÀ€7ÝtÓçŸ>gΜœœœ^½z½öÚk5jÔ�döèò£nݺƒãH€ÒoË–-‘86¶ Ç¶å¿Ý02lôvªU«vê6Ëç!„°‡å¿¯¹`YYY‘x÷$%ÉÐ…�ÄÅ^ÝmÿH,!»jÕª±efff$6°¥Ÿ4@!bccÔª*DOrrr[nݺ5 bbbªW¯.u”r Й6mÚ›o¾9cÆŒ9sæ¬_¿~ãÆ� �7>ꨣzôèqúé§ŸóÒ¿«W¯:tè¸qãæÎ�»iÓ¦úõë}ôÑW]uÕqÇg”Íš5‹Ä¹¹¹´LKK ƒ:uêÿüóÃÊÈÊÊ:tèÍ7ßœ‘‘ñÅ_Üxã�Ï?ÿün¬võêÕkÖ¬)´ÙüùóK”uY9/Møß#¹÷q-ã+Ë Åî¨£Ž Ð³gÏÞU›ð¿óø]»v’Fé§½K÷ÝwßòåË—-[6`À€íÿüç?ݺu?~ü–-[† òàƒ–έ¨Y³æ¤I“Z·n™ÿ·¿ýmß}÷íÞ½{nnî°aÃ.ºè¢.]ºüÞ5?óÌ3÷Üs�ㄊ /¯ÒÊu[#1DÃqÇ÷Ì3ÏÁŒ3vÕfÖ¬YÙÙÙa|üñÇK¥Ÿô.5kÖìÓO?ÝÕÜØØØk®¹füøñAüÝwߕڭxà�òWŸ#N;í´>}ú<÷ÜsA|x\wÝu2F™ ]ˆÜÜÜ1cƼóÎ;ãÇ�ŸÝ·{ì±›nº©ˆÏ®)ÊpÒõêÕ[²dIBBB¡- h“’’rà�þøã�999ß}÷݉'žø»6ªoß¾çž{n¡ÍæÏŸß£G@¡n¹å–#Fdgg?úè£}ûö­U«Vþ¹Ÿ}öY8ô�اOé¢LP€.ÈÛo¿=pàÀY³fýÁõôëׯk×®¹¹¹7:tè³Ï>ûá‡6j﬈еk×.Jõ¹P-[¶üñÇ+å{|jÑÕÛÆA”i Ÿ:{'SO{Df€â’““³uëÿ>XhãÆ�7nݺõý÷ßë­·¦¦¦^{íµ¯¼òJdÖo¿ýÖ¯_¿ HJJ9rd\œ²eƒ#u—n¼ñÆÇ{,òk‹-Ž=öØ8 M›6­ZµªW¯Þ·ß~{ 'eU tP¡Í4hü ÖŸ’’R2Û˜çyj@Å–R¯ÆÎ¦¦È åXäv¶4J233úé§ôôôµk×Ξ=û�wÞ‰üWýí·ß>kÖ¬Î�;7iÒ$)))ø–ƒò»å–[òòòú÷ï?bĈU«VõíÛ·~ýú3fÌxðÁ,Xиqã±cÇpÀŽdÊ è�7n\¤ú|Ê)§ÜsÏ=‡zèvm*W®\Ö»Úyóæ…AÐßÙéPL›6M¢jùòå‡rÈNgmÞ¼yÈ6᯼ûî»wlvë­·öìÙ3h6~üø‹/¾8==½víÚmÚ´ùë_ÿzÕUWU«VM’)C wî�7ÞƒË/¿ü…^(»òÉ'ŸœuÖY;�5kÖ¬Ÿþ9âããw,¯°RRRþø?�·lÙò‘G Fy ½s©©©apÆgìªMVVVéß�^xaWè{ï½7 N9唚5kÚéP¾uîÜY€+;Õ¢E‹0?~ü®Ú|üñÇ¥C>üðÃwß}wÇéÆ {óÍ7+mH¤ÿþö8Pìܽs\pÁSO=O?ýtRRÒM7ÝT§N�ÈÜY³fÝÿý¯½öZøëÖ­[³³³Kí³G/»ì²jÕª�tÒIá¯k×®4hУ�>þÚ¿ão@ÁbcÿïU±þl”5IIIÆ “‡ ’%OzçŽ<òÈ+¯¼òùçŸÏËË4hÐã�?Þ¡C‡† nذaöìÙK—.ÍßxƌիW¯S§NµjÕî¼óÎÞ½{—ªm ÞóÉ'Ÿ|à�¶hÑbÅŠÁ»Ýºuk8ë‚ .0`@‰½“é Îߨt_GeQëæÿ|/ÁW_É{ÐG! @ñЉ‰INN–`�P€Þ¥¡C‡Ö¨Qã‰'žÈÍÍݺuëÔ©S·kСC‡*Uª|µíú$33sÅŠAðÐC•†tåÊ•srr‚/˜gŸ}öºë® Þÿ�ÛDÄÇÇßsÏ=·ß~» D‰ô.ÅÆÆ>ú裗]vÙ°aÃ>ùä“_ý5'''99¹E‹�:uêÑ£ÇñÇ¿uëÖ‡zèý÷ßÿå—_6nÜXiÛx¥áÍoãÅ_ ~^yå•§œrJ°!ãÆ�[¼xqåÊ•[¶lÙ­[·«¯¾zß}ÝŒ D‘t!:è ÁƒïjnµjÕnSÚÞö°m¸I“&�nco%I ¹¹¹«V­ ãúõëÇz!@Ñ(@—"111‘Ÿ@é‘••õᇆñ%—\’˜˜('E¡]ŠôèÑ#--­qãÆRå^øó-Z´h§ÓSRR$ (s K‘öíÛ?þøãòÁÙgŸý»ÚçååIPæÉ€¨P€ * ˆ h¢B€¨ˆ“€’7zôè�NïØ±£äå†4ÀаaÃ�NOII‘ Ü0Qáh€Â:ʸ¸N8!K@©¤¢råÊþ`7‚€¨P€ * ˆ c@SrÚ·oß¶m[y ÌÉÌÌ=ztŸ}öÙ rP Ð…ÈÍÍ�={v$–J¿´´´Ç|ìØ±Á•lNNÎþûïÿÀì·ß~2C S€¦ä´ûÇ•êL“Ê–¼§.’Ê–ï¿ÿ¾{÷îíÛ·;vl³fÍ‚)üñÉ'ŸøàƒAð믿J%L <ËÍÍMMM•‡:uêÄÆ–ÿÁÞxã�éÓ§ßpà �7οíÝ»wŸ{ýúõ½zõúä“OÎ9çœ#Ž8â /œ4iÒ)§œ2oÞ¼.]ºüòË/;]våÊ•aðÈ#� :4)))ˆƒŸ¯¼òJ•*U‚Õ.\¸Ð¡„)@@±ÉËËKKK›7oÞØ±cÿú׿¶hÑâöÛoÏÈÈ(ʲkÖ¬¹ä’Krrrj×®ýÔSOÅÄÄDfÅÇÇ6,ø¹téÒ^½zítñH�»sçÎùGê¨Y³æi§�¶iÓ¦;î¸Ã¢„‚ŠÍðáÃ{÷î]i[ɸmÛ¶]tQ0eíÚµEYöî»ïNMM ‚K/½´F�ÛÍmÔ¨Q÷îÝG�5yòä·Þzë¼óÎÛ®A¤èܵk×ífí¿ÿþÁÏwÞyç¹çž ’¡ ÅæÌ3Ïœ9sfÍš54hû?üóÎ;E)@§¥¥½øâ‹a|ÅWì´MïÞ½G�ƒÞ±]§N�0Øq�èÚµk?³³³¿ùæ›ã�?Þn¢Ä(@@±Ùk›ÝXpôèÑéééAP«V­víÚí´MçÎ�Ã`Ê”)¿þúë>ûì“nÓ¦MàzõêÛ-˜��«V­²�(I Ð@…tÉcEl¸ðÞ²@ øôÓOà}ûö»jS»ví&Mš,]º4//ïßÿþ÷UW]•nÇŽà ###111ÿ¬ }ì^qv›4P!%×-bÔ””àKzýúõá¯5kÖÌÿ(.3f̃ýöÛ¯€f­ZµZºti|ûí·Û �>úèØØØÜÜÜÔÔÔF�埵eË–¢¬Š�4@!222üñ0¾í¶Ûò?GŠEnnî‚ Â8¯yW"s§OŸ¾Ý¬úõë{ì±&L˜5kÖvè°f}ðÁï»ï¾²MIŠ•س/^œ‘‘Æ�’yÒà’%Kvœ{ë­·??øàƒí¦O˜0!ø9`À©¦„)@À¶|ùòH¼ã#ó‹Ì]µjUNNÎvsO:餋/¾ø¹çž‹ÜOxÿý÷¿ù替üå/=zxÐ%Ͱ‡mÚ´)ÇÇÇÐ2!!! rssׯ_¿ãx/¾øbÕªU�>úèë®»nŸ}öùî»ïFŒqÿý÷ßqÇòLÉS€€=l7 Ð�ôôô‹?÷ÜssæÌ™2eʲeËŽ8âˆ;ï¼³àq¥!z )9?Õ¾¯mÝÊò@sOßJYy•&gTêr»d%[¶l‰Ä±±�š›——‰#ÃFïhÿm$–=Îа‡å¿¯¹`YYY‘¸J•*RG)§ {XµjÕŠØ2333רQCê(å `KNN.bË­[·†ALLLõêÕ¥ŽRNö°fÍšEâÜÜÜZ¦¥¥…A�:u -JÇ(ìaM›6���ã 6Ð2R€Þo¿ýä�Ò/N é(c+�Ü2®ÒÉ'ÿO§Û øU®\¹M›6Ó§OâÔÔÔZ.[¶,  )TR€ mQZnQš5¨[©Aƒ Xºti¡�SRR$€ßë¨£Ž Ð³gÏÞU›ÌÌÌ9sæ„q»ví$�ÒO¨Ðš?±©¨MŸh^Ćyyy ÀïuÜqÇ=óÌ3A0cÆŒ]µ™5kVvvvüñ’Fég hØóN;í´¤¤¤ ˜;wî‚ vÚfܸqaкuëŽ;J¥Ÿ4ìyU«V=çœsÂxäÈ‘;m3|øð0¸îºëdŒ2AJ…[n¹%.î†Ì}ôÑG×­[·ÝÜÏ>û,úÀìÓ§�tQ&(@@´ääälݺ5Œ7nÜXpãÖ­[ßÿýA�ššzíµ×æŸõÛo¿õë×/’’’FŽÖ©¡ôs¤@±ÉÌÌüé§ŸÒÓÓ×®];{öìwÞygõêÕá¬Ûo¿}Ö¬Y�;wnÒ¤IRRRð³AƒÛ-~Ë-·äååõïßĈ«V­êÛ·oýúõg̘ñàƒ.X° qãÆcÇŽ=à€䙲B¨Ð^W£Ð6ÙyC¾Í¬tDß ¾æškå €]Y¾|ù!‡²ÓY›7o²MøëÀ�ï¾ûî›Ýzë­={ö š�?þâ‹/NOO¯]»v›6mþú׿^uÕUÕªU“dÊh BKÙ«ð‘ˆÒ³òjU‰©T«V7kÖ¬J•*òÀ.¯4SRòòòþàJZ¶lùÈ#�H&å€1 ˆ h¢ÂåY�:u"Á«ày�(y ÐåYlllݺuåØ3]� äü§å}³š6•ÊœÌÌÌ™sÇTš93ˆG����N?çœs$ î€ *Ü Pˆ„„„óÎ;O~/w@ ÐD…4Qa h€ÿ³zõê¢7^´hQѧ¤¤H/PÑ(@üŸ~ýúEiÍyyyÒ T4†à * ˆ h¢B€¨P€ʤ˜˜˜ü¿zô7P\rss èmø]⤠âé§ŸÞqbVVÖþóŸ0îÖ­[|||Ÿzê©2{Pllìv§î‘Óu€?";;»€Þ†ßEàÿÔ«Wolj™™™Õ«Wãºuë&$$„qJJŠŒÀœŸgìᯛ6mªV­š´\ПDâ Ÿqô¡x”UIII‘xÆ Fáþ¸ ' ú“�ö3ìh ¬Ê_ÊÊÊZ¶l™4ðG}HГýIdJrr²´ü†àʪ*UªÄÇÇGJE7n\°`Arrr�5âââ Û Qnnnvvö¦M›6lØ�¿úô0‰‰‰òóG(@"8gmÕªU$–(=bbb5jô믿Fn|ÎÊÊJÝFr€béa ý)@ÖQÆÅuìØQ tªV­Ú>ûì“¿ ðÇÅÄÄ}‹G›þq ДœnݺµmÛV(^a zùòåùÿq`·ÅÇÇ7jÔHõ¹X(@e^µjÕZ´h‘‘‘±aÆ�7fffÊ ð{%$$$%%%'''&&y£¸(@åALLL•mêÕ«————››kP èHll¬¢s4(@";;ûÛo¿ ãN�:ÅÅé9 ´‹‰‰©\¹²<ìqÊ(…ÈÎÎþ÷¿ÿÆ:tP€(¢X)  ˆ h¢B€¨P€ * ˆ h¢B€¨P€ * ˆŠ8)(Xbbâõ×_‰% ˆ  S«V-yø½ Á@T(@†à º222"ñüùó%€r/,}¬R€&º–,Y‰{ôè!!T(K–,9øàƒ+ìæ‚ƒèZ·n�$PaUðú˜4ѵaÃI Âªàõ1Cp]�:uŠÄo½õV›6mv{U—]vÙ·ß~¬ðå—_Þ³+)¯ë‘œ]™?~d™1cÆ´lÙÒG›2ª¸>V6°,¾½’yõh¼J1®ó�¯j÷Öà{ÄÐîÙw¨܃ >Pÿ`u€å ÜíÅgΜyÞyç…qþúX¤Mt%''Gâ6mÚ´mÛv·WU½zõðç_Iy]�äEpÆ\,ë�=¢x?6°l½½’yõh¼J1®ó�¯ê�¯Á÷ˆþ¡Ânà|‡:ÀRÒêõNu€e´,–w’¿>V‚€¨P€ * ˆ h¢ÂC)3.»ì².]º¤¤¤ìñ•”×õHèHm`9~{%óêÑx•b\ç_•ïýƒ ,‹ïP¨Ô–û}ç$°üu€¥ªÔþq1yyy²@ôüüóÏíÚµ ãŸ~úÉ#�qà{DN} €°â0Q¡ @T(@ ÐD…4Q'DUݺu‰%‡1¾Gô�:ÀŠ#&//Ï@±3Q¡ @T(@ ÐD…4Q¡ @T(@ ÐD…4Q¡ @T(@ ÐDEœ%ÙÙÙ_ýõŒ3ÒÒÒêի׺uë#�<2&&Ff€riÁ‚ÿøÇ?Ú·oýõ×q‘ôôô)S¦Ìš5kÆ �5:ðÀ>ø`™tq�M›6}ñÅÁënÙ²¥iÓ¦;v<à€ì@øí·ß&Nœ¸xñ⬬¬fÍšvØa)))¥9à пœœœ'žx⡇Z¹reðémÒ¤ÉÌ™3.\زeË»îºë’K.‘"*ÈÄ/¿ü|GŒ1";;{àÀ�EYdëÖ­ÿüç?Ÿ|òÉàòã�CÙ{ï½§M›¶|ùò:ÓO9åY*l—––6`À€^x!//ïÐC­V­Úwß}—ššzÌ1Ç—™‡~¸�TØ.nÉ’%·ß~û›o¾YµjÕ`ñ`Ê·ß~»yóæ“O>ù±ÇÛo¿ýJgžc‚­u´QŒÖ¯_æ™gNœ8±N�:ï¼óN—.]‚‰Áa6|øð«®º*++ëÊ+¯:thl¬á_(«_Hwß}·œZ¸paðñÊ+¯ßᔢ|SW§žzêO?ýÔ¢E‹Q£Fµoß¾Ò¶ÿ{øá‡ƒ+Š˜˜˜�ÛH/P»¸3fœqÆ¿þú롇úæ›oî»ï¾ÁÄÍ›7Ë>ùä“ O?ýtŸ>}ì vqŸ}öÙ¹çžûÛo¿�rÊ)/¿ür½zõ‚‰©©©×\sÍÛo¿�œœüÚk¯�~úé¥0Û•UR(Fééé'œp—_~|äþýï{ì±áôà×:4hÐàý÷ßÿþûï·lÙÒ­[7é¢L|!ýýï¿òÊ+ƒã6777˜Òe™`ÅŠ7ß|󫯾ڬY³U«VWáôB¿)Ö®]{Ì1ÇÌ™3§Zµj“&MjÛ¶m8=66öè£�ÎÊÊ &~þùçuëÖ=ì°Ãä¨P]ܼyó‚«ÈàÕ6l´lÒ¤I8=!!á”SN æN›6íÃ?<ä�CJí]~€..J]Ü”)SN>ùä�7xà�Ÿ|òI­ZµÂéÁ›9묳&Nœ8wîÜ1cÆm5jTÚrî.TŠÓM7Ýôßÿþ7Î;ï¼à3¹ÝÜ>}útèÐ!~øá±cÇJ¥ü éêmöÚk¯R>”{Dffæ=÷ÜóñÇ'6C† )ú‚½zõZ°`AüíoÛñêâÎ;ï ®I‚àúë¯ÿî»ïä¨8]\VVVp!¹víÚ ¾ë®»êÖ­»]ƒ‡z¨jÕª¹¹¹]tÑ’%Kì& âtqiiiçŸþÖ­[ƒøÁ ZæŸ÷øã�ÇÄÄ Î:ë¬M›6•¶œ+@Sl¦M›ùÜ^{íµ;6> ×]w]ß|óÍ‘ÿq€òô…@ѬY³úõë‡qøï“E1vìØqãÆ…çEÁ¥ËŽ ªU«vÕUWUÚö¿œÁù’<§‹{æ™g‚‹Ê HJJêÝ»÷Ž‹7jÔè¼óÎ ‚ 6Üu×]vPqº¸{ï½wéÒ¥AЪU«“O>yÇÅ;vìø§?ý©Ò¶AByä‘Ò–shŠÍ<)Þ°aÃÎ�;ï´Í™gž÷?�¾œ7oÞðáÃ%�rö…@ÅTô‡[ 4( ?üðÆ�ï´Í9çœ&L?~¼ô¡‹ËÉÉyðÁÃø´ÓNKLL,xñW^y%¸¨´w€ŠÐÅ¥¥¥ :4Œ{ö칫wYüá‡^·n]éʳC�b±qãÆ1cÆ„ñŸþô§˜˜˜�6Ûk¯½:è 01b„¼Qξ� sæÌ + D•±£víÚÕ©SÇùP¡º¸O?ýtùòå….¹ØÌÍÍ}íµ×¤¨]Ü[o½•žž^èâ‘Y›6mŠÔèJ UŠÇW_}•‘‘Æ|p-#s'Mšùø”{_|ñÅŽgD;Õ±cÇ0."§X帋+ââÉÉÉ-Z´ã‘#GJ;Pº¸".~ÀT©R¥tö� Ð�©S§FâÖ­[вM›6a�››;yòd©œ/íê|iýúõÓ§O—: Üwq»±øìٳ׬Y#ó@¹ïâ"‹ïµ×^õêÕÛÕ²qqq‘G#Nš4)&·”P€¦xDþ¡Ò¶qÓ h™îŒ3¤p¾ä| ¨È]\^^Þ7ß|N©Q£Frrr÷': ÜwqkÖ¬Y¸paQ^:ƒÍ›7/X° ô$Pšâ±lÙ²HܰaÃZæŸûóÏ?KPÑΗâãã÷Þ{oçK€..ìâÖ¯_¿iÓ¦pJƒ ~!=$P¡º¸¢ÜJs©MñHKK‹Ä5jÔ( eþ¹k×®•: "ÈÍÍݰaCW¯^½àÆÎ—€ ÕÅýrR T´.®|ô� Ð�üŸ‡È�ç;•nä P¾­[·.2_Á'KΗ€ŠÖÅýrR T´.®|ô� Ð�-[¶Dâ„„„"~6oÞ,u€“%çK@Eîâô�€.®|÷� Ð�jÕªE⬬¬Z柛)'KΗ€ ØÅé!]\ùî! )III‘8==½€–ùçæ_ ÀÉ’ó% vqzH@W¾{HhŠG£F�"qþÿØÑÖ­[#qýúõ¥¨ò?3=ÿé�ó%@WôËI=$PѺ¸òÑC*@S<öÛo¿H¼jÕªZæŸ{ÀHPÑΗÒÓÓׯ_ï| ÐÅ…]\õêÕ#–‚/'õ�@EëâZ¶l[Ö{HhŠG»ví"ñòåË h¹lÙ²�.à|ÉùP1»¸H°nݺ‚o0ÔCª‹KLLlÙ²eQ^:ÿâU«VÝwß}KO )Ç|$ž7o^-#scbbò/à|i»¹ÉÉɇz¨Ô律Û�Å8à€† Êø ì&99¹wïÞ’T(}ûö ƒ‰'¦¦¦î´Í[o½-[¶Œ\ê”û..²øØ±c#%˜]-~ÜqÇtÐArT„..!!¡OŸ>aüÎ;ïìêF¿ð #ëRBšbÓºuëk®¹&ŒŸzê©�¶yòÉ'Ã`À€III’”¿ýö[$.øÁ2ݺu;õÔSƒ ¸ð2dÈŽ 233Ÿ}öÙ04hPä¡ç律ëÝ»wx‡àÚµkß|óÍOMM}ã�7*mûÜþóŸv Pqº¸[n¹¥Q£FA0}úô�Þ={öìO>ù$’’’ PÚò쌖âô¯ý+|4çË/¿õ&âõ×_ÿòË/ƒàØc�½ñÆ¥‹ò÷…@Å4f̘H\äååÐø¹çž«S§N<ôÐC‹-ÚnîÃ?¼páÂJÛþïòœsΑ[ âtqñññÁ…d•*U‚¸ÿþ‘‘L#n¿ýöðé[wÜqÇGa×§‹«U«ÖóÏ?µo¼ñÆŒŒŒüsssso¸á†œœœ ~üñÇ›7o^Úò\ùî»ïv´Q\Î=÷Ü &,_¾<ø ~øáÍš5 g½õÖ[½{÷ÎÎÎ>ùä“G�UµjU颬2dÈ_|ÆÁ·Ñå—_Ž6@EœâÿüóÏ?üðÃO<ñØc�E.W–,YòÓO?×éé鉉‰;žó$''wïÞ}ܸq«V­ ~{ì±ác™ƒ+‡'Ÿ|ò–[n â^½z×¥êÙå€.®º¸ üñï½÷ÞŠ+&NœØµk×½öÚ+˜ž‘‘1`À€ÁƒWÚV£¹ï¾ûœ�­‹kÕªUûöíßÿýÅ‹O›6í„N¨^½z0}Æ W_}õ¨Q£âââ‚•üå/)…9�)¸´»aóæÍ÷ÜsÏ�!C6mÚ|6öÙgŸ9sæÌ�;·N�:ÿûßo¾ùfWS”‰/¤™3g.[¶ìÃ? æð‰¡ž={^tÑE)))Íš5«]»¶\TLk×®-tp½‡z(8ùÙÕâÁƈ#²²²:uêT¯^½ü1¸œhÒ¤ÉÀ�#ÃüTÀ.nÑ¢EÁeã»ï¾,žœœüý÷߯ZµªuëÖƒ êÑ£‡TØ.nÆŒ7ÝtÓøñã«W¯~衇+ùöÛoÓÒÒ‚ø‘G9æ˜cJgΠ‰–-[¶Lš4iÖ¬Y›6mªY³f»víŽ>úèøøx™¡"|!@Q¬[·î‹/¾˜?þÖ­[÷Úk¯Ž;~øáÆ}tq�U«VW” .ÌÊÊ ÎÌ;uê¬AV]\`ñâÅ_~ùå’%Krss6lعsçý÷ß¿4§K€¨p{Q¡ @T(@ ÐD…4Q¡ @T(@ ÐD…4Q¡ ÿ¯½{�ö©Lü~$·( ¹ä–®T ¥ZJ3‘[jÊíH ’YM3k*]L“Q •„1Içp”B™nhš¤BkÐuuq+wÉåppŽó{~gÏ|¾gœÐÙ¤^¯?özöþ<Ÿg?ûyöi}¼×îÙ@,ÐÄB @,ÐÄB @,ÐÄB @,ÐÄB @,ÐÄB @,ÐÄB @,ÐÄB @,ÐÄB @,Ð@ÒºuëN>ùä©S§ ‘HJKKûæ›o²³³ …¨˜! V6l¨Q£ÆöíÛ ¥µ &Üpà FµÐ¥¥¥•-[¶M›6¦€B$€ ^/¾øb_žtÒIݺukÒ¤IÍš5K—.�œüÿÿo¼]»v 0`ÆŒQå?ýéO¡NÉ’%C9'''33sÍš5sæÌ:tè¶mÛ¢F i¡ûúë¯ßÿýn¸!yÓ@a@¯ôôô°½öÚkŸyæ™2eÊì]aëÖ­Q¡T©Rwß}w¾ ôÔSOmÒ¤É\вe˰{ÆgÒB—––¶)))¦€Âe hb´aÆ·Þz«eË–Ï?ÿü>ãˬ¬¬ùóçGåÆ�ïýn¤E‹§žzjéÒ¥«U«fT ]ZZÚ‰'žØ¬Y3Ó@áò41zñÅ‹+6f̘"EŠì³Â¢E‹222¢ò%—\R@Sµk×.S¦ÌþÚá�-^¼øã�?îÝ»w˜)Ó@áò41JOOïØ±cÕªU÷WáÝwßM” N0srr,à‡ÔÔÔ°íܹ³é Ð  ˆK´€ÃM7ÝT@�¹sçþ÷‡irrãÆ� ¨¹nݺÓO?ݨ®œœœI“&U¯^}ïøØôðã  ˆË‹/¾X¥J•&MšP'ñm½zõÊ•+W@Í+Vx„¶Ð…ñ_¾|y§N�ö^Ãôðã  ˆKzzzûöí Xöwe®¨\ð›6múî»ïùÄ�®Y³f­[·®oß¾¦€˜x€#&ñm•*UjÖ¬i@³ÔÔÔ¤ý¬¿aú(hŽŒŒŒŒE‹E傟Ÿ%™™™/½ôR£F�êÔ©cúˆ‰€#ãƒ>ÈÊÊŠÊÌÃïå—_Þ²eË!?þlú8hŽŒ_A˜8¤¥¥%''wìØÑô4GFbáR¥JÕ¯_߀N[¶l™9sæe—]V¥JÓ@|Š¿œœœyóæEå /¼°X±ŸôïÒ={ölÌ£mÛ¶GûøO�:533³sçο„éàòK€#à“O>ùþûï£òO‡·ß~ûòË/Oìæääí㟚šzÌ1Ç\wÝu¿„éà²G@b‡¤£!ÁlÚ´iffæsÏ=÷óüµk×Ξ=»E‹Çü/aú8‚ЉWØ%''_tÑE?ý—(Q¢C‡?�ÁOOOÏÎÎNIIùåLGŠ€# ñmݺuË•+wTôùg³ÒqZZZéÒ¥ÌJÖGãôpD 8ÜÖ¯_ÿÅ_De 8fË–-›7oÞÕW_]ªT)Ó@ÜÐnV>‚ÒÒÒ¶sçΦ€Ã ˜!à0K¬ œt æÖ­[.\øÝwßmÊÕ£G�råÊ…#óæÍËÌÌ<õÔS›7o^²dÉ}~÷£�>zÿý÷ׯ__­Zµ+¯¼òW¿úUÁçúÏþZÞ°aCåÊ•/½ôÒš5kþÈ+=¨¬^½zæÌ™k×®­^½z«V­N8á„�7†#ß~ûm›6mêÕ«—¨¹sçÎ7ß|óóÏ?ONN>÷ÜsCW‹-z€]JMM­P¡B´Ã3}»wï^´hÑúÿéÛ·o‰%¢ëúæ›oªV­®ôÄO<äÎÐ~Ï“O>¹uëÖÇw\T9##cƌ˗/glÑ¢E8{aÝiì�€Ã-ñmåÊ•kÕªUpåÏ>û¬k×®+V¬ÈÉÉ » 62dHÍš5/ºè¢Ý»wßqÇ={ö:tèï~÷»¼ßZ¶lYøVh?T«^½ú[o½Õ½{÷¾}û>ôÐCÅ‹ßû,K—.½ù替üòË>}úÔ¨QcíÚµ¡Ž?÷ÜsÇüþúöÁ\|ñÅÙÙÙÑn¥J•f̘ѨQ£CèÀ<0|øð�žrÊ)¡rïÞ½;uê´xñâk¯½vÚ´iO<ñÄÊ•+£šééé¡Úe—]ÖªU«uëÖ…³”-[vòäÉuëÖýÁ‘ÿ(W¯^½öÙ‡8¦oõêÕ—^zéŽ;¢Ý0/¼ðBZZÚUW]U¡B…‡~8Œs¸¢p-‰‰kݺuØnß¾=ìΙ3§iÓ¦¡°k×®óÏ?? –-[ÂîøñãÃ…Ü~ùòåÿú׿†‘ †ëõ×_÷IÛ¶mÃ4…¯‡ó>õÔSݺu;ä;mÔ¨QùË_¾ýöÛh·L™2ýû÷GByÕªUgœqÆÖ­[C¹hÑ¢;v 7’?|à—©è½÷Þk8lvíÚÕ¯_¿(´mÑ¢E‡ ®_µjÕ´jÕj̘1awÁ‚ãÆ�ëÚµë¹çž{ÑE…Bzzúèѣ˕+vßjÛ¶í§Ÿ~:xðàÎ�;Ÿ}öÙW]uUÙ²eÃOß/¾ø¢]»vùNññÇ7iÒdÇŽ~øáW\Q¯^½Æ�¿ñÆÏ?ÿ|FFF" î»ï¾°Mü„}+Z´èìٳ÷&Ožüè£�&ª=¨<ôÐCwÝu×°aÃn¿ýöpö6mÚ,^¼øÙgŸ;vl¸ÀpŠòåË·lÙ2Ô|â‰'ºwïª�9òœsÎ —Úç�0aB¨ùƒË:?öØcï¼óÎ#�ùäI“&å]Â8)7Qíܹóºuë{ì±¼;¿ð I¹äЫ­[·Nž<ùÞ{ï}ýõ×6l˜÷£ïÀæÍ›ï¿ÿþPhß¾}â`ìFIw·nÝFŒ K–,¹ýöÛ+T¨ðÇ?þ1Q³R¥J X»ví�!C~pÃÙ«U«v饗þé;餓BáñÇ6lX‘"E¢ãuêÔ©U«ÖÆ�ß{ï½¼õ«V­ÕÏ'L÷gœq°í¯Y³&%%åé§ŸN<÷Ú¹ð Å¼öÚk?òN»ñÆk×® ï¼óNÞv½T®\¹‰'þø…\Žjh«™3g&Ê_|ñÁ~ý”SNÉw¤Aƒ�7Þ½{w´úA¤G�Çw\—.]þï‡orr¨ ù²ÎI“&-^¼øÄOŒ1N>|x³fÍîºë®ýõdÆ W\qEß¾} ”H<¡ÿþ÷¿wìØQ¾|ùN8!q0Ê4?øàƒh‡Èý÷ß.³sçÎÇ{lÞ¢žO™2¥à¡ ç]ºtiÇŽ÷îía˜¾(ümÓ¦M‰%ò�‚ãU«Våÿ‡Jò¾ÿ©²¿ã·ß´iÓ|+MWªT)l hò�3zÀyìØ±y+ÏŸ?¿J•*². ÀÏ›5 ˆÑwß}—‘‘‘••µ}ûöM›6½ýöÛ�>úhâÓôôôÝ»wüñ%K–,V¬X¹råï‹;(Íš5{ï½÷¦M›Î-C1–©S§NØ._¾|ëÖ­eË–Ý_ŸSSSösçÎGpúÎ;ï¼|GŽ9昤Üw Êý¶¿ö÷w<1¼‡|§%å>¢>hРY³f-]º4±(öرco¾ùfÿ@—Ý»wרQ# X÷é‘\‰Ý”””($=X§Ÿ~zØîܹsÙ²eg�uVâøæÍ›§OŸ>oÞ¼%K–„ò7ß|³÷wÃGa[½zõ?ÝçŸÞ¬Y³•+WN›6mÀ€++«X±ÿþ>_»vmRîÓ»*TˆŽ,]º4ZûbÈ�!O=õT¾F*Uª”œœœ™™¹¿:;;;=== Ôù矧ïW©þ‘ö×~a�wŸwZåÊ•[·nn†qãÆ <8ÉÈÈxýõ×£…S~áÐÄ¥xñâyW�ˆOÉ’%£BFFFTç½çž{F�U«V­¾}û8°N�:]»v}æ™gò}÷ûï¿ÏÛÂ�hÕªÕˆ#úõë÷¯ýkôèÑ·ÜrËÞu¼õêÕ»üòËçÌ™³pá /¼0:øæ›o†í€Õ¶o߆º÷k ÐìÙ³×®]Û»wïŸàôEö¾Ó"=zô˜6mÚ?þñ�ûhÑ¢éééW_}u¾§Ú~™¬ ÀQ/±‚pô óÚµk4hðØc�uéÒeÑ¢E·Þzk´HÅ>U­Z5)w­‰¤ìn)Ä;-¡E‹ÕªU SóÏþ3Éúy 8ê½ûî»a{Î9çDo–4hÐ_|qÖYg=õÔSÑR¿{ûì³ÏV¬X‘”ûzº°]¼xñ>«å{Ð5(S¦L´ŠE‹-ºvíºeË–^½zå«sP&L˜�ššÚªU«víÚ…«xðÁŸ|òÉôôô¼/Ü —> …/¿ürŸ �¡ïܹsêÔ© 48í´ÓŽö¹Þûu…GðNK(Z´h·nÝ’r£çO>ùdÏž=ÑÊ* 8šìý¶ºM›6Eoçëׯ_täí·ßÛ+®¸"±¤r$ov9iÒ¤Ù³g‡BÏž=‹)²dÉ’¯¿þ:_ËÙÙÙ_|qïÇ6lX•*UfΜ½É0á :�”»>F½zõ 4wîÜГ7ÞxcŸ¯ Œ.ðùçŸÏÊÊÊ÷QNNN8]b™Ž|B7oÞ|t=þ½†qÏž=ynܸqéÒ¥?�;-¯îÝ»'''¿òÊ+ƒîÑ£‡?U€ˆ€£Éƒ>˜ïÈ=÷ܳmÛ¶-ZtïÞ=:R±bŤÜ×úå­öå—_¾õÖ[IÿË4öxñâ¡pÁÜvÛma÷®»îÊ×òøñãC³Qµ}*_¾ü¨Q£’rkÎ.T’rããaÆå [÷.°eË–kÖ¬™4iR¾�F�ýë_ÿz¯ÚKMMMNNîÔ©ÓQ4ÑuëÖ Û 6ä=Fé„NHúßÊÝGüNË«F�Íš5ËÊÊzùå—;vìèO "€àh²qãÆ>}úlÞ¼9”333ï¾ûîÇü·¿ýmzzz‘"E¢:ƒ :öØcÑháãàÃ?ìØ±ãÈ‘#CyáÂ…I¹kn4nÜ8útèС={ö •û÷ï¿mÛ¶¤Ütx̘1S§N½ÿþû§Žž½ÝºuëêÕ«[·n]ºtéЫöíÛ'Á8Ø´k×nüøñ+V<#W½zõÂG:t2dHb™Ž \`hóšk® #0yòä(°Þµk׈#fΜ¹w` ~å•Wš4i­v}DlÚ´)œ¯¾ú*ïñ0ƒÑ’Ö{¯+ò‡?ü¡D‰ãÆ�Û±cGRnF?qâİ=óÌ3Ãî#�<òÐCÍ™3çÛÏw<;;{Ù²eIû_Ïäï´|¢uŸSRRÂ-áOà¿?bÃo8£ÀQðË57õ[ºtéœ9sž~úéíÛ·gffÖ®]»wïÞW]uU¾Lð³Ï>{ôÑGgÍš•��]±bÅ:uêÜ{ï½§�vÚ�\uëÖ½í¶ÛÚµk—÷+¯½öÚÈ‘#?úè£Ò¥K—,YòÚk¯ýýï_¢D‰ðÑ‚ ®¿þúpêhY†âŋ׬Y355µaÆ�5 ŸF-„Ê—\rI8éÁvàã�?nҤɦM›ö¾êÐæðáÃó.3~ÀOŸ>}Ô¨Q+W® =)UªT‡úöí›o¹�„ &Üxã�£G�îÙ³ç៵U«Výæ7¿Y¾|y”#‡iª^½ú�wÞf- Š+¢Ä?¨\¹òM7Ý4xðàÄwð„±Z´hQ¸´0)�:uêÓ§OóæÍ—,Yrb®0G×]wݶ_µjÕnݺ=ðÀW^yåüùó£ÚiÓ¦ÍøñãíNË+Üa®ßxã�pcøƒøï�+4GÇ/×ÿÅ‚5kÖü9]ׄ zõêõ·¿ý­[·neÊ” G²²²6oÞ¼lÙ²¹sç>üðëV­š?þyç�whí·lÙrÖ¬YkÖ¬‰¯ ¾;-LÙu×]=á@ÄpÄlܸ±W¯^]»víׯ_”>ÅŠ«P¡Bƒ ú÷ï?}úôìììèÝw‡`ýúõo¾ùæ•W^)}> Æ�wÓM7€¼ÐpÄ|õÕW™™™ÑºÆûT«V­°]³fÍ¡µ?eÊ”¬¬¬””C]è>ýôÓsÎ9ç¶Ûn‹vwîÜ9uêÔ.]º€¼ÐpÄœ}öÙ'�tÒ³Ï>›™™¹Ï cÇŽ Û-ZZûYYYµk×¾úê« u¡›9sæ’%Kž|òÉèm�¡Ð¹sçråÊ€¼Ð>ÿüó¨ðÑGýœ®«dÉ’¯¾újfffƒ &OžœxcÞž={æÏŸã�7Þwß}O<ñDÛ¶m­ýþýûõÕW¥K—v ú�Ö¤I“äää»îº+l§OŸ>iÒ¤�@€|¼„€Ÿ´ ¤¤¤,[¶,+++)÷qÕ«W1bÄ!g²?AáÒ¦OŸþ /,Z´(9×Î�;kÖ¬Ù¼yó믿¾bÅŠnƒŸæ�6a„aÆíÞ½»~ýú¡¦…¶ö&€ –à hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ hb!€ ÿJ²ŽP endstream endobj 73 0 obj <> stream xÚ­ËŽ$9ñÎWäqúPÛá§Tª‚Ep[èâÐÕ5½ØEBˆ¿Çv8ì°ÓY]…ÐhÔY~Æûéí—Mm2ýS›×›wQ„¸½ßÒ°µ"*­u™¶QxíÀo' "Z³ €¼îëï¿Ëí7ÿØ~L; ä2BÙ¡C@…-œÙN œpÆÖm€Û~ýº}ýAoAD—Ö¼~ôÕ`„öq{½ýù,%8)�N¯Rº[ú/Ó·¾œ¬6iÖ½I©ß/yýC:̰Ìl‚OQ×ËÉ„˜¾4\N:@:Ô¤u:>Òwú«Þ/:œñãÚ–4c®°fZUO�v�‹x^ÒDYGʺëcÝ3¨k¿<‹.j>'w¶óüâ%æÎ‹RŸ Æs—É%ËuòMŒA–ÙÍ,}x?Ý pçþä¹@Ø’†¨¤!n²pŽ+VàŠÕ¤x„Ìx¡e|†M iPItÇΦõ̔滋‘2>SùZ1Í+²N—™Pq(&·¬CzÒqkvˆ'í!ÓR,zàþ÷côÅÞñƒ“¡Xi©Þt˱i ªéž …ëš½óÈ‚†Dé««5šÙE$ñ ´2úÊhKb\ÉÖ,È’�+¾§ÛÓºÒd«ü�7º÷< gÎ^œiF²ÌÒ‰d,aðNõ¬Èoj»„ú�¾fj€µ ‚¾£ˆÞ­zH.ÎìÆ|ñÌO¼ÝÍìÉàJ°`wý“ÜNZ­,“û$‡Và-§ä:s´;±’l0!‰äÍ�f7é5¢‹ÚHäšõ< 9�c¶Ø3EnC0¹zH!:úÌù,¶€øðjFc�-–æ"$“ÃÌŨˆ6í.ã�F³œû7ú¥ß�)(Ƕš-Ð= èñ Ï-%0�’Î@1qD>dœÎ:èÃÄ8³ 4…Ó=âK2X$ÒkúæÑ&åU²yl¦Q+`6`LAMUL zà†á•W— Ït˜a�¥n——X¸F>x!�™¼§�ÏU/«Ž63ç4Ò¢šrŸŒÔ;üDº[ŽêèÄ~31¿bhE i)Dg9îjÁ#ç'9i ­=¸ËÛ’oO‰'å„HÇ‚—Ì‚;w!ë‡æÏ"NÃqâÈ“,¥cÇm�¹ ]£ ÌZ@Û˜QËG÷õmfÛ>Å¢™ŽÕÁΙÓm”�ÁÍqO;{ʉËÈ trî6.âýÇg�3àÎ=d(9KYú~kEˆÌ�WkVl^\9‚dÞµ¾�ú”€�œx2N}f¦�ÅCyY ×ÃÝUﲿ'òŠ”½¬ûòúRçm ¾£‡Pˆ)‚ήO˜Xôåç·÷�_þúâô—·Ÿ¾½,°÷Â@ÜÚ–�­¦n®„´‘¡RFO¾f4w5ô{æòÙvïs4ôà„öfvì¡U�ˆ¿±zF¤l,‘lM¶KP'/Öž{àCþ5®]÷˜âqSåG=ÇпgvþëûÏ/ ¾ügÅN#” ;³¿ò%ošílÇÝ›nçyZD!¨™QT\E¨Å긟ìÝî´Âîœ3‡äŸ0˜é,IÐ÷¬�K¤Ö]‹©peCO§J:gëïE^9ް«@ÕY!C?ÑkB«Å*K[¤f¶d•… kâ`nM“ ÉL„nJà฾ý5åH—JáL=u·ÊÖ"¸Jç…¥K3ËÈ fÂuNó€ƒF©×UK‚B'ŒIû ¬*0a-a½d1ŠaQ%´CYXÅçb º±Ùªr0\fÛѤd´!O•˜Oí…yÌ^„D,µµ 5¾iQæ mAŽg+•ôHÈ]�\õ{¥�þ8�ú�òžÔ=S�Oëà ”ÎùE¬ò¹.à] Â2ýº¯‹QéïëâxÜù¦leUaJh�Õ]IÂÖå”üÙ·®j\ͬÖDìgا FñÒáõ!ìý{3aŸ†æ Gü7ÜÎ1é.®U|²d•Î׿®&«Xi©w¡ñI'Ãë]œ¤ŽÊ|ùDг…°Ë>s=Ü3 šJI΃�± öÀäB¸r+�˚澌ǔŒ«‡eÅš& �^õQ¨]Ôí ¼]QŒŒ¬i”Üùy>p­%´¼®iƒÇRøH‚‘3õü˜•­ªê™·=í»ë^™×ZÃëÅýÛèÁ/×OÚ‡ ë�-X”HMÚøû–3딕ÊÛVí…ŸÆck„ÙUØÆ†�{8Œ¯¦Æ|R9i‡¶~u¡©Häã©Rd6¼UKrÔĆJÑÆ/‘è%ÿ‘1Ô–a]ͳ›z⾆[gr{µ¯é¶—FK¡¼¶�[P'9´kØòl÷¨Ëj˳i*´ìç‘úNîw­J·8Úâ>òþÀ }ùÄÂ)¹ŒþȇÃÂaõ-�kâµÖ¦¡ÒHmd½h#;é„u–õ,-ë{{7ñÞù#oë¬í`t7j< wðp¢>ݹö´ÊËÉÓ´—ÜŸàèl|ûË›]Ø…°†Ö±{½—@'‹Ä«‹Àž)Ëñ‰X1UJ8øKbò̪Z¯�¢`aœÍ6WÈjà èfðïPÎå²¥”Êûñ!¾^zë‚��ã8‹ E”ª>4ßx>!·äŸ6µýñwíóŸ?Ýêçk ¬ÓRX« dÁÈluø_ôª¤­‰t$¯¸&‹p±Y_qÖ1¸&û—BÒöòçË ¼:N™ŠEž,ZáýN5�¥�?þê¿þ‡y] endstream endobj 76 0 obj <>/Filter/FlateDecode/Length 4539>> stream xÚíÕ1 ðñ'ݱèQÙò$´Eð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüF=’Ìš¬ endstream endobj 77 0 obj <>/Filter/FlateDecode/Length 69774>> stream xÚìÝXWûðaª €ŠŠØPÄ{�½Kì{4ÆKb,‰ÝÄ�½ÇÞÁ®XРö޽‹E©ßó2ï¾ywaYÁU‘ß}åò:;;;sæ9çŒæÙ³gÌcbbÌøÐ,ÀH@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@LŠc„‡‡÷ïßíÚµŽŽŽ'NlÑ¢1A²6räȹsçZ[[:´OŸ>0ìÀ�2RnÞ¼éîî¾`Áù»€˜c�€ ¹:}útÉ’%�ÜÙÖÖÖÎÎÎÁÁ!gΜ (Z´hýúõóäÉcüé&Mš4wî\)¼xñ¢]»v¥J•rss£�L­Zµj̘1JùÇ,Q¢DåÊ• Ÿ���&Mš<þ\ÊëׯO—.ÝÂ… 0 h’+—éÓ§_¾|yÇŽ/_¾4°sX¬gϞݺuËÏÏO¶ôíÛ·H‘"ƒöðð°°HxU®Ã‡«åðððS§N‘€Fò¥íÏâèÑ£$ ®\¹¢dŸÕ!CL€‘H@�\e̘±oß¾JùÁƒE‹Õf¬­­W®\©äˆÃÂÂBBBîÞ½{úôiooo)(ûœ?¾C‡S¦LÙ´iS®\¹ Ÿ®téÒÛ·oW^¢D šÉ—ôgí˲eËÀ€|ùò988È_% ð¾,G�EHî®]»vòäIuKÙ²e§N�š-VΜ9óåËWºté ôïß¿dÉ’GŽ Vö|ôèѪU«š4i’1cF§(_¾ü½{÷nÞ¼™={ö9sæT©R…°ã³õêÕ«Ç�§K—.¾Š/þúõë+W®8::þþûï­Zµ"h€¶¶¶¥J•:~üxxxxÆ gΜ™:ujÃ‰ŠŠºzõj¦L™ˆ)œyLL Qà 0uêÔŸ~úI}Y­Zµÿý7¾�Ÿ={V«V­3gΨ[J•*uôèQ++~…/AëÖ­4hбcGB|*ƒ ²··1b¡ …³ |Ò¦MküÎ3fôòòJ•*•ºåäÉ“ê @²6kÖ,éÞÑÑÑ„øT¼½½'OžÌ0f$ øbXZZ¾×þùóçoÞ¼¹v‹——aDr0pà@â|B·oßîÔ©¿µ Ф\µk×Ö¾¼~ý:1A²vÿþý&Mš¼{÷ŽPŸJHHHÆ µÅ) hR®lÙ²i_¾xñ‚˜ ùzòäIýúõïß¿O(€OåÍ›7M›6=wî¡*4@Ê¥3Q4C† Æ6**Êð¢!!!›7o®]»vÖ¬YÕ�.\8xðà³gÏœœœªW¯ž/_>ãOwæÌ™³gÏ>yò$222cÆŒ ¬P¡‚µµµ‘G8qℳ³sŽ9”—÷ïßß±cÇ‹/J•*¥3üÓŠ‰‰9uêÔ•+W‚‚‚ÂÂ¤ή®®•*UÒ.Ø� ²……EÅŠÕ-rÀ“'OÞ½{7mÚ´ ¨Zµê{­ÙrýúuùøÃ‡¥JÙ³g/R¤HñâÅ�üìÓ§O/_¾\¹reåeDDÄöíÛeK–,Yš7oîààç§®]»&MöàÁƒ7oÞ8::æÌ™Sêl`¡óK—.ÉÑäÏÄ…=Áþ¬ÝóèÑ£7nÜxüø±”¥�òæÍ[¾|yãã)ãÎÛÛ[b( ¡n¼yóæ¾}û=z$+»D‰FêØ±cçÏŸ—ž,cAºJÍš5et|äNxäÈ©¼ŒMÚ�bÅŠùÙððpéZr r[�—™2e’Ï–.]Z:°‘G8tè�t’:uêhÃâçç'm$Ç”ûÏ7ß|#�6¾næïï/w{{{‰¹ôRsssã‡j@@€\»Œ ¾œB.ÜÅÅåó¼Ûß»wOÆÝ?ü n‰ŽŽ–…_µTÛÝÝ]‚ŸÄ!#‘lݺµ´ÈÇìBàóG€”ëÚµkÚ—%K–Lð#W®\Y»v­§§çœ9sªW¯®¿Cxx¸¯¯ïÊ•+7oÞüæÍ›}ûö) èÇ8Ðßß_»sË–-.\høñ‰/_¾œ4iÒ¢E‹=z$/Ó¥KiûÜÅŸþyðàÁ666ñ}üÅ‹kÖ¬‘�Ÿ«ôv¹d%ýüùséùÒi御î)µ:t¨ íÇ}||d‹Ü—´‹/.�AûÅ@œ$Ôr‘»Êýû÷•jK/•íÒpòVéÒ¥Ì=zHÄt6Ê­éßÿU_J¬õ?›+W®[·néo—ý¥ÇJ@äî'±UÐË—/—î*1T÷”þ,#Z6®¤ ÆíÛ·K”¤óïØ±Cû–ÜÞõWÞK})­3jÔ¨Õ…@rA€”kãÆ�Ú—­ZµŠoÏ7nxyy­]»öÌ™3ñí³~ýúM›6mß¾]›úQŒ;vÔ¨QJjIkݺu�?Þ»wo|³ýýý[´hñðáÃÔ©SO›6­sçÎJ¢ÍÓÓ³_¿~¯^½9rä�¶nÝ*;h?¶sçÎU«Vy{{ëLô4hФI“´[äÈ¿üòË_ý%…»wïjßruumݺµ:oZk̘1‡^¶l™ò ­Ò¥Kÿøã�‰n‹Ù³g<844´zõêê*UªHLž={¶f͚ѣG?}útåÊ•²]Â8tèPýÖÙëØ±cÚ§~Iyذa&LÐ�¼„´k×®ûöí“úÇ|9iË–-ÿý÷_ÙSºŠ’û>qâ„ÄJ>xá òâÅ‹­¬þ矔§OŸ^Kg5 ©^­ZµÔ¤­Rsé6jüÁƒÒÜJN°gÏž�\¹rIå÷ïßß«W¯Ë—/KmåÔÒaòäÉ£=rÚ´i§L™"…ß~ûMÍuìØ±B… ê>Ú²\¾œWú³œK‰˜á§¥É»#FŒ˜8qbDDDóæÍ¥ J•*enn.¸téÒqãÆÉIçÌ™³|ùò™3gê§¹÷ìÙ#m'½Tz»Î[‹-êÝ»·þ¢Õr™«€€;;;ýúDEEIÓÈp“ Ÿ:uªœ1}úô(¹iq%‰)¡3õ DÆoÛ¶m¥22F¤g(P@b"#H* ½Îð4Ø-[¶HÉΘ1ã’%K俣|ã²páB oPP�Œ¦£G�ê÷Ï[·nÉy¥ù¤;éóøñãÍš5»wïžÎvi5­–––JvUz ô.Púµ’û[�:u¤“;99ÅWsi©­t!˜Ý»w—ÈËñwíÚÕ·o_©›¯¯¯ô4é�}úôyßx¶iÓ&sæÌÒU®\¹ß>¥3fHGú矎9ßn!!!r÷“"Iª§óV§N�ä-��„‡‡ËíTv–Ûµþå]¹ñJ7VÄÕªUÓÙÇÚÚú�?þ�‚\þÕ«W•� 4øöÛoÕ}Ê”)ó¡ºHF,u¾‚ÉÔéÓ§·lÙ¢¾tuuÕO„i­^½zúôéêËÆ�2D·M›6uêÔiðàÁ¾¾¾Ú ¿rp9…vO//¯%JÈ>ÚYuòÙ &Lž<¹páÂ?þø£¼,UªÔµk×Ô¹½²³‹‹‹lÔ?õ™3gªW¯®¬L½`Á‚=zØÚښŦ9äDåÊ•[¾|¹YlSŽV¯^=õƒ§N�jذáÉ“'8 �¹,uöññùõ×_åtoÞ¼Q¶GGG˵תU«]»v%½¢Ø³gOÇŽå\úÕ+]ºt“&MNœ8èæævìØ1¹ÆÄµ]¿~ý”Ô�ÔpÆ ¹sçV&~¦I“FN-ؽ{·²àƒ´ÂÝ»wåêÔ™¡RÛÚµkËÙ/]º¤M4KèäPS¦LÉ”)S³fÍ4h�?~9ˆöêΞ=¬ �Jö¬Y³¦V*&Q']fË–­M›6ÞÞÞÊ„t9ÂÓ§Oåàêëׯ/ýðàÁƒÚ< ´—„«F�Ò‚ruÚ}z)Ë•ÊGZ¶l¹dÉ’·oß¾|ùRÞµkWm^Rv(kîܹê÷ýû÷ïÖ­[™ÿ£,/àçç'A–€ïرCûeƒ4e|«^„‡‡·mÛvÞ¼yÞ#FÈ)$JüÓ¦M+unÑ¢… ©¿ì)×.oéLØÜ¼y³?44T›X”3J¤’9sæìÓ§O—.]$÷ïß—x*;HA%­ _¥iÓ¦)ƒWº«|P²³ªC‡r+�Iôä঻áHûÊ�‘KnÔ¨‘ô4 ¯“téÒI� ,¸~ýú8of±³�åSÊØÜ¾}{Ó¦M•µtlll*T¨ áݺu«Ò»ähÚoÌb¯páÂ…gÏži{‘´�´EݺuåvQ©R%éÒ…¤põêUezµYìJíÛ·— Kµ÷îÝ+ƒHv“-UªT‘ˆÚ]¥éîîçU9rä›o¾‘¦‘! §P"oiiY @¹"é´2Š¥ŸìÚµK"P¤H‘÷ ©Jƈ4¨ÜÙÔ;¤Î�\ÎU¾|y‰°ôm¹¿Ý¼ySÙ®ÓÜrW”ûR¡B…ä.ªJuêÔ‘Ë—?¥×ÉX–ãKœ•ß”˜Å~çתU+íZÒ±{öì)±’xîÜ9õ‡#úÅdÏž]kÒÔ¿<<<¤ÉÔa¨�ÔŸ”.’Ð|!ŒO@ÇÄÄÌ›7¯gÏžÊÏÆEíÚµ×­[ç*Ãoß¾mÔ¨Q¿~ýÌÍ͵Sõ“Õ«W/UªTýúõ'Ož¬n¼~ýúŽ;fÍšµxñâªU«–(Q¢Zµj�:uÚ¸q£:SõþýûÚ•IUê4ºéÓ§+éH•›››ùÁƒf±g9‚:WÔÙÙY®î»ï¾+[¶¬vžc±bņîåå5eÊ”®]»?~\ùÑz™2eäÍb|H“&ÍöíÛÕ�|ûí·†�?f̘§OŸNœ8ñ믿N\ÃýùçŸÊ´Á¯¾úJN­3›XØÛÛ7mÚT.$44T¹X 5ÅiccÓ«W¯¾}û6nÜøï¿ÿVgò^»víСC&LX»vmË–-kÕª%;ÈnÖÖÖÚ_ôK›Ö¬YSg¶¬D]Þ*W®ÜŠ+t–A�fÉ’ÅÓÓSyP¤H©¼ò²mÛ¶ù=z¬Y³F}¬¥ì°`Á‚Š+îÙ³çÇ”+òõõ•³XZZJèähf±ë¢H'Tö0`€N:X>"qV–pyøðaÉ’% *¤ÌiÓ¦© è8sÊC¹^9~Ö¬Y÷îÝ«n7�€– +_uÔ©SGº±þ™2eª[·î’%K”,ž„7wîÜڣɅK…›7o.ÝX�ìüìÙ39ìÈ‘#åªeÊþ•*UêÖ­›ÔJÍŒ_¹rå§Ÿ~ÒŸ¢. "ÝuÙ²e:­#;K=e€§N�Ú¤ hé·JG�­Ÿi-\¸°Tþüùóú7Šèèèzõê)Ã_:À¢E‹t.¡xñâÒ[”™ò'Ož”ÆÒ®5,=Sî 2Þ%Îj–SúÒœ9sä°›6mRVÔ‘€K<Ûµk'G9”œWZÿ÷ß—f’ÏJ³Êr® *ÈÝ@îTgÏžUŽvùòe9ˆ~ØŸ>>Ê]ÈpÅ–.]ª6MõX¶ €dÇ‚ðEzûöí5 ù?ù€€€M›6ýöÛoùòåëÕ«—2‘­T©R«V­Ú½{wœ¿ôWv(Q¢D¡B…&NœhÌcÖœ��µ3<þ¼¯¯o�=´ûÈÚUAOž<©<L§þÚ<©þÏêEùòå•BDDÄþýûÿÿ¿oþ/sT»vmíÒrí ,hÔ¨‘”3f̸gÏžÕ«WO›6M»ps—.]2gά¾T2�ñ‘«»|ù²„ÎÃÃ#qÍtôèÑ_ýU)�;6¾g*fÉ’E»lȘ1cüüütö)^¼¸6'ûüùó½{÷þüóÏÚ²­¬¬†>nÜ8uKLLŒì£s¨9sæìÛ·O ƒŽs�ŽúõëknÖNhPö—°k ·aà ø¢E‹”Ê 8ðĉÒ£:¤>ÌP»ž¬áæÿüóOâþÕW_•.]º@�víã1ã#5Ÿ;w®Rž0a‚�Ãj—FéÙ³§ú݉J7oÞ¼êËãÇ�¯[·näȑگ$>Ú†~üøñéÓ§uŽsýúuem“4iÒÄÙ:™2eŠó�Kqñ=FR†[œÛå”rTTÔÇuv�ûŒºPÃÓ§Oõ# t3íÌý³gÏöë×Oâ©ó\S'''íÂ8 .”‹Œ�o/ÌÍÍ¥7ªyðààà8W·�Ûæ“'O¤¥ÇyiÚ%Ñ•u¢[+‰kó´Iõ›!Å«W¯Ž;V¥JíF‰¶vtùë@û®ÜßjÔ¨‘?þš5k³jüGèB Ù! À—騱cù4 ,X¶lÙfÍš�7NÉþÔ«WOö9qℇ‡‡�'}©Ò¤Ic`]T-{{{µ<~üøJ•*éïS¿~}íKå‰sZaaaÚeyõ³Tf±‰lµ¬L…Öý‡Ž……vŸêÕ«k×¹¶´´lÛ¶m¿~ý´y[[Û¾}ûª/·lÙ¢³*´ÖÚµkåO‰j|éû�1B™x˜.]:íJ©ú:tèP¬X1¥=|øpý}´O'“ýuÖ.P #FŒÐÿ µµõþýûgÏž-…ž={Æ—ýPm­]+Æø=µÏêToGJAîEÆEöìÙuÆE²X¿X'//½Î˜õ=>UÉ hRÌßúVV®±Z·nØ£Ge�_qøðá2eÊlÙ²ÅÀä¾N;5/::Z;;»ÁƒÇùÙàààÕ«W¯Y³FÝ’¸ŸºÇgÀ€³fÍŠˆˆPεxñbíJ² åìíÚµ3ò÷òúÔø›ýï´ÖøäÈ‘ÃÙÙ9((Hyùï¿ÿƹ‡‘�Ayò¤òòÊ•+ê[ʃþÄ’XFP¢”ôþß\rioooi5÷‡j ’%KJgP;³4PâІ‡†œbРAÒE•—«V­òóó›>}zÓ¦M?æý¤oß¾³gÏVòã7oÞ,W®\¿~ýF�e`бÊÉÉ)¾¡?zôhùòåê³õ’ÞÖÆ¬\¯¿ç›7o´o]»vM]/¢{÷îÆŸ=éãâãß�ã»!V]$³ÿ%¤@ùóçß½{w—.]V®\©lyõêU£F�üýýãüEüçãøñãsæÌñôô,P €³³s|kà&‘‹‹‹‡‡Ç²eË”—Ó§OïÝ»·6Ñíååe–„õ7ÌbŸ&§–�YÎÕ,véd¥¬¿JÀ{‘†VÐêTè§OŸ*¸3‹}¢šñWÌ™3§)âÎ�;óçÏ_´h‘•••vÁè�C»,€1 dgg—/_>5›ŸÄ2 oß¾;wîT×o¹{÷n³fÍ4h0sæÌܹsœàdÏž}îܹjÿ�ŒŒü믿d`Ê`‰s•ùúúÊ·nÝ* �9sæ²Ìw¢éd`µB7n\Ñ¢E�<Žþ”^˜® €Ï hRê?¬¬æÍ›·ÿ~õ!{!!!½{÷–-Ÿam£££7mÚ4yòäcÇŽµhÑÂÏϯL™2£F�:pà€‰ÎøË/¿,_¾\™}yýúõ­[·6iÒD}W¢ôàÁƒR¥J}õÕW‰>…vy_ýŸüÇ)[¶lq~<´kãªó=µÇtss3ü\D“:~üøŸþ)�^¶lÙùóçKM¤­7nÜøÑ*¬]üÁøRÐIl ,,,6lØ 1ÑŽÖíÛ·ïÝ»÷×_4hP‚ë‰:txñâEÿþýÕIÊ÷îÝkÞ¼y½zõfÍš¥]RÙ€ððð•+WN™2åÚµk;vЃþAšxÈ�!;vìÈ“'Ï–-[¤>I5t_þø d˜½½ýîÝ» 0gÎuãÛ·o‡¾zõê%K–|œ ã}ûöuuuíÒ¥‹ºž»YìN‹)2f̘ŸþÙÀÌñ˜˜˜eË–�5êöíÛ-[¶”O¹¸¸|ž·ÊÏa\|©’Ò…@raAHÉô}VWxø„„„4oÞ¼qãÆ/^7nœ¯¯ïÇÉ>+´+Pûùù�òqñÅK\É hR4ggg�-ꊟÜãÇ�+Uª¤¬º0f̘¡C‡~ä T®\¹B… êË)S¦(Ÿçϟ׭[×ÉÉ))Ç×~üܹsÆ|äíÛ·q~<´�YË—/ŸRHŸ>½ºQ»DõGíáá1bĈ¨¨(www///;;»OØýÒÄú„ d$‰Õùóç'Nœ¨}LbDDDïÞ½çÎ�ûqb•-[6i¯}ûö•*UJ»}×®]õë×Wæ©X¶lYeýœE‹uêÔé3¿O~Âq‘B¼oÉ hR4kkk�-Úuo?¡¨¨¨6mÚ(Y¿|ùò}üì³B; ÚËËKy0ÚÚµkÍ’¼þ†(^¼¸Z~ôè‘13+µ“K—.�”³«åJ•*)…Ì™3«OŸ>mäºÄèÑ£•ÀZXXÌ�;×ÒÒò“wBm�?^]¦öã4�ñlll tíÚµîÝ»k×+2dÈË—/?Z¸ªW¯°téÒL™2©<¨>éTÚ´iSå‹®5j´oßþó¿OjÇÅç¹Jþ—ÁÈ.’Фh�=ÒÙ¢}ÌÝ'¤Ì†SÊÍ›7ÿTéÈF�,XP)GDDÌœ9óíÛ·[¶lIŸ>½¼•ăרQCûrÏž= ~äÆ�ñ}ü}]¾|YÿPŽŽŽ¹sçVÊaaažžžFMöœ>}z¢+sïÞ=u-òråÊ©uø´´~ýúõ‘#G>fÅ' ·àeÊ”iþüùÛ¶m³±±Q¶¼zõJÆ‘‰‚S´hQi5��æææ�:u:þ¼vëÂ… µû̘1ãâÅ‹J¹uëÖÉâ>©ý.áðáÃ���F~pРAä/šÛ…@²C€íСC:[Ê–-û9TlÑ¢EjÙÕÕ5Î}Œ™‘šDæææƒ R_.X°`íÚµ¯_¿nÙ²¥šæK´† j²nݺ?ráÂ¥`gg—Äõ‘Õ%­‹+öõ×_«Û+V¬¨–'L˜`Ì“ôîܹӳgÏÂ… 'º2K—.�ŠŠú°Í­0ÑZ´h¡}™`½yóææÍ›J9gΜÚõ[>,ÿøÚEzŤI“Ô—×®]3Q¤9|}}ã|ËÙÙyûöíê *:uøL†ö{‘ÖÌž=»úrÔ¨QÆ|jëÖ­sçÎ-R¤Hãß[Éba Ã0Ñ]$;$ øB$"e¡M‰,Y²ÔªU˘S˜:CtþüyµßÚAAAjÙt+‡´k×NÍ==þ¼ÿþfbý %ÚÚãìܹóñãÇö?sæŒú(¼ï¿ÿ^}r`"„„„¨Ìûõë§s½jùÆ�cÇŽ5|(eE77·8§å~äæN•*•ZNpõ‰ûsÉ’%ëÔ©£¾ôôô|÷î��îÙ³GM·ýôÓOVVV&ê“o߾ݶm[|ïJßPOmÒ¸˜^-}»I“&úu�šk×Pþ´Cû}ïjyÍš5»wï6¼ÿåË—etwïÞ]»~´‘´ßKxúå­[·>áß2þ 0~&¢ €äˆ4_ˆ×¯_¿ïG¨NØTLž<ÙÀbÚÇÖ…††Æ·›‘3O O­}ñâ…Z>~ü¸þ/_¾Ôæàž?ž`eÂÃÃØT©R)IgÅ«W¯ÜÜÜ*W®üAZmøðáj~J2fÌ;/_¾\)8;;2Äð‘£££ ¼»xñb%—Z¡B…Î�;kßrwwÏ“'�úrüøñË–-3Ðë7n|êÔ©3f$%òÚæ>{ölœy^í:°ñ5·öA|Ú5Fâì–Æôg¹|u�ôÌœ9Ó˜*T¨P÷îÝM440hkk«.¡›?~�w'L˜�;wnÙ§xñâÊ¢Û‰¶{÷ní’#:\\\ôë ]y<¾¡}çÎ??¿ÛÚÈù¿:17[m/ÕÏ®Jƒj¿Qhݺõ™3gâ;ÔÕ«WëÔ©ccc3bĈD6kÖ¬ÚCÅùL‰Ò‚ ¼ÿÀ.gü_†¡N•Ñ…@rD€/„Î�” Ï¥}óæM÷îÝu’†²E;ËOGhhè³gÏÔ—&ßisLñÍ�ŒŒÔM›×Ph—¢Þ²e‹���öÝ    T«¹¸¸h'¡/X°@;XëîÝ»óæÍ3‹]dÅŠÎÎΆ�¼wïÞø¦(>}útüøñf±ëx,^¼ØÂâþA¨<P})éÒ¥KïÞ½õó€~~~_ýµ¯¯ï�!C´ wè÷Àëׯž2¯mnùàèÑ£µïJ/’ h眪-«mâ|ùòi»�:qRŽ }[â¦=ìíÛ·ìÏ¥K—ž0a‚úrܸqú˦+6mÚ$…Ô©S{yyÉŸ‰fÿ»2»þÐPìÛ·OgPhÛW©R¥jÖ¬™ö-iî¡C‡ÊÅÊÙÏž=Û¶m[ýoŒ'cí·ß~‹ï]u¡g9‹º1cÆŒÚé±Ò¥¥ÚO]½zµnݺÚYÏêЖPhó¤÷ïßWËoß¾5ævdøÆ¥Ú;?{ö,Ož~îÜ9[[ÛmÛ¶•+WNÿ8ÒsÞ¾}«]üøñãÓ¦Mó÷÷?vìØÁƒ׬Y3xð`iè'Ož´jÕjΜ9Únf›Ï8p šÿ -X° �ÅpÃÃÃׯ_¯¾<ëéÓ§çÏŸ—suíÚõÒ¥KÛ·o_²d‰²CLLŒt¹–±cÇÞ»w¯zõêÊö/^¨óâ夻wï–=åBºwïþüùs¹5rüY³f©g|üø±œE›U}ýõ×r!ÒñÌb'ŠJôW—îQ¯^=9»��� ýt¼R š:ýÓÉÉ)ÎGðÉåŒ9R})=ÍÃÃC»Ãƒþþûo)üóÏ?�7Θ1£Î~þùgef± jÙAûÖ”)St¾~~~½zõŠ3]n˜4º´¾4�T |ùò:ïJ”†*Á/P €tK5ì–––Iõ« ‰†¼+½E.êßÿ•’ûX•*UÚ·o/W§Þ äÆ%OHº®ò‹�ˆˆˆþýû«_rHl¥Q2gά_OPÚ‰Þ¯^½ŠóÆuãÆ ©°Ú:rir“Ñ KåÊ•÷ïß/ÃJy)uرcÇìÙ³Ož<)Õóõõ•±Ù·oßU«VI?™>}º�ïó “F—(©k•<|øPnerK¿xñ¢Üñ¤ž&L(Q¢„§§§òM’bëÖ­Rí+W®”*UJ½À�;wÊvuŸ:uêH‹èŸQê¬ý¡fÍš_}õ•Î>r½ PWM‘ÑW¡B…¼yóêMÚ]ý²GBêíím»è|¿~ý¤cH””›pâºHŽH@�Œ…‡‡ùùùõîÝûôéÓ:ïnÚ´iÊ”)‹/ž5k–~ÿý÷ß~ûMÊ>>>jªÚÒÒ²AƒëׯoÕªUœ§X³fͶmÛäS'NÔ®êpçÎ//¯{÷îÝ¿¿X±bJþñÙ³g={ö Tw;wî\¹råÜÜܴǼ}ûv×®]µó /_¾\ºtiÙMÍcÊ1—/_®NlŒ‰‰‘ ܾ}ûÎ�;¥Ð´iS©s®\¹¤bêdÉ€€¹´,Y²H¦OŸ>dÈm†Ñ,6i¾dɩޕ+WÞ½{—;wnãC�#Ge^pÅŠøaÛñ믿.P €¯¯oXXØóçÏW®\éèè˜7o^%ÉÕ¦M›S§NeÍšUš£eË–ñG›€Î“'Ͼ}ûÖ®]›6mZWWW[[[9ÔîÝ»=<<>œ-[¶uëÖXï»N�:"m:**êÚµkÇŽ;pà€TæéÓ§¿üò‹„E›Î›?þ¤I“úôé£3cZz£|VŽpþüyý¬wÁ‚÷ìÙ#ÝIÝróæM©­ô=©­\‹´{É’%·nݪNÕ”¤?<~üx„ ÒèÊÆüùó/Z´H]àáÇÞÞÞ»víJ“&�-cÆŒò‘Í›7/X°`ذaÚ¹«/^¼�þ&½Zú³D›‰–>éîîž.]ºýû÷Kg“JJß“¶�ZYYYI•HÊð‘ÈK“I «U«¦O©Ò€$êé‡r¢¯¾úJ=‰j·nÝ®^½ªn¹qã†V»›š€~ýúµt©ª {{{³ØéÃròR–!ö×_é|1 cG»º…YlV±råʉXâ@ɚŦ8¯_¿.}LZAN§Œ²Î�;Kg–ŠI³ªë�(äZ–-[¦[)?~\ZèâÅ‹½zõ’”N«Ì÷WH�etH·éÑ£‡4“Ä¿ÿþê9²QšF¢š3gNã+V¬�øŒ;V;oZšxË–-ÒÊÒ‘Š-jû}ÒÔ©S%nÚi¿Ò¬«W¯–6½té’t<%û)JCKmµ«FÈÁ¥&þþþ2X¤ -]Eš@⟔{‚4ŠT^½JTeÜI¨<( aÆ7n”A­]¢]^fΜYîœê÷ŽOù«A»¾�Œ¾Úµkë|i!Ç”xjg‘Ë ¹F�JÃÉÅ*1—ITµ”¿ä/Á”ñ¥ýM†t©žúõ€Ü ¤æ2ô$82Õ~Ý…@²cþ¹=céôéÓ%K–|ßOÙÙÙ¥M›Vþ?¿D‰eË–mÖ¬™áÅŠ)¢“èÑ÷öí[[[ÛêÕ«:t(Î'†e̘±ÿþÆ “²œ÷ܹsq®Pœ)S¦Ù³g«©ð³gÏzxxèœ].yĈêé&OžüË/¿¨ï6oÞ|Á‚»wïNð'Û�:uZºté{…ÎÆÆ&<<|Þ¼y?üðƒ)ôÉ“'£G�^»v­º¦DºtéBBB$V¹rå’ Ë•*yÆøHìß¿_)�9²|ùò?þøãõë×ÍÍÍÓ§OÿêÕ«¨¨(GGÇöíÛ�3Ƙg£ùûû2äàÁƒ:ÿb´²²jÔ¨ÑСCË”)£óé †ŸÔgÏãËž?Þ¥KílM³Ø%Júôé£>ÐO®®Aƒj~¹xñâ+V¬PÒˆ*??¿¦M›jÓß�7ž?¾ÒÏ¿ýöÛíÛ·®Þ¥K— ,¨¿ýÖ­[Çß¼y³²Þ®DUèåË—r9²÷îÝ¥ªê‚ÑZ:tX¿~}œËìÊ`”¾ª$[6lèããçÒÆr¢Q£F)k‘ÈÈÕÙA™2¯L9Ï‘#ÇØ±cu–öVHÍ{õêµsçNíÓÿÖ¬YÓ¦M›÷í®úw†T©RIÿ –+q�Öœ8qbœÝlß¾}ÒŸÕ•”`V©REª]µjUe‹t]õ $ ï”)SR§N-W§]|#΃Ë@�Ñ-0°[áÂ…•ån¤ítòªúS›•æ^¶lÙøñãµß´©ÍÔ±cGÚEœíêÕ«ß}÷�Œ>íÆìÙ³ËÐîÖ­›DLn¶çlÙ²IóµnÝZz…ú}ÃíÛ·kÕª¥}Þ£VΜ9eDÔ­[WnÅ2"Ô9Ý:\]]}}}Ož'VB'!ªU«–þŠ"ŸƒÐÐP†2`*Uªß×¥‰îB ! �°I“& 4¨eË–^^^Ÿm%õÐ4 ¨Zµê¹sç‚‚‚>xÚPY€-[¶Lþüþûï ¾ gÏž=xð`¯^½È>À¤H@$ÀÏÏïÂ… nnnµk×&ø„„„´oß^ºô¯¿þJ4`R$  ‰‰‰8ÐÿÝ«W¯U«V988T«V­{÷îåÊ•[¼xñСCåÝ1cƤN�ú3¿„¨¨(µA›Bßž={Zµj5|øpæ>àã  ðëׯŸ?¾^¿~½6–úVÙ²e»wïþù_ÂÇÕòýû÷iSè6lAÀÇÄÐÿçö 2xzzZX|îÿjò÷÷¿~ýºúrÇŽ/^¼ Y|Z–£F�" NNNK–, ×ntqqÙ³gO�>ÛjIµg̘1tèÐÈÈHuû›7o–-[xñâÅ«W¯–,Y’&ðñ±À¸¹¹ùúúþöÛoáááùòåkÑ¢E¿~ýìíí?çjŸ;w®oß¾q¾õèÑ£¿ÿþ[ ÎÎÎ]ºt¡‰||æ111DðÁ±4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$H@L‚4À$¬L*88xÿþýJÙÅÅÅÆÆ†˜àËöîÝ»»wï*åjÕª¥OŸ>ņ‚4LkÿþýMš4!H™6oÞܸqã{ù,Á0 Г` ˜–‹‹‹ZÞ¼ysÞ¼y‰ ’�ÈÈÈ .(åÂ… [Yqç†\»vM]–V›K�H£À´´OÌ›7oáÂ…‰ ’�°°°M›6)åfÍšÙÚÚ`$m~,b €I�€˜ h€I�€˜ h€I�€˜ h€I�€˜ h€I�€˜„!Ãlllú÷ﯖ €‘H@@ÌÍÍÓ§OOÞKpL‚Ð)ZLLLtt´üI(�b™››[XXÈŸ„âƒ# �EDD¼Œ%²Ï€¹¹¹µµuºXR  hHÀ»wïæÎ�«”{öìÉs|ÿ›J(ULLLxxø“XvvvÎÎÎd>Ðøx|.>¸øÎž8 Ù vèÒ-¥ìtòV*)\ËR¹ ùŠˆˆ¸sçNdd$¡â*ÃÄÕÕ•©ÐIÇCRЍ¨¨»wï’}$ÃD‹ B‘DÌ€H)>|øîÝ;õ¥……EÚXÖÖÖR&>H±¢££#""^Å’²²Q‹ ™9rŸ¤  �"DEE…„„¨/S¥J•+W.++²CÀG„���““ÓíÛ·ÃÃÕ�2ddàXZZŸDã«-€AûÔAsss²Ï€24d€Ä9p�$ Ríôç4iÒ¤J•Š˜údhÈQ_¾~ýš˜$_sÿãñƒ»†w¸•!Æð®®®„ðÒNätpp @|ìííÕñB:‰H@ÿ£OÃ* ì�Ðbbb#às#=EEE©/S§NML€øhg@ËÀ‘á£]”ï…%8¾|ÑÑÑÚ—�è0�0@g€ðû¶¤` H€……Ev×$ $ÆÀ�7nÜH`!ð~ÂÃà 0gÎBÃH@@RY[unRS-ÀìÖýÇ ìawËðû®®®„ãõéÓgöìÙÚ-#GŽ5j”R>}útÉ’%u>²dÉ’Î�;k·\¾|yK¬F� 2DÙ"‡Ýµk×½{÷ÝÝÝG��3gNí§Ê”)sâÄ ý*UªTéàÁƒêËk×®åË—O§+VÔ~|ÿþýæææJ9]ºtÁÁÁ4.dR ®Ù3@J�Û½G�C0Þ�!CêÖ­;zô耀ýw *túôéëׯËgÏžÕy÷Ê•+‹-Ú²eK`` ²å›o¾‰ŽŽþã�?ÆŽ¡l|øðáÒ¥KwîÜéïïïææ¦~|ûöíóæÍ“#«}WªTiäÈ‘Ú}D®\¹Ž92uêTOOOùäÙ³g·hÑ"UªT«V­’vìØñøñã²[Ù²e—/_®|ÄÒÒ’–…Š4ði䈕={öR¥Jé¿kccSxð`Á‚Ê–-ZèŸÅÚÚº|ùòò–§§g×®]{ôøï×Õ �?Ó¤I£¼”BÁ‚iPè# |J… 2¼Cîܹõ7.\Xþ,R¤ÈøñãäC† Ê>*T�·/^,å]»vݽ{×ÅÅE{�!C†,Z´(**JÊÛ¶mëß¿œعs§Yì‚!4Þ—!>![[[Ã;XÔÂÚÚZM7—.]ÚÛÛ[}©øþûï•BLLÌáÇu>ž;wîV­Z)å}ûö]ºtIÿááá7n,Q¢D±bÅh,¼/Ð�€ðˆˆ¥›÷*ÿ…ÿßZ|&¬­­•‚›››ZV)¥wïÞÕÿø Aƒ”BLLÌ´iÓôwعsgppp§N�5�4$ ::æÖýÇÊR& €dÄÁÁA-‡††êïP¢D www¥¼bÅŠ§OŸêì°fÍ+++‚‰D` hÿuÓg^{äw'J$_ÑÑÑqnšGöEÒ¥+@�ì„……½²=ª”ï¥-mkkKLŸ§9r’);;»ÐÐP)\½zUÿÝ .¨å˜˜ÓU£G�üñÇ«W¯ä,­[·6‹�m`õÿ‘Ÿ={F#"NÌ€>±¢E‹*…­[·^¿~]ûÖ… ~úé'{{{åå£G�t>kx~ô›7oÔr‚Éë´iÓöèÑC)?~ü¸F�...öÏž=»R TsÐRŸµk×Ò¦P�€€˜››;ýõ·E|@ß}÷�R «Zµê²eËNŸ>½gÏž~ýú}ýõ×ãÇ�Ï•+—²Ã¼yóÖ­[wöìYåeddä“'O”rpp°þ‘oܸ¡–Ÿ?ž`MúöíkeõßU ¯¿!*W®¬¢¢¢Z·n}èС½{÷Ö®][?KŽ‹%8 666†p@uëÖÍÇÇgÆ R~ðàAçÎ�•í™2eZ³fÍ·ß~;fÌeKHHÈêÕ«kÖ¬Y¬X1y)åððpå­ýû÷ß¼y3wîÜêacbbf̘¡¾Ü±cÇØ±cÓ§Oo &Ù³goÚ´éºuëìíí›7on¸Ú­Zµ5jÔíÛ·¥ìK ƒV×’H@Ÿ˜¹¹¹——ׂ –,YráÂyéææÖ¢E‹=z899Éyòä©W¯^óæÍË•+gañŸU vïÞ=bĈ£G�ª .X°`ùòå'NœX¡B…yóæM™2E»¨ô�7råÊU¹rå�7ÚØØÄW™o¿ývݺur.;;;ÃÕN“&�TãÇUÊ™2eR~èÀÇw÷î]Ã;DFFÞÁÕÕ•0Œ”ÑÎæñøæÄA EŠºÞË—/;vlüøñæææ´>’Ž4$ <<|åÊ•J¹W¯^¶¶¶ÄðIT¬X1‰Gˆ‰‰!Œ#YX˜;9ð¿?)ѤI“Ò¤IÓ­[7B�s3!„ŸŸßÒ¥Køá‡L™2 |Ì€R¢U«VÍš5+mÚ´�5jÓ¦ÍÕ«W[´háèè8lØ0‚ƒ…4�â„„„tîÜYy†ÄîÝ»ûôé£l÷ôôÌ�!ñÁ‡Â@Š“:uj��&LhÕªÁÁÄ h ű²²òöö8pà™3glll*V¬8hРªU«|àžF€dÁßßßðY³f%JÀx+VLð@‘€’Ã;äÈ‘ƒ(à³ÂГ  0 Г` hH€µµµ»»»Z& F" °´´,\¸0qx_$ ññdÉ’…'³)k@L‚Ðøx~Úp"Ý‘çÄ€”Ì«k‚¤$  Ñ‘‘ÏVÊY‹V°°âÎ `Ò(�€˜˜¨à;W•r–"å¸s‰5 &A`$ &ÁJ¦øðBŸ>Œsû­[·ô7ººº1à‹DÞŽ!­ãÜž{HcbbˆðEb €I0zb¢ÍÞ<' ÿ‘&ƒ™9“8�D" =ož›MÎCþcàu3»L„H¾½˜3  a–Ö©Àû" °´¶)X¿=q€÷R‚gœÛg·.Gp€”ƒ4><»LYãÜîêêJp€”ƒ5 &AHYž¡ÀGÀÐ�€èÈðË;V)å‚õÛYZÛ@ò5lذDGG |Ì€RŠÍ›7ÿùçŸÄ 3 ¿(þþþMš4yò䉺¥}ûö+V¬ 28räH»víX^ è/Êž={´Ùg±råÊ… ÚØ|+L±ßP8mzš ÉNXxÔ›sJyˆC„m*Kb‰·ná—�-—ÑÎà3´sçÎÖ­[¿yóæ³ª•Ôçùóç9rä �¾T$ ¿(½zõzöìÙãÇ�¥ìéé©läK-€d!&&fëÖ­žžžÇŽ{øðaddd¦L™Ê–-Û¡C‡fÍš™››ë$44tΜ97n¼téÒ«W¯´‰ ~ýúM›6M)Ož\þL—.ÝøñãÛµk§S‡Ó§O¯]»vß¾}wîÜyþü¹ƒƒƒ‹‹K­ZµÚ·o_¢D‰ø®ÔßßéÒ¥^^^ 5j”lܲe‹œ7 (((cÆŒ•*UêÙ³g�5´lѢņ ô˜={v©°úRBgmm­ÝaäÈ‘ÊYð‘‘€þ¢899͘1C)« hÿ�½;�¯¢<ûœ=Ùа) ÈæVк£¨`pCpCÅÁ¥Zý\(Z¥•Š»¢âBU¨h‹Ò±®¸+ˆ¸€FÖ¤J@!ëù¦ßÓóB 2�Èuýú ÷yfΜÉ=ç¤øçÉ3PóÍ›7¯ÿþï½÷^§N�n¼ñÆvíÚ-\¸ðŽ;îø[¹¾}ûN˜0!###ñ)ß|óÍG1þü3Î8cĈ»ì²Kð”GydýˆöôÓO?þøãŸyæ™ÿ÷ÿþ_8òÒK/5kÖ,¬Ã È_ýõ“O>9qâÄ>ø xxÈ!‡_'Mš<·¤¤$¨ Î;3O>9þÛöß~ûíàÁƒ'Ož¼Ï>û\zé¥;vüñÇg̘œö­·Þ:zôèà;ºï¾ûêׯ?“·ß~û‰'žž²xñâøà¢E‹8}úôøÈ’%Kž,7dÈ�;ï¼3¾?øàƒ‡vØå—_^XXŽ�5jTëÖ­¿ß´´´ “ãÆ�»ë®»‚‡øÃ.¾øbï±­B [Ù’%K>øàýë_Mš4yíµ×êÕ« véÒ¥wïÞ‡z諯¾úÌ3Ï\{íµëÜ?°ÿþóçÏ?묳Æ�ûi°}öÙç¸ãŽ»æškn¾ùæÄ=›þ¯øHëÖ­³³³ãŸ~úéüã . ÓçPp&¿ùÍoN;í´7ß|󫯾 F øá‡0€þâ‹/Ž>úè¼¼¼OÚ¾}ûÕ«W?ûì³÷ÜsO˜zß}÷Ý·Þzk¸ó;ìpÑEÄ“ôàŽ?þøõ[Ú­[·X,v×]wuÔQÇ÷ÛZR´¶®Ûn»í_ÿúWP´hÑ"LŸCÉÉÉ—^ziXß{ï½k×®�oš={ö[o½‰«g„FŒ±çž{VëN:餱cÇN›6­cÇŽáÈòåËó›ß¼üòË�=ö؇~xÖYg'vÁì¸ãŽÁÖ•+WöîÝ;//¯Y³fãÆ�‹§Ï¡&Mš‡Úyç�ƒú³Ï>ëÛ·oüÌO<ñÄK.¹äÑG�ïø^Î>ûì}÷Ý÷ÐC½ýöÛƒ§Ç§{Íyíµ×�?dÈ�† ºÓØóÏ?¿¡hÿñ�„;{ƒmEhØÊæÌ™_~ùå:›Ú¶m?üðÃüùóããsçÎ ‹ï¿ÿ~�§¤¥¥ :tÓÎd¯½ö ‹O?ýtøðá]»v êúõë�7®  àÞ{ï ·›¾øâ‹ ¸à‚ êÖ­»þqvÞyçø|íwß}÷Ž;îHܺÛn»Åë³Ï>ûÜsÏ]çé‡~ø 7ÜÖ±X즛nJÜFáa=oÞ¼iÓ¦Uø½äææ§Ñ«W/o°­¨,Á®b>kÖ¬Ï?ÿ|åÊ•«V­ÊÈÈhÖ¬Y�=rrrŽ?þø ×_'Q~~þ˜1c¦N�ü\X½zu“&MÂ_…Xgwª./õ6äU8œø+®ë8ä�CÂéºaà›hûí·�×+W®Œ×YYYañ—¿ü¥_¿~uêÔI|ÖÉ'Ÿüç?ÿyÎd»í¶ ‹vØ!8l…û|ûí·÷ßX÷ìÙsC‡0`À•W^¹|ùò 5jÔ¥—^ŸÔœx‡À-ZTøôaÆßZðZAý /ÅN;픸õ¶Ûn 'VÅ1dzÎÓ?þøã¹sç»­s7B¶°š@O�:µOŸ>¥¥¥‰ƒEEEŸ—{øá‡;wî|ï½÷þêW¿r-7d̘1×\sÍ�?þY´hÑ„r§�vÚ#�<ÿi@Õµ2¹â ßÐo†®¼òÊV­Z}÷Ýw§Ÿ~úFv+..Ž×‡rHݺuW¯^ýé§Ÿ~øáãÆ�K\v£qãÆñu“7Mýúõ74ïsÚ´iñ%5â´×—‘‘‘““óàƒõŠ+Þ|óÍC=´ê'�••Õ·oßðéÁ_¥Þzë­Þ½{Ç·6iÒäì³Ïsð^xaΜ9íÛ·O|znnnRùôjï®­«¦ÐÁ;,ž>wëÖ­Y³f™™™ÁGqÞ¼yyåSK>úè£à6qâÄ>}úlüP£G�þÝï~·ÿÞ|Œ,X¿égÍ|é@|� àcÙ¥K—’’’Y³fåçç'•¯°³dÉ’çž{.qi¡* ŽþûÕÆWÊÇŒZÿƒ25ùÐö»Äk `³KNN>å”SÖüüóÏÇ�÷ÄOÄGó¥ ÜtÓMÆ ê·ß~»cÇŽC‡½þúëëׯõÙ¾ñÆñzã±Ò~ûí&È�·Þz«Zt {÷îñ§óÍ7ëlýÝï~l-++K*Ÿ=vìØÄ­'NìСC—.]¼»¶®š@ÇßÁééé3fÌH|CoôáÇOŸ>}íÚµýû÷ÿä“OZ¶l¹‘C]tÑEGydøŽÜ,vØa‡*FÀ[ñ¥C;í´Ó�wÞÙ¯_¿””ÿ¬ú]\\ÇwÜqƒ ë‘#GjÀVôùçŸwéÒeÈ�!ûí·ßìÙ³O=õÔðwÙ+uæ™g~öÙgŒïÿÎ;ïì¿ÿþ?üpD§ºÃ;ÄëõWÆH”xÅÄ[VQZÚ§Ïî¼óÎëïЭ[·#Ž8"¬ï½÷Þ (--�4iRÏž=›6mê}µÕ¥Õ®Ó�ÅbÁGñË/¿œ?þâÅ‹W­ZõÕW_…›~øá—³Bf÷¡«¯¾ú�ŠéÓ§ÿûßÿÞqÇ«~Ø /¼pý•‰Ö7oÞ¼œœW`#>ùä“=zpÀ&LH ^«¢iÓ¦�<òÈW\qÝu×MžüŸ[" 4h÷Ýw�ç³›QpØxýÑGuïÞ}C{&ΕÎÎÎ®î …ÓºCݺu«pŸ«®ºjúôéIåK|<ñÄçž{îŒ3–-[æöƒ5Dí ËÊÊž}öÙ§žz*x3mÂb1Û¸ŒŒŒ m >ö;vœ={viiéûï¿ÔQGUý°�Ëi/Û‚’Ò²×?ûé'ÏAí§¥¦è �¯ï>±â Çݪ9@µ”••�rÊ)aØzÅWT1}~ê©§¾üòË«¯¾:>²÷Þ{?ýôÓÓ¦MëׯßÊ•+c±ØM7ÝE}衇ƗW~íµ×.¼ð í¹xñâx}øá‡W÷…æÍ›Íš5Ûc�=*ÜçÈ#�ìÚµë|�T~+ÂsÏ=777·Aƒ'œp‚·VMP è'Ÿ|røðásçÎuµ¢Ð¦M›Ù³g¯óãHTR{eÎOwW8°íÎi©ZÀd7®»� ÙšTËK/½ôÙgŸ…u‡ÖÙ‹Å6ôÄÿùŸÿI  CG}ôc�=Ö§OŸ¤òéɉ›ïLXZZºÉ'|øá‡7iÒdÙ²eAý÷¿ÿ}õêÕuëVüW£ø ì·ß~­[·®î ½ýöÛañÛßþv#»ýþ÷¿ïׯ_RùDòçž{nòäɧžzjVV–·VMPÓèË.»ì¶Ûn‹? Þ¦‡rÈ^{íµ÷Þ{·mÛ¶qãÆï½÷Þ‘GéBn²�ü` g†–/_¾çž{&n]°`A¼.**JÜôÚk¯}ýõ×-[¶\瀽{÷nРÁÊ•+×I™3Ù+VlB"?ÎW\ñ»ßý.©üÖ‚cÇŽ½ä’K*Üóoû[XÄoXu%%%á 5j´‘IÖ�“N:)ø^æÏŸÔç�wÞ÷ßoý�š£Fÿ"ùÔ©Sãés¯^½Þyç�yóæ=ôÐCÁ›ûØc�mÛ¶mðAJM5±òÏêF¶~ùå—aѼys½Øò'&Oš4)qÓ?üpýõ×Ç&†ÑIå3 o¸á†õXTT´fÍš 8øàƒÇ›5k¯ßzë­x=uêÔ+V„u�ßðÑG=ì°ÃÎ:ë¬ÄÞu×]EEE™™™üãÇ»víºÝvÛ…Éòþð‡]vÙ¥]»v“&Mzå•Wf̘î_7???//oCwLKK žxÌ1Ç|øá‡ß}÷]pÂS§NM\ˆcñâÅá4äÞ½{糑oÿ¯ýë¯~õ«óÏ??qpæÌ™á ë›o¾98x¥=8pàu×]Æègžy¦7UÍQ£èø?¼oÓ í~öªââ‹/>ꨣÊÊÊ6×éí¸ãŽUŒ€·âKzè¡ Ðñ"ëÕ«Wƒ |¶¼ýöÛïÌ3Ï|ì±Ç’ÊoHxG¹ nРÁ_þò—AƒÍ™3çÅ_ F>þøãîÝ»7kÖìŸÿüç‡~>}àÀ�Ó¦M0`@‹-–.]:iÒ¤G}4xîøñã;wîœøBuêÔ2dHxÿÀï¿ÿþ´ÓN Š.]º<÷Üs¯¿þzð”ðn~¡œœœ+¯¼²]»v­Zµjذá:§Ý¸qãW_}58à_ÿú××^{­S§N—_~ùþûï_ZZ<¼å–[V¯^}ýõ×><%ecË0tíÚuذa<ðÀ\СC‡¢¢¢)S¦Øn»íî¹çžsÎ9§*= v>÷Üsƒo-99y�8ž­«FÐñeh¦OŸ¼Ý+Ü'øtUñhûì³ÏVùF¶âKžþùgžyfý zìØ±&LH*ÿ%…k¯½Ö‡`kyôÑG»víúÐC}ñÅuêÔiݺuNNÎo~ó›Æ�[ÇŒsÎ9ç¼ûî»�5 Ƈ¾ÓN;ÅèX,6¾\Ry µûî»:ôòË/¯pÁÕ›o¾999ù¯ýëÊ•+ƒW9ãŒ3.¾øâ0˜¾çž{ÖÙùã�?>ýôÓƒâÁ4hÐúG«[·npæ—^zé¸qã^zé¥k®¹æÇ έmÛ¶—]vÙYg�µë®»Vú½{ì±�?þøM7Ýtýõ×çççׯ_?8± >ï¼óš4iRõüñ£F�úõ¯�í¦Ð5I� û÷ï÷Ýw'•ÿêA½zõ‚�Mâj/sçÎ Þ—O<ñDøpÍš5%%%iii.êúü9úè£Ã‡ß~ûíÈ‘#G�>¼öÚk·ÌúïÒoU‹V.µNaaá¢�…õÛÍϬúïPKxà�šla)))—”«pk«V­þùÏ®3xòÉ'oНiii.·ÎøÝå6íä;uêš6Í{ì1nܸŸÙÃp-i·¬ijt\Û½{÷óÏ?ÿÁ >K#G޼ýöÛ;wîÜ´iÓ‚‚‚Ï>û,\ƒPë÷Ýwaݽ{÷ôôt=¨ 4@%ÒÓÓsrrô ºÐl9þø\R£�ô�_¤ØÝ§kÀ:¬ @$ÐD•)+KZ±ð§ºQ‹¤ÿtP%h€Ê”•$}ýÞOõM“R2´øÅ‹ÅbEEEúÈÈÈHNNÖØ4hÖUTT4eÊ}ôîÝ;33S`Ó 6UÁòx™——ÙÙÙ@lªÇ.�—-ÿ·ŽÅb@@-6kÖ¬3Ï<3//ï¼óÎ=z´†P£¤hÔ^C† ™5kVAAÁm·ÝöòË/k5Šj±ÒÒÒxmeHj4Ôb·Ýv[»víêׯ?lذ#Ž8"ºZºt©nS]Ö€€Zlÿý÷Ÿ;wnÔ¯2mÚ´I“&=ôÐCNµ 6Õ™·Å˯oÈÑ~©-ZtÆgwÜqZAu  6Uý�ãevv¶~ð‹´víÚSN9åÛo¿Õ 6� 2©iIí�øo ÛŒÒÒÒ³Î:kæÌ™ZÁ¦‘¤T&9%iû†Ú@ÔŠ‹‹-ZÔ²eËM>BIIIZÚfKü øÌ3ϸ4l24le}ôѸqãžxâ‰c�=öÑG F^y啇~øõ×__²dIÆ »uë6hР¾}ûVøôÙ³gOœ8qÒ¤I<ðÀ¡‡ºÎÖ¢¢¢àhûÛßž{î¹7Þx£yóæ±Xì™gž;vì|°råʶmÛ8pèС‰áu~~~÷îÝçÏŸW.¬;uꜳ G¥аuÌ™3ç±Ç{úé§çÍ›üþûï=zô8õÔS>øà0hžðÀñ6 4[Î';ÞØ~çT} ÖY[ûSRaX_Õ詬ôò¿ _©3lÛm·ÝN;í.sqøá‡_wÝuëìСC‡1cÆœvÚiáÛnºéŒ3Έo­tVò.»ì¯o¹å–Áƒ'nÝa‡N>ùäûï¿?¨gΜYVV–’’⢰¹x3ÀV_æ¢E‹îpê©§vìØ1¬?ûì³÷ß?¾©N�:Uû�wÞyþùçƒÁ(f[óËc €jûzXݤKfë›]‡îºë® & 2¤k×®)))Ó§O5jTaaáÈ‘#¯ºêªøžß~ûm^^Þ'Ÿ|rýõ×Ço½õÖzõêzè¡{ì±G�:u’ʧ??þøãñžxâ‰ãŽ;.===>²lÙ²àåwèÖ­[â)ýö·¿½ýöÛW®\™T¾ H 555éÛ·¯ëE¥ÐÕ–½CJRv¶>°ÙuëÖmÚ´i7ß|ó­·ÞºdÉ’:uêì¾ûî]tÑ AƒZ¶l™¸ç˜1c®»îºuž¾råÊK/½4(îºë®!C†\yå•ãÇ�_¼xq|‡§žzêõ×_ÿÕ¯~5yòäàá 'œ0cƌą;n»í¶)S¦ <øòË/Gš6mú /‡ýàƒ6lؽ{÷à°p€‹EU *QV[°ò§ß*Ú­ArŠ¥]wÝõîrßíÚrßç–rÙáoû[UNiÿý÷ã�7\6� E¥I�~TÖW”™eñ|€ª@°®ŒŒŒÞ½{ëCØ M€M&€`]ÉÉÉ™™™úüL~“€H˜Í–óB›ç¶h¡Ô:EEEŸ~ñlXOÞ;ç§ß½zê)�©ÉN>ùdMj×{†Åš5ktƒ_3 `kZ±bŲeËÂúã�?Ö~IÌ€€­cáÂ…|ðÁ­·ÞZVVŽ|þùççž{î)§œÒ¬Y³V­ZÕ­[W—¨ÕаuôíÛ÷ý÷ß_gð‘rA1eÊ”ã�?^—¨Õаu¼÷Þ{šÀ/›5 ˆ„€HX‚ ©©©=zôˆ×RCäççodk^^ÞÆŸž��­‡54@%RSS›5k¦5ÍE]ôsž‹Åô¢f "!€ h"a h€J¿óÎ;a½ÿþû§§§ë @U *‹Å/^¯5¨�’““×ù/=� )++ÛÈLJj@P+ÝsÏ=Ùzì±Çj$JIù? ±ûýNØ�’’’�||¨4µRãÆ�7²5;;[‹ QrrrFFFQQQøpõêÕuêÔѨPð‰×ÁÇ èŸCx°M¨W¯^¼.((° T(øh� ?8l4À6!1G+..^¼x± ÖÞ*ø€ÄGêׯ¯-?‡%8¶ YYYéééñdmÕªUóçϯ_¿~ݺuÓÒÒ¬r˶¬¬¬¬¤¤dõêÕ‰ésð‘ÉÌÌÔŸŸC °MHNNÞu×],XŸø\\\¼¢œæÀ†>2€þ™üÓÀ¶¢N�:»í¶›@ *|L‚‹{uþ|f@³åôìÙ³}ûöú@­³víÚ/¾ø"¬O<ñĬ¬,=j¯0ƒ^²dIâ:@¢ôôô]wÝUú¼Y ¶-uêÔiݺuaaaAAÁªU«ŠŠŠôõêÕ«_¿~ff¦_Ø\Еþ/§aÆñZC€_Æéd•kܸq,+++‹/ Ûæ'"%%ÅõGA P‰ÌÌÌK.¹D€_ªäääÔÔT}¢à&„DB @$ÐDÂЕˆÅb+W® ë ¸#@  *QXXxûí·‡õUW]•••¥'Ua "!€ h"!€ h"!€ h"!€ h"!€ iZPÉÊ´´cŽ9&^k@IR*ûA™–và�ê@uY‚€H ˆ„%8Ør¦}ºäÓºú@à”®»kÀ/ž %ÅÅŸ¼ûFXwدGZzºžT… ee¥_Ìþ0¬÷îv`R’ J¬ @$ÐDB @$¬ D(É ÇóvŒU8ž��­i¿h BCz\ñøö�Åbšð‹a "!€ h"!€ h"‘¦—‘™uêo/ÕØ4wOy­Âñã:4×€_<4¡Æ»¶¨p<;{wÍøÅ³‘@ 4‘°4@%Š ×>ûè}a�3ð‚ŒÌ,=¨ 3 ˆ„Ðl9Gg|Ú>sµ>Pë¬M*ú2uiXŸ”ùQVf†žÀf0ç=à¨}_=€Df@ 4‘@ 4‘@‰4-€*Ê[œ¿±ÍÛçmüéÙÙÙzÀ6E UÕòèÁ?çé±XLئX‚€H˜ P‰Ô””;í¯5 ŠЕHOO;æ ®úP]¦ò 4‘°TÕ×ÓÆllóGk$@T¢¤¤ô½9óÂzßömÒÒRõ`›•ݬñF7gk$@T¢¤´ô^ÿ0¬;·k)€¨"k@ 4‘@ 4‘@‰4-`‹ùWÝ ì©Ô:k×®-Èz;¬Õï–••¥'@…š7o® ‰Ì€ h"!€ h"á&„•ÈÌÌ<ï¼óⵆT‘ ÉÉÉ 4Ð ÑÂ… ×,))Yg$;;[¯€m™ Úºwï^•Ýb±˜^Û2k@ 4‘°@% {ì±°>óÌ3݇ ŠЕˆÅbñZCªÈD h€j{óÍ7×lÚ´©Î$@T[‹-ÖlÞ¼¹Î$²‘@ 4‘@ 4‘HÓ¶˜]vÙÅmÁ©�Ö®][¿~ý°ÞÃYYYzPh€J¤¤¤´k×.^k@  Ùr.{úý3ÿ­ÔNÍÂ?&?ö¶^Ô(“Î;X Æ2•€H ˆ„€HX ±²ÒUË…u½&Í“SRõ *Е(+-YøÎô°nwìé©h€ª±‘0€Zà‡o—V8ž——·þ`vv¶Ž@M € ˜zU¿ Ç[^UÁ`,Ó1¨ ,Á@$ÐDB @$ÐDB @$Ò´€šïØ?M¬püž~ûkÔXhj�íwjZáxvv¶æ@�e ŽÚ-??¿E‹“'OÖ ˆðejzv�^áÿ‚ZCªÈ èÚ-77wÑ¢E¥¥¥ZÑINIÙд;6 èÚ-77·^½zǼV5�ºûꫯÞ~û휜œí¶ÛN7€šF]‹åææ_û÷ï¯@ d èZ,77w§�v:ꨣjË �®ûtûú ]8j�¢’Òñ¯Öj™‘–ª'5È“cõ€šî”qzl³еլY³æÌ™sÁ¤¥¹ˆ­²²¤¼üÕñ€*’]ÖVãÇ�¾0 qðÍ7ßÌÉÉY¾|y|äŒ3Îxì±Ç´ Øò¬]+Åb± &ì¶Ûn=zôHñÅÓçÀã�?^XX¨cÀ–gt­ôæ›o~óÍ7W^yerrrâø…^¸bÅŠüüü ž8qb8‹Åt ØòеRnnnðµÿþëŒï¼óÎwÞygXÇh€­B]û”””<ùä“{íµWçÎ�ujŽø�‹ÿïhÞúcÙÙÙÚl еÏôéÓóóó‡ ¢P£´2¹‚ÑŠ-”l#ÐµÏøñã“*Zc ËÏÏ_熇š7ožKÛ&t„>úè£ &Ìš5ëóÏ?_¹råªU«222š5kÖ£G�œœœã�?~�[VÅÚµkŸ}öÙýöÛ¯M›6UV~~þ˜1c¦N�úÅ_¬^½ºI“&tÐo~ó›Ã;l“¿»{ï½wĈ®2°!è¨L�:µOŸ>¥¥¥‰ƒEEEŸ—{øá‡;wî|ï½÷þêW¿ªÖaŸ{‚‚jM3fÌ5×\óã�?ÆG-Z4¡Üi§�öÈ#�dee¹^Àf'€ŽÊƒ>OŸ»uëÖ¬Y³ÌÌÌï¾ûnÞ¼yyå7!ùè£�?üð‰'öéÓ§ê‡ÍÍÍMIIéׯ_ÕŸr饗†E“&MºtéRRR2kÖ¬üüü`d„ K–,yî¹çêÕ«ç’Á†$''íÒp»x @  £�tÓÓÓg̘‘˜ð¾ñÆÇŸ>}úÚµkû÷ïÿÉ'Ÿ´lÙ²*Ç,((˜:uê!‡²ë®»VëdvÚi§;ï¼³_¿~)))ÁÃâââ1cÆ\qÅ………¯¾úêe—]öàƒV÷¼ð O9å”Jw›7o^NNŽ÷µZfzêàž{ê@u  £rã�7.Y²dñâÅ×]wÝ:ó‹{ôèñ /ôìÙsúôé?þøã}÷ÝwË-·T嘓'O^»v퀪u& 4xíµ×ÚµkIOO¿øâ‹[µjÕ§OŸ²²²±cÇž~úé‡zhµÛ¸œ q_ß}b£Çݪ3À6K•Ýwßý¥—^ÚÐÖ””” .¸`úôéAýþûïWñ˜ãÇ�ÏÈÈ8餓ªu&úÓŸÓçÿþ5ø¸ã ôÀõÈ‘#«@ëÈn\·¢Ñl�¶Yè-$‹}þùç_~ùåüùó/^¼jÕª¯¾ú*ÜôÃ?TåË–-{ùå—�;î¸vØ¡Z/½‘ÓW_}u@OŸ>ýßÿþ÷Ž;îèJ›‹:ZeeeÏ>ûìSO=5}úôð¾›lÒ¤I¥¥¥ýû÷¯î3226´);;»cÇŽ³gÏŽüþûïuÔQ.TôAŽå¬ ëÆõ³RR܈ JÐzòÉ'‡>wîÜÍr´ÜÜÜí·ß¾OŸ>›÷$Û´i3{öì X¼x±K**)óÂça}UNǬŒT=¨ tT.»ì²Ûn»-þ°uëÖ‡rÈ^{íµ÷Þ{·mÛ¶qãÆï½÷Þ‘GYÅ£ååå½õÖ[ ¨S§Îæ=ÏX,æbQ@GbêÔ©ñô¹W¯^#FŒØo¿ýÖÙ'5µ“(sss“6ºšóF”””ldë—_~Í›7wá€Í(E ¢æÅ�sÏ=wêÔ©ë§ÏÕ5~üøF�õìÙsžûâ‹/nhÓܹsçÌ™ééé?ÿ$™‰+V„EïÞ½7´Oqqq�öI¹ßþö·ééé›p2=ôPß¾}+Ütà 7„E¯^½4hu[>ޥߪ­¼=¨u 5x,¬ßn~fff¦žð3xà�šÀ¶À èH´nÝ:,¦OŸ¾¡}¦M›VÅ£�?>øÚ¿ÿM;™çŸþ™gžY|ìØ±&LH*_ äÚk¯uÕ€ÍË èHôïßÿî»ïŠ{î¹§^½z—_~y£F�â[çÎ�{ÓM7=ñÄáÃ5kÖ”””¤¥mðZL˜0¡yóæ¿þõ¯7ù|X§N�£�>:|øí·ßŽ9rôèÑáÃk¯½ÖúÀf'€ŽD÷îÝÏ?ÿü|0‹�9òöÛoïܹsÓ¦M >ûì³E‹%îŸàu�9明;¶nÝzéÒ¥Á+®Y³&ÜÔ¿ÿë®»Î%6;tTÆŒS·nÝ;¬¬lÍš5o½õÖ:;tîÜ9++kæÌ™A]TT´téÒ 5jÔ:t¸þÆ€ª{©©©¥¥¥ÉÉÉ÷ßÿ°aÂs˜].¾Czzúˆ#®¾új ˆ‚:*)))£G�8pàØ±c_|ñÅ ”––Ö¯_¿uëÖûî»oNNÎᇾfÍšQ£FM™2嫯¾ZµjURùZ‰ ž2iÒ¤=÷ܳk×®Õ=�àP?üpðõüóÏïÕ«Wp2S§Nýæ›oRSSÛ´iÓ³gÏÁƒ·jå–€@TÐÑÚgŸ}î¼óÎ m­S§ÎðrÚáå—_^¶lÙ\° /=¶\X7oÞ|t9W`«Ý-.///ñavv¶ð‹$€®Ñrss“Ê—iÖ Øš?(ÓÒâwÝÈýB`#N<ñÄ�l�ÅbZÀ/’$¥æ*,,œùdIIIÿþýµ¨½Ð5QIII«V­N8á­j/KpÔDCËéP«™ @$ÐDÂl9�:ujß¾½>Pë¬]»vÆŒa}Àdeeé @U˜ @$Ì€fËéðÇç’}¤Ô>%EIÌ ËÿÊMJËëØÝ§ë ÀF ª 5]ªK PéOÊŒ¤n}´ º¬ @$ÐDB @$¬ P™X,©´ø§:5=)9YKªB P™Ò⤦üTwí�ôãʰÌËË ‹ììlMXŸ š»4ü³åÿ±XLWÖg h"!€ h"!€ h"‘¦ÕsæmáŸ_ß�£!€¨¦ú;‡fggkÀFX‚€H ˆ„%8*“’šÔl¯ÿÖT� 2ÿ  ÷ր겑0š-ç“ol¿³å øqáÿy8|¥–$2€H˜ P‰’ÒØë JÃú ÝRÓR“õ *Е()Kz%¯$¬lžšf!€ª±‘@ Kpü\yß••ÿ‘|ÉÎÎÖ€�àçjyÇêÿüqGËàK,Ó€�%8ˆ„€H ˆ„€H ˆDšüL_«ûŸ?.™­‰ЕÈLKºê Ìx½¾ìÊ›$;[¯  *‘œœœ•® Õf h"!€ h"a h€J¬-ŽÝ>³(¬/90#+=YOªB P¹µ%1M¨.4[Î mnœÛ¢…>Pë}úųa=yŒŒø¦“O>Y6ÄÐDB @$ÐDB @$ÐD"M ª%???^çååÅëììlÍH$€¨ž‹.º¨ÂñX,¦9‰,Á@$Ì€¨DJJJ|y� Ö€*@Töƒ2-mÿý÷×€ê2•€H ˆ„%8ªçž{î‰×Ç{¬†lˆ ¥¥¥ ,ëÝvÛ­qãÆñMñ›°>4@%JKKß}÷ݰnÖ¬YjjªžT…5 ˆ„€H ˆ„€H¸ ![NÏž=Û·o¯Ô:k×®ýâ‹/ÂúÄOÌÊÊÒ€ª0€H ˆ„€H ˆ„€H¤iÀÆedd <8^k@  *‘’’²Ë.»è@uY‚€H ˆ„€HX ………�<òHXŸsÎ9™™™zPh€JÄb±ýë_ñZCªÈDB @$ÐDB @$ÐDB @$ÐDB @$ÐD"M 6.%%%;;;^k@  Ùr¦}ºäÓºú@m´ý>‡…Åß>Yª°u�ÒuwM¨-Lå h"!€ Ö€¨DYYÙ·ÿZÖ;íÒÌ}ªH P‰’â¢W¦<Ö9/ÈÈÌÒ€ª@5Tþ’…ëæí«pçììl¨iÐ@ 5¤÷Á n`çX,¦c5�•Lˆ„€H ˆ„€H ˆDš5ÓÝS^[ð¸Íu ¶@5Tã][¬?˜�½»ÎÔ–à f@Töƒ2-½GÏÞñZCªH P‰”ÔÔf-Ûè@uY‚€H ˆ„€HXš-çèŒOÛg®Öj�¢ââÉ/¾Ö'u@FºûÀV5ç=€Šµï«Ô4h€J”•Å>ûzÑÿÖûk@Y‚€H ˆ„€H ˆ„›@í“·8Ý¡íóÖß-;;[¯ØŠÐPû´Ö­O87%-CO(bêೋLi1¸è2ÑhT£ØÕ‚€„@�hB @B HˆT-€mtŠL¹ÿìßk  `[ÕØ³q‘)‘HD[À$„€„@�Æ€(CRRJ½–mcµ†ÄI P†äÔÔFûªå%€Þ©¼óÎ;YYY«W¯ŽMéÓ§ÏOž|òÉÍ›7ë °ý¹z§2pàÀŸ~úiÕªUA=a„pb4Õ`û@ïTêׯ?jÔ¨°ŽÐÀ6ÊÍËÿ蛟Âú�–õRSüî@\ÐeÈÍ‹þsöаn©›š¢%qq !€®Ô|ðÁZµj=ùä“ZT9†àØV³gÏ?~üœ9s¾úê«_ýuíÚµéééMš4éܹsVVÖI'�”””´Õ+ýõ××­[÷öÛo÷éÓg[6rÕªUcÇŽ�:uê×_¬°aÆGqÄE]tÌ1Ç8‚ÀVX¼j]qS™‰Dô veèm2uêÔSN9%//¯ðÄììì¯ <òÈ#íÛ·=zôa‡¶uë¯_¿~ðÚ AƒmÙȱcÇ2dÆ ±)Ë—/_àøÃ£�>š™™éPåÒâòÉÅLÝbb4Õ+Ø•  ·ÉC=KŸ>øà&Mšddd¬Y³fáÂ…‹ ~ò?{öì®]»N˜0á”SNÙŠõ‡Ñó6Ð×\sMX4lØð ƒÊÍÍ�3gΪU«‚)ãÇ�ÿî»ï^~ùåZµj•wµÁV¯^]æbA+œ'°k@o“Xn›––6sæÌÂ1î¬Y³† 6cÆŒM›6õîÝ{Þ¼y-Z´(eUk×®=âˆ#jÔ¨ñÈ#�´nÝ:œ¸eýÁ\xá…{î¹g°æ”””8·3X~Ô¨QgŸ}vrò¿GýÎÉÉ;vìõ×_¿yóæýë_ƒ z衇ʻï£G�¾ùæ›�@I<„p›Üzë­Ýºukݺõc�=Vä&âÎ�;¿úê«ÁÜ Þ°aØ1cJ_Õ²eËæÌ™óî»ï|ðÁcÇŽ '6lØ0öšŸŸÿ׿þ5XíçŸ>kÖ¬õë×ǹ‘uêÔyë­·z÷î¦ÏÕ âò+®¸bÒ¤Iá”qãÆ½ñÆŽ&P±Ü½Mš7oþÚk¯•4799ùÒK/�1cFPüñÇ¥¯ªM›6¯¾úêí·ßþæ›oŸš2eÊ#�<»zÙ²e}úôù׿þ•””tòÉ'ßxã�µk׎s#ï¸ãŽØ-Õ…�xâ‰ýû÷ðÁƒzøðá]ºtq@€ $€®HÑhô«¯¾Z°`Á7ß|³bÅŠµk×.Z´(œÏ ËÇøðÃGŒ1yòävíÚ 2$˜þæ›oÞpà 6lèׯߟþô§ýöÛ¯\[uÎ9ç”4+Xm@Ϙ1ã矮[·nü«8pà™gžYæb .ÌÊÊrnÀ.H]òóóŸþùgŸ}vÆŒáÃý¶EÇŽŸyæ™E‹�9rðàÁÁ”?ýéO_|ñÕW_ݤI“­XazzzI³"‘H»víæÎ�›——÷ñÇwÜqñ¯¶AGvMßÞ׫˜©'þ�Î…  ·Õĉ‡ 6þüŠ]m^^^NNNðÖÙÙÙa]áZµj5wîÜ X±b…£ ÅÊHK¾úÄ6±ZC‘5‹›Ñ 0ô64hÐÝwß{Û²eË£�>z¿ýökÓ¦ÍÞ{ïÝ Aƒ�>úèØc�-×:ƒ�Üyç�“'O®_¿þßþö·«®ºê®»îúïÿþï1cÆœsÎ9þóŸË;Gé¢Ñ¨ã¥KJJÚ½Fº>”—zëM�:5–>÷ìÙóæ›oîØ±c‘eRRRâ_áÌ™3o»í¶×_=¨O:餇~xáÂ…AÝ¥K—9sæôéÓçñÇÿûßÿ~ê©§Þxã�:tˆsµ¹¹¹¥Ì]°`AX4mÚÔ1*�ß%ßzO?ýtX\xá…S§NÝ2}.—ùóçwëÖíõ×_ßm·ÝF�ýÒK/5hÐ Q:xmÖ¬YO§¤¤<ÿüó‡vØÚµkã\óôéÓKùÒÏ?ÿ<(ÒÒÒ¶qûŠpôÖûé§ŸÂâä“O.i™œœœ8×Ö¤I“¶mÛÖ¬YóÑGmݺu8ñ‡~ˆ½&''2ä¸ãŽ»ð ëÖ­[½zõ8×üðßvÚiÅκå–[¢gÏžuêÔqL€ $€Þz-[¶ ‹3fdee»Ì´iÓâ\[íڵÇ»:6å÷¿ÿý¼yóʵ�S¦Lyî¹ç¶Ì Ç�7~üøjã„ :Ô…’lÎÉóêWa}i÷}3ÒRô è­×»wïûî»/(î¿ÿþZµj]{íµõêÕ‹Í�?þí·ßþÔSO…o7nܘ›››šZ¾†‡Ñsxô¶èׯ_õêÕ�?þøðí�?þ8|øð‘#G†o‡º}Æßø¬ÑÙk›íåÌ¡ÊÙ¼yó¼Ô'Âú½&çeddè Ä©S§Nš°+@o½Ã?|À€=ôP4>|ø=÷ÜÓ¾}ûÆ�ÿöÛo_~ùåòåË /”—[ùHw@fòäÉ…ßtÐAz°+@¦qãÆ…ßF"=Ø•  Ê�——·lÙ²°nÖ¬YJJŠžÄC P†ÜÜÜ×^{-¬Ï;ï<4@œ<„€„@�hB @Bx!ÛÏ�ضm[} ÊÙ´iÓÌ™3ÃúÐCÍÌÌÔ€x¸€„p4ÛÏþ·½\­Þl} êÉÍ®öÉœ° ë:¤¦ºrÄEŒP†üüüÅ‹‡uûöí5 NÆ€ !Ð$„€„04@ÙÖ¯_«W¯NKK ŠØ¨Ð¡H$¢KE Ê6uêÔ"EÑhT—Š0 !€ !Ð$„€„@�©ZPºôôôûï¿¿ÈÄN8AgJ'€([ƒ ŠL‰D"ÚP:Cp�hÂeˆF£999a�–––””¤'ñ@”!''çùçŸ묬¬ôôt=ˆ‡!8H4 a¶ŸîÝ»·mÛV¨r6mÚôõ×_‡u¯^½233õ î€ !Ð$„€„@�hB @B HˆT-(ãB™šÚ¥K—X­!q’¤”u¡,@?Cp�hB @B  ¹¹¹o¿ývXqÄžC'1 @rssßxã�°îÔ©“ N†à !Ð$„€„@�hB @B HˆT-`»™öÅw_l®©T9Ù›7}¾ò—°žôé’ôŒL=€˜3;4×JâhB @B‚  iéYý.�Õ'4@’’’Œû ° Á@B HCpeXõݲ’f-®-vz$Ñ7ÐeÈÞ¼iê? ëιÐxÐì‚.?ùÈg•0=�êh€²egoÖ€ò24 !€ !Ð$„€„ðB  ÷½ôVI³NÜ¿©þP4P†ÿÕ¬¤Y‘Hsý $†à !Ð$„€„04@’“S"û´‰Õ'4@YÊ´´ßs¼>”—šíçøô/Úf¬Ó€�ÊçŸìB;Ûö4 \Œ @B HCp”!//oî‚¥aÝnïߥ¤x!@\ÐeÈÉÍ{~ÆûaݺE4@œ Á@B¸àÿX¼bUñ3j,.2!‰h@)ÐÿG‹ã/‰sÉh4ª]¥0 !€ !Ð$„€„@�©ZPØ·ÓÆ?cŸã5 \ÐÿG¤IƒfD4 \ÐeHOK½äìãcµ†ÄI’P†äääF{î¡åå!„$„€„@�Æ€(ÃæìœGŸ{=¬/8­kFzšžÄCÍöó}ÍýëÔÙW¨r6mÚôõº÷ÂzY­™™™z;VÓ¦M5 J0 !€ !Ð$„€„@�©ZTNË–-+vznnî–#‘ˆŽT6h ’:üðÃã_8�ê@ecB @B‚  ÉÉÉM›6�Õ'4@ÒÓÓÏ:ë,}(/·ò�î€*©wÞy§Øé�7Ö€*A TRÍš5+vzìñ Trh€2äçç¯X±"¬›4iâ9„q@”!;;{âĉa=pàÀÌÌL=ˆ‡ûøH4 !€ !ŒÍöÓ¨Q#Ï+§*Ú´iSíÚµÃ:8‡� 'w@�î€fû4éã:ïý¬T9y9›¿üdIXÏ}ìí”´ =¨¢žù㑚ۓ; H4 !€ !Ð$„‡”!9%µÙï»Åj ˆ“$  IÉ)µ7×€ò@°óXÿãÊRæ.^¼¸¤Y‘HD÷ Â  ØyL|v)s[ .qV4Õ=¨pB@B¸  ù¹9Ë?ùWX7ípTrjšžÄC P†h4íÊ%±ZCâdB @B‚€�Ç wL(eîýgÿ^‹`{@°ó¨±gãRæF"-€íÉ$„€„@�hÂCwï¼óNVVÖêÕ«cSúôéóÄOè °C wÓ§O/œ>ž|òÉqãÆeddT’-YsRÛÚ»;RT9›sòÆÔý*¬/­ýXFZŠžTUÇí„;uæã,•–zç1pàÀŸ~úiÕªUA=a„pb4ÕØFi)WŸØFÊK½ó¨_¿þ¨Q£Â:@ì(B@B HCp”!�þº!'¬ëTOKJJÒ€x K3{öìñãÇÏ™3端¾úõ×_×®]›žžÞ¤I“Î�;gee�tÒIU"‡ZµjÕØ±c§N�úõ×_¯[·®aÆGqÄE]tÌ1Ç8Ä�Í9ù÷Lù"¬gµËLOѶ¿Å«Ö•0cqI‰D"úÀŽ%€.ÑÔ©SO9唼¼¼Â³³³¿*ðÈ#�´oß~ôèчvXeÞ‹±cÇ2dÆ ±)Ë—/_àøÃ£�>š™™éXT~-.Ÿ\üŒ’¦ü�¾°c  KôÐCÅÒçƒ>¸I“&kÖ¬Y¸páâ‚ÛLfϞݵk× &œrÊ)•v/®¹æš°hذáA”››;gΜU«VSÆ�ÿÝwß½üò˵jÕÚŠ5+Y½zu™‹ír.À®I]¢X,›––6sæÌÂ)í¬Y³† 6cÆŒM›6õîÝ{Þ¼y-Z´¨´;²çž{Ž5êì³ÏNNþ÷3'srrÆŽ{ýõ×oÞ¼ù_ÿú× Aƒzè¡­XíèÑ£o¾ùfç P’d-(É­·ÞÚ­[·Ö­[?öØcEîîܹ󫯾Ì ê 6Œ3¦ÒîE�:uÞzë­Þ½{‡ésµ‚<ýŠ+®˜4iR8eܸqo¼ñ†Ã T8w@—¨y󿝽öZIs“““/½ôÒ3fõÇ\i÷âŽ;îhݺõ–ÓO<ñÄþýû?øàƒA=|øð.]º8â@Å@Ç+�~õÕW ,øæ›oV¬X±víÚE‹…³Ö¯__i7ûœsÎ)iÖ 7ÜÐ3fÌøùçŸëÖ­[®58ðÌ3Ï,s±… fee9`$€.C~~þóÏ?ÿì³ÏΘ1#|vßÖ™÷ìÙóæ›oîØ±c‘eRRR*ÿŽ”~Ïõ‚ ¢iÓ¦:P±ÐÅ{úé§Ãâ /|øá‡«îŽLŸ>ý´ÓN+vÖüùó?ÿüó HKKÛ2^þÿ…2%©Gû&±ZC┬Åúé§ŸÂâä“O.i™œœœÊ¿#¥¤ç·ÜrKXôìÙ³N�::”$5%¹Ó>õÃÿµ†ÄI’R¼–-[†ÅŒ3JZfÚ´i•G¦L™òÜsÏm9}ܸqãÇ�¯V0�ÈСCq Â‚£x½{÷¾ï¾û‚âþûï¯U«Öµ×^[¯^½ØÜùóçß~ûíO=õTøvãÆ�¹¹¹©©•´™ýúõ«^½úñǾýñLJ>räÈðíСC·ÛøŸ5:{m³½œ]ÀN¬S§Nš1èâ~øá x衇¢ÑèðáÃï¹çžöíÛ7nÜø·ß~ûòË/—/_^xá9sæÔ¨Q£^½zÕ«W2dÈ\P©ö%Øæ=z´k×®eË–+W® ¶vãÆ�á¬Þ½{ßxã�7�è�;¶fÍš÷Þ{o~~þÆ�ß}÷Ý" ´oß>33ó½÷Þ êììì•+Wň#*C�’’’———””ôÀ\uÕUÁöÏ-[ --íæ›o¾á†h(Snnî‡~Ö;v¬´¿îPÙˆQJ”œœx×]w]ýõ%Í1bÄu×]W™wüé§Ÿ¾úê«W­Zå�=úÚk¯ÍÊʺï¾ûV¯^}Í5×,^¼xéÒ¥Ï<óÌSO=uÎ9çTì×�5êÞ{ï]´h‘γë@³ý¼ÚêÖùÍšéUòZyàÿ/þgÊgœ¡-Pu]}õÕ=zô˜2eÊ=÷Ü“››N\¾|ùé§Ÿ>sæÌ´´´’>Ø·oß8à³Ï>3fÌ·ß~N¬W¯Þå—_Þ©S§ƒ>¸’ïx°ƒ§�vÚ;ï¼ì~NNÎ.~<óÌ3Á�kÞ¼ùSO=•œüï�jƒƒÄ_~ù%¨_yå•  û÷ï饗.[¶ì¤“Nš?¾?‰ì Œ ìr5jÔ¥K—#FüóŸÿÌÈȈMŸ5kÖå—_^Êëׯ߽{÷믿þƒ>¨[·n0%)))XÉM7ÝÔ£G�`n%ßñôôôÌÌÌ®]»¶k×n?Ö­[wÅWD£ÑãŽ;.LŸ{íµ×¤I“7nÜ´iÓË.»¬Â¿´zõêiiiÁ·ôéÓÇí°råJM¨rÐÀ®«[·nW]uUá)>øà˜1cÊüàž{îyÊ)§ÅQGuÈ!‡T¹¯U«Ö.~èŸ|òÉp(’"ƒ®tíÚõ»ï¾[¶lY§N�÷í¥�ôB±¦M›6tèP}¨rÐÀ.m·Ýv+2媫®zë­·Êüà~ûí¼¶mÛV«¢_üßASRR¶ÿ·ï�/­Ò–/_Þ§OŸ¼¼<­¨rÐeþz[ñþª€�U›6mbuNNÎgœ±lÙ²Ò?²ûî»Ç^©r>ÿüsM¨*6mÚtæ™gþøã�ZQ  Ê�——7ë?а³ºîºëÎ<óÌØÛU«Veeemܸ±”�¤§§¯¥<±�ÊlõêÕšPUþU~þùç¿÷Þ{ZQE  þý,ÁÇü÷¿ÿ}lÊ'Ÿ|Ò¿�ÙYmÚ´I*¿ß~ûíÌ3Ïœ8q¢VT]©ZP.áC*/^¼F" €�Æn»íö /zè¡K—. §üãÿ8ðÀÿô§?Å¿’»îºëúë¯/<¥oß¾�=öXXÿòË/{ì±G‘� 6즛n*21;;ûÕW_}æ™gæÏŸÿá‡V+HâÆ�la0eݺu-Z´Ö|ÕUWedd„‰F£¯¼òÊã�?,ÿÝwßí¹çž§žzê­·ÞZ·nÝ27;ølð]Áú?þøã 64jÔ訣Ž0`À‘GYú§&Ožüì³Ï¾ÿþû?üðCZZZ“&MºwïÞ¿ÿ’†ÆÞ¸qãsÏ=läСCƒ•oGŒô'ø§ÖÑGýä“OnÙŸÒ½õÖ[“&MzóÍ7W¬X¶7ø—Z° ýúõkÙ²e‘…ƒ/ºà‚ ŠL¼¹@±Ç+Nëׯ>š/¾øbõêÕuêÔÙk¯½N>ùä‹/¾88 ÛrNæää'aÐäÙ³g-ª^½úï~÷»N8ᢋ.jÞ¼y±ùþûïƒ#Í`±ÁƒS>û쳇~øµ×^[¶lYzzúA4dÈ�cŽ9&ö‘5kÖ<ñÄÁG¾þúëàÔjݺõe—]öÇ?þ±w98Ÿßxã�`ù—_~yÖ¬YM›6 NžàLN¹O>ùä×_Ý{cCvå•W¦¦¦þøá‡þÍ7ßĦ<^ ¬ƒ?›A[ Ÿ�&Læ+üé§Ÿ ÿs‘%ÙÎÐåü5\ø¯7 €�I£F�^~ùåÎ�;¯]»6œrà 7xà�Ç|œkèÛ·o°üˆ#¦OŸ¾åÜÚµkÏ™3géÒ¥wÝu×o¼±åëׯŸ¶ä_|ñç?ÿù�wÞ™4iRJJÊ×_}ÑE½ùæ›±V¬X1zôè×_ý½÷Þ«S§N)Û¼qãÆsÏ=÷¹çž‹MY²dÉú÷ï?f̘™`Lð�ç�w^Ш`3¬dæÌ™wÜqÇ=÷Üsß}÷Ýxã�ùË_b ‡yúĉƒo {4vݺu=zô˜5kV¸ÌÔ©SG�5lذ8[ýí·ß›ìàQG¬mŸ}öùå—_‚•Üÿý|ðA°% D8RJè´ÓNëÔ©SX‡Ï� ÿ•wùå—Ç–)½W[š2eÊÅ_|À\qÅ‘HdõêÕÏ>ûìØ±cßÿý»ï¾ûÑG=ùä“·îl \¿~ýöØc�AƒÝzë­¿þúk°w#GŽœ={ö½÷Þ¬|À€±…,X´78{ƒïÍÏϦtíÚ5777èLð‘pJhÆŒÁ‘?~|8æÌSO=uõÕW^ùÓO? ûÍ7ßüõ¯Ýö]Îçgžyæ•W^ Ïç@°UË–- v-8v±ÅæÎ�{íµ×»,›ì{°GAÑ­[·ï¾û.(²²²†ÎÍÌÌŒ-¹yóæÓO?=ذàø'@«V­‚vŸ ΨàÜseÛ±Ðÿ_»víÆ�Ê)§„wPæççÿáøàƒöÞ{ïx>^¿~ýãŽ;®C‡A±å=+ÉÉÉí ì»ï¾Å®pÕªU?þøc›6mžþùØÄ‡~xàÀ�§žzjVVVëÖ­ƒ »ë®»Âœî…^¶¶I“&½zõ:ýôÓܬY³5kÖ oãýòË/ï¼óÎ’’ÄPß¾}Ãô¹Q£FÁ6ÿðñYãÆ�ûí·ß&L˜Pä#sæÌ9öØc[µjõá‡Ö¨Q#œØ©@˜{6,x½å–[ÂYýúõ«Y³æ?ÿùÏX²6vÆ gœqƤI“Â^ýôÓOq¦wß}÷ä“O–¿òÊ+ï¹çž¤¤¤pz—.] ‚%K–Œ5êã�?~å•WjÕªέS ÈªöÜsÏ «[w¶<ùä“Á®]vÙe÷Þ{olbÐ�àèûl^pP^z饸€3cÆŒà$ìÑ£GÐüØŽ<òÈ}öÙç /\¿~ýE]”’’Ôá¬/¾øb÷Ýw¯[·n,kÞ¸qc°†O>ùäºë®ëÖ­[p’,\¸ðª«® :,sñÅ[uã�7Nž<ùOúSçÎ�ƒ�ÏŸ?èСÁ9|<8mÎ?ÿü-;SÞ]®W¯Þ Aƒ–-[öÎ;ï„S‚oéß¿°æ‰' –.]œ-Ÿ~úi0+˜œØg�uV¸dZZZ¸±‘ÖƒÃWìÁºé¦›¦L™ü±š9sf,˜>ú裃?ñÄ]Öv,4Àÿq 'Ü}÷ÝW^yeøö—_~ÉÊÊzï½÷b9f™êÕ«× AƒÂIn-Z´(iú5×\óæÍ›4iRµ‚™GŒñé§Ÿ¶iÓ&¶Ø?þñ�ùóçÏ�;7¨¼~ýú‰'vëÖ-¶ÀG±zõê)S¦T+µàöÛo�E´E¼ýöÛË—/:thð½á`ß|óMðvüøñáÏ<óL×®]/¾øâØGÖ­[wúé§ÿüóÏÁšcésè˜cŽ ¾:XgP_Ú«W¯öíÛ‡¼öèÑ#ø`¸d0·yóæ/¼ðBJJÊÔ©SƒngggÇ9èöÒ¥KO=õÔŸ~úé ƒ9rd‘]Û{ï½§M›và�nÞ¼yÖ¬Y}úôyþùçKÚýmñÙgŸýñ�ŒD"ÿó?ÿSdÖµ×^{×]wmذ!''ç‚ .X´hQáÛuËô³Î:+--mܸqEn?ïÛ·ïM7ÝŽsÅWôìÙ³qãÆA4$x=÷Üsƒs/üÙIp÷ë×/8‹vÛm·ð³mÛ¶ý¯ÿú¯p ó5kÖtèÐ!8KgÏž|$\ 8Ç=ôР�›6mÊÏÏÿûßÿ^äG[±ËG}tðzÉ%—Äè³Ï>û¶Ûn‹ýù ŽTpÎ_þøáÁŒÐq 65hTPüñEúœrÁÆ|ôÑG.k;�‡uÅWï‹/¾èÓ§O¹Fá+=pLII)ýã±ñ‹sss§OŸ^8}?Þ»wï°^¾|ùßþö·Âésè¼óÎ ‹ï¾ûnÑ¢E%}Ñ7ß|óì³Ï*:øê§Ÿ~ú’K.‰-ó—¿üeóæÍ±··ÝvÛÂ… ƒo,ö&î“N:),òóó~øá³b£^V¯^ýÀ„}8á„‚.]ºô€ˆ§·W^yeðñj¡g±�Üwß}Ãá�/¾øbáQ*ÐÅ_œ��ýÇ?þqË!Jj×®}ÔQG…õÊ•+ßÄ/دŸþùì³ÏÞrDìäää ]a½aÆ0Ù�©S§N,M6àÁŒ¥Ï¡Ž;î³Ï>aýã�?͉-jÚ´i—.]Âú­·Þª¨]nÔ¨Q¬N×Xú vóŒ3Îë÷Þ{¯ð€!ñø±@µ‚Ÿm9wРA‰øññ@ãÞ{ïíÑ£Gìí‹/¾ÿðÄÛ®pnجY³-(æ¶jÕjË �T°páÂ’¾¨mÛ¶±È¸°‘#Gþîw¿ ëU«VMž<9¬×¯_ÿÀT+ì¢Ø|ðÁ±úÝwß-i§.¼ðÂØ¸ å2oÞ¼^x!¬»wï^ÒbŒ­ÿöÛo¯ð4kÖ¬÷ßëúPº%K–<ûì³[½æX“›6mZìÇcgÎî»ï^ìcgN‘Óf[v¹ð±.v �ØS+ƒlÍš5å:aÄ}b·±WÈšË{æ9m·ËEN×õë×¹/»tÁ™ü9}ûí·7nÜØµk×Gy¤gÏž…xòÉ']Ðv 4@ùÜÿýÕ ~AL+`§W»ví—_~ùÐC GsŽF£çŸþÞ{ïÝ®]»¾mÉÉÉñ/°iÓ¦­øŠ^½zÅèÏ?ÿ<,Âñ�7ß|sVVVékØr †m7kÖ¬°(sHîŽ;†tµ‚r+6€ŽõaÊ”)Mš4)}á-Ÿ|Ïšzè¡p¼æRa£bÏœ"§Mâv¹ˆòÁQ­à†ý#Ž8";;ûûï¿þÁ~Ê)§SbãØ°c  ʧAƒÁkÅþ‡ Pi…ÊëÒ¥KÆ­_¿>++ëÃ?Œ�˜\%”kôꘖ-[Ö©Sç×_ êðqÕ ˆ‹úõëï¿ÿþÛ_¾ÿþû°Ø°aCéKî»ï¾±zÕªU»±>ÿ<,üE¸æ&Mšì�oÿ]Þv;v?~|ïÞ½ÃÁÊ_|ñÅiÓ¦ 4è¿ÿû¿kÖ¬é:¶c  ©©©]þ#?½*¹C=ôñÇ�=ÇlÑ¢Eg�uV8HÂÎ-ØåØðÓéééaŸ·¼õV”uëÖ…ÅÚµkK_²ð(e¦Õ啸>ìðW¹ �vÚio¿ývì‹›7o>|ø¾ûî;iÒ$±K PÖ…29¹Á”ù›JÀN鬳κå–[bog̘qÝu×í ;/86Úr쾜ŋï�MÚc�=Â"''ç»ï¾+eÉ5jÄê’†ºÞj‰ëÃïp•Û°˜C9ä³Ï>»í¶ÛbógÈgœqÉ%—ì ?1ª´$)e:thá'ÂÝsÏ=O=õÔN¿×999a "6öÈŒ3âYÃúõë+v“š7o«gÏž]Ê’±{¥«%`Årõ!§@"Ö\-7woÿ]®@™™™C† ùöÛo¯½öÚ '>ðÀ…€Äv&€ˆË¸qãŽ<òÈØÛ×^{m§ßåü1,ºwï±$záÂ…±Gü•äå—_>ÿüó+v“ºté«ßzë­R–\±bEX¤§§wîܹb7#Ö‡ &ÄÈ.É 7Ü0vìØò®yÆŒ_}õUé ßwß}7Þxãö9·ËÛ~–üñ…§Ô«Wï®»îúì³ÏbÏ 9rävKê)B ìÒÂû4sssË\2==ý¹çžkÙ²e<«��]ìšãùºî—_~ [hÑ¢E,à;ꨣb \yå•á3ߊµ`Á‚óÏ?ÿ’K.©Ø­:í´Ó222Âúé§Ÿ.åùбû£O=õÔêÕ«WìfÄú°víÚ믿¾”%'NœøÀôéÓ§¼kvmàÀ�¥ìà¬Y³‚¯¾è¢‹¶Ïù�¸]ŽÿOSI#i¼õÖ[[Þk¿Ï>ûL›6-‰eݺu .t¹Û!8ùä“Ï=÷Ü}÷Ýwûœ‰Ûå2ÅÓ(éÎë�7>ûì³}ûöÝòléÖ­Û‹/¾X­äðšDs4@‚ÿYü[÷ß%@eÞäûí·ßƹü¾ûî;iÒ¤´´´Ò‹ýîÿ‡~8k֬³–/_Þ·oßÝwß=|ûý÷ßoùñM›6ÅêbêÂ÷P;Îrá5”rÃuIñwðñ;ï¼3(.¸à‚"·²Þzë­±zòäɇrÈ”)Sbþþð÷ÜrKÇŽùå—1cÆ”´Í7nÜêCö׿þµuëÖa}Ýu×ÞÓ˜'žx"|Da°1p@‘¹…~°fÍš­Ø†&Mš\z饱·×^{í™gžùÑGźúÅ_ôïß?++«M›6[>²²ð<ŠŒ•¼Ûn» 2$övÔ¨Qݺu{óÍ7cÿ ]²dIðuG}tÍš5ï¸ãŽ’Ž{IG6vJž»¤3g[v¹Ì[þ ��±å–_Á×ÅÚôðùçŸ�-3|øðììì-×ü믿V+ÀÚm‘;Š; €]׆ Âq„§M›–ŸŸŸœ×½z]»v=zô€JYæÂ /?~|µ‚4íÄO¼ýöÛ?üðß~ûíÕW_ >;tèЙÿ�½û€“¢¼€ÏWhw(9ØQü‹½,1V"5Æ.¢1#Vl¨¨` ‚ `A�"*Æ‚p"½)½œt8®í;aòî{/w'ÞW¾ß�Ÿõw3ÏÌîüföÙÙ³ÏL˜^¢;räÈÎ�;wèС}ûöѺvþK¤—,Y²ÿþûï´þ`b4ž6mZð;5/RíZ^¯W¯^¤§§/[¶,Zà eee]vÙesçν袋v*"zöìyÍ5×DGø�>}úÙgŸ�œœÜ¨Q£õëׇõ¾jÕª½õÖ[­[·ÞÝKúÏþ“¿šù‹¤¤¤¼ýöÛ§žzêâÅ‹,Xpùå—¿úê«ùÿI`ÆŒ7Þxcüñ�¼ãŽ;v]Ãwß}�§L™²g/ã�øâ‹/¦N�þ9j‡àµÕ­[wåÊ•a7--íÍ7ߌ^À[à“Ξ={§DÝpà ãÇ�7n\øç„jԨѠAƒ5kÖ„…ã:uêŒ3&ºCk×®]½zõ®GH�GNÐx×]¿ë‘“ÿµíñ&¯X±"øë�… FãŸþ¹E‹ùçvéÒ%¼óa°ùÁîòwÞygÿþý£mæÌ™Ó·oßçž{.ÿÕâ_~ùåäÉ“ƒàïÿ»4ï-Uï¹çY v‚î øX ã>}ú¥œPîäääLš4)ú™·ë/Ë€½"///¦ T·nÝb–�£¦N�zÕUW͘1£ÊŽŸöÏœ9³C‡;UôvçÐCݺuëäÉ“»î°kƒ–-[nܸñË/¿ âíÛ·�7îÙgŸ:thð¤�>úhß¾}ÿõ¯…£sß26mÚ‰D;ì°`�Ó§OñÅŸþùèªfϞݸqãÜÜÜ`ƒo(?üðC°Ú¿ýíoÑ;ë¬]»vÕªU÷ÙgŸÄÄÄ Áرcïºë®h¥ïûï¿fÛwß}ÃBí±Ç›žž¾páÂÌÌÌaÆ­^½:Xÿ–-[~üñÇ1cÆôêÕ+XdÀ€,ðKÐYg�µmÛ¶àeD/V ß°aC8$t«V­‚•œp ᬠÍwß}÷ꫯ/)ØÒèK Ö¬ ^CVVVðDáë¿ì²Ë¢ƒœD=ùä“úÓŸ YÛ3Ï<³wM|ÿý÷_}õÕÉ“'¯Zµ*Ü¢cŽ9&x'�tÒN-¯»îºàxØÝzvÚ;�`�/½ôÒ§Ÿ~ºbÅŠÜÜ܆ yä‘]tQ·nÝòpÁ‚A \í}÷Ýw×]wýýïïׯ_!‡Vp”vêÔ©ÀÁŽT³›|Ë-·üë_ÿ öNþ‰�5êܹó›o¾YeÇ-"ƒ �VŸC­Zµ vDþªñW_}uã�7N�:5Ø­Ás«=ꨣ 9À‚üs�–n¸!HZiv/!5±(hbË›� @ʦ__!ˆQ÷¢&å&„Ä„41¡ @L(@ ÐÄ„›Ã!..®Q£FÑXBŠI ÉÉÉ×\s�<üR†à & ˆ hbÂÐEÈËË[½zu7hÐ >Þ?Ý‹4@²²²Æ·Ýv[µjÕä 8\Ç@L(@ ÐÄ„41¡ @L$H¥æÃ™Ëgn¯%”;YÛ3X±>ŒG÷cRr59 ’;ÿÐæ’@q¸€˜P€ & ˆ hbÂMŠê(�ìzj4–€bR€(B|Õªiµ“*¡ÕË—8}q�ÈîIKK“7¢ €‚]÷Ûã ž¾ûE"‘ˆ¼e hbÂÐY$ÉÊÊ’‡¤¤¤¸¸8y€R¦ P„œìì©“> ãC»œ˜�è>„@y’••õöÛoËC·nÝ’““åJ™4@òòrÏ�Æ�9¾Jh€bQ€¨¦L™R97¼sçÎö>ì- Ð@Áž|gb�ÓÏjßTr 8,X0eÊ”+Väåå5nܸsçέ[·–*h ` š4+pzZZsÉ(¿:tè�X9îm“��=}úô½õì_~ùåÍ7ßpàÀÝ5ˆ‹‹kÕªUW¯^]ƨ ŒMé9-if»äÍò@¹“Y%k^ÕaÜ3yZµdCtPéý0µml»sípŠ)>>þÃ?,¼ÍÆ�àS§N2Fe  P4Eg~½íÛ·/^¼8:ï !T ÐE¨–œt[ïòÀ¯ôúë¯oݺµAƒ/¿ü²lPI(@@Ì-_¾üÎ;ïlÓ¦Ío¼ *<7!€Øš;wîé§Ÿ¾eË–áÇ·oß^B¨<\ ±²iÓ¦§Ÿ~ú¾ûîÛ²eKðçá‡~å•W8055Ur¨  Š‰D¶ge‡qrRb\\œœP¤ôôô§Ÿ~zøðá7nŒNÌÍÍ}î¹ç&L˜0~üøf͚ɞ4@¶ge?0äÍ0¾­w�jÉIrÏâe« žQsq�“ÓÒÒ$ €ÂmÞ¼ùÐCmݺõ²e˾úê«)S¦äåå…³æÍ›wá…Nš4)>Þ¹Tp ÐUZœvÍ/j‰D$ €Â³CôÏ%K–Ü}÷ÝC‡ ÿœ2eʘ1czôè!QTlþ�b®Y³f/½ôÒ#�<�2|øpi¡ÂS€€Rrã�7žtÒIaüÕW_Iž4”ž>}ú„ÁêÕ«eƒ OJÏÑGU«V• *<h(=õë׃F�É^‚,úppÁ3^iŽŠÏEu”U«v=¢}4– \ËÎζ¥1²fÍšƒ>xݺu }úôùûßÿž’’’¿AFFF�=233‡ vä‘G:©  Šê(ªv=²½<ÃôéÓ%!F–-[¶nݺ ÈÉÉ4hÐèÑ£ÿú׿ž{î¹Íš5[³fÍ»ï¾Û¿ÿ””” &téÒEº¨$  tìØ±wïÞC† ÿ\¶lÙ�;ñ>ûìÓµk×Gy¤G� *rT"wJÏÊZík×>H(M›6•€_¤sçÎ’kÏ?ÿüí·ßþÅ_,_¾<''§N�:õë×oÑ¢E§N�ŒøLå¤ %æ€äB ÐEÈÉÉùúë¯Ãøˆ#ŽðS) |IJJêÖ­›<y�(}Ê(EÈÉÉ™2eJwêÔI(_âââ’““åØ+ =@L(@~H”iK–,)pzNNήÓÒÒd  ìP€Ê´cŽ9¦ø�#‘ˆŒ”†à & ˆ hbB€˜P€ &¤(Ë&Ož\àôÆ�K@§ P„äää>}úDc €RÖ¬Y³§7mÚTrÊ8h€"ÄÅÅU«VM~)c@ ÐÄ„41a h€"dff¾ð a|å•W ˜ ж}ûvIø¥ )=�5jÚ´©{ê�aüýÐIU“å ¼yåq’¥@*ŽH$òÚk¯½øâ‹kÖ¬Ùºukjjê…^xÕUWÕ­[Wr(} ÐPAlß¾½gÏž‘Hä™gž9è ƒ‚)~øá¹çžû�üãõ×_?óÌ3¥ˆRf h¨  ���ýî»ï†ÕçÀi§�Ö»wïM›6]xá…+W®”"J™4TÆ ûä“O®¼òÊü�;î¿7Àؼyó˜1c¤ˆR¦ ÄÚµksrr^z饌ŒŒèÄÔÔÔ0ؼy³QÊŒ @Å´eíŠÝÍZ¼xñîf¥¥¥IL$Ù´i“<¤¤¤ÄÅÅUøÍ¼óÎ;ï¿ÿþž={æ¿åà’%K mÛ¶ŽJ™4@ââªî³ëh,!åŸÛ.Üݬ·ö]ê¨`6mÚÔ»woy2dHôBà ì¶vš8qâÄàqÿý÷?å”S ”2h€"Ä'$ì×é8y Ôddd<õÔSãÆ�›?þÆ�k×®}È!‡œwÞyøÃªU«ö‹VµråÊÑ£G'&&2$x”[J™4@¥0eʔʹá�;wÞë¯á³Ï>ëÞ½û�!CzöìYdã·ß~û²Ë.Û°aÃI'�4xðà¦M›.\¸pРA}ûö}ì±ÇÞÿý–-[óyW®\yá…ÖªUkèС.f¯P€€XÙºuë Aƒî¹çžíÛ·g0î÷ß¿G�¹¹¹—_~ùK/½Ž[}ôÑGŸþùçœsN0·k×®Ÿ}öÙPÈJ6lØp '+Y°`A½zõFŒqüñÇÛì ЕHÇŽ*EE(''gÚ´i¥ÿ¼‘Hdýúõk×®�9sæG}4zôè•+WsÙ5kÖ\z饹¹¹uêÔyòÉ'óß51C#--méÒ¥—_~y8¬óîÔ®]{êÔ©á‹yã�7Î<óÌ.]º¼ð M›6õ ”)@uê�—»aéÂÿ}„7= .Þ}€r,!!Á@À15lذ^½zUÙQ2n×®ÝÅ_LY»vmq–½çž{222‚à²Ë.«U«ÖNs›4iÒ­[·Ñ£GOš4iäÈ‘\pA‘+Œ‹‹ š-^¼øÖ[o=üðÃÿóŸÿ4oÞÜ>¢Tû)(\^nβïþ÷Ë)�÷¯ª PNœùÀˆÝÍzêÂ#刑sÎ9gæÌ™µk×nÔ¨Q|||0eÔ¨QÅ)@¯[·îÅ_ ã+¯¼²À6½zõ=zt 4¨8èÐ%—\rÛm·­ZµêŠ+®˜0a‚}DiR€ bªY¯ñîf¥¥¥É#ûî° ¾ùæ›™™™A°Ï>û´oß¾À6Ñ*Nž<ù§Ÿ~Úÿý‹³æ&Mš4oÞ|ñâÅŸ~úé?üЮ];»‰R/°×}üñÇaСC‡Ýµ©S§N8Žs$ùàƒvš;yòä`î�8}úô�f5lØ0 fΜ)Õ”&hØûÒÓÓÃàÀ,¤YëÖ­Ãà›o¾ÙiÖ?ÿùÏeË–Í›7oèС;ÍÚºukÔ©SGª)M а—ååå-X° Œ ¯Gçîz™sjjjðØ¢E‹K.¹$ÿôH$²téÒ ¨^½z§N�d›Ò¤ {Ù�?þ¸}ûö0.|éºuë†Á’%KvšõÛßþ¶zõêï¿ÿþa‡–ú_|±nݺ ¸öÚk]M)sÂ2dÒ¤I�<òÈ¿þõ¯jÕªíÁâ“'OîÞ½ûš5k¢S.¹ä’W^yEbʸåË—Gãš5kÒ2:wÕªU¹¹¹U«V�Î:ÿüóGŒѽ{÷wß}·eË–Ñé�?þxðx ' 0@ª)e ÐeÈÇüÖ[o­\¹rÏnËþÑGå¯>^}õÕ!C†$''—‘ |¤Öèv©ûØÑ”;™Y¹$Æ·¥dWKª*'åÞC*þ6ž?Ì~€rdóæÍÑ811±�–IIIa�——·aÆüW4ÇÅÅ�1bÀ€Ç{ìÙgŸÝ¹sçäää7ÞxcüøñwÝu×Ýwß]øš! +Ž>}úddd¬^½:ˆƒ¾&œ‰Dd ŒÛƒt 33s§¹ ýúõ»é¦›>ýôÓ9sæäææ^~ù寽öZ­Zµ$™½Bºâ¨_¿þ AƒÂ8Z€ ìÛºuk4Ž�/ì¶mù/7Œ½“5jœ¹ƒÄ²×¹ !ìeù¯k.\vvv4Þ³‰Air4@Q' ñלzP4–J\�5ŠÙ2+++Xƒ²O ññq�ö©.ÄNjjj1[nÛ¶- âââjÖ¬)u”q Ð…™6mÚ믿žžž>gΜ 6lÚ´)))i¿ýö;öØc»wï~öÙgï󲿫W¯á„ìb€² yóæÑ8//¯�–ëÖ­ ƒºuë>Z4” л5nܸnÝºåæææŸ˜••5g‡_|±cÇŽO?ýtçÎ�ËòV <øÎ;ïÌ?ŒýÒ¥K_ßáw¿ûÝK/½d¨ €rjñêÍ…Î^¼»9iii²eM³fÍÃñ�7nÜXHËhúÀ”7Ê>èÝzþùç£ÕçÃ;l¿ýöKNNÞáóçÏ_¼ãl~Ú´i'žxâˆ#ºuëVf·âÆo ƒ† vêÔ)'''==}õêÕÁ”×_}ùòåï¾ûnJJŠÝ Pî´¸îÍÂfï~n$‘=(kªV­Ú¶mÛéÓ§qFFF!-—-[ Д л-Ë&&&N˜0!•ö‹/¾èß¿ÿøñã333/ºè¢3f´hÑ¢ÌnH½zõ tá…†?ÊÈÎÎ>þÚk¯?~|ûí·ev+xà�üÕ稳Î:«wïÞÏ=÷\0` Д ³Î:+%%eÓ¦MsçÎ]°`AË–-wm3nܸ0hÓ¦M§N�$�²Oº¸"‘Èœ9sæÍ›¼ÿ—-[ô . gmÙ²¥Ì¾ìßÿþ÷»›uûí·‡èñãÇÿüóÏuêÔ±—ö–êÕ«ŸwÞy/½ôR�1âŽ;îØµÍ°aÃÂàú믗1Êè"äåå�3fÔ¨QãÇ�ïÝ·}ôÑ›nº©˜7{)ÎpÒ 4X²dIRRR‘- i“––vÈ!‡|ÿý÷¹¹¹ß~ûí)§œò‹6ªOŸ>çŸ~‘ÍæÏŸß½{w@‘n¹å–W^y%''ç‘GéÓ§Ï>ûì“î'Ÿ|}È!‡ôîÝ[º(  óÆoôïßÖ¬Y¿r=}ûö=餓òòò o6xðàgŸ}ö½÷ÞkÒ¤Iá-ëÔ©Sœês‘Zµjõý÷ßWÉwûÔâk°ƒƒ`oYôd�ÂfŸõ°@Y�››»mÛÿn,´iӦ·iÓæþûï¿õÖ[322þüç?¿üòËÑY?ÿüsß¾}ƒ %%eĈ Êz”ŽÔÝúË_þòè£�FÿlÙ²åñÇðÁ·mÛ¶uëÖ 4øæ›oN>ùäâ¬*))é7¿ùM‘Í5j<ëOKK+�mŒ¸Ÿ@¹•Ö V¡³Ó¤€EoagKc$++kÆŒ™™™k×®�={ö¨Q£¢¿ª¿ýöÛgÍšÕ¹sç¦M›¦¤¤�a9(¿[n¹%‰Üu×]¯¼òʪU«úôéÓ°aÃôôô|pÁ‚ûí·ßرc>ø`G2å…tÁÆ�­>ŸqÆ÷Þ{ïG±S›ªU«–÷®vÞ¼yaôwv:TÓ¦M“„˜Z¾|ùa‡Và¬-[¶<³Cøgÿþýï¹çž]›Ýzë­={ö š�?þ’K.ÉÌ̬S§NÛ¶m¯»îº«¯¾ºF�’L9¢]°áLJÁþð‡^x¡ünÈG}tî¹ç8kÖ¬Y?üðC$&&îZ^`¤¥¥ýú�·jÕêᇠ¨EE ]°ŒŒŒ0øío»»6ÙÙÙeC^xá…Ý ÿö·¿…ÁgœQ»vm;*¶Î�;KPÊ⥠@-[¶ ƒñãÇï®Í‡~Xö7ä½÷Þ{ë­·v�>dÈ�×_½ÊŽ�Dîºë.{(q®€.ØE]ôä“OÁSO=•’’rÓM7Õ­[7:wÖ¬Y÷ßÿk¯½þ¹mÛ¶œœœ2{ïÑ+®¸¢F�§�vZøçÚµk ðÈ#�„Þu×]Æß€ÂÅÇÿwyŠ÷Ïv@y“’’2dÈyò Pú  vÌ1Ç\uÕUÏ?ÿ|$0`Àc�=Ö±cÇÆ�oܸqöìÙK—.Íß8==½fÍšuëÖ­Q£Æ�wÞÙ«W¯2µ-Ák>ýôÓ9ä�–-[®X±"xµÛ¶m g]tÑEýúõ+µW2½Ñ…›šà袲ƒ½ ”&h€"äåå­Zµ*Œ6lïF„Å£]†ÄÅÅE�²#;;û½÷Þ ãK/½499YNŠCº éÞ½ûºuëöÛo?©(§ÂSïjñâÅNOKK“4*0è2¤C‡�=ö˜<”_=zôøEí#‘ˆ¤P�É€˜P€ & ˆ hbB€˜H�()o¾ùf�Ó;uê$9TB ÐPb7n\àô´´4É 21á h€¢:Ê„„“O>9K@1©¤¡jÕª~7 ° Á@L(@ ÐÄ„1 )=:th×®�}ú�7Þ¸ß~ûåßönݺMš4éw¿û�#�R¦ P‘edd4hÐ@V¯^]¿~ý ¿™÷ßðxöÙgçŸ7vìXÇ{…1  "˜;wî¬Y³‚ uëÖ²Aá h€_bÓÚ*U/^„iiiò@,ddd<õÔSãÆ�›?þÆ�k×®}È!‡œwÞyøÃªU«¶»¥>üðÃ0hܸñ—_~y×]w­^½:Xüä“O¾óÎ;[´h!±”>h€_â_·-^¹1xŒD"ò@q|öÙgÝ»w2dHÏž=‹lüöÛo_vÙe6l8餓Ü´iÓ… 4¨oß¾�=öØûï¿ß²eËœ9sf|ûí·Á‚o½õVJJʦM›.¹ä’C9$øó”SN±/(e†à€XÙºuë:ï¼óŽ>úèßÿþ÷'N<ãŒ3æÍ›×µk×… ¸ìÊ•+Ãàá‡ñÄí&J�4”˜}w؃ß|óÍÌÌÌ ØgŸ}Ú·o_`›Î�;‡ÁäÉ“úé§ý÷ß?ÿÜfÍš…AÍš;�!™””«V­²�(M пĥ�‹þÖ]&(YüqtèÐawmêÔ©Ó´iÓ¥K—F"‘>øàꫯÎ?·S§Na°}ûöäääü³‚öa°gÅqØcnBP”àCzû–ÿý—R¯Jjý´$€”žžx`!ÍZ·nß|óÍN³ºtéú$�ßÖ­[‹³r(q ÐEÉÍ®2ýƒÿýÄPÒòòò,XÆáxÍ»�;}úô�f5lØðøã�‚Y³fí4kéÒ¥Á㡇zÀÈ6¥Iö²üqûöía\ø(Ñ; .Y²d×¹·Þzkðøî»ïî4}„ Ác¿~ý¤šR¦ {ÙòåË£ñ®·Ì/:wÕªU¹¹¹;Í=í´Ó.¹ä’çž{.z=uà�wÞùúë¯ÿøÇ?vïîžF”67!€½lóæÍÑ811±�–IIIa�——·aÆ]ÇëxñÅ«W¯Þ¥K—믿~ÿý÷ÿöÛo_yå•ûï¿ÿŽ;î�gJŸ4ìe{P€dffîÚ Xü¹çž›3gÎäÉ“—-[vôÑGßyç�…�+ ±£Mé™Qç¾võ«ÊåNfvä�ÿ‡ë¶zWKŒ«roŸÿþуäP"¶nÝ�ãã 57‰Dãè°Ñ»:h‰e¯34ìeù¯k.\vvv4®V­šÔQÆ)@À^V£F�b¶ÌÊʊƵjÕ’:Ê8hØËRSS‹ÙrÛ¶maW³fM©£ŒS€€½¬yóæÑ8//¯�–ëÖ­ ƒºuë>Z4”ŽQØËš5k–˜˜Æ7n,¤e´}à�Êe_‚ÑQÆW9½UB4€WµjÕ¶mÛNŸ>=ˆ322 i¹lÙ²0P€¦\P€(ª£¬wt³ÿ_o¹xÝŽC-^<¤¥¥I¿Þ±Ç gÏž½»6YYYsæÌ ãöíÛKeŸ4À/ÖâñÍÿýßã-‚‡H$"!üz'œpÂÓO?ééé»k3kÖ¬œœœ0>ñÄ%�²Ï�É`ï;묳RRR‚`îܹ ,(°Í¸qã M›6�:u’4Ê>hØûªW¯~Þyç…ñˆ# l3lذ0¸þúëeŒrA Ù¹‘æå„ÿ±„#·ÜrKB‡Ì}ä‘GÖ¯_¿ÓÜO>ù$ú�CéÝ»·tQ.(@!7¯Ê—KsÂÿróä€_ò¥27wÛ¶ma¼iӦ·iÓæþûŒŒ?ÿùÏùgýüóÏ}ûö ‚”””#F„uj(û©Pb²²²f̘‘™™¹víÚÙ³g�5jõêÕá¬Ûo¿}Ö¬Y�;wnÚ´iJJJðبQ£�¿å–["‘È]wÝõÊ+¯¬ZµªOŸ> 6LOOðÁ,X°ß~û�;öàƒ–gÊ h€_lÑõµþû¿¾— v²|ùòÃ;¬ÀY[¶lyf‡ðÏþýûßsÏ=»6»õÖ[{öì4?~ü%—\’™™Y§N�¶mÛ^wÝuW_}u�5$™rDàKÛwÇøEiiRÀÎßÓÒ"‘_{¡V­Z=üðÃ’I` hbB€˜0@EV·nÝèMð*y$JŸ4@E_¿~}yöN$Ä‚+ )=ÿnu߬fÍä�r'++kæÜ1aüfÛîIIIApÞyçÉ @á\ @L¸ III\p�<üR®€ & ˆ hbÂпÌêÕ«ƒÇÅ‹�iii°; ÐEÈÊÊ3fLwïÞ½oß¾ÑY‘HD~vÇÄ„41¡ @L(@ Ð@¹—ÿO7 JJ^^^!½ ¿H‚ü"O=õTðxæ™gJì]ññÿ¿ëê²³³¥øõrrr émøE ~™ �iiiR{W\\\RRRVVVøçæÍ›kÔ¨!-À¯ô'Ñ8èg\ýk(ÞåUJJJ4Þ¸q£Q8€_/èI‚þ¤À~†=  ”Wù CÙÙÙË–-Sƒ~�  z’ ?‰NIMM•–_Ã@yU­ZµÄÄÄh©hÓ¦M ,HMM­U«VBB‚a[�bÊËËËÉÉÙ¼yóÆ�óWŸƒ&99Y~~ h€"笭[·ŽÆeG\\\“&M~úé§è…ÏÙÙÙ;HP"=Œ %h€¢:Ê„„N�:É”M5jÔØÿýó× ~½¸¸¸ oqkÓ_OšÒsê©§¶k×N(Ya zùòåù8°Ç›4i¢ú\" €r¯F�-[¶Ü¾}ûÆ�7mÚ”••%'À/•”””’’’šššœœlä�’¢ TqqqÕvhРA$ÉËË3(Pü$>>^Ñ9 Š�““óÍ7ß„ñᇞ� ç€²...®jÕªò°×)£!''çƒ>ãŽ;*@S¼ ÐÄ„41¡ @L(@ ÐÄ„41¡ @L(@ ÐÄD‚.99ù†nˆÆPL ÐEˆ‹‹ÛgŸ}äà—21¡ @L‚ƒØÚ¾}{4ž?¾„Pá寃å¯�UB ÐÄÖ’%K¢q÷îÝ%€JeÉ’%‡zh¥Ý|Cp[ëׯ—*­J^S€&¶6nÜ( TZ•¼>fbëðÃ�Æ#GŽlÛ¶í¯êŠ+®øæ›o‚:tﮤ¢®GrvgþüùÑdƌӪU+omÊ©’z[ÙÀòøòJçÙcñ,%¸Î_¿ª=[ƒÏo@¸w_¡p/v€ú@ýƒmÔV€>p�Ÿ9sæ\Æùëc•�4±•šš�Û¶mÛ®]»=^UÍš5Ãǽ¾’ŠºÉ)ŽàŒ¹DÖ{Eɾl`ùzy¥óì±x–\ç¯_Õ¯_ƒÏýC¥ÝÀ½ø u€e¤ÔêœêËiX"¯$}¬21¡ @L(@ ÐÄ„›Rn\qÅ]»vMKKÛë+©¨ë‘БÚÀ üòJçÙcñ,%¸Î_¿*Ÿ)úX_¡P¨¬ðûÎI`ÅëËT¨üõâ"‘ˆ,;?üðCûöíÃxÆŒnyŒÃŸ#rèt€•‡!8ˆ hbB€˜P€ & ˆ‰) ¦êׯ߿ÿh,!8Œð9 ÐVq‘HÄ@‰31¡ @L(@ ÐÄ„41¡ @L(@ ÐÄ„41¡ @L(@ ÐÄD‚#999_}õUzzúºuë4hЦM›cŽ9&..Nf€ iÁ‚ÿûß;tèpà 7s‘ÌÌÌÉ“'Ïš5kãÆ�Mš49ä�C=ôP™tq�Í›7þùçÁónݺµY³f�:u:øàƒí@øùçŸ?ûì³ü1;;»yóæGydZZZYΰ4%/77÷ñÇ8pàÊ•+ƒwoÓ¦MgΜ¹hÑ¢V­ZÝ}÷Ý—^z©QI>�¨$.\|F¼òÊ+999ýû÷/Î"Û¶mûÇ?þñÄO_?;ì°zõêM›6mùòå;v ¦ŸqƲ TÚ.nݺuýúõ{á…"‘ÈGQ£F�o¿ý6##ã¸ãŽ ¾fuÔQv Pi»¸%K–Ü~ûí¯¿þzõêՃŃ)ß|óÍ–-[N?ýôG}ôÀ,›yŽ ¶ÖÑF Ú°aÃ9çœóÙgŸÕ­[wÔ¨Q]»v &‡Ù°aî¾úêììì«®ºjðàÁññ†¡¼~ ÝsÏ=r@hÑ¢EÁgÄË/¿|F„SŠóI|s8óÌ3g̘ѲeËÑ£GwèСʎ_�=ôÐCÁ7Џ¸¸þ;H/P »¸ôôôßþö·?ýôÓGñúë¯pÀÁÄ-[¶Ë>ñÄIIIO=õTïÞ½í vqŸ|òÉùçŸÿóÏ?ŸqÆC‡mРA01##ãÚk¯}ã�7RSS_{íµ³Ï>» f»ªJ %(33óä“Oþâ‹/‚·Ü|püñLJӃ?;vìØ¨Q£wÞygêÔ©[·n=õÔS¥‹rñ�ô׿þõª«® ŽÛ¼¼¼`J×d€+VÜ|óͯ¾újóæÍW­Z|§ùI±víÚãŽ;nΜ95jÔ˜8qb»víÂéñññ]ºtÉÎÎ&~úé§õë×?òÈ#å¨T]ܼyó‚o‘Á³7nÜ8hÙ´iÓpzRRÒgœÌ�6mÚ{ï½wØa‡•Ù«ü]\Œº¸É“'Ÿ~úé›6m:ä�C>úè£}öÙ'œ¼˜sÏ=÷³Ï>›;wî˜1c‚6Mš4)k9w*%馛núÏþ\pAðžÜinïÞ½;vì=ôÐØ±c¥‹2þ�tÍûî»oJ €½"++ëÞ{ïýðÛgžy¦ø ^~ùå ,‚?ýéO»~»¸óÎ;ƒï$Apà 7|ûí·ò Tž..;;;ø"¹víÚ ¾ûî»ëׯ¿Sƒ�V¯^=//ïâ‹/^²d‰ÝTž.nݺu^xá¶mÛ‚øÁ Z柛��ðØc�ÅÅÅ Î=÷ÜÍ›7—µœ+@Sb¦M›}ßþùÏÞµAðN¸þúëÃøæ›oŽþÆ*Ò•DóæÍ6lÆáÏ'‹cìØ±ãÆ� Ï‹‚¯.»6¨Q£ÆÕW_]eÇo9ƒó%y*O÷ôÓO_*ƒ %%¥W¯^».Þ¤I“ .¸ 6nÜx÷ÝwÛM@åéâþö·¿-]º4Z·n}úé§ïºx§N�þïÿþ¯ÊŽAB~øá²–shJÌ<)Þ¸qãÎ�;ØæœsÎIHøï­/çÍ›7lØ0I£‚} P9ÿæ ƒ£Ž:j¿ýö+°Íyç�&L?~¼ô•¡‹ËÍÍ}ðÁÃø¬³ÎJNN.|ñ—_~9øRiï•¡‹[·nÝàÁƒÃ¸gÏž»{…ÑÅzè¡õë×—­<;Ô(›6m3fLÿßÿý_\\\�ÍöÝwßßüæ7aüÊ+¯Èì 1gΜp°²@ôV»jß¾}ݺu�/•ª‹ûøã�—/_^äâÑ/›yyy¯½öš´•¡‹9rdfff‘‹GgmÞ¼9Z£+#TU(_~ùåöíÛÃøÐC-¤etîĉ£o?€ ïóÏ?ßõŒ¨@�:u ƒàËCô  wqÅ\<55µeË–aøàjÕª•ÍRš’1eÊ”hܦM›BZ¶mÛ6 òòò&Mš$u€ó¥Ý�/mذaúôéRTø.nŸ={öš5kd¨ð]\tñ}÷Ý·Aƒ»[6!!!zkĉ'†Ãä– ДŒè/ªì7½�–ù禧§Kà|ÉùP™»¸H$òõ×_‡SjÕª•ššZÌÅýPỸ5kÖ,Z´¨8O�¿Á–-[,XPv¨MÉX¶lY4nܸq!-óÏýᇤ¨lçK‰‰‰õêÕs¾èâÂ.nÆ ›7o§4jÔ¨ð'ÒC•ª‹+~Á­,÷� ДŒuëÖEãZµjÒ2ÿܵk×JPäååmܸ1ŒkÖ¬YxcçK@¥êâŠÿuR T¶.®bô� ДŒüï‡è�çÊ?7ú¨ØÖ¯_‰¯ð“%çK@eëâŠÿuR T¶.®bô� ДŒ­[·F㤤¤b¾¶lÙ"u€“%çK@eîâô�€.®b÷� ДŒ5jDãìììBZ柛)'KΗ€JØÅé!]\Åî! ))))Ñ833³�–ùçæ_ ÀÉ’ó% vqzH@W±{HhJF“&M¢qþ_ìjÛ¶mѸaÆRTùÿtÈù ‹+þ×I=$PÙº¸ŠÑC*@S2<ðÀh¼jÕªBZæŸ{ðÁKPÙΗ2337lØà| ÐÅ…]\Íš5£–¿Nê!�ÊÖŵjÕ*>>¾¼÷� ДŒöíÛGãåË—ÒrÙ²e.à|ÉùP9»¸h°~ýúÂ/0ÔC•ª‹KNNnÕªUqž:ÿâÕ«W?à€ÊN )'žxb4ž7o^!-£sãââò/à|i§¹©©©Gq„Ô¾‹ÛƒÅ>øàÆ�˼ôÒKÃxÒ¤I»k¶eË–è;-Ú 2¨W¯ÞÙgŸ]äùÒ¢E‹¢?Ÿt¾T’.®cÇŽ:t(rñ)S¦äääè!�JÕÅ�yæ™õë×/rñ‰'†Arrò\P¦¨M‰¹æškâââ‚`Á‚Ó¦M+°Í»ï¾v“ššÚ«W/I*•>}ú„ÁgŸ}–‘‘Q`›‘#G†A«V­¢_u*|]|ìØ±ÑÌî?á„~ó›ßÈ9Pº¸¤¤¤Þ½{‡ñ¨Q£v÷ £‹ÿþ÷¿�¬ËhJL›6m®½öÚ0~òÉ' lóÄO„A¿~ýRRR$ ¨~þùçh\ø�eN=õÔ3Ï<3‚/Ï<óÌ® ²²²ž}öÙ00`@ô¦ç¾‹ëÕ«Wx…àÚµk_ýõ]ÏÈÈ>|x•?ÀýÇ?þaו§‹»å–[š4iÓ§O/ð"èÙ³gôÑGA�’’Ò¯_¿²–gg´”¤þóŸá­9‡õ&ê_ÿú×_|Çü_þòé¢â} P9�3&_ "‘H!�Ÿ{uëÁÀ�/^¼Ó܇zhÑ¢EUvüîò¼óΓ[ òtq‰‰‰ÁÉjÕªñ]wÝÉ4êöÛoï¾uÇw}ôÑv Pyº¸}öÙçù矋ÚùË_¶oßžn^^Þ�7Þ˜››Ä�=öX‹-ÊZž«ÞsÏ=Ž6JJRRÒùçŸ?a„åË—ïᣎ:ªyóæá¬‘#GöêÕ+''çôÓO=ztõêÕ¥‹òâ™gžùüóÏÃ8ø4úÃþŽ6@eœâÿðÃß}÷Ýã�?þè£�F¿®,Y²dÆŒÁwŒÌÌÌäää]ÏyRSS»uë6nܸU«V�Ç|x[æà›ÃOø:Ñ´iÓþýûG‡ù¨„]ÜâÅ‹ƒ¯�o½õVBBB°xjjêÔ©SW­ZÕ¦M›tïÞÝ*m—žž~ÓM7�?¾fÍšGqD°’o¾ùfݺuAüðÃwÜqe3ç ÐÄÊÖ­['Nœ8k֬͛7×®]»}ûö]ºtILL”*ÃÇúõë?ÿüóùóçoÛ¶mß}÷íÔ©ÓQGeÜg@XµjUð�rÑ¢EÙÙÙÁ™ùᇬAV]\àÇüâ‹/–,Y’——׸qãÎ�;tÐAe9] ÐÄ„Ë+ˆ hbB€˜P€ & ˆ hbB€˜P€ & ˆ hbB€˜P€ & ˆ hbB€˜P€ & ˆ hbB€˜P€ & ˆ hbB€˜P€ & ˆ hbB¨²zõêfÍš½ùæ›R@ R€ª >|éÒ¥¹¹¹R@ J�bjíڵ͛7ߺuk‰¬íå—_¾ôÒKeµÄ ><%%åì³Ï¶û(A ÐÄÖ[o½–/5jÔ«W¯ãŽ;.--­fÍšññÿý5^VVÖ 7ÜðÎ;ï„�o¿ýö MõêÕƒ8‰dff®\¹r„ ܼys¸)-q .üÏþs饗†™·û() ÐÄÖÈ‘#ƒÇ=z 6¬V­Z»6Ø´iSÔ¨Q£_¿~;Õ@[·n}ÜqÇyä‘gœqFðg›6m¤´Ä >J–1 ˆ¡µk×~úé§gœqƨQ£ ,_æää|ýõ×a|ôÑGïznèôÓOoݺuÍš5›6m*«%nøðáõêÕ;å”Sì>J–+ ˆ¡·Þz+!!áùçŸ�‹‹+°ÁôéÓ·lÙÆÇ{l!«:à€jÕªµ»õ°ÇÒÓÓøá‡k¯½6ØSv%ËÐÿO{÷åS�ÿ|$¡QZò#Q¶_¦RØÔ¥ÝhBj˯™œÍ�P’=m{ÎÚôöY•PI±6i0ʆ²ýBÛ&mè¬ý:ýð«0$¡a0c¾ï3·ý|ç &äšÔãñÇ=÷ÞÏûsïû¾ßwœ�ç¹çuˆQvvvçÎ�ëÔ©³¯o½õVb½ô³°°P‡8dee…eFF†éà�@—¨€C�=Ji3oÞ¼o˜&'7oÞ¼”–ëׯ?ãŒ3Œê¡UXX8yòäzõêí›>¾?4qùÇ?þQ»ví-Z”Ò&ñmjjjJJJ)-W­ZåÚC.ŒÿÊ•+»té²gq ÓÀ÷'€ .ÙÙÙ;v,¥ìïê"Ñzé6mÚôÕW_y„ö�›4iRX¦§§›>â € .7nìÚµk) ö¿‚pnnîYg�%Á<´òóó§N�¶qãÆ¦€8”7ÄäÝwß-½A¢‚pÒw%˜uëÖ}ÿý÷ é¡5{öìõë×gffš>bâ hÊLâÚÚµkׯ_߀fYYYIû¨¿aú8$Д�ÜÜÜÅ‹Gë¥??KòòòžþùfÍš5lØÐô4eã�wÞÉÏÏ�Ö%˜‡ß /¼°eË–ƒ~üÙô°?Д�ý¯ L&Mš”œœÜ¹sgÓ@|Д�Dác�=¶qãÆäpÚ²eˬY³.½ôÒÚµk›>âSÞpøΟ??Z¿ð ˗ÿAÿ.ݽ{÷ÆbÚ·o¤�ÿ´iÓòòò222~ Ó@òK€2ðþûïýõ×Ñú¿€Ão¼qÙe—%6 �ôñÏÊÊ:ú裯»îºŸÂôP†”à  $ 8$ fË–-óòòžyæ™ÇàçääÌ™3'--íøã�ÿ)LeH @H¼Â.99ù¢‹.úáw¸bÅŠ�:uúq ~vvvAAAzzúOgú(+hÊ@âÚF�¥¤¤}þÑT:ž4iRåÊ•¿O%ë#qú(h· 6|üñÇѺ‡ÙŠ+æÏŸõÕW{챦€¸  8ÜT.C“&M ËŒŒ ÓÀaPÞp˜%*'íG‚¹uëÖE‹}õÕW›ŠôêÕ+%%%ì™?~^^ÞÏþóÖ­[WªTi¯ß]¶lÙþóŸ 6Ô­[÷Š+®øÙÏ~Vú¹þûßÿ†#ùå—µjÕºä’Kêׯÿ=¯ô€:°víÚY³fåääÔ«W¯M›6'œpÂÆ�Þ/¾ø¢]»v©©©‰–;vìxíµ×>úè£äääóÎ;/tµ\¹rûÙ¥¬¬¬êÕ«‡A;<Ó·k׮ŋoøŸÌÌÌŠ+F×õùçŸ×©S'\é‰'žxÐ�)åøaùä¶mÛwÜqQãÜÜÜ™3g®\¹2œ1---œýPÝiì‹€Ã-ñm­Zµ4hPzã?ü°[·n«V­*,, ›M›6:thýúõ/ºè¢]»vÝ~ûí½{÷6lØoûÛâßZ±bEøV8~hV¯^½×_½gÏž™™™÷ß… ö<ËòåËo¼ñÆO>ù¤oß¾§œrJNNNX ûŸyæ™ã�?~_}{ç�w.¾øâ‚‚‚h³fÍš3gÎlÖ¬ÙAtàÞ{ï1bÄÀ�O;í´Ðøæ›oîҥ˒%K®½öÚéÓ§?ú裫W¯ŽZfgg‡f—^zi›6mÖ¯_ÎRµjÕ)S¦4jÔè;G~Y‘>}úìµqLßÚµk/¹ä’íÛ·G›až{î¹I“&]uÕUÕ«Wà�Â8‡+ ×’˜¸¶mÛ†å¶mÛÂæÜ¹s[¶lVvîÜyÁ„AزeKØ?~|¸ðÒ�_­Zµ¿üå/a$Æázå•WÂ}Ò¾}û0Máëá¼�?þx÷îÝúN=zôŸÿüç/¾ø"Ú¬R¥JÿþýÞ°¾fÍš3Ïûlnnn" î¾ûî°Lü„}+W®Üœ9s·¦L™òÐC%ª= Üÿýƒ >|øm·ÝÎÞ®]»%K–<ýôÓcÇŽ NQ­Zµ+¯¼2´|ôÑG{öìš�5êÜsÏ —ŽÎ;a„Ðò;Ë:?üðÃo¾ùæƒ>xÐwèô…yùãÿضmÛ0k………a(æÍ›7qâĦM›6iÒ¤U«V¡3/¿ür8f”‰‡+½å–[µ„ ܽ{wX‰º¡oß¾™™™aL¶mÛvÍ5×4nÜxŽ?lذ—^z©eË–axŸþù0bá‹a ÂæÌ™3o¼ñÆ*UªÜ�Ö¬Y³�†îMŸ>=l~öÙg¡WÑ¡Â\ßtÓMO=õTÆ ßzë­0eþð€Ÿ,5 8¬-Z´cÇŽh}ÿ+G�#FŒ8묳û«V­ú·¿ý-¬ÜqÇK–,Iì_¸pᆠBãÄžþýûŸ|òÉ“'O.^Â8©(QÍÈÈX¿~ýÃ?\üaççž{.©è�ÜRzµuëÖ)S¦Üu×]¯¼òJÓ¦M‹´ÿؼyó=÷ÜV:vì˜Ø»QÒݽ{÷‘#G†•¥K—ÞvÛmÕ«WÿÃþ�hY³fÍäää :ô;‡1œ½nݺ—\rÉ៾“N:)¬<òÈ#Ç?ꨣ¢ý 6lРÁÆ�ß~ûíâíëÔ©µ/!L÷™gžy Ç_·n]zzúO<‘xî;ç / òòË/Ï;í†n8õÔSÃÊ›o¾Yü8á^JII™8qâ÷/äpD@pXÍš5+±~ñÅè×O;í´{š4iÒ¼yó]»vEÕ"½zõ:î¸ãºvíúÿ?|““C³°R"ëœ;±óæÍ3f̘?þÒ¥KÃú矾çwÃGaY¯^½ý?ÝG}ÔªU«Õ«WOŸ>}À€¥ùdRÑ+éö|®ù€:�TT¯#©è-…k×®-,,œ;wî¨Q£:vìxûí·'Ú$žÑ.¥lq)&Mš”Tô�²»åÞi iiiuëÖ SóÏþ3Iý €bÐñÞzë­°<÷Üs£7Ë <øã�?>ûì³üñ¨Ôïž>üðÃU«V%½ž.,—,Y²×f%t ªT©U±HKKëÖ­Û–-[úôéS¢Íu ˜0aBVVV›6m:tè®â¾ûî{ì±Ç²³³‹¿p/\Zø(¬|òÉ'{=`)úŽ;¦M›Ö¤I“ÓO?ýHŸë=_WX†wZB¹råºwïžT=¿ÿþû»wïŽ*« €àH²çÛê6mÚ½�¯_¿~Ñž7Þx#,/¿üòDIåHñìròäÉsæÌ +½{÷>ꨣ–.]úÙgŸ•8rAAÁÅ_\Êûñ†^»víY³fEo2L8 $ÕÇHMMyýõדþ—i†e… ÂÊ/~ñ‹[o½5l4¨Ä‘Ç�5Û«jÕª�=:©¨Xsñpù€:�T>¼Dغ§p�W^yåºuë&Ož\â£1cÆüêW¿Ú׫ö²²²’““»térMt£F�ÂòË/¿,¾3ŒÒ 'œ�ô¿ÊÝe~§wÊ)§´jÕ*??ÿ…^èܹ³?U€ˆ€#ÉÆ�ûöí»yóæ°ž——÷§?ýé‘GùÍo~“��}ÔQGEm|Ì1Ç„=QáãàÝwßíܹó¨Q£Âú¢E‹’Šjn4oÞ<útذa½{÷�û÷ïÿÍ7ß$¥ÃO>ùä´iÓî¹çžÄ©£go·nݺvíÚÄζmÛV®\9ôªcÇŽ‰"Ú�:Œ?¾F�gIMM uêÔièС‰2A¸ÀpÌk®¹&ŒÀ”)S¢ÀzçÎ�#GŽœ5kÖž�i$tøÅ_lÑ¢ETíºLlÚ´)œO?ý´øþ0ƒQIë=ëŠüþ÷¿¯X±â¸qã¶oßžT”ÑOœ81,Ï:묰ùàƒÞÿýsçÎÝÏã—Ø_PP°bÅŠ¤}×3ÙÏ;­„¨îszzz¸%ü©|û#6ü†3 ¿\‹R¿åË—Ï�;÷‰'žØ¶m[^^Þ©§žzóÍ7_uÕU%2Á?ü𡇚={vAAA�56lx×]w�~úéC‹4jÔèÖ[oíСCñ¯¼üòË£F�Z¶lYåÊ•+Uªtíµ×þîw¿«X±bøháÂ…×_}8uT–¡B… õë×ÏÊÊjÚ´i³fͧÑBã_þò—á¤Ú�÷Þ{¯E‹›6mÚóªÃ1GŒQ¼Ìtø?cƌѣG¯^½:ôäØc�íÔ©Sfff‰r &L¸á†ÆŒÓ»wïÃ?kkÖ¬ùõ¯½råÊ(GÓT¯^½;î¸#ÌZ„U«VE‰P«V­=z 2$ñÝ0,a¬/^.-LJ—.]úöíÛºuë¥K—žX$ÌÑu×]·ŸÇ¯S§N÷îÝï½÷Þ+®¸bÁ‚‰ÑÇi×®ÝøñãîN+.Üa®_}õÕpcøƒøöÇ•€#ã—ëÿbÁúõëÿ˜®k„ }úôùë_ÿÚ½{÷*Uª„=ùùù›7o^±bżyóxà�5kÖ,X°àüóÏ?¸ã_y啳gÏ^·n]T¼‚øî´0e×]w]ô„;%8 Ìlܸ±OŸ>ݺuëׯ_”>åË—¯^½z“&Mú÷ï?cÆŒ‚‚‚èÝwaÆ ¯½öÚW\!}> Æ�×£GãPœȨ̂Ÿ~š——Õ5Þ« „åºuëîøS§NÍÏÏOOO7Ô‡Ü|pî¹çÞzë­ÑæŽ;¦M›ÖµkW#PœÊÌ9çœsÒI'=ýôÓyyy{m0vìØ°LKK;¸ãçççŸzê©W_}µ¡>äfÍšµtéÒÇ{,zdXÉÈÈHII12Å  8|ôÑGÑʲeË~L×U©R¥—^z)//¯I“&S¦LI¼1o÷îÝ ,¸á†î¾ûîG}´}ûöwüþýûúé§•+Wv ò;­E‹ÉÉɃ Ë3fLž> stream xÚÍZ;�$¹ Îý+*¼ F'‘z� ?`ggof\°=sãÄ ãœøï["E‰ªªžé>\`,Û¥Òƒ"?’Y»ý²¹ÍÖ?nK°¥XL.Ûë·­‡`ŠzŠI1m/M ~3ˆmÞùf·?ü{û±®ÀÜVØ‚´r1Ñå­x“£ß^ÐE}èËÞ’8¶=¥®&'ÁÞº?‹—Š&è%È¢~sQIêЙÒˆ¬U"’†ëkb�iÇZ‚º&Yî~´qj0˜î³RлÖAØK®ÔçX6͈ÜT^KÛ¡g2CdeèÌ0ëÙ�fôþ2IÜô+¡wÀ�þ£ŒÏû ˆÒ"#Ó©.Ë­;æûˆ ¬¯šš”ÁB4.FÖØwÎ~ßç„-š’0W©³qÃÈñ¿‹ß_#DU=`CŽ Éé@žgúìQ¢ã{ðEÍ’à„%ù��(4îJõÍ`ì‘õ6G?eì1*MÄäÆ~¼yÍ¡ õ uPìFìaZl¡ÿ+ºhVfZ¾¤{ZAŒ?_î1 ½ù`´ ¼YnFìNÙÜãö- hà £Œ�®Ââîz’ ñ¦ØÀ*úº–CÄ픽58º>¡’‘4ì.��¼Ô’l–`‘ÔbJû9íê\›õ¯ëwíO %¥‘ŠI]'(f¶h3™€^_œ0vØUâ *-ªü|¯GXÆA�vRL@ÎüüØ­¥2WZžtôÀvh‰¦¼=±.VSžQv8Û80‹Umµ°÷Y�HœaìûS�7ÒW §‘qL Ðéá°L2•޶Ô]<úE¤•A¯Î4Ï–_CÝkÃCšGÕ‹?óÈH}ñšQÊ/oÑçãïVå|Í›ü’}ù�ÔÃ:È­ñ]f¹×S*µ ¶gÊÒd™”JAýØe:t˜ŽD£ÔŸž`…Ö˜ø”iÖ|”ÂõMÛÒé-ë…Üg Be3ù7gHµ:ž Iy)K´pi¡¦CãDá½|]øÝu¼+\ä åZ¼7!çXF£+’¤ȃ/ä1ïªYy¸šuÖ›d󿿨]¤¢0ýϘ?êôRcz²ÀôP¹è°µ¬ÓSE“¾Ü’5*¢NˆýÚ]ÓcÍ›7~æ-³˜ìÝ¿•_?�^ÇöQŽÛu”9è=»QK5s†xÖl]Fçk*ÎOgí)5QÝŠ°rÀ}oat݈ûΔsžA©Û–ñNÕÀì;ô<*m$]™É×2Ñ=ÏÔéìòófš‡Ï¹Ÿ•DðDï�<ù¹Þ}¬TŒnQ7;Ö¼âøqÂÞ+ÎèÍÊÝE5n«’Ží€iö]Á V,ßtÔ ¸<Íùûù‡_×ãW-·â.ã4„¹}åÝ#uÏz¢`ê°u¸oÆ;øî­`êüÃ�Lf?Ž¹Þ Æû~îü \xôô+_f×ÓâѼ%žÐrïö�¿�ì>{÷ѳáòÞÅiäx�|÷:ùô:åî.âéëÚÞY¡“>”˜RÅ"Á£ZxÄ+W"òËfÀ·ý·r<0±„í%Ùú£²Âo[u\“ªqÆÐ¿¶¿Ë�I[2%YÇ­fYêjYÖZÔlͯ3rQM�]�o’Ú­œö¼ª [•@ì—FChM�ªÕš3Ö�Bìñ!Á�ãÑÿ®éoðçóD:w$K®+–Ê:ø]TKvMb}ƾÑÎ\‹GO#qðºzc½à¼qǪ¸™ºee%„lBœe¢Gõp쮃ü¦èÉvâhÕÇÅ.¯[·ßX–·Ô>.מ�®=BOþŠB85¶œKÆ¥´6j±‚¯Ñ3 ¦‰¹[Û ãÖ�·›5asÛßþ<~þçŸ�º•Uˆ’R�€Ò€ÑÌù/ˆ€AÜj™r™_YÛœa‚rféÛ³Œaæ9Þw•ŽÎ2¿§9(÷šwj—é·(ºÂKÁ¤tpÍèeå�¿û‘ma endstream endobj 83 0 obj <>/Filter/FlateDecode/Length 4539>> stream xÚíÕ1 ðñ'ݱèQÙò$´Eð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüF=’Ìš¬ endstream endobj 84 0 obj <>/Filter/FlateDecode/Length 94316>> stream xÚìÝX×úøqŠéPÑØÐ[°`b, ‰ šh,1Ä�±Å\Åhôª±$v�½"ö ¨¨Q ر�Š ½îÿÜ�ßîÞÝeEd#à÷óäá9sæÌ™³ïÌnàõìC…Ba@Q3"}  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ћ2„(ÝŽ=º}ûö“'O>zô())ÉÁÁ¡F�½•,--‰ô‡4@1²zõêþýûkݰpá‚t2yòäÀÀ@ÝmV­ZÕ¯_¿«¸¸8__ßÈÈȤ¤$Ý--,,llllmm«T©Ò Aƒ† ~ðÁ¢ü&ÜQ<4hо}ûüüü¾øâ‹+W®¬]»öžÒñãÇgÍšâèèÈ[zb,þ>! Å„¹¹yåÊ•nß¾�““£ºëܹsÕªUóôô,H'+V¬P¡Âƒ²²²Ôvµk×®{÷î;v´··/ѱ²²²4þü³gÏŠj×®]Šo§gÏžµhÑB¼Ò¡C‡®Y³¦iÓ¦üñ;ï¼³uëV…B!$$$ˆÈ´mÛ–·ô„ÐÅHíÚµ'Nœ( wîÜñõõ½zõªêÞ!C†Ô¯_¿aƺ;iªd L/~üñÇ'Ož”;?zôh)›îjhhتU«éÓ§÷êÕKµ~Ñ¢ERd …âôéÓóæÍÛ¶m[nnî>¥öíÛ/]ºÔÕÕµTÞNŸþù­[·DáÛo¿•+Å-1a„©S§J›æææ¼ï ?Ì€(ŽÊ•+×­[·   gϞɕ999ìÓ§�……EA:)[¶¬··÷‚ ¤Í�;wÖ­[·T†ËÆÆfÞ¼yª5'N´³³S­144tqqéÞ½{½zõ~ÿý÷¼¼}º™™ï8è‰!(ž*UªÔ·o_µÊ˜˜˜ž={æææ°“š5kº»»‹‚‹‹K‹-Jq¬ Þ¸[·n3gΔ7Ÿ?Þ±cǧOŸ–²˜üòË/RÁÖÖVýo##�èèè­[·ÚØØð^€þ�€(aŽ92nܸ‚·¯Q£†øY«V­R“—�Ãûõ×_;;;Ë›Ož<‘—¤(233÷ïß/• y×àu! PÜ•/_^-‡8{öì-[¶ðpi% Ñ ‘”™ššvìØQµF~._épãÆ�´´4.4^;ÐÅ]ýúõÕ* ^�Ã¥§Ì±Î¯///ÕÍܽ{·Ô¼ºû÷ïs‰P�€(&NœØ­[7ÕšÔÔT??¿ÄÄÄ+Íž62â¿ÿQ±bEµš¸¸¸Róê’’’¸Ä(Ê€âÏÐÐpõêÕ‘‘‘—.]’+oݺåïï¿{÷îb˜\ÎËË;|ø°���êDã”””ãÇ�ÇÄÄ<þ¼jÕª:tÈoa�+W®œ={6>>^ê¡Q£FE>BÍ)á&&&¥æ†ÉÊÊz½xòäIpppÏž=---åÊóçÏŸ9s&99ÙÑѱmÛ¶ªËp„¸BCCïß¿Ÿ––V®\9�&MšHüPl‘€(,--ƒƒƒ7nüäɹrß¾}“'Ož2eJ!:œ1cÆøñãÕ*]]]£££Ukììì´N§ÍoÅä«W¯®Sºÿþ¤I“¤tllì„ vìØ‘žž.·´°°øù矇 ¢zø¦M›¦M›¡ZÙªU«�7:::a~üXj0räÈ.]º<|ø°}ûöñññ½{÷nÔ¨QÅŠïß¿/Ž•ÓÙ/^\¶lÙðáË$Œ¹¹¹ÁÁÁª5}úô1P. =jÔ(QnРÁƒä½Û¶mkܸ±Ö®+=}út÷îÝîîî!!!ª‹NèV¶lYq:QhҤɈ#òkæ­$ âB‹ ¿f�•¤²¹¹¹œ€¶¶¶V›f^ä7@RR’¸‚~øaTTÔ•+Wäú¬¬,??¿½{÷6kÖL\åJ•*ݼysÉ’% Rƒõë×þùçmÛ¶ÕÚmLLL›6mDŸ­[·Þ¹s§”77PΞõãÆ�ûþûï ”“Ù}}}Ïž=ëááÁG@qC „ùꫯ¤l¬\óüùó.]ºœ={VÎМ±±ñ'Ÿ|¢{¬¤cÇŽ:Ð{öì?ÓÓÓßyç�ÈÈH©rÿþýÓ¦M8pà?üP¥J¹ñ§Ÿ~Ú°aô´4QNHH˜:uêúõë«U«vêÔ)'''¹ÙèÑ£}||Ž?.mazùòå·oß–7]]]GŽ)o:88Lœ8Q5˯šŒÖJzÉãÆ�+xöYU÷îÝu$ eï½÷ž••UJJJÞNErØÛÛ�;V<==›6m*×0 <<<((ÈÏÏO®4hPãÆ�Ÿ>}*m.^¼XkZÜ¢>**ªfÍš»víÒ lß¾}¥´�ò™œ?ýôÓ† ø|(nx:@ɳ`ÁiJ¬ìÚµkªË¿”J•*¤Y… ^ئlÙ²­[·–7ÿüóÏ… .^¼X5û,ÔªUKšq,™5k–³³óü¡š}6P>púôéòfDDĽ{÷^=z'OžTM7ÛØØ‰‘«¶éß¿¿ƒƒƒ¼)Ï&Ö*<<üúõë–––½{÷Öë%0P®§Qä·SÞuëÖUÝŒ‰‰9}ú´jöÙ@¹ž‰4ï[røða­ËI<øÖ­[¢°hÑ"­i}—úõëË›ªÏç@ñA ä111Ù±c‡‹‹‹jePP�jºö%~#4*Ðï„j²Ë�½½½\nÚ´éàÁƒµ6S›ôºråJµ°ÄËËËÆÆFÞÔ\`ú¥dggÏŸ?_œZ^*¤R¥Jlذ¡ZKsssÕÙÖÁÁÁj«B«Ú¼y³øùÉ'ŸnúsÁ/AÁ¯Â뺬¬¬T7—-[V»vmÍf;v”ËÉÉÉwïÞUkpäÈq‡‹B½zõÚ´i“ßéT¯Q‹-ød(†X‚ Drppööö–²�Lœ8±aÆíÛ·�366–Ëfffù5«Q£†ê¦ZâRfhhèæævùòei3::º€Ã8þ¼ˆŒ………B¡HLL¼sçΩS§6mÚôðáC¹M—.].\¨6;[0cÆ i½‹œœœ_ýuæÌ™Z[J héQŠo8µ$u~�¬^½ºêæ“'O\]]UkþýïKµÙÓj˜ššzøðáF��7ŽøC$ Jª ¬\¹²gÏžrM^^^ï޽ϟ?_­Zµb>xÕyÍo™œœ\À£ºw﮵ÞÐÐÐÝݽM›6_|ñ…———ŽÊ•+7hР¹sçJ›Ë—/Ÿ4i’æç?ÿü3**ÊÙÙYuíè¦öï ©©©ª›�=:räˆTnÒ¤‰î®F(R€b‹4@ Ö£G�K—.©®¼‘��àççfaaQœG®:Qºà-U§{ëlkk›‘‘‘““cdddjjjmm]¡B''§ü¦åj9rä‚ ²³³E911qåʕÆ Sk³iÓ&ñÓßß¿àËh@m¢t^^žêæ±cÇägggÂP¢‘€(Ù¦N�zåÊ•={öÈ5—.]úè#yS^Z"­¿Áô碕””$—@‰F 4xë­·¶lÙ¢º\rNNN÷îÝïÝ»Gp^ÑØ±cårhhè_ý%•³³³wìØQ¦L™Þ½{%= '% h€RÂÇÇgæÌ™ª5ñññ]»vÍÌÌ$8¯ÂÛÛ»Y³fòæœ9s¤ÂÁƒ>üðC{{{¢T„Ê•+'—O�:E@J4ХǨQ£úöí«ZóçŸnß¾�ȼ"ÕIÐ[·n}ðà�(lÞ¼Ù€õ7ô R¥Jr988øùóç9*555''‡è7$ J•eË–½û5då^]çÎ�k×®-•³³³ýõ×ôôtiÝm±‹ø-Õ8--mÁ‚9jàÀ�ëÖ­#zÅ h€â+##CüÌÊÊ*ø!æææ¿ÿþ»££cáΨP(òÛ•��ýÆ^CCÃ1cÆÈ›Ë–-Û¼ysJJJ÷îÝÍÌÌŠüt¯ñ*‡à½÷ÞSÝœ:uêÍ›7uò믿†……ùûûó¡PÜ�€(¾RSSÅÏ”””—:ªJ•*AAAOŒª¶|üøq~3¦£££‹m 4sô¹¹¹E{ '''©œ��ðÍ7ßéú¦¦¦rùáÇZÛ¤¥¥‰ T�ÞT_~^^^ɺªV­Ú®];y3==½}ûö:§¹iÓ¦‘#GþôÓOª1@1A øŠ��?ïÞ½û²6mÚtéÒ¥l¬:]:==}ÿþýšmgÏž­Z“_Z¼€ódÕÄÒ\o­T“ËùÍÏÕ\&8))©h¯…©©©”t–Ïèîîîíí]Tý«^…;vhm¨^ÿ2¡º+99ù» ˜÷×q¹%£G�VÝŒŽŽnÔ¨ÑæÍ›Õúc;v¬¿¿Ë–-™þ P<‘€(¾Î�;g Ì¥^¿~ýe�ýüóÏU¦:4iÒDuì°aäķ쯿þjÑ¢…“““ƒƒƒ\yòäI­½Ý¿_.§§§çwÒÄÄDÕM³k¥'þi=Jvûömµšððð"¿_~ù¥���¼©ö¼ÇWÔ²eK¹¤¶œ±¸† ²páB__ß^!**J5hñññÿÌ  v�233µžñÑ£Gª›iiij |||úôé£Z#^B¯^½œ��ýýýÇŽ;f̘.]º8::Μ9ÓÖÖvÕªU|\OÆ“'O& ÅÐÚµkå,dbb¢ŸŸŸ¡¡áKõЮ]»Ó§OKÉYOOÏ.]ºhmfjj{áÂi3))iõêÕñññ7oÞÜ·o_``à„ *V¬(ÊË—/—§Ó8p ...22²fÍšæææò±#FŒ�V1P.U1xð`KKKÍ“nÛ¶Mô o*Š®]»j6 ›3g޼)â0pàÀ2eʨ5›;w®x¥ª5blþþþš-_…™™™èöìÙ³Òæo¿ýV¾|ù¢ê¼råÊ+W®”7ÿý÷‹/>zô(44tÉ’%C† ùóÏ?·nÝš››{âÄ ©MDDDxx¸¸vÆÆÆÎÎÎò±ÏŸ?6l˜ê¬p;;;µ…•õtˆ« î[¹ç&MšxyyižqïÞ½AAAòfÆ ›7o®Ö¦M›6âj©ê”””+W®œ:uJÜ7nÜÈÊʃ߾}{ãÆ�ùÄ(žH@/ !!!S§NýñÇå'®\¹räÈ ‹Š+ZYY°+###__ß;vˆ>u$ ooïíÛ·?{öLÚÌÈÈ8}úôþýûÅHbbbš6mzàÀ‡9sæÈùGSSS1� /X°`Û¶mÇW�°œ““#*ïß¿ãÆ�ºuëš™™�;wnÓ¦M+V¬˜7ožêZÃÒ ¼wï^JJJÍš5EͬY³D›ï¿ÿ^uÕ…§OŸŠïÞ½Y§N�¥K—îÙ³gÚ´i7nT{E¢«5kÖ\¿~ýêÕ«·oß~ç�wŠäê8;;/^¼Xš7o®¶LÄ+rqq±UM£‹ oܸ¡¶H÷ƒš4iR¹råiÓ¦}ñÅOŸ>mÖ¬Ydd¤æ•òòòªR¥ÊÖ­[[´h¡zö'N,^¼xæÌ™j+¡›™™õë×oÒ¤Iª X 2ÌïA.(5Ž?ž˜˜¨c´ìÖ­[¡¡¡qqq¦¦¦|ð�êêÀGŽiÙ²¥ØõÆFòúõëuêÔ1yôè‘���>NñüùócÇŽ‰ ‘••åââ".�êÔàK—.988è/ëZlo€sçÎ…‡‡‹�•-[¶zõê­Zµ*øWð1 ôkÕªU[ÖPÊoo›6mÞðHJ„;wì³`ccóñÇç··¨Ö)q7@%ÞË%Ž! hÍš5âç AƒP$ € �ˆˆpwwoÛ¶-Ñ ‚4ðb …bìØ±¢0räHCCC hàÅfÍšuæÌ{{û  €x!ð_yyy6l°¶¶~ÿý÷üî»ï®\¹rüøñbï”)SÊ–-K”€" ü×öíÛ—.]* )))›•ä]Mš4úÈÚÚZ­ÒÅÅåøñãÕªU#>ÀK1žKpô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/Ê´255íׯŸ\& ¼,ÐhgddäææF(üׄ $ zA ¬ €vYYY7n”ʽ{÷æ9„(­ E^^žøI(ðÆ244422? E‘# €vâWðèèh¹L@PÊdgg')‰ÙgÀÐÐÐÄÄÄVIHQ! ðfÉÌÌŒ‹‹KMM%€L¡Pdee=V²´´¬T©’™™ayu¬ ðÉÎξ{÷.Ùg@ñoñf!¯ŽÐJªƒW\Í´"П¬ÌŒˆ‡‰RyÇß1¦fæÄÞXݺ¥CnnnlllNN¡toñfquu566&¯‚4À›âáÇ™™™ò¦‘‘‘�’‰‰‰(¼±òòò²³³Ÿ+Éoñ–qvv&>¯‚4À!77799YÞ455uuu-S†ìðïKKK{{û˜˜˜¬¬,©R¼ećIЯ‚Úx#¨®ûlhhèââBöP#Þâ­!Þ Zß8(LH ñbóÛ]^¡µÞÍÍ�¸(AT§?[XX˜šš@“xkˆ7ˆœwNII±±±!,…Fþch§–ùîʧ^¡P7%ˆêDNkkkäÇÊÊJ5M@^Kp”~ …"77WÞ,[¶,1òcaa!—Ňr~Ì€@;CCC» ör™€ DËËËSÝä¡j€joñöá-Sh$ ÐÎÄÔ̧[â€ÒAm 's,ÔÞ Ì€~,ÁÐ н` ø�»Oä·ë£zÎÄ H@ ]^^Þó„'RÙ¦|E##¾6¥œC—üv¹¹¹€B  €v9ÙY‡vl�Ê]ú}ejfNLðæÈËS PH$ ”TíM¯z˜¥èO†AV¤ñC©ÜÕ좹™)1€7WÄ_Ä óð#¼.,g Ð н` @i}?^ûËh­Õnnn }# ( ªµòRí A@ßX‚À+yøð!A€V$ Þ¥K—H  h…”œœÜ½{÷ÔÔTB­H@( …Bѯ_¿ÈÈHB�üðB´3)cÜ¥�—\&  fôèÑAAAÄ:�€@;cccÏÚÕˆ%Å�ƒK´ï¨Ùžà@‘ËÊÊ9rä¢E‹t# ( ÜœòÙáFp[C‡]¸p¡jͤI“&Ož,•/^¼Ø AµCV­ZÕ¯_?Õšëׯ+uîÜyܸqR�èöÀ�÷îÝ+W®\ûöí«V­ªzTãÆ�/\¸ 9¤-Zœ\½zõþýûÃÂÂÜÝÝåÃ÷îÝ»dÉѳB¡�jZ´h1iÒ$Õ6‚««ë™3gæÎ�»eË##£… vëÖÍÔÔtÆ âÀÏ>ûìܹs¢Y“&MÖ®]+bl̆ø/ÐÀëá¬äääÔ°aCͽfffï(ÙØØ´k×NmoNNN¯^½¬¬¬&Mš$Õdgg‹š'N̘1ÃÛÛ;77wýúõÒ*qqqC‡Ý·oŸ|x¥J•Ä�ýôÓM›6‰ò±cÇ®]»¦™ ÏÊÊ òôô|ûí·¹XxYF„(¹äŒ³»»»ZöÙàÿO”–ÄÆÆj>fÌ© P(æÍ›§Ù`ÿþý‰‰‰Ÿþ9¡F!�€J-kkk¹œššªÙÀÓÓ³}ûöRyݺuOžøàƒ&Mšœ;wN”.\8fÌSSSi×®]»ÒÒÒX…ÆÀ›nìØ±RáÑ£GÒ3 %¢\®\¹N�:" hàMçççW³fM©Óqˆ¡¡¡TÈÍÍåÚA«2„¿~¯]XXXAšÉó•@Idii™šš* ‘‘‘š{#""ä²B¡Ðß0† 2mÚ´çÏŸ‹³ôèÑÃ@9-ZG{sss©ðôéS."´" @¾¿H}ýõ×ÄÀkçââR�fÎÎÎÄ €’«~ýúgΜ…]»vEEEU¯^]Þ1jÔ(++«””±ùèÑ#µcuÏ�NKK“Ë/L^ÛØØ 2dæÌ™¢ߦMÝ¿Š899I…›7o>}ú´B… Òx¶oßÞ³gO.+ X‚xí¾øâ ©�‘‘ñÞ{ï­Y³æâÅ‹‡1bDÓ¦M§OŸîêê*5X²dɶmÛ._¾,mæää<~üX*'&&jö|ûöm¹œ��ð‘ >¼L™ÿ›´ª{ý ÁÛÛ[*äææöèÑãÔ©SG�mÛ¶­f–o,f@¯ÙÀ�<¸cÇQ~ðàA¿~ý¤úŠ+nÚ´É××wÊ”)RMrròÆ�[·nýöÛo‹MQÎÊÊ’v…„„ܹs§Zµjr· …â—_~‘7÷íÛ÷ã�?ÚÙÙ鉓““ŸŸß¶mÛ¬¬¬ºvíª{ØŸ~úéäÉ“cbbDùˆ’(Œ;V^K   ¤ª\¹2ß5”†††[·n]¶lÙªU«"""Ħ»»{·n݆ boo/T¯^½C‡]»v}÷Ýw�Œþ³ªÁ¡C‡þõ¯�={Vî$11±víÚ^^^ÿþ÷¿›5k¶dÉ’9sæ¨.*}ûömWWWooï   ϼñõõݶm›8—¥¥¥îa[XXˆa 6ìäÉ“eË–mܸñ¨Q£|||¸ �‘€@;…B‘™™)•ÅofòÃ�@ŒŒŒ†(iݬV㣤£C½év÷î]ñóóÏ?/Hãš5ky¨V­VãææF JœÐÐÐÕ«W�1¢bÅŠDE‚4^ξq=Ôjª�So£P(@1·aÆ ØØØtîܹgÏž‘‘‘ݺu+W®Üĉ Š hà�“œœÜ¯_¿œœQ>tèÐСC¥ú-[¶”/_žø ¨àMS¶lYkkkµÊ3f|úé§Eˆ4J¤Ç�8p€8¼^£G�öóóKOO'”8eʔٳgO³fÍ,,,Ê•+÷ÑG…„„Œ;–È ˆï4B€'&&ÆÇǧG�~ø!Ñx�[µjÕ¶mÛƒZYYJ–æÍ›‡……è3 QÂDFF¶hÑÂËËkÊ”)Dãõ²´´Ü»wï½{÷:uê”™™I@ †Ð(I’’’:uêTµjÕß~û�hkÖ¬iÓ¦Íðá×.]J@à ÑqƵš…=Þ%,4‘€F‰‘——çïï»gÏR´Î�;·bÅŠ£G�Þ¿_l:;;{yyuïÞÝ×××ÈH×W%Zµj5bĈ¹sç¶nݺG�D¥‰¡‘±}­r™€2ËŠŽj5nnn„€&Ð(1–.]ºwïÞyóæÕ¨Qƒh¡ôôô€€€Ã‡2dÙ²e&&&‘‘‘+W®\¯äéé¹víÚúõëëèaÒ¤IkÖ¬6lXÛ¶m+T¨@HQj—q¨Ý€8Pø?® J„¸¸¸ &¸¹¹�"”‘‘ѶmÛ‡^»vmâĉ|ð�··wÿþýOœ8ñË/¿ˆ/^lܸñŽ;ttbkk;~üøÇ�RȘ�’aüøñ‰‰‰sæÌ)Äâ‹-5j”ü”ÿüó=z|ðÁR�ŽDj‘X³f�¥¥¥§§gJJJqìúõëE(:tèпaÍvvvb¯T?r䈎ÞD'âçÊ•+SSS¹iQ:ääæ�x$ý'Ê€—EÅ]zzúêÕ«E¡oß¾…ë¡Aƒ¢‡Í›7ÿë_ÿúgƼfÍš´´´K—.………çØž:uJüLIIñùí·ß´¶iÕª•\>tè�ŽÞÞ}÷]{{ûäää�;wrߢtÈÉU¨$ €—ÅÐ(îöíÛ—œœìààРAƒ’2fy†µ¾§Z¿¢øøx¹|åÊ­mªT©"—oÞ¼©£7##£öíÛ¯_¿~Ë–-þþþܺ•èx�ïTEG«n¹¹¹%O$ QÜmݺUülݺµ¡¡!Ñ(ZuëÖ½~ýºTöôôÔþQ濟ªKikõÞ{ï­_¿þèÑ£YYY¦¦¦D€"Qmh�zÕÿÖ(|KÅ hk⯩Ç‹BË–-‰F‘›;wîãÇ�/^¼Ø½{÷~ýúim£:KÚÑÑQw‡Ò,õÔÔÔóçÏ7oÞü¥#N$óÂf·nÝâ”Å7Ö¥KÕ„TïÞ½7lØðèÑ£ß~ûíàÁƒ×®]KJJ*W®\Ó¦MGŽ©ºR­ŽÃÃÃÃÅáÇ�¿sçNZZZ¥J•¼½½,?ž®ÈüŠg{öÌßßÿþýr�xá¢òÒ¥K³gÏ>|øôéÓÕV9ˆ��ÕÌ> §OŸŽŒŒôððåððpÍì³�2ÏxëÖ­:uê¨V¦¥¥}ûí·Ë—/ÏÍÍ•+ÅË<¦$°}ûv͹É;vìPË> â¤çÎ�{ë­·¾üòË?þøCuWttô²eË‚‚‚¢¢¢lllTwÉñ«W¯^A®BrròСC×­[§óËJ¿üòK·nÝt¾oß¾Î�;«¾X!++ë†ÒÊ•+===-ZÔ¬Y3µ·lÙR𯾦¤¤ˆ›VkºÐГ¼¼<1$©lddÔ½{wÝíÍÌÌœœœbbbò[QoãÉ“'ϑխ[733³ZµjõêÕ‹ˆˆ�*�?.忬­­›6mÚ°aÃôôô¤¤$Qsøðá=zT¨PAÇárâÕÑѱeË–nnn)))©©©Ê´ì‰'ºuëfffV„.ôo߾ݪU+yò©8°Y³f...âð´´´¼¼¼Ó§OŸ9sF®:gYœEôV¶lYéaq">ï½÷žÏàÁƒ;uê$µqvv677¯X±¢¨766Ž‹‹•Ÿ|òÉ€:wî¬:†øøø¶mÛîÞ½[J­ÚØØˆ˜{zzZZZ>zôÈ@9™zÆ ï¼óŽÚtì·ß~[„BTÖSýˆ1KÃ8p ¼è°½½}‹-¤yÊ¢�†“““jWk×®A°³³+È�úäÉ1àH›åÊ•kÒ¤‰BFFFbbbNNŽ|9DÄH4{3f̵kפr£F�ÄáâµT©RE\ô *Å /YTª½dCCCñSí%¿ÿþû"hõþ—¨?~¼|¯ÉôdÏž=K–,‘Ê"b½{÷~á!Û¶m‹��÷á_|ñRçïî���—:$ }-[s>Ç¡?9¹Š“×ÿoïڕʯEà¶KºÛ_éÅŠøÓ2!!AÞ–ñ+. ¯÷ËãÇ�-Z$•ÞØ`ßÐâªüòË/RyË–-r½¸Ø'NüöÛo¥©²999;v<|øpvvöòåËgÍš¥ûp''§_ýµK—.Ò:â¨%K–|÷Ýw™™™¡¡¡£F��í€ qƬ¬¬®]»FFF(—�7kûöíå]+W®/?--í�?þ·ïêÕ«U�?~¼hcii)"Óºuk9 ªÆ�'ßý—/_¶µµÝ±c‡Z1N1† .(SÏÓ§Oï߿ٲe¥½·oß8pà±cÇĹ äíí-­­!ñôô\µj•¼ÙªU+)±(¦F�?ÿü³¯¯¯¸šwïÞmذáÓ§OëÖ­«¹Î†4¡û…KKŸ ={öü믿DÙÜÜ\ øË/¿”¬P(ÄãLIIÑ݉¼¢ˆ‰‰‰xuª Œœ:ujÒ¤IGŽÉÈÈèÕ«WxxxµjÕä½�•4_²õ‡~Xð»¨Ðзýë_RÙÞÞ~êÔ©9ÊÙÙÙ P+5‹»ñ…3¬¥žÅ»‰ÿ”%ï!„6lèÙ³ç_@™2C† ‘žSwêÔ)ÝÇ:::ž>}ÚÅÅE®1116l˜»»{çÎ�óòòV¬Xáïﯶœô«(Ü'Ož|ñâEQ¨U«Vhh¨ê¿�˜ššŠ×Û AqHFFÆš5kz÷îíãã£z¸hS³fÍ«W¯^ºô‚É2ÒŒ`­Ë+Ïž=ûäÉ“¢P©R¥ãÇ�×®][u¯ÿ�š7o~áÂ…øøø3fÌœ9³€1yÿý÷ÿý÷råÊI›U«V½uëÖõë×ßyçÍIîܹ#~V®\ù…Ý.Y²äÈ‘#¢P¶lÙƒª. bhh(îqF__ßœœ�üøã�<¸ÿþ?ü ¶¼u‹-:$B-Î’––¶xñâ‚¿ä‚{íPµlÙ2é>ï²-[¶ð_ê¤++}/á¥8(ñ¡ €¦; >Q¯úèg€¡„% {*©UÖ¨QC*<|øP÷áóæÍSÍÿ÷ø�>8pà²eËDyúôéE˜€.ÄæÏŸo œë½nÝ:­)9//¯üñ»ï¾åiÓ¦©%  ”‹`\½zõ…ëð†‡‡hK@?þ|ÆŒRyãÆ�jÙg‰©©éÌ™3Û´i#ÊÛ·o/`2ÔÝÝ}ïÞ½–––ª•vvvM›6ÕÚ^ú²ƒÖGªÊÉÉùé§Ÿ¤ò”)S4—¥Ú·oß»wïµk×êèÇÕÕUm}jUâŠ|õÕWRš[š^ä^ûþû‡î�;Ò &NºfÍš‚?¥Sšuž‘‘‘••¥¶F9(7+�*7ÂÐ;EžAZaø‹ò†,WR K@2,,ìþýûÊy†ž_3Ý hõÿÕ*7nÜ/-**Jô/¢-?ãQ˜Þÿ_ÿš�‘‘ѽ{wq:ccã•+Wdég™¼N‹¸»ÄíÁ‡,”Ti ³«†ÿe`Y‘0…SÂÐõêÕ{•Ã¥U˜µrss«_¿þ•+Wrss/\¸Ð®]»"p!Î&t$¯ ‹6mÚìܹS¡P„„„|ú駪{åœrxx¸4½úСC£G�ÎÊÊš8qbŸ>}D� ÉÉÉÇŽëСƒôB©¥Úá/Løªqvvöòòza³êÕ_ú›;–––âe¾pq9hFF¯4EqÔ¨QsçÎUðûï¿_§N�ºuë¾õÖ[çÏŸoÛ¶­þn‰×>€eË–ýôÓO•*U:pà€§§g!zÈÈÈ�¯Ÿ*o¸7+�‘‘¡c5a9EëììüÏèää$®\¹Ò£G�ËkhT©REsoýúõO�:%Í_Þ·oŸTiee•’’²gÏž:H¹iÍõ7TÇóí·ßΞ=»¨¢¡õ�Šº‰'$$È9Íü8::J…¨¨(Ͳ³³uìQ’“¿">���škpËëK¼Š<¥2eʼ®èˆ@@@€¸�=ª9—üéÓ§iiiZª©JÜ`Êì3O À›µ¢å�òÛuíÚ5)Wkbb¢ãÑÿÀåïùþþûï:z¾ÿþŸþ)•›5k¦Ù@Z…C5]­Z5iµ 1ªœœœ7n¨,Ö¡ªeË–RaË–-šÓ« MÇŠØù‘rëÏž=ÓݬyóæRaïÞ½:f²Ë‰x­6mÚ$¾øâ ѲoU÷îÝsss³µµ z-ÈÏ… >ýôSð��­+™Lœ8q„ /ìGZE¼F>^”,ó�‚/ôfÍ€^±bE~�Ô›2eŠTèСƒ­­ík£ƒƒÃ�!C¤òСCïܹ£yøž={–,Y"•'Mš¤õÔrfY´”V‹þàƒ|||ä¨5Semm=yòd©¡À?ÀèM{Áƒ R]‡áÉ“'ß~û­¨”6'Nœ¨¹îÁñãÇÇ�÷ôéÓ›7oöêÕKw&´HÎ8}út)תU«Ã‡«~@,^¼øÓO?•f] 0 sçÎZÏ+­¶!¬^½Z*´mÛ¶eË–¢,õinn®uö´ðÍ7ßôéÓÇ@¹`ñðáÃÅYþúë/ÕíÚµ‹‰‰1Pæ[;vì¨�ëÕ¨Q#éU¿ð›Î"ªuêÔ1Pf«EÐTµÏž=ëÛ·¯î%Mqq¥ÂÂ… 'L˜ ÏG–\»vMä矖6ÓÓÓ¥èZ}ðÁRaîܹòRÝâ’Í™3gÇŽÊÕHºté¢�lÛ¶Mœ%))éúõëýû÷a„333ÅHDW!!!U«VÕÚFÜ{öìIIIyaZùöíÛÉÉÉ*‹¢€âfâĉ'NœxÙP8Åw ŽÇ�ÿøã�ñññª•Ÿ}ö™‘‘Q… ¾ÿþ{GGÇiÓ¦…‡‡§¦¦J{“’’¤õ.\\\&Mšdee¥ÙmJJÊG}T¯^½5j<|øðòåËéééÒ®^½zýðÚ‡¨N#½{÷îÓ§Oííí þB qƲeËîØ±ãÃ?Œ‰‰gôññqww÷ððÈÊʺpá“'O¤fmÚ´™?~~çµ³³qˆ��•¦ýÖªUËÕÕÕ@™Ý»woZZš�ršªŽ¯ZüöÛoÙÙÙÒ×Ïw+‰Ä0LLL¢¢¢¤g(g¯]»Võ›é/^“_æÕ«W¥ÂŒ3äl¸`kk;nÜ8Ýk5ÈyÌ¿ÿþ[sʰZжoßÞºu븸84½êիשSG #,,LŒäÖ­[Ò­R¿~}q/Éç4hÐòåË ÅôéÓçÍ›çéé)n³çÏŸ_¿~]mq---Å­haa!zPKõŠÎ§N�*¢$î– 4nÜØÁÁ!""âöíÛRƒ!C†ˆÎ5_ì«@_n#®‘¾Ž¬±8Q¿~ý¤Z^¸‚Šˆ°îK ÈÿJ¡u]rðÚíܹsæÌ™Äÿ˜â›€^¸p¡æÊÛ¶m“ vvv:tPËÞfddÈ‹uÖ­[WsúçâÅ‹G�•žž®$×›˜˜Ž?^ëH¼¼¼ä²»»ûKeŸ wF¡víÚçÎ�ëÙ³§´bÃm%y¯‘‘ѰaÃfÏž-¯5¬•§§§´Ü° ÏPqÛ»w¯T~ç�wtnjjºyóf__ßo¾ùFš�£¤Ú¦zõê«V­’Z(=z´ÖE$BBB4+—.]ªc "Ú5kÖ¼yóæßÿݵkWÝÑ=44´OŸ>"tb3JIÞ[«V­€€€#F(W[–nñÓÇÇGž„¾dÉ++«ùóççå剫vúôiÍ�š››Ÿ9sÆ@ùÅü‡ŠÂ¬Y³Ôn6Ñf÷îÝ"Ô"\¹¹¹gÏž•w~ýõ×ùýËÁ« aƪíÅ©u$ 'L˜ u‰­DÅ�§»�ô`Ì 888ðñ @qsæÌg‚RñM@ûøø,Z´H뢽åË—o×®ÝÛo¿íá᡹Ʈàìì¬uiã~ýúùúúΙ3gß¾}111ÆÆÆ5jÔ'2dˆŽ©�-[¶œ5kÖŒ3*W®¼fÍš—z…;£ÄÞÞþÈ‘#âÀuëÖ………=zôH^­Zµ6mÚ 4HzÆ n£F�:{öl||¼””xúöí»yóæS§N9::¼°“>}úøùù‰CvíÚõ÷ßÇÅÅV©R¥qãÆ]•4“à¢Rô¯ùü=5ÖÖÖY¸£sçγgÏ–fé¾PÍš5OŸ>½uëÖõë×_ºtIÜ?¶¶¶�5êÑ£‡x!yyy+V¬�×ÄÄå�W^6PföÅÅWM4;|øðÝ»wsssmllDñz»téÒºuëôôtq?ìÞ½[^nB´×I�:uĉ~ýõ×   ¨¨¨ÌÌL'''qøÀ�5])Â|òÉ'#GŽ\¹r¥¸ÁÌÌÌÔ¾C ¦àÙgƒ‚-ë¼ÿ~ñ³{÷î|¶P܈?Û{ôè!}-¾øãIHHpvvæ•V†o¿xJ…ôôtssóRyÆRìܹsï¾û®±±ñãÇ�Ë•+G@ ®S§N>>>Æ ûgN+­"Y£F =�%""B^ß|Æ /ü‡àUdff®[·N*÷íÛWu­!”>ÒwJ´jР�Öz777âJ�œœñ÷š¼ùÖ[oéþ^µAêƒÙÕ‰ÛŒŽ2°¬øÏœJ¡PìÚµkË–-þù§øU\µŠ+6iÒDüIòÉ'ŸÈ§ÿ¹P©©‹- ºvíÚóçÏUs}#FŒ˜7ožTž={ö˜1còËþþûïªO«}¯]»öÞ½{âOo嬸áñÓÖÖvúôéþþþj‡_¼xqóæÍÇŽ»{÷nBB‚µµµ‹‹K›6múô飹©üJÃÂÂV¯^½uëÖ‘#GNž..®B… -Z´øê«¯äGmIºuë&=aK�“““êú¥"t&&&ª &Mš$�E/ï�Œððp�7ö T†ÏsâC¶F�·nÝÚ¿ïÞ½ HÁ‰ÿQ‰ßìtÒª&mÛ¶Õ_öôÇÑÑ1¿]$šðϸuëV¯^½ÎŸ?ÿÎÿcï^àj¾ÿŽwºœB*Zá¸äš¹3·i1ÙÈ2Œ)Æ\fÉ-—±ËÜæs'Ô0dŒ¹Ì�Í„Í=¹Í%Ê­„.tïü?ÿ¾Û÷wv:¥ÛIåõ|ìÑÞç{¾—Ï÷ýývÒÛÇûÛ Á·ß~[»ví°°°… îH'ý u¥R©¹É�;wÚ·oóæMŸòåË‹MÖ®]›±DëîîÞ¥K—ŸþùË/¿”–KÄH† Ò»wï   éùd‰‰‰ÏŸ?— Ðׯ_wqq ýðÃ7oÞ,ÏnÓ¦�Øê½÷Þ;wîÜ�?þ(v¨Yì¾wï^µjÕªV­* oܸ!6có÷÷¯W¯^\\ÜöíÛ—,Y"U½/^¬T*çÍ›'­\¦L™aÆÅÄÄÈ•t1†.]ºdLi“&MÔjõ¢E‹Þ}÷Ý)S¦p�½*†¤…߀lllÄG•æC‘µ={öÔ®]»À:Tìß¿_ü´hܸqÇŽI>9åëëûðáCTªTIª>K ÅèÑ£¥xéÒ¥šÏÜ >qâ„4»gH|||jÕª•£tïÞÝÏÏoß¾}òƒÇ"##‡ røðáuëÖ�;w®_¿~b`ŸþyÙ²eÅ»ÑÑÑ®®®¡¡¡+V ÐêPQ®\9±+_½zµ[·nòÈ?üðÃQ£FùûûË+oÚ´iòäÉâ\>ù䓦M›:99-X°@l.O÷É9vì˜æþ½¼¼¬¬¬¤x÷îÝ™µ‘žV%Væ{…˜�" D‰“&M9räܹs—-[FB^J|ìΛ7OçÓõt8q�ÄOÄÅ‹äi6hÐàuî „ þxtäÈ)nÑ¢=ýèOHHˆh¶–888HÁóçÏoÞ¼)ÿ.|åÊ)xöì™Ö&ÆÆÆ#FŒ¸~ýz.FR§N�àà`\¾|yãÆ��7±……E@:yµ)S¦HûÿüóÏÍÍÍ3îÇÆÆföìÙ 0HÄ×Â… ¿øâ ù]é9R’O>ùäÓO?ÕÚÜÙÙyêÔ©&L�*Ó§Oß»w¯ü®T Ÿ9s¦Aúê}ûöuêÔ)ãÄøÅ0Þ{ï=n°WˆÐ(† Ö°aC??¿ŒŸÂÈhÓ¦M‘‘‘⃸`xúôé�¶lÙ’ä£8122jø/“ú#5\¤‚¯¦R¥JÉqtt´˳dæÎ�ûâÅ ­­zôè‘»_dJ”(!eÊ”éÕ«—Îu?~,µâ²øÇÐ}úô‘&A sæÌIJJ’ßÒ|B`¥J•tn>räÈ7Þøçñ�û÷ïÕzW΀¯¯oÆÍ/\¸påÊ1­§¢€ÛÐÓ¦M_5öë×ÏÐÐPܸ“&M*_¾|Q?âkE|bŠÏµÖ­[{{{ïܹ“„dáêÕ«žžžëÖ­“ W‘‘‘â¿fÍšâ§]Ÿ©ã´]Öç¹âÐ7õbw’@߯�_­Zµ§OŸº»gõ;Hrr²·k×ÎÜÜ<..îòåËÎÎΚm7lmmå¾É¹caa!?úO˾}ûä–ò팔J¥››ÛªU«Däää”ý˜™™uëÖMÚ\­VŸ8qÂÕÕU~·\¹rŸ|ò‰Tß¿HHˆÖ¿“Þ¸q£Aúôjî®W«ØÎ€^ºté¢E‹6§“JÏñ\²d‰>Ú8ü_7Í›7÷õõݵk×êÕ«ÉF<<<ÆŒ£³û¾> ¹£P(zöì9dÈÍùÎ×®]ûòË/åÉÑéuX9¿‰OŸ>]ŠO�:U¿~ý±cÇÆÄÄÀh�?.Çš«3jÖ¬™K«s¤U«Vr|çέwÅùþSÞÌ8 zóæÍŽŽŽ�5âîzµŠmÚÅÅEžá¯ÅÚÚúÝwß-G| yyy 4hÔ¨Qr_$d´aÆI“&̱&Ož|ðàÁ­[·æôÉ 3)))7nl×®�««ëo¼˜Ùš#FŒ?~¼'''Ï›7¯fÍšk×®Íì¡|ùEz^¢$c÷Mš­ÎÙ¡¹¹fûI�5ºwï.Å6lÐÜÿ‰'BCC™þ\Û-[¶ÌÅ=]´ŽøzZ¶l™ø<íÔ©“ø±··'!Y4ëÕš5k–,YrðàÁ·Þz‹´£ØŠ‰$ LJJÊŠ+fÏžmdd4kÖ¬=z†††f±Éwß}çèèèåå%Í}~ôèѧŸ~º|ùò•+W6hÐ@O㌋‹û߯M11YL‚¶²²’ã¬KÕ/Ý\çQ¾øâ‹-[¶¤?F~Ù²eS¦L‘–oܸQä0ë~&(<„EŒ±±ñÚµk{÷î=lØ0²ñj988œûì³,Vûâ‹/¤àÒ¥K»víÚ¶mÛG}dffÆ­UP€^¥àà`9ŽŒÔ~úÝ»wå8))Ió­cǎݾ};ã]]]¥IÐZUfÍšlTTT®,ö3nÜ8)~ñâ…ŸŸ_fkîØ±C äÇf_JJŠô€AkkkOOÏ,ÖìÞ½»\Ý8pà³gÏè¿QxP€^%͉É���šo=þ|òäÉòKÍb´Aúäè©S§fÜaRRR||¼A†8U¬XQŽOœ8!Ç{öì‘ëÑ)))R í!3#GŽl×®�‹1d¬› G�ýóÏ?E0hРÎ�;g¶+­“’­\¹2<<\+V¬°¶¶Îb0FFFcÆŒ‘∈ˆ5j´nÝšûª�  @æÞt!ôM³L¼dÉ’Q£F;vìÔ©SK—.mœÎÄÄDzwñâÅ'Nœ_wîÜ)-ñ÷÷ÿᇴv¸hÑ¢¤¤$SSÓiÓ¦i.»*Q¢„óÍ7›7o¾páÂW_}5}úôÒ¥KK˯\¹"¡¡¡™�ÙØØ800°Q£F"~úôi÷îݵqÜ»wOš†ìêê*Æ“Åé‹ñ¯ZµJkáÉ“'ÇŽ+‚3fˆ�¿4‡ýû÷—‹Ô}ûöå¦*<ŒÄ­F‘‘‘â§ï?/;”´ 'У´TƒÈÛNÿß׬M›69}5P¸þx›–öäÉù¥µµµ¡a–“_}OÞþ_«‘Ê’z=BÅŠoݺuñâEƒôIͧN�Z»v­ŸŸßñãÇ}||¾üòËcÇŽ‰Ä»�=Z½zµXsüøñ>”:TìØ±ãúõëfff çÏŸŸ9sæœ9s,,,µf@›˜˜DGG‰X¬üÓO?-_¾<..nûöí)))û÷ïŸJJJ’ãøøøm{àÀ¥RéâââááóÁ¤¤¤d|²"  Ðd¥êÂ8ƒ…Usñhi@fBBBäøÂ… 9ÚÖÃÃ#""BGŽ™0a‚´ð»ï¾spp ±…häæÍ›ýõ׌3ä%û÷ï7n\§N�lmmkÕªõÒgðˆÕ¤´ÌÓÓSì�ÜN Ð-1E½ö\ò?qb¢©©)9€LBP¨P€аÔÔT9V«Õ$… h óõõ­]»¶……ÅÈ‘#Û·o¯¿=xð€l#§è aÍ›7¿r劾�²oß¾ÀÀÀÕ«W“päht311éÝ»·“¯­ððp�Î�;“ äht322ª]»6yðšKHHèÙ³çãÇ�Ir�ÐtKMMíׯßÉ“'Ir‡4P($''ß¾};/{HIIÉÇñÄÄÄôìÙsË–-\ä-8€Wìüùó6lxÿý÷ýýýÅ’£G�®Y³æ�?þ¸ÿ¾••U“&M Ô­[7�›oÞ¼900påÊ•NNNZï&%%‰½íرc×®]Ç�···W«Õ?ÿü³ŸŸßÙ³g£££ú÷ï?bÄcãÿU #""ZµjuóæMyI@:)nР�3/EÝÄѶmÛ&Å~ø¡R©$'òWHHȺuë¶nÝzãÆ yá³gφºyófyÉ£G�ö¤¿›üøã�¦¦¦ÒòË—/Š5¯^½ªsÿ◱¯¿þ#-III ëß¿ÿáÇåÕ‚ƒƒÇŒsòäI±²¼°L™2»víAûöíïß¿/77·™3gJïš™™qù� Ð---Mþ3œˆI€|÷àÁƒ *Ô®][.@GFF¾óÎ;IIIË–-kذajjê¾}ûæÏŸÿüùsƒô‚rŸ>}¶nÝ*â¿þúkùòåfffÏž=ËlÿÖÖÖÞÞÞaaaAAAÒ’+W® 4HqË–-wïÞ�2eʹsçÄ[bI``àG}$­ibb"=˜]ÒKKKÕŽœ¢ ¼Ò <ØÊÊ*))I,Ù³gÏÔ©S'Mš¤P(¤uZ·nýÑGµmÛV*4oÛ¶mýúõÍÒ¤ÏPîÞ½»Îý·k×N|:t¨\€îÕ«×´iÓFŒ!½lРA›6m¢¢¢ÄË•+WÊh _ðBàU*Q¢Äo¼!ÅÎÎÎ_ýµ\}–8::._¾\~9}útÍw_:+¹|ùòr<{öl¹ú,)S¦L�=¤øäÉ“üPä/ ÐÀ+&·¹¨T©’Î>úè£úõëKñÕ«WÏœ9#¿U²dÉlîÜ “ju½zõ¤àùóçOŸ>år Q€ ;…BÑ»woù¥ÜR#_”.]ZŽ¥fÓ@~¡4€¢jßåû—ÍÉô')1!äÁ?�òØzîŽÒ”G<ô¢gã*$�­Zµ’ã;wîèé(´à@þb4PÔªUKŽ£££IŠ Ð@`ee%ÇšM3€ÂŒP@"î‡e\ZV­se•JEÆšŒ�ÿWʳ±±!!(÷-)€‚áåÚVÇÂLVV«Õd  )&&FŽ›4iBBP$P€@7…BQª´…“¯Ö�7¤ÀÔÔTó�„@aFÝL”¦�û $ ‰S§NI�»»»¹¹y�Wž‘“ššÊU@NñB ظq£AúôçñãÇk.OKK“c}tp233“‚¨¨(®rŠ4PXܽ{Wçò={öœ�œœ,ÅqqqÛ·oçzá¥(@…Å‘#G¾ùæÍIÍéÝŸ  ‚¡C‡z{{kmrñâE9¾páBÆ}>xð@ŽŸ={–q…[·nÉñ“'O´ÞmÓ¦�DFF~òÉ'þùçîÝ»ÅBž—‹ì 4º‰?K½ˆûçÓ%Í-x! ïï<–qagG{2�9::.Z´hÓ¦M^^^�7644ûlÁ‚ÑÑÑém@###±¤[·n\/¼htKNJÜýã)vëÿ¹ÒÔŒœòȶB¥Œ Uª*d kҤɾ}ûf̘1oÞ¼û÷ï—,Y²J•*Æ 4hPÕªU5×\¾|ù×_­µyttôèÑ£E°hÑ"//¯ñãÇÿøã�÷îÝ“Wøé§Ÿþøã�–-[nÛ¶M¼üàƒŽ9¢Ù¸Ã××wçÎ�C‡3fŒ´ÄÎÎnÿþýb·gÏžµ²²jÕª•Øm‹-¸XÈ Ð@!R¡B…Åé²^mRº¬×™�.‹vìØ‘�!5oÞüøñã\ä= zÁ hE•‹òr=Ó8òýI0HúÛèŸ'ut7=ofª$'½9K€Ô£Ÿl!¢T*]]]Ƀ” ’ähhS(¦¦¦ä@Ñ‚  €W,))I âããÉŠZp€W#ô^Ä^— •C•JE~ðúˆŠŠzôè‘_¸p�„ 8¡ ^�ª.C3{K­V“¼ÂÂÂΞ=;oÞ¼´´4iɵk×>ýôÓž={V¬X±Zµjæææd EhàÕèÖ­Û™3g´®M'‚�;wvéÒ…,¡H£ ¼§OŸ& (Þ(@�ÉÏH#£NmÉ1  Ç¿\“tÿŒ46z«A-ò@®’€>0¼·÷-ÿÏëš.äŠ ÐàÕPU´ýïk9€b†4º%'§:uQŠÛ·xÓÄ„šä ¿K [jZÚÉ ×¥Ø©™£  ‡(@(ªš;ZZÖ"П„„„³SRnÑÄÌÌŒœ�ìííI:’€bO¡Ph¾T«ÕäÈLZZZß>È ÐÅŸ¡áª@ÉÉÉäÈLJJJß>ÈZp�3aaaš/µê*•Š¡R(J¥2))IzW²dIÒè$¾AäX|ã0:/(@�3­ZµÊâ]: Ð*]ºtTT”ÇÄÄØØØPVt~Œ‹oÍor’Ìx-hÖÑ’““ïÝ»Çß—ZÄ7…øÖÐìQcaaAZò‚Я333¹²{óæM ssscccºÜâu––––’’£Y}ß2¦¦¦ä'/(@¼ E… îÞ½+O|NNNŽJGr€Ì¾eèT“GüÕÀë¢dÉ’•+W¦ ¼”ø6ß,<«3ï(@¼F¤´‰‰ ©2#¾A¨>çZp ›™™™··7yi¾´³³#'(ZJ–,Y½zõÄÄĘ˜˜ØØØ¤¤$rJ¥²téÒ¦¦¦üC�üB€œ©T©’æK{{{r‚"G¡P˜¥³µµU«ÕiiirchàõüŽ044¤è¬ ^k …ÂÈȈ<Ðz@ô‚4@/hÁ ¨*_¾<½ö W ³fÍ’â &˜™™‘r„4€¢Ê{ëË“OÈô'59ñêÙ;Rìÿ‡‘‰)9�k�Û’¼†hÁРн  Ï?�ãÐÐP)P©Td¯ Ѐ^ì™ÐKŽ«Nø'P«Õd¯Zpô‚4@/(@/¹wï^ò eìØ±Ýºu‹��'Љ4ðwîÜiÓ¦MPP©ÐâããÞ¡C‡¸¸8²€Œ(@Yùûï¿[·nÝ¢E‹©S§’ -¥J•Ú½{wxx¸««kbb" €cRd&::ÚÕÕµråÊ«W¯&:ÙÚÚ´oß~Ĉ+V¬ !(f #ëêõ䘄ȩ÷gm–ã%½š“¼†(@º¥¥¥¹»»‡……íÚµËÄÄ„„dÆÉÉiäÈ‘¾¾¾ÎÎνzõ"!(N ��Ë;¶ r­Ôvr¬R©H^Ç_®I ÓŠ+vïÞ=cÆŒ5j��¬M™2¥lٲÇ�ŠŠ"�Q€txôèÑ—_~©R©<==ÉÆKYZZNœ8122ÒÇLJl@F @‡‰'>{ölþüù¹h¾±téRoooù¡|fff ,øì³ÏŠwÆÄ úøø¬X±b̘1UªTá€h £»wï®[·ÎÆÆÆÃÃ#›ïرC®> ž]ºté>}ú¬\¹Ò××wÁ‚sÐùæ[ëYXqÇBRRÓNßü§±LÓêÖÆFü³!y°Å� ë@@îP€Fqàéééààðǘ››çbsçÎMIIqwwÏݳgÍšegg—��qäȃôçþ³Î»¬\¹rÍš5Ó§O/Uª·"Š�”TõÞó÷¤¸¡ª¬±) g˜Ì…â& àÅ‹.\ ÊÅæñññþþþ"èÛ·oîШQ#±‡M›6Mž<¹¨œu¾hÞ¼¹��MllìöíÛ¹`@Å�<Ý8wóŽ÷ìÙkkkÛ¨Q£×ç¬óçÓÄÐÐÅÅE›7oæ>(êB#âþ÷ß¿H È)Zpÿ(¾:;;+ ²‘So¿ýöúõë>œ””¤T*I@ÑUÕkÛÿ^ü«Õj2r„4ð?âÏÓAÛ¶mÉF.HÓÆŸ?~úôéV­ZåhÛˆˆˆÈÈÈ—®vãÆ ò PTP€Î7AAAnnnš´>}úlذááÇ«W¯Þ·oß•+W¢££Ë”)óÖ[o�=ÚÉÉ);›_ºtIl~ôèÑÛ·o¿xñ¢\¹rmÚ´2dÈ;3¿ãOLLƒÜµkWpp°8–ªB¡°µµU©T]»v�‹‹›={öøñã³îkëïï¿cÇŽ‹/>{öLœlÓ¦MÝÝÝ{÷î-ö߬Y³ëׯ‹ýŒ5JÞdÙ²eÞÞÞ šûyóÍ7�9R¶lYŸhР¨¨(͓ݓnîܹÇ 1Ho¬Y€Þºu«VõY¸xñâ_ýåààðÙgŸ|X*Ä:t¨gÏž±±±Òr‘ñòäÉ“âåãÇ�¯]»Ö¬Y3)K"ò å=´k×®|ùòZã477?~|fg!•È­¬¬Äé¿4ob ...â‚J/Å&ŽŽŽâ‹Œ…††Š3’/_fV­Z%›4iR±bESSÓ§OŸÞ¸qCzÀ‹Ø•³³³¸ºvíªµm¾œu^�©-nT>@:ߨÚÚ~ÿý÷R,W�CCÃI“&�3Fš®›’’òþûï8p 99yÕªUsæÌÉzóŠ+.Z´ÈÍÍMê„ ¶Z¾|ù¸qãÿýwooo±“<Ž|êÔ©RQ¸oß¾>>>U«VÕ|7<<¼[·n§OŸÎbb Ó¦M“b—Y³f5lØPz%ùÃ?hM³•‰5×®]+¿trr’&\Ë™©Q£Æ¼yóºté"2y÷îÝÆ�‹}Ö­[Wî’Ñ5]Æ=L˜0¡S§N9JÅ­[· ÒËý/]3--­wïÞRõÙÌÌlæÌ™Ÿ}öY‰% Ò+ìâ <8...ë�Èy`bbräÈÍ¿K8~üø”)S:”��ðñÇ_ºtIëºäËYçe™±··7ÈU§fOOÏž={¾t5±gñíÀ@‘@Zï6lØÐ»wïÿeÜØxèСғîŽ?žõ¶vvv'Nœ¨T©’¼ÄÄÄdøðáÕªUëÚµkZZšŸŸŸ»»»V;霒º%T¯^ý‡~Èø®½½ýŒ3:vì(b�퀯^½:bÄ)�¯¯¯¡¡¡ü®µµu@@€tîü¥Úµk÷óÏ?Ëó‘+W®|ãÆ qÄ äWûM·oß_3Î Îhùòå‡A‰%öíÛ§ùÐB‘%qÅŘ»té’’’’ÅN¾ýöÛû÷ïß»wï믿֚ÉÞºuëýû÷‹´‹£¼xñbÙ²e³gÏÎ÷óÕǤ‹�ÓÁئã �¸½øÃÿ½è<�„€Ü¡­_½Ói-¬Q£†Ë\\\úôé“uÙ½J•*Z®5‰L~þùçR™ûÌ™3ú8_} @š.n‰¤¤$¥Rɇ@¥²5×x¡"! w(@ë×�!C2.”zqrãã̸ººföÖĉ¥ô¡C‡žë›8ƒô–Y¯tïÞ=ƒôùÝòìïŒÜÝÝs4ï[­V_»víï¿ÿ¾yó¦Øll¬ÔD˜¾åˤ´Aú$h>P¤™šŽê\WŽI9EZ¿ó²¹Î–•JU¿~ýàààÔÔÔ3gμû>ʬY³BBB~ÿý÷‡NMg�Þy£nºF�µmÛ¶jÕª«Ï¹sç¤éÏb<­ZµÊâ(NNN9*@׫WÏÙÙ¹€¯—Tf555Ízµ?þøC >øàƒ,&ùfsþoZZÚöíÛúé§C‡IO˜,`ù;###)HLLäE�ø¶*ÅD~r�´~½´™C^Ô¨QCjß,ÍÆÍ5 ‹#GŽlݺuöìÙòÃÃÓíß¿_zÙªU«É“'»¸¸hm+Ö‘‚š5kf}�õë,èl÷¡÷ïcãÔtY¯vÿþýlžõKmÙ²eÊ”)W®\yU·h¾@ž×_³×/”ï[©Ÿ3 é¯áÀkˆt¦V«ókW†††=ÓEDDüöÛogΜ¹|ùrHHHhhhZZšAzÓ‰N�:yyy}ÿý÷šó²��ÿ¹…äy¯ù¥zõêŸÒR¥J%&&¾´5ŠœùÌZŽd“···¯¯¯æ)·k×®N�:uëÖupp°µµ=}út‡ôw¾ú€4#Þ @ Ð(ä(@j Yô#þûï¿¥ÀÞÞ>/GIKK»qãFÕªUMLLlmm¥J´ôV\\Ü©S§6nܸaÃ1˜Å‹W«VmôèÑò¶ò¡oÞ¼™õQrÚ�AŒD)MK'×͵˜››?yòD.¡fÆÎÎ.;g�œœœÅ»{öì‘‹¿ï½÷ž��O³fÍ´Öɯ²¾Î³ÖÓÄ=c�^}æ „ ]¨íÝ»·wïÞ:ߺråJHHˆLLL2Ö sÄÉÉ騱cuêÔ9þ¼VÑÐÜܼ}:ooï–-[ÆÄÄÌš5K³Ý¸qc±N\\Üõë×/]º”EÏë={öähTYô¿ÎµðððV­ZEEE­[·Ng‹� *ܽ{÷éÓ§YïGîv½{÷nµZ�ÙP³>å�7JÁ§Ÿ~ºzõjýÝE™�µž õ'Qñœt IIIÛ¶m“bñíÃ_«�S†¤ 0óóóËì-éQ�ésW---ór”cÇŽ¤W´üñÇÌÖ©[·®Ô:""âñãÇòr¥RÙµkW)þæ›o2Ûüþýûz­±j’çùfœÈüË/¿„……½xñbûöí:·­Víÿ Ë�­3ÓºukiÍÌ’öôéÓ 6d±“¨¨()puuÍl�¬çPçñ¬ów2){U«VåûÅ€Z­ŽûW>v=Nþú/r�wÌ€.Ô:´iÓ¦Œ“ ýüüÄrƒô “&Mʸáwß}7gÎkkëµk×ÊÓu_êÛo¿íܹ³TZÍèÚµkR õ8Á‰'ŠÁ¤¥¥mݺuñâÅ^^^Z&%%õéÓçùóç“´Š+JAHHˆ›››æ[‡–©Ðœ‘ÔxúáÇât²èïljj:bĈ¯¿þZÄcÇŽÎXo8p`dddã”›\‹«¬5NÙ¾}ûôwÖù;™T€®[·.ß¿ hÉø/äøÛG€¼cta7xð`ÍN�?3fŒX(½œ4iRÆþG��0aBTTÔõë×?þøcé)‚ÙqëÖ­öíÛÿþûïZËCBBúôésñâE·lÙR«-µ££ã_|!ÅÇ1b„fáUlÛ®]»ß~û­À2öÎ;ïH�¯¯opp°üËÃüùó·nÝj�ÞÜ#³zk“&MÄ×”””—NxW¡N�:éÕj'''ÍBíÓ§OûöíûóÏ?g½qi¤`É’%_~ù¥<YråÊ�yóæI/ãããŨò÷¬ówò-k Ñ¥¯3f@ç›ÈÈÈo¿ý6""Bsa¿~ý ­­­¿úê+;;»éÓ§_ºtIž -Ín®T©Ò”)S´fKâââ:wîìèèX£F�\¼x1>>^zëã�?–&áj9}ú´ß½{7***³IÍ·k×®ZµjÕ«W/Uª”ØöêÕ«rAÙÄÄä»ï¾Ë¸•8ñ›7oŠxÑ¢E~~~õë×çzáÂiKKKq¾·=þüÂ… 哺|ù²Ìš5Ëßß_^Ml>a„ì4v)�6mš�|£F�š6mjkkrëÖ-i…¡C‡6lØPç¶rÙôܹs™Í’–”(Qâ§Ÿ~rvv~ôè‘Hr§N�DÆêÔ©#N$((H>É�7¤ -Ò"îùXƒ^µj•Z­ž9sæ‚ ĨDÒbbbDεڀˆë..‡¸‘J–,)ö0`À€¼Ÿuþ@röìY)hÙ²%Ÿ  �o–,Y²hÑ"­…[¶l‘++«÷Þ{O«^œ��°yóf)®[·nÆ¢Þ²e˼½½ããã/¥“—›˜˜øøøLœ8QçHZ´h!ÇÕªUËfõ¹\¹r¥J•’ê•·Òi­P«V­•+W¶mÛ6ã¶FFF›6mª_¿þôéÓÅI‰ÿù矚+¸»»÷îÝ[g¯á±cÇ:t(ãr�“¦W¬XñÒ133Û¹s§Èö�;wRSSO�:%¿¥P(† ¶páÂ̶¹ªY³æõë×Ï�;×½{÷¬$.Ùï¿ÿîááñ×_‰—7Ói¦ËÓÓsäÈ‘éÝ–¥ -¾vìØQž´¾|ùrsss1ž´´4‘´'Nh¢aÆâtNž à¥#ÿôÓO—,Y"Ž%‚mÛ¶�;wîÑ£G)))Õ«WoÞ¼¹«««8®B¡Èl'â­I“&õë×oõêÕ»víºuëVbbbÅŠÛ·o?pàÀfÍš=zTç†Ý»w?~üxÆGçi)]ºôû￟ÍkQ§N�àààE‹‰s¹yó¦4ggçAƒeìX¢¥k×®sçÎÍØ‡D§š5kž8qB$mýúõ.\WßÒÒ²I“&½zõòððHKKóóó“bâòÉ�—CCCqqÅU«8pàîÝ»©©©RΛ6mêææ&Æ/®æÎ�;åîbýü:ëü€ðë¯¿Š¯={öä‚‚kÆ«òo�7>>^«árÑuôèQ©Oq‹-¤µ…Ó_ýÕ¼ys##£ÈÈÈ2eÊp7f_XXXåÊ•Eð÷ßרQCOG qtt”â 6dÝ)È£ÄÄÄuëÖIqß¾}MMMÉ c{ˆñ»È5Í Æ¥K—êÕ«÷Ú¦‚ÐÀ4kÖ¬F�7nÜøõ×_ûôéCB²Oj3Ò¡CýUŸôgÛ¶mRШQ#²�_ I eôèÑâ«æ#ñRjµZêÐ=nÜ8²Š"»©þENòŽ4 mÀ€666Ô|¨ ²¶ÿþ7n4nܸcÇŽd Ѐ¶%JLš4I­VÏ�;—ld‡È•ȘB¡X¼x1Ù@±úihXå_"&!ä= † ¶víZ???ooo’µÀÀÀÓ§O4(ã£{ôªAƒ¯s Œ¶mÛ’r�ta1mÚ4ñUsa¿~ý ßxã�I“&•/_¾(ž×¯¿þº~ýúÔÔTùÔnܸѻwoƒô.{“'O.S¦L!¶‘‘ÑŠ+Z·nííí½sçNîÏ,DFFŽ9²fÍš?aÜqÚ.ëó\<õbw’@vP€.,–.]ºhÑ"­…[¶l‘kkkŸ¢x^ƒ ºÿ¾æ’¨¨¨Í›7KqµjÕ†^8GÞ¼ys___1¼Õ«W8�[43ƒNHHøí·ß,--É4ÑѲ°pqq±±±Ñù–µµõ»ï¾[DÏë£�>ʬqª��]»ví óོ¼ 4jÔ¨��nQ�&Ož|ðàÁ­[·ÖªU‹l@ 3  ‹–-[jõß(|ÓÝñ/[¶,99¹S§N'Nœ°··çFÕ´fÍš%K–K“c�S<„  zA ô€ ßÜiþÿÿL*0  @>R•Iÿ§E*©À€=¡ Рн 4€¢j�o¯TªD ?III—¯o—âmuÝ”Jev·üé'²}ëÑ£IPøQ€@7…Baee%Ç$€œ¢ €n&&&;v$ä= Š˜ˆˆˆÐÐPò ð£ PÄ 6¬jÕªä@áG ô€@·´´´èèh)¶´´44äomÈ Ðè–’’ràÀ)vssS*•ä€a2@/(@ô‚EÌ’%KÞÿ}ò ðc4@ckk«R©È€Â�4@/(@ô‚ЊªŽ;Ö«W�<@®_¿.Å~ø¡™™9 G˜ Рн  Ð z@ ›‰‰‰›››“rŠ4º5lØ�<�k´àèh€^P€è= Ð-99y÷îÝRܹsgžC@NQ€@·ÔÔÔóçÏKq§N�(@�S´àèh€^P€èh€^P€è…1)PDí»|ÿr¢9y€þ$%&„óññY±bŘ1cD~¸Pl¨ÓR£ÃoI±¥}5…!Ï! g(@:ìÚµKgõY¸sçÎ�† ’ý½Ý½{wݺu666¯üÔÄà5«ÏÂúõëýüüLMMs½ÏÒ¥K÷éÓgåÊ•¾¾¾ ,(°s™o¾µž…·+ô'!)uÖå`)žP³¾™’4€Bf‹_î·í@þP(@:Lž<¹D‰qqqš O�:j�þ8Áímîܹ)))îîî…áÙƒžžžQQQ"Þ¼ùŸ©Õê<îvÀ€+W®\³fÍôéÓK•*Å- ЀNµjÕòóÓžRÔ¿©�#ñññþþþ"èÛ·oa85›ï¿ÿ^ŠåtÞ5oÞ\ì922rûöíîîîÜB0  èÛž={bccmmm5jTŒOÓÐÐÐÅÅeýúõ›7o¦ @!÷ßסš¯T*)€>P€ô+00P|uvvV(ÅûLß~ûíõë×>|8))I©Tré(TªzmûÏëÿ¾Ì{?.@' Ѐ‰ßå8 ‚¶mÛû“•¦x?þüôéÓ­ZµÊéæZOGÔéÆ�ÜWEh} rssÓ,¨õéÓgÆ >\½zõ¾}û®\¹]¦L™·ÞzkôèÑNNNÙÙüÒ¥Kbó£G�Þ¾}ûÅ‹åÊ•kÓ¦Í�!CÞyç}œÅµk×Ö­[·wïÞ;wîˆÑZYY9::víÚuàÀ�¥K—~éæ±±±þþþ;vì¸xñâ³gÏÄÉ6mÚÔýÿØ»ðªªsqÜÈ€€¨‚L‘Q Þ‚Ö­”"‚¥Vô‘+8 (ƒþê€RiE±* ‚Êdµ2ˆ ­â„¢b•‚&‚2g ä¿ÿÙ÷žÆB8Âû>)EzÔ¨QC‡õ­ <‘€Ž–yóæXÎùüóÏ7mÚô�ÈÌÌŒlLKK{å•WfΜùÄOôíÛ·èÝããã'Ožœÿ$×­[7%O·nÝÆ�Ÿœœ| Æ¿cÇŽAƒ=ýôÓ999‘�Á�^ÏóàƒΘ1£èU½/¿ürïÞ½7nܘ²sò >¼_¿~+V¬ˆÉ{^$]謟y晤¤¤ðå¿þõ¯Hö9ŒmìØ±…& ƒ³tîÜ9ÿàYYYÿγE‹£F�:묳¢z,^¼8l4oÞ|Ÿ�Á1�=úÎ;ï .úþÜZÁeª]»vjjê²eË| F:zúöí»iÓ¦´´´˜¼k¸qÈ�!a£J•*-[¶¬V­ÚG}”ššš››Û¿ÿ¶mÛ6iÒ¤ˆÝ'Mš6jÕªÕ¢E‹ìììO?ý4ì3eÊ”õë×Ïš5«8 “÷)8æ…^øá‡†/�<òÈ`´GuÔÚµk—.]Œ6èŒvúôé�;w.ôwÝu×ý÷ßÉ•Ÿx≠6ܶmÛ’%K¶oߤOŸ>á[ùóé…Î:‡[n¹e×®][¶l L6ز{÷îB�?u~ê©§Ö®];))éÇ\½zõš¼Gî|üñÇmÚ´ β·)a’=ÝÑG½Ïοà˜ 6Ž;î¸àZA.Ý­& ƒ}} F:zjÔ¨ñØc�…íH.57xðàAƒyä‘ÁË]»v]xá…óçÏÏÎÎ~úé§zè¡¢w¯]»öã�?Þ¥K—°C°×èÑ£o½õÖÌÌÌ7ß|sàÀ�ÁAösäÁ1»vífŸƒA>øàƒ½zõªX±bøîW_}Õ»wï×_=++«OŸ>çœsÎ1ÇSàÁî»ï¾°}Á 6¬E‹áË�7ƒ|öÙg ¬ó-zÖ 4xê©§bþÿǶ¯ Ð{É–&$$£ÍŸ<}ûí·‡ ²páÂŒŒŒË/¿|ùòå'œpB”nƒ \1yÿ`PœÎ¿ì˜�=öØ ø—]vYp‹–úÖªS§NLiË4÷íÛ÷ÒK/Ýg·ààÁýï; À!Aº¬=÷ÜsݺuûϨPáºë® ŸS÷öÛo½o­ZµÞyç�ºuëF¶$$$ôëׯAƒ�;wÞ½{÷رc{ôèQ œtI >ü­·ÞŠÉ[ »hÑ¢O<1ÿ»Á¹æÎ�{öÙgøá‡iiiÆ ûë_ÿš¿ÃçŸ~ÓM7…í 1bĈ0¡ªV­ÚĉƒÆ³Ï>Õ8ß{ï½ëׯÿöÛoïºë®Kw[µj5oÞ¼víÚ-\¸pÇŽO>ùd�)@_ýuðµfÍšù˜«V­ú¯ý+ÿµ.Ý­.ôÞ¼ys)ÆP#�o­ÿ-yâ’Ÿ½¾èa1  H@—©ny llÔ¨QØØ°aCÑ»?úè£ù³Ïÿùñᢋz÷î. ~ðÁ÷'½eË–aÆ…í矾@ö9”˜˜ø×¿þõ÷¿ÿ}О1cF�Lè=÷Ü“‘‘4~ûÛßÈ>GŒ9rÖ¬Y›6mŠ^¨ëׯ¿`Á‚½½Œêúë¯_¸paÐŽT‰†pŽÅ¬‹ò Ž9¸è…^ë’ÞZáJùàÈÊÊ îyu‰â®k×4Òà�–R£òÏ_§ˆ e@ºL]sÍ5{n kqvîÜYôî�:uÚÛ[·ß~{˜%\¸pá¦M›ö,‹QL³fÍÚ²eKÐh“goÝ‚·ªW¯žžžþõ×_ñÅ�7·oß¾ý¥—^ Û>ø`¡Ùç@åÊ•{õêõðÃe·î&77÷ßÿþw0Ô/¿üòÛo¿ÝºukX#sôμt‡,Ë1wïÞý€ÜZ‘R-›7oîyuqq±5�ª(PjÐeªyóæû³{X÷¹P)))'Ÿ|ò²eËrrr>üðÃóÏ?¿t§xã�7ÂÆ÷ß¿çbíü"Oÿ[·n]$½téÒpùs0ž³Ï>»ˆÝ[·n] è`�/¿üòŒ3.\>R¯Œ…™â¤¤¤ƒ|ÌE¬V.Ñ­6233}Þ�€.SÅ,ÅP:�5Z¶lYÐøöÛoK}�Ⱦ+òg—üIÒuëÖ…�&Mš½WåÊ•£íéÓ§2dåÊ•¿ä¬B…œ<‡Ð˜÷çÖŠ¬â¯T©’Ï;ÐåGnnîþ¤ø©ÒP�:uÎ8ãŒÿÜOþ÷ŽŠ¬„ý¥ 8pĈ‘— 6<ï¼óN:é¤_ýêW�7®Q£Æ’%KÚ¶míaTªT)33sŸÅUª1ïÏ­®�)«ô'5/ÛZ·�Ï>”Æ»ïŠÇ™gž)°?$ %ETþâ‹/ÂF�:uJ}ŠÈ¾ƒ >|x©wÿòË/‹îÕ sæÌ‰dr;tè0tèÐÓN;­@Ÿ²I‘W®\yÓ¦M‘´ìA;æ]»vñnño­mÛ¶ÅäeŸ=��ò!++kÖ¬Ya»cÇŽnl(©8!8„Ì�;woo­\¹2¬˜‘��°gâ²øÎ=÷ܰ1uêÔ¬¬¬’î~Ê)§„µ5V­Zµ|ùò"zΙ3gB©@]¨^x!lüÏÿüOp¢ý È~:þøãƒ¯?þøã>{þ²cž?þ¹µÖ¯_“W6Ú§•ò!77wÓÿ9 ¿e‡ èCÉØ±c÷öÖ=÷Ü6:tèPµjÕRŸââ‹/w_·nÝý÷ß_DÏ… Ö«W¯Y³fk×®�lLLLìܹsØþóŸÿ¼·}ׯ_?nܸý ÅêÕ«‹xwãÆ�a£S§N{ë“��]—¬Aƒ1ùJc´c.âr”èÖ gz 'ø´pèÚ�ÏšŸ()%8% .œ2eJ·nÝ l;vl°=&¯DÃàÁƒ÷Üñ/ùËC=T­ZµñãÇŸ}öÙEœ¢J•*þóŸ ´ï»ï¾c�=¶_¿~{vÛ¶mÛÕW_¦ž—,YR·nÝÈ[·ß~{0˜Ý»w¿øâ‹O<ñÄ�7ÞX`߬¬¬îÝ»oß¾½èÉ&$$„ùÖŸ~ú©fÍšùßÊÉÉ6lXû6lØ0±.]ºÚçµ×^+ƒKŽä»ï¾ Wc4hиqãjÕª5iÒ¤ßüæ7ÅçìÙ³_z饋/¾¸¤·VaúW¿ú•O+‡®K.¹dooù¥(()+ 1}úôÉ_¼â‡~4hP°1|9xðà=‹$,Z´è¶ÛnÛ¸qãªU«.¿üò¢‹Wú÷ïß³gϘ¼27ÝtSçÎ�?úè£üV¬Xqþù秦¦íÚµk_xá…ùßmÞ¼ùŸþô§°Ý¯_¿àéééù÷=ï¼óÞxã�}Î4’Ô~úé§óo_³fÍÿ÷¿þúëEìL3lŒ9òŽ;îˆ,.­\¹2˜àÃ?¾Ü¹sgÑ�÷Ç©§ž“WayŸk%Ș§OŸþÈ#�lÞ¼ùóÏ?ïÕ«W‰†zÕUWåOpçÖ*૯¾ÚºukÐ(ú98|X-ééé÷Þ{oZZZþ�W^ye\\\µjÕî¼óÎZµjÝÿýË—/�¬Þ¼ys¸º¹nݺC† ‹)°mÛ¶‹.º¨yóæ�5Ú°açŸ~ºsçÎð­Ë/¿ü®»îÚs—%K–DÚß|óÍÆ�«W¯^ôàÇ�—��=uêÔ =3Oýúõ›5k–��ðå—_FŠ;'%%=ûì³Á×»ºM›6-h?þøãcÇŽ=ù䓃ù®Y³æ“O> ûT­Z5˜ocøãÿ.s¾û~úéàì+V ÆÿÑGå_t Zpü hGuTL^´OŸ>Á^AÏ|ðÑGmÑ¢EÐaË–-Ÿþy�‚A +Uª\”#Ž8"¸.aÞ6è6|øðð‘zï½÷^$>‹-ÊÿÖñÇŒ3<{~‘TìÒ¥KÃr{³ÿc|üñÇ‘>Áeúì³ÏŠ¿98Qûöíƒ+Õ°aÃbÞZDþ¡â¬³Îò€ èè9räã�?^`ãôéÓÃÆQGÕ¡C‡I½ŒŒŒ0ç“WÄ`ϬO>ùäÀ�wîܹôÐCÆ «Y³æÄ‰‹?…ž={^|ñÅS¦Lyå•W–.]úý÷ßÇÆÆüñ¿ùÍoºæ©Pa¯÷OÐsðàÁW^yå¸qãfÍšõÕW_effÖ®]û÷¿ÿýÕW_}Úi§XA¼§J•*-X°àïÿû /¼°dÉ’àì¹¹¹Çw\pöK/½48ûÿ÷Ï�;7Ò¿zõêgžyfäe\\\¨ bcÇŽ�?þ7ß|“““sä‘G6lØ08B—.]Ú´i³sçÎ 23gΌԎú‡»_tÑEÿøÇ?öY¨:"ˆíï~÷»BßêܹóðáÃß|óÍ}d?Ç“W«nÀ€Ï<óLp?$%%X€_èt¾öéÓ§C‡%½µ xõÕWƒ¯ÁÕññ ë ‡ÀEŠ� ;wîLNN.“Z´hQ˜±=ãŒ3Â%½åÕ|púé§ÇÇǧ§§}ôÑevÞN�:µk×®ÐgHFÃÚµkëÕ«4¾øâ‹F�EïD+V¬hÞ¼yØ~î¹çŠŸ‡RÈÌÌœ4iRؾâŠ+ö¬8”KEÔ”ó4Å”?ƒ±|ùòfÍš¶¡°¢ë´ÓNkÔ¨ÑêÕ«_}õÕîÝ»—Ùy7lØP»ví2;]X¥mÛ¶QÍ>@øûßÿi·lÙR@`Ä DÛ€‚¯&L(³3nݺuùòå-Z´(›ÓåææŽ3&hÜzë­.7‡ºZù¤üœà@II@CÔõêÕ«zõê ,øòË/ËæŒsæÌ9ñÄˬ<żyóV¯^}Ê)§´k×Îå¦\ýùá3h ”ø‡k!€h«X±âàÁƒsss‡^§ NôðÃç8a´OÌ.66ö‰'žp­)g.ú?A[@ ¤Ô€†²pà 7Œ?~ìØ±lܸqTÏ5eÊ”ôôô믿¾l¦6mÚ´%K–ôîÝ»ˆGµDɯýëù„?ÀÁOú •––vß}÷_óo¼òÊ+ãââŽ=öØÁƒ׬YóPœ×«¯¾:yò䜜œÈÔV¯^Ý­[·˜¼:kwß}÷ÑG]./h||ü˜1cZµj5pàÀ™3gFïDŸþyß¾}'Mš”””TóJOO¿ùæ››4iR6‹»8´H@¤F�õøã�Ø8}úô°Q­Zµ¡C‡ŠóêÝ»÷úõëóoÙ¸qãÔ©SÃvƒ úõëW^¯éé§Ÿ>bĈ`‚ãÆ�»úê«£t–ž={4¨cÇŽe3©>}úddd¼ñÆU«V-û�6¿oVLµ�}»  ä>ÑC Ô€>H]pÁÕ«W/ô­jÕª�þù‡è¼þøÇ?îíA^µjÕ:ï¼óÊ÷e½ñÆ{÷îÝ¿ÿ+VDéÏ=÷ÜàÁƒËf:wß}÷‚ ^|ñŦM›úÌR>åîŽÙ’üY³fÍîÝ»ÅJÊ èƒÔYg�U þFù0"Ïá|eŸ|òÉìììöíÛ¿óÎ;uêÔ9àÇ/³\ð3Ï<3räÈ œyæ™>°”[9»b>3øï„ ?ÝvÛmÉÉÉB%b4”© *Œ?¾[·n7ÜpÃ!=‘Æ�¿ûϔs[ˆÉÜüùé§ŸRSSÅJÊ h(k±±±=ôС>‹sÏ=×¥¤ü{þÿ…ÿýÛ§¯ýíoËÍÍ(+ ˆ h¢B€¨�€ *$ ˆŠ B…ëþ×˜å ƒÿÞü»¯¿þzñ€’’€€½¨rlLÒÁ�:ê¨úõë‹””D…аqbŸü·[·N â%% ª–so³êñâ@t—÷uê}1C6 ””D…4Q! @T¨ …ËÚ•;fIVؾ`ÕªÄÄÄ””a€â“€€ÂíÎ�¹inæÿ¾hÚ4ø’››+,P|JpÐD…4Q! @TH@„öææ3ÂÆõ—%%% ”ˆ4ìÕQɱa£~ýúÉÉÉ%¢Q! @T(Áªæ5ºweݺâ@ôdgg§~;/l¿ôÒK brýá€rO —��pÑE‰”šD…Ð@IKK‹´×¬Y6RRRD ¼’€ÊÈ 7ܰçÆÜÜ\‘(¯$  p¹¹¹;vìÛGqDll¬˜@‰H@@á²³³gÏž¶»té’˜˜(&P"B@TH@ÐD…Ð@9rd¤}á… @¹' ”‘5jDÚ)))Pî)Á@TH@ÐD…ÐÀ¡ª]»vÍš5¢'##cÕªUaû’K.INN(+ ˆ + `/GV¨Ð¾}ûH[@ Ä?\ þwd… gžy¦8@©)Á@TH@ÐD…ÐP¸ììì… †íßÿþ÷ b%" …ËÉÉy÷ÝwÃvëÖ­%  ¤”à *$ ˆ h¢B€¨�€ *$ ˆ h¢¢‚‡¨×>[ÿYfeq z²23Vlø)l¿¸451)YL(…KO©/ÀaË h¢B€¨P‚ —˜”üÇkˆEH[¿vŸ}Ö“[t‡””‘Ê+ h€Rº±Ó¹û¹¹¹" ”WJpÐD…4Q¡4.+3ãå O†í.W]Ÿ˜”,&P"V@V@”Ò3ÿµÏ>5¯#PÀaK ”j_wŸ}RRê pØR‚€¨�€ *”àU$~Ö,i›8=1Y_ÄoÛ]“>NNJJcÅGbÍ.8øY @TH@ÐD…Ð\Ö|›¶ïN•ÖñfJJŠ0ÀÁ@ w毛DÚeæ„ ®ÛÏ#äææ # $  p ÚŸsŠ8@©YÏ@TH@ÐD…ÐP¸]»r–¬X¶Ó¬Q… ñb%" …Û•“3÷­¥a»Å‰'H@@™ùúµÑûîÔä�€ƒŸ4—”Ú5ŠÑ)E àà§4Q! @T(Áª¾«Ü¼jÕ¦â@ôdddlI~/l¯;òÔääd1€ˆ:uê°OV@ÐD…üÌÚµk÷Ùg×®]EwHIII@€Ÿ9ûì³÷ÿ ¹¹¹" (Á@TH@Jp@á’’’®¾úêH[@ ¤$  p±±±U«V(5%8ˆ + ø™Å‹ï³O­Zµ Ø' h~¦nݺûìS§N�öI —™™9iÒ¤°}ÅWx!””4.77wË–-‘¶€@II@‡ªš5kúÅO¢*##ãÈ#� ÛÁÍ–œœ,&P"qB@4X ª¾øaÕw7‰Ñ““�ùùG©a{Ù„·âÔ€GÓ®>W(5+ ˆ h¢B  fû ݾfÍš=7¦¤¤ˆÅ! Ä̹í²B·Ÿp[!sssE €âP‚€¨�€ *$ á�žž>wîÜC}·ÜrËÅ_¼sçN”ò*66®J­ú០- PR~œ†²–ššzÎ9ç,^¼øPŸÈСC×­[×¶mÛmÛ¶¹¬”Ï¿#+$Ô;ý÷០- Pâ®…ÊÒ_|ѪU«3Î8ãž{î9ÔçR©R¥Ù³g¯[·®S§N™™™..T(3›7oîÔ©S½zõÆ�W>fT£F�‰'þþ÷¿¿é¦›ÆŒãÀ¡ëÂaS Ý>ò²Ó€R“€†2²{÷î=z¬]»vÖ¬Y åçwù[·n}óÍ7�1¢M›6—]v™ ‡¨JÇÖ*t{JJŠàPjJp@3fÌìÙ³xà�F�•³© 2ä˜cŽéם߯�]hÊ“ÜÝ9[6¤†‚¶€@II@CYøþûïï¸ãŽ”””¾}û–¿ÙU­ZõöÛoOOO:t¨kMy²;g×Ú÷†‚¶€@I)Áq5jÔÀ�#‹KNN~ôÑG¯½öÚâì{ë­·>õÔSõêÕ›0a©§žú‹Œÿ@�aâPj·ß~ûO?ýôÈ#� Å7/^Ü¥K—ôôôÈ–ž={Nš4iŽpèСcÆŒ4hPýúõËf"�T~±Ù‘Gùh=Y9Ã’–…íÛªd''Æ‹ p8š>V öáÒ‰b°7V@Fþñ�D²®�ŒŒŒ‰‹õÿÊÿüç?‡¾eË–åË—_ýõ¿ÈààJ‡Rûæ›o&MšT½zõž={ wÂüùóógŸ“'OΓR¨R¥J÷îݳ²²FŒá³@È èÃȰaÃjÕª•‘‘‘––öúë¯Çä=¯8;ÆÅÅÚ.Kp ¥ŽC© >|×®]=zô8Hž=Ø·oß�7ÓÚS§þïóîsss÷ó°½zõzê©§žyæ™ûï¿¿R¥J>qH@FZ¶l9a„ ±hÑ¢0ñZL­[·þÓŸþôä“OÖ¯_ôèÑ¿ÈààJ‡ÒÙ¹sgxº+®¸â ¹ªW¯þØc�…íHzÿ�~úéÁ‘ÓÓÓ_~ùå=zøÄ M± Ëc ¥0gΜ­[·Ö¨Q£eË–åû&‰‹‹»à‚ &OžóÌ3 кuëâì¾|ùò`÷E‹}ýõ×;vì8î¸ãÎ9çœk®¹æw¿ûݟ‡~8a„ ¬[·.xÙ Aƒ:Üxã�ûÜñƒ>hß¾ý¦M› l���¿å–[Š®ƒqÅWLž<¹ÀÆZµj½þúëM›6 ÚAãÒK/ݸqãÏnÄ †zÇw�1¨8ä÷ïÿ{Ò¤IsçÎMMM ®ûQGÕ¼yóÎ�;_}õÕUªTÙÛ^+V¬øñǃÆÉ'Ÿ\Ì}üñÇS¦LùôÓOƒ3'ÚºukbbbíÚµ[µjÜQ;vŒÞJê´´´Ñ£GÏ™3gÕªUÛ¶m+ÅÍL3¸”»víúä“OJš€5jTpøÎPžH@ïÕ¼yó ¬Ç|þùç›6múÀdffF6¦¥¥½òÊ+3gÎ|â‰'úöí[ôîñññ“'OÎÿKyëÖ­›’§[·nãÇ�ONN> ƒßºuë�7Þ8iÒ¤üçú4Ïc�=ö‡?ü¡èÝßzë­=3¿�œœœ‰'�ü ¢±çÆ 6¼ÿþûazîܹ²Ï�]»vÍž=;zÆp âÚ±cÇ Aƒž~úéàÔ‘�ÁÅ}=σ>8cÆŒ½-p^¼xqØhÞ¼yqÎ5gΜÎ�;ç?Q ++ëßyžyæ™-ZŒ5ꬳÎ:à7üèÑ£ï¼óÎ`²ûss&%%Õ®];55uÙ²e¾‡ ½W}ûöÝ´iSZZZО:uj¸qÈ�!a£J•*-[¶¬V­ÚG}”ššš››Û¿ÿ¶mÛ6iÒ¤ˆÝ'Mš6jÕªÕ¢E‹ìììO?ý4ì3eÊ”õë×Ïš5«ˆå´ÅôÃ?\pÁÁÀ—G}tóæÍƒ¡~üñÇkÖ¬Ù¹sgd{sÕUW}óÍ76lˆlÙ¾}{0¶˜b”´{öÙgƒùîÞ½{úôéÁ×zõê�uÖYõë×ïÚµkØáæ›oŽ rþüùAˆŽ<òÈ:$&&Þpà j *1yÿÀpá…~øá‡áË`´Áu?ꨣ֮]»téÒ`$A‡àº“íܹ󞻯X±"øôÎ^œ1çOsŸzꩵk×NJJúñÇW¯^½&ïá6ÁàÛ´iD¸ÐÓí�„�ãŽ;.˜ã®]»Jws† è`_ßC�€Þ«5j<öØca;’AÄÅÅ øàµ×^[±bŘ¼¼m0’>}úlÛ¶­èƒ}ôÑ#FŒÈ¿eÍš5aòwŸþ;OÐøî»ïÞxã� \S¦LÉßáøã�â‰'¶nÝ„(xùÇ?þ±Ð)ïÏT‚«Óµk×0û\îà ½zõ øê«¯z÷îýúë¯geeG;çœsŽ9æ˜GúÄäý{C1‡Éð&$$GΟð}ûí·‡ ²páÂŒŒŒË/¿|ùòå'œpÂ�½ç�=öØà¦½ì²Ë‚«V꛳N�:1¥ªÔÜ·oßK/½tŸÝ‚#ß (‰â®jÝ(Ò() è{î¹çºuëöŸV¨pÝu×…š{ûí·‹Þ·V­Zï¼óNݺu#[úõë× AƒÎ�;ïÞ½{ìØ±=zô(PNºDF�½pá Q±bÅ×^{-iˆØØØ`äG}tÇŽwíÚí@]zé¥o¼ñÆš5kÞÿýÓO?½À»¯¼òJFFFL^:g? q>|ø[o½“·(xÑ¢E'žxbþwƒ«6wîܳÏ>ûÃ?LKK6lØ_ÿú×Gøú믃¯5kÖ,æ°ï½÷Þõë×ûí·wÝuW�寭Zµš7o^»ví‚yíØ±ãÉ'ŸÜótû£jÕªÿú׿òϱt7g¸Ö{óæÍ%@�<¾ÃpP‰‹‹M©QY(øÿxO\ò³×=,&{ýáZJ¤[ž5úßõqùëEêÑGÍŸ}þÏÿ²^tQïÞ½Ãöƒ>XêáíÚµë�Û÷ÜsO¡…‰/¸à‚îÝ»—A¬ºví.¤�6mڞÂ�=öØ6mÚðS�8lÙ²%RiúùçŸ/�}%&&F²À3fÌØ³CXƺøeUêׯ¿`Á‚•+W:¶ ž×_}ØŽT9P‚É:Ç’Þœá ñŒŒŒ¬¬,ß1€r)¥FåŸýù9ñÈOºd®¹æš=7†µ8;wî,z÷N�:íí­Ûo¿=l,\¸°Ð‡ïÇâÅ‹¿ýöÛ Q­Zµ›nºioÝzôèQ±ªY³f˜ùÝ33»yóæyóæ�K.¹$>>þ€Ÿú€ÄaÖ¬Y[¶l mòì­[ðVõêÕcò;ñÅÞݾ}{L^ �ÒM$77÷óÏ?Ÿ9sæ£�>zë­·^wÝucÆŒÉ䨈t|‰nÎH‰’R,‚ œQ‚£dš7o¾?»‡uŸ •’’ròÉ'/[¶,''çÃ?<ÿüóKqü°^DL^!æÄÄĽu+â­+¬Â‘ššúî»ïžy晑íÿøÇ?233c¢Vã€Ä!yØøþûï÷\öžßîÝ»ÃÆºuë7nœÿ­0Mœ””T¢ñ|ùå—g̘±páÂð1€e ˆh”èæŒü‹Bx‰8œI@—Lñk)”B£F�–-[4ÂÕ»¥°~ýú°Ñ¤I“ƒ!\]»v½é¦›vïÞ=mÚ´ü è°(GõêÕ÷§Úu´ã¹ +òg—=“Å*TÈÉSüóNŸ>}È�!+W®<¨îüâßœ‘ߨT©R´GõIÍ˶ÖmàûÑ“��þºF ]»v bpˆÊÿÿ¢”% èƒHnnî�:BX|ùVáxã�7f̘ñðÇ Àú駨Öß8Pq(QÖ8P§N�3Î8£ÀÆJ•*effî³6KÄÀ�GŒyÙ°aÃóÎ;邏NúÕ¯~Õ¸qã5j,Y²¤mÛ¶óÍ>[2¦LÐm»wïŽ÷�ü®P|Ðe*##£ˆrÀ‘ ÂuêÔ)ÝñkÕª6¾üòË"ºegg—Ù”Ã*k×®}ç�wÎ>ûì`ËK/½ Jõ7T"WaРAÇ/ÝH*W®¼iÓ¦HN¶hsæÌ‰dŸ;tè0tèÐÓN;­@Ÿ(¥ìcòžÜXĻſ9·mÛ“—}.³J/´<„°LÍ�;woo­\¹2¬ó���°gÚ±˜Â o`öìÙE,Y�3gN™M¹k×®á2ä°ìF¤qÜqÇ�wÞyQ:é‰CøÅÀÔ©S³²²J7’ã�?>øúã�?§ó /¼6þçþ'[©oƒÒ™?þ¹9Ãú'žÿü‚6ìaÍD  lX]¦ÆŽ»·ÇÙÝsÏ=a£C‡U«V-Ýñ[µjU½zõôôôuëÖ=ÿüó=zôسÏ�?þøÜsϕٔóWá1bDpö ÄD³þÆ�ŠÃÅ_|ÓM7mÞ¼98Èý÷ß?tèнõ\¸pa¯^½ªT©2wîܺuëæ«Aƒï¾ûnp„â {ãÆ�a£S§N{ë½ÕëãÆ� ¦¼ÿ7g8ÙN8Áçø¥ÿ«¹Ï>û_þ€â°ºL-\¸pÊ”){n;vl¸=>>~ðàÁ{vøË_þrì±Ç6mÚtñâÅE?))馛n Û·ÜrË×_½gŸ«¯¾:==½,g}饗Æä=¼îí·ßþûßÿ–zˆ^ý�‡*UªüùÏÛ÷Ýwßã�?^h·mÛ¶‡Z»vígŸ}¶dÉ’ï6lØ0øúÝwß§zlØ9¼OöÖçµ×^+ú ƒ :ꨣN:é¤=S´Ù³g¿ôÒK¥¸9 пúÕ¯|Þ�€.k}úôÉ_ùá‡~4hP°1|9xðà=K,Z´è¶ÛnÛ¸qãªU«.¿üò¢S™ÁÑN:餘¼¤gëÖ­óç+üñÇ+®¸¢Ð$cTEªpLŸ>=¬¿Q³fÍßþö·Q=é‰Cÿþý{öì“÷ð±›nº©sçÎ}ôQþ+V¬8ÿüóSSSƒvíÚµ/¼ðÂG8õÔScòÊ+ç×<ƒ‹6FŽyÇwDD‡V®\ æá‡_îܹsϪÍA„yä‘Í›7þùç½zõ*iЮºêªü�*ÎÍYÀW_}µuëÖ˜|UP8œ)Á±Wééé÷Þ{oZZZþ�W^ye\\\µjÕî¼óÎZµjÝÿýË—/ß¾}{øîæÍ›Ã uëÖ2dHåÊ•÷<ì¶mÛ.ºè¢æÍ›7jÔhÆ Ÿ~úéÎ�;÷.¿üò»îºkÏ]ò/eýæ›o6nÜX½zõ½ »bÅŠ3fÌhÓ¦Í÷ßtnß¾}Æ O:é¤à,‹/Žœ+´zõêpÀ'Ÿ|r0£Èö÷Þ{oÔ¨Q™™™‘-{Î1D£gÏž{&^ó‹Táxá…ÂjÈ‘”tös $1y…)²³³§N�´gæ©_¿~³f;üòËàê‡Ý’’’ž}öÙàk�YDò°K—.mРAÑS:÷éÓçé§ŸÎÍÍ}ðÁ}ôÑ-Z·Ù–-[>ÿüóu<‚;§R¥JÁ­xÄGcÓÍüq¤C0¶Ï>û¬D+‘ƒ� ‚Ī˜7g‘ýYg�å{Ð{5räÈ=«.LŸ>=luÔQ:t(�’ËÈÈ3•1y%ö\‚úä“O8pçÎ�ËóD¶'$$ :ôöÛo/t$gœqF¤Ý Aƒ"²Ï‘S¿ùæ›={öüàƒ‚—_扼۴iÓ¾}ûÞ|óÍ1yE‡Ã_ÛµkYß roµ>òÏ14oÞ¼~ø¡è!]vÙeo¼ñF¤äEðrŸñßÿ1쉉‰S¦L騱cÿþýÃ%É©yòŸ¨aÆãÇ��<´0¿àb5iÒdÕªUK—.íÚµë>g=zôèÊ•+ÿíoÛ½{wpŸ¼óÎ;:´hÑ"99ùÝwß ÚYYY6l=ôPx³�rÊ)ù;¿÷Þ{ûL@ÇÇÇçääÄÆÆŽ3&ˆFpÒeyŠysðþûï_[¶lY£F ßC�€Þ«víÚ�5ªÐ2ÁÇsÌùçŸÿ_ÿõ_Íš5[±bÅžêÔ©¼»çö«®ºªcÇŽ�<òÈœ9sRSSããã5jœèºë®+byì¹çžûÐC 6¬fÍš'N,Îà›4iòÎ;ïL›6mòäÉŸ|òI0‹ªU«žzê©—]vYÏž=wïÞ=vìØüIÆ`‘Ä1yÏßûàƒŠó¼»ØØØ½=V1¿+¯¼òå—_^¸pa0å ]h®¶€2†ýŒCDÐ9Ï”)S^yå•¥K—~ÿý÷ÁI�?þøßüæ7]óT¨°×�RçÎ�‡þæ›oçÂÅÅÅ·GpŸ›?þ7ß|“““sä‘G£ ÎÕ¥K—6mÚìܹ3¸fΜ©wôw¿ä’K ðÌ3Ï·SRRR�õû… ö ú_ûôéÓ¡C‡’Þœ¼úê«1ÿWõb=ý¹,¢6vîÜ™œœ, ‡•>øàôÓO���OOO?úè£Ëì¼�:uj×®]¿~ýÊìŒk×®­W¯^Ðøâ‹/5j¥³¬X±¢yóæaû¹çž+~rJ!33sÒ¤IaûŠ+®Ø³Ì§ð·ÄòkÙ²e�-)))DOþ ÆòåË›5kv؆ hˆ®ÓN;­Q£F«W¯~õÕW»wï^–?wÕ®]»,g–1iÛ¶mô²ÏPÆbcc�9æ˜H[@µjÕ*°Eºà—'m ¾N˜0¡ÌθuëÖåË—·hÑ¢ÌΘ››;f̘ që­·ºâ”‰‰‰—üŸ - PRÐu½zõª^½ú‚ ò?1ªæÌ™sâ‰'–eyŠyóæ­^½ú”SNi×®�+@H¢®bÅŠƒÎÍÍ>|xœ.8ÑÃ?y2aÙœ1˜`llìO<ár¡4”…n¸aüøñcÇŽ8p`ãÆ�£z®)S¦¤§§_ýõe6»iÓ¦-Y²¤wïÞg�uVYFõ׿þõá\Âàà'-iii÷Ýw_ð5ÿÆ+¯¼2..îØc�=lT«VmèС¢tX9ýôÓGŒѯ_¿qãÆ]}õÕQ:KÏž= Ô±cÇ2›WŸ>}222Þxã�ªU«ºÊ”79»bV, ›YYW''' ”ˆÅ\ÑrÁT¯^½Ð·ªU«vþùç ÑaèÆoìÝ»wÿþýW¬X¥S<÷Üsƒ.³Ý}÷Ý ,xñÅ›6mêúP€ÐÑrÖYg¨¿�'Ÿ|2;;»}ûöï¼óN�:uøñË2üÌ3ÏŒ9rÁ‚gžy¦+Ë!oKz!s²c2w„ÍÔÔÔ¢+Û¤¤¤ˆ"  eû‘«Paüøñÿïÿý¿n¸áÿøÇ!=—Æ�¿ûî»Ñ~¦"”‘IŠ~ÿÄO,ºCnn®(@ÐPÖbcczè¡r0‘sÏ=×Õ j@ÐD…4Q! @Tx!ÄÄ\1¢��9Ù1ˆÍϧý-))Iœ D$  &æÈê…lÜ•“tDج_¿~rr²8@‰H@À^ÄUˆ9á7a3!!A< ¤$ `/ââbª×›ñññâ%þÙZˆ+ �CÕòcîmVÝ¢Ôb²Y €2f4Qa4.;;{öìÙaû¢‹.òB() h€rkÍ�»ó½Xi¦¤¤Nqäää|üñÇa»}ûöÐPRÐåÖ ÛöŸ;!ÒÌÍÍ  ¨ @TH@ÐD…4Q! @TT€òêë›+ÿçEÿe”1 h€r+åè|¿æ’’" @S‚€¨°ö*99Y Ô$ �CÕ¼F÷®¬[WŠkÆ 1(…F�…�Y³fEéøÃÄ€òJ ¢B€¨�€ *Ô€€Âåææfgg‡í„„„ØØØíž––VœnkÖ¬ÙgŸ””—€C‘4.;;ûå—_Û]ºtILL,Ñî7ÜpÃ�Inn®ËÀ¡H ¢B€¨�€ *$ ˆ h¢¢‚@4Œ9²8Ý.¼ðB± ¼’€€¨¨Q£Fqº¥¤¤ˆå•D…4Q¡p¨j×®]³fÍÄ�èÉÈÈXµjUؾä’K’““ÅJDöòwd… ­[·Ž´Jüõ@áGæK@¥ 4Q! @TH@j@@ávíÚõÖ[o…ísÎ9Çs ¤ü, …Ûµk×¢E‹Âö™gž) %¥Q! @TH@ÐD…4Q! @TH@ÐDE!Q¯}¶þ³ÌÊâ@ôdef¬ØðSØ~qijbR²˜„.=¥¾ PV@V@@ᓺ\u}¤- PRÐP¸ØØXe7€ÃPÚúµûì³æ˜Ü¢;¤¤¤ˆ$1Ð@~7v:wß}öÕ!77W$ˆQ€(‘€ *”à€ÂeefÌyþ™°}a÷ÿQJJö*++S Ô”à *¬€þ㉙ÿÚgŸ‹š×(ŠCø�Ç×ÝgŸ””ú@q(Á@TH@ÐD…ÐÀ¡ê‚ÄÏš%m¢'#&ë‹ø a»kÒÇÉI‰bð¿V|$¼š],p𰀨�€ *”à€ÂÅÇŵ8ñ„H[@à`°æÛ´}ô¨´¦ˆ7SRRÄÊ’4.!¡B—ߟ!pP9á‚ëög÷ÜÜ\1€²d=Q! @TH@j@@árrr–}ñMØ>¹q½øøx1€‘€€ÂeïÊyyá{aûÄjK@@II@pÈøúµÑûèÑäQ€ƒ‡4‡Œ”Ú5öÕ#E”ààá!„D…4Q¡p¨ú®róªU›ŠÑ“‘‘±%ùB¸îÈS“““Åö©N�:‚DX @TH@ÐD…Ð×Úµk‹î°k×®"ÞMIIC8¬H@P\gŸ}öþìž››+†pX‘€€Â%&&öìÙ3Ò() h(\\\\�5ÄJÿõ ÐD…4Q¡4.33sÚ´iaû�ücRR’˜ÀâÅ‹‹îP«V-Q"$  p¹¹¹ééé‘¶€@ nݺEw¨S§Ž(JpÐD…À¡ªfÍš~Á“¨ÊÈÈ8òÈ#Ãvp³%''‹ ”ˆ4p¨øâ‡UßÝ$DONvæç¥†íeÞŠOðB8M»ú\A€RS‚€¨�€ *$ ˆ 5 à?¶ÿ°!ÿË5kÖä™’’"DP|Ððsn»,ÿËnûÙ»¹¹¹BÅ' …‹��«tl­H[@ ¤$ á�žžþᇶoßþ�žÅ-·Üòå—_>ÿüó+VtM)—â*$¤´ê Pú®…ÊXjjê9眳xñâC}"C‡]·n]Û¶m·mÛæ²°' h(S_|ñE«V­Î8ãŒ{î¹çPŸK¥J•fÏž½nݺN�:effº¸  egóæÍ�:uªW¯Þ¸qãÊÇŒjÔ¨1qâÄ7ß|ó¦›nr}(@ h(#»wïîÑ£ÇÚµkgÍš•��PnæÕºuë›o¾yĈmÚ´¹ì²Ë\hÊ“ÜÝ»wlú>lqÌq±qþÕ ›šÿåÈËN(5 h(#cÆŒ™={ö£�>Ú¨Q£r6µ!C†Lœ8±_¿~mÛ¶­V­škM¹±;'{ÍÛ¯†í/ì—$&p8¨tl­ü/SRRÄJÍb.( ßÿýwÜüÛ·oßò7»ªU«Þ~ûíéééC‡u­ˆ°º¼yá…úôé³}ûö=ߪ_¿þ믿~ 'ü"»õÖ[Ÿzê©zõêM˜0áÔSO=Ü‚pûí·ÿôÓO�<òÈÁP|cñâÅ]ºtIOO�léÙ³ç¤I“öç˜×^{íСCÇŒ3hР È>‰ÄH@—?³fÍ*4ñHMM�?þ5×\Sö£úç?ÿ9|øð ±|ùò믿þý÷ß?¬‚ðÍ7ßLš4©zõê={ö<n’ ù³Ï�É“'�;6)©ôåªT©Ò½{÷§žzjĈ�>úhÙLä‘Ê/6;ò(Ÿz¢'#+gXÒ²°}[•ìäÄx1�ÃÑô±bÀ/àÒ‰b”ÐåÍÝwß]±bÅmÛ¶åßøÞ{ï­Y³&&ï9x%:ÚĉûöíÛ¸qã·Þz«råÊ¥U\¾'wÅEÿ)^6ûoøðá»víêÑ£ÇAòìÁàšnܸ1---hO�ú¿ÏYÊÍÍÝÏÃöêÕë©§žzæ™gî¿ÿþJ•*ù0 ]Þ4mÚtìØ‚ët®ºêª0÷ZR'NܱcÇ'Ÿ|²xñâvíÚ•zT­[·þÓŸþôä“OÖ¯_ôèчVöÓÎ�;'L˜4®¸âŠƒä&©^½úc�=¶# èýwúé§GNOOùå—{ôèáÀ4E‰,ÞÿUÃÃò†1œ3gÎÖ­[kԨѲeËò=Ó¸¸¸ .¸`òäÉS§N•€(©5iù~�/ßʉ””Á]Ð]Ó¦M ¾¶iÓ&66¶ÜOö·¿ýíäÉ“ÿùÏfee%&&ºúÅwÂ�ÿÏ‹|íý/•ð ’€†( ~Z˜?~Ð8÷Üs‡ù†«¼·oß¾dÉ’³Ï>»Dû¦¥¥x4b¡V¯^í¾8T¤ èÅ‹wéÒ%6ª{÷îÏ=÷Üwß}7nܸ×^{måÊ•›7o>úè£Ï<óÌ´nݺ8»/_¾<Ø}Ñ¢E_ýõŽ;Ž;î¸sÎ9çšk®ùÝï~·?£ÍÌÌ<÷Üs?øàƒ }ÄGLž<999yÔ¨Qï¾ûîÖ­[ýë_ßwß}çŸþ¶mÛFŒ1cƌիWW¬XñÒK/>|xäYm{säå /¼píµ× _ÆÇÇßqÇ÷ÜsÏ��|�±cÇî¹È¢C‡{v®\¹ò„ ºvíºç[A4Ú·o¿iÓ¦ÛƒaßrË-EÔâ(ãkW¨�>ú裂P§N�™3g¶hÑ"h¿úê«Á¨~úé§üþò—¿wcþ�+V¬øñǃÆÉ'Ÿ\œSüñÇS¦LùôÓOÿýïwxp¹k׮ݪU« ,;vŒê2ê´´´Ñ£GÏ™3gÕªUÁíZŠ Ó¬P¡Â®]»>ùä“’& ƒ�ÌСC}S(OÒô¼yó ¬…|þùç›6múÀdffF6¦¥¥½òÊ+3gÎ|â‰'úöí[ôîñññ“'OΟU\·nÝ”<ݺu?~|rrréFûÅ_„ÙçÀŽ;®¼òÊmÛþS¾íý÷ßoß¾ý¨Q£þò—¿|ýõבn£G�þé§Ÿ^xá…"ÆüÌ3Ï$%%…/ÿõ¯E²Ï�œœœ±cÇðôÔ©S‹ÿ+~Á4ƒøš€~ë­·öÌ>‡Ãž8qb è2¾v… .ÊžAÎøÎ;ï„ è¹sçÈ>²³³gÍšU ½xñâ°Ñ¼yó}žwΜ9�;wB”cVVÖ¿ó7CpöàF:묳¢ñ¡ nÈ;ï¼3¸3÷'ÈÁíZ»víÔÔÔeË–ùö ÀAš€îÛ·ï¦M›ÒÒÒbòR¢áÆ!C†„�*Uª´lÙ²Zµj}ôQjjjnnnÿþýÛ¶mÛ¤I“"vŸ4iRبU«V‹-²³³?ýôÓ°Ï”)SÖ¯_?kÖ¬àÈÿ{÷ÅÕ.pœ"¢¢bDQ{/QÔ�½wc j5vAýÔ�Ø[ì½aÔØ{×hÀ{Ç ± V° ÒÙ{îž{çÛ,˲”EÊÿ÷øðœ��vÞ9;ë¼;sN"ö¶\¹rsæÌ¹xñâþýû?þ,³ÏfffÕ«W�ŠŠº|ùrLLÌ€äÌùóç¯X±â¹sç>~ü(ömêÔ©ŽŽŽqí³ftäÈ‘bmb©��±«&É10`l"J"Êš�;&ÓÁuëÖ{®5söìÙG�­s=½zõò÷÷ñâ…2EÙmý î>v:­S‹ŽŽ>|ø°x®\¹š4iR°`ÁnݺÉÜÝÝ#""Þ½{'MQ4¿,Y² :TkU·oßžúê«x·»jÕ*%û\µjU±EKKK±•û÷ï?V�BãããS¿~}–Ö­['û¡WRçùòåŸ/ÑØd™€ËrzE:`‘É´Kí¢J™€�P©4mkk»páBYV²�&ꬮ‡‡‡»»{Μ9Å˨¨¨æÍ›ÿõ×_‘‘‘«V­š5k–þÅ ,¸hÑ¢¶mÛÊ~ ÄRË—/5jTxxøßÿíææ&V’¸Ëš¨Ç§~òä‰(dÉ’åàÁƒõë×�‰‰©V­Úµk×älíÚµÛ°aC¶lÙvïÞݾ}{•JåååÕ¯_?=û¬ptt\¹r¥ÉÿˆýXfr�¡µšò²^½z'Ož…1cÆ4mÚÔðõ|õÕWóæÍÓœbàn§ü±‹­±š( 2dñâŲï;;;e†Â… /[¶,00pÇŽâeÏž=çÌ™£sU>4QçÍ Ù®’Þµ°°8~ü¸f¶÷Ì™3ãÇ�÷öö ëÚµë­[·Š-šìG?Ož<"ø�;w´DÙÞÞÞ$Q=58°S§NñÎ&Ö,šçn¤ s3³R­‰‰–Æ!ܸqc—.]þ»÷™2 0@òvæÌýËÚÙÙ�;w®P¡BÊ ‹!C†8::¶nÝ:&&ÆÓÓ³{÷îZÝI'ΤI“êׯo¢Î˜·hÑB& óåË·nݺlÙ²‰róæÍeW¹÷îÝ£Æ+%��¦~ýú-^¼X¦5kÖŒ7NëÝ�;wÊ–5Û¤ÙéJì›ÇušþõY53ûé§ŸdùÊ•+É^Ù3fhfŸä¬Y³Š¿aaa4]Ã9Øfÿï? D¤ii)-»ªÐ"ûâBCCõ/ÞªU«¸Þ;v¬,x{{ë:/AªT©¢ì• oy6Qwg¡9›œN’Î)vìâju�=òòòÒœþüùóS§N‰BçÎ�õ,b¢î’%›V©T~~~û÷ïŸ?þ¨Q£ °bÅ ÍÕ&/�YïDY& Møqi« ŽråÊ%eqÙw°NåË—¿yófttô•+W5j”” .\8AÓ‘zŽ]l�;w1bÄÇ�===5W¾cÇ9T£žþ7Lþ?SliiiøÅj÷ìÙ#Öïíí-ÇL™3gN– ›››ËBxx8Mi]DTô® þ²Ü¾Fá̙̉ ’–Ðöc�8NNN7oÞ…gÏž%qUqÝÛ`‘’Ç.6++«nݺ-_¾|Ïž=¯_¿Î“'�œ¾mÛ6ñ·téÒ*TÐ÷Ë”)ZÍÀÍmß¾}üøñ¾¾¾i7Èʳ"tÆÞ«ëù;*äÈGÆî¼^–í ü� “é�³³3AH¨L„@ŠÝÃ/8v’««ëòåË#""Ö¯_?bÄuöìÙ³&ñÝþl¢N†‡‡ÇÛ?Œäææ6oÞ<åe±bÅêÖ­[ºté2eÊ/^ÜÖÖöòåË 6LåA SêNãÈà2P:,,LÏ=È÷îÝ“{{{š…�bÔ2eÊ”¾�]•*UªV­zåʕիWËô®]»dB6ÞtöìÙß¾}«ädõ8tè�’}nÖ¬Ùĉc�m¨ôna QQQzÞ5<ÈÁÁÁ&ê쳞>=�A˜eœªþùçŸq½åëë{ûömQ°°°ˆ�õKmd×Ã_ÜÓ§O¬­­wíÚ•î��«««ø+6téÒ%Qعs§ø[¹rå%Jè_°@�âï»wïâÝÄæÍ›eáÇ{öì±WÜ¢E‹råÊ999½xñâÆ�¡¡¡ò­®]»þòË/±¹|ù²Rö÷÷óæMÞ¼ycÏ6wîÜ‹/ŠÝå“'OvëÖ­G�Í›7;¹oß>9Ï�!CJ”(!öíÑ£GóçÏ�=³²¶ï¿ÿ^Þæü믿®ZµªlÙ²Y³f[¿zõªæ}J•E4ÄjsåÊ%Ê~~~³gÏ–Á).\¸ «W¯>qâ„æ[ [‘ËÆ&Ö?eÊ”ˆŠW®\¹Zµj¶¶¶·oß~øð¡œaÀ€•*Uн ØâÒ¥KÃÃÕ)±�”$Ž©VõuJбKÞ HÕ«W¯P¡‚خغxiÈíÏ&yØk×®é¿U\Ìéêê*·8ÄÓ§O-DVÙ�?Šêhuâ!vÃÊÊJ|²eË&>J®ÙÇÇG™G|:îܹ“ ;‘Ŷš6mZ¾|ùbÅŠøÑ"š¨,Ô¬Y“Ó+RizÉ’%‹-Òš¸}ûvYÈ•+W³fÍ´Òaaaa[·n•å2eÊľýsÙ²ennn¡¡¡·Ô”é'N;v¬Î=©Q£†RvttÔ™}kswwW^Ê.áŽ=zèÐ!Í. 8 WrHMkæ×¯_+sŠ¥.\¸ ïtPÓÜ\áÂ…ýýýµª\ªT©þýû‹ÂäÉ“7mÚW`/«iM+>|¸Îù³dɲÿ~í'OžDGG+9\õ½Ïƒ Z°`�ÎE¨Ïž=«ó-ÍÝ–´ª[B�]òAѯ_¿Áƒ›¨“æßÿ½!-Y4˜%Jܽ{÷Úµk:tÐ?óòå˳gÏ.B#*{îÜ9­*Uª$ŽÈùóçE9""B¦ÂgÍš¥´ö*UªhÎ/ŽW¼ hsss٣Ȋ+† &¶{SÍÀˆ–‹/š¨‡g´µµåô €Tš€nܸñÒ¥Kå=ÂZrçÎݨQ£ *”-[ööíÛ±g°··ïÆžÞ«W¯–-[Î�;÷СCOž<177wrr0`€ž[SëÔ©3kÖ¬3fäÏŸݺu:ç)^¼xõêÕeêM255íÒ¥K™2eÊ•+§™0-P Àwß}gaaqìØ1eX?1s·nÝ4Wheeåååµk׮͛7_¾|ùÕ«W*•*_¾|ÕªUëÔ©S‡Ú´ióçŸ*óçÍ›×ÙÙY–[´h±wï^åvãx‰z)ýlèTºté›7o.Z´HìσÂÃà ,X¿~ý¾}ûêé�¡]»v—.]2dÐ<+ýó$ôØ%{$q˜† "ŽÅ·ß~kgggàÊ[·n={öì¿ÿþ;Þ9ÍÌÌDEe===ÿúë/ÿèèèœ9s+VLú¶mÛŠ°‡††Š¹ÿ~¥³ 1¿²†öíÛ�1â÷ßa±´´Ôz† ®ØŠùÅ_WW×fÍš%ô¢åðáÃâ¯h¥œ[ ˜¦û¡3LMMe!444K–,rŽ]¢�>}ºN�:&ê[•åý憸téRõêÕÍÍ̓‚‚¾úê«ÛÛV­Z5nÜxÈ�!)¶Å€€€Â… ‹Â½{÷œœœŒ´•Û·o—+WN–7nܘc`"#‹ˆˆØµk—,·oß>sæÌÄ2ý½Š1!ÐC3ƒqëÖ­²eËfØPd¢5Ú¶mÛÿ~f2eêØ±£áK}ýõ×NNN÷ïß?|ø°Ö­îFõâÅ‹‚ ¦d|dÏ* 64^öHa™3gŽ÷ @:¦ü )U®\™˜$”! ³cÇu‚ÕÆÆ&AËŽ1Bü]»vmŠíí§OŸnݺ¥s|H#Q©T+V¬…Q£FÑZ@ú`÷oÿF| AÐáóçÏÞÞÞOŸ>U¦ìÚµKú7`À€„®­wïÞyóæõòòzðàAÊìÿ¡C‡J•*•’ÝS=zôþýûUªTiܸ1í h@[hhhµjÕ6lX¢D‰«W¯Š)!!!¿üò‹(ˆ)­[·Nè ³fÍêáá¡R©fÏž�û/64gÎÍÁ S`‹¢‚¦¦¦‹/¦ý@AЀ¶[·nùúúŠ‚••Õ‡Þ¾}Û½{w???1eúôéÊЈ 2hР5kÖxzzº¹¹/^ܨû¿eË–   Ÿ~ú)Å"¶mÛ¶Ë—/÷íÛWÿ@=É®bÅŠ¹ ¤•J%N²lmm�¸�?YúL@N™2EüÕœèââbff–'O�üùósì9vq)\¸°Ø\LL̇¦N�zåÊ•÷ïߋ鮮®íÛ·OÜ:ÍÍÍW¬XQ»vm77·ýû÷oçýüü¸~ýzKKË”9dAAAÆ +Q¢DÊÜß ¤¤ðððùóçËò˜1c²dÉBLH�ô™€^ºté¢E‹´&nß¾]lll&NœÈ±çØÅ%_¾|}úôYµjUdd¤···œØ¨Q£ $eµÕ«WŸ7oÞ�!CV¯^-Öo¤�ïÑ£‡»»{Ë–-Sì�¹ºº†……�)ÿÿ±))!R˜©©é¬Y³ÒAEêÔ©ÃÑL¥Ö�PŠE5Ê‚J¥"< Åp4À(H@Œ‚4À(H@Œ‚4À(2Ho~˜§MjK<ÿ™)SÓ¦M•2 Áׄқœy•¢ƒƒñHüwd¦LÎÎÎÄ€D£ €Q�€]pH«nåž\6¯9qˆÇÄ�ÿWÿ�`€FÝ"##½½½e¹AƒÄ€! €nÑÑÑçÏŸ—åzõê‘€ ¡H@@úôø]Ì¿_?VŠÄ¤Ð�>]ü¯× Š*E•JE|@ 0#c  0 У  0 УÈD ]z4,û¿^¿IL@ # é“ÃWÿ~ÆÅÁ�˜€F£àhtË’%Ë„ ˆ‰ÆУàhiÕQ§É¾… CíØA R¿Ž;@zÂУ  0 ºà@·ˆˆˆ={öÈrÛ¶m3gΜèU2ÛãÇ� \¡ƒƒ�ú‘€Àè ”¼+T©TD�úÑÀ(H@Œ‚4À(H@Œ‚4À(2ŒmÉ’%†ÌÖ¼ysbHOH@`t¶¶¶†Ìæàà@¬é ]pŒ‚4À(è‚@ZÕ¸qã²eËOdddîܹe¹AƒÄ€! €nM›6%$]pŒ‚4À(H@Œ‚> Ð-**êòå˲\­ZµL™øÒ a¸–@·¨¨¨?ÿüS–+UªD€„¢ €Q�€ h€Q�€ h€Q�€ h€Q�€ h€Qd"Ò¨#wžß ÏN`<áa·_¼—å�מd¶ÌBL ƒèT¥AH$ ÐÍ"³e‹n?*e@B‘€@7SSS«ÖÄ€D£h€Qp4€Œ(ðy@\o=έÒ9ÝÁÁ�¸$ hÑàVuâ|+Žé*•Џ$ ht‹Œ?ºcƒ,7îØƒqH(Ðè¦R©B>}TÊ€„bB€Q�€ h€QÐ4€ŒhñþSq½Õ¢œ=ñH$ dD¶ Åõ–ƒCâ�,è‚`$ FAÒª&™ï”µ &0ž0“ˆ{æ/d¹ƒ¥OËÌÄ2ŠÛW¿ÀF˶#ð ýáh€Qp4º™™™–*j¯”  EÝ2[Xtiþ q$¯ÇÏu¿aõXçd‚Ò.Ð�rŠ6� ùU*Ai}@Œ‚4À(è‚Ý¢££ï=y!Ëŋؙ››„4ºEFEo9|Z–ÇômO€„¢ €Qp4¤œGG–ë~£D‚ÒÐ�r ÚÆñ†Áé]pŒ‚4À(H@Œ‚> ¤U/³—³¶.I`HSSS k5Q É…4H°€€�Ó£¢¢bOtpp0öþ„‡‡¿zõ*$$„C qT*UDDD�š••U¾|ù,-- KÒ‘€@·Ì™3wêÔI)MµjÕ2|fcߌéïï¯3÷ ‰"Î*Ü �t$ ÐÍÌ̬P¡BÄ •‹ŽŽ û y‰³Š8·)RÄÜÜœh$ h�†½xñ"<<\yiff–SÍÂÂB”‰CÄÄÄDFF~Te9Qœ[ÄÆÞÞžø$ h�VEGGúôIy™9sæ"EŠdÊDº@‚‰ˆ••UÞ¼yŸ @š¤õ˜£„H.ZçŠM Ð MR©Tš/¹?@rÑ:Ÿh�m� tÁ ­ÊŸ?J>܇ (,,LhB4¶,Y²„; FÁÐÒ*·�W¬Ï¿%0žèÈp¿«OdùæÚÓæ–Ä@:³­O‚£âh€Q�€]pEÈëš/?~¬ùÒÁÁ� y‘€ .¦Y¬m”2á�ÓYóeÑ1ÿzW¥R"Èhž>}úìÙ³5jŠ/"**êÔ©SÎÎÎY³f%H¯H@ ›¹EæbõÚ¤3*•êâÅ‹Ô|||zöì™ÁÐ÷îÝ[½zõ‘#G‚ƒƒóåËçììüÓO?Õ«WÏH[ô÷÷÷òò:ªöîÝ»G�ñÒ1Ð Ã3fÌÌ™3µ&ÚÛÛ_¾|9_¾|zœ={ö¨Q£âzwÖ¬Y#GŽLÍß¼yóðáÃiÒÒ¥KÝÝÝÛ¶m»xñâ   #F<~üØßßÛ¶m7nìÖ­[ònnáÂ… ,xøð!‘GÆAøÄWÚ•+Wš6mš¦k!þSõàÁƒM›6ñ €4gøðáâ¢ìàÁƒóçÏ�ŠŠ’Ÿ>}Ú¡C‡ãÇ�[XXĵ`Ïž=+T¨pýúõeË–=zôHN´±±‰ÈÌ�ž†‰ðâÅ ‚�æ�€RÔ½{÷j×®]£F�I“&¥õºXYY´jÕªpá«W¯N5²µµ]·n�øïÚСCW¬XÁ!F:ùàÄ^Y.Õ¼»¹™%1�Ö5Ÿ±Uóå’ÎÕ‰ ±û6lX¹råêÔ©£ÁÒ¥K‹¿eË–%†iѾ}ûdÁÜÜ<å·þE6š¦=}ú´G�-Z´ iw@)$&&¦{÷îüñ‡žÞÄÒœzõê‰ÿ™­\¹rëÖ­eR9«���uëÖݰaCìøèwêÔ©�;wžÉ)cÇŽ­X±b“&M \CÏž=Åü³fÍ_±ßÍ™3ç�7ÄuâìÙ³Oœ8{†���]»víß¿ÿÈ‘#?~SdžQ¬ÍÅÅååË—ÊœwîÜùÏþsöìÙ�;wš››ß½{·_¿~'OžTfxöìÙÒ¥K�;vþüykkk=ûÚ½{÷Ý»w+Sžg6nÜ8|øpÍ]»&ûàÁƒiÓ¦%½Ê¢=oÛ¶íðáò= b¯DÕıSf»y󦻻»¨²˜Y™(ê.j$ 4xþü¹(´mÛvúôéòÝ,Y²(s†‡‡wèÐAì˜8¾¢899‰p‰eE‹m�3Û—E:ýgÕ7oÞв2œJ¥JÊ:×­['V[¼xñÓ§OgÏž=c6éAÿ«çVñ]žJú3FSz÷î½råÊßÿ}êÔ©VVV|$¤QåË—ß²eKëÖ­å”111]ºt¹xñ¢¸04dñ¼yó6jÔ¨J•*¢ûRËÌ̬¼ZÉ’%u®P\¬½~ýºL™2{öìQ&®^½Z\ʵiÓ¦mÛ¶¥J•;&®4ežnïÞ½bo ,ؾ}û:Œ3¦P¡BïÞ½‹ÈÛxýüüfΜW&QêÙ³§Ì>çÏŸ_ìó«W¯”·<==?~ü{Øù7n4lØÐÉÉéÒ¥KÊ5 ³šÌ{Ž?^ü�4i’|«W¯^âšúÏ?ÿT2û2°Ÿ?îØ±ãÎ�;e¬ [èܹs­Zµó:tþüù¦¦¦rz½zõ\]]Å!xòäÉÂ… ¯\¹røðá9rÈw­Õ´V•'OÕĵ– 6ˆª 4hÁ‚ÊDqôEÝÅ²ÿ~ÃÀPx{{‹FØ´iS|å€:uê”(QâÇ éׯŸ¹¹¹(Ë·îܹ“+W®Ü¹s+¹æÐÐP±†«W¯Ž9²Aƒ¢‘Ü¿ذa"2bžþýû‹½úå—_víÚ5zôèÚµk‹Å}}}=<ýôéS±]ÙYǃÄË-[¶È¶mÛV¿~ýþýû+‹wèÐáíÛ·bÍZw }÷ÝwbÓb�¢,6Ú¾}ûJ•*É›6m*”sŠw‹)²wï^ssóC‡‰hGDDØé¶¿¿›6mÞ¼yS¹rå¹sçjU­xñâGŽ©X±bxxø™3gzôè!.Tãª~R\¿~½OŸ>sæÌÑzËÝÝ}öìÙŸ?ŽŒŒìÝ»÷Ç5o×�—8èßÿ½………§§§Öíç={öœ0a‚ì%fÈ�!Íš5³³³eñW\�‹¶';m¸W¯^¢eÍšU.[¶lÙ ÈŽÎß½{W¥JÑJ}||Ä"rÑÆjÔ¨!óÇhýt‘ˆ*×­[Wü0`€’€îܹó”)S”Ï—8R¢Íˆ�ÊŸV®\©$  $vUJš4i¢gÑäÄÎ\¾|™ÓÚÄ „ˆç¬U  %¾D?}ú$NèâK1�ŸMÌÌäϛɘÔi×ãÀàýÓ@p¤ C† 4h�òòÎ�;=zôHÐãúŽææñ 1¢ô_õ×_ifŸåâ]»v•å§OŸþöÛošÙgI¹êùóç>ŒkC<رc‡fWÑbÓ›7o0`€2ϯ¿þ®¼œ2eÊýû÷ÅuÞÄݲeKå:zõêÕšo)½^AAA+V¬�qhÞ¼¹X¡¿¿…  ‰íСCeß’îîî:#Y²dIÙý±°oß>Í^’Qÿþý#""úô黋’œ9s~ûí·²üâÅ ùK€áD½Þ¾}Û¹sçØ=b‹«o.Yþüù³Ìì+¬­­•l²Ø�•+W*Ùgé믿.Q¢„,¿~ýZG™_²··¯W¯ž,Ÿ:u*¹ªœ?~¥,š«’}–D5;vì(ËçÏŸOh浚‰ú·¢Øïº¹¹ãçŽ4`\òK®~ýúád'¿iŽ;FÿJ èà]ÿú§�àH+,XдiSåå¾}û ïž8é4ó†… Š=ƒf2×ÉÉ)ö š=Ü¿?® •-[VIkš;wnáÂ…e900p×®]²²bÅ ug:WXµjU¥|îܹ¸*õã�?&®§Ê[·níÝ»W–õ<©4”Q+E{÷î]‚Ž…¥¥¥Ìºlß¾Ý××WëÝ2eÊÄ5$&R]pF¤R©ä úG N7ä]Þâ«âòå˵jÕJвâ3ZC#ê¤çÿL�¼ÌÍÍ·nÝZ»ví[·nÉ)S¦L©T©RûöíSÃîåÌ™Sÿ š†è¼3TÒ™‚4Qç1 ôŸÿüG¾<~ü¸¼çúرcrm¿üò‹þ}xñâE\oåÊ•+qW²ÏÖÖÖyóæ�k6[[ÛzõêÉ«ò›7o>~üØÁÁ!ã¯däãºä×¼_^ObÛ·oŸìC£G�:ûóLôšÚr´š�ñª¬Õ\CBB´îËÖO´ñ9=}úthhhýúõÿý÷fÍšiΰaÃNh_P*M@Ÿ={¶mÛ¶šÙ¨nݺmܸñåË—«W¯>r䈯¯ï‡¾úê+ggç#Fhýð×ââ C,~âĉG�}þü9_¾|ß|óM¿~ý¾ûî»äÝÿððp±“'8±-±«¦¦¦âÄ'Ît­[·þí·ßF�­9l\û¬¼Ü¼ysÿþý•®úÅ·à¸q㔾üõ \¾|ù¡C‡îÞ½+6­¿Öbº§§gìGŠ´>·RöìÙ×®]«tÞ$-[¶ÌÍÍ-,,Lsb… Ä•|–çüùó[¶l9uêÔƒÄlvvv�79rdìÇv|||Äœ7nÜøçŸD EÝ3gÎ\°`AqN±jÙ²¥á÷Ÿ;wî�?þøû￟>>Êo8Z§~�û¬9ÏÈ‘#£¢¢>~ü(¾êÄ®šös�9WÈ—/ŸšXƒþZ‹(‰éÊš�;&ÓâuëÖÕì-^àÑ£GkMœ={ö‚ BCCµÖàííÝ©S'%‡.¾¥ÄQ/ÏŸ?o¢î-þŸþ' e=«V­RR±U«Vç\KKËwïÞÝ¿_\#‚Y¿~}«Ö­[ÇUýëׯ‹Ã¡œsåÊU¥JÑrÄÑÿþý¹sçäYiñâÅš è¤A!Û�=h@lÉRåDKhS‰‹L@‹e9½H7jÔ¨±nݺ.]ºÈëô‡~ÿý÷GŽI÷755-T¨�L@gΜYNTúçMhG½É%88X4oÔÓI³—�x³Õ e¼8|ñ§¹“Úµkwúôéîݻ߽{×DÝ?ÁôéÓÅ'wáÂ…qÝ8ˆ”‘Jж¶¶¢qȲ’�5Q?àáááîî.o•�ŠŠjÞ¼ù_ý¹jÕªY³fé_¼`Á‚‹-jÛ¶­ìÇ@,µ|ùòQ£F‰ù÷ß»¹¹‰•$qÏ'Mš$¿�~øá‡‰'j ±òôéSña¸|ù²áUV8::®\¹ÒD}˰L@(Ožzô¨£ø¾ÿüùó²eË~ûí·ØÛrqq‘Ùç’%KŠ9cwN4þüÞ½{¿ÿ^fö�áÑ£Gâoìû¦uJz•SCS‘Wþ<ž ¶jœ”H7-þ÷]-æi�‡‡ÇÝ»w•¬ÅEeÆ Ó}­###eAé Bé{D\¢²†��ÍDpÒ)RäâÅ‹²ìãã£'­Ü+m¢~H=y##â ïªqÐÌVé £¸Ð6pÍJ„ÇŒïüb7²eË–�ÁxUNFY²dùùçŸ 0}úô%K–ÈžsV¬X‘/_>†žúRÌÒоvQÓšèää$ ñŽ­)¾4³ÏÿýŸp‹}ûö•eÑ4“¸“ò‡Á·oßÊÑ b«[·n©R¥LMMSfÌÜ3fh¦�Tk9::�ßÊ¢L@Ò+y«fTTT¼sŠ‹úÝ»w+VÌ�Õ*�>ë\³!›ûâÞ¿/{�(Z´¨’àûöÛo•†*GWÒéÞ½{...âz6y÷ª]»v–––²¼yóf=ã+úøøÈB›6m’ýa%Ÿ>}—ízæÜ¾}»¸¢ïÑ£GB×,ª6pà@=þüØy­‹/¶jÕª{÷î%K–L™ö`¼*ÇK¹·/®;¯CCCwìØÑ³gÏØ­¥Aƒûöí3‰;y cKK hû1H'''Ù}³òtFâäÌ™óøñã;wîüí·ß”ÁŸª=zT¾¬U«–ø¸j=ðE$W­ ‘ˆ.G¶oß>~üxù•–P²÷g¡L™2_ò–)S´Z T9•4åY„äíáK§ëù;*äÈyÆþÔúÿ:ø»`ÿC‚~Lh;ž I�ƒkÁxäM¾rC”,YR\ø7mÚTéY§òåËË,ó¥K—Μ9£ÙÄÓ§O{öì™+W.™Å~ùòeìÅeßµ’J¥Š�Ô¼‡Z瓲škÐsÃu\éo±øÌ™3E¡wïÞZ·²Nžn¢NRW«VmêÔ©�7–þ¾zõjÅŠóæÍ‹‰‰Y¶lY\ûï³ìzL›6ÍËËËÏÏO”GŽ)ŽEì‡�ׯ_ÿüùsuö¼B… Zïjþ~ðîÝ»DìCÁ‚úé§E‹É—îîîçÎ�ûÏþ#¢!£*®îçÎ�»fÍšŠ+Š�ÔZ\󭆔5kÖŸþY¬P¾\¸p¡¸$?~|�:uÌÌþ·3ƒ'Ožˆ‰K—.Í›7ïŒ3â:îqYå(Äõ€µVËQ~]HJ•ã½å_³ŒØ{.6-÷åË—E¸dK1Í@ùùaúôé]»v�}ƒ�|D;wîÜeË–åt÷Ed"ú?“‰ Î�ÔOžD{äÈqÙ.|ñª_¿þÒ¥K]]]õÌóã�?nÙ²E^RµhÑbêÔ©µjÕúøñãÑ£GŲÇ�—·ènÛ¶­fÍš+V,W®œ2h›æ-Ò… ÖZ¿˜¨”}||Ä&´fм½)vz=Ož<²pãÆ�gÏži žáââr÷îÝ®]»j%‘…: 0@éá÷úõë-[¶´´´ÌŸ?ÿû÷ïe¾/K–,»wï׳qíÒ… ”±Ž*GŽûöíkܸñãÇ� |øPsÓ³gÏÎ�;w�5J—.�5kÖÛ·oŸ={vÚ´iÊ K—.-T¨P•*UÊ•+'{Cû öÊËËëýû÷+VìÕ«Wƒ ìììÂÃÃ/]º´xñâÀÀ@±óÇ×Y;±Âœ9sΙ3GyêW,øäÉYvrrúã�?jÖ¬)_ªTªk×®y{{ÏŸ?_YÃúõëóçÏß´iS±ÑDt"!Bqþüyq8°mÛ6q,Ä®V¨PAðèÑ£bÇÄe©¨Å Aƒ4—z÷î�� 8ÐÊÄ+W®ˆêwìØQ\ó:88äÊ•ËÀ}‘,BªÙÎÅî+VL>bžˆ*˾aÃååÆ�[´h¡ùƒÁ«W¯ä¯5Ê U«VÕ\ƒøˆÆ#ÛØ¬fnn.¦´k×Ns6OOO^qÐË–-ûñãÇ“'OŠ�‰h¢“&MJô¯Hº ”€Œ¸ºçù»¢hú±³~ R¯^=ñI§{­\öìÙ¨¹¹¹‰S°ø̘1# èõLô×_i}“«ÖOŸ>­U«Ö›7oÄùÎ�î5t¯·rþñÇW¯^�ˆQ»vm™€Þ´i“ñÐñAœpýýý y–'éUN¢äj*òù&F·@¢y_ž¤¤x$þ›.-Z´h„ Z­ËÛ9 ,xðàÁŠ+Æ»q]¯³gÅܹs���—,YâããY¤H‘V­Z 4Hä5ãÀ�Åådݺu•›Ö®]Û»wïØ9 ¡X±b÷ïßùò¥Î%ĪLÔC"}óÍ7Ý»w¿~ýºÖ 2wüøñzõꙨû4W‚7nÜ•õööÞ½{÷Š+¢¢¢lmmË–-;xð`±=}øŠËü™3gþðÃ+W®ôòòzöìYXXXžEIÙŠ|lÇ××W|´zõê¥sž2eÊ4iÒdûöí���¯_¿ÖzV"^ ²sõêÕqe ©µòýûÞ}ûöÉG6öìÙ“ˆþ�õSz”_ÌqÍ£¿§­=zÈßÖV­ZÕ·oßÊ•+ëœíÖ­[ò ø÷ß×zÚ%Y‚àèèxþüyC¾G“^å$JbSQÈÊj=)¤fñ^ѤÚâ�CÔ’¸y›ªþy¾WÓùÖÊ•+cO쥦g…öööñ¶I«PAmìØ±‰‹@¹rå.\ïlyòä1Þ税š�3VKö}h¦fÈœ‹Õ _s-5Cæ:9rDÏš4iR·n]uÒ¶eË–wî܉=OLLŒ‹‹Ëi5eˆÈä ‚¬ÈË—/ã½o=éU–ÜÝÝsåÊUºtie Ì”i* ™€þ²c? •0ËPµuuuUºo7Qwµîîàáá»{�'NŒ3æÍ›7òiû¿xøðaƒ þþûo­é·oßîÖ­Û�7D¹fÍš:»¥.T¨�,¬ZµJsúãÇ�åS ªu¯^½4—†ÔZ¡øùùÅ~b˨MEiöò‘ž@ú–J»à š}ú$B$¶(fpww¯]»¶æz¬¬¬Äl�7sŠ•‹‰6665jÔ8p ˆƒÖüÉMâXÈÞÃãí#éU.]º´XÐ××We±‡… úæ›oôo4›Šàææ8tèPÃÇH(ñ©_ºt©,wèÐAψÌ@ÒeÊ”©âÿSÆ#éÏêÕ«õÏ�:/œa¢ÚçíÛ·ÊKq­'®’ €ÔpzÑÌ` 80#ß«gšîLjT’ƒ¡¡¡:;\ŒêÒ¥KÕ«W777ç�”Ì–¶jÕªqãÆIÓÙp… …{÷î999i+·oß.W®œ,oܸÑc` £‘jª\¹²æK=÷áËŠŠŠ ÊËâÅ‹s߀TrzÑÌ`ܺu«lÙ²6˜œ—ãúúë¯�œœîß¿øðánݺ¥äÿ¡ ,˜’5•Â4lØÐxÙgÀäèåšÈ8�\x20º#Fˆ¿šc0Û§OŸnݺ×ЈƠR©d�Þ£F�âˆ@" ]ïÞ½óæÍëååõàÁƒ”Ùâ¡C‡J•*•’ÝS=zôþýûUªTiܸ1Gé†J¥ ÿé¾Ç*Œ�.8£Ëš5«‡‡Ç°aÃfÏž½lÙ2coN¥RÍ™3§W¯^)VA±EQASSÓÅ‹§d`+V¬˜‘{PB  ›1c†,�3†�H(î€R Aƒ*Uªäéé©Ù�½‘lÙ²%((è§Ÿ~J±ÚmÛ¶íòåË}úô©Y³&ÇŠôyt``à”)SÄ_͉...fffyòäñððÈŸ??Ç)ÉÜÜ|ÅŠµk×vssÛ¿¿ñ6äçç7pàÀõë×[ZZ¦LÕ‚‚‚† V¢D‰Ù³g§pTËM9`bãCë‚EE˜\½!‹_n6É”Y–U‹» ‘>ÐK—.]´h‘ÖÄíÛ·Ë‚��Íĉ9öHaÕ«WŸ7oÞ�!CV¯^ݧO#m¥G�îîî-[¶L±z¹ºº†……�$!‘HˆZA” %Å·Šº¯:[GU‹j´­ÒR´UZê¾gªi�QEÝ¡-*q© ¹Dî͵ûŸ_æûŸ_~9VŽ�Í&ûz><öñÞ™ÏÌî¼góÙ™·ÙÏ 8‚ ÐY0EPçTy|û¿±[ã*&¦¤€¡  ¢ºæøu3g ‚�‘ê³è… ŠñŒC­¬¬È *"�F“™™I,,, yôŒ4@e–™™¹ÿ~òЯ_?KKKòèc@dÁÐcž ~n›Œž={&Æ<(x­„R©$“¨@Ο?oœîããÃÞÊ h€1ª·<åù�–{þo¸|yÁù�†LÐ",,ìüùó�?V«Õnnn>>> 6$-0* ŒH‹-ÌÍÍ�aK³²²BBBÊëÕ/\¸ðé§Ÿž={6ßôN�:­^½ºiÓ¦|a$(@ó\äAVëׯŸ8q¢F£iÙ²e½zõT*UHHHTT”0ëäÉ“/¿üò±cÇÚµkG¢` (@:8a„¡C‡.X° ~ýúâD�F³cÇŽ÷ß?%%%55uĈ7oÞ´°° ]¨ôLH qqqcÇŽ]°`A@@€T}(ŠáÇoذA|úï¿ÿþñǤ Æ€4 ß}÷ݨQ£f̘QèÜ7ß|³F�b|ýúuÒcÀctrÕç¶ÉøàâÚµkÅøƒ>°´´$o´P«Õ¡¡¡û÷ï/ª�B¡ðððˆ‹‹bkkk2c@`Œ”ÕŸÿ M£F .cKKKáH‘¼ÐÂÄÄäÈ‘#ÚÛ$%%‰�··7ƒ1  @á …••y +áááBà“‹„À04 ;wîLKKsqqÙ¶mÙ€‘à hÕï_߬S‡<@F{ö�=}ú� Tz (â;ÒÌìå—_&Š/::úÒ¥KÞÞÞnnn…6¸ÿþúõëÍÍÍ7nÜÈ•.0Š“kR ‚êÖ­[³fÍÈ”HVV[*“ØØØ&Mš$$$˜™™ùúú~óÍ7vvvyÄÇÇ8P¥Rmݺ•ë]`$(@‘��’ “ÈÈÈ„„!ÈÎÎ^±bE``à'Ÿ|òÆoÔ©S'66öàÁƒsæÌ±³³;qâD‡HŒh@Z¶l9vìX???ñiddä”\B\­ZµN�:-Y²dàÀ�ffTä`Dø¸P¸œœœ«W¯ŠqóæÍMMMÉ *4’ ·üqæÌ™çÎ�‹ŠŠÊÎÎvtttvv®W¯ž··7#>Ã8Q€ pYYY{÷îcOOO Њ£~.òˆ(@Tfýúõ#BH  *3…BaiiI” †žÈ‚4@ ²  �h€,(@dA ÐY˜‘ eaa1aÂ)&!”hÕ‘Q72ª’èIÔ#rFbH«º$@W‚ ÐY0£SôØJ᎚¢f)•JRP" (\VfƉý»Åøµ~CÌ-,É TöíX䬢—Òh4¤ D(@P8�Fó,>VŠI%ÅÐYP€È‚4@ ²à&„ŒÎªgŠšÕÛË�üè hFÇ¥V�¢f)•uÉ BÓh4Û·oß´iSlllZZš½½ý°aÃÆ�çääDr  €J"##cРA�fíÚµ�7¦9rä�7ÞøöÛowîÜÙ«W/R=c h ’X°`AVVÖÁƒÅê³ {÷îcÇŽMNN6lØ“'OHôŒ+ TTÝ-n4³L!��ªJæ]ÓÇb<ÈòŠ•¥9£pýrù¼n³7È= ì¶nÝñÞ{ïmÚ´IšØ±cÇ•+W¦¤¤ìÝ»w„ d úÄÐñi¢PÖvÿ 1 `øâââ²³³7oÞ/M´··ƒ”.䂾q4…³07g@gò€ŠN£Ñ$''“;;;…¢ò_YòÅ_ÌŸ?РAyo9øèÑ#1hÚ´)Ÿèh€Ê,99yìØ±äÁÏÏOº¸›‘+ßÄ3gÎ�/¼ðÂ믿Î'zFô*<2¦�©¶á…6V*•d ŒP||üêÕ«ƒ‚‚îÝ»—””äààмyóÁƒ¿ûî»VVV%ZÕ“'OÍÍÍýüü„Gr =£ zU¯{ îþ¤ÑhÈ]9þ¼qn¸��O¹¿‡S§N 0ÀÏÏoРAÏm¼ÿþ·ß~;11±K—.ëÖ­swwÿ÷ßW¬X1qâÄeË–>|¸AƒÅ|Ý'Ož 6¬jÕª[¶láòg” ÐN­V?|'Æ/¸Õ01áνJ,--mÅŠsçÎÍÈÈ(Î`܇8p`NNÎèÑ£7oÞ,Ž[Ý®]»!C†ôïß_˜Û©S§S§NÕ¯__ËJ_{í5a%aaa5jÔxõÕWÙ( (\fVö–½ˆñŒ±­,-È *�–-[š™EE(;;ûÊ•+ú]�FóìÙ³¸¸¸7n=z400ðÉ“'Å\666vÔ¨Q999ŽŽŽ«V­Ê{×Dq ¥R1zôhqXç¢888\¾|Y|3»wïîÕ«W‡6nÜèîîΟôŒ4€133c `Ymݺu̘1UrKÆÍš51b„0%..®8ËÎ�;7>>^Þ~ûíªU«æ›[«V­~ýúž={v×®]C‡}î  …Ð,<<ü³Ï>kӦ͟þY·n]öôÚç�@Wú÷ïãÆ WWWq(¿={ö§���°iÓ&1~ï½÷ m3f̘ÀÀ@!X±bEq Т‘#GΘ1#::ú�wÞ9qâûúÄp–€ÎT¯^½I“&µjÕ*é�d~ùå•J%ÕªUóòò*´�tCÅààà‡sÍ›/|>yòäõë×ÙGÐ'®€½ºd]!Su'3`äŽ;&-Z´(ª�£££»»{DD„F£ùí·ßÆ�ŸwnppðСCmllvïÞ�o%5kÖ ‚7n4kÖŒlCo(@€^)k»6UIfÀÈ…††ŠA£F�´4kذaDD„\¼x1_ú»ï¾‹ŒŒ‚-[¶,]º4הּ´41ptt$ÕÐ'†àÊ™Z­ cí5binHHH¾YöööÂc½zõFŽ™wºF£kÖÖÖÖÞÞÞdúD(g<ÈÈÈãêÕ«kiéää$�=Ê7«oß¾ÖÖÖ‡nݺuÞéçÎ�KHH‚>ø€+ ¡g Á ¢zRÕËÁ¡1y€|T*U’ÕŸbaßÚÊÊŠœd”{aPѹ»»“ t¢¢¢¤ØÖÖVKKintttNNŽ©©©4kÈ�! 8xð`ƒ ¤éË—/_{íµ �jèh œ¥¤¤H±¹¹¹––b V«ó^ѬP(,Xо}û>}úøøøXZZîÞ½ûøñã³fÍúòË/µ¯�h œ•¢]%÷‡›ùæš™™Íž={Ú´i'Ož¼}ûvNNÎèÑ£·oß^µjU’ŒrA€Â Ç|ýúõ+Îñ€*8ø¬ ;;»àD¥RIº€çJKK“bm·mÓh4R, ����M¯\$åŽ4…355õðð …zå•WŠÙ2o± @Qò^׬]VV–s¯>R”/›b¶ÌÌÌ”bրᣠ”3{{ûb¶LOO…BakkKê`à(@å¬nݺR¬V«µ´LHH'''í£E†€1 (\ffæáÇŸgϞő JªN�:æææâøÎIIIZZJèF�‘7> ÐN­V‡……I1  SSÓ¦M›†„„q||¼––‘‘‘b@hPbÁÁÁ'º¹¹‘ ÔÚ·o/ oݺUT›ÌÌÌÛ·o‹±——Iƒá£ J¬N�:'º»»“ Ô^{íµ5kÖAhhhQmnÞ¼™��-Æ�;w&i0|ŒS”¿Þ½{ÛÙÙ Á�;w¤ñó OOOooo’ÃG(ÖÖÖƒ €BÛlݺU &OžLÆP!P€ ÂôéÓÍÌþgÈÜ%K–<{ö,ßÜ?þøCºyóæcÇŽ%]¨@EåêêÊs�•J¥²··cáÃfeeEN”TNNNzzº'''koìéé9þüÏ>û,>>~Ò¤IÛ¶m“f=}útâĉB`gg Ö©ÃÇ'@E55ð’Ã…§ä2&feܺü@Œ¯n9kjnINT»ÞëHÀÈI·°cKe’™™yíÚ5•JwëÖ­={öÄÄĈ³fΜyóæMwww;;;áÑÕÕ5ßâÓ§O×h4³fÍò÷÷�ŽŽöõõ­Y³fhhè÷ßV»ví}ûö5iÒ„O2* ÐFäÊ•+$AVQQQ­[·.tVjjêÚ\âÓ9sæÌ�;·`³Ï>ûlРAB³ãÇ��9R¥R9::6mÚôÃ??~¼�� IFBÐ¥R©Ñhʸ�~ø�d¢  @Qæ6U¥˜t¨pRãœ^èy2écàããCèh gjnÑèõ¡ä@Å4cXÁ‰õfÒ²ìWi…¢ P™ÙÙÙùùù‘!$Ð? Е™B¡°··'Ê… )ô/66ö·ß~«è[ñÉ'Ÿ¼ñÆéééìPŠ4 o<èСCpppEß�yóæEDDtíÚ5%%…ÝŠJI£Ñd¦%‹ÿ€R  èÕÝ»wÛ·oß¶mÛ¯¾úª¢o‹­­í¡C‡"""úö훑‘ÁÎEå£Îμ{t·øOˆI%ÅЀþ$&&öíÛ÷…^ظqcåØ"—­[·véÒeÒ¤Iëׯg`Pz- (8qõ°—É ô†4 'jµzĈ�=:xð ¹¹y¥Ù®N�:Mžô÷÷wvv9r¤!$áèÑ£y«Ï‚Ÿ~úÉÏÏÏÒÒ²Ôë´³³>|ø† –.]ºlÙ2ýlÈ’ª�Íì«ñ©†|T™9 -¯Šñ »,+ Sr 2Øí§§²•d€4ŒËÂ… ÝÜÜT*ULL̉'ªäÞPî5,^¼8;;{ĈrïA__ßøøxáý q@@€8Q£Ñ”qµcƌٰaæM›æÏŸokkˇ  a\¼½½·lÙ"'OžËÇr¯!==]l?jÔ(I‚³³óŠ+ÄX*@—ÝË/¿,¬966vïÞ½#FŒàà Ѐ¼‚‚‚’““]\\¼½½+÷–š˜˜tïÞý§Ÿ~   €± �I)0)¼`3¥RI®Œ h@^»ví;wî¬P(*ýÆþç?ÿùé§Ÿþøã�ÌÌL ö>Æ£Þ‡¿äŸTpŠ.Fý@ÅB�‘pŠuôèQ!èØ±£1l¯x•wjjêÅ‹_yå•-“ïÖˆ…ºwïŸ+èï;ÒTÑ£em)&!”øäšTbÁÁÁ È[Ô>|øöíÛŸräHÞ* aÛ«W¯Þ§OŸììì¢Þ@Ù× ºÿ¾ðèêꪇ­.#‡3gÎxzz–qÏŠ×z'&&–ô ¸äâÏ%+[}üÚc1îâåfnfBN ÈÞUóOêýih£óf®|=<<ÄàñãÇÚ_¶lYÞêóÿž_ôî=vìØ 6ñ‚ ÊX€®[·î±cÇŠškbbòÁˆâK—.å››��ýí·ßŠñW_}•·v,éÞ½ûðá÷mÛVèú˾ÉÓ§O«ä¹´Y¾­.»… æ­>—zϊ׉«TªÌÌL þâP¡å¨5îüw(üNM]ÍÉMéRµÀ$%ih£3~üø‚ű8éééÚïÛ·oQ³fΜ)–)�?þôéSGGG]½g�Fsûöí»w…EFF&''‹C[RSSó5Ú�““Ó¤I“ŠZçˆ#Š*—} ñí•îÆŒ%Úê²>|¸Nö¬X€®’{´³³3qÆŒ´Ññòò*Ëââ¸Ï…R*•Í›7¿zõjNNÎ¥K—^ýõ2¾UµZ½wïÞ={ö?~\¼^qœ={V ú÷ï¯å \-³Ê¾‰X)¶´´”{«ËNËæ”hÏšššŠAFFn”—„„„eË–íÛ·O­V gô�7^¸pa£F�È ôŒ´Ñ)æp¥ãááqõêU!¯ .‹Ý»wÏ™3çæÍ›%]0**J JÝ¥–} ÿûff–“Kî­–[ñ÷¬t½­­­Üï*ÄuXr�úüQC>þbü§û¨ýg Ê… äE»víH€JæòåËýúõkѢž}ûêÖ­+L9räH�=‚ƒƒ‹y«*@W(@C—4�NÖ3uêÔ¥K—JO4hðꫯ6iÒ¤iÓ¦ 6tqq¹xñb×®]µ¿“2nE©× ±µµÍÈÈxîÀ&eßjÃÙ³*•JÚvþ"пððð^½zµhÑbÿþýÒ/•ÿøã�øøø-[¶Ì˜1ƒAŸ(@£dT*•–�ïÞ½+îîî¥~‰   ©Û³gÏyóæ½ôÒKùÚH½gAnnnb¦åU²²²ä[ƒ¤jÕªOŸ>•j²òmuÙeggk™[ü=›’’R%·úÌÐ?µZ=`À•JµiÓ&©’÷ý÷ß ÁÇIôŒ4Jæ·ß~{óÍ7 �uóæÍëׯ �¹¹yÁâiñíØ±C Þ}÷Ý�7–tñW^yE :¤ÑhŠ´:((H¾5HjÕª%ôì rouÙ=zô�7Þ(ûž0Qr×{0jµ:>>ž<899•ý·Î†oÇŽ!!!S¦L©]»vÞmïׯßÙ³g‹ªêò¡�’ñóó+ª«úꫯĠgÏž¥~ éK±oß¾EµÑrõqûöí���ccc#""~þùç#Fl“��°}ûvùÖ ©_¿þ… „õȽÕe·qãÆ¢ Ð%Ú³âÆÖ«W�?šÇ�:=<<¼àD.ª@e"œrº¸¸�‡˜˜á|¿Òoæüùó…Ç>}úä�¨P(öíÛÇgå‚4Jæøñã;wî,Xƒöóó¦WÉ&bÖ¬Yüî»ï-Zäää´yóféãB5hÐ@z­ÚæÈ‘#E-nii9iÒ¤Ù³g ñ'Ÿ|"¼VÁbè{ï½+ßòmË“'OÔjµöÿe-ãVK¦M›¶qãF777ÿ6mÚÏ:tè×_-Xƒ~îžÍG,@7mÚ”?š�¿±®îpútçÎ�›7o AÆ É h”ظqãìíí{õê%>�‹‹[°`Á’%Kħ³fÍ*8JÃÉ“'Åîãããßzë­û÷ïk©Æ V­Z%«W¯¶³³›6mš“““4WèFçÏŸ/]}œžžž��mfö>ÉÂ"?ÿü³ÐòÉ“'�:uÚ°aC÷îÝÅY “&Múõ×_µocÙ× jݺu•Üá•ÃÃÃëׯ¯¥eÙ·Z°{÷nqG$&&Ž3æêÕ«%Ú³ï¼óŽ���´¥ÅÙ³ùüûï¿ÉÉÉUò cJ!>>~õêÕAAA÷îÝKJJrpphÞ¼ùàÁƒß}÷]-wç’®]sss»pá‚p.#,Þµk×/¾ø‚ß+£\P€®Ìbcc¿þúk¡£É;ñí·ß611qrrú¡3š?þµk×RSSʉ‰‰âÕÍuêÔ™3gNÕªU ®6%%¥wïÞ^^^�? MOOg½õÖ[â…Ãù\¼xQŠ>|(ô¡Z~óòÊ+¯Œ7îÇÔh4 ,X¶lYË–-…·*t—·nÝÊ7œ…ðê¶¶¶ÂæØØØ[4fÌa¢µµõž={:wî-¼\�=4hФIá}KïV$ôãâ& ý¸°qbÙ× m‹üóÏ?Ú ÐeßjÁ•+W¤6Ân½qãF‰®D^KØRa+„�-æžÍçòåËbàããà ’S§N 0ÀÏÏoРAÏm¼ÿþ·ß~;11±K—.ëÖ­swwÿ÷ßW¬X1qâÄeË–>|Xú!u>7n܃K—. þúë¯vvvÉÉÉ#GŽÎ÷…§¯¿þ:ûzFº2[½zõÊ•+óMܽ{·T«V­gÏžùªŠ*•* @Œ›6m*U6%k×®�:ujzzúµ\ÒtssóyóæÍœ9³ÐwÒ¶m[)®_¿þsG\ºÈªU«._¾\­V ¯uþüù| Z¶lieeuáÂ!ÎÌ̇r[´h‘ô†…7úôi¡{ýûï¿…§a¹¤Å7nìëë;yòä*¹ÿ£(n²ðØ­[7é"ß²¯A li£F�îܹóÏ?ÿ<÷ ¦ì[ݪU«¼íÿüóÏç MMMsrr Åúõë…Í^÷j®bîÙ|þúë/áÑÛÛ›ÁÅP9XZZŽ;–<(‹´´´+VÌ�;7##Cüݰv‡8p p¶>zôèÍ›7 çìÂÄvíÚ 2¤ÿþÂÜN�:�:uªÐ Ýž‹ÌÍÍýüü”JeDDÄèѣϜ9Spq©Àíãã“w¤‡Þ½{oÛ¶íóÏ?ß±cûúDº2{å•Wž[‚Ì{s1¹»»/ÉU¢¥>ÉU¢E^|ñÅ+V5ׯÆfN.-k055}+W¡sCCCŸûʾ†¡C‡.^¼8888!!¡zõê²nµðµ$íš¾}û �Ÿûr~¹Ê²g%�=?N ÆlëÖ­â�•ÍÍÍ›5k6bÄaJ\\\q–�;wn|||•Ü1T ŽŒZ«V­~ýúž={v×®]C‡Í×@*:wéÒ%߬Æ� �{öìÙ°aƒ��» zC�×K/½äááqï޽Ç>\o¯ûøñãÚµkësKÅqHºví*l/ûè—_~)tº··7É Cýû÷¿qㆃƒƒ«««‰‰I•ܲoq Ð ›6mã÷Þ{¯Ð6cÆŒ ‚+V,@;99‰AÁŸh;:: �ÙÙÙÿýwçÎ�ÙMÐ Ѐì¦L™2qâÄ-[¶è­�œœ|íÚµ–-[êm5Íúõë…àÓO?e�À0¹¹¹:]©T’:T=W)üå—_T*U•ÜwyyyÚÆÇÇG ‚ƒƒ>|øÂ /ä�[§N1°µµÍ· ………DGG³� O&¤�Û˜1cœ���;–÷6†² òôô,þØÍe÷ûï¿ß»w¯U«Vݺuc�£ÒÈÈÈðûÿ„˜„�Õ±cÇÄ E‹Eµqtttww¯’{)Øo¿ý–o®ô“Ž‚§0B{1(]q(5 Ѐ쬭­gÍš%tô‹/ÖÃË /ôÃ?ä»%£Ü¯(l B¡Xµj»€Ò‘î5Õ¨Q#-Í6l(/^Ì7«C‡â â@Òy¥¥¥gå€Î1 'Nܼy³ŸŸßÔ©S¥ï ™ìܹ366öƒ>ÐÛÖíÚµKøÎ;v¬ô; ýhÑ¢E³fÍøtA>*•êĉbܶmÛ¼·�ÝR«ÕÒ/§Åñš‹"Í É7«fÍš¯¾úªp"sóæÍZµjå�!<¶jÕJŸ?˜ªP€†111ß|ó�ð˜wâÛo¿mbbR£F�Y³f¹ºº’¥b255]¿~}ûöí§N�zàÀù^èÖ­[¾¾¾þþþ–––úÙ´ØØØÉ“'7jÔH?×wçåõÍÁ*NWøtA&šU#H½yðà�4n†öQ2¤; >zô¨àÜÏ>ûìĉìÒ¥KÞéâå5³gÏ&ÕÐ3 Ð(Òš5kV®\™oâîÝ»¥ÎnÞ¼yd©ø^~ùå¥K—~ôÑG7n,êV¶e7räÈiÓ¦õéÓGoÛ5nÜ8•JuêÔ)ö2¥%Åo!˜—47:::''ÇÔÔ4ïÜîÝ»�9rÆ ~øaƒ ĉøûï¿ßÿý�jèhIè°Ö¬Y–““Ó믿NŠJJèúCBB>þøãvíÚÉ4vÄöíÛ7n¬·-úòË/�;¶oß>}¾(•OJJŠ›››kiiaa!jµ:11±àx›6m²¶¶îСÃäÉ“_xá…K—.ùûûÏŸ?ÿóÏ?'ÏÐ? Ð(’��O¾ñ7Pvk×®ÍÊÊêÑ£ÇùóçÅ»Öê–> ÁÂ÷ÙêÕ«�;Ö®];ö,eQŠt•Ü[×l ,¾aÆ۷oGFF §í_|ñ…öq¥ùP€ôû'gf¶yóæéÓ§Oœ8qß¾}z[6lxá¹ï©è^RlqZ…‡‡gdd<{öL|úàÁƒ‚C«+•JÒ @'ÒÒÒ¤ØÄÄDKK�F#ÅÒ°Ñ5ÎEbQî(@ú¦P(-ZT 6¤cÇŽìMTHþSŠÓªÞÿm¶|ùrí‡}Py¯kÖ.++KŠ­¬¬H œ )Ê—��M1[fffJqÕªUI h œÙÛÛ³ezzº( [[[RG(guëÖ•bµZ­¥eBB‚899i-0|F€rV§Nsss1NJJÒÒR*@7jÔˆ¼ÁðQ€Ê™©©iÓ¦MÅ8>>^KËÈÈH1 � ÁŒŒË¨¥Åiuÿ«¤ €>µoß>$$DnݺUT›ÌÌÌÛ·o‹±——Iƒá£ 02öÎÅi¥T*I}zíµ×Ö¬Y#¡¡¡Eµ¹yófvv¶wîÜ™¤ÁðQ€ pÂQÝÅ‹ŸM›6ff|i�QïÞ½íìì’““ïܹÖ Aƒ‚m‚‚‚ÄÀÓÓÓÛÛ›¤Áð14…ËÎÎþíÿ“.1™X[[vìXÒ… �+ ¹ää䤧§‹qrr²öÆžžžóçÏ‚øøøI“&å�õôéÓ‰' ���]@@ƒ¢¢à“ èLffæµk×T*U\\Ü­[·öìÙ#Κ9sæÍ›7}||ÜÝÝíìì„GWW×|‹OŸ>]£ÑÌš5Ëßß?::Ú××·fÍš¡¡¡ßÿ}XXXíÚµ÷íÛפIòŒŠ‚4ÀØ…'¨ �ž‘­y¦Òˆñƒ,--Ÿ»*¥RI>#ÕºuëBg¥¦¦®Í%>�3gÎܹs 6ûì³Ï $4;~üøÈ‘#U*•££cÓ¦M?üðÃñãÇÛØØ�dT  Æ®Þò”ç¶YîéYœUi4ò 9¥RYöS�~ø�d¢` h€,(@dÁ•™“““t<#ÏIô�4@efbbâììL”OD rà h€±»?¹j¡Ó5Mræc»éW ¹ D(@Œ�²z1~T¯‰ ¤‚ ÐYP€È‚1 TT¿{|}³NòùdeeýþûïbÜmÇsssr¢Oƒ& PÑQ€ p�&55UŠI%ÅYp4Ї˜˜˜µ/Q{¥RI’ÀÐP€ú0qâDY×Ï0)`€‚ ÐYP€’B¡Èû”!¹èŠZ­ÖÒÛ D(@€ ÉÄäÿ”5²²²È �ÈÎÎÖÒÛ d}5)‘B¡°°°�ž¦¤¤�:‘·?ú®€. 3Rô`õêÕ%jß«W/’žËÎÎ.>>^Œ“’’œ��©(#�F#ô'yûrR (œpêR»vm)&!eäââR¢öJ¥’¤€çÊ[€ÎÊÊŠŒŒá8xPj�FèIòécooOZÊ‚4…377oß¾=y0dVVVÂa›T*JNN ³··¯Zµª™™ö(&µZ����’’’”””·ú,ô0–––ä§,(@€ŠJ¡PÔªUëáÇ�Fœ’••Ÿ‹äÐIÃ�*ʈ4€Šª[·nÍš5#€‘³±±yá…òÖ  ì …з= ©(#~Š*6±mnnN*è„ПP}Ö®€ p999wïÞㆠššš’ƒeccÓ AƒŒŒŒ¤¤¤äääÌÌLr ¤,,,ììììíí---yCW(@P¸¬¬¬�;wŠñŒ3(@8…Ba•ËÅÅE£Ñ¨ÕjåPüÄÄÄ„¢³(@€ÊF¡PpƀȂ4@ ²  �h€,(@dA ÐYP€ÈÂŒP( ‹wÞyGŠI%E€Â™˜˜(•Jò@éO®I@ ²  �c@P¸ÌÌÌŸþYŒ‡Î}() Ð*’ŒŒ )¾wï �ÜŸ·¿þúKŒ_|ñEKKKr(޼U‹¼Õ #D@EòèÑ#)0` �Þ¬]»–$JáÑ£G­Zµ2ÚÍg hɳgÏH¨@Œ¼šA@E’””D@bäÕ †àP‘´iÓFŠwíÚÕ´iÓ-þÎ;ï\¼xQXÉ–-[Jñê,^.‹—ãKß»wOéeïÞ½ü BneüÀ³åûfä{-®¹ì«*õJº �0� �ŒÞ^Î8;úúúfäîgnܸ1tèÐ‚Õ #D@Eboo/ÅM›6mÖ¬Y‰·µµKº ‹—ãâåûÎ% I×èóËV”Ë›‘ïµt¸æ²¯ªÔk(ËKÓ ÓÉÐÉÈúrt2ô3ô3ô3ÌÈýÒy«Fˆ!8²  �h€,(@dÁM‘wÞy§S§NJ¥’Å+ÐâåûÎ�ŠÕM±åûfä{-®¹ì«*õè�ùó¤“1Ø—£“ý ý 3ô3²Rh4² ¢¸~ýº———_»v�UƒÏÐ ý :CÆYP€È‚4@ ²  �…)P�8;;Ï™3GŠIø¼�0ÐÏ “1d �Fàs Á�h€,(@dA ÐYP€È‚4@ ²  �h€,(@dA 3R BÈÎÎþ믿BCC\\\<==_yå…BAf¨Ð¾ùæ›-Z|üñÇÅ\D¥Rß¼y3))©V­ZÍ›7oÕª™èFôÖ�¤¤¤œ>}ZxÝ´´´:uêx{{7iÒ„Ð�è­yúôé©S§} 0Û¦œN0X*•ªk×®çÎ�:ñß~ûíÕW_§ O[¶léêêzàÀ�Ë—/§¥¥uëÖ�tA·Ç"Ÿ|òɸqㄘZ­¦tÊEf Œ?~üé§ŸþôÓOuëÖ�ŽŽΠÄéÏífãââ:vìxûöm›3gÎ4kÖLœnbbÒ¡C‡¬¬,aâÉ“'���_~ùeò Ð�è¼¹{÷®p>"¼º›››ÐÒÝÝ]œnaaѳgOaî•+W:Ôºukƒ½@…îF‚ƒƒ{ô葜œÜ¼yó£G�V«VMœ.¼™7ÞxãÔ©SwîÜÙ»w¯Ð¦V­Z†–s®`¸¦M›öçŸ ÁСC…^>ßܱcǶlÙR/^¼oß>Ò]‹LÈU½zuE *¢ÌÌÌyóæ9rDøú^»vmñ=ztXX˜|ôÑGÏʾøâ á\N>þøãK—.‘g€nD·ÝHVV–pJ'Ä_~ù¥³³s¾‹-²¶¶V«Õ#FŒxôè»  Ñm7’��0lذôôt!þþûï…–yçš™™-[¶L¡P Þxã�””CË9hêÊ•+Ò7Á¤I“ 6úÖÉ“'‹ñ§Ÿ~*ýj(—c@qÔ­[·fÍšb,þì´8öíÛ$~û §|ØØØŒ?¾Jîo`…£ò Ð�è¶Y³f�pz"vvvcÆŒ)¸x­Zµ†*III_~ù%»  Ñm7òÕW_EDDAÆ {ôèQpqooïÿüç?Ur ùᇠ-ç ¨… ŠƒÔ»¹¹ùøøÚ¦ÿþffÿs3Õ»wïnݺ•¤¡¼ŽE¥9)ö-,X mÛ¶­]»v¡m,'Nœ8~ü8éèFtÕ�äää|ÿý÷bÜ»woKKKí‹oÛ¶M8=aït#ºêFÖ­['ƃ *êJ‹/^¼øÙ³g†•g>j PrròÞ½{Åø?ÿù�B¡(´YõêÕ_|ñE1ö÷÷'o(¯c€|nß¾-É%�nQ�———““GtÞ�;v,**깋K§-jµzûöí¤ ÑU7²k×.•JõÜÅ¥Y)))REÅPN®ù 0@.\ÈÈÈãV­Zii)Í=sæŒÔ¡€JãôéÓ¿÷ åíí-ÂI—t eìFй¸½½}ƒ Ä8 €´t#ºêFйx“&M¬¬¬ ³¢ À�?^Š===µ´lÚ´©¨Õê³gÏ’:8*HLL !utÒ�”bñ[·nÅÆÆ’y€nD'݈´xõêÕ]\\ŠZÖÌÌLº5â™3gÄAM h†HúmK•Ü‘øµ´Ì;744”ÔÀQGtÕ�h4š¿ÿþ[œRµjU{{ûb.΃t#:éFbccïß¿_œ—ÎÛ 555,,ÌpH€!ŠŒŒ”b777--óν~ý:© ²˜››×¨Qƒ£úìFSRRÄ)®®®Ú_ˆ^ Ñy7Rüòˆ!÷B ¢„„)®Zµª––yçÆÅÅ‘:*µZ�””$ƶ¶¶ÚsT@çÝHñOLè…º9º‘ÊÑ Q€`ˆòö°Ò ú…Ê;WúJ•ógϤ µpT@Žn¤ø'&ôB݈ÝHåè…(@0DiiiRlaaQÌî555•Ô`œ‡�£¡P¾ÝHåè…(@0D666Rœ••¥¥eÞ¹y—FuHÀQ9ºz!åÛ�TŽ^ˆ4Cdgg'Å*•JK˼só.Œê�€£rt#ôBÊ·©½h†¨V­ZRœ÷÷&¥§§KqÍš5I•IÞ{ÍçýÒ稀~º‘⟘Рt#rt#•£¢ À5jÔHŠ£££µ´Ì;·I“&¤€ÊzT R©9* ÏnÄÖÖVªþh?1¡èFäèF<<Ï=*¸ÿ¾ô³SŽ è°iÙ²e‹-ž»øùóç³³³é…º�w#½zõrvv~îâgΜKKË¡C‡T)@0P&LP(BvåÊ•BÛÉÞÞ~̘1$ €JÉ××W N�:_h›]»v‰�‡‡‡tŠ:éF¤Å÷íÛ'•‡ŠZüµ×^{ñÅÉ9@7¢«nÄÂÂbìØ±b¼gÏž¢Þ¡´øðáÃ¥‚µ�  À@yzz~ðÁb¼jÕªBÛ¬\¹R fÏžmggGÒ¨@ž>}*ÅÚoÈÓ­[·^½z �p¶víÚ‚ 233ׯ_/Æ ,�n€nD'ÝȘ1cÄ«ãââvîÜYpñøøø;vTÉý)ç·ß~Ë®èFtÛ�LŸ>½V­ZBRèEзnÝ:zô¨ØÙÙÍž=ÛÐòÌ‘ÃõÝw߉7{ݲe‹4Ž’äçŸ>wúê«S§N%](Çc@)ìÝ»WŠ…S)�F£¥ñ† œœœ„`Ñ¢Eáááùæ.^¼øþýûUr¯:xð`r Ð�è¶177NI¬¬¬„xÖ¬YÒ(«’™3gŠwûüóÏÛµkÇ®èFtÛ�T«VíÇ‹ÚS§NÍÈÈÈ;W­VO™2%''Gˆ—-[V¯^=C˳éܹsù´0LC† 9qâDTT”ð­Ð¶mÛºu늳víÚ5f̘ììì=zZ[[“.èÜÚµkOŸ>-ÆÂ�È»ï¾+ (5áÔèúõëÿüóÏòåË—.]*�æ=zôèÚµk¹™J¥²´´,øÍnoo߯_¿   èèháñÕW_o>,œq­\¹rúôéB”»ÔÔÔyóæ­]»6%%Eèm_xá…Û·oß¹sÇÉÉé“O>ùôÓO9Ï„n�EnܸyèÐ!áS'þ²hРA#FŒP*•uëÖutt$WP qqqÏ”pÑ¢EÂW|Q‹ 'fþþþYYYmÚ´qqq¹zõªpæîî>gÎixDt#2u#ááá ȯ¿þjff&,nooùòåèèhOOÏ  0€Ð�ÈÚ�„††N›6íøñã¶¶¶/½ô’°’‹/&$$ñ?üбcGÃÌ9hCZZÚ™3gnÞ¼™’’âàààååÕ¡Csss2ƒ:èÁ³gÏNŸ>}ïÞ½ôôôêÕ«{{{·mÛ–qŸè­‰ŽŽÎMîß¿Ÿ••%:¶iÓFXYèFôÖ�>>�76ätQ€È‚˲  �h€,(@dA ÐYP€È‚4@ ²  �h€,(@dA ÐYP€È‚4@ ²  �h€,(@dA ÐYP€È‚4@ ²  �h(®˜˜˜:uêüòË/¤ 8(@@qíØ±#"""''‡T‡) A\\\ݺuÓÒÒt²¶mÛ¶�5ЬêÜŽ;ìììúôéÃî( ЀAøõ×_Åò¥««ë˜1c:vì¨T*mmmMLþçg‹™™™üñ�ÄÆ3gÎÚX[[ ±F£Q©TOž<9qâÄ¢Eÿ¯½{ó±Îÿ>+§(-9$¤#•B©.¥ÝhR[N3Ù�„É^m{]«t°mV%TÖ&Í0J¡l'´mR¡kÑñêàTÎ’Ã02Ìï}ÍýÝÏo®Á„Ü™x<þ¸¯÷çž÷ç¾ß÷û}sÍ<¯ûzÝC·mÛÄ”v_ýõûï¿ÿûßÿ>šyËð£ÐP$dff†íõ×_ÿÌ3Ï”+Wnï[·n�eÊ”¹ûî» d §Ÿ~zÓ¦M/ºè¢–-[†�g�u–)=ì222Â655Õò 5 àÈÛ°aÃ[o½Õ²eËçŸ~ŸñeNNÎüùó£v“&Mö~7’’’rúé§—-[¶F�fõ°ËÈÈ8餓š7onù�' àÈ{ñÅK”(1f̘bÅŠí³Ã¢E‹²²²¢öe—]VÈ¡êÔ©S®\¹ý‡C¶xñâ�?þ¸W¯^a¥,Àò4y™™™;v¬^½úþ:¼ûvá fnn®qHOOÛ´´4ËpàÐp„En¾ùæBúÌ�;÷ÿ~ƒONnÒ¤I!=×­[wæ™gšÕÃ+77wÒ¤I5kÖÜ;>¶|…@Àöâ‹/V«V­iÓ¦…ôI€ƒ"€€#lãÆ��;w.¤Ã�WÎÊÊ:ûì³%˜‡WNNΔ)SÂÄ6hÐÀò”¦Ž¬?ü°ð‰ ÂI?–`Ö¨Qã“O>1¥‡×¬Y³Ö­[×§OËp°< E]âÚjÕªÕªUË„üÌÒÓÓ“öSÃòN EZVVÖ¢E‹¢váÏχììì—^z©qãÆuëÖµ|K EÚ|�““µ%˜?¿—_~yË–-‡üø³åŽqh(Ò¼‚0qÈÈÈHNNîØ±£å8h(Ò„Ë”)Ó AòsÚ²eËÌ™3¯¸âŠjÕªY>€CPÂ@‘•››;oÞ¼¨}ñÅ—(Q¤�ß³gÏÆ|Ú¶mûKŸÿ©S§fgg§¥¥ Ë¿@ÑõÉ'Ÿ|ÿý÷Q»èpxûí·¯¼òÊÄÇÜÜÜ_úü§§§ÿêW¿ºá†Ž…刃Pt% 8$ýÌfÍšegg?÷ÜsGÇä¯]»vöìÙ)))'œp±°|q@@Ñ•x…]rrò%—\Rô\ªT©:“Ÿ™™¹{÷îÔÔÔcgù;4]‰GhëÕ«W¡B…_Ę�šJÇeË–ý)•¬‰Ëpx   ˆZ¿~ý_|µpø™-[¶lÞ¼y×^{m™2e,À!@@¥‚𔑑¶iii–à§(a  hJTN:€sëÖ­ .üî»ï6åéÞ½{… žyóæeggŸ~úé-Z´(]ºô>¿ûÑG½ÿþûëׯ¯Q£ÆÕW_ýë_ÿºðsý÷¿ÿ GÞ°aCÕªU/¿üòZµjýÄ+=¨¬^½zæÌ™k×®­Y³f«V­N<ñÄ�7†=ß~ûm›6mêׯŸè¹sçÎ7ß|óóÏ?ONN>ÿüóÃP‹/~€CJOO¯T©R˜´ŸgùvíÚµhÑ¢õÿÓ§OŸR¥JE×õÍ7ßT¯^=\éI'�tȃ)äøa>O9å”Ö­[üñQ第¬3f,_¾<œ1%%%œýpÝiÀ1H ETâÚªU«Ö®]»ðΟ}öY—.]V¬X‘››>6jÔhÈ�!µjÕºä’KvíÚuç�wöèÑcèСøÃòkÙ²eá[áø¡[Íš5ßzë­nݺõéÓ硇*Y²äÞgYºté-·Üòå—_öîÝûÔSO]»vmh„ýÏ=÷Ü 'œ°¿±}ðÁ—^zéîÝ»£�UªT™1cFãÆ�a<ðÀðáà pÚi§…νzõêÔ©ÓâÅ‹¯¿þúiÓ¦=ñÄ+W®Œzfff†nW\qE«V­Ö­[ÎR¾|ùÉ“'׫WïGgþ£<={öÜçâX¾Õ«W_~ùå;vìˆ>†Ixá…222®¹æšJ•*=üðÃažÃ…kI,\ëÖ­Ãvûöíáãœ9sš5k?üðÃ…^&aË–-áãøñãÃ…~üŠ+þío 3&0L×믿î“¶mÛ†e _ç}ê©§ºvízÈwÚ¨Q£þú׿~ûí·ÑÇråÊõë×/ì íU«V�uÖY[·n íâÅ‹wìØ1ÜHþáÀQ¦ø½÷Þk ¨ùá‡úöí…¶))):t(¼õêÕû÷ïߪU«1cÆ„� ,7n\—.]Î?ÿüK.¹$4233G�]¡B…ð1ñ­¶mÛ~ú駃NKK;÷Üs¯¹æšòåˇ¿¾øâ‹víÚ8ÅÇÜ´iÓ;v|øá‡W]uUýúõ›4iòÆo<ÿüóYYY‰l4¸ï¾ûÂ6ñ·F[ñâÅgÏž¾5yòäG}4ñPíA ࡇ8pà°aÃî¸ãŽpö6mÚ,^¼øÙgŸ;vl¸ÀpŠŠ+¶lÙ2ô|â‰'ºuëº�9ò¼óÎ —ŽÎ;a„ÐóGË:?öØcï¼óÎ#�}ú„9Ù¾}ûu×]× Aƒ9þСC_}õÕfÍš…é}饗Œ…/†%g̘qË-·”+WîÐî´Æ�0 oÚ´iáã×_F*¬õ­·ÞúÌ3ÏÔ­[÷Ýwß Kæ>}Ô€€¢háÂ…;wîŒÚ^A8z¬8>|øÙgŸ�Ø_¾|ùüã¡q×]w-^¼8±Á‚ëׯ�{úõëwÊ)§Lš4) 㤼D5--mݺu�=öXþ‡�_xá…¤¼r ÕÖ­['Ož|ï½÷¾þúë�5Êÿ£ÀæÍ›ï¿ÿþÐhß¾}bgìFIw×®]GŒK–,¹ãŽ;*Uªôç?ÿ9ѳJ•*ýû÷_»ví�!C~tÃÙkÔ¨qùå—ÿüËwòÉ'‡Æã�?>lذbÅŠEûëÖ­[»ví�7¾÷Þ{ùûW¯^=ê_@Xî³Î:ë`�¿fÍšÔÔÔ§Ÿ~:ñÜw8ÎÅ_.äµ×^û‰wÚM7ÝT§N�Ðxç�wò'ÜK*T˜8qâO/äMh(ŠfΜ™h_zé¥ûõÓN;­Àž† 6iÒd×®]QõƒH÷îÝ�?þøÎ�;ÿÿ¿’“C·Ð(�uNš4iñâÅ'�tRôˆqÂðáÛ7o>pàÀý�dÆ W]uUŸ>} ”H<aÿùÏvìØQ±bÅO<1±3Ê4?øàƒ¨ŒCäþûï—™––vÜqÇå?B4ò)S¦>uá¼K—.íØ±ãÞ£ý–/ Û´iSªT©üû£àxÕªUÿ¢KÞ÷ßtûÛ_øñ›5kV Òt•*UÂ6Q@ã�ï´0™ÑÎcÇŽÍßyþüùÕªU;�º(À/”Ðpä}÷ÝwYYY999Û·oß´iÓÛo¿ýè£�&~š™™¹k×®N8¡téÒ%J”¨P¡Bâ}q¥yóæï½÷Þ´iÓÂY¢2Ãóèý(*"œ0qâĤ¼‚¿Þãwsžý�qåÊ•-Z´è‘gŸ|Û¶m Û±i1çææþðÃÑžpi3fÌ�ü�åFêÖ­¶Ë—/ߺukùòå÷7æôôô°MKK;‚ËwÁØó«_ý*)ï]‚‡å~Ûßñ÷·?1½‡|§%å=¢>hРY³f-]º4Q{ìØ±·Ür‹ÿà(&€€#l×®]§žzj°îÓ#ySSS£�ô`�yæ™a»sçÎeË–�sÎ9‰ý›7ož>}ú¼yó–,YÚß|óÍÞß ? Ûš5køé>ÿüóæÍ›¯\¹rÚ´iýû÷/ä�â@ýúõÃvýúõ999%Jüß2k×®MÊ{z·R¥JÑž¥K—Fµ/† òÔSO8H•*U’““³³³÷@ïÞ½;333LÔ…^x—ïG«TÿDû;þá:ï>ï´ªU«¶nÝ:Ü ãÆ�mÚ´þóŸ÷Ýw_ñâÅ333¯½öÚOµG5 àX‘¨ =ȼvíÚ† >öØc�;w^´hÑm·Ý©Ø§êÕ«'åÕš8Às•*UjÊ”)×]wݘ1c’ò^I·÷sÍ5€¤¼zIyo)\½zunnîœ9sFŽÙ¾}û;ï¼3Ñ'ñŒv!e‹ ‘‘‘‘”÷�²»å0Þi )))5jÔKó¯ý+Iý 86 àXñî»ï†íyç�½YnРA_|ñÅ9çœóÔSOE¥~÷öÙgŸ­X±")ïõta»xñâ}v+ð kP®\¹¨ŠEJJJ—.]¶lÙÒ³gÏ}jÁ„ ÒÓÓ[µjÕ®]»p>øà“O>™™™™ÿ…{áÒÂ�BãË/¿Üç ÉÐwîÜ9uêÔ† žqÆ¿ôµÞûu…GðNK(^¼x×®]“ò¢çO>ùdÏž=Qeà(&€€£ÐÞo«Û´iSôv¾¾}ûF{Þ~ûí°½êª«%•#ù³ËI“&Íž=;4zôèQ¬X±%K–|ýõ×޼{÷îK/½´�÷ã 6¬Zµj3gÎŒÞd˜pPHÊ«�Q¿~ýAƒÍ�;7Œä�7ÞØç«£ |þùçsrr ü(777œ.Q¦£€0ÂÍ›7ÿ²Ž^øgÏžü;7nܸtéÒ¢s§å×­[·äääW^yeðàÁÝ»w÷OŽzh8 =øàƒöÜsÏ=Û¶mKIIéÖ­[´§råÊIy¯õËßíË/¿|ë­·’þ—i†mÉ’%C㢋.ºýöÛÃÇ�8òøñãÃa£nûT±bÅQ£F%åkÎ.Ô’òâãaÆ[÷.°eË–kÖ¬™4iR��=ú7¿ùÍþ^µ—žžžœœÜ©S§_ÐB׫W/l7lØ�g˜¥O<1é•»�ø�–ß©§žÚ¼y󜜜—_~¹cÇŽþ©ÀQO G¡�7öîÝ{óæÍ¡���}÷Ýw?þøã¿ûÝï233‹+õ4hÐqÇöD…�ƒ?ü°cÇŽ#GŽ í… &åÕÜhÒ¤IôÓ¡C‡öèÑ#tîׯ߶mÛ’òÒá1cÆL�:õþûïOœ:zövëÖ­«W¯NìlݺuÙ²eèڷoŸ(‚q°h×®Ýøñã+W®|Vžúõë‡uèÐaÈ�!‰2A¸ÀpÌë®».ÌÀäÉ“£Àú‡~1bÄÌ™3÷L#aÀ¯¼òJÓ¦M£j×GĦM›¢Éùꫯòï+•´Þ»®ÈŸþô§R¥J�7nÇŽIyýĉÃöì³Ïy䑇zhΜ9xüûwïÞ½lÙ²¤ý×39À;­€¨îsjjj¸%üS€£^±ð«‰Y€£çWü¼ÔoéÒ¥sæÌyúé§·oßž��]§N�^½z]sÍ52ÁÏ>ûìÑG�5kÖîÝ»+W®\·nÝ{ï½÷Œ3Î’§^½z·ß~{»víòåµ×^9räG}T¶lÙÒ¥K_ýõüãK•*~´`Á‚o¼1œ:*ËP²dÉZµj¥§§7jÔ¨qãÆá§ÑBçË.»,œô`ðñÇ7mÚtÓ¦M{_u8æðáÃó—™éLŸ>}Ô¨Q+W® #)S¦L‡úôéS ÜG„ nºé¦Ñ£G÷èÑãç_µU«Výö·¿]¾|y”#‡eªY³æ]wÝV-LŠ+¢Ä?¨ZµêÍ7ß½ 24ÒÒÒ*T¨`fà!€€£ÇçŸ5>ú裣éºJ—.ýꫯfgg7lØpòäɉ7æíÙ³gþüù7ÝtÓ}÷Ý÷ÄO´mÛöЎ߯_¿¯¾úªlÙ²n¡Ã~§5mÚ499yàÀ�a;}úôI“& 0ÀÀ±ÃKàh°`Á‚ÔÔÔeË–åää$å½ ®fÍš#FŒ8äL¶ —6}úô^xaÑ¢EÉyvîÜY«V­-ZÜxã�•+WvÍ;m„ Æ ÛµkWƒ BO…¶à˜"€ Jp 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@ 4±@‹ÿJÿ7© endstream endobj 86 0 obj <> stream xÚ}VÍŽ1 ¾óy�É&¶ó'U= X·…Þ‡m»å Á…×Çv’I:Ý]U£É8þýüÅ©ùc¼qüó&�I±Ø\ÌéÙ°8[<èv(6AÄd–€¶2Qôî>?;óá·y` Ìbá ªäb ÑgSÈæHf¡T,Bnf¡š½?˜»{0Ù–È:‡ËÐ.‘e`çï;ç0:GÀï£sñÌ�ã5ì"'»Ù98í¾°3šœØ’gS½ø#[xÏ+ÀýELÙ)±C`Çxá5¿ýiyWƒP "ÁW�@­æ×±Tš¤JÄ6¹QÓ¿Ôµ?±ï‹h�ä“D³{~-¶BP¶qÅ^"l3Kµ€î�NU¢þ�­bÏÏ­€„ ­ð‰…ä§–ŠÙ �C²r‰ˆÁλQº”ÜÓײ49^gu¸ ¡ %›Å;&[éáó€”¹6;/çšÝ¥Vô ZïîóÔ%¾slˆy=t„ÓHtƒ”: ªû>,ê—«SÝz_¬ùúkWÐÏçÕ®NfcѺ÷ꇑÐw;ƒ5ë™[Þ'ë§»«6AÉý8ˆ©b´ùf“ëF(CO3åùV¶�/ú¯ŸÖåߟo‘È‚ÃiTiKJ#ŠCÚë½ PI,¤ô�UG(¬TÎ5{ùî2¹ÃE‡¨A } Õ}ÕÁ^רIŠiUSä/CÔ›?›ÒíÑÄnùðî?Tòíº endstream endobj 89 0 obj <>/Filter/FlateDecode/Length 4539>> stream xÚíÕ1 ðñ'ݱèQÙò$´Eð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÀ%ÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ÀÀÀÿÿüüð_ð_ð_ ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüð_ð_ð_ÀÀÿÿüüüWð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿüüüð_ð_ÀÀÿÿÿ•üüð_ð_ÀÀÿÿÿüüð_ð_ÀÀÿÿÿüF=’Ìš¬ endstream endobj 90 0 obj <>/Filter/FlateDecode/Length 102429>> stream xÚìÝ\Gÿøq:H,`CAì5X±cï±Ä^b‰5öØ5FEc4ÑØ *ö5ö.¬ÑØÁ†AAÄN¯÷Ÿ‡}~ûÜÿî8îäó~ùâ5»7»3ûÝ9„/s³† …Â]3"}  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  Ð н  €Ì"11ñìÙ³oÞ¼!À×Á„ c½~ýúäÉ“G’………�>}º~ýú„E>~ü¸k×®={öÜ¿ÿåË—bOÁ‚ÝÜÜúõëçîîN| C$ 2R@@@Ñ¢ESYÙÝÝýÌ™3_͵8pàt²[·n) ×qøðáDFF>^*|¡Ÿö @&úáìÿOÅ’™…®Ü¸qƒ ~Ç!ÀWïÅ‹_ hàë÷á€/�‡dm …âÂ… ÑÑÑMš4‘w¾{÷îĉOž<É‘#G¹råêׯob¢—ü"""öìÙÓ®];yõê„„„sçÎ=zôèíÛ· ¬Y³fñâÅuÞn\\Üõë×}}}ß¼y#6óæÍ[±bÅ*Uª|î¢%QQQ>>>OŸ>³¶¶]­Q£FîܹSßd!!!IIIŽŽŽ•*U*Y²d&'"bÛ�7nˆ8÷ÝwÊÁ?yòäýû÷ÅàAkܸ±……Åg�ü[·nݼy344ÔØØ8þüU«V-]º4ß2ÐYÕ½{÷¶mÛ¶yóæ§OŸöîÝ[J@¿{÷î—_~ñòòŠ��•kº¸¸lܸ±víÚºjZ¡Pøøø¬_¿~çÎ�‘‘‘¢666 óæÍ[²dIpp°reww÷+V”)SF'M¿|ùrÖ¬Yâªß¿/6íìì>~ü˜””$Êùòå›2eÊСCSó�½û÷ï‹óˆþ‹@™›››™™…‡‡‹ý¦¦¦­[·ž1cFùò嵞˜˜¸téÒeË–ùûûÛÚÚFEEÉ�øsss›9s¦òßRoΜ9“&MRÙéää ¼G\µÆÍâ¾(o:;;?{öL½šG2å=Ó¦M›>}zéÒ¥M©Z@@€¥ÿý·úÃEœÛµkwïÞ=•ý¯^½êرãÁƒEô´\Ô… Ä-ç— nt½zõÄ}ŒŠŠš:uêŸþ)Þ}úôM‹ñ–+W.¾]d8cåé ÈX6l�7íììÔs ÞÞÞ¶¶¶¹råRÎöºººZ[[·hÑ"11±_¿~lÞ¼y||ü“'O¤ qqqwîÜùá‡ÒÓ½-[¶üòË/W¯^}ùò¥òþ®]»¶mÛVœ¿R¥J;vtwwÏ›7¯hZš˜l�¼.Çž={5jT¸pa�gVž�Û§Ogggõ:ÇŽkÓ¦MLLŒ(:t¨}ûö¦¦¦¢lnn^³fÍ‚ îß¿_lÞ¾}[ÄGìÑØ�8¼C‡+W®,P À¥K—D9wîÜÒlÙâÝ!îû»wï–.]º`Á©¦ Mš4Ù¾}»´$‹{W®\a4@fÀ h€,¦[·nRÁÏÏïèÑ£RùöíÛíÚµkÖ¬™———¼„ñ�!CÆŒ3þ|ióÂ… wîÜ©P¡Bš›þ>™(Œ7nÞ¼yòþŽ;ÚÙÙùøøÔ­[WÞùâÅ‹.]ºˆF¥Í˜˜˜~ýúݼyÓÌÌ, M'%% :TÊh»»»«TèÓ§Ï”)S¤ÌøìÙ³‡.¥§•)Šž={ ZÒ²eËuëÖév€}óÍ7"2>Ô^ÍÖÖV„ëСC_mÕª•T–ÓÙ¢,†héÒ¥·nÝ*ÿ)bÀ€K–,1b„´ùôéS1ª5N–ß·o_ß¾}ÅMüùçŸÅ`PyÕÐаG�S§N•6OŸ>}òäÉ´-„2"YTÙ²eåò�7† ²{÷n•èÍœ9ÓÖÖVÞ<~ü¸NšîÚµ«ò¦““Ó?ÿü£œ} *tòäIåE?îÝ»çåå•¶>|(ç…CBBT*KëH¯_¿Vž,[¶l™‘Ar½\¹rjÙ²¥\~ñâ…8•ò«¿üòËýû÷EaòäÉ)EFžu«P(f̘‘¶ëÍ—/_jªåÉ“GCK‡­+�RÿF��:uJe"ü°aÔÿ q”Š{Ñ«W/ÒbÅŠ‰» ±-9ë-¹uëß%2 h€¬JZüAâææöǨ/8`ii©¼~‚¯¯¯NšVY]wÞ¼yVVVêÕ,,,6oެܫ•+W¦­ÅèèhåMõ´Aòd¹¬²DµAòãþùgQ011QŸ?+-ðÓ?¦¥êu=-1¡ÃÖ•Gi�6mÚ¤>3]œ§E‹ÚGéĉ?~ü(Ý sss�m‰›"?iSœ3¥eXð%‘€Ȫ”Ó)U+V¬˜\V™Ï›ö"ÿÿe�RªY¾|ùï¾ûNÞ¼}û¶¼,õgç)S¦ŒT.]º´ØÔ�ˆˆ•WW¬X!e0kÖ¬™?þ”*[¶ìþýûÛ¶m;pàÀ'N(ŸÓËË+66Ö yYd-]UÎMÇÇÇ«?…/ÛŽR33³”RÛÚGiPPжmÛ¤²òpR·k×®´k×nß¾}r2ˆ5 ¾rÊSP###¿|ºwï.-|!¹r劋‹ËçžÄÔÔôìٳ˖-…üQKÂ]’�� ²gË–-R¡ZµjÚ�m–L}ÿž={¤BÁ‚Ÿ?žÒá*ëWøûûkOXã“£tûöíÒ“ sçέ}ðäÏŸÕªUÄ ó  ð•Sž‚*=Äï kÚ´©‘‘‘ÜôƒÒv{{ûéÓ§k|éåË—7nräˆz•“GDD¤tBå—>¹0…r뇊��U¯#ö_ºté“Mëd”)R¤sçÎÊ{V¯^ݸqcyiÙ�;wÜÝÝ÷íÛ7wî\å§ £˜€ÌÃ××Wy3""âÑ£GÅ‹×XY9-«1E(yùò¥\ŽŠŠÒG·½½½•¸P¶eË–7nˆB£F�¬±Ž¿¿J–äÉ“ÇÌÌ,..NÚôôôüá‡*V¬¨|†¶mÛ*O¾xñ¢|ÉFFFyóæ]°`Aÿþýå:ñññÓ§Oÿã�?š4iR´hQKKËÀÀÀS§NI †ìÙ³G´«Ü�œ9sÎ�;wàÀ�Ò¦èO«V­~þùç±cÇZYYÉÕ Å�† ´råJqæ4„´Zµjæææòm>|¸««káÂ…å ׯ_ÿþûï *$†Á«W¯¤�çÏŸoÞ¼¹úÙ’’’ž>}*o>xð@{ëuëÖݰaƒTÑײjÕ*CCCiObb¢¸âª;wî¼cÇiç•+WDLHH¸råJ¿~ý:tè ͼ®\¹²ˆØÍ›7•OÿàÁƒË—/Ÿ;wîöíÛÒìà©S§þøã�ê½­R¥Êýû÷ýüü¤Í¤¤$Ñ )õ)Ê7n=z´§§çÇ�ÇŒ3iÒ¤´EØÌÌ,((èÚµkÒæ‡Ä%¿zõJ\×áÇ=<<&Ožœ7o^Q^½zµ<£ùèÑ£¡¡¡þþþ%K–TŽöÞ½{EÇäÍçÏŸwëÖ-wîÜ)µ._¹rett´|<(F‘¸Ì-[¶ˆhoÛ¶MŒ·N�:ÉKi‹ë=vìXX²2eÊȧZ±b…ˆªTŽŒŒ9r¤Æa0kÖ,ùÑ‚b”Š&,--•+X[[»ººîܹSeJµ"JâÞ‰¾½xñBì©X±¢¸^�­àË# �‘ÂÃÃW­ZuâÄ //¯#F¨¯·{ãÆ�;vÜ¿ÿîÝ»¯^½’’¼IIIkÖ¬Y¶l™\-***22²víÚfffòθ¸8�={öÈ{bbb"""Tª¥�JºhѢ˗/÷õõ-X°`¡B…ŒŒŒ^¿~-º×»woÑ«-Zˆ>¨¯‡°ÿþÍ›7�5êøñãÊûÅÅŠ€<{öÌÏϯzõêÒβeËnذAžã, W¯^=pà€8VDfÈ�!" 9sæôôô”Ïããããíí-Î0xð`yáo¿ýVôMã"“9sæüüóÏ)Uh×®]@@€œT5HNa‹>_¾|ùüùóbÿ‡,,,þøã�iÓ¦¥'ÈuêÔÙµk×»wïä{wéÒ¥#GŽœ={V§F�G�upp˜?¾œ€·5oÞ¼åÊ•«T©’¸“Ç/^¼xÖ¬YÊˤˆè­[·îÎ�;÷îÝ®X±¢¨¬Ü´8O©R¥vîÜ)¯³,F¦æ±cÇDè>~ü(~‰�RÆÊÏr´²²w¿ZµjEŠ‘öˆ$j*§ŒEÏ6l˜#Gy�xuõêÕK–,QîÀóçÏëׯ¯’ƒ.V¬˜¸›âœZfR7jÔHTÐ’[Àf˜š‡w@OR¿Dƒ»»û™3g–.]:uêT9/©ÌÌ̬L™2Ò ßY³fýþûïWûÕÚ·o¿}ûv]uûÁƒëÖ­[¸paLLŒ8yŽ9¤Å¬Ë—/?vìØ”C(]ºô'ׂPþaõôéÓâTAAAÿûYÖаnݺ3gάW¯ž´gøðá">RÙÈÈhàÀ�óçÏWNwJNž<9iÒ¤ÿýWe‹-~ýõ×Ê•+2wAZ]D™……E—.]&Ožœ†ª 0`À�”wæÊ•küøñ"°RÖØÑÑ1**ªS§Nݺu«S§Žr*9oÞ¼oÞ¼ùd+aaa¢¦úþÇ:TåIƒU«V�7ožŠR›4iR¡B…ž={vìØQy–¿ÿþûÇ”×Qfll\¢D {{{1lÄ…¨/Ø-Usss»pá‚Êþ—/_Nœ8ñ¯¿þ’'hKœœœÄ=áJÿè h|6•ôÓ§O���_¿~}úôégÏž%%%*T¨bÅŠ*TÐm»qqq§N�òóó?Ä:::Ö¨QC´«RçäÉ“7nܰ³³kÚ´©“““–³=yòäŸþ g«_¿¾òÃ÷RC\¸8CHHHLLLîܹK—.]½zuõ|w:=zôÈÇÇ'44ÔÌ̬\¹r 4077—_õöö®[·n:§´§$!!áÂ… ·nÝ Ï›7o­Zµ”ïé‹/Þ¾}«ó»œ‘‘‘gΜƒíÇyòä©\¹r•*U4®T€ŒEŸMcš°PÁÇÓzA $ zA $ ðÙ•7ãã㉠u$ ðÙBBB”7_¼xAL¨# €Ï¶qãFåÍ-[¶êLRéüùó§N�:räÈåË—•÷{yyùúúÖ«W¯@�5’+$ �zžžž)Mv¾œL&L˜@€ÄP¡P€Î±4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/Là+öþýû³gÏJåÂ… ›››€¾ÅÆÆIewww;;»l Ѐ¯ÙÙ³gÛµkGeïÞ½m۶Ͷ—Ͻ  Ð –à|Í .,—÷îÝ[¼xqbYll¬———Tîß¿?K„ЕG�É B*ÿfš ‘€|Í”SŠÅ‹/W®1�,&&ÆÁÁA*—-[Ö‚˜Ðëo¦ÙKpô‚4@/H@ô‚4@/H@ô‚4@/H@ô‚4@/LÈžÌÌÌúôé#— è h�M9;;Ðão^„ $ zA ¬ ²©¸¸¸­[·JåîÝ»óB�m)Ф¤$ñ•P Û244422_ …Α€Ù”ø-+ @.�ÝÄÇÇH& dŸCCCSSSÛd¢@@t…4@öI(™B¡ˆ‹‹ Kfee•/_>sssÂ’~¬ ��ÄÇÇ’}´oñ6oB‘~Ì€dÇîß�µ&�ÅÅÆø…¼—Ê»o<33· & ®Se'‚|Mƒ‚‚ �x›ˆ7‹“““±±1ÑHÐÙEHHHll¬¼idd”3™©©©(d[IIIñññ“ÉOˆoñ–qtt$>éA [HLL —7ÍÌÌœœœLLÈÿ}GXYYÙÛÛ?{ö,..NÚ)Þ2â�Ã$èôàO[Ù‚òºÏ†††… &û ¨o ñÖo�o¤%¤„ð*8Hãþ€Ü õ�ÎÎÎD ÈŠ”§?[ZZš™™@�xkˆ7ˆœwŽˆˆÈ™3'aI3ЃaßÖÕ¼_ÓN…BAÄ€¬Hy"§�� Rbmm­œ€& éÁ_?…B‘˜˜(oæÈ‘ƒ˜)±´´”Ëâ�Ã_^ӃР›244´Ëc/— øº%%%)oòP5@ •7ˆxûð–I3Ð ›253oÚ±'qÙ„ÊNþh¡òatz°@/H@ô‚%8KœÓ¸¿UyG‚ÒŒ4Ȧ’’’>¾}-•sæÎkdÄ'Ãdk kÜïììDp@š‘€ÙTB|ÜñÝ[¤r»>?š™[YR’âMd,qòX™ñÌF �H@@Õ›ÈX‡I»‰ƒðjv{&+iD�]43»[Î<‚8@cço"•;˜ß´07#& �ßubð¥•kO _ Ö:è h€^°#àÅ+ {­Tv8;;+@E€ŒQ´ÙàÔTS(Ä �E±€t !Ј4€´»uëVÿþý‰4" �ÂÃÃ;uêI(  hi¡P(úôéãïïO(�B²)Sãv�Üä2>ר±cÿþûoâ-H@€lÊØØØµtQâÈ@O�yjØ[²‘�ùÅÅÅýôÓOË—/'ÐŽ4ù�ƒ¦½ÎDÈ>† ¶lÙ2å=Ó¦M›>}ºT¾yóf¥J•TY·n]Ÿ>}”÷Ü¿_²6mÚLœ8QÚ#N{ôèÑçÏŸçÊ•«Y³fEŠQ>ªjժ׮]SïRíڵϟ?/o>zô¨D‰*èÞ½{­Zµ”?{ö¬¡¡¡T¶µµ}ÿþ=7Ð@Ƙ8qbóæÍ=<<þý÷_õWË”)sóæÍÇ�‹ ·oßVyõÁƒkÖ¬Ù·oßÇ¥=M›6MJJš5kÖÌ™3ããã¥�!!!ëׯ?räÈÅ‹]\\äÃ:äéé)άP(¤=µkמ6mšrÁÉÉéòåË ,رc‡‘‘ѲeË:vìhff¶eËq`¯^½®^½*ªU«VmãÆ�Ò!ÆÆ,p‡ÿ! d Çd… ª\¹²ú«æææß$Ë™3g“&MT^MHHèÖ­›µµõ´iÓ¤=ñññbϹsçæÌ™S§N�ÄÄÄÍ›7K«d„††6ìðáÃòáùòå¯ZµJÚÓ±cGõVLMMÝÜÜÄK;vìèׯßàÁƒ¥ý¥J•_---¥MQ(]º47êH@€l*>>á�Ï?3ت^SS~.@Æ(S¦Œö E‹jxxI¹råÄ×òåËÏž=;&&F”.\X§N__ßܹsKujÖ¬)^Z»v­(=z4((¨páÂÊ'™8qâš5kEùÀ�£F�ÒØ�#GŽ$/ÂÍÂçâ-@vñÒº¼­m)â™øAÜ'à’T.ß²’……1AVçèèHÈŠ>ù³¨–E-LMMsçÎ,ÊUªT9xð Ø£\aÀ€RZ¡P\ºtI%]´hÑÎ�;oÛ¶M”OŸ>}ïÞ=õlx\\ÜßÿíêêZ±bEn>—!².9ãìâ⢒}6ø¿‰Ò’   õÃÇ�/ ÅÂ… Õ+9räýû÷½{÷&ÔHÐÀWËÆÆF.GFFªWpuumÖ¬™TÞ´iÓëׯU*lÛ¶ÍÄĤ{÷îiÀ@£qî’Aò“ˆTö8;;. KJJÒ¸„ ÇŽ…èèhOOÏ)S¦È/EFF8p yóæi@ÈbjÕª•Êš …‚p€OjРAµjÕ®^½*ÊË–-?~¼™™™ôÒþýû£¢¢XiÆ@v7a©ðòåK附QΕ+×·ß~Kˆ�6$ €ì®}ûö%K–”Ê ,� ïÞ½;vìX×®]ÍÍÍ Ò†4�Ý�7N*ߺuëÔ©S¢°{÷8Öß@º†!ðý÷ß(P@*ÏŸ?ß yý�R¥J¹¹¹¤ h ³HHHHåN�3775j”T>|øð™d½zõÒrˆ¡¡¡THLLäÞA#B²-V²CuñâE�ûå)K ˱²²ŠŒŒõWýüüä²B¡Ð_7œ s244ü믿V­ZµnÝ:???±éââÒ±cÇÁƒÛÛÛ‹ ÅŠkÑ¢E‡ªW¯ndôŸU Ž?>uêÔþùG>Éû÷ïK—.íææöûï¿×¬YÓÓÓsþüùÊ‹J?yòÄÉÉ©N�:ÿý·–¢´nÝzçÎ�¢-+++íݶ´´Ý>|øùóçsäÈQµjÕÑ£G7mÚ”  h�M)ŠØØX©,~ø–Ÿß d##£ÁÉ4¾ºoß>•=M“i9¡–³i(¾öîÝ;5•K–,yìØ1nRB�]ŒÞ}Íöò[âYb|ìýÃ[¤ré–=ŒM͉ ¾õ«K@z8pÀÅÅ¥~ýú„éGªòX™¿šÝ�8H¡ÈV×{ÿþý+W®Ìž=›ÏB'H@@•‘‘¡½�qȆæÎ�kiiÙ¿B�  dy‘¯Cär@@€Tpvv&2à³øøø¬_¿~äÈ‘yóæ%Ð Ð@–wxb¹\tâ …‚È-¶lÙ²téÒœ9s¶iÓ¦k×®þþþ;vÌ•+×”)St…4�턇‡÷éÓ'!!A”�?>lØ0iÿŽ;rçÎM| +F„ÈnräÈacc£²sΜ9�;w&8Ð!ÐÈ’ÂÂÂŽ=J€¬eìØ±íÛ·�ŽŽ&�áLLL|øöÛo‹)²fÍ¢dE6lhԨш#V®\I@@WZÎÙ!——u©N@�I�€F–‘””Ô£G�   ƒšššݺzõª——שS§^¼x!6ÝÜÜ:uêÔºuk##>*]ª_¿þÈ‘#,XаaÃ.]ºd C#cûR•ä2A–f•·€\vvv& È$H@#ËX¹rå¡C‡.\X¼xq¢¡CÑÑÑC† 9qâÄàÁƒW­Zejjêïï¿víÚÍÉ\]]7nÜX¡Bš6mÚ† †Þ¸qã< @Ä<..îûï¿wrrªZµ*ƒ®ˆ÷ ‡‡ÇÊ•+ÇŒ#F×—it¾õîr9í>€¯ßN/bðy:m z hd���›6m²··ïÙ³gß·oŸœ}6Hžó»a¿cüÇÝ»w½¼¼æÍ›§ž}–üòË/¶¶¶ÉËtôíÛ7))‰ AWlllºwï·`Á¢À׊4²€yóæ%$$ôèÑ#mÏœ3gNïÞ½»téÒ Ai�¾©6l°²²ruu�ˆˆÈÌ�ݼy³E‹-úöí+"¬^ÁÎÎN¼*•}}}½½½¿¦q•UnÓW=1ðÄ×µk×FFFRdˆ„Ĥ3~/¥¢L@@çH@#³‹ŽŽ^¿~½(|ÿý÷i;C¥J•Ķoß>uêÔ/Óç 6DEEݺuëâÅ‹™9¶.\_#""D|Ö¬Y£±NýúõåòñãÇ¿¦¡•UnÓW½êÕ«ÛÛÛ‡‡‡ïÝ»—�"C$$*”Ð :G™ÝáÇÃÃÃ*Uª”Uú,ϰÎäkV¼zõJ.ß¹sGc�‚ Êå‡~MC+«Ü¦¯8zFFFÍš5…;vR@F x�ŒPè hdvýõ—øÚ°aCCCC¢¡[eË–•Ë®®®똘üïQ¥ÊKi:Q¯^=ñõÔ©SqqqD�!Šû»h2B &„™™B¡8qâ„(Ô­[—hèÜ‚ ÂÂÂnÞ¼Ù©S§>}úh¬£}:wîÜ¢|ùòåíÛ·‹æ?~,ª(P iÓ¦cÇŽ-Q¢„Ê©üüüÞ½{' *THý½¸víšÚÉ“'Ÿ?.6]\\DІ –šcoÞ¼)ú&â#®Z\lxx¸ˆ[¡B…j×®-îoëÖ­5NÄ7ÔËËK¡P]?T~‚Ÿ2kkkѽ:è°i#†“���ö:ÿüó�\Öí*(Ÿ5¶Szɛ۶m4h�—´ill~ü¸ÊÔ¶­[·–*Uê·ß~S^àÕ«Wû÷ï?pàÀÒ¥K‡ ¢ýpccãÍ›7+'Pž?¾=Y×®]×­[gaa¡Û§§ÅwïÞõèÑãÈ‘#òqábç­[·æÍ›7bĈٳgK9eYPP�zöY¸té’¿¿¹råDÙ××W=ûl�œg|ôèQ™2e”wFEE�3fõêÕ‰‰‰òNq™§“‰ìÚµK}nòîÝ»U²Ï‚hôêÕ«%J”4hÐÉ“'•_ XµjÕßÿýøñãœ9s*¿$?߬|ùò©¹ áááÆ Û´i“rÌo'[¼xqÇŽµ~øðá6mÚ(_¬÷ ÙÚµk]]]—/_^³fM•wìØ¡ž˜KIDD„´ssi$%%‰.Ie##£N�:éä´iÛß_" æææÒæ¹sçäü© bèå奒BÕÕmÊpŸÀÌ=чB… ={ö,¥UÈ@––yÐC† yûö­ôñùùTÓ¦M“ 666•*UÊ“'Ïõëן={¦P(F�Õ¸qã’%Kj9|Ó¦MR¡@�®®®ñññ·oß–êlß¾=88øàÁƒ§ô¦¹ÃinñÉ“'Í›7÷÷÷—6���Ë”)sçÎ�ׯ_'$$ÌŸ?_œjß¾}–––òQ•+Wþí·ß.^¼(N+mJsŠkÕª%eŸ ’g:Ïž=ûæÍ›¢|ïÞ=)ýÝw߉:*ÙgÑÏ–-[^»vMÚÌ™3§ˆ¹��]PPÐ�7DÌEó�;w¶iÓFùÀyóæ-Z´(::ZÚyò¤ÿþ§OŸm 0 N�:ÒÚWW×uëÖÉ›õë×?{ö¬(È�)^¼øŸþÙºukq7+W®üæÍ›²e˪¯³!MèNMÞ3))©k×®RöÙÂÂBtxРAR‡ …¸#¢ŸÚO"ÿ1ÀÔÔT\�òß.\¸0mÚ4oo˜nݺùúú*?©¦M2õK¡nÞ¼yêGQš; "nS§N•Êööö¿þúkúÏ™æ±�ÒûK&ζjÕ*ƒä õR U�®n“lèС�7VÏÕ¦Y®\¹´gŸÓÀÌ=™£££AšVjטšYùâÌâ;0ÿß�!²ÞC·lÙÒµk×ÿ]€‰ÉàÁƒ¥çÔ]¸pAû± ¸téRáÂ…å=¦¦¦Ã‡wqqiÓ¦MRR’——W�=T–“N�´µ8}úti†r©R¥|||ä—ÌÌÌÄõVªTI³aÆîÝ»7mÚTùpQ§dÉ’wïÞ½uë–öîIS5.¯7nœÔè† Òÿ”N]�íììk  ôÞ�‰‰‰‹‹ã.¾€‘‘‘ÉKjh¯vñâÅ/^ˆBž‘6·òw /ìÂXÂ×­F�@æaBd …"3´(ïüäd@¹‚ú©NNN9sæüøñ£´ÊóÇ¥ì³~úôé-ZHO ”jªþÉ„¯ GGG77·OV+Vì³?¹cee%.ó“‹«ÈA32J×üµÑ£G/X°@¹ÃîîîeÊ”)[¶l‰%þý÷߯�ëoHdxV­ZõÛo¿åË—ïèÑ£®®®zðéÛ|�úú#¿ß¹Ë|e²W:&&FËjÂrŠÖÑÑ1[,T¨�T¸sçN—.]´œ\^C£`Á‚ê¯V¨PáÂ… ÒüåÇK;­­­#""<Ø¢E )7­¾þ†rÆŒ3oÞ<]ECã3Ó´~ûö­œŸJI�¤ÂãÇ�µT‹��×òªˆ’œüññððP_fW^+ =’’™˜˜dT´D`È�!bž:uJ}.ù›7o¢¢¢4>T3•t5¶¿Œ”nSÊBü¬è‰oJÉÙçT.’²�ì•€>zôhJ+ß»wOÊÕšššjyº×h±F�ëÖ­…={öüúë¯)�ùÅ‹W®\‘Ê5kÖT¯ ž€.Z´h¾|ù._¾,z•��ðàÁ¥Å:”Õ­[×ËËKvìØñÛo¿é*+¤eEì”,X000ðÝ»wÚ«ÕªUK*:tH¡P¤Ô�œˆ×hÛ¶mRá‡~X³f�žáóçÏEoß¼y³iÓ&•5I¾LRríÚµÎ�;‹€Ÿ>}Zã\õ)S¦DDDˆn§¹ ]�míäuÉõt›”ýùçŸãÆ�Óá‡'ìí탂‚RZôü ðKFO&-¡ãììÌÉ@š…„„È倀¹Ì; @†Ë^ h//¯”ÒÁ3fÌ� -Z´°µµÍÀÛµk7bÄˆØØØ»wïîÚµ«cÇŽŸ5kVBB‚(T®\YãÓÿ¤ÌòÛ·oŸ|xþü¹hÈÃÃ#¥ ôööîÛ·¯���8azæÆ¦ÄÅÅEtø“ëØÖ®]ÛÞÞ>,,LÔܺuk�=Ôë¼{÷nË–-ZNòæÍ© å oÚçPÿï}õ?Õçnïß¿_ZÉwïÞ½*¹9vàs´nÝZÄðÔ©SE‹ÕXÇÏÏOŒÕô´¢«±­Ý£G�Rûí/M·IÙðáÛ4i¢“¤­$wîÜZ¹ùø%£'“Þà) <@¯ÄjÇŽR¹K—.Ÿ|æm¦•Ò{íË//€,!,,Lüª×�Y²ìõÀwooïíÛ·«ï÷òò’ö‹7Þ”)SÔ+üþûïyóæ-UªÔÅ‹õÝ¢ƒƒÃàÁƒ¥ò°aÞ>}ª~øÁƒ===¥ò´iÓ46-g–EMiAØ 4mÚTî€J5e666Ó§O—Ê¿þúë’%K46ѯ_¿   »wïþûï¿ú¸eÒTÜ—/_jÏñ™››�1B*�;VcÐDWÅ·×O¶%ݵ”ê;v,5Ý–—JP„ã©S§¤‚‹‹‹ž:0fÌ;;»2eʤò¦¼{÷®eË––––gÏžM) ˜��pãÆ�råÊ¥§9]�mSSS©ðþý{•—çÌ™“ÊÑ•¶Û¤ÌÌÌL¼ƒ\uGûÓuÀÌ=™”€.[¶,ÿ%#CÄýB€lBüŽß¡C‡/^ |FÙí‚  ¼Ãëׯnj#vJ›S¦LQ_ãÌ™3'N|óæÍÇ»uëö¹³ÓÐâìÙ³¥\LhhhýúõOœ8¡ü=bÅŠ�;w–æ4õëׯM›6Û-_¾¼TX¿~½Thܸqݺu---EY:§……EJ$G�Õ³gOƒä�ä�1B´rýúuå ~~~Mš4yöì™Ar*ªeË–ú¸_UªT‘®Zùʼn¨–)SÆ 9[-‚¦œ¨}÷îÝ÷ß¿gÏíg7W*,[¶lòäÉò|dɽ{÷D@þüóOi3::ZšdªQƒ ¤Â‚ äÕxÅ-›?þîÝ» ’W#i×®�>:°sçNÑʇî߿߷oßOF866VôDœêìÙ³)e?Å8xð`DD„zŠðs›ÓÉØ–çÚ¯^½Zy¿$mÛ¶=}út*GWÚnSÆJ3[ôžÒ -Ÿ\AEDXý|VsºÛ�;w–&êN�:U„K.N+Îvýúuå›ËßD Å7ñŽP9OÚnSÆJ3[ôä¿l¥a½oÀçÚ»wïüAð%eÞô²eËÔW~عs§T°³³kÑ¢…Jö6&&F^ɱlÙ²êó1W¬X1zôèèèhßdò~SSS�I“&i쉛››\vqqù¬ìsÚZJ—.}õêÕ®]»Jf’L~ÕÈÈhøðáóæÍ“—aÕÈÕÕUZ‰U�g(‹¸:tH*óÍ7Z733Û¾}{ëÖ­G�%ÍÆ}–L¹N±bÅÖ­[W·n]å�cÇŽÕ¸ˆÄÙ³gÕw®\¹RKD´K–,ùðáÃ7ntèÐA{´ÅM÷ññéÙ³§�Ø|œL~µT©RC† 9r¤AòjËÒP_›6m*OB÷ôô´¶¶^´hQRR’¸k—.]R©……ÅåË— ’?µ-=ôiîܹ*ƒMÔ9pà€µWbbâ?ÿü#¿dhh8tèД’ƒéï@åÊ••닦µd„'Ož¬q‰�DÅÀSÙùYÍéjlO™2E4$ÍÕ J¦üj‘"EU¾!ˆF ¤rž4ߦŒ•Îf¶èIÏK¬T©’ƒƒÿ%€^]¾|¹G�<)_˜±¼ÔofcffvàÀi¢®ŠÜ¹sOš4ÉÕÕUTиª¯££ãÈ‘# ,(mÊÏÐÛµkW¿~ý ’×dˆŒŒ477/[¶l¯^½Ö¯_ŸÒ‡ý'''kkëëׯ»¸¸lݺU>­élQbeeÕ»wïêÕ«'%%}üø1::ZĤdÉ’]»v]½zµxI=¨¢@�GŽí–+WnñâÅÒÆÒ¥KŸ?>((H\Èüùó?y9+V:t¨4õUÜŽ˜˜“"EŠ4iÒdêÔ©Ë—/WŸÂ,ZôööÖ²B…ÄÆÆf„ ¢?Ú«JKo§f…‡½2àÞ½{Õïâ#>FmܸññãÇâ3”žêëΓ'O?‹+6gÎ''§«_»vmûöí§N�zôèÑË—/‹-Z®\¹¶mÛöïß?½±EK|}}½¼¼|||ÆŒ#õœØ¿¿Øï¥K—ž?naaѼyóáÇ˷ ’8::JwJ¡lٲꃗŠÔ©/0uêÔLõÏÈôóEã§Ñ›7oÖ¬YSgŸ@†¼† �¯³•+W þøã1cÆÔªUëíÛ·§N�Í^¸pá¢E‹Äyzzªwp¾pá–-[Ä*Ož<‘'>~üxРA꺆††îTquuýå—_äâûš5k>ýôÓ±cÇÆÅÅISD¢æÏŸ_©Òÿûc‰¡¡¡È¤···4ÀïO?ýD‡¹\Dù€x 1b„——èŒ‹ŽŽ¾yófŽÝC/‡w‡@©TJCÀ�7ŽlÐq¡¡¡-[¶|öìÙG}tæÌ™¢E‹ê©¾ÜÖ¥K—Ö­[ÿùçŸ{÷î�4iRŠû~õÕWAAAôöö–¦|üñÇ�:uúÏþ3{ölõ%­ÿKžR©R%õ¾ »wï>räHHHˆ|¯xA´äÛo¿íÛ·¯¯¯¯tÿ¡¸¸8iŒYß½{·C‡ÁÁÁ={öܱc‡ÜA¸E‹b­Ï?ÿüêÕ«[·nT/v?yòÄÎήbÅŠr:00P¬"ÚæååU³f͘˜˜}ûö-_¾\ªz/[¶ÌØØxáÂ…ÒÂ%J”1bDTT”\Imèܹsê”Ö¯__|ð\ºtégŸ}6uêT®±\¤O �÷ <ØÒÒR¼Z©ßTš>|¸Zµj96Ú@ïÀ±cÇÄ›ŒzõêµoßžlÐqÏž=A¹rå¤ê³D¡PŒ3FŠW¬X+Ïòóó;wîœÔGÏ�L›6­jÕª™j@¯^½Ö®]{ôèÑZµjISÂÃÿýöÛ“'OnÚ´éêÕ« >|xÉ’%ÅÜÈÈÈ.]º—-[ÖÛÛ;Åð}ô‘Ø”¥¥¥ˆo߾ݣG¹å={ö=z´———¼ðöíÛ§L™"Žå믿nРAëÖ­/^,V—»{‹äœ9sF}û®®®òÖ‡Joh‘#GŽH s�å.z@#(T¨Ð¤I“F�µ`ÁOOOò^â•wáÂ…ƒ *�»CÁ¸DÅ“Z¼‘Z¶lYNî·víÚº<êRo‚O�:%Å�7æ¶ È-þþþR >î°ÄÞÞ^ Þ¼y$¨ �‚ׯ_§XÅÐÐÐÍÍíîÝ»YhIõêÕýüüDpëÖ­mÛ¶Õ«WOÄæææÞ*òbS§N•¶?|øp33³ÔÛ±´´œ7oÞàÁƒõT÷÷Z²dÉ?ü Ï•n$ùú믿ù曫·iÓfúôé&L�>BΚ5ë·ß~“çJ¥ð9sæè©:P=z´cÇŽ©Û Ú/šñùçŸs�å.z@#1bD�:uÖ®]›ú…©mß¾=<<\¼ÈÝ¡ðññ¹téÒ�!Cš6mJ6�‹ êü—ˆIr‹4ಠ|Õ)RDŽ###åXî?±`Á‚·oߦXËÑÑ1koq *$%J”øòË/Ó\æÅ‹Ò˜Š‚†oµöë×Oê-ÌŸ??>>^ž¥~‡ÀråÊ¥¹ú¨Q£J•ú÷Þ�ÇŽ;M1W΀‡‡GêÕ¯_¿ Ú�ân„Èy¶tXXØÌ™3ÅOõ‰Ô×××î¤I“J—.�ß÷¨k5ñÒÖ¼ysww÷� nß¾íââ²iÓ&ùžiw(ÂÃÃÅ…*Uªˆ7I9¼k‡™õ,®q �šr™I@.?~¼��Ý«W¯œœ4½5MHH�ãV­Z™™™ÅÄÄܺu«M›6ÞÞÞêÃnXYYÉã&g�¹¹¹|뿎=*©!wÐNÍØØ¸{÷îkÖ¬qDD„¯¯oëÖ­3ÞSSÓ=zH«+•ÊsçÎuéÒEžûÑG}ýõ×Rüرcþþþ)¾ðºmÛ6=U÷j®®\W`{@¯X±béÒ¥;Tä‰Ò­<—/_®�ar~�º¦Q£F\·nÙРÿþcÇŽMsþ°;C‡ïT~ýõ×bÅŠ‘ ÐS�õÜ»wïo¿ýV½¿ó�;w&Nœ(wŽÖSÕaåX|¤š5k–_¸p¡V­Zßÿ}TTT´öìÙ³r¬>buj 6”ciÄêLiÖ¬™?|ø0Å\q¼úúÿÖ6Sw‚Þ±c‡ƒƒCݺu¹ºr]�-@wèÐAî䟂……ÅgŸ}Vö¨ƒ\]]���G�-�„Ô¶lÙ2iÒ¤‚º;äwS¦L9~üøîÝ»3{C Љ‰‰Û¶mkÕªU—.]J•*åãã“Þ’nnnãÇ�—â„„„… V©ReÆ éÝ”/»H÷K”¤ýC�úG¿Ãd„úêêÃ�H*W®Ü«W/)Þ²e‹úöÏ�;L÷ç<¢ÀÁÑ´iÓ,\Öùk�ºÉÓÓS¼¤vìØQ¼”ØØØ�ͯÎowÈ×Ö¯_¿|ùòãÇ�7iÒ„l ÷E…Ë¡xo*¶¶¶$¹%11qÕªUóæÍ300˜;w®£££¾¾¾üf5M?ÿü³ƒƒƒ«««Ô÷ùùóçß|óÍÊ•+W¯^]»vm-µ3&&æo«£¢4t‚.^¼¸k.U¿wõ4÷òÃ?ìܹSOuƒqOOÏ©S§JÓ·mÛ&r¨y<äCR€|vÉnذaüøñ#FŒØ¿? ò{{ûóçÏk ÈQ›ÆÈaÅÿÆÚî*¤çÎ�;ŽŽŽ7oÞìÕ«—···úXš 0 ]»v'Nܸqcrr²˜ò÷ß7jÔÈÓÓó›o¾ÑFSK”(!Ç>,[¶lzKª…|GÁŒ34ü_é2Í�êׯ߶mÛ'Nè©FÇ�0a‚‰‰IRR’��Oûöí­­­¹®ò}R€|G¡PÌŸ?Ÿê3�ï´lÙ’ê3¤vóæÍF�‰Ÿ�7Þ¾}{Æ«Ïkkë 6øùùõìÙSšïìì,Uf³]… äøÚ5MwzWï+�…¯ªi]¿~ý4—™0a‚„……mÙ²E§N�zþü9ãoä €\“œœÜ»wo©Ø:nÜ8õn¿ìÚµkΜ9êSjÔ¨±{÷îß~ûMºå»R©”ïR˜½Z·n-ÇgΜѰä“'Oä¸M›6™ÝQ`` ”-[¶J•*i.Ó®]»zõêI±t+ÂmÛ¶‰ tëÖ�K+�  äšãÇ�ß¾}[ŠRÌÕ0LÜo¿ý–zb‡6mÚ$Å)º'+ 9NJJÊrƒÛ´ióÑGIñ¯¿þªÞÍ9¹ 6¬T©RfwtáÂ)øî»ï4,öÃ?HÁÍ›7<¸gÏž>}ú˜ššriå €\ãçç'Çááá)æ>zôHŽãããÕg�9sæÁƒ©7Ø¥K©tŠ*³zM6"""Ë Û7nœ¿}ûvíÚµé-) *ß0㥠ZXX¸¸¸hX²W¯^ru{È�!¯_¿fü�<…4�kÔ;&ûøø¨ÏzóæÍ”)Sä‡êÅh=UçèéÓ§§Þ`||ü»wïôTwâQŸ®~·ÀsçÎÉñáÇåztbb¢H[HϨQ£Zµj%Å¢ ©ëæÂéÓ§ÿþûo8;;wêÔ)½M¥8(ÙêÕ«?~,‚U«VYXXhhŒ��Áرc¥8,,¬råÊÍ›7çºÊ; IÐE<ô’ônþsW–QŸV>|¸‰‰ Y@ÎS//_¾\__¿W¯^ÆÆÆ—/_^²dÉ_|qîܹ„„1wÙ²e5kÖÓåÛzyy}úé§TßàÒ¥KãããÅûÛ™3gªO¯W¯^¡B…¤ÊòO?ýTºtéjÕªùøøœ>}úÔ©SÒ2RœÞ� ÅŠ;v¼zõê«W¯Dƒ>lff&/ðäÉ©r—.]D{4þÆ�›6m:tèPõ‰çÏŸÿþûïE0{öl±ñ÷æpРA“'O–Êè à¢ÊS ÄÕFUxxøŠ+þ}àÐN¯°99Á¿LŠè™è…?Ð34êX«BçÎ�K•*EV@–œœüòåKù¡………¾¾ÆoÆ'¼Õóý…¼ý£Ù(=ãÂÚÛ|Ù²eïß¿ãÆ =U§æ .lذaíÚµgÏž�6mÚĉÏœ9#sŸ?¾nÝ:±äøñãŸ={&�P±ÿþ»wïšššÆÆÆ^»vmΜ9óçÏ777÷ññIÑÚÈÈ(22Ò××WÄbá]»v­\¹2&&fß¾}‰‰‰ÇŽ›2eʉ'äåOŸ>-¶“��P¨P¡ÔC*)RÄÉÉ)44T´çáÇ;vìÛW(!!!Û·o8pàëׯEãÅ.ÄôÔG-M 4h°qãFÑCCC±¯,_¾|øðáb�âÓÜÈ‘#3’C±‹/^ˆC X¿~}ñâÅsúù¢ñÓ¨‹‹‹•••Î>�è ä&//¯zõê­[·îîÝ»… ®T©R÷îÝ¿ýö[©j¹råÊÁƒ_¼xÑÂÂBLŸ:uj©R¥®^½*­«T*·ªˆØØØ¸B… nnncÇŽµ±±I½£Ù³g+Š�7FFFнôïßäÈ‘b�®®®Ë—/O±ðõë×�œœD°fÍggçÔ[333-3fŒ··÷ñãÇÿóŸÿ¼}ûV´ÍÞÞÞÝÝ}àÀ�eÊ”yï±ñÅ›7ož5kÖ”)SÂÂÂÌÍÍEÃD>þÀ�äAèÒ¥‹‰‰ y²†1 ZA  ÁÐíÛ·¯Y³&yPÀܸqcÀ€ÁÁÁC† Y´h AžBh suu½qãFTT”‡‡ÇÉ“'Iò Ð@>–””$ÇJ¥’„ O¡ äcÕªU3775jTÛ¶mµ·£§OŸ’mdc@ùX£F�´½—£G�úøø¬[·Ž„#S(@eddÔ·o_9&!@z?~Ü¿ÿN�:‘ dh £ ªU«FÍbcc{÷îýâÅ R�,` hiKJJ8pàùóçI²†4�'$$$<}úôI“&) i™æÍ›÷éÓ§eË–R¡yÏž=›7oîß¿C=Uå^½z¥¹ýV­Z‰ŸÃ† “ Ð_~ùåÌ™3ÝÜܤ‡µk×nÑ¢…½½}DD„x¸zõj¹ d nBä¦B… •*UJŠÛ´i3yòd¹ú,qppX¹r¥üpÖ¬YêsßÛ+¹téÒrµjÕ’âÛ·o_¾|YžU¸pá n\/�juÍš5¥àÍ›7¯^½ât Q€ò:…BÑ·o_ù¡<¤F¶(Z´¨KƒMÙ…1 ºâè­Ð[qfä²ø¸Xÿ§ÿÞ­e÷Õ‡Æ&ÜÅ>HïzHhU³fÍäøáÇZÚ Cp {ÑȪV­*Ç‘‘‘$ùh (^¼¸«šäe ÁÈ¢°Ð9.©”c[[[’ÙÎÐð¥|øüùó"˜5kVÕªUÕgEGG§Ë5ïôíÛ·rœº„]¶lY)¸téRBB‚ÇÄÄìÛ·�ó…÷¢ ä§N�úé§ŸÔ;5ë©FîÐÖõRÜ}ÐpcSr™eU¦œÛÚV !ðáêׯôèÑÙ³g/\¸044´páÂ*T1b„³³sÅŠÕ—\¹råäÉ“S¬9fÌ,]ºÔÕÕuüøñ[·n}ò䉼À®]»þú믦M›îÙ³G<ìÖ­Û©S§Ôîððð8pàÀ°aÃÆŽ+M±¶¶>vì˜Øì•+WŠ/Þ¬Y3±ÙÆ�s²� €<¤L™2ËT4/6IEó2óT4,°ÿþŒ4©Q£FgÏžåÔ  ô€èŠÆ·jšÄ�Èbõâïü{3–^&×LMŒÉ |ÿ+ä9ª&ƒÏj—±±q—.]ȃ” ’dh¤¤P(LLLȀĭ  ä²øøx)x÷îÙ@A ? ~öÏE‚¥‡¶¶¶äù]DDÄóçÏ¥øúõë$ h�ŸTì0Lý¡R©$'È¿BBB®\¹²páÂäädiÊ�;w¾ùæ›Þ½{—-[ÖÎÎÎÌÌŒ,!_£ äŽ=z\¾|9ÅÄ *"8pà@çÎ�Éò5 Ð@î¸téI@ÁFèêÛ ƒŽ-êÊ1 €ìÿäE €Ž¾ 24hR»*yíÑ'm 4ÈO]ùÏU:� Èû(@€üͬ•ê?[Ryh £O\¸!ÅmldÄû"Èf|Ð:*)9ùüõ»Rܺ¡ƒ€ìF +ž™9+V•<@ezAŠ›×755%'@þeccCò }RPà) õ‡J¥’œéINNÖðôA¦P€(øôõÿ_(!!�œéILLÔðôA¦0€ü'$$DçD[[[R)( ccãøøxéaLLLáÂ…I �&ñ‘cñÄ¡ô‡  ÿiÖ¬™†¹|¯ÒT´hшˆ)ŽŠŠ²´´¤¬¤ùFBCZ’€<‚!8ZA  Á {óâiŠ)ÁÁÁ©³µµ%W9�4€|ìð„/SL©8!�Å”J%¹Èy ÁРЭ  ¼_xxøo¿ýF€÷ý÷ß÷èÑãÝ»w¤]@x�‡¶hÑÂ××—TnÚ´i�?n×®]LL Ù À£ hrïÞ½æÍ›7nÜxúôédøpEŠ9tèÐãÇ�»téGB(Ø I�žÈÈÈ.]º”/_~ݺudÈ.VVVÞÞÞmÛ¶uss[µj A.R( ,*Õ”cäS_ÌÝ‘bÊò/‘€<‚4�¶ääd''§���ƒ‘ µnÝzÔ¨QmÚ´ùòË/Ir‹¾¡ai‡ÆäÈ²N1ÅÖÖ–´ä•O^¤HÓªU«:4{öìÊ•+“ ÛM�:µdÉ’#GŽŒˆˆ T �4<þ|âĉ¶¶¶...dІbÅŠýøã�áááÓ¦M#T Á¤áÇ|ýúõ¢E‹²0øÆŠ+ÜÝÝ廫™šš.^¼ø»ï¾#«@ ây1mÚ´U«V�;¶B… $€‚‡4�Ò£G�6mÚdiiÙ¿ÿ,¬¾ÿ~¹ú,ÄÆÆz{{S€R+Z´h¿~ýV¯^íáá±xñâØã"³Ý5Í‹“yÈ“’/ý;LƒJ†|3 ((v®%È´ÞÞäm �‚ÆÛÛÛÅÅÅÞÞþ¯¿þ233ËÂ,X�˜˜èä䔵{Î�;×ÚÚ:666,,ìÔ©Szªûæý£æR!!¹’ÀÁƒ¯^½zýúõ³fÍ*R¤YEKLRþví‰×±-ih@J ›ÑÓ�··÷Û·o¯_¿îëë›…Õß½{çåå%‚d­uëÖ[ؾ}û”)SòËQs©��ÜJ`£F�,--£££÷íÛGJ(xè�‚Fînœµ~LJŽŽŽ¶²²ª[·®î5— ÙÈ­êëëwèÐaóæÍ;vìprr"« g‡Å¤šœb‚­­-‰àÃQ€þñ³M›6 …‚l9à“O>Ù¼yóÉ“'ããã���IÈ]÷¤œ”jŠR©$Q|8 ÐÀÿ{‹ùûï¿‹ eË–dÈÒ· Þ¼yséÒ¥fÍše|۰°ððð÷.H’È- ³�¯¯o÷îÝÕ«!ýúõÛ²e˳gÏÖ­[wôèÑ€€€ÈÈÈ%J4iÒd̘1­[·ÎÈê7oÞ«Ÿ>}úÁƒoß¾ýè£�Z´hñí·ß~úé§ÙÛþ¸¸8Ñȃúùù‰}‰¦* +++[[Û®]»ÆÄÄÌ›7oüøñšÇ5ŽŽŽöòòÚ¿ÿ�7^¿~-¶AƒNNN}ûöÛoذáÝ»wÅvF�-¯âéééî��?þøÔ©S%K–ñùóç·oß~æÌ™   ±˜µµuûöí¿ÿþ{{{{ia‘�µkצîžðù矧n¡™™™ha¯^½Òl¿¿¿ÿ«W¯DP«V­Œ§îòåËb›Ç�üø±xhgg'víêêš‘u¯]»&ŽN¤ëÎ�;"ç"�ÆÆÆeË–mÞ¼¹¸:wîœ^Gìì:ê,7àÃ�8qB´êìÙ³¡¡¡… ._¾¼hü AƒªV­šñç—üpÛ¶mß}÷�h¿ôÐÀÀ`âĉӧO×FÒòˆ“@ñt344LLL¼~ýz¦ Ð+V¬˜6m¿}ÈË(@g›cÇŽ¥è‹·uëÖªU«Îž=;..Nžö믿8p`Ù²e...šW700ؼy³z¹çñãÇÛUúöí»aÃSSÓliüáLJ ’búC•?þøCz(ö¨¡½oß>gg爈õƒ=¬²`Á‚‘#Gúûû‹‰;vìP/@ïÞ½;EõY¸qãÆÅ‹ííí¿ûî»ãÇ�«Ï ^½zõž={‚‚‚ÌÍÍ¥ füËq111"ÿéÅä{©988ddkÑÑÑ®®®›6mRoÀ •_~ùÅÑÑñ½iïÚµkRR’úÄøøø;*ëׯ¯S§ÎŠ+š6mšzÝl9êiÀ‡xõê•““Ó‘#Gä)â9"&^¿~]\*nnnsæÌI1CšOÑBéá™3gäâ© jíÚµ)ê§Ùx©ä®–@ц²eËŠ—???~•PÀP€Î6.../_¾ ÓS•i¤‰S§N•‚¢E‹Ö­[×ÂÂâÊ•+>T*•£G�n×®]•*U4¬¾iÓ&)°¶¶®S§NBBÂ�7¤e¶oßzðàA±ålù�ºuë&וlmmmllJ”(!¦ˆ]\»vM¾Ã˜†ÚÓäÉ“gÍš%/P­ZµJ•*ÅÄÄ\ºtéÍ›7W¯^:thšY°`Á’%KÞ½{'=]ªC 0`Ú´i+VTŸûøñã=z\ºtIÃDfΜ)Å:t˜;wn�:u¤‡¢‘7nLÑÍV&–ܰaƒü°uëÖR‡k93•+W^¸paçÎ�E&=zT¯^=±Í5jÈ£dtUI½… &tìØ1S©¸ÿ¾žªÜÿÞ%“““ûöí+UŸMMMçÌ™óÝwß*THOUÔgpèС111š7"ÿñÀÈÈèÔ©SêK8{öìÔ©SOœ8ûÕW_ݼy3ÅyÉ–£þ�dM|||¯^½¤â©��ÝŠ+Ä#ÏZ¿~½x¦¼}ûöøñã...^^^ï}~ÉÄÖV¯^­§ê#/ÕOSËÆKE2bĈvíÚ¥.ÔfY‰%4WŸ Xe666z™¬Ycï޽߻˜Ø¬x å—¹‚´ÖmÙ²¥oß¾ÿ˸¡á°aä;Ý�={VóºÖÖÖçÎ�+W®œ<ÅÈÈhäÈ‘vvv]»vMNN^»v­““SŠá¤3KúÚ{¥J•6nܘz®��ÍìÙ³Û·o/â4‡¾}û¶›››‹ÀÃÃC___žkaaáíí-‚47þ^­ZµÚ»w¯Ü¹|ùò���b�µk×ήáGÔ=xð@üLÝ—3µ•+Wž8qB… :zô¨úM E–Ämîܹsbb¢†�̘1#44ôÉ“'“'ONÑ“½yóæÇŽi{yûö­§§ç¼yó²ýxs¾?ýôÓµk×DPµjÕ?ÿüÓÊÊJžell,žuëÖ×sll¬¸lúõë']xy–‰‰ÉÇœ“{,` ”IÏñÈÈÈL­e¥Âo�•wþËz¦œÔi!i@ôI�VõUI1±råÊRðôéSÍ«/^¼X½úü¿·F�:9;;Kñœ9s>°‘R×ì—/_>þ<ÍZµjU­Z5…BѳgÏÔs§OŸ. âüÉ'Ÿ¤¨>Ë–/_.ÝQ0Sììì:”b4ŒâÅ‹7iÒDêkœíDôÔú§'11qöìÙòá«WŸe:tèׯŸæíT¨Páøñãi.)29|øp)¾|ù²6Ž7‡ Ò»dÉiË›6mJ³tظqã3fHñ¬Y³x Ñ‘JÏhñJω9ÀÖÊ,å¿TÈÙ‚ÐÚõí·ß¦ž(|yàãôtéÒ%½Y?þø£ô}ù'N¼|ù2 å]™£££§§ç«W¯êÔ©#ܦM+VL^ÀØØØßßÿíÛ·fff)Ö}óæÍÞ½{¥xΜ9iVŸõT£Á╤À'Pþ“Rdd¤¥¥%ç9ÆÄHt§rLB ÛQ€Ö.‡Y=Í!/$¶¶¶µjÕòóóKJJº|ùògŸ}–å½Ì�;×ßßÿÏ?ÿ|öìÙt=ÕÈ5TêÖ­Û²eËŠ+¦®> W¯^•º?‹ö4kÖLÃ^Z·n�©tÍš5Û´i“ÃçK*³j„Wøë¯¿¤ [·nÆÆÆé-¦a–ºäää}ûöíÚµëĉÒ=ârXŽ5À××W 4üeE(\¸pÛ¶mE“”JåüѧO^I | ¤ ..Ž�œ$~Ï/bL@{(@k×{sø•+W–†o–zãf™¹¹ù©S§vïÞ=oÞ<ùfƒ�UŽ;&=lÖ¬Ù”)SäÛ�ÉÄ2RP¥JÍ{I³~­AšÃ}hýù`h˜¤¢y±ÐÐÐ õ{íܹsêÔ©¹u‰ædBBB¤ |ùòš—”�/0ìÊ_Ñö—®—þ2ºœ×€<®I“&$è|L©Tfצôõõ{«„……ýñÇ—/_¾uë–¿¿ppprr²žªëeÇŽ]]]ùåõ~Ù††ÿ^BrÆìR©R¥œOi‘"EâââÞ;4Šœùô†É wwwõCnÕªUõêÕkÔ¨aoooeeuéÒ¥víÚiïxs¸rÞÞÛËU^€�u$�Ò)ô´_€9Œtž«a<â{÷îI���͇ì%99900°bÅŠFFFVVVR%ZšsáÂ…mÛ¶mÙ²E4fÙ²evvvcÆŒ‘וw¤y/™ýf}š7XûpÉ*rÝ<33³—/_ʵ°ôX[[gä¨4Ì=|ø°\üýüóϧM›–zTßì*ë§yÔ9ÙIÙ²e¥ÀÏÏïË/¿Ô°¤Ôµ_(S¦Ln=û4_*¹¢'P¼Ô詪ϸä ó´ß~û­oß¾iÎ ð÷÷�‘‘‘†Û‘eDëÖ­Ïœ9S½zõk×®¥¨þ˜™™µUqwwoÚ´iTTÔܹsÕ ÐõêÕËÄÄÄܽ{÷æÍ›Ƽ>|øp¦Z¥aüë,{üøq³fÍ"""6mÚ”æeÊ”yôèÑ«W¯4oGíúСCJ¥2½¦j>ämÛ¶IÁ7ß|³nÝ:í]EéuŽ5@Ö¤I“ 6ˆ`ïÞ½3gÎLo±'Ožüý÷ßR,®ºÌîE곯íKE²páÂqãÆeãw,--CBBÒ…¼à%P& kýæ‘óâãã÷ìÙ#ÅâZåO �í(@çik×®M¯-Ý*POÕwµX±b²—3gÎè©*Ú[·n4hPšËÔ¨Q£C‡;wî {ñâE©R¥¤éâ³z×®]ÅŠ"þé§ŸvíÚ•æê¡¡¡9SâÔS$uGæ_ýUEwß¾}iÅìììΟ?ÿÞas›7onii.–Çîää”z™W¯^mÙ²EÃF"""¤@à å4÷¡þÀ£ÎÞdD÷îÝÝÜÜââânݺ%.GGÇ4›5kVbb¢žêÏööö™ÝK```\*’‘#G~öÙgÙR±•”,YRÃ=0 ^eÒ“®bÅŠ¼ì#‡)•J©¾^¶ldÊÓ§OSL N1…?Ñ ÿ¢�§�8qbûöí©kÐk×®ÓõT#$Lš4)õŠ?ÿüóüùó-,,6lØ w×}¯3ftêÔÉÒÒ2͹wîÜ‘‚·üñÇEc’““wïÞ½lÙ2WW×+ÆÇÇ÷ë×ïÍ›79“4y˜ÿîÝ»«Ï:yò¤ØÙ¥}2iàégÏž‰ÃÑ0¾³‰‰‰››ÛäÉ“Eüý÷ß‹ §.œ 2$<<\C;åA®ÅYNÑNÙÑ£GµwÔÙÕ€±cÇ®[·ÎÚÚzÓ¦M 4क•Õ°aÖ,Y"bq�Ô¯_?uÞ<¸råJ)ž:ujšÛ122’*ã¯_¿.]º´ú¬¤¤¤¹sçæÀ¥"166þøã�sì¡à%P& kÔ¨ÁË>”‘?Ôñä_ú¤ �:t¨úH/^¼;v¬˜(=œ4iRêñ7NŸ>=a„ˆˆˆ»wï~õÕWïžyÿþý¶mÛþùçŸ)¦ûûû÷ë×ïÆ�zªoô§–ÚÁÁá‡~�â‘#Gº¹¹©^ź­Zµúã�?r,cŸ~ú©xxxÈ#áŠ�m‹-Ú½{·žjp�ôê­õë×?S÷­ÙxÔÙÒ€�;wŠ]DFFÞ¾}{ðàÁï=;sæÌ‘ŠŒÏŸ?yûý÷ßåYbûžžž}úô‘>c2¤k×®in¤\¹rR°fÍõéâ¬uëÖíÔ©S9p©ä–™@ñÊ­§6¸ (0è�mÂÃÃg̘¦>qàÀ�úúúÿùϬ­­gÍšuóæM¹/pdd¤Ô»¹\¹rS§NMѳXÓ©S'‡Ê•+?}úôÆ�ïÞ½“f}õÕWR'Ü.]º$Ç�=ŠˆˆH¯Ssj~~~­Zµ²³³«T©R‘"Eĺ·oß– ÊFFF?ÿüsêµÄ�ùøøˆxéÒ¥k×®­U«–8ÞàààëׯKË+VLoêu¯]»¶dÉù nݺ%sçÎõòò’«O˜0!#ßÐ)�9s¦h�h|ݺu4h`eeåïïÿþ}i�aÆթS'Íuåú×Õ«W5÷Ü,T¨Ð®]»Ú´ióüùs‘äŽ;ŠŒU¯^]ˆ¯¯¯|8’ÀÀ@éD‹´ˆ+AÞ×СC׬Y£T*çÌ™³xñbÑ*‘´¨¨(‘óÀˆó.N‡¸� .,¶�ºÔ›…£Î–ˆÓ'/#®mqú4wbyÛ½{·H×ÇEÞÚ·o/ò\³fÍøøøË—/¿xñBZ¬mÛ¶R?ß4õéÓGê¥;eÊÑ~±ºØ¬ØÚ•+WÔ;ˆÉÏ/qPâùU¼xñl¼TrK�L Ø¯daÄj�ÇüôÓOd![ÌŸ?Þ¼yþ*òÄ[·n‰‡/^4555110`€xx÷î]inbb¢´¼¯¯¯½½}ݺu¥éÓ¦M“OOÏ“'OŠÅÂÂÂnß¾ýäÉ©ª‘‘ÑÌ™3/^œæ0IIIÒ�ÊôTßÿñÇ5·\ÚÝG*Òý÷ÄÏû÷ï‹=>zôèíÛ·ÒbU«Vݹsç'Ÿ|’z ¢ŽŽŽ†††çÎ�KTM½sçÎóçÏ¥œœœ¦L™"ÝõÎÆÆÆÙÙY^·ÿþ{÷îõÿ/yw>ôWsùòåwïÞi­X&šñÙgŸ¼cÈwÔ?�º¸¸XYYél*(@gccãÈõSu%K–üñÇëÔ©#Hs\`›Q£F•)SFz( wíÚ5dÈ=U�éÍ›7&&&5jÔ8p ——Wz_®*T¨`ffvåÊ;;»­[·Ê›MOHHȽ{÷Ö¬Y³dÉ’*Uª(•ÊwïÞÅÅʼnYÅ‹wppèѣnj3<<<4ÜG¡P|òÉ'¢mæææÑÑÑb bŠX¾wïÞžžž#GŽ õööÖKU€ÇuâÄ ÍãKE‹ýᇪU«–‘saii)ò&’)·ÄÑÑQ´DìZsEìÑ£G¾¾¾"ÈÈ€ß|ó�h•Ø‹8õ"iâ\‹<üç?ÿY¹reýúõ÷ï߯Þ)¾råÊãÇ�/T¨�œ´:ˆôEEE‰-èëë‹-|üñÇÝ»wŸ={öܹsûõë'.-‘ÒØØX‘%±Àرc›7ož-Gýá ¨^½ºX1 @\™bwåÊ•kÑ¢Å{óV¤H‘¯¿þºQ£FÉÉÉbuÑZ± qíõíÛW\‡b–†¸¥çÚ€jÕª•””$®Ñ0q�·mÛvÊ”)âx/]º¤~'=‘™‰'¦ìøÃ/•\TÀèîî.ž&nnn-[¶Ôö¯| ÐH�4ò Ðh™‚[šäųòߪͻwï4tcÌ_NŸ>-�Û¸qãóçÏçÙv^¼x±Q£Fâe‚BU¦téÒ¥}ûö#GŽ$ȸ���òåË‹àÞ½{•+WÖÆ.üýý¤xË–-¼/"tD\\ܦM›¤xÀ€&&&ä9/#ñŽ ßQÿ4zóæÍš5kêl*èéü? 6¬\¹r``à‘#GúõëGB2îéÓ§òè"@íØ±Cül×®�–ªÏ�÷íÙ³'Å”÷Žgä# �”ÆŒ3bÄ/// Ð}óæÍ¼vË>äqJ¥rÕªU"7nÙ ³¬­­SLÑ0è�ïè“ …Áƒ[ZZ?~<((ˆldÐáÇ«U«ÆàÈ”cÇŽÖ«W¯}ûöd€‰4�R¡B…&Mš¤T*,X@62BäjáÂ…ƒ "ÈÔe#žh …bÙ²ed¹ö6H_¿Âi¾{' k‚HÈ#6lذvíZwww{{{¢ÙöíÛÃÃÇN*�q>>>—.]rvvÎÈÝ·²KíÚµuù¶HSË–-Ihè¼",,læÌ™â§úÄ�êëë—*UjÒ¤I¥K—Î�Çuäȑ͛7'%%ɇØ·o_=Õˆ‡S¦L)Q¢Dl¶��ÁªU«š7oîîî~àÀ®O nß¾íââ²iÓ&²� 5jT•*Urø{3êY\#ÿÈ2å2'’™B:¯X±bÅÒ¥KSLܹs§XXXL›6-?—³³shh¨ú”ˆˆˆ;vH±��ÝÈ‘#ófË5jäáá!š·nݺ!C†p‰¦§ÿþcÇŽíܹ3©@Æ :466ö�?þ(V¬Ù c¸Ã¼¢C‡–––iβ°°øì³ÏòéqõéÓ'½Q5­­­[µj•—ïêêêìì.Öÿék)Þ}õ¡±‰)9л^’��è РЭ  РƀºËØØ„$:+,4$õÄà’ÊÔmmmI@ÖP€:ÊØÄ´û`òè,×.-Ó˜˜Ö’J¥’td Cp´‚4@+(@´‚1 €ŽR*• ñqRldl¢P(È d/ Ð@G%ÄÇíóò”â›˜’È^ è¢eΤžØÉÁ†Ìd# Ðt‘U™r©'ÚÚV 3Ùˆ›´‚4@+‚ +:ߪiC ‹Õ‹¿gðTŠ{™\351&'ôü¯ärjöà$€‚„Э  Ð †à€œü$,íE‚SO³µµ%c Ÿ¢ 9­b‡a_X©T’1�O1@+è tõm��Aë†rLB û?y‘ £oƒ Z7r  = ÁРЭ`ÈiŽ®L{F•$$ €ŽJLLúëJ€·¨WÝÐ�ûÈ9¶e­Ò™aKr@ABè¨Ä¤¤ÓoJq“ÚU(@@¶c h€VР+ž™9+V•<@ezAŠ›×755%'€:’€Dh€VP€hh€V04 ëBBBROLLLL=ÑÖÖ–t ã(@º®Y³f\R©T’.dCp´‚4þ�½;��éÜ?>ÙƒX#©XbDl­¥µ+µÄRÜ(E…^.J ’êE±ß+Jk‹J, j½¥–Úbi mc—R”„ ¡‘�=óþsî=�_–‘ÄœIÌ|Þ/¯xælÏs¾ç9“ä›gžŠ  Ps@3eggçãã#—  h`¦,,,ìíí‰(‡4`î"##ó.tqq!2xA$ sW«V­¼ kÖ¬Idð‚x!@Œ€f*---,,L*�9’ù ÀàH@ÌEµjÕø89t¥¥¥ÙÙÙIeÑ7H@€Á‘€˜‹€g*ž~D ËÎL¿z6V*_ZwÂÊÆŽ˜¹lÙ� àE04@$ Š  Ps@P=}x?˜¼ Õj5á@!‘€ Ú7yPÞ…u&ç³¥F£!\($¦à(‚4PöïßO`n>þøã~ýú¥¦¦ Ì hÀØbccÛ·oI(`n‚‚‚âââºvíš’’B40$ £º~ýz»víZµj5kÖ,¢sS®\¹½{÷ÆÅÅõéÓ'==�€ ÄYXXUr­'ýeG0ž¤¤¤>}ú¸ºº†…… ˜'ggçõë×ÿðÃþþþD%ÿc�µu�f¤¢L@Ààø] 0’œœooï;wîìÙ³ÇÆÆ†€ÀluêÔiüøñ‹/îܹó Aƒ”½lÉ»pù –D/‚4`$«V­Ú»wï’%KÜÝ݉ÌÜŒ3Ö¯_ïçç×µkWGGG¥A¹ª.yªÕj"€Á€1}šwUíÚµ�=Z§N�"pÊ”)þùççŸ^â“oDFFzyy%$$ÈK†ÎE‡‘�3&((hÕªU���â¶" (šœì¤¸›R¹bM7 KžCFÈÇž={òÍ> ±±±‡úðà ´Û·o‡‡‡;99 :´ÄOM4^7û,lذ!44ÔÎÎŽëc*_¾ü�!C¾úê«Å‹/Y²Ä8•~î°£q…J²´Œì¿^’Ê“ë7±·% ä±-´Äª~o=á0$ �|LŸ>½L™2)))º ú駘˜•öq‚E:ZpppVV–··wixö ��Obbb||¼(oÙòßg i4s»Äëׯ¡¨W¯Þ‰'èó%À#F|õÕWkÖ¬™;wn¹råˆ*¦‡4�� „†æï3|øp)]$©©©ëÖ­…aÆ•†SsrrúòË/¥²œ€6CëׯöìÙ… "##===éó%À–-[Š™��°sçNooo¢ €é! (kß¾}ÉÉÉÎÎÎÍš5#¥‡<Œ½¨ãÙaÀZZZvïÞ}Æ [¶l! æ,&>%¿¥1¹¨ÕjbðÒ! (këÖ­âkçÎ�-,,ˆ�Ë[o½µaÆ#GŽdddØÚÚ0OuÆý'Ÿ¥yšá¤a&€4  ñkÒ¡C‡D¡C‡DÈKúdÀÓ§O£¢¢Ú¶m[¤}ãããs=Q3_7nÜ Î”ÐJ‰ŒŒôòòÒMŽ 2dãÆ�üñGXXØ�®\¹’””T¹råÖ­[Oœ8±S§N…ÙýòåËb÷cǎݺuëÙ³g¯¼òJûöí?üð÷ß~[‰³øí·ßÂÃÃ÷ïß+Z[©R%�¾}ûŽ9²|ùòÏÝ=99yݺu»víºxñâŸþ)Nö�7Þðöö¼Aƒ…¿›ŠÔ1Ĺ„††æ9%êÍ[£ƒƒƒh^ÿþýKí;ŒÉPÜÖÖÖYYY.\(jzÅŠAAA|» 4#­”ƒæš·iÓ¦ Ì›7/==]^ÿÝwßíÞ½{Ù²e>>>úw·²²Ú°aƒn(..n³ÖàÁƒ×®]kooo¨ö?{ö,00põêÕÙÙÙòBѤ£ZóçÏß¾}»þQ½;wî5jTbb¢îÉîÓ öóó‹ŽŽViŸƒ'' ó=ë5kÖØÙÙI/üñG9G&ˆ¶…††æ›€µôíÛW·ñBFFÆoZâ˜M›6]±bE›6mí‘‘‘RÁÃÃã¹—`›CBB>ýôSqÑ�е?~ìííýý÷ßËKÄ!^¸pAt Ñ»rMÅ`�Ž!zZá?·›’’"nÌÒ™€6±Š6Ô¨Q#66öÒ¥K|ãÀô�€VŠ��Ï£G�âããUÚÄ�´pÆŒR¡|ùòÍš5stt<{ölll¬F£™0aB×®]ëׯ¯g÷ððp©àââÒ´iÓÌÌÌ‹/JÛlÞ¼ùÞ½{{öì)ÌÀäçÇìÕ«×™3g¤—*T­­T©Ò�;wÎ�;'Z+6­Ý¶m[ß¾}ó=ÂgŸ}6wî\9]Õ°aúu릤¤DEE=}úTdôèÑÒ*Ý”V¾g­»ÁÇœ••õäÉqq²ª‚€¦›:oÑ¢E�5ììì?~|ãÆ�ímΟ?ß¹sgQKA§`R’]„®råÊÏݸÛùDÿ¹ˆ¦Šz 8¥³³óí۷夰ÉP&% E³ùÆ€é!­ggç/¿üR*ËÁÒÒrÚ´i���*T/³²²zõêuèСÌÌÌÕ«W/\¸Pÿî5jÔXºt©———4ƒØ+$$dÒ¤Iééé?üðC@@€8È ¶\³ÿþRöY4rþüù#FŒ(S¦Œ´öæÍ›£F�:zôhFFÆèÑ£Û·o_¥J•\Gm˜3gŽTîÞ½û‚ š6m*½LLL�üúë¯s�óÕÖ277·¯¾úJõÿŠ#¥É "gKmllDku“§'Ožœ1cFDDDZZÚûï¿ùòå:uê(Ô D¸TÚ?fã’msÕªUEð $º¨B]Kôѵ¤ä©¸”+V¬ÝC^µfÍq_<{öìðáÃ>>>ëÖ­3lÇè«%¿ìÔ©ÓñãÇEaòäÉ=zô(ÆéøúúvíÚµ ?�CåÊ•õgŸM,€²š5kªŠ5S³8Í÷Þ{ï¹›‰#‹÷L¾+P"H@ÛÆ�ü×°¶;v¬ôœº“'Oêß×ÅÅåÔ©SµjÕ’—ØØØøùù¹¹¹õíÛ7'''44ÔÛÛ;×tÒE|âÄ •v0ì±cÇ6l¨»VÔµÿþ¶mÛž9s&>>~Á‚ÿþ÷¿u7¸zõª¿¿¿T…Å‹K M‰££ãúõëEá믿V4γgϾwïÞÝ»w?ûì³\CwÛµkwðàAOOψˆˆgÏž­\¹2×)Э[·Ä×¼ãCK[›+V¬øã�?ê^k%ºÖÌ™3ÏŸ?/ 4øá‡œ��åU¶¶¶âFhÖ¬™¨"--Mt’!C†ˆó-Í÷²��Ýk¯½fÌM,€2éóIIIEÝÑY‹o+`n-{7Ÿ¥ï,"2&À’Ó`­\ ÝÝÝ¥Âýû÷õï¾dÉÝìó_?œ¿óΨQ£¤òüùó_¤…OžúH*Ë3�(áÑ£G*�¡Í¥¶Íâ¢ç{­ صD(¾øâ éDÂÃÃóͶjÕjöìÙRyîܹ¼c˜I¥Xˆ÷�ŒŒ .4ŒÌÖÚr¬géŸ( ¤¨�òù—�x1Ú¨>üðü ¥¹8„ÔÔTý»÷éÓ§ US¦L‘>AñèÑ£b§w÷ìÙóäÉQè¬UÐfb•““SBB­[·®_¿^¯^=iùÓ§O¿ýö[©<þü|³Ï*íü°#FŒX´Èx£Z4Ío¿ý&šúûï¿ß½{799YšCj³rõJ/ÞüŒÙæ|SÞ†íZ»ví’r(:Ï›o¾YÐf>>>³fÍ'ûã�?>xðà•W^á}Ãä(Ïð“””$ÞX¸Ö0&KK‹j•ÊP h£òððx‘Ý¥yŸó¥V«›4iréÒ¥ììì3gÎtëÖ­xUH“º <È;X[—<õm\\œœ€>wîœ4üY´§mÛ¶zvïÔ©“Т‘;wîܾ}{DD„ô6#“2Åú'ö- m¶µµUºkEFFJ=GÊ–-Û¥K�F#zãÀ�yß0ùZYYI…ôôt.4&†´Qr*†âqww¿té’(ܽ{·Ø‘÷�Ö*Ì.ºIÒ¸¸8©P¿~}ý{988(ím۶͘1ãÊ•+%yƒY[gk½DmV¨kݹsG*¸ººêßRÞ@îN0íÊþ(W®CÚth4š?HáS¥’š5k¶jÕê¯þdýß%i,)‹/–_Ö­[·cÇŽ�5zõÕWëÕ«çììÕµkW¥›Q®\¹ôôôçN®RªÚ¬P×’òÜQ®òÌl&”>6¡2JúBµAɵÜèN^PëÖ­ PH$ _&iiizf¾~ýºT¨Y³f±«�÷ .öî¿ÿþ»þ-ý¬ý¾}ûäLnÏž=ƒ‚‚òΙkœ¹ƒƒÃ£G�äüZ©msVV–žµéZ5jÔ� —.]4h�ž-¥ÑÖBõêÕKê^ËÑ’ÿ R˜pSRRTÚ쳞©`…dddìÙ³G*÷îÝ›NGúe²ÿþ‚æe¾råŠ4c†���ž”=W‡BCCEaË–-óæÍ+ê¯âÍ›7wppHII¹víÚåË—õÌy½oß¾ …<u¾¾ùæ©ð�ü#,,¬/YõêÕoß¾ýøñãçnY²m>tèP¿~ýíZ­[·^»v­(|ûí·sæÌ)h³»wïþüóÏR¹M›6†í…×¶mÛÄÄÄðððwß}· Í-Z4iÒ$ƒ —899ݹs§ ÃM/€²{÷î©´³�ó&ã·ð£G�ä2ƒ#ý2 -(=kÖ,©Ð³gÏŠ+»Š~ýúùûû'%%ÅÅÅÍ�;7((¨ -#""FŒQ¾|ùýû÷תUKZhkkÛ·oßM›6‰òÌ™3·oßžï¾÷îÝ{Áë�7ô¬MLL” z×–™™i„KææævúôéÂLÅ[²m—£ ´¡º–———èZééé¿þú«è Èw3Ñë¤áØÍ›7—ni¨ŽñÞûþ787ïøôï¾ûNšpyçÎ�zò§~~~ݺu3HÆVR¥J=Ï«4½Ê¤¤N�:¼É(…îß¿ŸwaLLL¾ó·4 /Ð/“ˆˆˆÍ›7çÍA‡††Šå*í Ó¦MË»ã¿þõ¯… :::®]»¶mÛ¶zª(_¾üÌ™3'Nœ(ÊsæÌ©ZµªŸŸ_ÞÍRRRFŽ)嘢¢¢ä´0eÊјœœœ;v,[¶lܸq¹öÍÈÈ2dÈÓ§OõŸ¬���”oýóÏ?«U«¦»*;;{Á‚zö­[·®1//¯|·9pà€.™Ô’?þøCÄÒÒÒm sqq ã�7 Ùν{÷~ûí·ysÐÏíZ…¯ÎÙÙyìØ±_|ñ…(‹^Ñ¢E‹¼ Ç={ö„„„Hå3f¼cè’g´ˆŽŽÎð#GŽH77}“ÛÚÚ¾öÚkF»ýM/€2)ýꫯò& *ÌÒdŒ£ò²$/—Ñ£GëN^ñðáÃÀÀ@±Pz9mÚ´¼“$;vlòäɉ‰‰×®]{ÿý÷Ÿ;`s„ C‡Ui?Œïïïß·oß³gÏênÝ­[·ØØX•6 Õ«W/ݵÿüç?¥²ŸŸŸ8BBB‚î¾;v<~üøsÏTNj¯^½ZwyLLÌßþö·£G�êÙWœ¦TX¾|ùÔ©SåÁÅ’+W®ˆ\´h‘ô255Uÿ È/¢E‹*í Ë •2l›·mÛöùçŸ'%%]½zuĈEjêðáÃuÜ…éZE­nþüùR’ñÁƒ�:u:tè�¼JœÎÊ•+(ýê>räHÑñ Þ1t½ýöÛRañâÅò¤É¢vqF;vìe ‹‚þPRL2€7oÞLNNý/)F@+%!!aöìÙñññº ?øàKKKGGÇO?ýÔÅÅeîܹ—/_–Ç'%%I£›kÕª5cÆ ‡¼‡MIIyç�w<<<ÜÝÝïß¿ñâÅÔÔTiÕûï¿ÿÙgŸåÝ%**J.ß¾};11ÑÉÉIãÃÂÂ233·lÙ"Ê»µj׮ݸqc›ßÿ]´YÚÌÎÎî믿Î;i€8q±ÙÖ­[EyéÒ¥¡¡¡Mš4çsáÂi›Š+ŠóÕÓ†�Jƒ1§OŸ¾zõjQ{™2eDûÏž=«;¼Hš8¾Z¥J•TÚLÖèÑ£Å^bËùóç/Y²¤iÓ¦bƒ'Ož\½z5ׄ"†åÊ•¥lÙ²âºH‰T±Ypp°ôl4ÙO?ý$ÇçØ±cº«ªW¯.Ú)Õ®KΩ�;wNÿhÐo³pþüyyq™~ýõ×Â�*õèÑC\©ºuë²kµ:qwìØ!j‰��—ÒÓÓSÄD\ÙŒŒŒ3gÎ<|øPÚ¬K—.Ò8_ƒw ]bíœ9sDGwD³fÍÞxã ggçèèè›7oJŒ;V\‚Rõ®b’”ÿ¾UŒ«@éGZ)Ë—/_ºti®…Û¶m“ •*UêÙ³g®¤^ZZš”óUi?�žwHéÊ•+RSS/kÉËmll‚‚‚¦L™’oKZµj%—ÝÜÜž›}ViçؼysïÞ½'L˜ Å�ÕÒݦnݺk×®íСCÞÝ­¬¬ÄîMš4™;w®8)Ñ`ù©hooïÁƒë™ìX¥rûÓO?Iã1ïhé®uuu½}ûv® 5lØp̘1R9$$ÄÁÁá‹/¾ÈÉÉ 8uêT®ã7mÚÔÞÞþôéÓ*í¬ Ò � .”Â>{öli&ë|EiåZ(š$•k¡ˆvýúõ¯]»vîܹþýûëû ¶Y¥�öWw{@ýaq¥²³³-,,V­Z5~üxQé%­Bv­¢V']£_~ùE\}i–†›ZòZKKK??¿àà`y~aƒw ™ˆäîÝ»Åm(:¶‚üוv讯¯¯žn 2½JoÍš5svvæ¦ÇjæÌ™DA ¶¶¶»wï~öìYÞUUªT™2eJÓ¦MźÓSÈjÖ¬9~üøêÕ«K/å'nß¾}äÈ‘¢ðøñã§OŸÚÙÙ½úê«|ðÁºuë ú¸½P»vm‡³gϺ¹¹mÚ´I>ìs½öÚk¾¾¾Ò¸]q"iiiÖÖÖ®®®Ýºu›>}úŠ+ô<4ÌÂÂâ­·Þm«P¡BrrrjjªX¢V«ß{u+WúùùÝ»woýúõÒÉŽ5*ß6¬I“&ÙÙÙâdEíVVV¢ñ]ºtµ‹ƒDEEé>0ÍÉÉiêÔ©òœ¶¢ºîÝ»÷ë×ÏÆÆæÉ“'¢ý–––"ò⤼¼¼æÍ›·`Á‚!C†ˆZDóÄÁ³²²Ä���íÚµ»§§§8p ðýõ~öÙg¹fԕܾ};22Rž;IÅ ¶YhÔ¨‘ØñÊ•+¢cˆhתU«}ûözjm;þüðáÃgÍšõ÷¿ÿ½¨]«¨ÕIÊ•+'êjÙ²eNNŽØ]ô qFõë×2Ω¹:˜†­[·FEE�5ªHO÷zq¯¿þº9?öã#]JÅÇÇÏ™3G|Õ]øÁXZZV­ZuÚ´iÕªU{Ïëûï¿ß°aCvv¶|j7nÜ}úáÇwìØÑ A¢�’§ÉQ=Iøï?Q# K©6mÚäšÃ4,Ö2ç+»råÊÌÌÌ=zœ:uªfÍš?¾‘“zäQ$kÖ¬Y¾|ùáÇ[·nM4P*dg©®þðßró>*k[B†E0î-gm½víÚO>ùÄ××w×®]f¥^½z§OŸVú9œ@$?T¥?û«le“w“˜˜ýÇP«Õ B06 ‹… ˜¡:”.›>ù«|ñ@¾›Ô Ÿ¨ÿ�†@@A˜ ÐE�€(‚4@$ а&ÀL ù·êrÄË]TV6y7¹5Ë‹8@±‘€æª|U•]Ù¿ÊÖ¶y7Q«ÕÄ Š�)8Š`40W–Öªzmþ* �ßµæâr•Ù��¬ˆþ�Wž·A�Ï 3’ˆSpA ÐE040SYšÿ\É…„§9ÝÝ­m­,ôm£ÿhjµš�@.$ €™ÊѨ®>Ì… ã*Uús¶þ¢Žþõ�†�@.LÁP h€"H@A ÐEX`æÆ·²ùè [;k }M¸D  ¨H@sWÉÞ¢v%K{½ hµš@@Q1@$ Š` €¹8è>ûJ­ZÄA�˜ÕùZ¤§WZ¹ò¿å�>RÙÙÑÀ°H@3egg7aÂâÊa €" €Y‹��—Ë111º«Ôj5ñ¼И5__ß‚Vi4âx$ €™Òh4IIIR¹bÅŠÄ ‹40SéééK–,‘Ê“'O¶··'&`X<„ ÐE�€(‚9 0kË—/—˽zõ" " €Ysvv–Ëjµš€ ˆ)8Š  P h€"˜`.<==7nL0F@Áh`®?Y[÷èÑC.0üo^„˜é�AÖÖ­[·& ¦à(‚4@$ Š`h`¦233#""¤r—.]lllˆ  h`¦²³³OŸ>-•;uêD Ž)8Š  P h€"H@A ÐE�€(šÌÄ�_ïýšî@ ËHO‹¾ÿ§TÞq.ÖÖΞ˜€a½×¼6AÀÌ1 ÐE00S¶vöÇL$ð‚âïÝ)hULM¾ËÕj5qÀL�€߸> \UÀr�FCÜ0LÁP h€"H@ÁÐÀLe¤§í\·R*{ ÿÈÖΞ˜€a1 F@ŠoÙî ZõŽGM’# (>çêµ Z¥V×&>˜9¦à(‚4@LÁ0Ýmml—B KSe\·º/•ûÛ�··³%&``ÑgÍ÷Ü÷ãú b4@!$ Š  Ps@PL1wãó_Q.&ï2µZMÄæ†40SV––­_¯/—  êt[ø�5 ˜ÐÀLÙØX÷hßœ8€rìP h€"H@ÁÐÀLeeeGEß�Êo4v·¶¶"&`X$ €™ÊÊÎÞâœTnÚ° h@1Ü:’ÿŠúÝ *Лº†s+Ôs@B ¦à˜‹?<*Vl@ KKK{bÿ“TŽ«ÐÂÞÞž˜%¨fÍšÀô0 ÐE0ã¹sçN¾Ë³²²ò]®V« ÀË‹4ãiÛ¶m‘¶×h4 àåÅE�€(‚)8€™²³³9r¤\& `p$ €™²°°¨X±"qå0@Œ€`<‘‘‘ù.wqq!8¦‡4ã©U«V¾ËkÖ¬IpL h`¦ÒÓÓÃÃÃ¥ò°aÃx! h`¦4Í“'Oä2ƒ# 0ÕªUãóÝЕ––V¡B©,ú†½½=1ò$%0`.vœ©xúq€,;3ýêÙX©|iÝ +æ€`H[Gv Œ€(‚4@LÁðôá}Ý—111º/Õj5!fˆ4À¾Éƒt_Ö™üÖj4BÌSpA Ð@ HHHØ¿?q€¹ùøã�ûõë—ššJ(PJXXX–w©-ýeÇïZ€±ÅÆÆ¶oß>22’PÀÜÅÅÅuíÚ5%%…h TüdmãÚ²‹ôO” þ7/BÓõë×ÛµkתU«Y³f ˜›råÊíÝ»7..®OŸ>ééé“gM£IJJêÓ§�««kXXÑ€yrvv^¿~}—.]üýýW­ZE@¦¤×‚-º/—jILH@F’““ãíí}çÎ�={öØØðAo˜¯N�:�?~ñâÅ�;w4h˜ŒrU]t_ªÕjbÀ€‘¬ZµjïÞ½óæÍsww'0s3f̨R¥ŠŸŸ_bb"Ñ@ Òäd?¹+ýeG0†L�:U­Vûøø  bÅŠS¦LIHH "(A9ÙYw~Ž�þ‰2ƒc 3²bÅŠ€€ùÁ_öööK–,3fLaö�4iÒW_}åêêºnݺ-Z”Hû Õ†‰C±M™2åÏ?ÿüüóÏKÃä‘‘‘^^^ ò’¡C‡†‡‡s�À˜ÄM´jÕªÀÀÀÚµk§ÒÏv4®P‰àC––‘½Àî’Tž\>ÓÞÖŠ˜0¤m¡fqšï­çR=mFvíÚ%g]ÿÿoÝiië×ê‡Å#GŽ?yòäòåË}ôQ‰4Þ€m(vŠíöíÛáááNNNC‡- =áСCºÙgaÆ º1Œ |ùòC† ÉÈÈX¼x1ÑÀT1ÚŒ,X°ÀÅÅ%--->>þèÑ£*ícñ ³£¥¥e¾ec2`Їb ÎÊÊòöö.%ÏôññILL§/Ê[¶ü÷Yí�ÆÜîˆõë׋PÔ«Wïĉ¼E?€#FŒøê«¯Ö¬Y3wîÜråÊRL h3Ò¬Y³uë։±cǤÄk!uêÔéŸÿüçÊ•+k×®R"�7`ЇâIMM•ª6lX)é NNN_~ù¥T–ÐfhýúõÏž=»páBdd¤§§'oÆ`Ë–-EoLHHعs§··7!Àô�€F¡,Т Űoß¾äädggçf͚ёJyä»ÒCà `A,--»wï¾aÆ-[¶�€à%Ÿ¢ó"Fú_­V� h@Y[·n_;wîlaaA4€\Þzë­ 69r$##ÃÖÖ–€ðR¨3î?½ø_Ù §t…AP�ø)üСC¢Ð¡C¢ä%}2àéÓ§QQQmÛ¶-Ò¾ñññ¹§™¯7ngJ èEFFzyyéf7† ²qãÆ?þø#,,ìÀ�W®\IJJª\¹rëÖ­'NœØ©S§Âì~ùòe±û±cÇnݺõìÙ³W^y¥}ûö~øáÛo¿mðS8sæÌºuë>'^º¹¹õìÙsܸqÏÝñ—_~éѣǣG�r-·²²úøã�õσ1lذ 6äZèâârôèÑ ˆ²(¼÷Þ{‰‰‰ÿ§#Z[M�:Õ m0TtýöÛoáááû÷ï���×½R¥J}ûö9rdùòå Ú+::úñãǢФI“BVtþüùÍ›7_¼xQÔ(*JNN¶µµ­Q£F»víD�êÝ»·r#©ãããCBBöíÛwíÚµ””E;§!®ËÉ“'ïÝ»W¶lYWWWq]†.õ“BÞ�òËo¾ùf̘1"\r?ÝiÖ¬Yºçšwlލ7o�¢yýû÷/µïQ¦@qkˆÛ?++ëÂ… EM@¯X±B¼oðÝ €ÒŒt�<˜klݦM›4h0oÞ¼ôôtya||üwß}·{÷îeË–ùøøèßÝÊÊjÆ ºé›¸¸¸ÍZƒ^»v­½½½AŸœœ|øíÛ·ïß¿//yúô©h›ª3»}ýõ×â|srr¶mÛ&¾ººº¶iÓ¦víÚrjüøñâh¢‘‡!ªP¡BÏž=mmm}}} ÕCÅA¥ýC¯^½Îœ9#½­×½R¥JwîÜ9wîœh‰Ø@\wq²}ûöÍ»{tt´ø*¶µ¦Íºiî-ZÔ¨QÃÎÎîñãÇ7n܈Ñ>ÝE4¾sçÎ"ÂùV÷"&Nœ(^yåqŽYYYJtNáæÍ›=zô¸~ýºôR­V7jÔ(--íÒ¥Kâ’‰z?ÿüsQõ®]»Ê–-«ÿ~Ôí ü±Ø÷É“'r?Éûdÿõ3Û;ïŒ5J*ÏŸ?¿ØÍËÊÊš7ožTž5kV¾wïÞ}È�!FˆUÿþý¥�´[·nÍ»VƒYµjÕÎ�;¼jƒÄáÉ“'òLÓ›6mÊ•}–ØÚÚÊYàíÛ·çÝ@šÆºð3WÔ®]ûðáÃW®\É·m"ž}ô‘T–g1q²ùž£¡:§�/¾øB:‘ððð|S‡­Zµš={¶Tž;w.ï9æ@éSiii\e^ jg‡¿þýaù"]4~øaÞ…Ò\BjjªþÝûôéSЪ)S¦H…ˆˆˆ|¾W‘‘‘wïÞGGGÿ‚6óöö6B¬ªU«&e~óff“’’<( ï¾û®•••Á«6HöìÙóäÉQè¬UÐfb•“““J;ØYž–WöôéS•v�â�ˆF£¹zõêîÝ»—,Y2iÒ¤±cÇ®ZµJ÷Ȥ'o�Î)ìÚµKzȡڛo¾YÐf>>>RÊþÇ|ðào;&@yZ›b ‚¥Sp�‡‡Ç‹ì.Íûœ/µZݤI“K—.eggŸ9s¦[·nÅ8¾4_„J;³­­mA›éYeXÒ,±±±§OŸnݺµ¼|×®]ééé*Åæß0H¤Ém…äö®Kž8..®^½zº«¤4±þY}ó=àÎ�;·oß!=5ÎôDà �S¥ýÀTÐó—¡lÙ²]ºtÐh4â*(ÔI^F¦@ù¯PÒÛ0%$ ‹¦ðs)ƒ»»û¥K—DA½[ ÷îÝ“ õë×/ áêß¿¿¿¿NNÎÖ­[uÐÒ¤NNN/8¡°¢q�¯B´VavÉ›,¶¶¶ÎÖ*|½Û¶m›1cÆ•+WJUÏñÎ)ܹsG*¸ººêßRÞ ..Ž·“ üÙ‘råÊ)]×…jƒ’k¹Ñ— ËÌÌ”>‘#xzzÚØØ”Zº?J/Ð¥ˆF£1ԤɗKœ4 ÇñãÇ·oß¾hÑ"iøŸþ©èü†ŠC‘²ÆBÍš5[µj•ka¹råÒÓÓŸ;7‹, `ñâÅò˺uëvìØ±Q£F¯¾új½zõœ��£¢¢ºvíú2vN݃|X¥äü†ŠC¿~ýüýý“’’ÄAæÎ�TЖ#FŒ(_¾üþýûkÕª¥»ÊÍÍíôéÓ…œ‡711Q*èyÄœr£×àJ@¤s ^^^"¤ééé¿þú«è Èw3mi8vóæÍs=Ô±0nܸQØ·¿ÿ ÎÍ;Dý»ï¾“&\Þ¹s§žü©ŸŸ_·nÝ ø±ý*Uªèyd¥éP"Ý uêÔá{èÒÿþiÀ?Š"mT›7oΛƒ ËUÚ ¦M›–wÇýë_ .ttt\»v­<¼7/;;;ÿÏ>ûL”?þøc±eÞœÎÈ‘#ŒyÖÒ,wïÞ=yòäÕ«W¥Ô˜róo*åË—Ÿ9sæÄ‰EyΜ9U«VõóóË»YJJŠ8””k‹ŠŠÊ•€®[·®øúÇäää|(J/§M›–wŠƒcÇŽMž<911ñÚµkï¿ÿ¾þá–âh�5Ri“ž�:uÒÍW>~üxذaß~û­‘O¹ÿþRîuÛ¶mÒüÕªU{ë­·­Ô q˜0aÂСCUÚI üýýûöí{öìYÝ ¢££»uë«Ò&ãzõê•ë-Z´Pi§WÎõ±Ù|‰‹+–/_>uêTy@´äÊ•+¢1‹-’^¦¦¦æ�µYDøóÏ?OJJºzõêˆ#Š´áÇëª0�³¨5Ο?_Ê3>xð@\—C‡É«Äé¬\¹ràÀ�Ò�®‘#GŠ€ç{9Ë¿zõjÝå"ÈûÛߎ=ZÈó}ûí·¥ÂâÅ‹åI“EíâŒvìØ!Êý% ¤˜^oÞ¼™œœ¬Ò™9˜F@(!!aöìÙñññº ?øàKKKGGÇO?ýÔÅÅeîܹ—/_~úô©´6))IÝ\«V­3f888ä=lJJÊ;ï¼ãáááîî~ÿþý‹/¦¦¦J«Þÿ}iÐn.QQQrùöíÛ‰‰‰NNN5»L™2Û·oïܹóƒÄÆ=zô¨[·n£F�D-‘‘‘r]’7nH nÒ¤‰8#yùO?ý´bÅŠôôtyIÞs”ˆh :4oâU—< Ç7ß|#͆,§¤õxÁ6$*íÄ™™™[¶låÝZµk×nܸ±��Íï¿ÿ.®¾´™��Ý×_�wò9§vîܹç�=zõêÕ�fþüùK–,iÚ´©èfOž<¹zõj®yËUÿðÃC‡ýå—_ÄËßµäµ 4ðññ?~¼J;é°Ô`ñÕÓÓSß*™ïÁuÏQrðàA9íU�Aƒ?~\žòB¼|nü_¼ /•vŽ…Í›7÷îÝ{„ Ò�äX-ÝŠêÖ­»víÚ:ämª¸Xõë׿víÚ¹sçú÷ïÿܳ qppøâ‹/rrrD?9uêT® š6mjooúôiQÎÈÈ�O´páB©³5oÞ\wãŸ~úé¹ h++«ììl ‹U«V‰hˆJ/i²s£Æ† Š+2xð`i–†›ZòZKKK??¿àà`y~ἦM›&*’êÞÑÒ]ëêêzûöí\ýDT:f̘\Ç‘ܽ{·¸‘ÅAÇ”W‰€øúúêÉá–   ô¼ÄfÍš9;;ó}Óc5sæL¢�/[[ÛÝ»w?{ö,ïª*UªL™2¥iÓ¦bƒ|ç®Y³æøñã«W¯.½”Ÿ_·}ûö‘#Gª´³@<}úÔÎÎîÕW_ýàƒÖ­[WЇå…Úµk;88œ={ÖÍÍmÓ¦MòaõpttüÇ?þѰaÃÔÔTq ééé¢Ío½õÖ§Ÿ~Ò¢E‹]»véîvwwÿä“OÊ”)#½Í;vìXa­faa1bÄý# UÚ\pTTTLLŒ���Ø~ܸqÏ=²AÚð‚q�½öÚk¾¾¾Òfqœ´´4kkkWW×nݺMŸ>}ÅŠzžŸvûöm)“^˜*ĹtïÞ½_¿~"POž<uYZZŠ6‹xyyÍ›7oÁ‚C† �399Y4#++KlØ®];±{£F�Ä^W®\W«ÕµjÕjß¾½þEóΟ??|øðY³fýýï/jç,F�B¹råD]-[¶×Wì.®Ž8£úõëIÏÉÉiêÔ©¹&;–W‰[RÜ_III¢"þâ,  2jÔ(ñ²t¾;™RÄ=èïïŸïŸp B¼K‹›T*÷ïß¿råÊ|ƒƒLÜ/^”ʯ¿þºž¿ÜƦg-?Ôrº¿�úøø˜ó¸+ ž mŒ(ÿ/ “ššjooO@ÌÊ/¿üÒ²eK+++ñ¾cÌÌWŸ>}<==ó}p¢ÉÔˆ—Ý�;w\]]Eáúõëîîî Õíáá!•7nÜX˜ç"Â|¤§§‡‡‡KåaÆå�I (AÒçœdÍš5Ó}©V« @i¦ûÛèåË—7nl¶¡`¤ ¬7ß|ÓÝÝýÆ�ßÿý�!CŒù[k�5Œü{²‘kÄËNšâ£k×®ÊeŸý,,,ªT©"— JÝ—dœð’²$€Ò&Nœ(¾®[·Îh5&''_¾|Ù˜Ð3~�xÙi4šU«V‰Â¤I“ˆJŠ­­í»ÿ#Ê Ž4 ¸#F899>|X÷)ˆŠÚ·o_Æ �9Õ€ñkÄËîàÁƒ7nÜhÞ¼¹§§'ÑÀT‘€W¦L™iÓ¦i4šàà`#T'*Z´hÑðáÃ�v‚Ư/;ÑgÄMaaa±lÙ2¢€ chÀ|}}×®]P¯^=EëÚ¼ysBBÂG}d´³3~�xÙmݺ5**jÔ¨QmÚ´1f½¯¿þº9?öã#­”øøø9s戯º ?øàKK˪U«N›6­ZµjDÉ|XYY­Zµª]»v»wïV®¢«W¯úøø„‡‡ÛÙÙçÔŒ_#^v ãÇ�¯_¿¾q> ËcΕãy.� Ð,ó6ÈqrrräïÔÎÎÎâ{4±Ã"­”+V,]º4×ÂmÛ¶IGGÇ   ¢dVZ¶l¹xñb??¿°°°‘#G*TËСC{÷îm´ó2~�xÙ�=:--íøñã+V$(Y!!!RyòäÉöööÄ ‹´Rºwï¾bÅŠ„„„¼«»uëFˆÌиqã.\¸0a„֭[+4ÀÆ�4h`Ì“2~�x©MŸ>ýðáûví¢Û`H@+¥M›6¹æß„•+WffföèÑãÔ©S5kÖ4øñ�ŸÔ#�ˆÂ[³fÍòåË>ܺuk¢�bzòÿÿ²#¾ªÕjâ¥sFemm½víÚÁƒûúú ˜›zõê�>}šì3^HøDñ¯ŽÁ€Ò�Ѐ±YXX,\¸�8À uèÐ� `V P h€"H@A B^Ë/·fy x)�€/� Nâ‹Z­&ðR  Ì”���———\& `p$ €™²²²jÚ´)qåðB€" 0—«ÌnìdEŠlF1# Š`40S™™™{÷î•Êï¼óÏ!ƒ# ó8G£V«Mòì²³³ÏŸ?/•{ôèA Ž)8@�ê|‘R§Nâ(ÐE�€(‚4@$ Š  P„5!¹5ÞA5áq hP ueK•ZMÅÃE0˜/{{{‚Ê! 0Ýg_©U‹8Ò€Lþííí'OžÌµå0@$ Š  P h�[|||LLŒÉŸ¦F£IûQ満ÁñB�›¯¯¯J›Ÿ5íÓLOO_°`�TžÀ¢¸Ú‡ÓÁŠ%¢bïÝ(Ñ 6b¢bW4–Äì ‰,±$öÄ.Xb¯± v±»ÆN±aÁB¯ßùsÞoÞ}wa]`wöw_\\g§Ï3gfwž={L}@ ‚4À 肘¨Ø˜è=k—Ér+�oèôŽ40]±±1 ‡.8A hЛy;�« ù²ªa&‹4è�ÃGÅÕ†8;—$,ÀdÑÀ H@ ‚4À è`*ZÚܨbN ˆ6‹½cùD–;Ø^²³µ!& âúEb€TUiG Ù- A`tÁL”¥…EÍŠ¥”2ÚÃG¡êƒr=T}åììL”Ù h`¢¬­­Ü›Ö'£)Õr ö ’’’ˆ ›¡±À H@ ‚4À 蘨„„„«w‚d¹Z¹–––Äô‹40Qqñ ÛüÏÈrÅRÅH@€Þ‘€Àì[¤>¨|KÂÈÞH@` ÎÅ49@öÆCA`tÁ0OsWµ·¯@ ˆŽŽ~k÷Ÿ‡†ä­cggGL€LÎÉɉ d-´€ h€A�€}@ÈŒ‚ƒƒÕ†ÄÇÇ«¾tvv&J™ h™Qƒ ´O�””D”29ÐÀDÙØØôèÑC)Ð;ÐÀDYXX8880à�! h€A�€}@³qãFYîܹ³­­-12•€€µ!ŽŽŽ„ k! LTRRÒóçÏ•22›âÅ‹« qrr",Y ]p ‚4À è‚`*Š-Êo·¡*:::oÞ¼²,ê†��1ý" 0^[.ØŸ~E Hˆ‹¹u1P–¯®8aiÍCcÛøm#‚�½ÑÀ H@ ‚4À 耑D¼x¢úòáǪ/��� @6C€‘ìÝEõe©Ñÿ36))‰d3$ €‰27·ÈUÈQ)Ð;ÐÀðüùó .¸¹¹ ˜”‘#GÞ»woíÚµ9rä È ,¬¬�~AÀ€w^„0²ÀÀÀO?ý4 €PÀÔL˜0!$$¤Y³fáááDS@0ª;wî4lذ~ýú'N$05¹råÚ½{wHHHëÖ­cbbÙ hÀxÞ¼yÓºuë%Jøùù ˜&‡•+W;vlèСD€l�> #ILLìÞ½{ppð®]»¬­­ LV“&M† 6{ölWW×.]º|@I‰‰‘¯žÉrÎEÌ-øb0¸VÓ6¨¾œß¥1ÈÞH@F²xñâÝ»wÏ™3§lÙ²D&ÎÇÇgåÊ•C† iÖ¬YÁ‚ >”Ä„¸‡'÷ÊrÅVÝ--l‰ `h¹ 9ª¾tvv&&Ù-}cxöìÙØ±cÅ-–§§'ÑìííÇŒóüùó & ²1Z@g7ëÖ­ëׯ_DD„樒%K>|¸T©RdÃF�µdÉ’%J¬X±¢N�:¦„1cƼ~ýzÖ¬Y™¡ó�€€ww÷çÏŸ+Czôè±jÕ*NÓ€&L˜°xñboooqb²%ÐÙÍ®]»RL¼ ���èß¿¿ñ·êСC3fÌ…k×®}÷ÝwgÏž5© ­ZµªpáÂ=zôÈ •DD@5û,¬^½Ú×××Ö–ßžÃxòäÉãáá±dÉ’Ù³gÏ™3Ç8+�•{K•¼ù>ѱ Ól¯ÊòèK–,Y¶lÙäÉ“såÊETÈ~H@g7*TðõUoHÒ»wo™{M«•+WFFF^¾|9  E‹éÞª&Mšüðà .,Y²ä¢E‹²V2(**jÅŠ¢ðõ×_g’JR¸páßÿ]–•´ ÒWõ&zéŽ^½zõDm|þüù¶mÛºwïNTÈ~H@C¥±pÆ[ OKf‚1ܳgÏ»wïjÕªE�ʮ՛è¥�……EË–-W¯^½aÃИ”‡¡áƒª¾rvv&Jd$ ÃÚ¸q£øïêêjnnN45Ÿ}öÙêÕ«:kccC@0¥oUô¿CL°ƒ8²+Ѐ‰ÏÍ…F� @“üe@DDÄùóç4h�¦yCCCÕ§™¢»wïg>”Lš€pwwWÍ,xxx¬Y³æéÓ§~~~ûöí»yóæ›7oòçÏïââ2bĈ&Mšè2ûµk×ÄìGŽyðàAddd‘"E>ýôÓþýûþùçÙÚ˜˜˜F��;wN”sæÌ¹zõj;;» œ>}úÝ»w5jÔøå—_š7o>{öìÍ›7ß½{7GŽ�:uš1c†òÜ­Ô¶Yy¹nݺˆÊ—–––cÇŽ�8q¢~#/¢áëë«ÙÜà‹/¾Ðœ8wîÜ+V¬èСƒæ( 77·W¯^© ›=räH-}qùØ¥ÈËËkΜ9jAprrÚ¹sgÍš5EyïÞ½b«^¿~­:�µµõ¯¿þ*j£êÀëׯ‡……‰BµjÕtYõ¥K—Ö¯_åÊ•ÿýWÔpq¸mllŠ+Ö°aC–¯¾úʠͨCCC-Z´gÏžÛ·o‹êjÐ þþþ¢þœ»¥¥åêÕ«U³'!!!ë“uíÚuùòåvvvéÛÚ;wîÈì³Ù³gÏððÿöhvöìY77· üúë¯ùäCœt¢Bþøã�¢f!ÈaaaÝ»wß»w¯2Dœ×bàåË—g̘1tèЩS§ªõÆ —D_ÕûƒKk3sôÄ6+V,00ðêÕ«¼%�ýdÒ´§§ç«W¯BCCÍ’³r ���,äÉ“§V­Z ¼xñb```RRÒðáÛ5kV¾|y-³¯ZµJkÖ¬wåÊ9Íúõë?~¼k×.±ätlmÕªUgΜyöìÙ�;wFFFÊì³……E½zõâããÏŸ?Ÿ˜˜8pà@9qÑ¢EkÔ¨qêÔ©·oߊm›]ûìÅŠûã�?ÜÝÝe?b®E‹�5*&&æØ±c^^^b!éÛ`1¯Yr&(00PìììvïÞíêꚘ˜X·nÝþùGNÖ®]»Õ«WçÌ™ó¯¿þjß¾}RRÒÁƒû÷ï¯e›¥K—^²d‰Ùÿ=ú¡ÌB›dÊË&Mš=zTF�íææ¦ûròçÏ?{ölÕ!:n¶ñ��¦ÉDaÈ�!óæÍ“}§8::*”(QbáÂ…¡¡¡›7o/{õê5sæÌuÿþ}³ä¼¹.ëUÒ»ÖÖÖ‡VÍöž'Ntuu5KΘùå—2]¤H‘•+WÊ6‰­Zµ’Ýž*Í‘IŽ�ªþýûÏ›7O¦åË—�;Vmì–-[dƒeÕ:©Fvº¢Ù>4E“&Mzüøñ£G�~úé'µ¶Æ 6Ü¿‹-üýý###.\øÛo¿éwgííí�?^±bEƒyüøñ—.]… *;vÌÁÁAecc#NçZµj‰UDGG‹“ÅÃÃC~�iÙÚÚV¯^ݘkÌf”äïÞ¼y“Ö’q… +z0¯½ú /g²%‹,´­]“© ,[¶¬,¨öö�¢9sæ¨f0ÿû9çË/ûöí+ËS§NÍøvÚÚÚ0@y©´~ýæ›o”¬¢˜&Ý9d´c§¦Zµjõë×…Ÿ½&[’–.]úã�?Nm ²#l{®(Y²äÁƒoÞ¼©ôõñ?窅Åwß}'Ë.\ÐûÎN›6M5ûlˆ ‹hÌ�;Wî˪U«RLŠ€Oš4I–'OžLå7…æÈ‘Cü�ŽŽŽ��å(`"œr«ÿý/B@¶‘•в« 5²/!**Jûì­[·NmÔ˜1cdÁßß?ÅGç¥IíÚµ•­”nXÕšŽÊá$\ta´c—Z­{ðàÁÁƒU‡?~üøøñã¢Ð¥K-³GDD˜%wÉ’ŽU'%%ݺukçÎ�sæÌ5jÔÀ�/^¬ºXýJ1ë­ß oß¾]>äÐÕÕUKÖÞÓÓS¦ìE„Ÿ={FýÏö” h3¾� ;ÊJ]pT­Z5#³Ë¾ƒSäìì\­Zµ«W¯&$$\¸p¡yóæYQ‰%Ò4™çØiêҥˈ#Þ¾}ëë뫺ðÍ›7Ëžµô¿aöÿ3ÅÚ{õU#»mÛ6±|ùÔ8ã°±±1t�dAË7 fÉßÍ4mÚT!))éèÑ£�;wæÈÞ´´´”…˜˜Ž2Œ,6>aë™ Yn_¿„�•%1ýÊJ hû1HŸ²eË^½zU=z”ÁE¥ÖÜ5}Í`aÌc§)W®\‹-Ú¶mÛ‹/ *$‡oܸQü¯T©’ö.€­¬¬’鸺M›6ùøøÜ¼y3[988XÞûeŒ2AHH5<ÛPùýŠ8Ý ½®ËE»¼+^šºELLÌÁðU²ìøÑ×iú¾ÈÌ\\\2 +B iöð Ž�Ô¯_¿E‹ÅÆÆ®ZµjĈfÉIXÙU{óg³ä„ZLLÌ{û‡‘¼¼¼fÏž­¼,S¦LãÆ�+UªT¹råråÊ988œ?¾Y³fY7ÈÊBÞÛÐU™€>jL!€ÑÑÑÊùÂQ ›1¡ttt´–6ÈwîÜ‘'''ª…Ž“YYYeïcW»ví:uê\¸pÁÏÏO& ·nÝ*S�ïM@çÎ�ûÕ«WJ~M‹={ö(Ùç/¾øb„ š�ü*=B||¼–±z r±bÅdáêÕ«ÚûΖ­­…�>ú(ÛWïlÀ4E/<<Ü,9û¬¥�E™Púï¿ÿN-]xóæÍëׯ‹‚µµµ–G{e²ëá.$$¤Aƒ/_¾\µjUûöí³÷±ëׯ߅ ÄŠÎ�;'Ö²eË1°V­ZåË—×>ãG}öÞU¬[·N¾ùæ???ãдk×ΠAvqqY¾|¹(üõ×_¿üòKj“=zôèìÙ³²üÉ'Ÿ|�DÇê=sæÌQ£Fé± ~áÂ…ƒƒƒSëÀ4fô�?6Kîjœ·d²J@ûúú¦–Äœ8q¢,|ñÅööö™|GîÞ½k¼úñÿ0j¶áݱc‡ì‘vÛ¶m†N@ðcçáááíí±bÅ ggç'N˜éÐüY(]ºôéÓ§ué‡÷åË—² åùrqqq† ²ŸŸ_j h}ÙÝÝ}èС1117nÜØ¼ysÇŽSœlòäɲ9víڵ˕+g¸$ãÕ{È�!Í›7×ãwB ÐÒ­hÌè)ä RªT)Þ’ Ýž|ضmÛÇ-bŸþ¹,Ìž=[éUVÜÃÌš5KvCannžZ¶ôƒ;ýêß¿¿øÿêÕ+ÙØÅÅ¥dÉ’ï�«N�:fÉÝ+«5DÒ$j—,ÌŸ?ìØ±JƒhéæÍ›=zô˜9s¦|•b—Í›6m‡æÍ›7·nÝêÓ§OZ÷±wïÞª9n]‚œÖ5N�:UæŸ={Ö¤I“(£Ä-\¸°sçÎò&ùÛo¿mÓ¦�AO�ÌS½u—ñf¶èÝ¿ÿÝ»w¢`œ¯÷€‘eÒÐÏŸ?Ÿ4iRhh¨êÀž={ZXX,XðÇtttœ™Ú@±Àáǧ8½��ÝÎ�;E´”®YróÆAƒ¥–ä¡Hq”êfKj»¯)­ÇN¿APôïßðàÁfÉIóÎ�;ëR“E…)_¾üíÛ·ÿùçŸ:hŸxÑ¢E¹sç!MLL;{êÔ)µ jÖ¬)ŽÈéÓ§E966V¦Â§OŸ®ÔöÚµk«N/Ž×{Ж––²G‘Å‹6L¬÷j2O�t¬QÔÕsçÎuíÚUvÔp?™2VÄvÈ�!3fÌPºÖ”‘D/ÕûÃÊ`3[ôäókÕªåààÀ[2Ù�åøñã3áfÙØØìܹ322RsT�ÆŒS³fM1�lD¬ÆÉÉiذa}ô‘|9aÂYؼyó·ß~+ aaa¶¶¶•+WîÙ³çŠ+Rû¥¿P²dÉܹs_¼x±téÒk×®U«ÊÞÞ~ÿþý�=R†˜››÷éÓ§[·nb#UÛqË–¶9særäˆ.=–ÈX¥Ø:ÝÇNïA�Ê•+÷Ûo¿‰BãÆ�e&ZAAA2ÿÞ*D(Z¶lÙ®];kkë·oߊúoaa!*|õêÕÝÝݧL™2mÚ4Q=Þ½{'j…¨Bbooï† Ê%TªTIÌxóæMq˜Š/þé§Ÿ¾wó.]ºÔ»wï‰'öêÕ+­'H:Ö(äÊ•K¬«^½z¢†ˆÙE½;U¾|ù®]».]ºTŒÒÞ_vFN½Tï.#ÌlÑóòòÉ¡C‡6jÔÈ@áï ,�å:äÏŸŸ÷~(ĉpåÊY®Q£†–¯¾€LÎÏÏOËØÌù� {S½õôô4åvWæÙþ™$J$**ÊÎÎŽÚϱK·'NÈÙ¢E‹4„¦æÜ¹sõêÕ³´´×cf¾Z·nÝ¢E‹!C†dã5"« .Q¢„(ܹs§lÙ²ZËõë׫V­*ËkÖ¬1ÂsS‘…ÄÆÆnݺU–Û·ooccCL�EiïȈ‡ŸêÝèµkתT©b²¡ ¥ «�7þß9ceÕ±cGÝçúøã�Ë–-{÷îݽ{÷zxxmkŸ@ÏøkDV—””´xñbQ5jÑ€ rü_Îÿ‹øà" ¤ 22Òßß?$$D²uëVùп�¦ui}úô)\¸ðÁƒïÝ»gœíß³gOÅŠ�ÙÕ€ñ׈¬nÿþýwïÞ­]»v‹-ˆÙ h@]TTTݺu›5kV¾|ù‹/Š!?ýô“(ˆ!ZžÈ—š9rŒ7.))iÆŒFØ~±¢™3göîÝÛh3þ‘Õ‰:#N ssóyóæ ²1ú€Ô]»víæÍ›¢�+W®7oÞ¼zõª{÷î·nÝC¦N�ª<1M ´|ùr___//¯råÊtûׯ_ÿüùóï¾ûÎh3þ‘Õmܸñüùó}ûöÕþÔ,½«Q£†)?öš’’’Äu^–íííÓw…h‘=С¡¡¿üò‹ø¯:°gÏž… 7n\Ñ¢E9ö»Ô”(QB¬.11ñÍ›7“'O¾páÂëׯÅð~ýúµoß>}Ë´´´\¼xqÆ ½¼¼vîÜi¸�¿uë–§§çªU«lmm�sÈŒ¿FduÏŸ?6lXùòå�ó›@‹˜˜˜9sæÈòèÑ£íììˆ èWöL@/X°à�?þP¸iÓ&Y(X°à„ 8ö»Ô)RäÛo¿]ºti\\œ¿¿¿ؼyó¹sçfd±õêÕ›={ö�!CüüüÄò ´ñ=zôðööþꫯŒvÈŒ¿Fduýúõ‹ŽŽ>zô¨½½½‘W]õ—]f/qt”4¯;AdPöL@·lÙrÁ‚ÏŸ?×U°`ÁæÍ›sà9vÚ‰m(Z´¨¯¯oXXXÅŠûöí;pà@KKË .vðàÁ—/_>|¸‹‹‹�úX³fM… ŒyÈŒ¿Fdi?ÿüóÁƒ·oßNµÀdÏô'Ÿ|¢Ö‡8vi;1¬¬&&Óû’.\çæævêÔ)'''½/ßøI=ÒˆÐݲeËæÏŸðàA¢€)° €1YYY-_¾¼k×®ƒ "05åÊ•;}ú4Ùç¬áíó‡@YÀÈÌÍͧOŸN`‚5jD²ŒU#J­‘””D$A h€A�€ h€A�€ h€AX îëÙ&ºgÿ�AVVnnnJ™Ãú¿ó"@]ÞÂÎÎÎÙÿc�••‹‹ G ‡.8A`tÁ0× LªRØ’8èj‚ç >o }H@çïï/ËM›6µ¶¶&& _$ €‰JHH8}ú´,7iÒ„4è}@€T= K|øð!q¤ h�ªRsÃK•*EéC`$ A`$ A`V„¤æÁ°Üfï@ú�€©rÎoaæìLéCƒ 40QvvvãÇ�'`8´€- ¦bÙI7‹':êØ±#Ad- A`tÁÔ…††šÂnFGGO›6M–G�mggÇ¡ý¢4P7hÐ ‚È8Ѓ  0Ѓ  0Ѓ  ÔÍŸ?Ÿ 2Ž4Pçàà@G`$ aE&¢E‹UªT!PXZZº¸¸(ezG˜(kkk777â†Cƒ  0Ѓ h`¢âããÏŸ?/ËuëÖµ²âsè7ZÀDÅÇÇÿý÷ß²\³fMРwtÁ0Ѓ  0Ѓ  0Ѓ  0Ѓ  0+B0ûn<¾“›8@}ýÉkYÞòO �­1`Ê:Õ.I€Þ‘€&ÊÚÆöK�o”2½# L”¹¹y®<öÄ ‡> A h0 ¡�ƒµŒ}X )µQÎÎÎD¤ h0 ƒ[7Ò66õQIIID¤ h`¢âbcöo^-Ë-:öà9„ w$ €‰JJJŠx÷V)Ð;B0Ѓ  0ú€“0oçq-c¿¬êDˆ€Þ‘€“àðQq-c��K" wtÁ0Ѓ  €©his£Šm8q€"Ú,öŽåYî`{ÉÎÖ†˜0i×/êmQUÚN Ñ`´€&ʼb)'¥L@@ïH@ecmݵէÄÒíá£Ð”Gäz˜Ú,ÎÎÎÄ “B�¥ZLë,IIIÄ “BЃ  0ºà&*!!áNàY.WÒÑÒÒ’˜€~‘€&*.>aýÞ²<ºo{РwtÁ0Z@ÒãÁ¾E)�(ß’à‰4 =œ‹9¤2™à‰.8A`$ AÐSñ4wU{û ÄŠèèè·vgd9$o;;;bdNNNN ‹" ²›¤¤¤ÄÄDñŸPÐ…¹¹¹………øO(ôŽ4È&âââÞ$²ÏÒÄÜÜÜÚÚÚ>™(}! àà NmT|||j£œ�� )&&æÙ³g„@ú$%%ÅÆÆ>O–+W®"EŠØÚÚ–Œ# L”��M§N�”2>¬ ¤ïF‘Ð0Knø¤åû*H“ˆˆqUqvv¦)tÆ‘€&Ê¢xñâÄ€¬.!!!88˜ì3ýWqm)Y²¤¥¥%ÑÈÐ {òäILLŒòÒÂÂ"o2kkkQ&>t‘˜˜÷6™(Ë�âÚ"®0NNNÄ'#H@€¬*!!áÝ»wÊK›’%KZY‘î�fâ’+W®Â… ÆÆÆÊ�â #®34‚ξ Y•êSÍÍÍ‹/Nö@Fˆkˆ¸’ˆëIŠ×¤'¤„˜¦ØØØm۶ɲ»»;Ï! +Rmþœ3gNÞÐdœ¸’ˆë‰’wÏ›7/aI7ÐÀD%&&†„„(e|X©�rtt$>R£Ú21Ož<€^äÎ�[5M@2‚4€¯xñâ©�âÉ?R“”””�� ¼Ì‘#1 9sæTÊâ:#®6ª�r MèdIj¿aâ)aôEízÂ/&3‚4È’’’’T_Ò>€¾¨]OÔ®6Hºà˜Š¢E‹ò#n¨ŠŽŽVž%"ê†��1ý¢4À h 0^[.ØŸ~E Hˆ‹¹u1P–¯®8aimKLèbã·�€Žh 0Ѓ  HYÄ‹'š>|¨9ÐÙÙ™ph" L–¹�}A¥L8hÚ3º‹æÀR£S˜2))‰pÈŠBBB=zT¿~}BñAÄÇÇ?~ÜÅÅ%GŽDÙ h`¢,­mÊ4iK€©IJJ:{öì®d—.]êÕ«—‰' ïܹãçç·oß¾àààððð"EЏ¸¸|÷ÝwMš41Ѓ‚‚<¸?YXX؃ø% ²1ÐÀäŒ=ú×_Uèäätþüù"EŠh™qÆŒ£F�JmìôéÓGŽ™™w|ݺuÇ ¥H ,ðöövwwŸ7oÞóçÏGŒñðáà  �7®Y³ÆÃÃC¿«ûý÷ßçÎ�{ÿþ}"ÓAøÄ[Ú… ÜÜÜLŠø ~ïÞ½µk×òã2|pÇ7e»wïž3gN||¼Ò¡C‡Ã‡[[[§6c¯^½ªW¯~ùòå… >xð@,X°ààÁƒ]\\êÔ©“Éw\ì`»víÄîÇÅÅ™x5ظq£8p%K–\³f�………"®8ˆ¯_¿å½{÷ê=Ý·oßï¾û.88ø«¯¾ºyó&g"L�!Œ,00ðÓO?oö„¦f„ â}³fÍÂÃÉ>¬¢E‹6iÒdúôéÿý·­­­2üäÉ“ƒÖ2cáÂ…[´h1jÔ¨³gÏ(P@ 177 ?~¼››››ÉwÜÆÆÆÎÎÎÕÕµZµj&^Ä�É�!C’’’š7o.³ÏBéÒ¥·lÙâèèèää4hÐ ½¯4gΜÖÖÖb-=zôà4L‡'Ož„,‡4`TwîÜiذaýúõ'NœH4`jråʵ{÷î���Ö­[ÇÄÄ|pI‰‰Ño^Ê?Q& ˜¦¦M›6LuÈ’%K.\øÞ *Ô¦MQøì³ÏêÖ­›åv}šPdQ$ cxöìÙØ±c���===‰`oo?fÌñio„ D™„¹¹ùÊ•+ëÕûo7;/^ìÛ·/‘É®¢££ Bæ÷öíÛN�:mÚ´‰Pd]ô�}¸»»«~}×£G�U«V™Ì`̘1¯_¿ž5kVføbœª‚Ì`À€&LX¼x±··wÉ’%�³ÒY¹·TÉ˯#¡rË›0Íöª,�ÎggC7|t³ÉWo‹ê´’p™JŽ9¶oß^¿~ý   9díÚµ5jÔøþûïu_ÈŒ3F�¥:¤W¯^+V¬�eqo˜?~µY|||Æ�¯6066vÿþý7n¼yóæ¹sçÌ’3q¾¾¾b Å�ðððR¥J‰%6ÌÖö?�²HJJÚ»wïÊ•+Åô�?.T¨PÛ¶m'MšT @�÷n¶˜W¬K,ÿÂ… ‘‘‘E‹ýì³Ïúõë§½#l1×Ö­[7oÞ|æÌ™gÏž‰{ÞbÅŠµhÑ¢oß¾©u�õ×_‰�7nœX¸x9}útŸÐÐÐÆ�¯^½Z3>Ú?~|Ë–-G�}ôè‘ ¯³³³Ø†Þ½{—)SFmb±¢>}ú¨ œ�,Å㥣ˆˆ1‹847nÜ·Ûööö¥K—nݺµ¸ñG!#u2..NTBäK—.‰åÌ™³D‰­Zµêß¿jwROŸ>GDM1ÙèÑ£Å�Ë—/ûùùáÏ›7ï§Ÿ~úù矕‰e>}Ó¦Mb-2¶"°ááánnn'Ož”ÓìÙ³ç÷ß÷ññÑ1Ô<›'vð³Ï>K+_¾üëׯÅBæÏŸöìY±%žžžâ@ÈžR¤víÚ¹¸¸È²|†¤0hРÁƒ+Óh�•¦Ý»w0 zõêC† qvvwÜ›7o^´hÑ™3gÄýÎòåË[·n�¾Ú(\ïÞ½óçÏïåå5iÒ¤7oÞˆ½›5kÖ¥K—æÎ�+Þ¯_?eâ;wîˆðŠÚ+Ö›˜˜(†¸ººÆÇNjȈYäÉßß_©õë×Ë>gÖ¬Y3|øpÕî•ÿùçØ{÷îM™2%ã»,êóÆ�÷îÝ+ë³ ¶*88Xìš8vÊdW¯^õöö»,&VŠ}{$ M›6}üø±(¸»»O�:U޵³³S¦Œ‰‰éСƒØ0q|E([¶¬—˜WÔ(Q÷¸²}X$ ³qU}ùòehh¨(+�öJJJÊÈ2W®\)[®\¹'NäÎ�Û4›ñ ˆOâÚ*ÞË3I¿`†¨*¦ydM™^¢×§OŸ%K–,[¶lòäɹrå"ªÈ$ªU«¶~ýú6mÚÈ”‰‰‰]»v={ö¬ø¬Ëì… nÞ¼yíÚµEAóVË¢Z² *¤¸@q³öâŋʕ+oÛ¶Mèçç'>�·mÛÖÝݽbÅŠbÃÄ�¦ÌÓmß¾]lm±bÅÚ·oß¡C‡Ñ£G/^<,,LÌ"›ñÞºuë×_M-“(õêÕKfŸ‹-*¶ùÙ³gÊ(__ß·oßj>BüÊ•+Íš5+[¶ì¹sç”Ïó.ÉdÞÓÇÇGüŸ8q¢Õ»woqïð÷ß+™}ØÈÈÈŽ;nÙ²EÆJ÷çÄœ:uªuëÖbú¡C‡Î™3ÇÜÜ\oÒ¤I¿~ýÄ! üý÷ß/\¸°wïÞ|XIL7nÜXìø—_~ÉeíÃ"�}ˆó\\XeYó�!Ý9&ñNpùòeq�hÑ¢…i6ƒA—{ù–ÿõ×_gãªb‚GÖÄé%zõêÕµñùóçâƒu÷î݉*2�V­ZÍž={èСòåëׯÝÝÝOŸ>­ä1ß«`Á‚ª™\5¥J•Jmøˆ#DáÚµk[¶l1KnÈ<}úôþù§råÊÊdk×®½yóæÕ«ÿןØèÑ£#""6mÚÔ´iSe‚O?ýT|ØÞ½{·ü?yòd%E«æÄ‰!!!ãÆ�ë•�uÜ»wO¼\¿~½œ`ãÆ�®®® Pf ïСëW¯Ä’ÕZ“|þùçbÕb™¢,VÚ¾}ûš5kÊ ÿÝÜÜÄŒrJ1¶dÉ’Û·o·´´Ü³g�ˆvll¬Ž�nµmÛöåË—µjÕš5k–Ú®•+Wnß¾}5jÔˆ‰‰9yòd�=ÄMGj»ŸâžèÛo¿uvvž9s¦Ú(ooï3fˆû¦¸¸¸>}úÜ¿_µ¹î{‰ƒÞ¹sgkkk___µæç½zõ?~¼ì%fÈ�!_|ñ…£££(‹€ˆÿâÞJÔ=ù݉¨Ã½{÷µ(GŽrÞ*Uª|ôÑG²£ó°°°Úµk‹ZzéÒ%1‹œ@Ô±úõë‹FGG'&&þùçŸj_]¤c—7n,þ8PI@wéÒå—_~QÎ/q¤D�+•_?,Y²DI@ëHlª”(´lÙR-΢ʉ�9þ<—µˆ‡â='°Z� ¤•x}÷î�¸ ‹7EjÕ›èýÏ;�……üJÜ”¿˜”‡¡áêˆ�y 2dРAÊË7nôèÑ#M?Õžp´´|Ïó'”þ‹ããã8 š}–³wëÖM–CBB~ûí7Õ쳤4„züøñýû÷S[ѽ{÷6oÞ¬ÚU´Xõºuë¨LóóÏ?ÇÄÄ(/ùå—»wïŠ5¦Øˆû«¯¾RîüüüTG)½^ÏŸ?_¼x±ŒC«V­Äƒ‚‚ªW¯®Kl‡*û–ôööN1’*T�Ý ;vìPíÕA� ûí·ßjvQ’7oÞÏ>ûL–Ÿ}útZï4_$3Kþ®Hs¬———!¾~€îh –|“suuåbhŸNV¯^}èÐ!ñ Fµ_6²¥Rƒ·ªÒb‚£™ÙܹsïÝ»÷÷ßË—;vìðññQú”04Õ¼añâÅ5'PMæ–-[VsÕž îÞ½«ùD>©J•*JÊXÕ¬Y³öìÙ#[Ú†††nݺU¦¼#""/^l–ÜÙEŠ ¬S§ŽR>uêTj;õÍ7ߤ¯§Êk×®mß¾]–µü"ÓÓÓsÊ”)qqqfÉ­­»té¢ßtòäÉ3gÎh�ƒRyD”¦ßï¸yóæôEX5ÈNNN)Î.jÎíÛ·E!_¾|)>0PÔ¹å¢Úèk—U�uŠ}h(O­,,,L--®�­­­¹¹¹xÝ´iÓèÑ£UO ³äfÝ©=ÆA0 qí“�ÐþÔ`ÀdÉ_ˆ�çÏŸoРAšæŸ€Õ§™"µL€î,--7lØÐ°aÃk×®É!¿üòKÍš5Û·oŸ6/oÞ¼Ú'Pí0$Å–¡RŠ)H³ä<æ Aƒ~øáùòðáÃ2}èÐ!¹´qãÆýôÓOÚ·áÉ“'©�Ê—/_úv\É>ÛÛÛ.\8µÉš4i"ïʯ^½úðáCggg=ÆëÖÿ|‰˜Ú-¿êwŠZâ iÇŽ²�=z¤ØŸgº—œÖš£Vm ·ËjÕUÜ$¦)-j‚8OOœ8åêêºlÙ²/¾øBu‚Õ«WsAû€2i: ÀÝÝ]5³àáá±fÍš§OŸúùùíÛ·ïæÍ›o޼ɟ?¿‹‹Ëˆ#Ô¾xImvñ†!f?räȃ"##‹)òé§ŸöïßÿóÏ?×ïöÇÄĈ�ܵk—¸À‰u‰M577>q¥kÓ¦Mxxøo¿ýöý÷ß«> 6µmV^®[·nÀ€JWýâ]pìØ±º|ïºhÑ¢={öܾ}[¬Zû^‹á¾¾¾šÍ.ÔÎ[)wîÜ+V¬PûoáÂ…^^^ÑÑѪ«W¯.Þ¨äoyNŸ>½~ýúãÇ�ß»wOLæèèØ¢E‹‘#GjþlçÒ¥KbÊ+W®üûï¿"†bßmllŠ+&®)"V_}õ•îmŠO�:õçŸ;v,00P±åâºV¦L™jÕªµjÕÊÍÍM¿AP\¿~=,,Ì,ùºl§w9ÒTU2Îßß_„îäÉ“�?Ι3g‰%D„{÷î]¡Bݯ i:Aôxd3ݘ™£'N ++«øøøË—/§5½`Á‚ &ðFŽŒ°¶2w¯WB) )oÞ¼âî¾~ýú²7gñ‘¸gÏžâVÇ»<ƒ²°°Ð}µûtµoß^I@‹;\Y�ý; ⹸×xOâÉJÿ©'q$ ïí’ûã�?– h™ÐoZ‰ÃîÝ»Å�»ö‰5Ÿ|¨Ë’—.]*ûkÖB­‡ ýÖµjc¸]V“ŽÎgÍšõé§ŸÆÆÆ>}ú´U«VmÚ´CRkõ#ˤ èýû÷«µk[»vm… ¦L™¢ÚåPhhèŽ;vîÜ9oÞY×®]—/_ž¦ÎàµØ³gÏÀ�ƒƒƒÕ†&;zô¨|)Ö¨š€Nq›—-[fkk+_?~\I ¾¾¾ïM@/Z´èÇŒŒŒÔq¯7lØ û�þÂÃÃEüÕrL[¶lÑ|W»råʹsçÄ;ô€<¨:êáÇK–,Ùºuë½{÷T¿‚aTž8¬ב“‰ÈÔ¬YsÁ‚Ÿ|ò‰ö�|õêUŸ>}Ävª|�L£#GŽüñÇ>>>ãÇ�×cJÿúU«VÕ¥æèe—Ó'­U%#ºwï¾wï^eˆ8¯ÅÀË—/Ϙ1cèСS§NUë�A/'ˆ�쇕Öfæè‰mŸZĵQ>;02K ‹šÎˆÐN>(¯I“&òn7""ÂÝÝ]Üä*=&g éëá§L™2öööoÞ¼eù€8™ß�…Â… ër·«wOŸ>•Õ{Ø©6Ð Õïf(qpvvN±)UÆ—,n—>H„�¿Ë÷ñǯ_¿¾[·n2s(îI÷íÛçåå5vìØÜ¹ssû°2iÚÓÓóÕ«WòÒ <œÊÇÇGòäÉS«V­‚ ^¼xQT}q >|x³fÍ”>ÔSœ}ÕªU²àèèX³f͸¸¸+W®ÈiD}üøñ®]»tšmjvîÜÙ¶m[å².NH''§üùó‹!b—.]R¾ÃQ»ô§¸ÍªÓŒ92>>þíÛ·â­Nlª™n_É'ç EŠAKо×"Jb¸²äC‡ɼUãÆ�U{‹—Ä üý÷ß« œ1cÆÜ¹s£¢¢Ô–àïïß©S'%É%Þ¥ÄQ/OŸ>m–Ü[ü¿ÿþ+.Êr–.]ª¤bëÔ©#®¹¶¶¶aaawïÞ•ÏfÁtuu±jÓ¦Mj»ùòeq8”ëc¾|ùj×®-jŽ8ú¯_¿>uꔼ*Í›7O5�ñ (ä÷Ãb½š Ф—]N·´V•t»ÿ¾››Û�;w”s¤R¥JâcÜÕ«WE5ë�5k–Xµøx—3gNýž z<²’ØT±^=vÔèàà¤ä…õÀÌ=…L@‹mæ-™VýúõW®\ÙµkWùAZ|,ïܹó¾}û²ýŽ›››/^\& •f.ò—¾ª# —Õ–4)Ríåã½Ùê´2\>x„³Ü†IíÚµ;qâD÷îÝe×111S§Ngîï¿ÿž™ßl 2iÚÁÁATYVÒ%fÉ?7nœ···l*ߪU«ÄÅÅ-]ºtúôéÚg/V¬Øüáîî.û1s-Z´hÔ¨Q¢F;vÌËËK,$ƒ[>qâDùnôõ×_O˜0¡T©RªcCBBÄÉpþüyÝwYQºté%K–˜%7–"*TH,¹K—.òÚ÷ºM2åe“&Md“íÑ£G«õS‘šš5k._¾\s ÊÑ)[¶ìÌ™3¿úê+±=AAAµk×~ùòeåÊ•Õ~¾¤ä:­­­>¬šú�@SãÆ�+V¬hnnnœgæN›6M5¥h ½ÖQéÒ¥wïÞ­ÖE¾|ù\\\4»Ìo'¼y󦇇G ×Ââ»ï¾“å .hNpìØ±={ö˜%gå¶mÛ–b×ø 4ø÷ßÅ‘jÛ¶­�vYÔ3žŠ —]ÎüUEDcîܹr_Ä'¶S‡õëן4i’,Ož<™k´)Pžþâ3�ü"0êÝT|â¶³AòO” CsvÈ­þ§�(™œ¯¯o£F�”—jO9Ê–^¼x! J%}÷î]å©ÙµkWÏž=õ»IªM£Ž?®eÊG�É‚��MÆ õ»J6lØ t��š1cÆ,Z´(­Kö÷÷ÿ÷ßµO¸×¯_Ë^ J•*¥$ø>ûì3e‚¡C‡Ê§+¥èÎ�;={ö÷³úݪvíÚ)½®[·N˃yäOH…¶mÛê½�°‡wïÞ‰Ûv-SnÚ´IÜÑ÷èÑ#­K»&nñ´ìàÉ“'ŪS̘‚ávY÷³Iyz–q ¬™-)_¾ü¾}ûd2*<<<}?B/²R|î§–./œ��«U«võêUQ‰/\¸Ð¼yót¯eÚ´iׯ_?vìØÓ§O'&3Kîy£r²Zµj5jÔH\µ�öüMÕ.� ·×º¨R¥Š««kZçJLLܶmÛæÍ›ýýýÓô¼Zå+Ð÷þ$Ä äµO{¯¾úÚåÌ_UdAË·A‚øLдiSñ{ôèÑÎ�;s¥ÎÞT:áÒò±0½›jw Z,Xp÷îÝ...¯_¿Ö>¥ÒKyЏ*ùÔzI�Ï6ׯ­[·Êm›8q¢Ò1ñ'Ÿ|R©R¥›7oŠò­[·<<<6lØ ŒUܽ{·Y³fµk×Ö{ÂÁÑѱ_¿~óæÍåÀÀÀíÛ·§øÜq+Ž”Ùÿ¢˜æÝwŠeÝõìÙó矖_$,_¾¼jÕª^^^š“íܹó믿 ö‹p-Äî(P@¶;tèÐðáÃçÌ™£™×:{ö¬¸=ìÞ½{… ŒS ·Ë若íK­åuTTÔæÍ›{õê¥Y[Ä=òŽ;ÌRO^ÃвRZÇ~ Ò§lÙ²²ûfå×é“7oÞÇoÙ²å·ß~S6’lÿþýòeƒ ÄéªöÓ€B_{­‹tt9²iÓ&ù––V²÷g¡råÊò³²JHf„]ÎüU%88XJ”(¡}Jeqâp™ÎöT~¿¢ß^áRt¹h—wÅKS— ˆ‰‰ ±ÿOŽgœ¾NÓ÷…@¦•9Ÿ™œlä+Ÿâ£‹ *ˆ777¥äU«VMf™Ï�;wòäIÕ. Ägõ^½zåË—Of±Ÿ>}ª9»ì»VJJJÒÌ?ª¶¡Nñ—²ªKÐÒà:µô·˜ý×_…>}ú¨5e�4i’ü ¸Yr’ºnݺ“'OnÑ¢…ìð÷Ù³g‹/ž={vbbâÂ… SÛæ÷þ–]‹)S¦þ¼—¬i"†¢(_?L�:µ[·nš ìäÏm (P¥J.w„!Ð~N¦ƒ¸tJzôèÑ .ܸqC¼åˆ÷3ù•Z@@€¸2T$ò¯´‹/öéÓGGM©·µ´‹êŒQ ÃÛ8JP =éÏþe˖嫌ïüùóS¦L‘Æ:¸víšø¦=wîÜ|h0lذëׯ/Z´(¯ ;vWýÒµÞ³gÏF�%Mß~—/_>tèÐ'NÈWd;w‰«NNN¾zõêáǥܴdĈŸ|òIµjÕj×®-*‹KÝ[·ni¯ú믿vtt|õÕWëÕ«WºtéË—/‡††ÎŸ?_®°fÍww÷¦M›zyyI£!‹m[uìØ±§OŸ6nÜxðàÁ:tpuuMMMýóÏ?W­Z-6~ܸq¹¶N,°\¹r‹/–ïúo¼sçŽTöððøæ›o|||¤—jµú¯¿þ Y¶l™¼„   Ê•+wéÒE¬ô%‘¡8sæŒØ øþûڨQ#À#GŽˆ —¢þþþÚïŠ��¡;ZžxîÜ9Ñü^½z‰k^¥RY¡B…|nƒˆäñãÇûöíûóÏ?Ë5äc 00PûÒLD[ì�Ý»woß¾]ž(vîóçÏ===ëÔ©#íKKËüqøðá"Œr5Ñ4©·¾Ð¼ys@í§^ýý÷ß"âH�{/�e¿þú«¸býá‡,4�ˆ —SØÂÒ¥KÅž;B‡ÄÕÕõÈ‘#ãÇ�?þ¼Ø­b]b±¯¾újÎ=rZÃBÓ�OÌÝ»w7nœ'½"dF 耀€¼ÐÒ£-4=OŧHŸµH·íDDDˆ�ÖàÁƒs­S¿~ýÎ�;ïÚµ+:::666Û½/T GvnÚ´)¯¬b~Z-ÿþËÙ‡wß¾}Ò-{÷î}‰ñ�u“G”×ñ°5Ý#m 0@úÛÚÆ�‡ æíí�kµK—.I¿€7oÞœín—B BÍš5Ïœ9“Ÿß£ú7YOz*ùáëë+=ùÊ•+â—�<^X6óæÍ“ºc7mÚ4¯�R(ýoñ­¥cÇŽ…’´•8::ê‚Ö4fôdÒ$ÛÝU€üÈÿw°bûl+(B£5ô\ˆÔMUw�Þ¹ÎÚ°aCΉƒ5t,ÐÍÍí…'ö .ä³ �4¦L™òrðòòZ±bÅ «U¬XÑp¿Œ^ÓÈgåQ…¾ ojä§æ*�ü/¹•F~jž úÞ¶¶¶9ûN¡°øDO&% ‹öy¡À@,ͪµÃ‡—‡o·Ð µ>qâDù‰Ó§OÏ9¼ÀÉ“''Ož'Ý ‘ÿ®Ž·nÝêСÿþõ¯lÓ/_¾Ü¯_¿ððp ÍÝñ¹Kíîî.6nܨ=ýöíÛÒ] jõàÁƒµ—ùiµL¾óbéÒ¥ò¨²jµzÉ’%{öì±ÐÜq“W¶TÒ�'ÂêÕ«§N�*÷–DDD 0`ñâÅÒË”””\Ç/Þ¾}»«««…æÿW_}UÔ×~ºë“'OÄZ¤ìsÙ²eóús´žA�î0›—ëͰ…Þä]»v‰­zöìÙÕ«WsÞ±eˆC¥ k\°`�”g|üøqÛ¶m�=*Ï-Z»v­ØÒ-‡Ú£G�\RX�¢:¼õ¡‹[ôÄ©RºÍ*ÿÞ%H1íóÅ_ÈOí” 4ÈÒÒÒÉÉiÚ´i®®®óæÍ»té’œR|öì™Ô»ÙÝÝ}æÌ™¹ö,NJJêÖ­›———‡‡ÇÇÃÃÃSRR¤Yï¿ÿ~Îqp„³gÏÊå»wïÆÅÅåÕ©9§‹/¾þúë5kÖ¬U«VÙ²eÅ{¯^½*š&͵±±ùòË/s}cïÞ½¥~ˆ3fÌØ¸qcƒ J—.-Ö~þüyí ä&‹hˆ&ç5F~BBB—.]6l(6#Ÿ­–‰åÏ�;722Rl¼··wóæÍ]\\._¾,?™täÈ‘Mš4Ñ~Ë… –/_.¯âÊ•+RA´(00P®V¾|ùÉ“'çuÓ}«V­†.Ú.Ú»`Á‚eË–‰µˆfжˆfÑB´H„WeÊ”džœõ÷íÛ÷öÛo?xð@ìúO>ùDÌ•š šóçŸÊ)6XÇn}‰ h7D*üõ×_º{ƒJ“µï±Ÿüõ*}‰C¥ kGòž={ÄZîܹ#éN�:‰°ˆ#<--íܹs±±±Rµ:Hý| úÑgÏýXÜ¢'?:ù%ÆûÅ_1M@¯^½zåÊ•Ù&îÚµK*T¨PáÍ7ßÌ–S©T;wî”Êõë×ÏÙsíÚµ&LHII¹¤!O·±±™={v^£ig^³fÍ|fŸ+UªT¶lY)sK#[…ºuënذ!¯!ЦOŸþûï¿K]ïihÏ­V­ÚÝ»w³5ÙÓÓsĈr++«ÌÌL…B±~ýú±cÇŠV_ÔÈg«e¥J•Ú¿¿ˆö�;wÄÅVɳÄÂýýýs&¹>ùä“���œ‹Ê6¾Dl^^«^·n�½½½X~VV–Ø~iüxmMš4›wæÌQNKK“³hÑ"í]ß¼yó .ˆ)Ò³ƒSSS³�$V±bÅ Ý]w_"2qÀÔ©SçúõëýõWÏž=uG[ÿ&7mÚT»¾ØÔ& õóôôÌ«‚XrçÎ�E¸lllÄÁ`ii)ö~£F�|}}çÏŸ¿páÂ~ýú‰X%&&Љ5Š 'NlݺµörÊ–-+ªuêÔIÔ IJJ�œœ^}õU???‡lõ %Úľ µÐ<ŽV÷Zôor½zõÄ#""Ä^[èîîÞ¦MÝ+ÕóPy‰5J;E¬«E‹YYYâí"¤¢QâóÒ·o_ñÙ³t�—­ÿ¤PölÒ'€Å-z&LˆŽŽ3fLþŸRPâ7Åš5k¤rÏž=u<ÅfÈÚÚºñéø»PlmÚ´)Ÿ5‹çw~ПøJüäÉù¥¸ÖÓ}5F;½h_�úùù™s¿+…É?#RN‚¤¤¤ä:à2`Pþùg‹-¬¬¬Äyǘ™¯·Þz«S§Nú?Ó¹8¯%ݽ{÷ªU«& 7nÜððð0ÐZ._¾ìåå%•·mÛfˆç¦@Q‘n‡ÊÆÛÛ;çD] DËÈÈ_&å—µk׿�ÊŠÉéEûjôÒ¥K 40Û`r^ ëÿø‡‡‡ÇÍ›7:Ô¯_?c^‘V­ZÕÈ×ÀF^#J:i”�7ÞxÃpÙg0mÒó–³!× €b…;Sƒ?~¼ø©ý FCKLL¼té’1 gü5¢¤S«ÕÒ(ðŸ~ú)ÑÀT‘€ nÈ�!ÎÎÎÇŽ‹ŒŒ4Î<èééiÌ¡Œ¿F”tG޹yófÓ¦M;uêD4PTÔjuê™ü dP$‚0¸Ò¥KOŸ>}ìØ±_ýõÚµk ½:µZ½xñâÁƒ­�Æ_#J:q̈…B¡Xµj•1×Û¸qcsu 9©Tª… JåÉ“'ó¬(tô€ŒÁßß¿I“&ÚØÈŽ;bbb>þøc£µÎøkDI÷ý÷ߟ={vèС>>>Dfš= £££çÎ�+~jO4h�¥¥eÅŠ§OŸ^¹reö=ŒÉÊÊjýúõ­[·ž0aÂþýû ·¢«W¯úùùÙÙÙ§iÆ_#Jº˜˜˜±cÇÖ©Sç믿6òª½æ°pºÀ.Àÿd¤Yœ—гmW¯BH p™fzÍš5+W®Ì6q×®]RÁÉÉiöìÙì{Y‹-–.]:zôèM›6 :Ô@k0`Àĉ»wïn´v�(醮R©N�:U¾|y¢€i3ÍtçÎ�׬Y“s–““SÇŽÙñ(£F� 7n\Ë–- 4í¶mÛêÖ­kÌF�(Ñf̘qìØ±àà`Ì�i& }||²�¿k×®MOOïÒ¥ËéÓ§ÝÜÜ }ùÆOê‘FDþmÞ¼yõêÕÇŽkÙ²%Ñ@1’šü±·oß–&(•J¢…šFýÈY[oÙ²eÒ¤IþþþÁÁÁf¥víÚgΜ? Š—ðÃÒÏßM’&¨Õj¢…‚4`l …bÑ¢EÄfèµ×^#˜KB0Ѓ  0ÐÀl¿YYT­GÀpx!0WÿN@×·¸Tzõ÷_B…‹40o圥ÿ•J%Á€ÂŃ  0†àæ*+Óâáµÿ”]ë(t$ æâ’ã œ­ˆdªtõÂ+©Ryòög˜*µZ�––Flmm qŒŒ4€)KKKÛ·oqèÑ£‡��qŒŒ1 Ah`ÖžªÔâç�;wììì”J%&ìôéÓæÙpö>PTH@³¶ü÷ôÿôô´Ð �H@Pˆ"##OŸ>ýðáì¬,WWWŸÚµk˜Ðf¤qãÆ666æÐÒôôô°°°¢Zû™3g>ýôÓ_ý5Ûô¶mÛ®^½º~ýúŠ0$ ̈�q0¨õë×ûûû«Õê&MšÔ¨QC¥R………=xð@Ì:yòd‹-Ž;Ö²eKs@(4{öì9rdïÞ½,XP³fMi¢Z­Þ¾}ûˆ#’’’ž?Þ¿ÿˆˆ[[[“gI€B;lذ ìܹSÎ> …¢_¿~6l�^Þºuëøñã„ æ€4P8¾üòË�Nž<9×¹}ûö­X±¢T¾|ù2á‚9``ÖÆ¾úï?ÞzÑÎÎŽh@YYYáááûöíË«‚B¡ðððˆ��åÒ¥K1˜ÐÀLÙY[Ln󟤳]�:âb€˜@–––‡Ö]'!!A*x{{1˜ÐÀL)ŠR6ÿ{A@`h©©©·oß sÀЀ1ìØ±#99ÙÅÅå›o¾!0ô€˜‹#_D¸»‡^½zÀø}údee%˜}zïÞ½ï¾û.�‚i£4`pîîî[¶lY²d‰ЦL¡PØÙÙE‚¡gA`$ A`$ A`$ A`Ö„˜'[[Û‘#GÊe…Ž4À\¾òàJª=q@îÜ#ÌÍ{M«`h Á0Ѓ`0YÑy1tÛQ�×,¥RIè@¡  ÌTzZê‰}»¤r»ïÙØÚ¦gÔ[¯å9+ïw©ÕjB  h`¦ÔjõÓ¸¹L@ Ð14À H@ ‚4À H@ ‚‡€ÉZµÿ—¼fuór#>ÀÐH@€Ér©âž×,¥²:ñ“¤V«·mÛ¶yóæ˜˜˜äääråÊõéÓgøðáNNNÆG0©©©={öT«Õk×®­[·®˜røðáwÞygþüù;vìèÚµ+!‚‘14`",X�žž~àÀ)û,tîÜyذa‰‰‰}úôyôè!‚‘Ñ`.:Û^i`—D SY¤Ý°z(•{Ú](egKL˜—Ëç ²ØïZ(B[·n�ŠŠ:tèæÍ›å‰¯½öÚÊ•+“’’öîÝ;räH¢c¢40ׯA– eUéŸ(˜€ØØØŒŒŒ-[¶ÄÅÅÉË•+'’’è”c£40S¶66ƒ}Û`òÔjubb"qpppP(L¿ÛÁ´iÓæÍ›×³gOíGÞ»wO*Ô¯_Ÿ#FFÀ”%&&6Œ8È�MØd�lùåñ³Zµj;väH€‘‘€ÌíûÑyÎ+{;¯9J¥’Ð@>ÅÅÅ­^½úàÁƒ7oÞLHH(_¾|Æ {õêõᇖ*Uª@‹zôèÑž={lllÄOb ## (˜�_æVjµšÐEëôéÓæÙpŸ"߆S§NùúúôìÙó…•÷íÛ7hРgÏžuèÐaݺunnn·nÝZ±b…¿¿ÿ²eË:T«V­|®÷Ñ£G}úô±·· ¤û3Š h`¦²²²î>Œ•ÊÕ\+ZZòpf¾äää+VÌš5+555?ƒq:tèÝwßÍÌÌüàƒ¶lÙ"�[ݲeË÷Þ{ïí·ßsÛ¶m{êÔ©š5kêXȳgÏÚµk'Y±bÅ�;w¾þúëì  ÐÀL¥¥gî=.•'{·”�-1æ I“&ÖÖf‘ÊÈȸpá‚ñ׫V«Ÿ>}{åÊ•£G�îÙ³çÑ£Gù|oLLÌÀ�333W­Z¥ýÔDi ¥RõÁHÃ:ç¥|ùòçÏŸ—6f×®]]»vmӦͦM›ÜÜÜøÀÈH@˜kkk6¨­[·2ÄB“2nРAÿþýÅ”ØØØü¼wÖ¬Yqqq¢0hÐ {{ûls«T©Ò£G�={öüúë¯ßÿ}ïÞ½_¸@…B!ªÝ¾}û³Ï>kÞ¼ùï¿ÿ^½zuöŒzÎ!@ayûí·¯\¹R¾|ùÊ•+Kã¼íÞ½;? èøøøÍ›7Kå¡C‡æZgÈ�!{öì…+Vä'-0`ÀäÉ“?~ðrŽ;&7nœWGGG77·¨¨(µZýóÏ?ôÑGÚsCCC{÷î]¦L™]»ve[H¥J•nß¾- W®\iРцÑ�€Œ²ªKÞó”Ä^Nxx¸T¨S§ŽŽjµk×ŽŠŠ…³gÏfK@ùå—÷ïß…ÀÀÀ¥K—jÏJNN– ŽŽŽ„ÆÄ@ËÊÊŠŒŒ”ʺsÄòܰ°°l³Ê•+'~Ö¨QcÀ€ÚÓÕjµ”³.]º´··7ц1‘€ŠØ�;wRSS¥ò+¯¼¢£¦“““T¸wï^¶Yo½õVéÒ¥:Ô¬Y3íé¿ýö[||¼(|üñÇô€†‘1À\<²÷*_¾.q€L¥R%”ú]*G•kVªT)b7nnn`&qâÄ“'O^»v-33óƒ>ضm›½½=AF‘  Ì”øZߣG�ü|Å`89¯Ô–‘‘‘×,¥RIô¦$99Y.[Zêzl›Z­–Ëò°ÑÙ”)S¦«�E‘# Ì”•••‡‡qŠV«V­^î�Ú×Þ˜í~ͺ¥§§Ëed‚âÏ’E«L™2ù¬™––&—XÅ h ˆ•+W.Ÿ5SRR¤‚B¡([¶,¡C1G(bÕ«W—ËYYY:jÆÇÇK'''Ý£EÅc@3•––vèÐ!©üæ›oæÐ= Ð¹»»ÛØØHã;'$$è¨)' ëÔ©CÜPü‘€f*+++22R.!++«úõ뇅…‰r\\œŽš÷ïß— $ Q"�€PdBCCuÌuuu%DóѺuk)}õêռꤥ¥]»vM*{yy4$ wwwsÝÜÜÀ|´k×nÍš5¢žW�ˆˆˆŒŒ ©Ü¾}{‚†â�qÊ€¢×­[7Q¸~ýº‹‹‹3fÌ7ß|#Ïzò䉿¿¿(888ìܹSÊSÅG*À\LØs®ü™'Äÿ»HO½zþŽT¾ø«•�1�ß}� (ÑäGØÑRIKK»té’J¥Š��½zõêîÝ»£££¥YS¦L‰ˆˆðññqssspp?+W®œíí“&MR«ÕÓ§O züø±ŸŸ_¥J•ÂÃÿúê«ÈÈȪU«׫W�#% h3rá‚`Púè£2eÊd” $ €B£T*Õjµž ñððX¼x1Á„  ̖¦Œ½\&rzû0çÄÛ·o眨T* €âÏÇLJ 02ÐÀLYÙØÖ騛8Ðáàä>9'Ö˜œKMý{º˜$ЦÌÁÁ! €8ˆ8ÀøH@˜2…BQ®\9â HXÀøbbb~þùgâsóÉ'Ÿ¼óÎ;)))„3A0¶;wî´iÓ&44”PÀÜÌž=;**ê�7ÞHJJ"(ÔjuZr¢ô�Á[ÀH@FuãÆ�Ö­[¿úê«sæÌ!07eË–ýé§Ÿ¢¢¢Þzë­ÔÔT‚"—•‘vãè.éŸ((tŒ ϳgÏÞzë­jÕªmÚ´‰hÀ<¹¸¸lݺµC‡cÆŒY¿~=s]îÌ9quŸD ŸH@F’••Õ¿ÿ{÷î8pÀÆÆ†€ÀlµmÛvìØ±K—.mß¾}Ÿ>} 8+[Ñ5çD¥RIdò‰!8#Y¿~ýO?ý4þ|¢37sæLGGÇÑ£GÇÅÅ L hÀ?~}ºdÉ’â0øFhh¨¯¯oLLŒ>¾ÿþ‡’§ˆ£QL ûúë¯ÇŒ³`Á‚lC1äz(Š€ØÙÙI/ùå9y*ˆdËŸîܹ3ÿw³&%%‰EñL@›XÅ6T­ZõÎ�;/^ä¤ €é!mÊüüüž›Xennn/5R³hæ{ï½÷ÂjbÉâ|ÅoŠ hs´mÛ¶¾}ûþï °¶9r¤ô¬¼ß~ûM÷{]]]OŸ>íîî.O±±±=ztÍš5{ôè‘••пÿlÃIÔ_|ñàÁƒû÷ïþùçÙzݶnÝúÈ‘#�:u INN^»víW_}•ííëÖ­sE¡téÒ‡Ö~ B¡må•Wºwïž‘‘‘×è¿Éßÿ-~æìjˆVë©|ùò¿üò‹§§§áöì¬Y³.\¸ uëÖý׿þåââ"ϲµµ¡···X¾J¥Úºuk¿~ýD{‹óçÈÎήQ£FÆ\£‰P&ÝðìÙ³‚¾ÑEƒS:ô‘ž‘ré¡TîàåjcmILÔß«ÞÍej·ÅD˜0.´ÌN_�l=<<¤ÂÇu¿}Ù²eÚÙçÿ}mîÖmذaRyÁ‚zndõêÕ�;ѯ_¿\ŽZKË�?þX*Ÿ;w.ÛÜŒŒŒùóçKå9sæhçŽe�;wÎuÉ…µÙ“'O,´º6®Õú[¸p¡vö¹Ð÷¬ÅòåË¥†åš7|õÕW¿øâ ©­f@éÞ•J•––ÆŽ†‘ef©Ï\�‘þ‰2`hJû\þå@ €)¡´Ùùè£�rN”ÆâRRRt¿ý­·ÞÊkÖ”)S¤»øCBBž|¸K—.¡¡¡ù|TPXH@£0©Õ…3€æ„ –.]*¿¬U«Ö믿^¯^½úõë×®]ÛÅÅåìÙ³o¼ñ†îm°´´Ô³/½YÙ²eSSS_8°‰þ­.þ{V^ {¹ÊØL¨R©äÏ ;ôwûöí®]»6nÜxß¾}ò]§Ç��‹‹ œ{æäêê*"##u¬%==ÝpK�ÙÛÛ?yòDί®ÕúËÈÈÐ1Wÿ=[µjU©pñâÅ>}úè¨)uµªT©RTÇy–†µu1:Cšp“’’,4Ùçü kxᙯ¯¯J¥Ú¼y³œIˆ��ýꫯDáîÝ»„FFóóÏ?÷íÛ7×Y—/_I{¡íÛ·K…?üpÓ¦M}{«V­¤ÂO?ý¤V«ó´úàÁƒ†[‚¬J•*âÌoèVëïèÑ£ï¼óŽáölË–-·lÙ" ?þøãܹsóªvÿþý?þøC*ûøø¼ÄoYýC%Ž�¸¸¸   wß}7¯j‹/þôÓO «×¿àìì|ïÞ½¼F0½Ê¤Ao”J%'XÀ@ÄW}ñ�8899é¯sñ·}ûö°°°ñãÇË=™¤¶÷èÑã×_Í+« hL@@@^§ª9sæH…7ß|³|ùò/½ ù—¢Ž‡­éè}ܺukgg瘘˜¨¨¨ï¾û®ÿþ9ëÄÇÇoÛ¶ÍpK�Õ¬YóÌ™3ùŠWÏVëoÓ¦My%  eÏúúúŽ3&55õÊ•+»wïîÕ«W®ÕæÍ›'õÅnÚ´iíÚµ º–›7oæ÷Ü÷ßι9û§ïÛ·OpyïÞ½:ò§£G�îØ±c¡dl%ŽŽŽ:ÆŸ5½Ê¤H�58Á@þ=|ø0çÄÛ·oçœÈ_øÒ%§‹‹ qˆŽŽ×û&ßLqa(~vïÞ]{¢B¡æ@‘ �‚ Ù±cGÎt@@€˜n¡&búôé9ßøå—_.Z´ÈÉÉiË–-rã\ÕªUK^—¯¯o®u>œ×ÛíììÆŒóù矋ò'Ÿ|"Ö•3±5tèИ˜Ã-![[=z”••¥û¯¬z¶Z6qâÄM›6¹ºº5oÞ<ÿ{ö§Ÿ~úñÇsæ _¸gó¹Fñ]gäȑ˗/åQ£F5kÖ,gT8°nÝ:©}ší± ™™™ .Ìg{å¿_¾|9[À�?.jÖÔõ´:[[ÛF�í£gz”I èúõës‚€üËÏ_ø$…x³(þ®_¿! /Ñ' 0KB€‚>|¸öè±±±'N¥—Ó§OÏ9JÃÉ“''Ož'΃ï¿ÿ¾îN£¢‚TX½zõÔ©S³Ý%$N£ X¼x±ô2%%%çàÅb{êÕ«g¡Éü¶mÛV;o?pàÀüQwõ_‚¤Y³fšá•sí‘T¸­víÚµdÉ’gÏž]½zuÈ�!ݳƒÖni~öl�Ö¸`Á)ÉøøñcÕ£G�ʳDsÖ®]Û»woé"yèС=zôÈu!îîîRaãÆ�ÚÓE„ß~ûí'Nä³±íÚµ“ K—.•MkÍÙ³g�…æ�Ãyý% ¨˜doݺ•˜˜h¡5ô ÀBÓo}Μ9-[¶¬X±¢­­­³³sûöí׬Y£ûASòu½««ë™3gÞxã�F�)•ÊaÆýý÷ßDE‚Ц,&&æ‹/¾ˆŽŽÖž8hÐ KKK''§iÓ¦‰“Ѽyó.]ºôüùsiî³gϤÞÍîîî3gδ··Ï¹Ø¤¤¤nݺyyyyxx<|ø0<<<%%EšõþûïK‡³9{ö¬\¾{÷®8‡ê¸ç¥U«VÇ߸q£Z­^°`Á²eËš4i"65!!áêÕ«Ù†³k/[¶¬hN™2eD‹¤héÒ¥wïÞ-ÎË�?«ëÒ¥K­ZµêÕ«'¶344TÞZÉÍ›7¥&7lØP,Aš¨ÿä¶H…¿þúKwoPý[-\¸pA®#vë•+W Ô«T¬K´T´B46Ÿ{¶@kQݳg�XÅ�;wDT;uê$bÒ Aƒ´´´sçÎÅÆÆJÕ:tè õóÍUïÞ½¥^º3fÌáo‹K;þ¼v/ùH1Gr… ²-GÌ�;wndd¤8½½½›7oîâârùòå[·nIFŽ)vA±úD›dÅz¥ÂKŒX %È©S§|}}zöìùÂÊûöí4h�¸4—xëÖ­sssW[+V¬ð÷÷_¶lÙ¡C‡ä©³æRA\'Š7þøã�‰‰‰ ×ûâeÇŽÙ02«Y³fSµhÑ¢¯¾ú겆ö™H¼üóÏ?K•*egg7pà@ñòúõëÒÜŒŒ ©~hhhíÚµ½½½¥é³gÏ– k×®=~ü¸¨}õêÕû÷ïK]qmllæÎ�+N‚¹4‘™™)=?ÍBsWþ”)Stoy·nÝÄÉñ�?þP«ÕbùQQQâT›�� UhÒ¤‰R©”Ò²báIIIñññ¢âD,UpvvîÑ£Çï¿ÿ.=ßLšû÷ßK[[·nÝ3füüóÏšÞÄR“E»Äzå�ô_‚P¶lÙíÛ·ÇÅʼn`¶oßÞЭ~úôé÷ß//°yóæòÌ‹ØkÒƒ7lØpìØ±‚îÙ‚®±bÅŠýû÷¿¥¿»JÛ™œœ,^ŠUŒ3æ›o¾g^Kðññ9}ú´Ô£\DææÍ›bkåq0«U«&~=kÉgΜ©Q£FαA¬­­Å/݈ú"¢½bK¤ÇEŠhŒ5jåÊ•y=²™^ÅÙF6&L0PÐbbbÖ¬Y#•Å÷¼W^y…ßÐ>’›þ—<²9P"äÿ‘Å|Û`Ú²²²ž\¥R�:uª|ùòD$<�Ë9!¨MžûøñãÌÌL+++í¹�;w—ê6l5jT­Zµ¤‰û÷ïÿóÏ?GŒáëëK¨ad$ ‘'qÂZ³fMLLLÎYNNN;v$D%NýaaaãÆ�kÙ²¥�Æضm[ݺu�Ù(ã¯%ÚŒ3Ž;ÌaÚ’’’ä²���Žš¶¶¶R!++ëÙ³g9ÇëØ¼yséÒ¥Û´i3vìØjÕª�;w.((hÞ¼yS§N%Î0>ÐÈ“��O¶ñ7 ¿µkצ§§wéÒåôéÓÒSk —ñ“z¤‘â;ÐêÕ«�;Ö²eK¢Ú^"m¡y®IÎ âí6l¸víZhhèýû÷Å%Ø´iÓt�+  hÀ¸9kë-[¶Lš4Éßß?88˜€À¬Ô®]ûÌ™3†~'P0©ÿyø�;w¤±ì•J%Q€ñ%''ËeKKK5Õjõÿ¾ÏþwØèœêjX9Ѐ±)ŠE‹˜¡×^{�  Ø ?,ýïéé™óÛ<`4ÚýšuKOO—Ë¥J•"t(æ, P´Ê”)“ÏšiiirÙÞޞС˜# ±råÊå³fJJŠTP(eË–%t(æH@s¥à‹Š‹êÕ«Ë嬬,5ãã㥂“““îÑ¢�â€c˜++†€âÂÝÝÝÆÆF*'$$è¨)' ëÔ©CÜPü‘€Š˜••Uýúõ¥r\\œŽš÷ïß— $ Q"Ðñ˜±�K¥ÿÿžãK0P´Z·n& W¯^Í«NZZÚµkפ²——ACñGh`ÆÊ9Kÿ”ÿEHPTÚµk'ÂÃÃ󪑑‘!•Û·oOÐPü‘€æ*+ÓâÑMéŸü%(*ݺuspp…ëׯGFFæZçàÁƒRÁÓÓÓÛÛ› ¡ø# ÌUV¦ÅÝ0é h¹Ò¥K÷êÕK*ïܹ3×:[·n• cÇŽ%b(`..9~ÑÀÙŠ8@¦JW/,“JP|Lš4)(((##cÉ’%~~~*TО{üøqiè† 6Œp¡D 4`(™™™)))R911QweOOÏyóæ‰B\\ܘ1c´g=yòÄßß_vîÜimM¿R” ©@¡IKK»té’J¥Š��½zõêîÝ»£££¥YS¦L‰ˆˆðññqssspp?+W®œíí“&MR«ÕÓ§O züø±ŸŸ_¥J•ÂÃÿúê«ÈÈȪU«׫W�8£¤  Ì×S•Z*ܹsÇÎÎN”J%a€>ëÙ³§¨2`À•JåèèX¿~ýQ£F}ôÑGeÊ”!È(AH@óµü÷ôÿ<=¥‚Z­&,ЇR©Ôÿ[¥‡‡ÇâÅ‹ &Lc@ ‚4À ‚À”999ÉÁ3ó8ÀøH@˜2KKKgggâ hNA„`ô€fÊÎÚ"ldY©ì0é¢B¡ &P¸H@3¥P(U¶úÏ‹5:†à h€A�€c@ÌÅ�/"Ü݉C~ôêÕËš™ššºvíZ©üqjª��»  h`¦ÔjõÓ§Oå2€Bǃ  þŸèèèÛ„ '†àÿ�¿¿¿T`T €žè 0Ѓ  J$…B¡ý’Ä–¬¬,g hP"YZþ¿´Fzz:1P(222tœmP°s5!%‘B¡°µµ•_&%%…Bû|"Î3ô€Ö‡5!ÚV¯^ݵkWâJ‡¸¸8©œ��àììLž€žÔjµ8ŸhŸgˆ‰>H@€ÿÇÅÅE©TšCK---===å2»€’H;�žž~ÿþýªU«’ƒðÒÔjµ8“héS®\9¢ÐÀLÙÚÚöíÛ—8P¢•*UÊÆÆFN%&&FFF–+WÎÞÞÞÚÚš¿1ȧ¬¬¬ŒŒŒ¤¤¤„„íì³8ÃØÙÙ}�€%•B¡¨R¥ÊÝ»wÕjµ4%===Nƒà(”3 7Uè‰4À\têÔ©AƒÄÀÄ”)S¦ZµjÚ9hПB¡çq†!zâVP²I9hB Pˆó ÙçÂBh`¦233oܸ!•k×®meeEL(¹Ê”)S«V­ÔÔÔ„„„ÄÄÄ´´4b  lmmÊ•+gggÇÈ……40Sééé;vì�Ê“'O& @I§P(Ji¸¸¸¨Õꬬ,å�ÿˆ¥¥%IgC  L�B¡à¯ËP04À H@ ‚4À H@ ‚4À H@ ‚4À H@ ‚4À ¬ 0O¶¶¶ƒ–Ë  h`¦,--•J%q^yü_{÷_E¹à8„ÒE¤ˆ¨ ( è½(�f§ê ,õêÝ»WŶ6PDT¬«¢ÆFQÖ†ˆ¨”Kå¢@¤„$$¿ÙÌîùåC‰Í9<Ïçóž9ïÌ™óμ™™/Ã;Q@ 4‘04p�Ú¹sçÈ‘#Ãr¯^½<‡à€@�ÈvìØ+/Y²Dƒ°Ûîñõ×_‡å&Mš”*UJ›Dþ+ÐüW¦!4‰låÊ•±ò\ AØ—áÇk ¢+Ó“N:é ýùÆ€ ‘mܸQ#àÊô�"€ ‘mÞ¼Y#àÊô�bY‹-båÔÔÔã�?¾�3öîÝ{æÌ™Áì/¿ürá¿.QçJÔŸ¶dÉ’ØÀ,cÆŒ©_¿¾.Ãé/ÕÚFý½vù¿qi¿çŸÐÂÏâO™­GëÑz´µÕ£‹f�^¸pa÷îÝ÷¼2=  Hd*Tˆ•�?þøF�rƲeˆ¯…Ÿ%�çJìŸ .ðöoFØoÜ©’µ�ú{ìòãÒ~Ï?¡û÷]þ”éÑz´­G[[=ºhöèüW¦!Cp 4‘@ 4‘ðB؋޽{·mÛ¶nݺæJøŸ‰±SýQkõ÷ØåÿÆ¥ýžBýMÓ£õh==Z�Ö£F±ÜÜ\­@¢úæ›o7n–,XàIâØ=Ê=УO†à h"!€ h"!€ )š€vøá‡80VÖ Ø=Ê=УOÅrssíp†à h"!€ h"!€ h"!€ h"!€ h"!€ h"‘¢ HHÙÙÙ_ýõ¼yóÒÓÓ«V­Ú AƒSO=µX±bZ€x´téÒûï¿¿iÓ¦ (ä,™™™_|ñÅ·ß~»yóæ5jœp '�t’–„„ì°[·n�2eJð½Û¶m;òÈ#O<ñĆ Ú�¨}vÆ “'O^±bEVVV�:uN>ùäºuëå@�hvíÚ5tèÐAƒ­Y³&8‡¨U«ÖÂ… —-[V¿~ý»îºëòË/×DüÆÓM€ßÓ÷ßü™zõÕW³³³X˜Y¶oßþÀ 6,¸¾mÞ¼y•*UæÌ™³jÕªfÍšÓ;vì¨U!a:lzzú�wÞùâ‹/æææ¶lÙ²L™2³fÍZ¿~}›6m‚óáV­ZÙ(�H}våÊ•ÿûßG�]ºté`ö`ÊÌ™3322:tè0dÈ�c�=¶h¶s±à×ÚÛH›6m:ÿüó'Ož\¹rå·Þz«mÛ¶ÁÄà`÷Ê+¯ôíÛ7++ëšk®yæ™g’“ BÅî§›wß}·6Š”eË–¦FŒü™ §æ�UpiÚ©S§ }ôÑo¿ývÓ¦M“òþcÐàÁƒƒKÖbÅŠ Ì£y!:ì¼yóÎ=÷Ü~ø¡eË–£G�®W¯^01###˜wذa%K–|ê©§®¾új[£Ï~úé§ÝºuÛ°aCÇŽ_~ùåªU«ׯ_ýõ׿ùæ›*Txýõ×»téR[»¸k-FffæÙgŸ=mÚ´àÀÿÁœ~úéáôàm³fÍŽ8âˆñãÇÏž={Û¶míÛ·×\ùéæ_ÿú×k®¹&Ørrr‚)móh ˆX½zõm·ÝöÚk¯Õ©S'---¸Ô §ÿâ«uëÖµiÓfÑ¢EeÊ”™:uj£F�ÂéÉÉÉþ󟳲²‚‰Ÿ}öÙá‡~òÉ'kgˆë»xñâàt7øöêÕ«5kÕªN/Y²dÇŽƒOçÌ™óþûï7oÞ¼ÈÞ úláûì_|Ñ¡C‡-[¶œp üñ¡‡NVæÂ /œ¼ð3^qÅK—. 7Þxãž—¯ÿøÇ?‚‹Þ 0`À€Y³figˆß›••œñ®[·.(ßu×]‡~øn Tºt霜œK/½tåÊ•6ÄuŸMOOïÑ£ÇöíÛƒò#�<ÔÌÿiJJÊã�?^¬X± Â…^¸uëÖ¢ÖæhÄœ9sbgýû÷ß³Bp<¾é¦›Âòm·ÝûŸV8Ý(jêÔ©S­Zµ°þÿÜÂ;vì„ ÂC^pm¼g…2eÊôíÛ7)ï? ‡Bí ñÛaŸ~úéàì7(”/_¾OŸ>{Î^£F�îÝ»…Í›7ßu×]6ÄuŸ½÷Þ{üñÇ pÌ1ÇtèÐaÏÙO<ñÄÓN;-)o��G}´¨µ¹€ñÐC…6¨^½ú)§œ²×:çŸ~JÊÿ<€wñâů¼òŠFsº©A€¢¯ðÏ-xðÁÃB«V­jÖ¬¹×:]»v “&Mš8q¢æ…xì°»vízä‘GÂrçÎ�K•*Uðì#FŒÎ~mˆÓ>›žžþÌ3Ï„å‹/¾x_k›}ðàÁ7n,ZílW lÙ²e̘1aù´ÓN+V¬Ø^«UªT©I“&aùÕW_ÕnN75�0-ZŽCˆ=aO�7®\¹²C!Äu‡ýä“OV­Zõ‹³ÇΊsrr^ýuÍqÚgSSS333qöØG[·n�]•+/û àË/¿Ü±cGX>餓 ¨ûtêÔ©±“ˆwS¦LÙó`·W'žxbX®NcGO Ž:l!g¯P¡ÂÑG–ßxã ÍqÚg 9{Æ 9ä�¢ÙåÐ$‚éÓ§ÇÊ 4( æñÇrrr>ÿüsMÀA{(Ü´iÓܹs5Ä]‡Ý�Ù¿ûk×jyˆÇ>›½R¥JU«VÝ×¼)))±G#N�:5 ²ˆ@�bÿ*)ïé ÔÌÿé¼yó4…@uØÜÜÜ3f„SÊ•+W¡B…BÎîœ ûìÚµk—-[V˜¯Î_!##céÒ¥E§Ð$‚Ÿ~ú)V®^½z5óúÍ7ßh:ìPX¢D‰*Uª8B¢vØM›6mݺ5œrÄGüEú;Ä{Ÿ-ü¥nQîòhAzzz¬\®\¹jæÿtݺuš€�““³yóæ°\¶lÙ‚+;B\wØÂŸ÷êï�}61º¼€D�ÿ¨{ðÂ^åÿ4vqmãÆ�±¡ >:B¼wØÂŸ÷êï�}61º¼€D°mÛ¶X¹dÉ’…<$gddh:ªã C!Ä{‡Õßá ê³‰ÑåÐ$‚2eÊÄÊYYYÔÌÿiþ¹à`8:B¼wXýª>›]^ @"(_¾|¬œ™™Y@ÍüŸæŸ †ã C!Ä{‡Õßá ê³‰ÑåÐ$‚5jÄÊùÿ�Òž¶oß+W«VMÓ�J”(Q¥J•=�t…�x¶ðç½ú;$@ŸMŒ./€ {ì±±rZZZ5óÚ°aCM@‚ 3337mÚäP‰ÚaË–- ¤ >ïÕß!úlýúõ“““ã½Ë  H�7Ž•W­ZU@ÍŸ~úi¯s€C!6VظqcÁ÷cêïï}¶T©Rõë×/ÌW矽téÒõêÕ+: (€ œyæ™±òâÅ‹ ¨û´X±bù瀃íPX¡B…–-[j:ˆ»»³7lذzõêZâ±ÏÆf_»vmÁ÷_/Y²$,´mÛ¶xñâE§Ð$‚-ZvØaayöìÙÔœ1cFXhÞ¼¹�ðHg�uVìR³�‡ÂöíÛ§¤¤h:ˆ»{Î9çÄ*0{ffæ‚ ÂrçÎ�5;ÄiŸ�Íž››ûÏþs_³/Y²$==½hvy4‰ 8¸üòËÃò矾¯j±ã}¬>$€*UªtéÒå…Ë–-‹ýÿ\‡BˆÓÛ¬Y³¦M›þâìÓ§OÏÎÎÖß!Þûl§N�?üð_œ}êÔ©a¡T©RÝ»w/R (€ A\wÝuÅŠ K—.�3gÎ^ë¼÷Þ{á�[*TèÓ§�F ‘Üpà aaòäÉëׯßk�ÔÔÔ°P¿~ýص4w66ûرcc‰Õ¾f?ãŒ3š4i¢Í!NûlÉ’%¯¾úê°üÖ[oík c³÷êÕ+XhDƒ ®¿þú°üä“OîµÎ°aÃÂÂ�wÞY¾|y�@Ñ·aÆX¹à'µoß¾S§NA!¸²>|øžvîÜùì³Ï†å|09Ùõ Äk‡íÓ§OxCåºuëF�½çìëׯ5jTRÞÿ|à�lˆë>{ûí·×¨Q#(Ì�;w¯7A÷ÝwüqP®sƒ«Ý¢ÖÎN8H?üpø€à—_~96öVÌÈ‘#§M›N?ýô[n¹EsQøÓM€?И1cbåàš377·€ÊÏ=÷\åÊ•ƒÂ Aƒ–/_¾Û§ƒ^¶lYRÞìíÚµ«¶…øí°%J”Îx9ä� |ÇwÄ~�ùûßÿ>¬ì?þã?Z·nmÓ@\÷ÙC=ôùçŸCíàbvÇŽù?ÍÉɹùæ›wíÚ”üñ£Ž:ª¨µsñ»ï¾ÛÞ@b(Y²d·nÝ&Mš´jÕªàL¢U«VuêÔ ?JMMíÓ§Ovvv‡Þ~ûíÒ¥Kk.†>eÊ”°œk^yå•á(.¸àò›o¾ùç?ÿ9tèÐ!C†Ä®‡W®\¹`Á‚à"633³T©R{Î*T¨pÞyçM˜0!---x=ýôÓÃ'Æ »ýöÛƒòW\\ÄÆ¦Äi‡=âˆ#Î<óÌqãÆ­^½zòäÉg�uV¥J•‚é;vì¸óÎ;Ÿx≤¼Hë¾ûîs† Ðg�9昦M›Ž?~ÅŠsæÌ9ûì³Ë–-Lß¼yóu×]\䦤¤ ¹öÚk‹`›+8Ú€¸“‘‘qÏ=÷ >|ëÖ­ÁºvíÚ‹-ú׿þU¹rå¿þõ¯·Ýv›KîƒütsáÂ…?ýôÓûï¿ì$ám¡‹/¾øÒK/­[·n�:u;ì0mü�Ö­[÷‹£74(8®íköà öÕW_ÍÊÊjÑ¢EÕªUçÏŸ\¯ÖªUkàÀ�±q$�è°Ë—/Îoß}÷Ý”””`ö *Ìž=;--­Aƒ>øà\`A"õÙyóæÝzë­'N,[¶lË–-ƒ…Ìœ93===(?úè£mÚ´)šm.€ 1mÛ¶mêÔ©ß~ûíÖ­[+V¬Ø¸qã?ÿùÏ%J”Ð2N7Ëé&@Ù¸qã”)S–,Y²}ûöJ•*�x≭Zµ2î3$d‡MKK N}—-[–••œê´hÑ"X‚V…Dí³+V¬˜6mÚÊ•+srrªW¯~Ê)§wÜqE¹¹ÐD¿~ 4‘@ 4‘@ 4‘@ 4‘@ 4‘@ 4‘@ 4‘@ 4‘@ 4‘@ 4‘@ 4‘@ 4‘@ 4‘@ð[ýüóÏGyä;ï¼£)€üÐüV£F�úñÇwíÚ¥)€üR4P”­[·®N�:Û¶m; K1bÄå—_®U¸Q£F•/_¾K—.6�Ÿ(ÒÞ}÷Ý0¾<âˆ#úôéÓ¦M›ºuë–-[69ùþCçÎ�; 0~üø°òßÿþ÷ NéÒ¥ƒrnnnffæš5k&Mš4hР­[·† ѤÜ÷ßÿÕW_]~ùåaËÛ|@Œ(ÒRSSƒ×‹.ºè•W^)W®Üž¶lÙÊ”)sç�wî–�sÌ1mÚ´9ùä“;vì¼mР�&=àF�¼öìÙÓævc h èZ·nÝgŸ}Ö±cÇ·Þzk¯ñevvöŒ3ÂrëÖ­÷¼7Ô¡C‡cŽ9¦lÙ²µjÕÒªܨQ£ªT©Ò®];›Ø�; €¢ëÝwßMIIyþùç‹+¶× sçÎÍÈÈËúÓŸ XT½zõÊ•+·¯å°ßæÍ›÷Í7ß\ýõÁ–²ù€Ý¸(ºRSS{ôèQ³fÍ}Uøâ‹/bå‚ÌÜÜ\8DaäÈ‘Ák¯^½l>`Oh ˆ p¸òÊ+ ¨3mÚ´ÿ½¶INnݺu5þùçãŽ;N«X¹¹¹£G�®]»öžñ±Í$  €"ëÝwß­Q£F›6m ¨»…¶qãÆ+V, æ?üàÚ.hÿ+V\rÉ%{ŽaóIh ÈJMMíÖ­[Ãþ®Ì– À!==}Æ n¡=àF�¼öìÙÓæöJ Qëׯ¿ì²Ë ¨Pø„3226l(Á<°²³³ß|óÍ a›5kfó{•¢ €¢iöìÙWˆ� œôK f­Zµ.\¨I¬‰'þüóÏýúõ³ù€}q4¯b·ÐÖ¨Q£nݺäw6räȤ}Œ¿aó!4—222æÎ�– ¾–(dffŽ3¦eË–õë×·ù€}@qé믿ÎÎÎËÌßß{ï½·yóæý¾ýÙæ€ƒ„ˆK…A˜(Œ5*99¹G�6P4—b#—)S¦Y³fä÷´yóæ &œ~úé5jÔ°ù€¤h îäææNŸ>=,·jÕ*%¥H_Úäää¬Ïç¼ó΋÷öç�w233{õêu0l>à·p˜âÏÂ… 7nÜ–‹þS¦L9ãŒ3bosssã½ýGŽY²dÉ‹/¾ø`Ø|Àoa þÄpHЇ³mÛ¶™™™¯¿þzb4~ZZÚ§Ÿ~Ú¡C‡J•* ›ø-Ð@ü‰=Â.99ù”SN)ú+\ªT©îÝ»'F㧦¦îÚµ«gÏžÏæö›ˆ?±[h5jT±bŸXç„éxÔ¨QeË–ý-#YÇãæö�ˆ3k×®]¼xqX6€ÃïlùòåÓ§O?ÿüóË”)có¿H Ä#ÿ�F�¼öêÕËæ #Eñ%6‚pR!Ì-[¶Ìš5kÆ éy®¹æšŠ+S¦OŸž™™yÌ1Ç´oß¾téÒ{�wÁ‚_}õÕÚµkkÕªuÎ9ç~øáל9s‚%¯[·®zõê§�vZݺuã/ýU+°zõê &¤¥¥Õ®]»S§N‡vØúõëƒ)?ýôS—.]7n«¹cÇŽO>ùdÑ¢EÉÉÉM›6 Vµxñâ…\¥‘#GV®\9h´ßgóeeeÍ�;wíÿéׯ_©R¥Âßõã�?Ö¬Y3ø¥UªTÙï•)`ùA{yä‘�;w®P¡BX9##cüøñ+V¬¾±C‡Á·¨= ˜ˆ3±[h«W¯~ÔQG\ù»ï¾ëÝ»÷?ü�››¼mÑ¢ÅÃ?\·nÝSN9%++ë¶ÛnëÛ·ï Aƒþíßþ-ÿ\Ë—/æ –T«]»ögŸ}vÕUWõë×*Q¢Äžß²lÙ²«¯¾zÉ’%7ÜpC�:uÒÒÒ‚B0ýõ×_¯T©Ò¾Öí믿>õÔSwíÚ¾­V­Úøñã[¶l¹+pß}÷ :ô–[n9ú裃Ê×_ý%—\2oÞ¼‹.ºhìØ±O=õÔÊ•+Ú©©©AµÓO?½S§N?ÿüsð-åË—ã�75jô‹-¿ ϵ×^»×uˆbó­^½ú´ÓNÛ¾}{ø6h„·ß~{Ô¨Qçž{nåÊ•´sð‹‚ßÛp�;w^·mÛ¼�4iRÛ¶mƒÂÎ�;O:餠6oÞ¼}饗‚^ðò=ôÐ|0hÉ ƒæúè£�‚ýä¼óÎ 6S0{ð½Ï<óLŸ>}ö{O>|øþçþôÓOáÛråÊõïß?˜”W­ZÕ Aƒ-[¶åâÅ‹÷èÑ#Ø‘t|âTñ»ï¾[+ñbçÎ�7ÞxcÚvèС{÷îׯY³æ€:uêôüóÏogΜùâ‹/öîÝ»iÓ¦§œrJPHMM}öÙg+V¬¼�ÍuÞyç}ûí·÷߯^½N8á„sÏ=·|ùòÁÕÓâÅ‹»víºÛW|óÍ7mÚ´Ù¾}ûìÙ³Ï>ûìÆ�·nÝúã�?~ë­·222bÙhàž{î ^cWaÁº/^üÓO? æzã�7{ì±ØMµ¿jzè¡;î¸cÈ�!7ß|sðí]ºt™7oÞ«¯¾ú /?0øŠC=´cÇŽAͧžzꪫ® ª 6¬I“&ÁO–|ïˆ#‚š¿8¬óã�?þùçŸ?úè£û}s÷¯Ý|ÁvùÇ?þѹsç`«åææM1mÚ´×^{­E‹Í›7o×®]°2~øa°Ì0~é_þò—à·?0'''(„«4 7ÜЯ_¿ M¶mÛvÁ4kÖ¬0Ë4hÐ|жmÛ yÇŒ´X0c° ‚·ãÇ�¿úê«Ë•+·{ZË–-o¹å–`õÆŽ¼ýþû lëë®»î•W^©_¿þ_|l2€øe h žÌš5kÇŽa¹ð#‡·†Ú°aÃØôòåËÿ×ýWPøÛßþ6oÞ¼Øô™3g®]»6¨›Ò¿ÿ#�ú(8â�(¢J”(‘‰è”.]:,ddd„…à{ïºë®áÇuÔQýúõ»å–[êׯ߻wïW^ye·y7nܘ …Ñ©S§'žxâÆoœ{Ýu×íY§ð+иqã3Î8cÒ¤I³fÍjÕªU8ñ“O> ^ «¶mÛ¶°0hР=cø‹>ýôÓ´´´ë¯¿¾n¾8²çžºæškÆŽûòË/ßsÏ=Å‹OMM=ÿüów»«â”1 €ƒ]láðFæ´´´æÍ›?þøã—]vÙܹsÿò—¿„ƒTìUÍš5“òÆš(äw•*UêÍ7ß¼à‚ žþù¤¼GÒíy_ó¯Z�¤¼ñ:’òžR¸zõêÜÜÜI“& 6¬[·n·Ýv[¬Nìí†-.À¨Q£’ònR¶·À=-¦C‡µjÕ 6Íÿ÷'€Ä"€v_|ñEðÚ¤I“ðÉr\¼xññÇÿÌ3Ï„Cýîé»ï¾ûᇒòO¼Î›7o¯Õv»Ñ5P®\¹p‹:ôîÝ{óæÍ×^{ínu~Õ FŒ1räÈN�:uíÚ5ø<ðÀÓO?�šššÿ�{ÁO > K–,Ùë ÈÐwìØñÎ;ï4oÞüØc��÷m½çã ÿÀ=-¦xñâ}úôIÊ‹ž.\˜““ެ @ Dö|Z]zzzøt¾o¼1œ2eÊ”àõì³ÏŽ ©ÊŸ]Ž=úÓO? }ûö-V¬Øüùó¿ÿþûÝ–¼k×®SO=µ€çã 2¤F�&LŸdó«V )o|ŒÆ�8pÚ´iÁš|üñÇ{}T`øßzë­ìììÝ>ÊÍÍ ¾.6LÇn‚5Ü´iS|Ýþ>†1'''ÿÄõë×/[¶¬èìiù]uÕUÉÉÉï¿ÿþý÷ßÍ5×èª$ 4pyà�v›r×]wmݺµC‡W]uU8¥jÕªIy�õË_mÉ’%Ÿ}öYÒÿešÁk‰%‚ÂÉ'Ÿ|ÓM7oï¸ãŽÝ–üÒK/‹ «íÕ¡‡:|øð¤¼Ášó‡Ë¿j’òâã!C†ì¶î)ø�;v\³fÍèÑ£wûèÙgŸ=óÌ3÷õ¨½‘#G&''_rÉ%q´¡5j¼®[·.ÿÄ •;ì°¤ÿ¹ûßÓò«S§N»ví²³³ß{ï½=zèª$ 4pY¿~ý 7ܰiÓ¦ œ™™yç�w>ùä“^xajjj±bÅÂ:<ä�C‚)áÀÇ�Ù³g÷èÑcذaAyÖ¬YIycn´nÝ:ütРA}ûö *÷ïßëÖ­IyéðóÏ?ÿÎ;ïÜ{ï½±¯ï½Ý²eËêÕ«c;wî\¶lÙ`­ºuëã×®@×®]_z饪U«6ÈÓ¸qãà£îÝ»?üðña:Á –yÁ-ðÆo„�õÎ�;Ÿx≠&옆‚~ÿý÷Û´iŽvý‡HOOgéÒ¥ù§[0ÒzÏqEn¿ýöR¥J½øâ‹Û·oOÊËè_{íµàµaÆÁÛG}ô¡‡š4iR!—¿Ûô]»v-_¾üðÃaÆ-X° lÙ²¥K—¾è¢‹n½õÖR¥JÍœ9óÒK/ ¾:–¡D‰uëÖ9rd‹-Z¶l|.!¨ü§?ý)øÒ_»ß|óM›6mÒÓÓ÷üÕÁ2‡š˜éàpܸqÇ_¹re°&eÊ”éÞ½{¿~ývî#fĈW\qųÏ>Û·oßß«­Zµê¬³ÎZ±bE˜#›©víÚûÛß‚­4Â?ü&þ�êÕ«_yå•÷ßlÞ Y‚¶š;wnðÓ‚�rÉ%—Üpà íÛ·Ÿ?~•<Á6ºøâ‹ ¹üš5köéÓç¾ûî;çœsf̘kí`9]ºty饗öoOË/Ø=‚mýñÇ;† @✃  €ƒââçÿbÁºuë&Òï1bĵ×^ûÈ#�ôéÓ§\¹rÁ”ìììM›6-_¾|Ú´iƒ^µjÕŒ3N<ñÄý[~ÇŽ'Nœ¸fÍšpð ¢ÛÓ‚MvñŇw¸@Â0@¼Z¿~ýµ×^Û»wïo¼1LŸ)))•+WnÞ¼yÿþýÇ�·k×®ðÙwûaíÚµŸ|òÉ9çœ#}þ¼øâ‹W^y¥v Á âÕÒ¥K333Ãq�÷ê¨£Ž ^׬Y³ËóÍ7³³³{öì©©¸o¿ý¶I“&7ÝtSøvÇŽï¼óÎe—]¦eH0h€xu 'qį¾újffæ^+¼ð Ák‡öoùÙÙÙõêÕ;ÿüó5õ7a„ùóç?ýôÓáÓ ƒB¯^½*V¬¨eH0h ñ-Z´(,,X° ‘~WéÒ¥?øàƒÌÌÌæÍ›¿ñƱ'æåää̘1ãŠ+®¸çž{žzê©óÎ;oÿ–ß¿ÿ¥K—–-[Ö.tÀ÷´6mÚ$''ßqÇÁë¸qãF�}Ë-·h@�‡‰læÌ™={ö\¾|yvvvRÞâj×®ýÄOìw&[?mܸqo¿ýöܹs“óìØ±£nݺíÛ·¿ôÒK«V­j7(š{Úˆ#† ’••Õ¬Y³ ¦�¶HHh"a"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"!€ h"ñÿEq endstream endobj 93 0 obj <> stream xÚ¥Zɲ[·Ýç+îR^ðhÌ)Õ[¤§’�íœ,DÑÌ&ª”³ÉïèhÜ��”Ê%?C£ÑÃé\~[ìbêvI°¤XÖ\–/_—:ÂZ,àt(k‚èÒr n-Á/«smÝ�ùj–?þgù¹îp¹í0ÅáÈeõÎÙ¼¿æè—‹³q�>ð¶HÛþðiùñ'XòZb]óé>V;¿B*˧Û/�qÑõïÕ˜x«ÿLý oïJ��ÁøòöÏO­Ä¼"æ¡~lü•˜ë®;ï´¶�TšöK¥}Õ£m$â73�ývÁ=ú|ZQé­~ƒ\¿�ã5Eè% ±´óe´�øºÎWZ¡þÏg:ˆº�Õ²±ªLý¸OÝíým”àz H+i‘öÛN{» «è*xáB,µ�XMÈo—¡eiõÒ©Jp6Œu©Ñ|Ãó¢‘Ù/2w棰*€DÑÆàŽº€ƒ5Ú²\¬©Ö×�¢®H~^ã|›·‹óŽ/ï’|#u×<ϔں¦>^‡ÜÑ RÜUé4îþô‰¬8,¥ âdÅ)¯Þ:fØ 3©‰´Ù|Ž6í“ý±Xm‹ôÕ1T_µ“-´Ë7+5Z¯Y¿*Wh÷3gvò8pŒ6Í¥voó6YŒc­¡ÁÞÛj«$Jšh£‚Í�ÄŠ>°¿�… ¹3(2hëÛ�d·í~wófuÊÆÅàðœ e± pÃ�åVM†œ›Ÿ» rJ—ÆÛÝÈ!Ü]8Œl¸Íà M÷õ ”¼Bµ•‹µÕÈc¿KÃq$4ùæZêžhä×Á‘ï¶#{µb—`Ã�TÚ¨n¼‹QˆæÌáÅøoCI¢E#ýÛuPu�¯3çoÀ“}ß2tŽú¾ë¸uãFnâÙ€ÅíiõK˜wèl†µž¶š&Ͱ2‘\ÓAÛnD„¦%(…u]'rˆØý€d%@šX¶´©Z香HUt†:àˆÇ3|—&K‰]Â[ŠŒ¹‰#ï³[¿’PzÎ1.¬’�"_4�‹7’7T]T$ÈrÏv«œô­q®ïPÊ2+—n�tdÓ+¸L,]G¬®îÜL³Ÿ+’ÈfZ983�m~C4Кñy+qéì+›í}À™ ÐÖïSPÝ®ÁäoFu´d„7‘Ï3›e³²?äÔ#÷6õ£=éÐÁ¾ão{@ÇŸeŸ˜‰øÓ ØùsʺÍ%h%)akXCôÐ�oã4´ÆÚ' ³K¥&dœëf¥ º`õ0¹ë‡g~àµI+߬¡ 2?ôV'kɬí¿?"5) ᇽ½ÔЬ ‰mžåÈ¡èœÓ™mÎÙæíÝq6Éy´'0A©Y€‘ñÀÞ½P÷_xB1—6›_A7²§�|¾Dü¦C™ýM@\î:i93Rgž3Rñ¸È[÷’#*Œ‰·^J]|@Q¡F;2¦IŽ 5•ÔZl¢è®]_Sð¥Ù*¦®æ@iŸh?d3µ`•1C;2Gñ›�Ü1OÚÎÇ6Ú¦=T¼ËgY¬^;�µ¤®ð›†#s àÂ%&¬Ö¼³hÙ¸rò#9Ô®œ3¼p¿;}/À»ð¼¯É�Ú8ˆ@œ'œ¤¢;í±ä\r¡žßFÕÄô@Ä̉í6¤6›—ü¢ç#ÌBû”?*³2“Ì4ö8¹Š$D’šwüºn¼3ñÄm!Â:Vóž-å§m)Zù-å�êâ$©÷¡m°r{¤Š€{L'å4O�Ú UÃŒáqrˆ¸ÁcR;}Å´)%iDÊ¿³¶­7=�«à£ê9 èºD˜Â)…mÑ@b» V€Ó5ö>ׯø¦’Ð…§›µ^|¢Ò¤s¡öç'»•"Ÿ—¤­˜Ú†Ùê̸m:0ç�CÄT£éî*mž«;ø.(f%š<‹—éÎ'IcoªpzVNɆµ~55Mœ-à J™*Ä ÑlCŒ·þ¨Ðl�ð´v·û±ùj*Oy--—´ÎÛ °‘I'¸vßÄög¹ΜæFÖms#ëN6ó¾ÖvNd �åF€MÂÙ`¤‡”éu!ü®˜Å~X±Æ¼&(/4pÃjÓÀчdØt¥ž‰—¹-(2„ë9™é>Óóf¡{|}1È×÷˜º9‰œª´>Œß䊇 ½rÐ)qîÄêh¦G·ëðÓÈ�MÑÌ}­4'% ÚóÝÃlÁ5Gpôéí:ò'wß½DÀÁKDˆaMVžNR7.Š�ÚëÒšRyÿ¹IŸeͺÓ*Uóqxˆz¢‚بÞõmóú¥ÍÿÓrcð«KýI%ÍÑq› L­åáÅ—túrÅØU0Ï(òI[Ïe¡œTžŠ~QÂMMZ5ÅLfÇŽî´M6Q3Ö£~;ÕbœbVÂûZÔÂv5W(áÛ ¹‘n�¡Õ†m+ïæ«ºü*ïfµy´özŒ3^žSð“›,§�¢^>Ëü÷Ô0D¡+K�¸I-'&÷3ZKX9Gp¡÷R—'†|ЯWWÆiÒ[ó¸7zkç{Î9ûó ÆìøqóS†9;Ð7h«ß-2úÔLdóp=mØ­“¤Y\¾KÃάÉboçü8‚öí7Ý/J#xäl£ÞÖ ¦v y�¤½=1•5fçA_q‘ ÒÖ·ê=3.u¦”5Ë%¾[ͽ ¼A¿aËJ�i„\~E¥÷+©À:Tz¯Ùëü¨‰¤S)že©Ö'Ñ� Þnù½³ýCÔùs¼mßëÒûr“3„©­øÕU±ÁÆÍÓ_cI0H7Ö±”íY/&»¦ôÑ8œ‡òšáH½æ.صdôfc'¡ ‡ò$~ÜšÈî YѪ#ãwyWŒÒž �×ã´�±/m{*Œ’.äÕÇpP‡hsØÐáü‡3´Âµ}MA#Í!ž a·îPŠ4£¥âQIÂ+À,ŒmrÜлba›y3ד¿îÞC|P˜ª»ï^ÌÚ¬Üf{!kÉ7¼ÿ›-NÑ_M—„¹´Ö¼IZ>WFš¸}§‘ Ic9©GiæÅdó¬`­®d^*XÝ Ì�f0÷"Ç]Ð è®'¯�óá½g°T¯ŽœØÑ>±ñÞPÖ¿3ˆY¥k"ÍgÞ1).B6ïÿˆ ´ß–|±Ëÿð…3Ö$û’LýÊòu©Û×TCyú÷òwù‘dZªy$cåq”¶Z¿&—¥¥÷Y"óæFCÀ_Å#œ4ù‚W\.kh´áT¬|§¦™†U®¡¿&ØiŸ:_4ã~�»ýÇ|�º®÷¤³'…ó„·‰K)ÎqD7Ú“ú7ƒû FPä¡ê¬�żJC�är˜­t'þñ§¬´„±Gý¤Í;efóŒtÅÀß̦~|´ŸcjR¦Y uå Ÿ^«gð£ì¨»{�­mËV²)Í?x œ?Èž b¨È9*î›Éø_uOÂ,¦Æ`»üíÏýãÿõȨk…Æ©_*¢Jü±ÍZÿFú¢ #nŽ[>ŽŸV´5̈́є3qß¾ËX«çÛš–]êßè´µm×8¹×¸S» ߢè_¤°¦´sͱóçßý°Y»© endstream endobj 107 0 obj <> stream xÚµ[ÉŽ#¹½û+ò*'¹“€Pà ìÛØ}3|(uµ|ñÀ_üûfld�I•T=3hR3™dD0âÅÆÚ~ÞÌvÔfKvK±ì¹l_Úêp{1ÖZ|Êžlti{ n/Áo»s0ütløÏöãöû/Û [ÙK´qûrÛŠßsôÛ‹K»Iaûòþ�ËqÄrîV?¶þ>àûõņXŸ˜¯z$ÁÜ:'˜ãðW=F}ý¸:êßéwªßöJkø÷W‹oyöJžfÀïà‰/ë¿ó^ùõÅ› oÄ×l/ô4¯ÿüò×Ê[T¼™|ìÑø*b –€eCæïúb²Â&/ …ãÍž½kïÛ÷Å&a÷)·)ÁÅHmY,i]�ŸÚ|�2Ê´K®É^$ì�\CòJöÕf–Hƒä.jÆ¡fýa{C&^l2w%Ž4×5Íî�Ý^Œ©Š$záR“ö‹;,ï–Ôn)Ê ºi ë†;Ü¥Ë÷#9ñ™ó•ù‰Ä)ÐíŽ|á#›´“Þײ£‘礳͉?¡8ñyÞƒvøÊÄ›uÂ}{Q±Aêï¼Òµ¯�¿y-s¢ùÎWZKZq gwð¡EQI34(€WÊ4ÕÈqÄYãcÚ]°K«B½ò!®ÔßÅj‘-*ÚõòN–—“ùn£�Ö,·hfr[Qov—‡¥Y^]Š‹Í¬¯¦”îÊ ˜A•)]mÀ$—ò iΆ¹g)†Ž`„*ükþ¨.ˆU)¨¹8ZD¯ûï†ö™>]JÙ#x�]>ã3ü>aÝ4[[·?ÒŒòG¼ƒQôä#Œ �Ñ¡oêkL@Ÿªã­?Q5{¦“WªÄ EB7!÷B*°ìA¹`6‚oÔÓëJ»�½›,-n¶Ô`•K^jà‹snOuÿñ€«bØ]‰Kçè}™Eƒ#�œ£÷ù3Š‚³‡#Á]´ x<Ø¿ZNÛÁ³¤‚zñmMîLêGJ—YMr–‘0òÿá]bBH¶Ž \ñß·©Š[bÉÒÿ8Àƒ�³­î”© Aè“cI¹$ÿ«&Sù cèåUž‘n,ô)—=(¯ñX�ü}‡@ ’8`§ŸìeE9;çt )�î{nCŸöN•¸âJ �´J¯&é6ûÎ:ÌAg�£3¤ŠHŠž$¼òAa9~^$3L'Û©E):wB&8ª KP.É4P=ojÊ~¥{˨Œ$v£IbðæìE�]Aƒƒ•ÿø…»¿;­ÎxŒO5PhÊü¦0�1шќ4àÒv[.&Úð‘•°0/P�@DŸXÈç$è^µK¤Yžƒ©h_ϧ�þëŽ!e5ÿÕÏN¼š9.=~MǤ¢È¼Oþ‹È÷‘Þ€µD98œæ—uMš"BËá¸êŒ8ÇöøÎ`r8"‘§°÷Å_³ë÷t”ãlW×öRá �ÌY2ÓtW¥c'˜�´Kn‡Þ)&'>ã‰Ït÷‘“Bx‚ø3Œd(NéÐ!NdíÇJô›œÕÏš{Àÿ >…�‰ñš„×â�Ølñø Kõ&LÁŒïR¬OuD×AMÎIG²2ûSŽ Â¥ñ”;Ä8´å¼]ç° Eka§´Jvá JÜ�ÊcÃ@Ø�ª<Àbƒ}ÚO¸kX¾'5&S/ª_n®LˆÝKE§D,…¼t³g:jb[Jgómo4žÛx‘L¡çí¢`X¥hÑ]pŒô“F5«#}RŸ`»‡ø)¼6ê œµº¹7ü„Š!xØxQà‚‹4›,£­¶(ÊžÛ>ÖiÆ_{ø=ÍG½PøUT}{Tê«G2»Q9Õ‡jZ£ë?cÇ^TÒNjd9à§âÜ Œ·É³š¢ý¤)'±Ï£—,082\@â¡”yÙ¶-‚ø�m—%?# �ì�áPf×ëmŨ2ÇžÊ-Ùt,Ü•6EjìÇó—is6ÅitMÕ˜/OIöÇÖéÆÊÖ‰³± ¿©è{�bc<-“n•©ä^E¤ò__�uA$&¡™äp4uŽù¹€|ë!ÄX]4M\/+›àv_ÊT¡dB–:ÐÒÊÇÎN'…šŠù‡Ju?pL9V3óŸJ$­ÚâÝ„¿�Cz˜ÕØœö‹Pq}uK"&ÊA_];Ó,eåÖ”{»Ke<.:ÑeM•¦{«‚åñ-žÏ #Xbi©kT^²•x0¾ >"zå‰Õž—ñ°�W88¥kÕ:«=²ªé#5ÌQõäÚ…“¼ŒJÇ©­ª2»†Ã~ÄSÙŠF@^@_4xHL1Ä1··Tu55¹N¥ù9ø•€¼ÛƒÌLf(˜ÇC•B¥í&Ž‚žžr~z'µš üï,¬�æ8 Ì`„eN[põAh8òé8˜^ûTNA_Àp-æ)mgI(µ>X!ƒVx.Ø­GÊýXþ÷°ŽŽ—T°.D8——eÔTÆE�hw3ÐrTCnÏU#”ã"2øcßhÌõ7ƒ6j�Úû7ù„¨Ÿœés¤÷M×nt*vL†ÈkªªNåK­Ÿ™–æÂTqm™êvñ{�EîfnQt(µocŒ„1Éßt”Úr…ßÒ¥Ú{ŽZ¦¥¥ÝÒ¼©ëûeº)|‘7†øJä½ÒzOÖ’¡eá`½Lz¬¬�º0œº<€sÖÙÕ!€J¶6ÜKá8à (ªöÒŠ£˜Ñ8eœ<‹” ‚’‹ôÕºª´ m%ºì(§&Mç¨êȈ�ôÖ äj±ÂF/V蘜–�1õtÑw#uu,m°2»õž¸ * Ö¹[/´x$ÎfÃ(1÷†¹ÝUg`Û߉clxßž UÒØpÅ}T•Ç5ê6›½›¶4n©³æfrF1„”Z�Ê�uÕP 5‹<þuÎU‚‡à©r—î×c”o;õþXvë«�)·iMEv0þ<%ƾ'£¢Š¼Â¸¦hÎÝ)$N�gÞK¯ìøÌAÁgàw€oYp' ðFÞᙘÕÛ´çÃHÃôŸýЇvìͿʪ« M>¤ÝD©È‹‘xÙϤ¼ù2V°Yk2��l/°-‚�BÄ™We£oò¤®fnNPÎêÃu¬›ö&�J¯5ÔãÛ(Tíê0òH--­ßvS×yî–fçΑz¤Ð¸cxS—0¦5å»÷ÑÌØÛ;]Pq’3“,Ä «�Ë F/§}lÇ6³ýíÏíçÿuÖãàŠJ¨JËn¬j'SÁÂÖ@t‘>ÉöOÈœª©™\Ôpü\—tåý^ c^¾Rî<‡SÕ1Ô—¬ ޾±í ž¸ U5ž�Ù—.š=B{nàr2¸¥iÔ±j«2 `C;4'Ñ^O¢ žS$Ž”î:ÖShF`ï`�‚Ù†B-ŽT^Ušaô¾Wø4DLZîëÊ;nQO-Ŷò raÈ åêw{¨:3ÏÁ?â9øG<ãŒ;\µ(½øÍèü$~À±# FÚS|kíÚÇÝu¸ÏÇ·¡Ü~œ.WLà²\ükÏí`7ðjàé ^6y#Ÿ «~{÷_àÎ@Îy{©{ÖA÷<À›÷\‚˜^ÜÆ;P!z·;;‹ 4•;;Y¯¡—*3¶c°t™³jK _)ݯLh`bn�¸7eÍßÄ TÒ±Êq×6TÅD)äÙV2txì¢Æ÷¬²†zJö$ôGÊêæð—�ÛʱÁûºHM‡ÏX�#èÇ\.Ý;�¡¤þ‘çwŸë•¼@ ‹k¡ðòhžSÑ�÷”Ý|ûCÊ‹J/Z�Ù\ǜȵ€|Ž_‡ƒ+-;`ÿ±Ct‚¤–6äÙ8ì¢ÝC”¼º›üØ�jôA�õ ‰½=_O|F€)îÉD%À–½—áz`�§#—C�‘�@h‰÷2‚NbÛR~ÁŒí]VHa,çÐNA•%å½´ª’ܹp�×Ç”¥¹m\!©º•+�Þzj…¿¬sls•ªžêë\ï] ZúÕ¸xºj.£N÷›àË,^ß_Ò…ã¡"AéÊ׎N-þÇK««4U×¶�Ýhg}Äw£h®ªÞ‘I:Ò0WÔj¦h,k½qV�:"]»Jº¨w‘à ÍQŠX×ï�Ó’öhÁéå\£kó¬ï“eŸßj‘¡L—ø|wØ=�n@·Yìä|G©Aº²þ~S+.D[S£ºôŽcÏ:õhò‚t–šQêr _€ˆ‡n¡ §6Rjº�Ó�ÈÐßZÍ�›’×s8㨫0dÓcoM—î~o]\üÞº:iê5Jó×ôÖ"÷{'„ê*gcÚÕÏ�”Ƨƒ#©ŽŽ•9»šžþXèû�sôy÷>©…$5ÐwêEˆÛ”îq"#EŒÖwl3tOP€xìujâßuÉDÞw§Ná±ìUvT¹ýO<CQOš-LÍyY›=Ñ.?5Öðý( «XäªìºI¾o]5~¿so„ð]a© ÷­—Ñt¶Uvõ_‘E;Ú=ͽ&°BSQ@]|¢Œ’lr`ºî@ß•Ýá{ìŒJÕ9i÷œOMÜœÙOaQ^º¢Ywqt"ãßס@/çɇ÷êgG,î] õüV“<Ñ$‰f¢ÝZQª­Ã71Xb“Íš.‡&Û)˜n,.þ>É챤áÿQ‹G�7¨ ®9ç—hå‚�´Ã^.µw,„ç‹«·2w¹—K»žŸ‚t¬DA†óâ¯2j8zAOôö=øžª_·¦BXýáBúÕÃú-Á0G²° Ò9Ìõ#�¡tôDî2&¡Äé9Ô× ü!`r•×ìwgÎõ�Ÿ·š‚³ý¯º[õ¢j[ªqO¬ä§­ÿž*™mèßÛßå”ÓVýM‚ÚÑM½jüž\žœ…áêÞõÙ¸ÞÖêLÁ+H â¨j� ßð˜$Œ»H_è‰û6vÉÚ½†¶º¾–àíXßbã÷�Ê–ëùéX«š³ñ�Œžnm„»qB´J3•är¿,OvŸÕ)A\¢úK§jçÇvÁkpm¥S,þº�Nôšq©v¹cxJx÷jù&†£ª'}«K£n“†+�t’‚ˆb`¹)ê#ªÆ�WZ@eTYùc˜X+5Ü0;ÜwÃ1|*dmsþy¯zäÒí(<Ç _K(CXXM¸¸Ù4i7yûÇßýAÈìÀ endstream endobj 123 0 obj <> stream xÚ½ZK�#¹ ¾çWÔ°¶DQ/ áC�’Û&s rh·Û¹dl.ùûIQb•í¶§wfÑhخ҃É�/-¿,~YÛŸ_2,9UWêòöui�ctÕ¿ŽÕeH!/‡\�¸¸hÜOùº.øÏòóòû/ËOŠKu5AZ¾\–Š®$\!;Ÿãòåü�—u ¯ëšÖö ë 'ù�¾}ž�‡P�x—·4 Ïëêß賽͑޶±±Ð/›Úì\Û“6>y3¼¬þB¿Ú?φL£+�ð¡Ò<þóË_É>š=V·¦ÐžäÒ4•K� Ç®¡½�—c\_„܈Çè_„™sÿn¬äÔ÷³GT¼[!ŽÝq4æ�_èÈ]l2ùÛŸÇ×ÿþëúˆC}ÙŸñE¶æíQÈ�vŠ)É8¦.Êm?å�§>ö"ãoÉŒÞÓúrÆ´Þ$Ÿè¾A0æìjI;‚Sà‰M‚k·¼o:?”�=­»ª—2KSÖÁ(j áušb55iOýIÔ+ô=ù8ø==�wû>g9QN9¢9VŸÂe¬·™�¹st–§¼QfúOhÞ°2#Qä�(DÌE¤�ež~8éò*×ôÄw«É¯*Áã�·«ú–$ä1ÛËš¹è ÐÇ�Ê/è6òÔŠ.ýu'=2B:mY “Ý?ÿ7ž[QVÙÐ&le»žu"®B#=Ëâ´ é[Z°QÅBÏpäUH4ªË è+IFؼ… ¹8h_× _bómkþ$±à8ÃM!²º1¬ù2ï.`ÕÇoÙ ”|E�üÔ¡0±‰¡¶š 5ÞÖ9¶DåVd™ Ï ó vÙGtbDi£Á_Ò\ ÞŠC?SxÕQ„�,dWkÄ$ú@ŠKϸhô: pH¬+ýÎmÐ3â[u�í’¬pMOQ #£Õ ‹3Ѐ×Öîg$ŽŒ¤BN©Ñëi×þýÛ¡:Xër¨««ŸDxè, L‘†€.`Ü›gg>t¼Ÿ„Êwý�ïý=«ÀMñóœkAÑ܇~ ´ø‚�W¡^9Ä»ïam_ôôYj4ƒëößEŠš"EAEüQ‘Ô ’ð¾ ÎàIV"÷Ï_DÛÆ"Deƒ�ŽE=O.]`@#Ø …ãn•bèïܟεi'¸å ËÊݸ06E�è…]d¡ÛdHd©©ˆE(®©K Þ ïà’¼�;,êâÛ Îûärõ3Ä ƒÍ¦T�t/­MàV ;¯€»!°Uc÷o{´—Ï|• ÆÉ.š¤ŠAŸ0óoÂ^òôê ø©:µéÄÄþˆúôÊšÏfOßñýf-Ê•ð7€+>Êî¿ÝºSÙZóµeÈ'ñŠü“•?aᘚØ÷ü¿åЀl‡q� ¤žš4\ŒEF;eKf¸ˆA¤]=w U¥N™YIÙ/ RÚA:Ê�3BŬXÔárPÙŒü­‡¨‹¾½ÍÃh[{f=YÂX®0õ�¾7»èó”Evª±³G{®›¸n˜ j¬Óq¬Ÿ\Vi0¢ØÓ˜a)¨²u±hf¹7±­,ˆ]¼¨ AÑEˆ^Áè)|™b«Ž•  çаî²H .¢¯ÿéÜr’µÉîé;áƒÀÝ|»ó,€2Ψo.ØÝîuÄw–`Ä·BjÚSTÕü�@tqÀjà:'Jm1}@¨‡Œ"î¡›‚Æç�Y Oo�sôJ�wìØOxܳ}É×ÏSšÄoLe r¥×O¥ÍÉ!et)ýp%5bUê*¥©rsØÈÆu�„à4Ü,û=@ïb {É®â­_«+ki ”ä’�Ï#.¬è"�°N=V„Ü©Z·ÚL’Ñ’øÎw`­ŽEq¼6dŒ&jØæ_¾‘7£φ’µ¢tî†Ö³^1!öaPŠIî«Z}»(CEˆb‹2MÛqÇœ&oAë%E™ãØ —(ôà4­°IØ3’pSa–/èð•CÉÓ'NB £œaS=ÚB@;~µ`Ûƒ ­EM^íøäõ—Ú½…­[g (Î{º%ŽÔ„41l;S‹-2_÷”«ÁÅRŒÁŽVfœ6ÇÚMç°\�ÏüetŒkç!¿½_Ü8“W£>R’Ä ¦)Dã2Ì� 7ƒêö4VÑÈF¬q®§UG�’a‘±ÔAi6r�ë v±çé(íÚ²nØUkfPüŒ[úPã#¸�TåUÍT95 IQ]¿�ÌD.h宬Q ZV"=½ó0ü;éšд#ew­ò<¸^Ö×â0>, §¿K9¸–NþŠrmn&ïÏýû�»3«-ö_ÓΙ�ÄmÈOrIÕs+uõ¿Ï êqÉaÍÎcó°�г­þùº3p0!a‡–£üÙñ3æÍ⡨k¾RdíväêG·Ãº�>êv4ÎC}ÜíàþÝŠH~E·Ã·h-î�÷{¶;(VQý»%.ÇÉ!?ßòØ)Å�êy„b7Áê6eöš‘ßu%êFt”õžê.ØQS4¼Uce›ªé¨@ Ö‰G[@Q…g{^¹ƒ©�7=VÕDUÈÜ®ª¾N«þ #±”@i®£™[ÔµÓ &lŒ;+ºJÙU:EyÿK1 ngsYI¡[ ‘Â3¼ÎPZ«˜ÓñÎø6+m2¸ó„XìÇ*sÐ䯲»Í�Sº‡9üFrc£]}…Ú%£fS¨ËÑ6’z÷ ¨¼GèUŒЖ3«Mâ~ˆ#í•Wã)ò:aòŽD´øÝv‚[é®VjÃË®žs͘³ÑgO‚¬Ó«JòXv€Ã®¿'O¶zÄŸÇ.£O»îIdk6µú­5¡>bt‰/ŒDŒ=£~g¬É™—“³ö®Ýšt«@@[˜Él?,Hy÷t¤ë %tìÝy`böÖ9Ç03*䯖B‘¼ bŒ 1ƒÉTæØ¹N\¯sÆ9sŽ»¤m[ÛÖº…�휼Ù-ùYkT¬×*š¯p«ùÑLH†?VòUãõaæ«J­�òôÑ’3”p@ü“"˜7ŒIš‚0„¬AkIÝ…mÇ`w;b)›–ŠNy˜ %[÷0Ém?ˤ: C7‰S‚O$wÚÆ Ék‚Ç3HSgÇäaFs•áй0G†“‰jÍhË„é/ñeža¦©o;¶²OêoiM®?kéÃfÕŽ¶Ýo)Üêâ®Þ�éHi×#‘Þ`þÆêä§ú=í\O÷b²+µü ~}'/ÎýMÎhǘwVh rÉ*õE°Máq`ó7}>Ñ¢‹¡ã¥62ÂóeJlù[.ƒ^?®jÝ|!‡¯u ,â-�1Ú ¡xÓIÕ/‚¿š be#o°°7aÌ2<,`Êk²pº˜~±íœѴö™{¢H+öªÿ]Gg¼Íìe2phÝEœ½ •QFÜ®yù ^é<£¸Ù¥k†TÓüªFù´�«4î¦QqG¸µé òz÷·r•GMs_�ŸÅ•gz7ÉÜã‘_š$}Ô·Ýá¹ÕZ‰ÉåX7(Öûtw’oUìâÜØ£ÆŽ\l¾§Ù¹þÔ…�à0µt)[¯é7ê\“gŸ—Œ¶wQ¦uhwþ!,�.–=ó0~Y`sÿkg mD\ym_Úù]4I¤ùèßËßõ‚l^²«™n ]ÌÔ¶[ÅäþV.’÷ûy ¥·hgS7‰›¶ŒÑx“À¥Ž;Y_Ò(4É›ðnQkúÚ¹º δ;´>¶36i�´�OÓójÑsŒ¸l®wô§lh­O•}Ãñ™ÐÚ-R;ðw+ÕbWÅH)@q1ͲՇaŠ,¯ÙZDs‰1¬#›ô޹Ƹ}«×«\l‘ÛªoòÙÑU¨¶ºå=]°ÍÛDJŠ$¯S1¸E™¬ˆè6Ž™¶õ”ýßVj@kø´ý Ãw¬§-ðM”$ù¶%hF<#áë¦ý×MÑ®™p {Ó”uöÏ¿û?û9#° endstream endobj 172 0 obj <> stream xÚ%ÎOL’qÇñßdOʰZ.¬|xæVé2D[s:ËÖf ÛÒ¼T†�Àxu$*ÿù‚LídÖ\MçêP­µuË­K­Õ©ÕÜónëòúîû9½1$ ÃD= …²¯ëœ\©ìj’•–öÁBèÏúÞÌî$âNa\ �#øÜq‘¿.ø+äÕ „öŽ”üUYòÇá’g‹ðVŽ"†á£6�É.He²f¹qxܬÓhi²N]O6µ¶¶4�Í2Y+yUO™uj•�Tªh-¥WÑÅgˆì1ªu=NÖµkiz¸­±ÑjµJUz‹ÔhÖ\®o ­:ZKÞ¢,”y”ê'¯ 4Ù­ÒSäÿvéÿ#7ê‡GhÊL*�ý”Ù€ÆoC½H[Œ¬DQð†¨}Ã9¯ˆ]ƒ],¿Ëg{_We-)ƒÁb1R–l6•Ê"î ä¸ÂÆup¿«æ2³‘…P4¸�ÿ¹í¹$›§ßcò{|vðâ®�3JÄ!8L¤ÙNq`6ƒŸ† bÿU™ü~çØÍ‚Bì÷¹ïƒw…ÝsD áHò Ûøx‘­üYY< ¸¼v¿·pb?'žðN‘€k\0f�CD’†L0 x&Èd2iamÖ|Àc °w€Ib†I0 !G’€ðlq;S wža616ÿ>ñ�Ï>ßë¨ @l’ ¡Óaò9üS~ÇíQH¼ :§ ¯µpzÇS¬W5½ìŽIH.„.}3_#L„ ¯T#óë�H(š{û$Í$sK[€oÅu ܦ ˜¥ÛA»í`Åï>Õ¾ø¾Áž™�Í€—˜ðºm¶¾AE/àÎØŠV£©(“ÜÚf+àþQ½y…¸w†îᢆ“ÇãX=SVPÅå‚–eá¡9ay@X‘+ÿT± Ùü±�)s endstream endobj 174 0 obj <> stream xÚÏïKqðïw;õÒË,’Fåí)ɼŒ�…²Š2‘å³cÛ¨íÆíl9ó6s·Ïns?nÎPTÐ%�žô<‚ù°?ÀG=ˆž²¯žT›O^ðþ›0ù2ùüÒת°µP½ìçÆ H%œ0£'õ„uþhÛ¡ùSS—€}©ÁD¼9ç:la63ð¥öÃNº»zØÒ<,U4Pœ LAÄP³SX„9£hØÖ±Uê)—ËUyµÑËM|3Ó·Ì�(pÍ®e«ùGËZžãª{gÿfÈØ_ endstream endobj 176 0 obj <> stream xÚ­’{LSgÆÏ¡ÅsdÓy¦nzNu Vp"☢K7D¼‚TZ¹ÙJËE@¨\ÚúRÔ"JQ.¨Àðj1ŽÍÛ4n^æÐdN'ÛÌæ.ßqŸì4nîŸeÉ’%_žäKž|ÏïýÞ‡$Äb‚$I÷ˆU‘k"—Í�Œžï¼ÏÏÆSÄ-϶»òoü’Ÿê³"~¢x*A�Ô8A‰§¯8uøU§z 2jÓxBL’´6Ç •úûJ¥~¡êô\MJR²V2+Ñ[2700ÀGâ'•JB” MJ¢L%‰”i“J™V¸l‘¬T'¦(´¹’Y‹’µÚô…sædggûÊ”™¾jMR°·�$;E›,‰Vd*4Y ¹$\­ÒJ¢dJ…ÄÉìë”Pµ2]§Uh$‘j¹B£HGˈDBA$i„’L'tD®»„#‰åDE¬ >$b‰u„› AbÂDüB®u™érJ”$º#^%îr á�<Ò·!U òl#/~�J†owŠx5`¾õq`ñz<¦, ½^×zô€õ0 õÅûs«Û-ýPôu‡ì=.ƒŠ3™–d¼¯�ˆ‡å´ß¯·Ù{ÐßcíªZÝ®µ½ó7á›c)=ÄËåÐWÃ.ègÞòÌK[µ¦½Ÿ…Ás7PT%íÁ÷êmüë6òÜ*ù^Äûò3}iQdÑtG[ë­Í_N«ˆÀ‘ïâIÞxÍ@äoCnµûòÁÀnS™A_š_¤JÑêòS å@Ïu ©ôVvôö�9 -pŽíh.y…âZ�_yjuÜñ)(‹±VCã­ä†b‰—»ãñˆòDÓ�ç"¬»Lµ[9!¤ÔP¨ Yœ1°¡Iݱù$\†fÚÜÂÔ¢75vb  3å*!aY; ¹þy;Êm'O\Bõ÷ì—DÈ…1�Çóú�F¢[×or0¸©Ódîké5[Àh0 €ÎÝ›к§®ÞšÓº‘•AÜÖdUê¡ø= @c"(|[ö&u¤êÔ%jÈ„›²²L^•+é`4v5bÑ4ñÄ}šŠ/µG7FÃÛ‚MÅæŒ�š&°ACÍ>s�¨ fAÖÐÙðÝÓ–¥s`¶'7ˆÃ™VÄ™¯ ܀Řx§ïLÓ¡�{œÇ³‰`GO{PJ?‰¦Þ¡Ñ!‘_ t}a¦íÔ¶JcZBXÅvwO9Ug2‚ ¦­ª,,Å®“x%…ýŠ\åÔµÝ%ë¸çT‚ÂY9Õl¾j¶Z®›ZÝ=íT¸z¹‡ÔMÇ®²ÃÊ»>“k· {-  òŒE‚µÁ|Í|ØÞgÜí´ÆBAuòqÚã÷|°ó£ÚH4}X(­pDÏ0r0?­èôf}!&V§Ð>ô5HaåÚL½ãÑ(<ç%®ü £ªüjE_ßecÍK F!—‘î¡Ï, ‘,ÖüF�g³‹ø�ÐVvÏ`ý!&Nµž~Lý¶ÇÝŸ\©“ ‘™ÿ‰cíÈ«�Ÿ`v6Œ.ŒˆÐ<‡yñÌ<ª[~2Ç!´�CnOÐkhìôŸ1Ë Ÿ_@_øscWk!Ž{÷)‹x+sì¤ãÈ ^ñ÷Ââ @?.âùGi!Z߯»ö¿œ–á—0ÍDI#b‚} =§Yt—Âó�1w`û–R° 6ö¥v©û =ð)œm²�§)äWãj§–n¯:Í¡'”ÐDœÐÆÙÉÎoD|9fŽ~|º¼¡\haÉ™qKFtE¡³…¦JlƒBC±¡�ÆúI˜Aã.c%TM¶Ú`?k§t¦0“&/¬qú‡`·¡. …b~Ria�ª´(cuʲ00@äÖÖî²ì�Fº9§>#3+O¹þtòyö Ü·´ÐY |¨©kªFaY-e3ìÖVåî>¼ß},;FpÐ}4?oÂ=�ò# endstream endobj 178 0 obj <> stream xÚµ’}PTUÆïeî�VPéŽ8ØÞÕ0D�" Ó ‰%!>J�X–eAÜÖ]vW[¶`—wåQ„X„]h²äKÑ¡(û+3£Ì̈š)ËsíXÓÝ)›þ迦9gž™wæ�óüÞ÷<$!$IŠ’¶&'mM\·=9Ú[? Á•¿Þ¼UêË…Ü2’»×‡ ¸%Â{ ‚ô_Ä+q#Ы—zu%/~·B’¤uÆò¨¨ ‘QQëãÔ“6O‘«“„ÉÂ%ë6nŒ^#YµQò˜R®Í“IU’íR]®\)ÕñÅ^É3jYž\g’„Åäêtš‡×®5 ‘Rå¾HµVñhø‰!O—+I–ï“k åÙ’xµJ'I”*å/r¤WâÔJ�^'×J¶«³åZ•—ôABJÈ9¡ ò %©!ô„‰Ç]BÄ�ñD±�H$ž&’ˆ4b'!ò!HBHÔ“ËÉRòŸ·)‚ß…Âyß8ß�8k÷¾¡—cœ3sýÝäø¨å;Š@3 \®ýd`²o|Üs\ðšÅ¡ÑÚ ÷ƒŠÖ6ë]®G÷„ôTÅ«p0ÎÇ�(`òA¿\GKPÐýßâ»Ä�À iú -Ã2ÏAvwáÅ.Ë(¼MÏO\œŸ„SGÎ1¹] I� RMö¾Ü|ãN y³i�½×;œä™Ydœþ¤OÀ%£VNÃÀ󞬾]Gw½&A‘˜ß¶¿³Ëáèb¡ÙÒª©swL@ Ðg's¢Ù½TŠíIk¬fÝu dÐÜÐ^ÏÀЛ­ƒUY]ò“@œ‡9öL^*e†]990tX3̬ŽÖd<»«oD g†/¡„Z¦ÊÜ‹¯5õ’'¯!Ýœ€[ÊÝǘ,æ"0КW Î®ÖæÞ«˜5ŽˆÄß\Åo ¼ù76–@¹¸*¬e/ê·§íM:~Ý EAïL]gÃ0¸‹ÿ2ÈêD9ÉÁk¨uJÀmCF¦µÚ¾Ú‰Ž—¬ºâ $X‰–¢�QD´Uيٰ½b5ï}xs±vCF«r g¨bi{'s-ÿº}P TaÖ®õ®K](þƒK.Tâ"?�Aé3žI�Ï4•ºõ@ÿtñüg, šzöu¾Ù;ho†òò²r(¢ Mš�´4´·�2q1¤Zwg*Û¤G^:tKü&² g�¥T¿²¡¤r÷ *£8}¤Ó±È'…  ä?:#×�ñ׎žzP€Åž_krA7tÔÖÕÔÑȧ‚ ‡ïZY8 ¯9:�4wµ¸�þV²P2CÁ‹û5&Ð8Vx-‚˜´˜çW¬ˆ:ÅBï‰sv~¼ypshˆD / ЧèƒçŽw�?H»©B[�­P&³ËD¡ ê°­Ú(2”â0ìÌ©)ñ’¯‚ú îå�ìíz*Ó O‰”§Òc÷x<Q¨›zÊ 'Ø9ꣳˆÄ!‡J‹¡di‘ÉfæûÛ/TvwwÛº½}9 ¯TõÓ¿>ÊÓ,p’ˆ™æÃË_Á­wÑYæJæ˜D©™šç RÛba#¤e¨ÓéŠy?¼êoÜx‡á LU½î9o­ÿ›%P?>òþT}ʳblüï}·üÿI*àï`þoh¼%Ns£0'ÒË×4:qM€zðzæÏW¢©ê²¡´Y Q0òý�OOàÊq› I…Y2zò¯Ïšª.“²·³þÅe wŒq�Ntžzö½ +°ß–èÙ �}ÉZCóÖf''º3-ú�‹e™Ú�œ¸9ªüĘ]¦p¤×æ"X׳8‚ЇHôˆ¸ >†áYÚí‡"|ÝT‚¥v„E?R|øp¦³ñKNé&]Wœ}É8'ÇìG�OŸÚf´©49v�7}Çmu>ÏÊJËÍX€ÍÁ85[k¬5P»´½šÅnª¸"ΪVfÛUÞþ³pÈÚ”�bðíàRƒÙXjÐïÊ�´`©6×ÒvgÃñS‹¶Àd*Ø=”;Î~#W�¸èƒƒ‹kBª†z‡–¢ÜþÓw;ëD¢é£¢ba´CtwÏ=H C® endstream endobj 180 0 obj <> stream xÚÏ]HSað÷ÌåN:5�fPnç¢@K榈Ì>4Vè2&!e çvÜÖ܇ۙkšd~1}p~¶>çpLÉHü1"„Z”!%a�Xtã{t]´yóƒçñ<ÿ‡@\.""¡¼¢êò…ªSr…R*‰ùš°g¯s·í{±Ç6ƒÃ cØtnBh;9êfRÔo‡¢žˆÀiLA\‚ MÝIžX"É•[¬.›A§g¨LM%•É ²©\‰DF�7Ñ6ƒFm¦jFO›ÔLd¨§*-͸¨Ì3z†±æä8�N±Úd[lºsYÙ”ÓÀè)%m§m�´–*µ˜êŠÚDSû�ÅûÊ-&«ƒ¡m”¢¥mf„Ž„È�LF)è0âr�¸¨ ½#ZXw"ëvøw�ø‰çëxh=†­Á+i°Öµ¦_UmÉFÔP% µbci×Y8 Å}ÒE/ Wœó°ŸÆç~‘“¡þÏð… ëÂ+iZ¸pmµ¾…Ÿ°ïayhq ÇÀ,»Æ2TB”C1\l-#ïf+M·€Œ\‡ ;œóغƒ_í¦¦M@/#T”å�Èzž/²ká)ùï Oç¾'ëc§=0;»ÓüãA#OêöΈ¢O<Üm\îÇéë)¯Wñ�‚öV¥áxÙŸ0VCM³NOâ*ž¯sªcHœôaóÑ€»¿CÔÝÐåv¶Ýp^ ¨oŽ·{º#yÚ›Eáyž Ú ¡×Ó7à™Yü P ¹Fêzµp�ì�*ìj»¶®A% |Ó´äéñôx�œ LL4n·è;Tù¡“˜+ì`òïˆ~V>ŠÍÞl¸ö!/Š÷óù!?AÇ-ðñâï©ÿ§` endstream endobj 182 0 obj <> stream xÚcd`aa`ddäs sòôŠÐvö Ž44‰Øäý ùõáçlÖ2 ?dÈ1ý�gþ!Î"÷Ћå?“,ÃOAù�D~‘j@‚1Vˆ�•‘‘ƒ¿¶yRqfnfNb‘��±ž��‘s~AeQfzF‰‚F²¦‚¡¥¥¹Ž‚‘��¥‚cnjQfrbž‚obIFjnb �“£œŸœ™ZR© a“QRR`¥¯_^^®—˜[¬—_”n§©£PžY’¡”ZœZT–š¢à–ŸW¢à—˜›ªñƒ„rÎÏ-(-I-RðÍOI-Ê:�QH´3012²Äÿèàû9÷»äáï|‡ÿÔeþ™öý‘èÂÖ©ÍrmÝÍ-]íÚž!®Ý>ÝÑÛ¢¶Eì ßéÞÍñ›1à7“AöŒîži}óûäû¿3]Û~¢ûT÷î„= ûb÷ÇžïæøÎxì;Ó3y¾âÅ?í²ý–žÆ.ÇÅb>Ÿ‡sW÷f®ÍÜ›góð1ï÷‡"Ô„µ endstream endobj 189 0 obj <> stream xÚ]ÒÝnƒ à{Ÿ‚Ë-­Õ61&]’^ì'kû�ŽD� .ëÛ9¦k¬æÃs8G Þ�ö'%‰?­gp¤‘ª¶0èÑ 7h¥Š’”ÔR¸Yá.zn¢x÷ÆÍ;ï�Ä”C~;ùÔ?û†Örp´ÑÊ TPîn€šñÖIA»Þ_WCRP íØq»Ð®yaŒÑëå˜ä¤†ç¿ø4’Î>íÏ÷ÁAR�&eùvgïäi[뜱<©&¥¯¨% ß-·¨}� :bd´LQ+Ô!([£æHT6GnPkΙÍÕ÷(¬—‚V êˆZ­* *P9C¥(¬Wàù²AØuŽ 캘órÔœW rÔ&,ê¼zÓòN'éq�Äh­ß¤pÜÂöO;%> stream xÚ]”Énã0 †ï~ ;@UïR Ò¤r˜“ö¼È¶$ÈJ1yû‘õ=L�Ÿ)’?I1éá|<ëɳô—3ýEy6Nzpj57×+֩뤓¼`ÃÔ{¢øÝ/­MÒÃ÷ÖþhÅRÞZËŸ¼ú;OŸŠ‡ßeäôz>íWn¬Òþn··nžz>/á½¶zÍ3Þ™yx2~|̲Œ¼ŸrÁ5"ø{ðañùx¹¯^-g=¶Û%Œ¥¿ƒ–Õ»;{ئSß¶g?ݠܤ¯ìáãp‰O.7kgµ ,Kš&†ËQMoµÚ¶W®ÕW•삆¬a»Sx5‰ÒÃö:ƒ[7öZ·Ï_Ãñ,«ò&Ò!’l¨„�h[ BA„(åtŒFzƒ_:ÁT"Ÿ¨A'HÂFôŒ tòDQH™‘2"Êþ ¢ì Ð‚h{‘"Ô^¡¢ª½‚ SAg…j+èD¤ì"eDèYõBϨÎ`;� SAg‰‰ÕÐ"U‘$´µ×˜¦@I„ 5¦)�A¡ösˆY£ós�D¨¶$?T[RT[c~ÕJ�¤|˜˜Dw%æ ÑÝz/7ÝâíšoëüµÍý͹°,qçãn3iõõ·`�ݼâç© Æ endstream endobj 191 0 obj <> stream xÚ]PËjÃ0¼û+ö˜BË. =Cšð¡êädiå ¬²\š¿¯$‡*ô`V3Ë씇îØ üô–÷@*#<ÎvñaÀQ™¢ªA(n(ß\3W”‡7æÞ™F( sŽlþNêI|µ$BÍ�HkÂL¬C®‰[†Iq2鸽Õ̼�ã21¿µA>RJÉå|ªv P®ýÏQõ wÇþ:Ô�‘š¦(¿¢�9ø+löÂø�j^ Wf„ÍåÐçJ¿87¡Ž.€m›ÛUë@Ü œãè™±h¢ÚBsŠ«-Јÿõª$ÿf>±ŸëȦô©jÚ½®¨ÎÚ+uI�Ýóâ‹÷ÑKN5O™ )ƒ÷à�uI•ϳ9‰ endstream endobj 192 0 obj <> stream xÚ]”Ûn£0†ïy _v¥ºm7R„”’FÊÅ´i€€É"�± T›·_㔋�¢æóŒí¸:Ϧ_XüËMÍE/¬ëMëô<­®Ñìªo½‰ÒŒµ}³…g3Ö6Š«ïµýQ�šÅ¼¶–¿,úïÐiîÿÇŽ·ý¼ðn2ËÌ'«Ír·šÛõ:ô Fÿ�k3ï¸Ó·u¨ÝË´tÏI’ðÏ�S*Y«;LÿáG±Œø|¼ÜçE�gÓMl¿�‹{›yqwöth§«þ¶½ûéZízscOŸÕ%¼¹¬Özô,‰Ê2L—b=ÍÔêÙÖ�vµ¹éhï’’íOþSFÚ´ÿµKvíš?µÛº§o¾{’i¨ $AY†¶ ”£�耶„Y$Ñ1PV�Nh+å)Æ "H"DÈ_A=%H¡'Ñ+zÒ¸ˆ"�‹½cš“\@EÏ#ˆÌv 2#‚Yqh#‚§|Á³ÀÚ xJ"2£xÈuñBÎ$¬sDð,N xJ"x樘€§žŠH`µX»€uFà™!º€§¢9‘3�ºK¸("¸Ô]ÂE!^ŽŠIŠk‰x“¨Ÿ"ÂÎÊi¸ä9¨»DÎy"ž"O"2ÞP”dBÁS  žŠž •V´Ï�Ou ùØ•ÕVûl;6ÛÑ£3¶ÂíºyÜ6Íêœ?ÊáN —Ävž{£×–�ì6*üþse*† endstream endobj 193 0 obj <> stream xÚ]•ÛŽÚ0Eßù ?N¥fˆ_@BHÜ"ñЋÊ̄ġ‘ÈE&Tåï›xo1mÑÀhÙ>>{Ÿ8óÝqlëAÌ¿û®8¹ATu[zwëî¾pâì.u;“‰(ëb …ߢÉûÙ|÷%ï¿æ�ó(ïûèup¿¯õ/�ÿ›**ëÛU];Ü¢®wíðè]ÔßÏ׺ˆ®Íøç»&oeyw¹_sÿÚ Õç8Ž£÷·LQº ÞÆ8‘��ûÓã6¸æØV�X­fBÌŒznƒˆ—MÙ�ݧiì›/�¯Û‹xyß�ÂÈéÞ÷W׌2D<[¯ÃvŽŠ®t·>/œÏÛ‹›­F ñZ¬²ñ³ž¹¶üo~±Dع*~æ~Z.·ãò8VrhÈ€’s (Åiƒ¹„] »¤Ð>Ð8è€8ÊJ%æ4Ù ÙÓH�ö � P�ìb@»�ˆãžK³Ó‘щª™�ªA*FvhQô°Ñ ê¢àÁ�àAmAð`Hð PA†DÕÌNÕ$œƒ:€p†G)”ixP RTWÃÃ,‰ç€ºhxH˜T^ÃC-43Àƒ%±—¨•×èAÕ–Õ=h Ú’Ø=¨§a÷àl T§èCÕÈg S£C úÅ’ :e¨N©ª5ÜTÞ’èù,=�èÊ,=�XyTײò$xШµ…KBå5úÌ‘%ñ ÀùÙ Ÿ•çób·�<ûØîþE'ÚýÇ(×>F°f"eH†Û&‰e¨ d×BïÊ}ð.Ñ2K±q™aef@K2 ‰Ä.¸Ï>ã’éjä8]’Ó áù>(îÞ�Wmxk„K|ºoëÖ=_,}×OQáûy�}- endstream endobj 194 0 obj <> stream xÚ]“Ýn£0…ïy _¶Òº˜?»•"¤,i¤\ì�šö˜,Ø–qV›·_ðõ¢QBôaÏÌ™cOÚœ'3–þö¶;ëÀ†Ñô^/öæ;Í.ú:š$ËY?v�(>»¹uIÚühÝÏvÖ,å­sü)èÓøWóõx?.�Ö„…[§M¸;ÍÝí2�Ÿæõ;[c3Á½¾Þ¦Ö?Ù0|Bð�÷c&Y¯ä_ÃXN|:œïKÐóÉ –ív céÛ*g þÎö½½èÇíÝ/ßk?š+{øhÎñÍùæÜ¤çUI]Çtêl¯×vڷ檓ݪAÔlw\?u¢Mÿe½,vº?­ß¶gß×íB”Y©‰$A¹ˆ”ïAÖrâd:`g:b­ŒTä  „,Å3¨@ ;%èk”…ê)U@–’*¼€žAÐRR*”è¯|AµUèBÎNTP] T+¢ ½CK%AÐRAKNöÈB9¡L¡£ îJ8¯ˆ ¬‚×ʪðLÂ3Ï$ê´õ Ê '*œŠ„ŠèkpB‘TPTç È ô®Ð»BïŠÎOÄ‹H7n»’Ûô}_wó~½ØqDãÈl·{4úsŠ�u[Tüý¦áûŽ endstream endobj 195 0 obj <> stream xÚ]“ÝŽ›0…ïy _n¥z1L*EHÙd#å¢?jv€À�EcS5o_ãcíEQ úlÏœ3£qz¼œ.zp,ýeçöJŽõƒî,-ój[b7º:ÉrÖ ­‹¾íÔ˜$=~oÌ�f"–òÆþìèï8ü!îÿ§žwÃâx?k·ðÙ�vCܬ·qhù8ùßÒèeÇ-Ý×±±Ï³ë¿ !øûÛ9S¬£éß|Ë#_N×Çâhºè~fû}ÂXúÛ»Yœ}°§C7ßè˶öÓvd}gOïÇkX¹®ÆŒ4yL$uÒe¨§�;ZLÓ’mô�’½÷ j¶?û§NHwÿíËÂn}ûÑØíxvôÇ…PY½Q.A9è$A8) S ¿茓E ™ƒJrÊhŠ{‡@EŠz‘^±ã¢¨ˆ ß@Î ((8+bήÕ+ YÊ {g$úR¢†R€ WE*Ñ 8+(æ„—zJ ÝUP¨Ð]…œµ«˜^|™á$º«Ð3ãPŸŒ9Q_…îVQO�¢*(TðYAAŠ04q:¶ñÙ.Êç=iWký†ÛÆ{›ÄAÓç…3³Ù¢Âûë endstream endobj 196 0 obj <> stream xÚ]’Ënƒ0E÷|…—©TCx¤R„”’FÊ¢5É8fH-�íS5_ãAYñЙ¹cîxׇÝAIGâ«Åi¥j, z´È®REIJ)ÜLá-zn¢¸~åæ�÷@bÊ�¡K¿�üê¿}K98Újåª (w3@Íx餠]ïï�«aMµ|�°Ô®}dŒÑóiŸ¤�—?ù*’Î|Øoƒƒþ ZM6›ˆ�øÓ»œ½‘ŶÑx˜bï¶+Õ•,Îõ1DŽ£1ôÞaQU…åìGèÃX®®m¼V‘ÍÞ_Uªù—Or,»´â‹ÛIžÔ^ÎX‘T¥ÏH«@«)G*‘Š@Ù*P¶EZc®FÚ!½Ê*÷H æfÊ•,P�Ê2EBeŽ^Š'ÌeHø‡�•è³,CËsoSóÓ˜ïS£µ~ ÃYÙöQ*¸£ÍTž?> stream xÚ]‘Knà †÷>ËT*1v^�dYJ“Fò¢ÕÉ0Œ]$હ}1XY£f†˜ôX�*)J¿Œb58Ô É X5¨�NÈ$ËÌÍv6P�¤Çwª?è(ÅTk¼tð׋_ÀÞ-æÂ:Ü*é,V¤»iÀzlzÁp?øi©´Áº±§f©\ûLÁ×Ë9Û"mÌña(Ÿ¹:Õ7ë`¨d«PQ$¥ß^Žu憮xšÎ> #d‡×cNêQ믑¤,Cº,Ä«)CeIá5�g?Ê$¸ÏH kZöCÍä¾Zywo^Ê$š@›HûHë@ë·Hû@›> stream xÚ]ÒÝnƒ à{Ÿ‚Ë.l«kÒ˜líšx±ŸÌöމAº¬o?ä˜^Ìø“8à˜î«C¥•'é§3¢O:¥¥ƒÑ\�ÒÂEé„gD*ágÅ·›¤û·Æ¾7�”6ÖÒ¥‡ß^ý ß¡£R�žvFû‘ Úß,P{m{%h?„{0Úôž3Úš^.�ïcô|:òœHèpúSˆ"ÙìêPßFC¥;Cv»„�ô+¬fôîFÏÒ´ð0µ}8 Né Yœ÷ul©¯Öö0„E–”eœŽã~„‘0ÚF€kô’]X+Éî®2-ÿõó5†µ�ønÜ4œïÃpÆr^NÊ^P«¨U�Ê£Öj‹: ^£6uD­¢6 µŽ*f=Ee—3ìËP˜¡Àì!QÔ…ùŠMT‘£¶q“ón¦íN…½×U\� ‡«Ë1�œÒpÿA¬±ST|þê©O endstream endobj 199 0 obj <> stream xÚ]’ßnƒ Æï} .·dT´UÛĘlvM¼ØŸÌö�ŽD� .ëÛ9M/fPòC¾s>Î!,«c%…%á§Q¼Kz!;³Z Ò dŤÜÞÈùÔè ,ßýÞL@BÚhM7~GñÔÍSO;1[Ú+igª4H{Õ@õÒŽ‚ÓqrcRR¨�a³Q¶bŒÑËù¥¤ƒß�ŠÄ7®Žõu¶0U²W$ÏBÂ/çf¶æJž;ÕÂãºöa:0BäáRÖ~¥^´ar& ŠÂ‡‹ð<\u0놃iäAî<°‚ä'÷ÈîßçÍËÚž7fÝ•n;ciT¬¿ m‘NH;OÛ )õ´‹‘H{¤éˆôê)ÙyÊRâ)Þ#¥H%Á(1êR†º óeèÌ¥õ„ÎRÌ—%ž2Œ™|n']K±6ýÞs¾ã êo†oÕZU!á~y´Ò«Ê¿+4¯ endstream endobj 200 0 obj <> stream xÚ]”Ýnã …ïý\v¥ºÆÐJ‘¥4i¤\ì�6í86Î"Å€0©6o¿˜3êÅF‰£��3gp±;î�FVüòv8©À&mF¯{óƒbguÑ&++6ê!¥ç0÷.+vß{÷£Ÿ+òÞ¹ü)¨¿Wý©òø?Où¨—�OÖ„%·N™pw*w·óUùuŽ_oçÞ”<ס�cO6L�œóüãýP 6ª úïq«ˆ�ûÓ} j>šÉ²Í&c¬øí,ÁßÙÃv´gõmûéGåµ¹°‡�Ý)�œnÎ]Õ]0žu]’+QÐ`Gµ¸~P¾7•m¢Þ±Í!~ºL™ñ¿xKËÎÓð§÷ëôò5Nç¼)»D»DTUˆU 1¢-b5*‚*õ´O0³IT—PiAÈ'ˆ$H€ž¡I1Ê.A”�è ±gå5^ö Êþ¢ìD¨¶A Mƒ‘½‚àL ¾†œQrF„}iÞ@Øjá¬9€àLÁKœ’^$²W¤‚j[ôH@SA³E�ª•DЬ±ƒ±‰°óZt,nOZG„jkRAµ5åC}“äš’¼ Ÿ$/DT-:&±×]‘È^§ÚËëxù’Ž:�éõЯ÷ûëz7ïãÕI/�t)×û£�úzO8ëÖUé÷䔟 endstream endobj 202 0 obj <> stream xÚ]U TSGžG~j ?1)ûòª–¥G©¬"RȯÐiý!� !Á$P, ‚­uëÈYA´ÊÁê.µÈi±m„,¨ ŽìÂîj=²mOÏéîÙûØÁsv‚ÛîÙμ3óæÞ¹÷Î÷Í� ñùˆ¢(¿ì¤ìŒ˜Øu©Û2ÕFËëÁÚÂ2ƒÚìÖ%p«¸—í"†c§ 8¹Çò¸Wøø¿ À«)«ø‡/#DU{¹ÛO}`™h5ù£÷ŠÖº]¢Wí�(äƒdˆAkÐ�èßúe´�)O›¤Ñ­:ke˜244<ÖTZiÖYÙ°ÐÐõAîv#«R²Éêüb“ÍR¬cÕF ›¬d·)Ù4“�Hul ÉÈæi‹Ô†ÖTÀfiw°e­ÙšMe¥–×”lV‘ÎÂÚLæb–ôf­A«¶h5l™Q£5³Ö"-›°=3‹Ýj2ZÙT]¾ÖhѲÁÁ,kÑjÙ"«µtSHˆµ¬Pi2†�9–ËI–·]ðÖô´¬àÔ¤Øø´Ìx¥µÂʘ̬FkUë åO€ÓL浑² ­CA(… 0´E#JD)hze¢,”‹ò�• RdFåM}3̓-ð£t:2’žÆ/z¢\S>ÿU•>ŠŒì ÷bA·PÌU€SCð[›o— ,®˜ É?¹ Ù|r ¤/v\È”‡Æboì=øD!™ºß{ýüE þü*ûC)³Ïf©µÊ·ÇuÃrð�¾î¸~¥²äü"°!Øäø×ue¬£˜¤]�,þй]”Ñ’+_³þ5,ÁÞO€¾é8s­Oq¼¡ÝÎØºŽûkÞË:˜/OÙú5ð`uH±Aè8Óóe¿¼y¬qu«B<¿î|9Ì A¿�z< ã³ë9ôé“Wï��õdž“¤H8 o£& ÷ƒœ§t”N9’^\˜í9·?:zî¾óq#†…Z§Ýy Ùw|;Çìcß�Iüà)xK¿0uU43ú‹ÕÇ6žó¬jz÷ÔMÿÛNûÙ‘nÛ�KÌéÁÇoíj*‘Çm0($àQv¥Žé}ÿÖ¡ÿÔXûÁü¬S×r˜êD�¤]Ûq¨W^�“·É²ž‘C=6^6jî!F/K÷ Ê-Æjƒ|Oc‡j@6@òŠÃ^›ßžÂ'èŒ3ñ£}½gÛ{÷�°À$ÉØÅ|­ [Í©¢ñe:f{IFR]Û§ ŒEãIZÒuI{ÿêÔɾ¯™²×q‹ÉJq8•4J˜ˆÓËÓJ"êsW6¶Ö^¬oµ�ú­» Ra *Á¡x^úÂbž&ÑÂwpb�Ö°úð»n‹+û˜þ¾bý¶ sp´9¼"¦1ŸÈæS×¶‚ý¢„ #~\Â/áÍnXyìn“þ\ÜGE£¸Êï1¹VâðžaîÞÏËÙ€+�ÊÆÏ#†/ö€¨è¯;a‰ß&!Ä/¨jJöï®?´2³ì€}¿üpñÑS… r©Öwt4´Ê;úìàÕ«»ToN. ¯"zÃýBÖùîoáT§AßÒÖ"d–ò³L¢%vѲ¡¥®eŽ£M¤ºKS‹H4pò¸{LMM¢åÿ€­nÈ endstream endobj 204 0 obj <> stream xÚk``à`�U`V˜Á°Àec[ endstream endobj 206 0 obj <> stream xÚ�X te»ž˜f°è0,™:AÊ*«¢,Å*¡@é¾oiBK—´MÓ$_š&iÓ�®t•.lZ‘E@DD¡ÿÅ¢´ *x÷wú½ž;iŠZ�þ÷朦“Y¾÷{·çyÞ..„H$¢×l}õ•U>3_Þ¸- &qÞÜÙ«b£‚^â=ø'‘+˳ωxæ1^!æÇºài®â;®.ûð²ÏÃ%Fò$Aˆ"F9¾?®®“…£ñù®S'Þw}Š E"7ŠQ<„aVÅî^£ W&Ï÷œ;wáêØ¸ä„ðÐ0¥bþܹ f9¾—*Vy*ÖFƪ#Ã1AŠõžŠ�žŠM±jál¸âéØÅþà°€¨ElˆÂ7ØO‘”œ�¨MˆMŠKœá©ð OT¨c"Âÿ„à¨à€Äà ERLPp‚B¬xé•m¾Šµ±1JÅËá�Á1‰ÁŠÙ³ŠÄà`E˜R·lÎeR¨glBèœážÄ9QΛç8ž›½vó&ßÙ/¯[íµi›—§ò€R›  V„G%z>ò–> áAL&¦Ï3‰YÄl“˜CÌ'‹‰%ÄRb±œXA¼@¬$V« /b-ñáM¬'6/ b ±•ØFø~Ä^b@ì'‚‰0"œˆ "‰("šH T„ZLˆ– Ž\5ñƒH)úü±ŒÇˆ—гĹlv¹&ñ�“ãI³t¾ÌM!».ûŸ;Fœé1Ò4òí‘¿>nuå\Ó]ï<áù„ò‰wݦº•¹]õÜ(ý虣Ï�Ù3¦Á�vï VS‡(« ô&8âÖ_­‚™}¼¿ZÔ¿¶�¶ <] ‹Cùï%�©1HÍ, Õ1h_*‡C¾—èÒ‘A'�;ŒJÙvòP :^ʱšÉÖ™’°b›º›9O–F VB�£É+{½ähAûDiID†¥Ì�¯ÑôÀ÷ï‰NÀ8Xb>¦›†j)ÌdzL;wïÌ�õfUY:½F®µn1e³9&‹ÎÆẊ;Õy¦ææ|y„& Ãe<Ýë­•_´Þ²ÐÅ©¥‘¶ƒ'Øò¨½¤�ÿО³�> ®ýè·ÀÙM¬à,êƒìísÿ&ÁaðÀpÔ©þ°�†I˜« ±²_UŸ;{[Þ8°ØH†fhB¸�ÒТŒHJù_ðr ¬ãðr¸Ac�G ,–A(Œ ©Þc ÓÏæñûôT…v‹Ÿ‚lp')—6à¦97þ’àüÝHR‹®€luø_én[±ÏÒ�þ™Y,¤I_Ó–ïgC†Û>NV4£c&nçé7Q9á|Ïné•hv H8\ªa¡LZ\Ò\{šùÍy‘sëߦyÈ—>LM÷Ë/ÑÙ}kŽ%Go0õlœ*F¡‘i"ÂŒáÌÆ�§¹=ç2{nÈoØ{N�c»Ž¿SñÓÜ’«iâš4‡SjU2CžÙhfl‹ÅÄUþ*)ÈÍÏÍc#‹#ìV™5<Uµv çµ6iÚÓò5Ón¬e½nþ¨~Èt5ÙÛ¹vû‘Š#•2sž9ß*wãÓ4·áÎmQ‡#þgè¢ÜÓ†Öl°gæPf&›š²{ÿRf úþÝO,Ÿþp­á`t;§)ÎCùŒ=¯0ßÄåØß²È µù)lÍ®h»ƒgxzáÕxYß‹0³ámSëu®±Ìd²ËÝà2‚ñàãEŸÃx1ÄÀ¯t¯´ÞhŠgW�ñFc<·Bo2Ö³½d½ÉTÏá�]þÓea¹Eª_~_¬áïÖ:ÂæÔÌ9(ËIÍŒFòt;*g‹É*“©ÜÎ�½#),Eyr·þ6ÔÇWö‰¾„©ð L÷ÇÁú£ôÿÞv“ýúEìZ¼žÁ)À ôŸÁ4ðãðÔqX¢ÁSp8‹i¾Æ’Uˆ=±ËŸ«Ì½ÃYex"L¤~æs»iþÁ£ê ÎLã°ZÚ¹g§-ŠÁ{ö}ÕáWàUŽê=ÙY|º“ )Íl o¨£z锣f&( Ì4ôÕ­[è>¸45dªj£‚ÑÙçÀ£Ç½h#ˆ¿1õ4Ÿ%4Лûð –²à…ÏÍóð’ËaÞÑ‹–#ïq5E6s±Ü¦o2°-¹FSãȾ†óóÙ¬�d¨—±$ãî»z“µ‡M§8,¶Ñ”"©¨+æª[Ÿ3—myÞ,ÇÎÞ‡í? Áœ.æ¯ô�¢ œŽ<1¯œ!|ÓéäCª´¥Âv¼#Ý.„!vv’ ÒKZkQ·�â»Õ*~\<ÙÞãÞ áSðcúEôii�Ñnc)?kŒ ¥2BžRð3Ür©* …†¶¢)¥´ƒ¦:HÊÛiL8åÛM·£ööP”Áù�ˆ¬Gǯ½V•u Š¥Ù6³Á” {¹àJWÒ}ô{`ÊC÷;HÊa:•ÊgA< |¿Å³s³Y˜ ~Ò.SmC=ªÛÅá2ò`N ‡/K÷Ôê Q]){¬®µê$s ½ðü ôÂ䨗 ? ä¬z½UËdtÙ9\šR¦•SÚìkN�g¿ø±‚}!”³ïóÛÔîpF¾#)o¾ vÓŽ@±T\?…lׇ°«È©H™Áá„�Ù’ìT¤O–'81’&“”~𰑤|Cð³”ò>I:Îá .¯&a!t¶X*d”�‰ÀYó&=€ÖA¸‚ë*ôO;C ˆfÓYµ,$µº-·VªµäØØ;x©�ŠÌ�üGäjmÕ¥·p¯¥7$Õ%:�Ë�ÏX-«€\¿Hlz‹€\åa¥!²ÂÐsÈ?"WooÅ‘\¾Y²ºðþ"Ôß›{Ü;a¬Ð‹c Žð-ü :_Wg°³u¹(/™‰Ú™¡ æZvïÈßÇà/ ,Úy4‚‹ AA:ùkDu›š³#yƒ<ªlÇÕ6þâucs¶!˜ sñ$„nš†ŠÓ¸Üü”²z¹Í”g²²Ô�ø®Ë¨š9 ,½”Ô–UÄU´!Í Î�o3˜™‹ÕÆáèi´¯>ÈËKôÂó±7ÌÁ¾ìORÚ“(2P�ntµ Zd$%úädZ¨ÀmBگ߇cjGÁ elý.ü†à" ߀¬G§†AÓ£¾ª„¸ÒYC§<־݃ém‘žj ¯ˆ¿YJ½ñãÞOM÷_›Æ‚ý{îs®/ýüÒ‰³Ýv¥‹�6†.¹Á§ÕªþõjÑWÂÆ!ûÏÿ»]ºA¡Ðà{Ôà R÷ó0+„¿Û…ý6Œ}ñoÒ¡V|Žškã/ЕÃbr@c9Ð)¬|Òz¨Yp¶<é!? $ÆTSgÂTJÆ¿3h>GJù >·‹¤šŸÈ�ªÐ¶["_;”ÆÚ³ y9L¦!+ÓÀé¢2·çʳ¬úÊl6þòÛY§˜_?;#„,Yœ^~ ãÄý[šh|„w…r@’â"dÍ—W«Q»‰LQ#µŠÃ·ðE 49÷>< ­C}N âŸA‰ÏITåe¨’y›¬.EM‚�N;À1ŸSC#T˜)ÃUp—?Ø5ž¤zùèvº=iX/þk²5íUç22ØäƒÁ!OdÉñÚ˜Ð6TÂQMÍm–‚&n äyiºCi8NÂQ²¨µ;„¾Ìê� ´o¼+€÷Ó| 3g\Þ,6ÿ=TÇÁ,)Ì»ÿLå07Î[³ËYì¥0Š„ñ%›½YÂ+U°¡Ç!Ô‡ ,o Ø‚×ùlO e;Òìá¿·Û¹áÚ(Ýyê*e lh^1Ð��ÅerAa›X�,‡ä •Ú‹ŽÔv2?˜ðȽœS¯ÿ'yý‡ôü]�Xú†F #ݬþIÍ4^�’«eŽÂh9ìÄÑh‹µ$õó°Ptí³ÄRX‚�KK‹P s™¬ª@͞ɇÐ>i¯àQ,I0ŽYµÿ:!.2¡U%œ ÃóÝ%­B¶äØU™˜ØÍ¯9«6rxÕA¬—>øèØÕ|ö�)Õ ªBXXÄ×þ(,6²`Œ˜?-¨-pYòéôZvf�$ɲ±ö¢ü³ÏòZß:“¾ë 6µÜdtˆs™™+û\’W€òÌò£)¡„m[ãcñcæã9*¼yM‡¥š{sGWæíä·Òkt5j™=³Z,Ÿý¬>bñªÖS;Ùâ ÊertúT=—ºPbÈF½\õS¨ÅÀª®Ÿ7Ô3ðÌýë0Gpw™Pü÷nŠ:¾ƒg¿ó ˜D¿Ý–\ζ‡Y d¾öÀ‚còG Ž]oOHªg3í�ÓÊ·—jòÙ¢ÀHS<³ËžòjMtC"×yL{Q#kÒ½™µW¾;H´w[É[»Y‹No$Ã#gHËØš)O¾•ˆØ” 'Pó&¸çÃÓN¥ 7ï®î¹z7÷®ûiP,>ùLÞ JAð4ôE›ð–ò%|£¶Äq–{¦š²ã2jñaÓ{…mÌ¡z}z§”ßÔh¢—qÒ:d +a)“Ƈ2|á ¦"\ i½Ý•§Opg/Y/Þ–c…‰¦êˆÈ{Ñsš{}wê>¼ÉR„æc´FØœãÍ ÿÉO"8íï~×ßç‘sΪȖîªC�,ø›%íÃú’o—Ân½¤±Î1‰ðOknõ€0[�W‹¾hŸÑE› ¶œj¶Jg°f1:£1'‡ËÖÄ%0‰©ïq ¹+ý}Ò˜ÇYŠQN£K”RMˆ€í¨˜«ÂVrZû¾ _Gåg٠˥C•rgL«þ‘wE †éß:øÁ^úÞ®+ójÙO^o¸vQ ñ”’õøIïÙ9¶,Ä6J 2lÉmyù6 ÷¯7o¢æÝˆWÓЮ¨`.16ÁmÐõ™V�rÊ“�Mü:ùeÑÖÞÚus#WÚ®zs…YFS®#ë#‡26èäé}Ë„ÁýÅ÷¿‚‰ƒØù+o}è�ƒ"ÑB–õ|V7],-G•ªB6_)�ÐKF ^DÂ#¡F—•m)+•QaÎ_8wWn €ÀÓöê‚v±YZÿÐdï3&d[͹6¦0ÏVlæ(ŸªZO¾ËPúÛ¯­Ù´!Ø{óN Š}’ÌLdH‘gi�o‘Œ%©¯¤CLLGîÎX¬·!$Óü³Îdåb錘õØ Ë¢.ÿÈòK)ªÉ  ¥8–í HXÕ Ñ¬c„¿ÂÏR‹†ÈQ<È�¿ [gJ×…m]³-§ô §]rªÖ©âRôO 7Ñg]lü°cný©ƒÊWT׿AÜȯ¢õÉ(ŠÙ�¡ß‘Æ-Ã�‹àœ¤&G[ëϤ*‘2�ËJÝ‹W†áË¡}Bk¦¦h?£&¨P¬žûe`¬Ä¿¤fÉ®‚²ãE\í�v¡7ÏšL¬[_ÇóKvËB‹,Î0ï“�öâV»PÍzðK-jç׉ùh~5݇ÒÙ$ò`R¦rzÝ2¯ó–IÝû¿Þ÷�ìj¬¶l'O¦% ø\³6OÇÁ–�…Ù*½FŸ91"#eÏ+L„²Ô¦áÌ:ƒIÏè²õÙÖµæ\.£ð¼¡œ�ÑoÀȺó1K ʆ¸þ…èg>ã[Ñþ¬˜pHÍn% gqO. ðf‰]¸«FÞ`¬Ýͬ'rR"_­FÇ9(5KÚHüÛ€E’™Ž êG¥Àï «ã�ûhžq�ö$A‹¯ÐëÜ“jø=Þh6‘ìHßX×Èõñž‘àñø¹J«Õd2盬f“«ëwÅÅÂ/á·Ùbv}â�ª:¢ endstream endobj 208 0 obj <> stream xÚk``�0°Wþ\¾çGã“?Ê)TÍ endstream endobj 210 0 obj <> stream xÚ]R[HSaÿŽ›[êÑÒÑ(§g_Ù•¶³aEIq’mÓtIJG÷íâæùÖ9gM Z`Áä蘊„óŇ˜Qƒ.VX AOAè¡"„B8_:‡è¥ßÃïÿçå¡€Ñ(ŠÚåíòõvž?âõuãaŽ?éìFádœtŸ‡Ô‘z™fˆ�"¶ d�Q-£ hãÖ%u¹®ôãæïÒz¨ëÛu–«@ïÕ´’~zŸn£÷s  @5°4€_`“ÿ7;ÄèlñRTmdÝîc­81*Dà 6ºÝG:Ÿ‚-,ìàc8%Æ¢�ヰƒ…>úqJ³Fá!ÌÃáâ!ˆC0€.¤ˆ†œLˆ‡YˆDE˜ÂB jR@qĉ(“| PŠ Ø~¡'=˜— 7:ˆxA§B!‘¤Äi—KJ†Y,„]!-FtÅÿ‰.=ÏééôœÞ³­mþž6V‘` 0ˆ$.Ùû±0ÌÅ�†n3hkÑ`Š2ž[SŠUdQ.’ûÅ7)JI2�k1bvdn?´“sa|"Á ôŠÛ�¹ðB.¼²oÍšC™´ƒ‰ ™²K_äeÛòW9³d×Ë|V~nü(Ö<ßð­_ÞP¬ë–¹¢´ïŒ›2©±¾ôȶ±[Íò5›ê1)6¥j>ÿ¤8?·{mõõËoµJÅÁj5céRé&wcÿã›s ÷ò�ì–¡•>9ͼ»ûöÎ3Û÷§M'ZšÕrµÒ®Ö¨ÖRËtú†<.Ô»©JÿœÄFÐîŽë¿À×\] ­yÏÎ,˜˜rcÓe2]Q,_±8¡#—›˜œY¥éÅl¾��šÎNærStåÃ�òc endstream endobj 212 0 obj <> stream xÚk`€ž± endstream endobj 214 0 obj <> stream xÚmX \×ÖŸf&""‡jFgâ¾PÁº²¨ˆ H‰"B . �%ÈŽTÁ•e@Q¨»u_P¬J«"H¥€,V¥ŠV¬ ­­í™ôB¿ïûú|ï÷2Y&7÷Þ³Ýó?ÿ ajJH$’�<Ô‹üTsm<½|‚¢ãÆ-Ô„&DÅr‰ƒsNä‘—ˆ¬‰¨”ŠCLÑGæÒóæ¦]³ÑÝAdÙ Ó�ä`‚�Ä÷5¾C?4ŠïäVæÃ�?›� h‰Ä’<ô­ø× q Ñk‹”s´ÑñJÏðšè8�rÜ8¥2N£Q†ÅÇÇ8ÚÙÅ'„ÚjcCíVâ9qv‘ï'ÅÙ×�›ã=Ñ8O×Ùó}fÛÆ'Ç+Wjc•!šø ðÈ8Û¿í�¯�� Š$ðƒ%C‰aÄX†GØŸˆ‰Äb*aO8NÄ Â™˜I¸³WÂ�˜C¸s‰y„'áEÌ'ÔÄb!áC,"|‰Å„?@,#–AD0¡!VaD8±Šˆ "‰(BKıD<‘@$ÉD ±†¨–£üÄ |gŠÅIhÉrI‹É “©&ÛL*¤Œt‡ôªL𠤙NV� äKªåL¥Sç(=õ”žDÇÒÇd¶²�2� z9öÊíuÛŒ0³4[avÉìqï¹½KÍ�Ì“Í÷›?ì3»OQŸ ÊÂÁ"Êâ^_Ó¾û®ë{Îr�åË=pÆÂàz0ªÄ¹IÃktР"í(t°[E~O5C åT GBƒr)°„¿H qCº¸›`£“Üh��V©èh —è7³î�V¬‰ à¶»‘%å×vßdo/UñA4š™�È¥ŽŠÀSNmÚrËtœ†Î%“(Ć&rŸÇ®ÊHbý—¾P~[‹x Ã,¡ éaK•ÕëÁ®íÉ Úä× 2P3ÏÇ×)÷poŽÔUÝW´#éc4ŒCB· ŽQòXû{{�Hhe¸ÍE<‡zÁèOÉ½í œÍE�·Ij$å�‚Q”Üä÷Ÿ½§ñâqlÎs=lL²j}èÔ Y­òqÄ1ÐǤcb\·,vç Ü©[EËõ­eÔÚ¢Še�ìoO��¼½5b&¯˜?/ú›ü-DÓwŸ;[ÉV·¡~ØŽéµbK­än‡Tüù2³¹1*)*9<}àúð°¬PVå]\ÄÞN¸ß¨h:t¿¬’«¸T]¬gOŸÊÜp’?µáxêÑ”=ÏDFìZ•'Û±*w;aJˆÇ|ÞÓ=|ü8…mñxÝÎãΓ�çì¹s¹ùgù³ù§÷�Ú'³—¤×ÂóZÉ9çfs=¹*`qŠ7;ŧþUËù—èN§…—óEuäiŸÈBW �‚ÌQodùIÀºî›ƒÇ.óðÕ�D�?•¼y*¯æÉäÉGé$'K©ýuÎè-§‡òw¢�µAå„Êè2Ÿy;#ؑӇ¢þˆiöš—·œÔí¸UÍûÑ0Ä4YÈJ_Ë…Æ„§bû]ËÀú?¹¨»rzõêý8ÝB3lÓCJ�äöX�uó(�Í"a;´ëQ;¤ž§!3‹|Z×ÒíN­ÔƒC˜é%g¡ Û ZæTvsH5§ šW¨a‘ÌN‰Õðz(ô»z»°ä6¿ù;r©§zck?ï~{&U Ê£¾Ýs톎-©]3Ò¨EA‚Né!¹Æª²ñzc6~É)qx0:Íý%œnŸîF“Bnß>¹‘¨—ý”Ofê|u)ÜM¸³Z!ÿ™¼²3°h7¯å~öÓ¯Þ½wµ¬åñןÎãrQ#Ï´�¿ÔÃmáÕ9¹ÛÍg**ëWç,ħ8ïê!ã½ .$L]×ân÷¸ ßêÑ·�ULÃú,ÒîL­jÀ_/ùõ¡Dƒ”©§·¦EìÔ°c]f�â'Îôjê²z(Z�´Q £ô;�çŸÖ\äz,l¯… z˜Tkõ¨Eh��:äŠÁ°ŒË o†¬ûLXÈA ªEoºd tãé;yûÙ‹Õ‘È Y¸†xû¹¹‡ªIyUž{Î@²ÐïíÏÐÏè<¬¿“^tL’@Õ©˜ NŒ~”è8–F]ޤ #§À‰ž®gÐbêÎÏ'+Þ¬œŠ�x! ®šõÍ•ÕÞ:X¢ó®¶:Ѹ¢ñr£®qo£ºQnž.fˆ˜´{dò\!Â…/ø|åÁ@ÖnÖ̉±ÛWá“c×GiÚ]ÚÝÉœ|ýL¿Ui˵ŠY¯½€áäa1À¼¹Ó#OÈòþ™yׄ¢�%BÆ ͵aýãW,Yz¢‘“¯ÿ¨âË W.G»p/Ðÿ1ËfE:Mw>Q&úî'ê ЂNûì„Gz¸‘„ƒ�RCoœ6èê„6ݪx�è� QÑ“H�ŒÀ³´'’¯5”Ó�I? > }c–†rðíßÀ™ÔÝ£›Ü¢9TJ[@øÔH à˜΃SƒŽyáÁ  *£`)S‹ÃƒYXŽ: ø«¦Ž åw`е¨vêRÓòñÏÅj¦ÃÆ+³&Aoà�q{)‡ÁF¼dÛõ½F°C½=Í­u"Cô›¿bm¹ 2 ÇPP­ø gßWNÆ}}ÔŒ(8uåÓÞ™©ÚØ‚ \¼ŠÔ–_Ý|”­­¹ÑÎËGLL;°\œÁÙï•}ÒŒOŠ5òƒ#0f’S(“b s·ê> ¥=„‰(—�J¡Î`Úc›Xd]·ŒFY¤Æ@a©�{=ÆÙ0ňEFà •=–<2ú?ûÛbÿqïÔ@ÿÈ8îÀ¦Äšì´€%Qñ|ýŒ®ÅØÍônþ¯¯tOp�r^?MK 2,Ê¡«+›F{Å/6îI;¼eÇÀÕ×I4 [õXìÊ¡`o×;S ãò6 <êGþ+âï’~ë¸ÿ¡ý�FëáÏIiÛ™6`^H1µ1põª³]øYògK¹Ï­Y2S1§( ØŸó=[œ|•}z§üÌ1¹§Nôó`µší§5ü*2ôòåô2˜òÅ�ofü]§ûÆ�8’ÊÅ^ȾpIQšSzúknoáѳUìoEhDhŸ³YX¿IaaêÄÎZIe‡è�Ïôèd ��ÉÈ_cÐdŠB`,š€ƒèc`„p6»¤V¢¾¸ºôVB_PÃ<0ý(|™*‘ʈE¸Tµë%'[ávHÄ0ðÑ(0Ard9h ðn4ôË_kÎ~ƒd³Κ1·HèÕt­¶¡ÁÑÆm„1µF��oü©èa]ƒú‹&Ò˜K a¬}¼Bøò&ßµõÇ9b�óó| \¬’t¾„¦6©Ø!¦1¿�ìDC9ThÌÏó0•‚!o;AÂO²vš7É84.ÂP hý<'#e@.‰0OOk%­Æ(}OÌ=Át¬Öe‹ïîªS·U+l¢ÃJÊ®³¿<{,oŸÍØÌv�Zt-šƒHz_QII%Û¤s‡·Ž’ÿLMÂgC ¯P.ã{YBøNu˜vÉoÜâT2=9£ÚЊœ€ü˜û÷:Hà ëa+ìÁ ‘¯ðü‹ÀWÀï¨Y"¹¯§§ÀìÍp†®ñÂßÞúéäÉôXuî½U>h1cìäNïOYzm;râhÄ¢~ Ê7úÛ'Oó(ƒÞ ϘµÂš0-—’³>†uöjjÓp¯ùnñÜ`Œ…¶Ø×µzØYe…}�Ù&´ÉeKk´�òwo�74ÿbêºéÙwhÊ%»‰�ï0Åi j@ž$ù­§ÄQf�ŽLZ–Ɇ¬;{�‡ 0¼ ¹ ’Oôz‚òiuÑôû__Ï?~‹û€ÅID³iû~Á]‡c\ݹKúïO§Ü>Õm¹g÷ÕB²íëæ/JØŠr­çÊÄɈXÏ'g¥f'gËTMtç©iÞÓ½�œ/ßÐðWY 2õµæà',X½xýΡֽIÃ�f–¬~‘\ã ~œ0ã-Z©jð=XøáÖÒ�9Tnr~Hîú‚eBÖÎÕÍHð⥢¬Q¤àZAN¢0\MEC`*¾_|êP ÙFÁ(ðäMþc=”¿”œ±ÆQÈ¥» Uu"gÈ$EAY×$�z §0DF£ jñé?¦;#Õ"4pËìÌ+A¿¦�~»¦8²^†‹G`—zåÒgu²°–M ÛVÅoŸCfo-ÙTÌ+ w9>8>Â]¨ÕIÄO¬ï¢±ïO ^y^�»¤ž0„.,Ì)d[p7ŽÚÉå¨×K.¶Â>ÛHxÀ¼Úô,ð{îæ*¯böS·äéKùÀi™Cæ(>uÙ‘›XÞ¼ökövÃáÖRþüý¼¶‡ ûBÆ]˜¯âæÄƇ°h �?鄊Ý×ùïö_üª’…�ò°ÅÚu~Ð`@[CO�‘—µ=‚å:sÌ=†i ¢q�QÿmþÉ]§„5—88oýS»NüÏi† ƒR Æ÷RÜ퀌�RTj$=Æ¿¼,EÖ|ä`‚ &ÿÃi•pHTïßCûQœ™é"­y/Á¼·Þ¬£wéž­9¹[srròví27¯Þ¶këÖÜœœÜœí[Íûü?í_5 endstream endobj 216 0 obj <> stream xÚk``�00-¾ü{Þ¿‰Ïþ®{ÀŒ‡<Þ endstream endobj 218 0 obj <> stream xÚ½z\WÛï,Ëì`Ce\£3f�½×X£bï bE¤÷KXʲåì.½×…¥¸ ‚½÷FbŒI, FƒšbILÌ™õð¾÷Î.¶÷�É÷½÷»÷¿ÕßœÙ9OžÿÿŒ³´ÄÁàU[—:.Û:nÕjûà@× )“'Ø{zK\ÃL‹K¸!Üû 7Ã1Ç 8Ú‚³rC-ÑÈÞ½½-»ìо!¸òÂßÇ0AR_þÓâãþÜ�ÞÃøÿM${7]˜Þ{FX`Ì{c±áØoX—ÀâO»-ðvó\îáá3uâäÉӇĄùzûDØN�ž¶K6Ø. а]åëîîi;a‚­m¸§§­ODDÈœI“"$ރü'yñ÷„O è¾)|’é{–¬]³aªå ¯qX<1":ÂÖ+8ÌÖÃ3ÂÕ7 |âk�ׇº`ü� Á†a`c±qØxl6›„MÁ¦bÓ°éØ ìCl&6 ›�ÍÁ>Â>Áæa󱘶[„-Æ–`K±eØ l%¶ [�­ÁÖaë1{ÌÛ€9b±MØfl+¶ sÂv`.˜+憹c˜'æ…ù`¾˜æ�`�X0‚…baX8�I°H, ‹Æb°X,Û‰Åc ØÁÁzÁ5Áo‚ߺ,l, y7ò?[±­&‡ZbQB�Á/È,î ßÚ �Y.¶<„ÛâµøSÑh‘Ž ˆÏ¬FZíë¡ïùIÏý=¯ô¢z…÷ú¾÷’Þ?÷QöyhÍZïíëÜ÷v¿õý~ì?§qÿ{6mn‘ÓHÕ§±â™âÊ�ã>xoÝ |PÓ`bpÀàß©)Tõ;�FÿcˆdÈWï/y¿• b±—lCû -úlØÒaÇ?ˆ¾zÄ„'F®ysä“Qö£þ×è¸ÑÏÇÌsblÚ86X“�n1pÛ£F×�†bm|Vƒ”EF/HSfÅÑq Y|‹Ü»~ŠÙì¾ÓQ58€øU n ¶„髵ê\µ†=ßÃ!�@pµ\#“S� „ ´MŸƒ=4sÄH"‚–ð&nÍ)¤ºX,¾XgSº_½®'¸¨Nñé0b}˜Lê'?�Á@'¢ ´x73-[Š·Ñ³—8-,�­®--¯ÎOkØ®fkŽäÕÓGÎxLe½ˆÍŠÅŠU�Vó}Ã6í HéœGa—Úî=TÆ�vîé5®‡èŠ …ß°è£cbR=~¡¯óV·Æ£§Ú:àìLÆÚ¸™7A»¶l ÛÏ>²{J0²p¥øÞì¯�0ŸyTvõò—Ô½Iߢ�L—E@•è†FêÍvUÞJé'Lx7DDFÀÁ÷;dQ?xG¼rëL$dШ5h²1°Ÿˆ¼ñ¨ñÃ�lê/Ú4{8ƒú‹œ”Y ,¬†ëÒòIÛÄe¬5wBª»ÐÏé W›ÍóöåPÓAâJa€’cž Ñ\§˜8~N áR<€ø<;u+ÛõƒžhºˆGµmù’†½~{ Åì,µØK¹6È™ ˆôôs¤I/gïªæp6¾hK)èF”u^1sºåTv} )Ô³Š­vÓÚ»QÖF/‰Á8Á 8ýŒ Ù%4N€ñâ\�• ²$ƒ>H±��ô´y7<�ÃM»/@Açd4²œ�×E!] ´,L"J@–T.‰)Ì–x“׿£ãh´Í@Ó� r‡¢)p œù²ÐŠWz�T6ë»;ইBnì%ÎMŠd¥\¦d&­Hô¢7NÛgÀ™ß¶�ȹ¤òndݲÀ*´4ª¶º¼d×góZ>Aý'! õCžŒ†V�ª‡½skhÏaðsÁÝçB¸�³×…W…‡U…×ÕUUÕ1è¦åŸ®ñßBó#¡ãs\®ÂjñåðVwŸ˜�ÐÐ’�¦¢ÂÌÜ n€Óïdëвýá=!4ûŠ›½6.þpãPÜB7g)XÆw(Òâ{Å^ÖI,Pæ5±ð+(2 ЊøþðáýÚ"�ZÄ$Êc¨ˆâ¨šº¢ò*Æìfhñx\Ü¢ƒïu,~\©ÓFÙ}Ùùá(î$ôãáv1ì5û)¶¹Äùx3pAZUÈÊRëiØ÷󙊌T–ì�HS0ÉQ[£–Ѥæ¾=«Â‰MÑÊ È=£“@J‹Ž1 ¥0K£ÍLgŠóšO~C×o�Éf‹½4[(°6Ü•ñ÷ ÝNÛÙŸ8Ë’óç«´ZUÝP¢¯ªŠÕûÅû¤ngÉŠA3®Žå{ªÕ¯?CÒ¤ï&ÊÀI¢ðÄ5!çg‹ £¸mD9ÈŒKV˜Ê1:ßå‹À²é&'-`"DÚÖã �n;­¯�v�Xd#…*¸¸µ±Zb€ñn„¹-|Ø)4†Ã4±�@Ö ÜýC õfê‰ûZ©»’@–ˆL^�¶6šÄ–†ó<˜‚F•3ÓêýOަÑô!šŠ\‘+œŽ¦Aûë·«Ïíf%{Ýóè�]ÄB;¢%=ãŠIMäV íϨ,®„ 2±ÒNû ð¿„R’�r1ÜhqIb½GÔ™›+C"iƒ««VBO\²ä“:O}$›°3ÆÏ‡ (ð4D1kcý]Ü©…O6@kØó·c7ã�m®ej7®kè0 NeýÓ# õT:¨,)g‚[ZeôW¯ÞhŽk«dw75e”Òä{R�´*F*O“&R±‰Å¹eY• Z„0qˆÊg“˜ìNOO+kÔõEz–¼,ÍÏ®¬ÝKߣ"XhÑÕKì¸h˘‘KŽ�8¸§y¿–9'º -Á ¶{>»h€»»‹ëqÞü. áÄ'&GqUD“&ïSe)|OÚs>Ðú°U„9Q:þö–7}H¤mü’Õö|�ì« `<ŽŠÞy ßøäü²÷@‹«Ðó*y�«ç›Ï¦0°KÅBâ.041%ñ~åëé™;ÖzDZ*ø‹ˆ|ôöøRò:yq-´4M•ˤà W¿];}ùRž£=ƒâߺ·†wáÚ³‚Éq>É£¢¸©/,lÒ“W¸[æùi„4žŸUѳEääîqp±þÄ4Däh…÷dàF{Ì}i*òú¿O—¥"s0ó2e©°�l†&­Í2qÿ$È«ï–]ÈçÙ‹1/k[ ‹jaÒ7ÂÂw”4W T1©, î:�¹3¸Žo64šûz&P!Ài¸é¹=´°‡É&ÃÁ¡–kRPö Øàë\Â’VX¾úªí¦ ZRmœ¥7Í/;ž™Fè‡bè‚ÆñHtZŠ& éÈ�Ÿ;&¢Ép \ÇÁiЙ^(F¥èý™“Æ!ê{XóáÈÏ:îÁ¡Ó "Õs“ÍàcW‡iÒò㞣>¨ÿX$àóUüÛ8Øöùå1?˜ÍÊ{GÉÆY²#h í²£â`¶\h¢ZÀɪýÌÁšC{éýû$.Õlµ XïI™g9®Ùp™åB¾r3ü‰)мf–;KTM³rõ4àOåç@õq¶‹ïÑŠÄ)Œ¿©:Þ{é½÷Ì}Ì ÎöTÃK›Ægà®ötxFþa´ädâÇ£¿Gï3èùŸé» l2œKÀÞûæ);| àÁ6ï?ÄÀÊnìÖ)‚ÓÀЭ¦¹m4Àñ:n°!^oóü*,î û½$1Æ>A–s]wH¢˜vâÕp-K¶ƒíòyH–Zˆ¿ ·�‰".£Íñë×ÜÆ@ÔgñÌîžå­!L|P—S0œ «;RwŒ¾~aÂy£˜È;£OÎ á”*ÖMl ƒúC¸N  ÝhûÂþLA>Ðh©,¹V–4e)"×1›‘E"Î¤ææ¡>§Π¾çï®È¥3ÓµYo=ÆñOnƒZñM)ì³â<`[;ãJ-“Ëe  ,‹a�>ƒ¦!O Íóâ'Á~ȆIHJ%K—gæÞÿ ’ç˜cÐ" ïðú¥ƒ"ÐA­îžÎæôÅ úßôpÎEh¯'�Ÿ0.7‰ó’s¤Ii©©2fé–e!vôâÕúãØ’èÈ"zÞ¢™¨êóÅœ¯®Ÿé„–…àPäqÖëÊÑ´&úëc†ôLV­êrüÇ<9¤Jš›œ›«IÏËf8­Q†gæð8„êèⳓXwoÑ¿=‹éòáçi„mZ¸)jyœ?ºRPqâØ‚a ·¶kÔ[ RÞ,vƒM3ïrâ]ˆ² m|vUߢ»¨ãêô6§Ÿòñ÷?�Ó‘R©Ñ?Iœ ò¤Éª”$ã(s t¡�Âv_gÉv ö<ñÇQÊ_g8ŽÇ + �™9uÌø¢ÂI?Ðä'Ò_yì|ŒÊc﹉hèйÌi‰ÿÑuôæ·�‚hµ’u,G–×a,  í72{‡Ì@Ù,ŽÚÅѾþr ½9å`Q]ECËI�ëú<>ô/|¬™³*¾*äªÐFñ«¦zFBxNÆkÜ.}D#«acÑ@ÔÿÑHhõyë¾:‹–¾è<»-ö� –„3ñ þ!N´ÝšNHÀ^Ÿw|y»múF~«ðü×HxèÁ¶Ÿñañ°âùÖçö}:È 7�ûT|Öýƒ°ÕKW0ä�ù¾•ñ•&~ô€+ˆgNεÑP–z°¤‹t]\LL ³|¡dÒÊ™‡Ÿ²ü�SÊ4ÐæÑµÆj†Lž_S^ÑÔF!Û®Âwy,‚\ ð„ï®%àÙk²Ìò½8ä%HArªŠY$ó‰ £·¦û!žM¸sykƲÁ�ªn^¸IýŒDwÐ(}úV½!ƒ^Wœ¦k¦ÍL¼ª8™� ŠÛ€o#»Ç,£V÷VO†<æÝzJ¶‹¾Yòm-‹$Ü4ñ’ð9h4ƒ„0_T òuZF“[ÊéûÐRŽFð6òª>o~—´å0®¿¸> ÎÅÎ{™K<-L��}Wãû3›0‘ G?iëü:KTF¡ŠJ ¥‚+vêJõùõ¦¦Ë#åÅ8ÏpÁçÔ N_þô2\uYÈÉáñÓåßÎ,gоºÈãäYêó“nÂ�th–s&#SY]2ÊX¸ÝŒŽSUªÄTÆÇ¯ tk�JóõhÚÐY'ìn†°yòc‰ŸÇÖ¤îJ­õ²ªÍõó£mY83h^Æ‘�Ìú“ŠËª&«\U PÐ|²Ç°È‰ˆ©yYjM^´é '_ÃeïNö¸ýZðæa¤:M7´Ì¦á0t;q˜œ»àñ‰À]‰ùŒ_½G¶k¶•CÞ²‚³Tcuë]h‘1%@è“ó Ìÿb8M …<)Y®°ªõt;idí¹ÌÁ§8¸FÂÖ‡Öʾˆ·"¯ëä߯-¤6û¸Ï�é}æ»h¦@¡JOz)é ³¤juY£ÑMi™•ëþª ?ý‚}ÍËþ-£«å¡t�òKÇW|m†V ˜,už&;Ë*Ì]¹€IM1Uai›÷ÅmhejæªHîî�z¾¨/z(äbŒƒÄH.BÖÊ‚29&òCn¸^¤-ιT�o•™uÐÐ]„,ÑT| ¢ý;‚J΂¹Ì1â”öTöI&½²ðîþ‹�†öƒrøþRA™G#nXeǃ½¦¡.¸|Ÿìâg"¾+Ný —zmÞÅT|Ô÷k:VÕ&óÕ1;Ý�s@ÕN]ñ®œ–ó;ÏB�Ä(•C«E?°ä)(üéG8ˆ�¢o[b½™µ�ÛÓ"èU�ç‹dlÌ!p»”ºYÿô~ñA°ÚÀ”z�Í[Mr¼l`§¹÷„ÜÚ—�%^ž”¤`Ð�ÿ´ÃÓ@ß#r’ó Óssµ üñ…žÁ{˜ŽøTZ 7Mz˜Ý ³õ†p›ÅÑ&Š¢‘„·œQXÔÇÑ¥Õ@™ËVÈ�4‚âÓÝÄcÜM”Ó¯à }ð™™rr'†�ÂÝ&8Q KÓM^ (£á¸"?4£ÐÔo¥zøQL1ÀUQ6¿] ÓCJO¾€ßÁ~â3aˆ�ž^ËÀƒàô�i<�&RÍ´#·’¤á;T'B}HlºV{ír7Ùw�‡ŠÃ+aÏ_.êpâCÀÿ x_Ì»êæÌ·5g?¿E};íô¸‘óÖÎóÓE×ÊuuG�ÀN戡½ ‰n=%™’¨\ºƒ Üæ«SY©R•©tŠ*U•DI³@ ³_ômóÒ1hÈ’ .óKÎù°�iݪ)¤<(Ü?~Çä–C´~ðàW3mwãÑ ¸ä÷_ 6Gü;x@¾à¡�ýÒSw$í´JI]$4Z&zþ ‡“!sþäS ЦÜFÖ_0iªÃQ -iÌo­Ž©öIQ•‚¹Ry²ù,ý`ßœÙ,yå£-oXÍ  È—J�2œâiÇÉ�»h8ÔÍ+Íî|fx Qz*P¯×=%а±�wB=õОáúÿ=LïC ¡Ð ñ…Äý ¨„Ñ–ƒœ½¼N4€fdb:¶8l€ûÞâ�V˜Ñ‰ùÐB‚܇F½©ÇKˆéÛ–ÚÍ”:Î�½áwÙÚ½z(¦²h,1L†ãOﯽXÇL!Èù¼bªHã‡A™q›ÐdÖHà® ¥‘ȤÔqUEh•¢�)e ZÙ‰8 .+逪;ô �ø½—ðz!Òt÷•2àYÈÂ�]/ðè¬ E]¢É(Ì`a8÷]asMÝgêÁü8�ÉMâ÷ãâ…\7Ü´_D�*‚žnz@³*/"šJVÊåRfÊF–°—˜v«n¥ünH ÀCÜÕš@6€¸”. (`ápñøLMZ]�ž“ËCâ÷à͜ʒ}íün/ øbõØfh2Ø”¾'7¿�u«  ¤»ýö©ªÜ/š’)RL*ŽírCÓ¹\•®ÌÌ v�Õf—šT´6ÝMÎ:S¼óYÝbÄv-@38)®Òª²´ï¼÷ÄWéi^ù,tê2âÉZmR]¨É*àEœÍeÀ9]™ÿr‘ï$ÜüLé¾Üš/¼�†"ƒ Ô¸@htè¶”$H%¡'šžÝ¤ÒÅQ2 LK`&£œÑ¼¡äù*MUÓÊy9>Pà�AÝvj.V&ä²²¼À¬è(mÐxXާñu6ýÕ½¼QÍÏ<š¯ð祵AàñÚÞ šLÞ}¿À¦_Q3.M7_ÒšmÜ~SzÔPÐÈÛør¯2Ú �~ ÑÄ¦È C$‹¼áð}¸]W¿»¾ÓDi!¡wß´îfBK'‰ ’”ÊT)ƒDh.CG\©MËN§òu%ûÔ&KúØ™,9�—¬Œ8U–Ì·ûUÈ€f¡4<*>pûHº›yi>ežƒˆíêØšR*G›ž•ÇÀaÐ NE)¸F®•+¨DI¬‹ÊLo]Eo™�á€Á&ŸS“ ®€Ï'r�cŒ¦.‚E\°kÏž#UÕƒ M­E‡L´–24�O‰À�u/»Ø•^k:Ñ�õ_’6÷#j~ú”ÖyÌœ}×£ŽÐ'¿®øi?[5ãæ-jV¾x>X*]ÉŒßièL{¬ÓÿÃJσ‡ç¨Ë �¨`¯²¯rôtC{Ìè26×Ì[Å�2·»9Ý �jÛÿË#Vƾâ&ŸÝëvxÊÓ˜æ ‡Œz<²Ú„0‰þõ°P¨…Â7Dà >fþþ ‘0 žÐŠè<|èÀ;Qb�8N•LÉÔa5ÉŒ"$'Rˆ@¾'}ÛvåHm4`^Q˜�|Ø I&cøV ,L§ê³¾¸t‘ÉïæIÓÒÓ¤³æ¡žk«œ÷5–Öð¹³qàþ%ÓÞß=ÀUÝ;»qwÅçø¼íå…¹™™ŒZ£Q ‰—Sþ© W­f_÷ޝaOÓÎÿù—ø0à¦w¿Ýµêÿxç7œÒO‘pQÔ_KgþbiØ_Kä 8xTœPˆX„!b ñp<úCÝtš¥xÅߌüÇßœýð7ä )wè]Z¼ !ñ“ z>úæQðUrÙüÅ…-óÿ öÄLȰû[hˆ‘¸MàºÄU‘•!1a’°ŠˆC©¾’�Kþéšµé�ï~Ý{äû†Í0½Ã=ÊF¢ã–À ¼L�ˆéi¹!¸wл—¡çÕ^:µÆ5Y�öBïÞúVm¦&S«Õfd¦÷îó¿s? a endstream endobj 220 0 obj <> stream xÚk``�0°¯ÿüßÿ�ÿþþÿÇè,T ÄRš�A¥ © endstream endobj 222 0 obj <> stream xÚ…X X×öŸ™ "*c,/c虜.¯V¤ÚZ× XQ(`UW%ìHaÙáF6#û¾È*źUÅ­¸«5®Õ¶v«ÖVkkß™×ë÷¾ÿ°è{¯ï?É7É�{gιçüÎïœ3"Ê‚‰Dv,Yæ¾Æm𻇇2Bù¦Ãô•ŠÀè0?•in?�[#Q<'âY3^nοb¡³‘ùÖæFk‹§ÞÄøOå:ñË%Jm:7l¬' ÿ¤«­_3]¸i=‰’˜Q"j,5žBÔ«Ô¯Ô"êßÅ9ù+·(\ýš`MÜL{‡·+#ãTÁ�AùL‡Yo˜ÎsåÎör7¿­¡J­:4Xîá/w³—{ØË=•Záj°|ª2B¾Eä WȽkåÑj…J-T)£#Õ·—{«åZ¥*T.üªa ?µÂ_á¯PÉ5A ùÒÕ«¼ä.Ê�Ü=x«"B­�OŸ.—« y�F9oÆ Mt ½R8#@X£ž6¸H=Ãtßt—åž^ÓÝ]/ñ\µÄ^«‘(Ur…Æ/8LmÿlÞJU¸_%,5�’ ö˜FM§fP3©YÔ[Ô;Ô\j>µˆr¦–QïS‚ZI­¢¼¨ÕÔj-µžÚ@ùR›)?j ¥ ‚©*” £Â©*’RQ*†Š3L-Ó©é&£[P Ô¿DXôÐl‘YŒÙ/ææg,$a7Ä}ô"ºšþF’)ù§e¤å‡#¨>#nZM°Úl•2rÂÈlëÖe£æ�úÄf¡MÙèI£«GÿkLä˜cø±Å¶¯Û^`ƃ“ 6üfà_ÑŠvÁò°ÜœÏl“–eíL)Dù™Ñ8‘%£øZñž´$]‘€iõ´Nœ¤Á¹™\jfæ¶dYx3®B�éêFÜÖ®Å�\Ãob˜M7¼*Ôâ°ðF\Í=¦«šqGÂZ)±£/Àgb›Lƒ—.l�!ÁÈÄò•íÒ6NôÛV˜ŸŽ Lryõ7äµÍ“°sx]BcE‹¾[‡vètµÛ‘®¼ ëÙÏ�‡½Ç‘%9dôºi2&ÕåœÛãî¾âöÈq «?’·‡m©Çí‚Ä_¥ã‡˜²ø@œÎzlÙýQÏwÝ0©€³�¸ æüF‘V¥èsuHUµ´3ª¨3v¥ÅeÅ5²ܺ‘1‹ÅÛ›uZezÜ‚CÒ"t®Û£¡Î‰õI¹8ƒÕ&Ç%Æ–d–ep ú€PˆS2’3µ²l±Á˜+âܨ<×YéìÄ�úÖ¼ ¹ÍÈP{ÉÏ2a×v¼ƒ­-«®à{À5ˆ ¢ŸŒPd4ç!L £gþüÊŸ¸°`n’öÌ�ÁÈ™NP VmÆåÜÇO‹h-ŽéÚ�k›�ß¾i,ˆ~úÎeü´%nKÝ>‚®JΜ>qîÚiç·�IÄ ƒèªÔýæ|ˆ¤-83a[®6%gÆntbg/¾ôÑ�[÷Nã‚t5I�lc]UëÕW±q\N&Ì"Ö÷'�-p»®âl0ŒÁF˜l›¤ÿ�|·jÂC­ªÎ¢bÝöb”è±1!%Ûr[N\–V–X_Õñø$˜¡A×_4mÖšÁÞÅèöãl˜d^/` '!¾ˆþ�Ý’™tkÈ–ÊÍ,M{ƒ0“OÆÜyý÷Þý»Z[㈓ö¢«te“ÉíöðŽ”éZå3çÝ÷–_îpéü¥O{Vy™$㳟Ÿ…q[&’÷²@\zNlZ½:MÉ::ý.�ƒct] îúýŸÉx2rÚ2šcº‰Í/“A v‡ï4¡÷`¢”ÔÐWËÏ|r‰=Þ§zMÏÙ¤`»6l½ŒÐ œ˜7x 8K¯»�qªC_îú¸ç”ìÖì›d$±~gÁ¼•‡Ö}…˜ËŽ1ïà({ýÞ, ¶woÿ„æÀ^éJ_gÄt:{|Ü{¼÷È7OmðæÊÉGR×Us³rŽk¯ÑpúÜwO¹{ 8ö¾të’ˆ�çm¥]‚ùÈC:)uâRþ K;qGÞ°è Á)ˆüA§„sÝ‚Iá!]Þ-Ì }k�»ñ§ïÍyWþ¤ôì|œ0ÿÝMo¡5S$NhÂÜ/¤o2�…ÃÚ…4ÒB\·GáDn2ô� ]Ñ$ Õ8�#6‡é›Ÿá6”­÷ïªm¨lA&!”�Y+‚k½}½æ|:l�šÖ¢…ð„îÌØŒ”´:+O›Ì‘Xò‡8-çje!úŒv…„ò ÔCJÀ²a9@ÝqĹ]JT4¨à±Ø†Ä�§SŸœ…EgÃÏÚ¶žŽ5®4Â2cÔélãŠÓÌŠ/âí¤ ±í«S×çoBŒU’T³‰�þžãìÍU!±#¢RÒ¢ÃeAå*} b2Æ8ù३²·ŸxÂ8÷¤ï[Ä8É»ãŽ®Ý…Š“ýêßd—ÐéÉx{:—˜‰ËS8fbjjy^=–l//؉ró÷hzØ»W¯ôsÌLǶ´ÖøTWÚXP¦³Œ,jÈØÉV5”¶rd1—®ôõõ^íwøbΞ:xðøÉý×  ‘ú:nž2ÅñÀÁj}GG-ªlÒã«l?ˆñÛ¼øŒ=¼öзIÛU‚m}!‘þeí�Ë|‚ccxþIòÁ,ºÜäQáVΖÐ�®í9v¢\¹­ÿ v™VMX5„›k�l!ø‘³‘1ð©ÐD¸5¿dâsh“>2ê™,a|d=ã@&òõÒ–èz¥2:Z©¬�ni©¯ Ÿ$@2VØN`Û TÈøgÌ °Á°ÖãŸ&ésã[ƒ�ÔÏË`{¢Fš¾ã&0=|™ð¬ˆ KR‹�ž¾%Ù_‰v'*«CØÐð¤h5Ç|Õ–«Åqlè òuøCŽôIc†¶{õÂ38X*azú÷Þ×Pï†H’$ö™�®¿°è,á†öy¯b„¨Èào nõ•aÀ7=UæÑÄ�Ïw¦$æG²KéD• W#®¦’Tã߇CÅ+u4¸?Í•Uæ5³m¥ù{8¾¨Iò¢eàÂ|üxaŒ¸bë‹,Ü÷?à´þ?€Ì@§ŒÐdrª)Ã�µH,ˆ…ýT2–0?¾f`öã°E.ÅR{G''�ë÷~8þò•OÝac�B²„û=‡@áÀWÑ•¸)<63%% )f{§ÆæZ&äÅä*eªê¬Šš}E{¢§ó$à R0 wä „M®ðH ï(½çt‡HÑ #·íiRøs¸•³^8¸ÃX,¯Þ¹'$Ý5›]¦¡W çwúÁ—5œ Q`†)0 }Ðr#c÷ï‰�yØš[®x1$[þÒÆ[è¿NôŒípª'a7®«¥q¥BóÍ&øXÈíd? Ê’â‚ ÙŽ¬Ú¨²™Ø=yèÍ®uÈùÄõU�lsaí!«|h4‡'pF #7Ý :Š®®qìU³ªLmzbIFasˆ¨‚¼í&›@8Â: ÄméY‰²ô"mS+l;УgÂXs¸Ù'íoU¨ÂÂÚ¢:ö4µ·#!cò; ¢^#HŒw}ƒà´öÇ´âI�ýu‘àQÖ�u%È@FˆSv”àJVOWTáš"퇩õ\zYÜƒÕÕ]ú¯,‹NâÏÉ\tR¢Ð&E'¢ ß‹+ÒòtZ6•NŠÃ±Yºœü,îÐLq(ý¦¶åä6.í¾xRÖ‹oì<‚>)«¯½Ëö·Ä»•púµxéjÙ3ï]3ˆöš²¹9¿›x n=’®ÁõÁA8^�Z#·4¯d‰Å$¡&!cî¿fu7Ôq$t½äÏÀ„ùCIj&?^ºrýܹNn—îܽdüòúÇﺤÆÓ×ö{#¸ýŒµÆqß2?ò5÷¤jœºMƒÃóPzn@¼:qïHk@)­šº¤KæÉ…îÃ>Ùw‹n+D–<Ï1 ~äsÌ!7éš6¬ìà˜?êcp´ŸÌ ‡×„¢ðª–„Ýì¹Æ {=áWézŸh1„\¡™þ»?Ø0Ì0ÝæFü-ãÀ'ð#¥µ)ûç¬}?ÎÝ í–07éÙl˜•¾"}ó†GP>>Ä\ˆæµûgÀ(¤ÖUi›ØúÚÊ]Ü 0l�Ÿw36gTœgÂø0˜'ý4pJÚ²7²xaõ¼j;¿RE×aÙ±ž#—ÁªbzXŠÎ/ɬe»p]-v)¨³âÃÓQ×–Õ¥>,1w\0{Ù!ׯÕH"ÅLEKæ×Ú·dÞ›?X \_°k+òÛ•½?¯Ú²*/¯:” Â1ZŽØI°ª­¾¨¼C�Â÷>eÁòÊíþgTvÅÕsÞÆJ#ÒºÐB´´TQ°´ô#YsGû�_—‡Gå£xÝöøöA­ŒƒJe'eä¢:__Ë’ùš¹�3žÄßMâzÒ¿L^# qظªä¦ Uge—D êñú€úJ]w) ì9‘ÛÂÂÌŽ¯� �f}`Ñs…4wù½/ û o#s˜…ÕR gõ3oïø->^)¿ë6»»25«�ËÊÊÊŒ“©«µÍMµUm=�'_'2á3Šø�m`áü1w@ôó7`-ÌÛ®+»ù÷´h[ãöÆrYßÙ£Ÿub™Ó@;qQÈÏf ѱl¥Õ¸.($/&yä­Ü¦aßÅÇ›8Hƒ9’áºpέ¡Ð‰Ñ¢¹o W–·I=íbàÕk_èG¥ô§°^(¥û—÷—õƒ•q«‘‰(¦/o<ãÚ†z?l9uRvÍù3"!ÖK6¸„4%ÕÖ5Tµ”gîÌÉGíí—…ñâÑ@ŸðÄ Èh.4J•˜k¹2;GÈL(D‡hfçÃcËVx®rwØúnÉá(®°°¸¨VÖ[«ÒD'†ÎüiŒ†—¾½{o ëä`ì•1ÂÈäðaû¤Í’ÁMÄ*I£™1gŽ=¸~`¯%sï\ï¡O¿”�õäëĆX-˜;; %µÊ¤XiVYZ1:Tq¸ýöÖ�M³–¬_áêÅ‘(â)NKÏÌJ’…5 j1…p—f,;‹õA d¦ëFHÌ[Åß4õF‰H(t†¹OË]½½×¸ÿ‚ûm!²ÚÛ"ë…Ui2úû�}F#xØ&è’û°¾ç›° Lâpö¬ˆ{!ýÓLÏ›óRBàÎ ÿYO==ͨ¾ºoßΖnÄl ÕÕájv¨/³!ó…>%ˆØI»‚L½Èe:%HèEºL}Êeº´ËÔ‹TÅðVQ#¬»ëÌùþµ¡ÊoÄ0…´ÐDD®\·<×rŒæ»6$äž8¸´×±5 ¸³Dˆx¸/nÊûÙŸÃ1ƒ¨6܇ æ|!?IÚ¦ÆqˆHè8µ ¤×p=ô:rLœGg7'JÙgy..§$ˆÝ‹£S¹œŒ­ek-óho8&î|ó¡Á±Ü³ûëgI¿XS�Ÿ¸—Ý›¯7TsM·uåùõ–:ºÐ»›Œ(H·Œ/­Æ¥lw~e}wúÅmu& P¬í.XO¼`ý áÇÖ37øŒ¡Êz+MÆÁÛ@ÃTñ^º|×32N=ÞÅ9M^ô‹¸¹^À�jh&j¨ ÛKƒ™JÆ�·Å[i¦éÏë0bЈB}Ë}£ûÉh±2úYâ1 Eð\¬Ál}…ß`Û ëȲ[àëÙ_yh1 NÈŒËû[�U“V—QcvMÿÝ]í4L$ÿlÃ9X†Uï$«„†+Â+071ÏêËdŒcS\µpñ@d|\”ßî­=�>»’fðþtê`5qÔ ñaª%<'ÁKÄŒXLÈÍ�x>&/ õ¥Å#��r)‘’©nÄjáB7°‚©0ÙøðÚÕK'S��é¥éžµžü2EQóL/AƒmSKøÅ%°°¤ „FV^JëØz¤ÁÊ8rOe‘ÎtÖY[wÕm/(ÖÕèvžìÜi=Н÷éÿ£”2ò endstream endobj 224 0 obj <> stream xÚk``�˜ j¨0§n㓺U(Mÿ endstream endobj 226 0 obj <> stream xÚmW XWž!$©KÄ ÌDvEZËC…¢RPA>€¢ „‡`I ‚¢E„*Ö Uª[)]�Š( Òb?…FQ@Á,,RKm±[{†^ºÝ øuûí·ùfîLæžûŸÇüçœ;8fhˆá8¾ÀÏm�ÿ¶ K}7E*Ô+må±)‰‘*ý”'gÎY°F4Gcƒs”'p‹ Ñ,#A­‘áT ºe.|jnxPh�a¸æ5ýØñ06²äïæýMÿàšÑbŒÀñy¤…å îßÿ£Ä-Z¹Kî-Whâ5iËmííÖ)“ÒTñ±qÙr{ûoêÇU2w[™wdT‚R«Nˆ—E*¢eÞ¶²M¶2?¥–/³V*d»äq‘‰12eŒ,X¾]–¢–«Ô²X•2%Iýº­,8.^-Ó*U 2þª’'Ê#ÕòhYŠ"Z®’iâä2Ï-AÁ2¥B#ó��’+Ôr™��L¦–ËeqMÒj;;MJ¬­RkÃ˨íg„Ôvúu6þ~Á6¾^ë6øm°ÕìÕÈb”*Y´\Ÿ¨¶}察Rµ'2ãæØ_±¥Ø›˜ f‡-ÇV`+±Õ˜3¶[‹¹cë±�˜¶ óÃ6c�XŒmÁ¶bÛ±l�Å`ñØn,Ûƒ%a*,K`¸q ¶Ä€¿3ÄäØ |6¾wÇ�㣡—6‚š†f¶ö ­…ï‹þ& •ˆ~$VGˆRâšØQœ þL<>+`Vý¬±ÙäìôÙísá¼1w,[T,î¿~»‡ÜFS¨'^¸t[û†eî ¢‹Ý…Ÿ¿Zõ€jhÚíÊDÈú0²J´•†T»Œ\~p¼®•–GÀ’Ô²Éq©tZBtþ*8ò“ ]àRÜXÈsM¼‚!¼«5t†âaIwÔ$Ìõƒ%¾~Ú˜Zœ~ó&$7‡¯ˆö~Ü,ï¥y Sd¼rdž˜¸²F% !Ä)¶¤¦‚>~ò\i5uëÞdÄã'fwÃ`7^Ë›¾©–Ìé&„lIÛDÙméí¿8 øí¿g$|É”ö«ü“K](ô†#š‹ÄÈx€ù�öòO.3ÆÐÌŽBÙ(þbTÁð 9ºl1Šf®ü¤,濚, ÿ¹lY%¡@ó…�¢?;W«wÍiPò3e:é턚ˆ+>ÞÅ ÊÒÙI�ä�åOŒ¤¿ãFeõfó w©äIaÔ†uWA ºtûbuzü§ÓîèÀ©D:œó%ÙtøVôuúËXÿÓ¡2¶‘ñXó”�Ù�ö²Ï¿drî £‚|3#(¯»cG8ÓN¢RÑʶêªáfªíi°2UŸé`o‡I[ÿWý,JÞâÒÁ›ì¼ípŽÖ•w¶öIŸ: ¢9hŽƒ“=-ùÕõæÖ.-½")Ès�TöÝR0“ïÆ¡í ‡\á¾~s}oWcËà“¦ºÝ%m6íôôðkx6z£¹§çFèrzZ阖éÀ±Ûdð!&Ø É— ;I˜g÷2ˆ�ïWí¡!ªºÑäÔì^âÚÙ+g©ú%ïà‚•Ší^>5×㹿Ðïj_ÌJâf?½cÆxr;ÿ¾×é`ä~k‚›7,˜|­Ž„‘Ú Ì‘‘¹3üÝpjã¦ó_îd®kzû¤÷*zšù6tœ¿EÕÔæfU3ÕYŸïýLsê©Yü©¸cß¿SCÙ­ˆöòa¼=cím¤6µö7=i¯®ùÕÿÔù;ú8¢È°øºvv˜TÝßÕå~WÿG÷%ó1®„3%³n S6æ+Ö2yù³±qÇÔëîkãJb+”LFú~¥\}Ju<‹–ŒN8®–®ýÙLaÁ¿ÚïÃ"´Ž� mEû"دÎû  �I©©y÷õ¼·ÿ?øYÚ9&·˜-d¥ïµ³Gi¶Ž­Í¥‘ß›¤Kˆ:‚–”`[¢ªo ´œ½|íbüFæ;ôáºÇ‰–l<àäZuù(ÛöˆUÀlÖ‡�ÞÁòTx¤ƒV-þý¼œLÊx¶Z¡VôZ­~óž€Gð="xf—§rfÓÌ~¢OÛèažÙrS¸J h¢×ÃCRµ4t½J[Èé*ôÿÄnPÐèŸ2Åüê-˜O˜ÜŸ°”|o›rNS„Äþ[î:9aeÅ Õ¢ˆ;ܽi©ï'œôR¡$Ç:M½Ol�Ê�ïJ>óA6­öªš^ ºo¶Ž1kîwà ÅÊJ4­eÒ[‹ x|>éxcŒ'‡¦ ÇŸèmæ�ù+' þ0Ûi[h‚š>—­º¶„ ÖlÝÉô:OmãÍ'þdþÿüý#3�‚?Ea‚þ?ÄLÚYë€ëÀÆàظ€O¹>Es»—.ß©PÐ>ÞyÑRDÞA‚ç ì¸W|”F+2\6¬¢¶%œ>­aâ7 c¯6f_¡@óa$0KûI·o;È÷œ¨O¦“ëò.4JëØÆÏèªòª³-Ô÷åh–OS�ÃfçHyø<ÖáUÃp•7ú_KÀÌ0dŠL-Ž ÉËÅ@‚éÏ/@B;œ ‘h}àš·=n€„}-}÷z·!�>“ÙN.­S§Åaߨ€ 5íD ¹_SoÿU¹þyb_¢® ¥°åŒxê(ZèËGß™ç×…¨oß?‡¡§îw.‹üeÑ8ZL£ =¿.Àz¯–x coºÊsšE£%PKD ìñwÒw ä– ¾:xÜ�髪`¦_y�Àz‡kæŽÍt³Óo&Ã�C„µ^?XM½�3¾WX»zºìW–'Ó{*rOž–Âv¢²¢î“fêa§Û wJKýu?Ï—aOò"òHáOÂÁ^¬Èzüƒ~€·ÀâL&JÏcd1Èø .E›¯#o0Cb:³´�-£þ 9<Ö#("as x#3Ó¥™yl:&*Êû~e²Ÿu)Ye-E? ·�…6�n•²'J¾ªt�„K§»ÏLw1�i8¿ó| ÕâC<¯äæ‘}„S¾ß®¨­â±5SÛ!žlôÆHÿr–f߆Įë]xÍ8 ˜’åÕE^ cÎÇ ;.8~¼Az½—=y½!+¹….½+¬ô )Š¥Th)‹¾óiriSwéPk¶øÊÁkÙaRß•l†�Ee�á*L¯þ&é ÕØpìÜÌ•% Õz^�HåþÑ�ƒÃ3žÓÜòΔߨI”””P`"Bo¢×ß@r´_úL�` 1£Ïô4z°6Î^À%L&�¥ÙdîËÍÊ:L#ôogáá,6‡•f~�]zê½’’£4 _�…GKØb–W9?»›í†âN�hM{(Ù ¿œ#Ó»„êÝq‡”Tä�ú&²ÀºYƒd ’ØûŽ bBr`cÙúžž¯+>¬¢ÿÔqŽœL÷¿Ç^º·+èûuu·nJ‡nËV¸‡ûGÒõ›…ë{>n¦Úâ·Æz¯Ídçç²^‡Å^Äw5®¾.aþ.ëWWw…0™ÞBï�â(XðìùÏúÁv{ôƒy7<è6áæ+ÙË%›ö£­DVV~…D"°‹�N]ýâô©… Û¾–‚Ðé'ô×E^�‹ãé+ÂÁŠš›ÃÔ`WÀ²•¡ïø2Zí–©Z±äˆ"Ùc£B%öÐ×¢ì6ŽÑþ·qè2áì©ÚìvèL �б¼nÏ�ú‘÷›Ûép~Iæt1Æ9@:‹�ÉIÊÕˆóE‡ê”wû�!ÌÌI>SÂoEÆ“»g¤'CyiÑRtí�";áˆfa¾(§>°¼cn�f¶V¤ptEšCîz”»n�¼¯ùÐY¶ðp™x•¬x¤AQ'l=yµjüh‚ÂÔâ”cª…å®ý(G8Æï›2QD;7ôʦբÕ((‘¹~y•i-iWö]Üw1­Î,ÌE5 _!ŒLÍÈH¢rcØ�"˜â ¼ã_ä|N]¬=9~if‡Ãuêp¾p‡d? �Í,Ìzç1=º}ÍÉ0j‡K†c朇p_©Û{ö—ÖÒ«úÔmÔ�_ßè¬bjî�uHJI/ÖUíC¯Snß·›Š ;Û£b´ßäwöJÇXà÷`Î"/;ÚXÿÁ4�£Œ¬ø¯ÌQÿm’ZΜ„�ò²r=Û0Xi4‹5š£›=<§­ �w¾ˆ?�–Ý/(z¯° hz4šûĪp endstream endobj 228 0 obj <> stream xÚk``à�5ج1­®aUÉ""øU endstream endobj 230 0 obj <> stream xÚ]UPWß%ykh—ˆ¦¡rÝ­So¢”À!žÚVOTTR@~D´íÕÈHB²$ ‚¢¢+Š6"h½ÃóðÐ4‡Öi{€… �?Ï{iñ¯s½í�ó]æÑ»ÛÜ�ngÞÛ·ßý¾÷>?¾3_šR*)š¦_Ì0 Ö³² LVç’¤õÅ•–ê!òË %H³÷³s¤9”ÄÑŽ’x…ô’rE¢YÅEV9µ•Œ%0l‚ršMQ´{zd>5¦±såóûr$p”�GM£éXíì¹O¥üß=éf[±�i¬¢E¬KÕ§¤¤­²Ùë–²r‘OMIYøJd^ʯÔóSI…Íí¬°ð&«™7èùl=ŸcsËQ ¯³Yùb¡ÜTYÊÛJy£°‰¯q '_æ°ÕØ�óõ¼±ÜâäÝ6G/¿B¥`r f¾Æj¼X.ðk7ù56«ÈgYJ«Sà“’xÞ)|¹(Ú_MNkÊô6GYr©œãL®üO’39²/iÍúcRV檌œ‚ ½X+ò¥6oD“¥Ò©ÿ/ß›£ÊTIÉO•H¥R‹©UÔ:*›Ê¥ò(#UD™( UE9ɉ¥b£ä•’ª t,]FwÑף訢¨>E¼"Sñ¹’Sš”ÃЫ–7Á¼QZZwúÑÓÓY!ÎÚÔP•ÅíZ‰N÷}zþ+ì¿´eÅ6nw Y°—¼RéÖÇ¿¹ó䲇øÊƒ¶K7¸Ý: sµûÜMÕf—ª®ÌܲK»ûŽp£°¼5àU©¥ÊÆ„CôŸ&Ò†‹Ú¶;¨"?¿.'›ï>:ÅÝïz4þâÃú ?wî6:_([†É¢$1Dåàˆºú‰‚|sÔ×}•‹œ„ÅÃÀiiØ´m�ö1ûT; N½…‰šDóDcçÈ öû<̃#�¿äÚn¡’72ŠpÚ¦[�;9øõ°–cÆ7váö»ô-œ¾ô¹¤#Pœù,ÜÖ”KÍ“´öÄÔê¨:hÇ/§¤ë\\mZÎ4d¡ûŒæÐ«S3P˜Ñ”?�f `˜c#ˆD3Ý0 …:‚í½Ø×Ó\AFÛâ›LpÓRÉßRÌׂJºŒæ3dÚTrí­[DÔxuÙEßvnËRT}udÛçøÙãO@Õ-#jõ¹& n: +àõ8ÐMÐb†è~4 µ�áÎ Êš‚Y–Uˆ�«èËMãd:ÎÏ 8úkLâÔF4Á\‡}(Øáÿê>þ¡>ú‡Ë!—‘z²ÇuKúKˆž¼ßk¡ÄO¢a ÉÄ$“¬'KHÉ»œ< †¤ÂZ ë B±Ÿ[pBKò‹IaI &1‹ òú9Èø-` �ÅÀþ™Ð$£T&~N6}BöÈ/{³Î-ŠÄaG´r‹²A{xh1Ä�æ)hÎr??ª%ŒsIþrüzþ  3œ<¾¹vß»±‘(DùÀIwAV¾Ñþ øNfý8µÀö�B‡7/oؼ–kˆ(„œ)³þšÐÛW>Ýu?Å—§s¥®]†·;¼>çèj9~ðÔeØ4ë܇þî<þûô…µ²ìÿ”•}ËMVH+¤Xíñ»‹[Öo,Œÿà±l~DÐ0óXº€úað¡'^-M¸îIßÞ¦aó· é 0j;”¶ù¶ô¿{tåÉ¼Žª#µ];�ÕuéS}ö~hð{üÇgQ?wñêÍßp"“D¢˜—èævxûÒ;¿)ö7mwŸÞ{ºêxm»m�E•Ý�ñÆœ¿°sÌÀ•ÿ Yý÷J@‰�ö (ÏȺ¼ÐÚ‚ÖиgBÞ¸¦¦Îj÷�"§P¶Û†MÍý�vîì@ ûw‘꘳ ‘™Ø‰¥DŠù!³�´"ÍÎuõÞÕ·ñíᮎވÚ�Cç¦!ãö�”‹Ò˜r½¶5Ý‘‡Ó›?´q7ák9ºš©·n­Ø#Æ·0Þþ@þI5Ô¡_0¿\D¦Q\©jaß²CuÓ@ó�÷½NÕRæúT®¬öß¡°ç굿vøã½žf—§Æëˆ?´¢‡4¡ÇŒ:Òib%ÌþTîÔ¢Hß89Óå“r�Û¾N3ç9¥ÑÆFïgŸ>÷äù!�×ãñð8ô¾‡eç=‡=�üyðó/¤ ò’ endstream endobj 232 0 obj <> stream xÚk``à`Pdh9ÁpÀE: endstream endobj 234 0 obj <> stream xÚ]T P”U¾¿»Ë¢¬ÄÃ%güÿß4£”…P”µ”÷sEJ&Ú.ü°Ëâþ¸ñ�,KY1X"«•§b�HÃæ’„!e`|¤éLcÞ¿.Sý›5ÓtæÞsï=÷Ü{ÎwΙƒ>`¶0:!$L»<.>I©3¼éë�Hg™r”zû]$ëÉ.2‹–,‰±ø–ⱋùh™ˆ×&âÏ ~OA•'ÿ `XÑKv^í �E¯p;#Zj|,zç ¸@€%àð;þom}£¢£3h�Qc,ð“úú® er ôš,µ‘òóõ]¹ÂÎeTˆ”ŠQ¦k™|ƒVC)uTŒ”Š—R &Ÿ“j(/FG©hµ2'“b2©d:•2h½�ÊÒ3¦\ÃëR*Y­1PùŒ^Kq«žÎ¡•:ƒ2é2h=eTÓTdJR2ÁèŒTœ&�ÖhÊÛ›¢ 4M©�ÆÜµ>>FS–”Ñgùdr:ŸœJû;ïˆ Šdï¸èÐpER¸Ô¸ËHe2z*ƒ6*59é¿€Œ~‡2p´P€D�h� ´ €Ç…‰#'àdÀð'vëÀÍQÏùŽ'ã]„MÎl‰É[l°ÈŠuLÀ£<6 F‰ï…Û¢N3�g†.K®ž@ñe>›ÎDÏèˆP}LÜ* ÂîK¡:Í<ú•XGÅ¡©i¡A[»‡‡»»nŽwnŽ!*Ð-ññÛb#6v=|v½¥×:œ¾”xaî¶ Ê±‰ë0}†Ç¦Àíbèêÿdi:½w§Ž€*x|MÏ †„mÕÍ­Vü«^¡µÈÙ|0JÑÚ«#³“‰íê :=}ÝHîϺ<lcåùì¹Ácµ0Xlóbå¾BttV.PÀ(x Clb”âÐ3)x ¼Ïñ…/>¶z+l±ºuLš'¡lÊ}‡Z ›�ÓÀêpÕŽL5Yý®-BüGýƒ�½ç ÷çÈP�×dt*‹ÌÙ$ПiÎëÇáËp>$¡Žô˶¬—oeN6ç¦Ö²æó’ åí ˆÆÚ††üçjä¹ÅB–›K87ÌV¶Ø:ÄyŸ;ÎcåVäúÈ&(JÞ)uÜ(l*ï²|]ç8[�\7 9õÊ<öÁWÜárÅN‹¯Î® ƒ‰Âªªò*Îw@^h�ÚŠöIî8ÀËp Ì›þ'îØ —æ)hž´§Y/† ¢!¹6øÐ:ý��ß¾�·œ..üÆ@ûðiòÔÕÊ¡ç’À*q´9® Žðݹi�߬j¹žOº»ìé+듸¯0_©þ†¨9úùä>öEpÁ‡dM’9*^âlo§.,.ZÆõDàoï�‡ÜLõlB5Ü\¼Þ�˜ÇOfDsÍ"'Û¼1§¶OË9²Tp£R$ê;f©¨°Ÿ¹£hþ_Ž>~S endstream endobj 236 0 obj <> stream xÚk`� L < >ï endstream endobj 238 0 obj <> stream xÚ]U}PçÞãîöª^4²œ6ž¼»1ÖàÈÇù5€Q?€Äh#q8î–»ƒc÷Ü]¸»F*#DÃÝz #‡–ƒÀ�òáڊĉfš&™DÇH’µí”³6“Xcûn»þÑÝ£œ¾ìîïÝ÷ý}<Ïïy_¢Ñ *•jéîœÂ=%Åk iŠ.àÖšÒ¶ÒN«òk‡¸\Löë�W‰Æ‘P‹I^¯’2õê½æÉkÒGÿbþݧMFÕ¡EÊ3¸.Я�¿tûõ+•‰€þ'ªR=kH^ñHú¿ 9Vº‚Üi%)ÎÁy×¥›L¶Ñ./ã°Ù9b�É´>Uyf[Ó‰]fK5íf«„™²»Ò‰Ât¢ˆv˳"…¦ˆ ÒnvVt%QLî'jY’a C׺ØÕéD±ÝÁnš©&ä7C:I3KZ‰ZÊJ2g'‰ü’½ÅÄvšâˆ‡…¤X’HK#–$ ;ǹ6edpµ¶tš±eTÊkØ çì"6CÙ—¶ýå¢â´‚�ÛòŠöæ¥sލ¤ÂJrf‡“MŸ«‘Çrd ’‰lE ‘=È^¤Ù�”#ˆ©AêÔˆJY±Y” i�zäsU–ª#aIBIÂu¦ºTý[M©f\û¼¶æ,|SØ.À)!ñ�Ì%v�¢ï¥ê�FͺÏJîJ«¾ðÖKŽ>ï@h¤ý7<ð:oL1¯€”s\ZPšº kÈý$ÿ‡ó´E.l‹«²yÌ8Òw"ŠK»<~OÕa€µ¾á0û�Å•ƒç/ýñ\ÒŠË�á5!ñV ®‰U?¾5ŒÚù&Ï‘fö(8rÌmÞmܼãú�ɳ�ábûÑ»>­…ï=<`Œôu�àØ÷·Ÿ”I9ERò:é™û+!_ý{,ô pBx,¨àöµX ¾cø$ó„7{ó�µ |­ÎC5Ûlƒ¾.üž4aB½5>[å9Ù‚!´ë«á½¸ N@ ”MïÁ%Í8úñÕÖAPßrš6†ºFðÙïCm"¬€è†ö‘xpÌ ìiðmê° Èî›íq÷�¤ )õP¾J[<Ú…x43I@l7 1ýÕÕ ã¬îg†‡ûû‡ÿ[Bž�øu¬,f‹ý5†Mˆí²š÷;¤Ð”^ÊÞká<,Àvôûš:¬Æ\ÔCË…�óuâØ§QiÂ.Ûñ`²ýÌ@±��R%×c‡Ùè½›ç/O™R 9jtñ´†|!®F;•´f‰Q½ƒ�˜Z¬‚”b©ßIZI›š"aRÒƒ5P Õ@ dµ6¾š—Ÿÿê­»w>üðú�^ÎŒgŸ%@FP}ƒœÌA�¸ÙðÍ–¯¤y@¢æ ïyb®{ ’ÅsÔÁ,ˆ¢pþ÷îãÙK^³®©�¹�~y¡à¾Pr Ð(ÀÉ8>3¯Ï8fàêìÇâ/•<›¾%Ê+ê™*€­ ûŽm 2T™Ž EŸøìÿ‹)×›�†â4üNFFvZ5>Þ4h„ ßý &ɱ×ï.Ú0,×ù§Kø´î½kSïß¼–ÿS¹B˜¬‚¥0Y ïÜ4\¬ŠØÍ.‡Ã2B�ÿõÀèh€©$Sbp÷rvõâ³jø7€M‘^c‡<ÅyT*C±+›r¨|_$`§.ŽûSz‰JÇДéC·ÇÆOõެŒm{Û×mœF»#ü˜ÜmÌ��ˆ{„Ä‹±1Ñ'®˜•¡„¢ oqš:Ñ�Ò™xF{�+�U rÔô£��o¨Ëk¨}Žt;9�‘oiüjæ¬ë¡œž:ê`´üêÃ+ð¹` €«ÅÝÚ¾¸'|¡rq>+õ«äËÙ¤\„ÎĆ ˜„YÁ– ækŠiý<¿~�0?¶`*ÜÂ+£µ»å¤^ëÏ·ÉÖÛ§øSúgÄÞ¤þøYœ endstream endobj 240 0 obj <> stream xÚk``à``dP`‰hXà²| endstream endobj 242 0 obj <> stream xÚuV{TWŸ�0ÁšEeŒëfê�Y]9UžG©ÏS©V8>€ú j ‰‰™˜L�ˆˆˆâ O%<�šÐÕViKëæìíî,ÅGеžíÑÓm»Û£Û³½ÓÏž�ȺØ}Ìwî½ó}÷÷}ßïû¾;L&Ã$É/7fnÞ’—·.+‹13K6j‹í&µ5üi-ÿ2? *0ž’ðdOKù_Ë\ ‰0_!QÈž¾)ÜüÉúwWä, “ا„Çžih²b¶8‹Z©øMx£]1“K$S•³f?áÿñ(iEL¡6£Hkf lÙ‚Äää”tÆRf5ëYzAròÂøð¸”^•Hgª5FÆa3hµ¹ˆÎL¤³élÆ!îèW3]¨Õ«M:šÑѹÚʹݦµÚèb+c·Øæ%Ò¹zƒ�v0V#-¾­Z“VmÓÑvs‘ÖJ³z-ýFÞ¦\z cféu�ÖlÓÒ 4mÓji=ËZ–%%±öâDÆZœ¤elI¦q![RX/aMNvnºŒôÕÙ›V'²¥,­c¬t‘–UL¶Äù›ÍXw«M˜ø¼ŒÅaIØbl¶ËÂr±<,ÛŒíÄ 1¶+‘b’°Ô4lZ„8“a°/$ë%ïEyœt�ô˜ô[™\fŒŒŒ4D~†;QZt-—áxî.æÃ²‡ˆ¾s@°À g l)¨XþyÎçýV,\i>Qv²Óßü!hðuÃVòîû»²)ay�0³`žŠ¨JÍztl ^b¥ád�¾“p€V"LÉÂ�åÅÛá!r}áÀÅ¡ÇgÐT%£Nr3„LßJy’(ûœ­öʽÐ^ œ5åêÕä¢5£>öÿˆ¦S]GÉÞ:×Wu”¡Á»¿“ôööz?› „´l�\(D÷ š‚æø¿wSãn s(‚‹9B®áä�”è;x>p ÕRñ½ 4îòB7uYˆÇ{ìO>)Hãâ„iQ#Lùó|„ ^ê:wNôÈËßcx‡(!-VyÛ—­\³þÓ_q#·¯}ôfˆ† rHÁIPfHÊgð+?Y �+–íL[âä¸Ë{$cñ½fÚ'®P?ÞÑ tR±(ˆ&= [J “ÞÇo_w½ , }}dÏéŽ5zƒôORCÄu~§è–¨ f£;ãn sqç¸_�Š‚Bô„Ÿ(ø Œ"’…X¾Oéc= ò ãa}>�Çv�·‹öÛEû�âÁ{`f<˜°wZÄ“N‡OžñÔ.Ìxaýw{ásûr¸˜¿„Ðú18väÀ¿ß:¸´à­ò]Z@ŒúŽtþœ‚àŽ ]4†( 'ú¿;;4Ôa[›Q>½ùãœD Öp‹”�C‹ŒÏä+‘I‰&¿úX�¨ËÍz@<:WÙdþèÓÞÿ Z€ïö_(»L"飇(†J›± síª×‹î]7äÄôáá¡ë£Ão¤€è¬’Ÿº”¦<_Ù¹¿¹º3"ðƒj¬�;1.Ž ½û�?ª¥©¹µ]Õv°×Â.Þ�² ä/)_ðºjmGüãAúÐÝœS¤·¹·� ¨¹*A��ý ]UŽì}˜ñÜÚúÚµ=$Sk?PÑVÓz�B3SÞÀUjI¦};Фn-,0E8X»¿ZUÝ\âõ|yõÁïÀoÿÔõÕMU4D„mC„Ýý½ò¼ÉkÔYLF�ß8ïõÀ¿CóCD2_ÁG){ö .ٸΖ· øåÄè8÷²‰¬úB.!Ǻ'X�¢É8A?¹�0 kðÕ'=}]¾p=~Ê!Šc¹˜[jãDrv å�ÉosÍ)kS‚;JÝœÑ~^u:àûúëƒÝ˜z/.[Ó7ì½5‡ÚRY•,wBKÀÝÑâ; ô]…½$Zvò› Ï:�Ø'¦8bP\†ÆBÄ#>)•g÷Àª G�ñØV§±È4Qž ïá=УÄígË—LÔø—‚ŸsKóþèµïFÁpbÞ]¦ŠâÎÿèE:œZ¼bŸaì÷tBþß�xÂÈž;g/6½}IlN»{a79ö¼\7Çoà$—ÄŒ<ÌÏQX/õ+›÷ºQuM"qäVa>ój•¡Öñ«#xM¿ãÊžìµ·íQîS°¾™:ÞÔÒîV‰WAYX¹B¬¸ÒcÕ­‡Eå~ Í~ˆtÕ5VBd—;ÍÀ®1WYëZzfž­³¶•‘LY©EãßyåFð“ûýšÇoˆìòÁú&êh}GË Utøa*O*bÅK[¾ðscªÚùôvôZGƒ /ÉrÅ$¨˜Ì½šüNg›ËU_ßèêª?ªPœ÷Ô745ÖwºZƒˆSü‚?1ýGå?�CÒ endstream endobj 244 0 obj <> stream xÚk``à`ddPhákXàÂJ³ endstream endobj 246 0 obj <> stream xÚ­Z x×µ!Fpœ€£Ï$3 ¶ǖ�°ÄeÇL ñ¾É²%c[ò*K²¶‘®öÍ»ly·¼/›�š!!-iØÚ,äkúÞKšÞQÇoÙ¤Mó¥-í{ÖgYŸ¤+Í=çüÿùÿsÍA&OF8άíÛöïÜ¿oÁŽ�{$Ù‰â¥KmÍOÌ&_ÛE?M?B š@h’Cã“h—~v2qo7éB'1sC¹ƒ¡“Çâ˜á§ÑÌ?Ðg„£, }>øÄïCç S&!dòB Ï!ß ‡óã/Ý�"IJÝš’*Îæ-[¼dÉŠM’œ¢\azF¾`Ù’%Ëï×6.lKLI òDBA¢8E°m±`çbÁ.Iû¬P0O"$¥f$f¥ $i‚˜Ôýi^jnž =W"ÍÉ›¿X“!ÌHrEöonjVjb^jŠ@*NIÍäg¤ 6ïÛ#ø…Dœ/Ø!LNç¥ -òRSùù9k_|1_š¾X’›þbûž¼³&Þ”÷bpÝ¢_DíŠY´cë¦È]{#çæ Ò$¹‚”ÔüDaVÞâ?ox—$7;1 apäid6��ÈBdò"²Y†¬BV#k‘—�W�W‘õÈd#² y ù²Ù†lGv ;‘hd7²‰Aö#ñH’ˆ$!)H*’�‘LD„d#9È!$ÉCdHç�\6òìÏ dE0“‘*ÎÎÛ“öNºÂ]Èq;&D×¢-¼—y_Mñ‡¼³àðÌ¥±ˆ°�€¾á§pÞ <Æ l©ãWªAI,ål1 ê3-%x‰^£Ô’ÌݱO^MÐg"”FcÀ(S¹‡hn·´ø;©ÜV ¼5P›H­)ÝìÇ\¶ W-qÎDa!ÏìE ò J(TT Ñ7héï饺q{¨#™× ŽÏ¤òà.ø ¦ôÑ‹|œ¯¯ri|ŽïV�Âh”j‰½òÂBüh­r€Gy6£Ö*`¶a Å6•H#Ô‰áBQ�g¸Ì4f!3wåhäÍÞ# ÇÉ7<}²¼¯¡Ù_MÖõWœ³¹�/Rï\ƒT¿Ûq§Ö&/4�žÂ�4Ç&£Æ %Ãzؽçƒ~Nû 7°Jø··Œnr0¬õ£{¿ÄnD_f8s™W¢dwæ^+(¦€A/'|lªµêÍøø‹.PCÂÛ<8N�S¾%³à}þÊWæ0<‚™Å»-h¯Ëºp8�wǽ9‹ÜÍ|Äá¥ç˜Ió/ Xv‹Ûd'¯Ãn®ç}iÿ·Cd“:*˜v˜§¼sÞçÒñp€ÿǨãQ©B™HH\‡]¨ÉbvÌ¥µ¨)•ÑHóԨ¨4bJ7¨:fÖ¨(Jˆyc$j¤TI©ØªÃ›?„“áTøü9Á<Îláç*"÷ã¹™ 7�¸zÚ!�t4su}È`{w?>âÞ#JÌa¦‹·“aG¥þÀ"?¾pŸ8XÇ7YMv+Œn4 \IìØ€^KØ]sg’#eÌê?>  90ó˜[tZ PS$³n?3cûj|Õò³pöÅf¸ô8‰üâꣿĿë]°‚<¤Q˜Ê l‹©ÖJŒGößñqà¤ë0ñ.—Îø–oS{Ôz£Q¥&mX¦/Æ÷厜;Ýú‡–cä•Þ=#¸gÄ�TMЂ€•xJ[›|ýÇú¶3O0|f63wÞ»[Ÿ¼ýïÕìçÿ7øJ¾› QÈ‘@Nø]˜{‰ï+i�ˆ2³3Õ·tû»:ˆ_Ã_ñKê%Dx´0K”•_SÐÖíïô³‰úof½ îûŽÃ®çraþQ~—¼E”œ›!5ªêkï't¡.úUƒ�“{^¼Ã¥÷ÂùÃI�Iós™§„BÆLB·)¨€Íp5y‘·qlªb§*I+‹ªËbÓqU¡¥ZIvتšê1_‘»$7· #nXÖ÷íLëu°<Á ŸòjÝ Ž¥ÿbr¯®DûœžÓ½¸³ÁPRIfëäy˜´NUÓÜ\ßC„IÛ`È=¸Ç‰�ýú•\Zëø·â?^ñVR±8�…;P‹Çl°7Eh¼�†zNúÍíj‡ÖLQz£AGÄÅ©Sðøw�˜´hõf=Îr®’"_eÞaÉȨ˜Êa°;̇ƒ8òmW;>TŸ±/F<[–L®��–¦áé»êg$�3°áÝÞöÆú²ªüXm´hãðÖ{ðIˆA.$Ãþ õC¹Ÿžó�™\°’ïÔÛʉ,!%Jˆ³$àê26r6rN^e­ÑXI6PN£Ó³%(!¤Ë ÊlIHJBŒ"_¸æ=q® .ÿ5äþBºõè#�ß¿}û,œýŇ£}ídžË—îÁf¶ÚÉcp/Úh7»�à•¶;²õÆÜî£gù�å€i;ø�CoC­ÕÀlï~Š|µXO´ËsÚpf23…™Ç<»òèæ›'‡‡**HÙ*Å­L"Œ8˜œ Jñ²,àÉ!ë� µXe¹÷PQ–<%¹¯èÎ>~ïc/QcÙÆ¸k] ¾Ïð±çXœÚp”<Ó|dd?ïZ¥&)9:®.úawÝ~n ’Õ P°8]8­ÕÄé~´Óét^Â\ Î£1kÈÔ$*%9É’‚kË~Ü*w1”iå�‡ÚbÑ�û«XÈþ!ËÀà5€;XYñý%YÙ U‘ï³j¶ò¶2õwùº½{¶îÂ_· JõDŽ:gþn\f¬®jv·8›ÈúÓCpò9ìÓß[22²³ˆáÈ#03oì>j4•SºJ½ •µ 1 7Ø|ö›/ÂÕk2×u†tÖ_ºŽ1ÇÉvÆ3ÓåÉd™�*—añméǾì†ómlsº £ÎrîA;Þ�oòÍv»ÏŠU”ƒ‚‰å@™ž4hu…:¬Ì êÃóÚ@……-«^àpüœwèh.üÜ˯Pƒ‚�ÀáÀ1‘Â>6v×5¼Á ¼* '“©¤¤K®QLpgw;› C™‘íØO� ¡™êrõ\VŠ”ƒƒ–Jƒ| —LÈXº¾pOd ž”Ñ<¤&�f3pàý¾îæ–‚J ^Ù|&ùòƒ/n~î#áT: ms8œ#xµg",–éF!ãÌ8ÏF!/†ÿ%=�-kMv4{xï¼×™ŸkÆ· L5vâRóàÅSx³YZTBêKÈc|TkÌbÛˆëŠ�»ˆìñ˜zÁ8’ ÄÅq'å½·¯Ý¼ée·ñÀâŸÚ°�]ýuåD™½ü.+˜ ÿJWì/+Ü�çëm&ik¦JìjdëÑXÕÐÐêy÷ÔÀè ÜëT2Q£ËPce®Â_[]KQwÜë ‰ÉBbÏÖ’’Œâÿ¤Îú—Ñáhs™‰“0íÓ]–íÆ4@OÉ }1Ш°MGsûŽøº¼Â×_uÁ‚…�-UúüÜç¹°ëá^tZ c{O.Y\˜(ù×d3cŒB�z]A)özoÚ±þúÖæJ¢¶§ê2û�°pAïýéenà“@‚ã­•y’'¥Xx�Ì—c÷ÒçPŸÁòp&â§ Ä“cò½©Š8C„Zi,*·S²£Ûâïì¡ü㾩BcR�{̆–jÌìÖFÐm¨‰waì´Ø 4Õx¥Í᱓ôÔ‡}šyvìÒ�¹¯oÀÒß?Dõ=ä>8Â|ƒÔ¸ý(ÔwgwýÁÈññÙÄ5u¬7�z#ó-!y\#ìHÀÓ ò³KÈÂä²]›À®Ég#®×y�ûñ VNôzæ4jÐu¦t–ÖWÔ:¼b®xȃ•Ç�¹¢!äDûð¹kø(Ø_š£ÊÉmLå?³èo‘çGoc_–=™”H$´dá:¶ë(]FyÊà,�aå�AM0“ƶ3Qt-Z£5šd83ãϹsœj(JE2³ÆZå1ieo=zîøt�=@Km&C¼6 è 5—ÏZÚM– S-&˜È=žúö£¶¦5oF–ÿ�99 Lµí!MU#7?þ»½ékiK`u3ÎûŒN½Ë ´ÓÑ|¸zÎL"“̨˜RfÁ|„iP µÄÊÃüåéLÄëK†»mYôz|ÉÞOáôÑ*(¸Ãȧ?ÿð>þ«Q ö°O�û½Šë\Úýü¯¢¯­øÞ¼=içmøä³vûçDä?Aú¼(Šˆï�{OIóß8ѹ�gÈ }Ç:ðãmñÑä¸iéo�—X¯ÿëõÅt'ÿÎæq{úìý?�  …/òàLˆÿ'œJ.oå”ÎO�'R2FáÌLÞUØúpp�wýä!ÖM3¯ûá‰tG±ÖÞñÐÚ¿‘�.çq¹ÿ0—ZP¢‘� o,N�¥¦RŒÁΦ±édk»¥­³;XŒ•ãÍ]¾ØÝvG‹µ†ì…sÑbGsÒ)œuåÓá<8ŸüÁ`·ê®ÓÂR§“< w£Ý΋·Þþ«@Ð*}.‡û“9ì¼ÔÇÆù´žòϤ‹ §û³ðÚ@ú|Vé—•u ŠØ[œ-ʳ©ÖÎK“¥…´4ÚŽ4`g3ïgÕËìÞ«÷?Än½z�™A0µ+/á?ÎÌ ¥à§3sÖ á>U²IN•Ë÷’ʃzy!>´á‚èÒ�ŽïœÄB:�¯Õ/Þ·�gÈߌÏå±kN³Ãavt/~ùk°ˆÝ:pËàg·ªÙ„ÍgMšœ~œj›'óé¤%ÄieŠ7ó__‡£Ýi&®ÀjÔb�ü{¸­ ÈëÉ %%Ò�7Ý:Õ&�úKÚ8ðÍ«0žõ=°œß®:ÔIäú–…m…¶,—Î"¬.îÂ>ýåoï>hÛ¼á�Q£—F9úër &ÿÀºèŒFe9·}?å5SÎÖ‡ý�ë{ý\i§|Újýqù¬S¥Nª¶(Ä#÷HÓ±%ë~¾lýúÞom­a²£žr U‚ ˤ¢�‘¢0­Mow˜Ìn'á©hétW†ìë»\ÊÜLÈe]ÛL6–•Jß;ŸÀÅWO°_|Î|‡K?—òﯫKr{ºskj¸úIkŸ*ÅCˆôꦴ7Õ¶T �& le¦&-ˆ}劼MKQ�¨öa¢œ—ž—î¶�,!NÚÀ€yË*eù’â¸]çÒ?€/ôðQ"Ì(£G}G¯sàó´”@ÏÙU«ÓJO” ûÒÒ’“p)UÝM‘ýz}Gžó†:f7Ùx‚5¹Xpz¥4åb“€j€bSìdõ´Éä°pÎÍ/zq¯M#©%Å55ºZ¼¦Úê¨"ç2k�†Ì­!K˜m…=뱕µ®În'ᇡ‡aø9øÄ)8yôZÛpˆ«XÆzoÖ~õÉ Ëª¡W …µÞVØÈ?‘óƒîŠO`ÛpãgMï�¾2à?}ìîëÒ§»É7uI¹³¨¥»®­ÿDZ{Ôš¥{æl"W2¡Rfy$–˜EÁ¨Ãp–-_ ˜pf#ÿà¡Ä„½x´âbû­QX#ª| ¯–t)\YØ[ÌÓ)DØQà§ÖTo Lçjèl~ÜÌÖ°=´cn^+v´d4³e[©ž•uÀbµ‹…0›M&wK|öh[äãݼF ×h åmpÓ�f”—«–ã%¼båøÈØFžámbYñ¨/‘cº’OýÇÉñ¦(õÁþ‹¬øöÍ„ovgñú ßùðb%�ãù^ý‡¯ößöœûücìî¶ãë˜ésg¯ÌðŠûúF{Nx•~…V§ÓR&ƒEK§¼Š$â­·îÖç~×w¬hS‰Š‰fÖù¼ðsHq9�±5XK¶ñ¼ç k‹ÊçÅF‘BÉ[¹qø�Èa}e_5V£¬Éßoˆ*Ú|,ê.[3ÿCÙ«¼îðÁ `¸¦†úàspY�²ê{›P¢'’ä)[¶à’§µ„t¦§¸²pe¹Áh OÜûpÈ_ßÿü"äcpʺ3ë˜yk˜¸mö„‘[‡ah]yOYp'èM®°–)0qÚ³»*[Û•›0† ÍYÍÌY±j^4—“˜—¹JùÚoV˜Í¬YnsÖõvà�mÅÍdQ‹_:ˆÃ)£p£‡¥�YåÁ‹ªÏrés÷ áBÍv“Í‚yÔÕÙ±Ú@ldFtEÀP^!)gÇãqåGº.t}Ö|•t6ت¼Ø‰LÂâ fžö/–Ôïlý*hI©Cyªy y(òІXlÅ9ñ™ÓÝMľºa­÷¯†ªßOð9pÉ…ª³pêo¹´Šå÷(üâüÜüü2‡Æ®!šYD2Lr�±2Sö)Ot�ë¼ßzƒ°ÕØ«é*²VDÄ–\¿ _…ÿÕB„ÁÛFY`%‹Û”?Íãþ‰¬ààQù‡¨jaE¯ƒ¬5vk³0…®\«$ûXš”V¢Àh±bµvïádqèR›µdZ •Æ®ÌÂõòñvë>lÕ–šI“Þ²`j`ЪF>¶^JË� Ææ÷MUA)õ£•¬íê<Ù6ö_¨ÌdÖWãÕ[µ“„m4ð�éÐBÐÖâN'¨s“ð=úƒî‹M5Ǭn“ÕåÆÂtc¹ôBåÙ»à¦ßr;ÿF4“E³‹“ˆX©(é-ü@ÉÐa—©És„< _Fí>÷ u¼Äš¶ö0…¨Fb”É1eÖê×#ÁG•gZ>òJ8¼¶G‹ÿæip(:…-y„¤s„ªÅ;{*Ov�iÕƒ9ïâç}ÐAv\€‹Ocß»‘“�jn zâ0nŸÞãÕÌtx®‚Q¾¡�m“Ôa. Ë’lJ,L³dâlÏ &ÎB:Œí†LM)‹d¬§f^ÙßÔW ŽzoŸ…°yLµ£µd*E˜\V6û3V•ÔI~Ãt2)Œ*zó^*óû“>½Yí&Úü–öî^ª ·U�zw™ �Ù]­³šÜw�ÎÇo³` ”ü†Q£&½™Õ/*YQº�ÐË©Rlüà/(ÄÆ?eüà/ŒÙm®&næïϬΰ—Sü¯i5ÙÍ?‚äQT¬IŽŠþ¿�qÔßTYI0kR7ÄÀß”÷Û€Éì0‘~[Ek ÖPâ)"ÂmŠíÞØ!áÛß~þÍï›I–°³ØÂšz^¹È¥sàjþЗýpÙ¯±A|Šáozé Ë"ÞXœÀlZ†e†„Ø{†àœ+Ä‚­üƒÒûcqQBý¯>½ �õÜ oö�ñuãC½ÙÛ7D2½ ƒš™^1q>T Q.k×§ót‡¾? ª­s¹Ý„2*õµ­ûBÊþ|@äeýÍt8• þ/À4:÷A^žê¯Ÿ)õÑ›<0Ï\ããÓ&ÇHB§‚Ðé¾ig§û,¬ºcoµV{hh-ûØa®2Ù¼tCèc´óÉÀRþÿ¬W²` endstream endobj 248 0 obj <> stream xÚk``�0°MÜükÏ�Æ7_>90�˜¸[= endstream endobj 17 0 obj <> stream xÚí\YwÛFš}Ÿ_�·‘N�€Ú—>Ýé#[v,·e+’;ááMÁ2‰Ô�”ͯŸ{ nn1ÇééN¢jùêÖý¶BÒe"“!“Æe2fZÊL‰ÌX“)™Ùà2-2¯qÃd!èL£”p6Ó>“JšÌÈLj§3£3i…GÅLº 2ƒûA¹Ìâw "³í)“94Ï>œÊ”A;¨ªúÅ©òøáq=¢qoÐq�™GÏ*„ §Úh•tí~{ˆ€ÂQešå#Daùè ŠY„(l?†Ì8…r"A)0¸¨ �Àð„‡ØBeVa°RèÌjqb ·ä-›YQ1d`!Y&d6rPèÃI.Ó`XFªÌÉ�á¤+¯g-‰�ËÂ.ó0I‰!JÇ[ðâ2ÛòÆABÀïÛ�LÞc òû˜®`„ų ‹zœhª%NçÂfAcº$þ‚ Òˆ,JLÔ ð� ·,¦Uâ/$A Äc;(ã £g9É'˜Ið½b-�ËZÃC€£BàÔƒ!8Œ |UI¯(¬4'œ ³˜ °˜.Å‘[ÌŸæ‰á„Ö2ÐÆpÐ_ô˜i5N(ƒgœ]òâÆH‚p–+N3¦ ¨àD³/òWaò$ûÊ�†'R»DâËŠšÐ§É7(’Ú2¥(ްTÇšœ*—´‚b�)Î|u‚²é&ElËsNELÂ;61„�N,› Oæ&’f¤Œô‚g¬É1o¨OQ0_!ÑÑ *)g ù†á$˜Bi]F"@Á ’h‡CVi* e ±!‡4ÚÄ6­ñ0$Ëi. ¹G5áIH—,ù„K_KÊã²@bOúXN>Ôlç#¹Ò%ÞŒ`¿â¨ õ’ÖHq<8@AE�úD�ÌñUbƒ€b+ª˜Õœ4ÅÇòœ~ >*™˜ÁŽ gXÐ>ª‹¢;Ë�OV*á’« 7൓ޱ1N±’åiàÍQSƒzökZ8ÄÎa€Š�¡§1…ŠdŒ0~KaJX=E$U7zh4³„²Js¬RÐ*%˜˜°Ñž’ñÌ‚ŸÊ°iÆË`#ƒRÐèBcÁä�Ðhb3A€ L2‚óF�aÒ{B@¼86ƒž Ç$¤yÅc*,¯tï 3ûË_Š×w7eq8ަÅùíû)½ -�Æå¸#àpD·xV�ñRu‹CT;/Þœóoïãtz3ùsQ\Œùh|YH‘cŽ…-~M&¹eãþwßgeÚ±2×Öz—{Ò]‹ÜbÜ6ÄìGQ<L»Ë"Ș+xí óè*‰Œ� é�ËÞtð©$×£á$‘êjÐ/‡ÌÓû»Â䢘a£! ÒH—k 1§M2*æÆ=8¡îCq!ˆE\“'Ãëm€Éákky�®Fãó›^¿Dl ²³âÝ«÷œuÜ:¾†3â54÷t4䥧ð³©ÔSzŒêŒÎ¿:£G©Îh|ª³dÒ™§]Hg�†!�1F«{8�úçå´Sœ=-^—¿MÑï²|\U‡ãž^R;Ç_L?–£þ$ŒŠrX\õ¦ådZ´H/s N˜D9khïÇÐ^¡ä�„�*×´±`‚ƒsÂAÂÿ¾­#Òœzð#ºf.ñ%Ú·ƒoÚÈhÿêHጹÜhs~Í šdªWŸÒ×Ô§)ŽýãBÙòç/Çe¿?*nÃig8cfˆ¯Š� 9sÎ|µ1qÚ¨<ªð %kìrÝI'ƒva¤fØðþsÓà}è÷OáOÿïÑÓ’•߇^Ë_p�¥ñ"ŽùÈ¿á­àEræ/¼ž¹û2¼ÿÆôÚfÁlçoþ Ú5W·m-'ÓâÑ =[†à}þü9¿ÝNoß—És~îMûÿöé¯/Ê‹¿ NŒ˜�¯з€!zà�1j�;®�Ã{Æøàþüýhôë$¿�.¯*ÙÒ…¿ .þj^�?ûáððñááóy´�Ü8*“)ç!�žE*¨\Êo,\p(ër¡hHBx�,Ðî0ºy?î]Üz“i¿×ÿXÎñR�xé�§g ^8*¥¾…H3””˹Ȭ3@"‹àüí�Ò7½IñªÔ¹–s”`bøˆGú�khmƒ’D†lŒû&250ñ¨=W[]žž“‘›(w8s‡WG½á wUô¯FýVœ/€ ×ÉCΕYk ‰\ow*·;]5à“†:”²y:ú0˘Ü+™E“;3·R„Ü»o%T3w0J®ZbÇê,⪰ÿë+ðpxCÙ";—¥CæU„ù´3²{ �Ú)¯D,NÏà^ΟÀ&¸¹ùj¢@+bæ<ü P�­&FÔ3æIÕ�Ý9“ ¯2 CáòSS⮥z ‰d„¦)D-¾EyksŽ6‰ôÐgÖK ¹C¡¼§E/Ëñ/ý ì»n‘Š–ÓÏÖ]gÓ·óu×Í2ÍÖ‚áUtHOca£¸ãÀäVèê]¿7)ï>O¦½ñ¯ÅÅàºN£á‡Û«–SÖ¹Z–æ¢AË*Ì£‰ßR²höÝÓÀÅœû¬t Ü.Ÿ~šLÃa9ÆdŽ?,,Á9óà ¹q ¶V&È)w¾„Páü�&ˆ— YÄ笟hͽsZ3TßN®ÙÊ ÷9w‡(KöCÎëì®MÖÉãdE%Ÿ#Ïó.ðÜ8—im“¯†6æðÑsivŠÕ7 v Ü\~¸_¾GáÞtZއÅQùiÐ/ϾTx1¸L'�=±¿'÷»ÅËÞu™~É*†ÁEn?ÂÙRyµ¿gæåÕ>·6±¼Þ—•̸ÍÍM«5íþžŸ×´û²ÙžÛ玞ù}îkZ­ö÷zóšaŸ›žX>îs÷ÏzûÜ>5¯ù÷ÁŤ#+8Ó­êhëclŠB1«Ùúéç¬ÒØ2›› o¯®ºëîk7ª›û6¬ÞGöÒÜŽvù¶cà$7߇¯A¼ÞÜ×+·[D3»½ZŠìgÍ;·|_ÂB÷ú¾_©ÏÅ ç6ß§[œ�V¯4Û×÷1Gåd:Iûà‡“æ¦WåÞùíõuo|·ßÚµPí¥Å—ÓÞ¸NÓÞ2¶þLO›Ñ–Z@:=ÝÜå·Cpd©µÐŽi·ã–Û9e¸»X]¯©~:.?¥-u­¶ür[‡77Wwƒáe–„ʦ£ì¢7í-µnZ÷íãrƒo†)ë�áø®Ëé Ÿ�àïzS¸áå!»5­Ö2‡Vve& î݇ßÜGl÷!—ûxy{}z—Ý~¸ö3:ìÑøº7ì—K͇�ͯJ}:o%{<º¾�ø“Ñp©Áôìé`<™ÎPxÑ›Ì$„ѾEWfÃ\¯PeÞQöhe¤NÖ^d_â¢l a[BÔ#¬…Ð˼¯…Ðm`ÕªDÃþÕídÍ\Å5ªT7ÙÖ‡ê9ì‡û¿GŸ¯Ê‹ËßÊpzÛµm}µ+úzV~(Q«_nÑbK¸AÝžFÓBÐÒœKWYøP+¹§:*/Pû&¶yVNF·cH”Un§Š*NáFgòXWw1œŒN婺Uè1Iû^+;•OÊ*‡Ä½Ù«½ÔÂÿã^*Z½„šMíI=p5o¦¢Wr~º’ÆÎ=�]'‘ß$Q\’È-JÔÍ€‹†Ù`:?�øq ú‡ÃË«LŽþϧåõ�™WÅÓ«Þ%œhÕõ#jö’Öe9ÃpÁÞŠnº÷tpUòM‘ŠíÈy9Ýã¢à`tQ¼.>î§bÔ’ÅA-I¿ 1½„˜“sÄB °wO~þéÙIj;®âev‹—Y‡—Š ^p´+x™E¼&W½ÉÇâu ¬ö€î‰•]Â*ú»”œƒõâÍÉ»“ïÑö™[ÅÊ>4V¢† Å+˜\%Q£$>¬ äQêý¢,.‹_‹ëbXÜ·Å] ±Ö¨î ˜_VG³°žœýðä%›ö«€¹]æã:À|_Œ\,,ÑjðÛ?­5²{‚—@3-fu‹d¯Þ½eËë,˜ßhnh¦aß$[­ŠÔç ýO9£aY||*Ûüj è~X…e{¯ZS-ëõäÇGÇÏß¡éóŸÖ�~Xb•Øl¹ŒØd¹¢Ko]ºÌ{»ˆ–Z¦Øõàª7ná´0˜åä¾²kt‡²Uzm?}ÇÓµ‚W»N!-Ñ|nÔu®£”îzUlÇÛõUé ;Æ‹nÐÇw™q%ºŽV¢òÑE–ÐцǘÊCK:F+ rP‰cH¿7¸ëÇÇGüÍb>;o�ßž>þÓ‹“óÞp"ýÁYy‰ˆtÌÒçwy<ü0J1ýå`2ßí^ŒÞƒ9¯ø$d0¼Ü;¾À< ¦Ð»óÛ››«´¬“‰úiDk¦U•Go3Dñ6½úÅ©¯';ÛÖ Û×âË~ºLÜr±íÚ‘ð‹ÔéuZ»KºÕ¨Ôùô,§½áhRþE4ÿX±ðÏwõØ6Á7'•5©h9ÅÏY®<t�Ye»ÚT§¤ŽêxA²ÄL —þ<ÒTÞ�¬ÄÁ0jÍ´æ‹N"ý¥ÊP}0­)ì@„x|÷×ÊØu±ãù,UóÝÿt¹ëM‡ïu$:M¥ ªúM³¢’)€€Âu£M¢ñ­L ÀçeÈl;ì�S�­Ú®j”üôÆ$~ÚAoÉÑ£³Ÿß<:m@�FW» ¨]&¨¿'AÝ¢é®*õ"CÝœ¡–QÕÜ€;Zp¾îÓw´YÏPåø®ïFš†/Ðt-‚mŽºEŽÎV7‚âËu˜^ŸŽ[MÛ‹Ó“_ý€NÏFÈtÃ.MK\š9)¿fæüæ‰ ª=qÐ-L¿fÀÙ“Pä4-›àkM› Ó&UË´8„!&šÇGw:™~ùÁXß5žËÑO¥%Ýà>KóÃ×§ª¿®�h_¸#J§�vmŸÞEOK½éz(~tÃñýuK÷Æ7ê›l€ÆÆ¦ÙŒâð?B€?Še öÆñQ½E]Ïm¦²7µLÉæ ;íå¬A/Rƒ°5²BÀ›ÊþúI‹N›ë îÙøJt.#ldŒÛ‘üøôõÛçÏjÍŠ;äxýo‹ãök87s\Û6ÇaÔø)É]’û«�ãÐkSÜ,Rܵ½§­–)è=¹™ >�Þ¹¿ë¡|HÉ ñHÎ�öܹÃÏxÔ·�ÕÉÉ6«I"%Õ“#ã^~G¦â$KòÉݳ�BÄo-:ÔVëa6ÐÖvnãçïß<û¹±{pV;Ô)¿¬Sñkt éÙ&�2qA§’Ãç÷NdòþAýÆ&üÚZ´J‰–VYnÄeLª:é`Ó N:Ô¿R±�V¥S [Ý´õ͘®ªHÖàà«F½]¨ˆÌ§õ3[¸R…8ë‰Ê±\(y…t´b¶TM}tõ±êAªª�­¸zúäÙ‹Ÿë“Ñp´SªªåìIÝ/{‚Y™SU)µŽª,3§ª !ޤùwü”c¹õLõ_`jÜÈÔM赈ª“'5Ož0kR$vš˜Òïô�1¾PUÑW™~ó 2ˆ¬K… •§ÀicßQŽI¹Õ]Çà£ÊÍmÊÍ’ŸšJ5BŠJR¼â|dÍÌH~ND§¸ý2_wšùºluðÜÑHÉB�ƒ¥ß1‰™òø(ª8E¹*�ço%·º_>~õöIíQws«ålI}U¶üFÛibnãHH¾TÈFIkÒvn@¯MÈÅLI…%BVL¬©G‹¨iü<ãâ³*v24`¬Af™t¥¢Of£h¸ÒâHÅ�­¸ðäùëó§Ïg£yõþjðß·å.¸°œé¯Ê¿`g6“A·Éfdà7ÂVÈp [O{~6 Øâƒ^LÁô,³2…IÖ5ÏÕº>-t™R§NtæÁܼTÒz·ÌB½üû<¿ß�Úëå4DUϳi¦Õ‚â³~qN-\í7ÁמçÅèV@"ýüZ+ áRÿ¦€Ä�ü¶&¿Ñ¨ãÖÊäÖÊ6G%lsa1z6b=š Ù® €kf˜Îº`÷áiqöüÝOo~¬µËe ³§š¯ŠS½Ù*Nmhñ°qêðZŒ0‹aªYXãO¯,Éj•ÂdƉ´J�˜š ¿ü #þYdµçC*ÄØ�«Y² [}U•akÕ`¦ùÞJz'À'±�¸¥R¤‘VøCôY .¬äTŠ:\Õ*4¥�z�ß§uør£¸†‡Ô^ÄÊMñ{CRVk’ë!*›_+µ¯‚XŒ'ÆÈWÙ_ÈW¹4�0»ÙΠ=wòîM+�­æuÔ]ŽhÍWE´vó › Ô õj@z3pe9=ÔÔNFì×E3› ly1¼5ëžÎ.<þÇ�š 8xV<öG˜”¢u­‚î¢FihµíîõèÍp€Ò%¿®º…ëul+‚+2D±… –î·C­Š!·cýêêÖR˜U)Ô6`lX�ÚVµ ½…V¶c f 1Ö§˜[KáV¥°[H±>±ÙZŠU]�n+‚®�»·£Ê6Åð[ˆ±>âÛZŠ5`lc>×GÛJa×`±�ùÜà#¶ïXP% ú¿Äö‡u endstream endobj 249 0 obj <<8196ad1a764799e2cae5cde4fccccc15>]/Size 250/W[1 3 2]/Filter/FlateDecode/Length 647>> stream xÚ5ÔGpMQÀñó½’çD‰^"zï]t!¢w!$Z"^D!!‚RHôNôˆÎ‚• Y Œ±`˜ÉŒ0dÇ÷þç{›ßüç»çÜ;ï½ûŽ1Æüûç1¦™Ù„Y¸Gˆ1ƈ—àsÃæû± â-,Åj<Œ·ÑHxdP÷ zЋ><‚wð8ÞÅSxÏâ}ôã| —¤÷Ã%ÀX‰q;Z‘%uW8.Æ"Á"�7Âå";³œO!åMu~aîÄÆâÉ }KM0Y<ùœ½žò×:�À¦ØL¼…U:oŽ«Ä[ï¬÷^®Õù.¼��±…øžþÒ«-q�ø^¼rvùÞfè|7¶í�´ÆTñ×oqV†ùZê¼�r¶j·Åt ä~rÖÊöê|/¶u\'‘Äö…°#vÂÎØ»b7ìŽ=Äö*Ö{öÄ Ø {cì‹ý°?À�8ãŠÃÄF‡Þ½áƒ“p$ŽÅq8£q2ÆbŽÂ)8'âhƒñ¸§âœ† 8§ã œ‰³p.ÎÃù¸q!.Æ\ŠI¸Óp%®Æµ˜‰ëp=f`¶ØØÐ¯°Ylüí-bško;û¯vŽØE‰ÚÛÄ&N×ÎŘ�¸ Å.‹tÞ+›ôÞ5Ù꺪Æum¥kÚ3×ôç®A®f|wÍ,qͬÏ*›�¦½OlîKíb±yݵˆ=”®]æt�v‰ØŠÐÿ´Üé?Ú‡Ä^)Õ>êt�v…ØšlíNÖ>&ömµöi±ï´OŠýòDûœØ¯-´ÏˆýöQû¢ØºQÚçÅÖ‹öe§C§Ù%±¿·i_sú�ö 7Ú7�þ }Ý9i­{Þùi̦O–' endstream endobj startxref 668143 %%EOF unyt-3.2.0/paper/paper.bib000066400000000000000000000253161526544257300154330ustar00rootroot00000000000000@article{SymPy, title = {SymPy: symbolic computing in Python}, author = {Meurer, Aaron and Smith, Christopher P. and Paprocki, Mateusz and \v{C}ert\'{i}k, Ond\v{r}ej and Kirpichev, Sergey B. and Rocklin, Matthew and Kumar, AMiT and Ivanov, Sergiu and Moore, Jason K. and Singh, Sartaj and Rathnayake, Thilina and Vig, Sean and Granger, Brian E. and Muller, Richard P. and Bonazzi, Francesco and Gupta, Harsh and Vats, Shivam and Johansson, Fredrik and Pedregosa, Fabian and Curry, Matthew J. and Terrel, Andy R. and Rou\v{c}ka, \v{S}t\v{e}p\'{a}n and Saboo, Ashutosh and Fernando, Isuru and Kulal, Sumith and Cimrman, Robert and Scopatz, Anthony}, year = 2017, month = jan, keywords = {Python, Computer algebra system, Symbolics}, abstract = { SymPy is an open source computer algebra system written in pure Python. It is built with a focus on extensibility and ease of use, through both interactive and programmatic applications. These characteristics have led SymPy to become a popular symbolic library for the scientific Python ecosystem. This paper presents the architecture of SymPy, a description of its features, and a discussion of select submodules. The supplementary material provide additional examples and further outline details of the architecture and features of SymPy. }, volume = 3, pages = {e103}, journal = {PeerJ Computer Science}, issn = {2376-5992}, url = {https://doi.org/10.7717/peerj-cs.103}, doi = {10.7717/peerj-cs.103} } @ARTICLE{vanderwalt2011, author={S. van der Walt and S. C. Colbert and G. Varoquaux}, journal={Computing in Science Engineering}, title={The NumPy Array: A Structure for Efficient Numerical Computation}, year={2011}, volume={13}, number={2}, pages={22-30}, keywords={data structures;high level languages;mathematics computing;numerical analysis;Python programming language;high level language;numerical computation;numerical data;numpy array;Arrays;Computational efficiency;Finite element methods;Numerical analysis;Performance evaluation;Resource management;Vector quantization;NumPy;Python;numerical computations;programming libraries;scientific programming}, doi={10.1109/MCSE.2011.37}, ISSN={1521-9615}, month={March}, } @book{NumPy, place={USA}, title={A guide to NumPy}, publisher={Trelgol Publishing}, author={Oliphant, Travis E}, year={2006} } @Book{h5py, keywords = {python, hdf5}, year = {2013}, publisher = {O'Reilly}, title = {Python and HDF5}, author = {Andrew Collette} } @unpublished{bekolay2013, title={A comprehensive look at representing physical quantities in Python}, author={Bekolay, Trevor}, year={2013}, note={SciPy Conference}, url={https://www.youtube.com/watch?v=N-edLdxiM40} } @misc{dimensionful, author = {Stark, Casey W.}, title = {dimensionful}, year = {2012}, publisher = {GitHub}, journal = {GitHub repository}, howpublished = {\url{https://github.com/caseywstark/dimensionful}} } @ARTICLE{yt, author = {{Turk}, M.~J. and {Smith}, B.~D. and {Oishi}, J.~S. and {Skory}, S. and {Skillman}, S.~W. and {Abel}, T. and {Norman}, M.~L.}, title = "{yt: A Multi-code Analysis Toolkit for Astrophysical Simulation Data}", journal = {The Astrophysical Journal Supplement Series}, archivePrefix = "arXiv", eprint = {1011.3514}, primaryClass = "astro-ph.IM", keywords = {cosmology: theory, methods: data analysis, methods: numerical}, year = 2011, month = jan, volume = 192, eid = {9}, pages = {9}, doi = {10.1088/0067-0049/192/1/9}, adsurl = {http://adsabs.harvard.edu/abs/2011ApJS..192....9T}, adsnote = {Provided by the SAO/NASA Astrophysics Data System} } @misc{pynbody, author = {{Pontzen}, A. and {Ro{\v s}kar}, R. and {Stinson}, G.~S. and {Woods}, R. and {Reed}, D.~M. and {Coles}, J. and {Quinn}, T.~R.}, title = "{pynbody: Astrophysics Simulation Analysis for Python}", note = {Astrophysics Source Code Library, ascl:1305.002}, year = 2013, howpublished = {\url{http://ascl.net/1305.002}} } @ARTICLE{astropy, author = {{The Astropy Collaboration} and {Price-Whelan}, A.~M. and {Sip{\H o}cz}, B.~M. and {G{\"u}nther}, H.~M. and {Lim}, P.~L. and {Crawford}, S.~M. and {Conseil}, S. and {Shupe}, D.~L. and {Craig}, M.~W. and {Dencheva}, N. and {Ginsburg}, A. and {VanderPlas}, J.~T. and {Bradley}, L.~D. and {P{\'e}rez-Su{\'a}rez}, D. and {de Val-Borro}, M. and {Aldcroft}, T.~L. and {Cruz}, K.~L. and {Robitaille}, T.~P. and {Tollerud}, E.~J. and {Ardelean}, C. and {Babej}, T. and {Bachetti}, M. and {Bakanov}, A.~V. and {Bamford}, S.~P. and {Barentsen}, G. and {Barmby}, P. and {Baumbach}, A. and {Berry}, K.~L. and {Biscani}, F. and {Boquien}, M. and {Bostroem}, K.~A. and {Bouma}, L.~G. and {Brammer}, G.~B. and {Bray}, E.~M. and {Breytenbach}, H. and {Buddelmeijer}, H. and {Burke}, D.~J. and {Calderone}, G. and {Cano Rodr{\'{\i}}guez}, J.~L. and {Cara}, M. and {Cardoso}, J.~V.~M. and {Cheedella}, S. and {Copin}, Y. and {Crichton}, D. and {D{\'A}vella}, D. and {Deil}, C. and {Depagne}, {\'E}. and {Dietrich}, J.~P. and {Donath}, A. and {Droettboom}, M. and {Earl}, N. and {Erben}, T. and {Fabbro}, S. and {Ferreira}, L.~A. and {Finethy}, T. and {Fox}, R.~T. and {Garrison}, L.~H. and {Gibbons}, S.~L.~J. and {Goldstein}, D.~A. and {Gommers}, R. and {Greco}, J.~P. and {Greenfield}, P. and {Groener}, A.~M. and {Grollier}, F. and {Hagen}, A. and {Hirst}, P. and {Homeier}, D. and {Horton}, A.~J. and {Hosseinzadeh}, G. and {Hu}, L. and {Hunkeler}, J.~S. and {Ivezi{\'c}}, {\v Z}. and {Jain}, A. and {Jenness}, T. and {Kanarek}, G. and {Kendrew}, S. and {Kern}, N.~S. and {Kerzendorf}, W.~E. and {Khvalko}, A. and {King}, J. and {Kirkby}, D. and {Kulkarni}, A.~M. and {Kumar}, A. and {Lee}, A. and {Lenz}, D. and {Littlefair}, S.~P. and {Ma}, Z. and {Macleod}, D.~M. and {Mastropietro}, M. and {McCully}, C. and {Montagnac}, S. and {Morris}, B.~M. and {Mueller}, M. and {Mumford}, S.~J. and {Muna}, D. and {Murphy}, N.~A. and {Nelson}, S. and {Nguyen}, G.~H. and {Ninan}, J.~P. and {N{\"o}the}, M. and {Ogaz}, S. and {Oh}, S. and {Parejko}, J.~K. and {Parley}, N. and {Pascual}, S. and {Patil}, R. and {Patil}, A.~A. and {Plunkett}, A.~L. and {Prochaska}, J.~X. and {Rastogi}, T. and {Reddy Janga}, V. and {Sabater}, J. and {Sakurikar}, P. and {Seifert}, M. and {Sherbert}, L.~E. and {Sherwood-Taylor}, H. and {Shih}, A.~Y. and {Sick}, J. and {Silbiger}, M.~T. and {Singanamalla}, S. and {Singer}, L.~P. and {Sladen}, P.~H. and {Sooley}, K.~A. and {Sornarajah}, S. and {Streicher}, O. and {Teuben}, P. and {Thomas}, S.~W. and {Tremblay}, G.~R. and {Turner}, J.~E.~H. and {Terr{\'o}n}, V. and {van Kerkwijk}, M.~H. and {de la Vega}, A. and {Watkins}, L.~L. and {Weaver}, B.~A. and {Whitmore}, J.~B. and {Woillez}, J. and {Zabalza}, V.}, title = "{The Astropy Project: Building an inclusive, open-science project and status of the v2.0 core package}", journal = {ArXiv e-prints}, archivePrefix = "arXiv", eprint = {1801.02634}, primaryClass = "astro-ph.IM", keywords = {Astrophysics - Instrumentation and Methods for Astrophysics}, year = 2018, month = jan, adsurl = {http://adsabs.harvard.edu/abs/2018arXiv180102634T}, adsnote = {Provided by the SAO/NASA Astrophysics Data System}, howpublished = {\url{https://arxiv.org/abs/1801.02634}} } @misc{Pint, author = {Grecco, Hernan E.}, title = {Pint}, year = {2018}, publisher = {GitHub}, journal = {GitHub repository}, howpublished = {\url{https://github.com/hgrecco/pint}} } @misc{cloc, author = {Danial, Al}, title = {cloc}, year = {2018}, publisher = {GitHub}, journal = {GitHub repository}, howpublished = {\url{https://github.com/AlDanial/cloc}} } @misc{perf, author = {Stinner, Victor}, title = {perf}, year = {2018}, publisher = {GitHub}, journal = {GitHub repository}, howpublished = {\url{https://github.com/vstinner/perf}} } @misc{fastcache, author = {Brady, Peter}, title = {fastcache}, year = {2017}, publisher = {GitHub}, journal = {GitHub repository}, howpublished = {\url{https://github.com/pbrady/fastcache}} } @inproceedings{Gopinath2014, author = {Gopinath, Rahul and Jensen, Carlos and Groce, Alex}, title = {Code Coverage for Suite Evaluation by Developers}, booktitle = {Proceedings of the 36th International Conference on Software Engineering}, series = {ICSE 2014}, year = {2014}, isbn = {978-1-4503-2756-5}, location = {Hyderabad, India}, pages = {72--82}, numpages = {11}, url = {http://doi.acm.org/10.1145/2568225.2568278}, doi = {10.1145/2568225.2568278}, acmid = {2568278}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {evaluation of coverage criteria, statistical analysis, test frameworks}, } @INPROCEEDINGS{Koru2007, author={A. G. Koru and D. Zhang and H. Liu}, booktitle={Predictor Models in Software Engineering, 2007. PROMISE'07: ICSE Workshops 2007. International Workshop on}, title={Modeling the Effect of Size on Defect Proneness for Open-Source Software}, year={2007}, volume={}, number={}, pages={10-10}, keywords={public domain software;software quality;software reliability;Cox proportional hazards modeling;Mozilla product;defect proneness;open-source software;quality modeling;software module size;software quality;Application software;Hazards;Information systems;Object oriented modeling;Open source software;Quality assurance;Size measurement;Software quality;Testing;Time measurement}, doi={10.1109/PROMISE.2007.9}, ISSN={}, month={May},} @article{Lipow1982, author = {Lipow, M.}, title = {Number of Faults Per Line of Code}, journal = {IEEE Trans. Softw. Eng.}, issue_date = {July 1982}, volume = {8}, number = {4}, month = jul, year = {1982}, issn = {0098-5589}, pages = {437--439}, numpages = {3}, url = {http://dx.doi.org/10.1109/TSE.1982.235579}, doi = {10.1109/TSE.1982.235579}, acmid = {1313659}, publisher = {IEEE Press}, address = {Piscataway, NJ, USA}, keywords = {Fault prediction, fault rate, program complexity, software science, software science, Fault prediction, fault rate, program complexity}, } @ARTICLE{croton2013, author = {{Croton}, D.~J.}, title = "{Damn You, Little h! (Or, Real-World Applications of the Hubble Constant Using Observed and Simulated Data)}", journal = {Publications of the Astronomical Society of Australia}, archivePrefix = "arXiv", eprint = {1308.4150}, keywords = {cosmology, galaxies, methods: observational}, year = 2013, month = oct, volume = 30, eid = {e052}, pages = {e052}, doi = {10.1017/pasa.2013.31}, adsurl = {http://adsabs.harvard.edu/abs/2013PASA...30...52C}, adsnote = {Provided by the SAO/NASA Astrophysics Data System} } @book{nasa1999, title={Mars Climate Orbiter Mishap Investigation Board: Phase I Report}, author={Mars Climate Orbiter Mishap Investigation Board}, url={https://books.google.com/books?id=4OMIHQAACAAJ}, year={1999}, publisher={Jet Propulsion Laboratory} } unyt-3.2.0/paper/paper.md000066400000000000000000000557341526544257300153060ustar00rootroot00000000000000--- title: 'unyt: Handle, manipulate, and convert data with units in Python' tags: - units - quantities - Python - NumPy - sympy authors: - name: Nathan J. Goldbaum orcid: 0000-0001-5557-267X affiliation: 1 - name: John A. ZuHone orcid: 0000-0003-3175-2347 affiliation: 2 - name: Matthew J. Turk orcid: 0000-0002-5294-0198 affiliation: 1 - name: Kacper Kowalik orcid: 0000-0003-1709-3744 affiliation: 1 - name: Anna L. Rosen orcid: 0000-0003-4423-0660 affiliation: 2 affiliations: - name: National Center for Supercomputing Applications, University of Illinois at Urbana-Champaign. 1205 W Clark St, Urbana, IL USA 61801 index: 1 - name: Harvard-Smithsonian Center for Astrophysics. 60 Garden St, Cambridge, MA USA 02138 index: 2 date: 24 May 2018 bibliography: paper.bib --- # Summary Software that processes real-world data or that models a physical system must have some way of managing units. This might be as simple as the convention that all floating point numbers are understood to be in the same physical unit system (for example, the SI MKS units system). While simple approaches like this do work in practice, they also are fraught with possible error, both by programmers modifying the code who unintentionally misinterpret the units, and by users of the software who must take care to supply data in the correct units or who need to infer the units of data returned by the software. Famously, NASA lost contact with the Mars Climate Orbiter spacecraft after it crash-landed on the surface of Mars due to the use of English Imperial units rather than metric units in the spacecraft control software [@nasa1999]. The `unyt` library is designed both to aid quick calculations at an interactive Python prompt and to be tightly integrated into a larger Python application or library. The top-level `unyt` namespace ships with a large number of predefined units and physical constants to aid setting up quick calculations without needing to look up unit data or the value of a physical constant. Using the `unyt` library as an interactive calculation aid only requires knowledge of basic Python syntax and awareness of a few of the methods of the `unyt_array` class — for example, the `unyt_array.to()` method to convert data to a different unit. As the complexity of the usage increases, `unyt` provides a number of optional features to aid these cases, including custom unit registries containing both predefined physical units as well as user-defined units, built-in output to disk via the pickle protocol and to HDF5 files using the `h5py` library [@h5py], and round-trip converters for unit objects defined by other popular Python unit libraries. Physical units in the `unyt` class are defined in terms of the dimensions of the unit, a string representation, and a floating point scaling to the MKS unit system. Rather than implementing algebra for unit expressions, we rely on the `SymPy` symbolic algebra library [@SymPy] to handle symbolic algebraic manipulation. The `unyt.Unit` object can represent arbitrary units formed out of base dimensions in the SI unit system: time, length, mass, temperature, luminance, and electric current. We currently treat units such as mol with the seventh SI base dimension, amount of substance, as dimensionless, although we are open to changing this based on feedback from users. The `unyt` library supports forming quantities defined in other unit systems — in particular CGS Gaussian units common in astrophysics as well as geometrized "natural" units common in relativistic calculations. In addition, `unyt` ships with a number of other useful predefined unit systems including imperial units; Planck units; a unit system for calculations in the solar system; and a "galactic" unit system based on the solar mass, kiloparsecs, and Myr, a convention common in galactic astronomy. In addition to the `unyt.Unit` class, `unyt` also provides a two subclasses of the NumPy [@NumPy] `ndarray` [@vanderwalt2011], `unyt.unyt_array` and `unyt.unyt_quantity` to represent arrays and scalars with units attached, respectively. The `unyt` library also provides a `unyt.UnitRegistry` class to allow custom systems of units, for example to track the internal unit system used in a simulation. These subclasses are tightly integrated with the NumPy ufunc system, which ensures that algebraic calculations that include data with units automatically check to make sure the units are consistent, and allow automatic converting of the final answer of a calculation into a convenient unit. We direct readers interested in usage examples and a guide for integrating `unyt` into an existing Python application or workflow to the unyt documentation hosted at http://unyt.readthedocs.io/en/latest/. # Comparison with `Pint` and ``astropy.units`` The scientific Python ecosystem has a long history of efforts to develop a library to handle unit conversions and enforce unit consistency. For a relatively recent review of these efforts, see [@bekolay2013]. While we won't exhaustively cover extant Python libraries for handling units in this paper, we will focus on `Pint` [@Pint] and `astropy.units` [@astropy], which both provide a robust implementation of an array container with units attached and are commonly used in research software projects. At time of writing a GitHub search for `import astropy.units` returns approximately 10,500 results and a search for `import pint` returns approximately 1,500 results. While `unyt` provides functionality that overlaps with `astropy.units` and `Pint`, there are important differences which we elaborate on below. In addition, it is worth noting that all three codebases had origins at roughly the same time period. `Pint` initially began development in 2012 according to the git repository logs. Likewise `astropy.units` began development in 2012 and was released as part of `astropy 0.2` in 2013, although the initial implementation was adapted from the `pynbody` library [@pynbody], which started its units implementation in 2010 according to the git repository logs. In the case of `unyt`, it originated via the `dimensionful` library [@dimensionful] in 2012. Later, `dimensionful` was elaborated on and improved to become `yt.units`, the unit system for the `yt` library [@yt] at a `yt` developer workshop in 2013 and was subsequently released as part of `yt 3.0` in 2014. One of the design goals for the `yt` unit system was the ability to dynamically define "code" units (e.g. units internal to data loaded by yt) as well as units that depend on details of the dataset — in particular cosmological comoving units and the "little $h$" factor, used to parameterize the Hubble constant in cosmology calculations [@croton2013]. For cosmology simulations in particular, comparing data with different unit systems can be tricky because one might want to use data from multiple outputs in a time series, with each output having a different mapping from internal units to physical units. This despite the fact that each output in the time series represents the same physical system and common workflows involve combining data from multiple outputs. This requirement to manage complex custom units and interoperate between custom unit systems drove the `yt` community to independently develop a custom unit system solution. We have decided to repackage and improve `yt.units` in the form of `unyt` to both make it easier to work on and improve the unit system and encourage use of the unit system for scientific Python users who do not want to install a heavy-weight dependency like `yt`. Below we present a table comparing `unyt` with `astropy.units` and `Pint`. Estimates for lines of code in the library were generated using the `cloc` tool [@cloc]; blank and comment lines are excluded from the estimate. Test coverage was estimated using the `coveralls` output for `Pint` and `astropy.units` and using the `codecov.io` output for `unyt`. | Library | `unyt` | `astropy.units` | `Pint` | |--------------------------------|----------------|-----------------|------------| | Lines of code | 5128 | 10163 | 8908 | | Lines of code excluding tests | 3195 | 5504 | 4499 | | Test Coverage | 99.91% | 93.63% | 77.44% | We offer lines of code as a very rough estimate for the "hackability" of the codebase. In general, smaller codebases with higher test coverage have fewer defects [@Lipow1982; @Koru2007; @Gopinath2014]. This comparison is somewhat unfair in favor of `unyt` in that `astropy.units` only depends on NumPy and `Pint` has no dependencies, while `unyt` depends on both `SymPy` and NumPy. Much of the reduction in the size of the `unyt` library can be attributed to offloading the handling of algebra to `SymPy` rather than needing to implement the algebra of unit symbols directly in `unyt`. For potential users who are wary of adding `SymPy` as a dependency, that might argue in favor of using `Pint` in favor of `unyt`. ## `astropy.units` The `astropy.units` subpackage provides a `PrefixUnit` class, a `Quantity` class that represents both scalar and array data with attached units, and a large number of predefined unit symbols. The preferred way to create `Quantity` instances is via multiplication with a `PrefixUnit` instance. Similar to `unyt`, the `Quantity` class is implemented via a subclass of the NumPy `ndarray` class. Indeed, in many ways the everyday usage patterns of `astropy.units` and `unyt` are similar, although `unyt` is not quite a drop-in replacement for `astropy.units` as there are some API differences. The main functional difference between `astropy.units` and `unyt` is that `astropy.units` is a subpackage of the larger `astropy` package. This means that depending on `astropy.units` requires installing a large collection of astronomically focused software included in the `astropy` package, including a substantial amount of compiled C code. This presents a barrier to usage for potential users of `astropy.units` who are not astronomers or do not need the observational astronomy capabilities provided by `astropy`. ## `Pint` The `Pint` package provides a different API for accessing units compared with `unyt` and `astropy.units`. Rather than making units immediately importable from the `Pint` namespace, `Pint` instead requires users to instantiate a `UnitRegistry` instance (unrelated to the `unyt.UnitRegistry` class), which in turn has `Unit` instances as attributes. Just like with `unyt` and `astropy.units`, creating a `Quantity` instance requires multiplying an array or scalar by a `Unit` instance. Exposing the `UnitRegistry` directly to all users like this does force users of the library to think about which system of units they are working with, which may be beneficial in some cases, however it also means that users have a bit of extra cognitive overhead they need to deal with every time they use `Pint`. ![A benchmark comparing the ratio of the time to apply units to lists and NumPy `ndarray` instances to the time to interpret the same list or `ndarray` to an `ndarray`. This ratio, $T_{\rm package}/T_{\rm numpy}$, corresponds to the overhead of converting data to work with one of the three packages. Values close to unity correspond to zero or negligible overhead, while values larger than unity correspond to measurable overhead. Optimally all values would be near unity. In practice, applying units to small arrays incurs substantial overhead. Each test is shown for three different sizes of input data, including inputs with size 3, 1,000, and 1,000,000. The black lines at the top of the bars indicate the sample standard deviation. The $T_{\rm numpy}$ time is calculated by benchmarking the time to perform `np.asarray(data)` where `data` is either a `list` or an `ndarray`.](apply.png) In addition, the `Quantity` class provided by `Pint` is not a subclass of NumPy's `ndarray`. Instead, it is a wrapper around an internal `ndarray` buffer. This simplifies the implementation of `Pint` by avoiding the somewhat arcane process for creating an `ndarray` subclass, although the `Pint` `Quantity` class must also be careful to emulate the full NumPy `ndarray` API so that it can be a drop-in replacement for `ndarray`. Finally, in comparing the output of our benchmarks of `Pint`, `astropy.units`, and `unyt`, we found that in-place operations making use of a NumPy `ufunc` will unexpectedly strip units in `Pint`. For example, if `a` and `b` are `Pint` `Quantity` instances, `np.add(a, b, out=out))` will operate on `a` and `b` as if neither have units attached. Interestingly, without the `out` keyword, `Pint` does get the correct answer, so it is possible that this is a bug in `Pint`, and we have reported it as such upstream (see https://github.com/hgrecco/pint/issues/644). ## Performance Comparison Checking units will always add some overhead over using hard-coded unit conversion factors. Thus a library that is entrusted with checking units in an application should incur the minimum possible overhead to avoid triggering performance regressions after integrating unit checking into an application. Optimally, a unit library will add zero overhead regardless of the size of the array. In practice that is not the case for any of the three libraries under consideration, and there is a minimum array size above which the overhead of doing a mathematical operation exceeds the overhead of checking units. It is thus worth benchmarking unit libraries in a fair manner, comparing with the same operation implemented using plain NumPy. ![A benchmark comparing the time to square an array and to take the square root of an array. See Figure 1 for a detailed explanation of the plot style.](unary.png) Here we present such a set of benchmarks. We made use of the `perf` [@perf] Python benchmarking tool, which not only provides facilities for establishing the statistical significance of a benchmark run, but also can tune a linux system to turn off operating system and hardware features like CPU throttling that might introduce variance in a benchmark. We made use of a Dell Latitude E7270 laptop equipped with an Intel i5-6300U CPU clocked at 2.4 GHz. The testing environment was based on `Python 3.6.3` and had `NumPy 1.14.2`, `sympy 1.1.1`, `fastcache 1.0.2`, `Astropy 3.0.1`, and `Pint 0.8.1` installed. `fastcache` [@fastcache] is an optional dependency of `SymPy` that provides an optimized LRU cache implemented in C that can substantially speed up `SymPy`. The system was instrumented using `perf system tune` to turn off CPU features that might interfere with stable benchmarks. We did not make any boot-time Linux kernel parameter changes. ![A benchmark comparing the time to perform various binary arithmetic operations on input operans that have different but dimensionallty compatible units. See Figure 1 for a detailed explanation of the plot style.](binary_different_units.png) For each of the benchmarks we show the ratio of the time to perform an operation with one of `unyt`, `Pint`, and `astopy.units`, $T_{\rm package}$, to the time it takes for NumPy to perform the equivalent operation, $T_{\rm numpy}$. For example, for the comparison of the performance of `np.add(a, b)` where `a` and `b` have different units with the same dimension, the corresponding benchmark to generate $T_{\rm numpy}$ would use the code `np.add(a, c*b)` where `a` and `b` would be `ndarray` instances and `c` would be the floating point conversion factor between the units of `a` and `b`. Much of the time in $T_{\rm package}$ relative to $T_{\rm numpy}$ is spent in the respective packages calculating the appropriate conversion factor `c`. Thus the comparisons below depict very directly the overhead for using a unit library over an equivalent operation that uses hard-coded unit-conversion factors. In some cases when the operands of an operation have different dimensionally compatible units, using a unit library will produce a result *faster* than a pure-numpy implementation. In cases where this happens, the resulting $T_{\rm package}/T_{\rm numpy}$ measurement will come out less than unity. As an example, consider the operation of one milligram multiplied by 3 kilograms. In this case one could write down the answer as e.g. `3000 mg`, `0.003 kg`, or `3 kg*g`. In the former two cases, one of the operands needs to be scaled by a floating point conversion factor to ensure that both operands have the same unit before the pure-numpy implementation can actually evaluate the result, since each array can only have one unit. In the latter case the conversion factor is implicitly handled by the unit metadata. Note that this effect will only happen if the operands of an operation have different units. If the units are the same there is no need to calculate a conversion factor to convert the operands to the same unit system, so the pure-numpy operation avoids the extra cost that a unit library avoids in all cases. ![A benchmark comparing the time to perform various binary arithmetic operations on input operands that have the same units. See Figure 1 for a detailed explanation of the plot style.](binary_same_units.png) ### Applying units to data In Figure 1 we plot the overhead for applying units to data, showing both Python lists and NumPy `ndarray` instances as the input to apply data to. Since all three libraries eventually convert input data to a NumPy `ndarray`, the comparison with array inputs more explicitly shows the overhead for *just* applying units to data. When applying units to a list, all three libraries as well as NumPy need to first copy the contents of the list into a NumPy array or a subclass of `ndarray`. This explains why the overhead is systematically lower when starting with a list. ![A benchmark comparing the overhead for computing various NumPy `ufunc` operations. The operands of all binary `ufuncs` have the same units. See Figure 1 for a detailed explanation of the plot style.](ufunc.png) In all cases, `unyt` either is fastest by a statistically significant margin, or ties with `astropy`. Even for large input arrays, `Pint` still has statistically significant overhead, while both `unyt` and `astropy.units` have negligible overhead once the input array size reaches $10^6$ elements. ### Unary arithmetic operations Expressions involving powers of data with units, including integer and fractional powers, are very common in the physical sciences. It is therefore very important for a library that handles units to be able to track this case in a performant way. In Figure 2 we present a benchmark comparing `Pint`, `unyt`, and `astropy.units` for the squaring and square root operation. In all cases, `unyt` has the lowest overhead, with `Pint` coming in second, and `astropy.units` trailing. Note that the x-axis is plotted on a log scale, so `astropy` is as much as 4 times slower than `unyt` for these operations. ### Binary arithmetic operations Binary operations form the core of arithmetic. It is vital for a library that handles unit manipulation to both transparently convert units when necessary and to ensure that expressions involving quantities with units are dimensionally consistent. In Figure 3 and 4 we present benchmarks for binary arithmetic expressions, both with input data that has the same units and with input data with different units but the same dimensions. In most cases, `unyt` has less overhead than both `astropy` and `Pint`, although there are a few anomalies that are worth explaining in more detail. For comparison operations, `Pint` exhibits a slowdown even on large input arrays. This is not present for other binary operations, so it is possible that this overhead might be eliminated with a code change in `Pint`. For multiplication on large arrays, all three libraries have measured overhead of $\sim 0.5$ than that of the "equivalent" Numpy operation. See the discussion in the "Performance Comparison" section above for why this happens, but briefly, in all three libraries there is no need to multiply the result of a multiplication operation by an additional constant to ensure the result has a well-defined unit, while a pure NumPy implementation would need to multiply the result by a constant to ensure both operands of the operation are in the same units. For division, both `Pint` and `astropy.units` exhibit the same behavior as for multiplication, and for similar reasons: the result of the division operation is output with units given by the ratio of the input units. On the other hand, `unyt` will automatically cancel the dimensionally compatible units in the ratio and return a result with dimensionless units. To make that concrete, in `astropy` and `Pint`, the result of `(4*g) / (2*kg)` is `2 g/kg` while `unyt` would report `.002`. ![The same as Figure 5, but with in-place `ufunc` operations. See Figure 1 for a detailed explanation of the plot style.](ufuncout.png) ### NumPy `ufunc` performance Lastly, in Figures 5 and 6, we present benchmarks of NumPy `ufunc` operations. A NumPy `ufunc` is a fast C implementation of a basic mathematical operation. This includes arithmetic operators as well as trigonometric and special functions. By using a `ufunc` directly, one bypasses the Python object protocol and short-circuits directly to the low-level NumPy math kernels. We show both directly using the NumPy `ufunc` operators (Figure 5) as well as using the same operators with a pre-allocated output array to benchmark in-place operations. As for the other benchmarks, `unyt` tends to have the lowest amount of overhead, although there are some significant exceptions. For `np.power`, `Pint` has the lowest overhead, except for very large input arrays, where the overhead for all three libraries is negligible. On the other hand, for `np.sqrt`, `np.equal`, `np.add`, and `np.subtract`, `Pint` still has statistically significant overhead for large input arrays. Finally, for the in-place `ufunc` comparison, `Pint` has the lowest overhead for all operations. However, as discussed above, this is because of a bug in `Pint` which causes the library to ignore units when calling a `ufunc` with the `out` keyword set. # Conclusions In this paper we present the `unyt` library, giving background on the reasons for its existence and some historical context for its origin. We also present a set of benchmarks for common arithmetic operations, comparing the performance of `unyt` with `Pint` and `astropy.units`. In general, we find that `unyt` either outperforms or matches the performance `astropy.units` and `Pint`, depending on the operation and size of the input data. We also demonstrate that the `unyt` library constitutes a smaller codebase with higher test coverage than both `Pint` and `astropy.units`. # Acknowledgements NJG would like to thank Brandon Carswell and Alex Farthing of the NCSA IT staff for providing a laptop with Linux installed for the performance benchmark. This work was supported by NSF grant OAC-1663914 (NJG, MJT), by the Gordon and Betty Moore Foundation's Data-Driven Discovery Initiative through Grant GBMF4561 (MJT) and by NASA through Einstein Postdoctoral Fellowship grant number PF7-180166 awarded by the Chandra X-ray Center, which is operated by the Smithsonian Astrophysical Observatory for NASA under contract NAS8-03060 (ALR). # References unyt-3.2.0/paper/ufunc.png000066400000000000000000003243561526544257300155020ustar00rootroot00000000000000‰PNG  IHDR€ ¿‘^ÙsBIT|dˆ pHYs.#.#x¥?v9tEXtSoftwarematplotlib version 2.2.2, http://matplotlib.org/†ŸÔ IDATxœìÝy|M×þÿñ÷9HB$B‰!‰¤ÔT5kª¦V‹*EMU´Š¶”Ò¯¡×½¸_­Wµ´Um5®y¼‚rq�WCé`*HPC¢1DdÎùýÑŸóíqNFIv²½ž�Çy<ÎZ{íµ?;9õ(ï³Ö¶Øl6›…žÕ蹃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‚Ú¾}»Þ|óM=öØcòõõ•»»»Ôºuk}õÕWŠ‹‹3ºD@ Ph…„„Èb±døzë­·r4÷¤I“2�ûϯ���ܽ¹BèêÕ«jܸ±|||²õ³óôôTÅŠU³fMµiÓF£G�ÖâÅ‹uéÒ%£o©Pºté’:v쨶mÛêÊ•+zõÕWõüóÏ+--M/^ÔÎ�;5xð`5hÐ@—/_6º\@.³Øl6›ÑE@NœüðC#Jä`¦pîÜ9uêÔIÇ�w:æáá¡ï¿ÿ^�?þx޿މ‰Ñ /¼ ={öØûjÖ¬©íÛ·«bÅŠ9®Ùì–-[¦Þ½{;õïÝ»WÍš5sê·ÙlÚ»w¯fÍš¥•+W:kß¾½¾üòKæY½fйsg­_¿^ÒÿM9ÿë_ÿª)S¦ØÛ'NÔ¤I“ò±B@^#`W¯^U‹-töìY§c���úñÇU¶lÙÍý믿ªF�ööž={ôÄOä¸ÖÁùóç]¶®‚É{­ZµJ½{÷VJJнÏÛÛ[ÿùÏÔ¸qãÜ.ÕvïÞ­§žzJ’TªT)ݸqÃiLZZšÆ�§+V¨I“&úúë¯åíí�ߥòÏ`åË—W¿~ý\‹ŒŒT¯^½”ššš£¹«W¯®*UªH’³ |ùò9>·{÷îš6mšCß­[·Ô¡Cýþûï÷[š)}úé§ö÷¥J•r9ÆjµjÚ´iŠˆˆÐŠ+À„€<0¶mÛ¦qãÆåøüGyD’V#}îîî÷uþ[o½%‡¾k×®9laŒ?$&&jÓ¦Mö¶Åb1°€‘€˜R™2e\†`3fÌÐòåËs4§���}nä=777uèÐÁ©ÅŠâiFŽN�:¥;wî]  `JuëÖÕäÉ“]{íµ×tôèÑlÏéáá!éþW¶"ëš6mêÔwéÒ%�?Þ€j ®ß~ûÍè0Óš0a‚ºwïîÔ§®]»êÆ�ÙšïîŠb«•¿Jå—²e˺ì¿zõj>WR°Ý¼yÓèDQ£ €¼b±X¢Ó§OëСCÇÂÃÃÕ·o_­_¿Þ�nZZš¶nÝ*§U³·oßÖÎ�;©[·n©råÊzî¹ç2ÝÊúÈ‘#úá‡eŸ·aÆyyNÒ[m]¬X±|­£ KJJ2º„,»víšBCCÕ«W/yzz:ûñǵoß>ÅÆÆªbÅŠj×®�Ós ³+**J»wïÖo¿ý¦;wî¨téÒª]»¶7nl_ÕfRøÿ•2àéé©ÐÐP—+I7nܨI“&åÚµ>üðCY,—¯   —çøøø¤{Ž«gßëøñã?~¼*W®¬gŸ}V›6m²»pá‚úõë'___=ÿüó6l˜Þ{ï=½üòË Ðܹs]ιtéRÕ©SG�=ö˜^ýuýå/Ñ[o½¥F�©uëÖº|ùrŽ~>9qíÚ5—ý•*UÒ† 2üÙÝ}eòU¨PÁå9Ï>ûlŽê½råJ†µìܹÓ霑#GfxNHHˆÓ9“&MrÓ¿‡ã‘‘‘~óû³zçέZµJ]ºtQ¥J•4hÐ EGGÛ�÷Ýwª[·®7n¬áÇë½÷ÞÓÀ�U¹re 6LÉÉÉÎïÊÖ­[ÕªU+U¨PA=zôЄ 4yòd½ñÆjÙ²¥*T¨ #F¤û€ÂŠÀL/00P«V­ÒÓO?í$M™2E�5RçÎ�ïû:Ï<󌒓“µnÝ:ýøã�Y:gúôéº|ù²öìÙ£­[·féœãÇ�kåÊ•Z¹r¥Ž;ærÌÆ�Õ·oßt·¹¾sçŽÞxã •(QB¯¼òФ?VJöë×O[¶lI÷Ú;wîT‡´wïÞ|Y=ùÓO?9õÕªUKåË—W³fÍô�üC³fÍÒ… œÆ©gÏž® ýûßÿ®½{÷jÁ‚²Ùl’¤† jøðá9ª·T©RúÇ?þ¡_~ùEK—.Ujjj¦çtïÞ]~~~úõ×_µbŠݺu+Ós:uê¤ *ØÛ{÷îÕ?ÿùO{»L™2zÿý÷�Îóòò’”?ŸÕ¤¤$-[¶Lÿú׿´yófÅÇÇ;�INNÖÛo¿�î—l6›>ûì3ݼyS .ÌR�ׯ_×�!C´råJèË/¿T×®]U¶lYÙl6mß¾]]»vÕÍ›7õé§ŸjÉ’%Z¹r¥Zµj•¥ù  ³Øîþ L`Ò¤IšùDo¿ýv†÷#ÉåÊÐsçÎ¥»ÊôÏRSSU½zu�={Ö¡ÿý÷ß×{ï½goGEE©Aƒºté’ø¨Q£F™^G’:wî¬õë׫J•*:|ø°ÓÖÄ9ñé§ŸjĈ};vìÈ0hܽ{·žzê)‡¾o¿ýV ÈðZ!!!8p ½�•Ï›”·ŸÕèèhÍŸ?_>>>úì³Ïtäȇã§N�Ò¨Q£ôÝwß©yóæêÒ¥‹Ê—/¯_ýUsçÎULLŒÃø­[·ª]»vÖ©¶mÛêÌ™3jÓ¦�Ö®]k½ÿìƒ>Ð_þò{ÛÓÓS?üðƒj×®�áüP°4€Æo¼¡Áƒ;õߺuK]ºtQlll®\§H‘"zñų}^‡²4nÆ Z·n�Ž9¢jÕª9Û´i“  AƒéܹsÚ¼y³Æ�¯è¯ý«þûßÿªD‰öñ111š2eŠZ·n-???�>}Z‹/Ö¨Q£ôÊ+¯hüøñúå—_œBËyóæeûþ²ë«¯¾r õÎ;ï8ôùúúj„ NçßgäôéÓ’¤qãÆåJø+I=zôÈö9-[¶TÉ’%såúY‘—ŸÕråÊiìØ±2dˆ¾úê+§ã¯½öš¾ÿþ{­Y³Faaa3fŒú÷ï¯÷ß_?ýô“zè!‡ñ_|ñE†×‹‰‰Q»vítæÌU¯^]ëÖ­sþJR¿~ýÚqqqúàƒ2½'( €Ò«²óS~|V}ôQ§¾ÈÈHíÝ»W]»vu:¤Q£F9ômݺÕåŠø»¬ððpIÒ矞a� ºuë:ô:t(Ã{€Â‚À¥X±bZ½zµœŽ­Y³Æ)èÌ)«5ûÝrµ]rfÊ•+çÐnÖ¬™ËUÎæjÝùóç» VïjÚ´©¼½½úÒ{þðýHNNÖ'Ÿ|¢víÚ)!!ÁÞ_¾|ymÞ¼Y�?þ¸Ëó<<<œ¶¤ uùlà{-[¶L’ôâ‹/æÚê_)gŸ)gŸƒû‘ŸUW«šçÍ›§š5k¦{ν«Œcccuþüy—c·mÛ¦Õ«WK’êÔ©£¶mÛfZÓ½Ÿ—'žx"Ós 0 ðÀñõõUhh¨ÃVÈwM˜0A›7o6 ªœ)R¤ˆCÛÝÝ=Ósy䧾̶¶X,NÏíÍÊ3f]ùñÇuüøqEDDèܹsúå—_´fÍ�=Z���9r¤íã»t颟þYÍš5ËpÞ7ß|Óá>RRR4{öìL빿òÊ+9ºdÎU`ìáá‘á9U«Vuê»víšË±}ô‘ý½«Å® 4H³fÍRÇŽõ·¿ýM³fÍÊÒyPÐ5º0Bƒ 4þ|õêÕË¡?--M}úôÑ�?þ¨‡~Ø êòÖ½+ysz^NŸ™œÙ³q-‹ªT©¢¶mÛêÕW_UÓ¦M³4oéÒ¥õúë¯ëã�?¶÷}õÕWš8qbº+{÷ï߯3gÎÈßßßi;mËÕ—âââœú®\¹¢mÛ¶ÙÛ�7Îò5FŒ¡#Fä¬@( €<°zöì©C‡9mû£®]»*,,Ìå*áÂîÞUÃ9=ïÎ�;9š'44T¥J•RBB‚RRRdµZåææ&///=ôÐCòóóËtuhzÞyçÍ™3GÉÉÉ’¤7nhþüù>|¸ËñK—.•$õíÛ7Ç[6#o¸Z5œ––æÔ·cLJ~ÿ<­ :`´)S¦èÈ‘#Ú°aƒCÿ¡C‡4xð`-Z´È Ê >Wa\V<öØcNÛIç–€€õéÓG ,°÷}òÉ'zë­·œÞ´´4­X±BÛ?f¿üò‹CÛËËË J `àëÍhV«U‹/V­ZµœŽ-^¼XŸ|ò‰Uá~üÏÿü�ÃêÑ3gÎhݺuNãvíÚ¥K—.éñÇ×£�>šŸ%"�;wΡoP%P0xày{{+44T>>>NÇÞ}÷]íÞ½Û€ª�Sµk×VÇŽúþü\à»înÿÌêßÂíæÍ›혘ƒ*€‚�$U«VMË—/wzÎmJJŠzôè¡‹/TrbìØ±íÝ»wë矶·“““µzõj-ZT}úôÉïò�‡Ž=jt `(`øÿžyæM›6Í©?**JݺuSbb¢U!'‚ƒƒÕ¼ys‡¾™3gÚßoÞ¼Y111zöÙgU®\¹ü.¹¨téÒíï¿ÿÞ J ` €?5j”úõëçÔ¿ÿ~­ZµÊ€Š�S÷®^±b….]º$IZ¶l™$¶6ƒòåË;´CCCuëÖ­lϧ”””Ü* C ÷˜7ožš4iâÔO8T¸tîÜY5kÖ´·“““5{ölÅÇÇÛŸùܹsg+Dn¸÷¿Õ;wîhΜ9ÙžgРAZ¸pan•†!`* ’¤¤¤¤Ïááá¡ýë_ªX±bn•%›Í–é˜äää\»$‹Å¢1cÆ8ôÍ›7OË–-ÓíÛ·Õ£G¹»»çkM…ásPjü³–-[:õM™2E¿þúk–ç˜={¶ÂÂÂÔ·oßÜ, A ÀTâââ$I·oß¾¯y*Uª¤5kÖä8 ¼÷¼èèèLWGDDäèZUz!|jjj¾Õзo_ùùùÙÛ1119r¤¤üÙþÙÍÍÍ¡}ùòå Çß¹sGÑÑÑپν?Ó´´´,Ÿ[Ø?«•+WÖÓO?íЯöíÛëâÅ‹™ž¿téR½óÎ;úàƒœ~_P0• .H’Ο?ßs5kÖL_~ùeŽÎ½wõp||¼6mÚ”îø7nhÆŒNý™Ù9Y‰é*€½»r:#÷º™­Mï9¬7oÞÌôZ¹ÅÍÍÍøÞuëÖ-U©REÁÁÁy~ý{?«W¯ÎpüäÉ“�~§Yù2ýcbcc³Xaþ|Vsúgå3y×»ï¾ëÔ¡† jÙ²e.¯ûöm�;V}ûöÕ“O>Éê_¦A ÀT8 é��ñäÉ“÷=_ÿþý�Ĭhܸ±ÓÊÊáÇÛê?ûùçŸõÄOÈÏÏO¾¾¾ÇöìÙ“áu~ûí7‡v|||¦µÝ¸qé/++:/]º”é<vöìY—ýG�ÍôZ¹iÈ�!òöövèëׯ_¾\ûÉ'Ÿth¯Y³ÆåsfoÞ¼©¡C‡ê³Ï>S§N�Žeö�¤3gÎ8´oܸ¡¨¨¨,Õ˜ŸUWŸ•ÄÄÄ ëºråŠSß�;w\Ž}æ™gôòË/;õGEE©wïÞò÷÷Wß¾}5vìX�3F]ºtQÅŠ5mÚ4•*UJß~ûm†µ@aB À4þùÏ:„”S¦LÉÒóL33cÆ §-f3ãéé©þýû;ôEFFª^½z=z´fÏž­‰'ªU«Vjذ¡l6›V¬X¡bÅŠ9œóòË/kôèÑš3gŽSˆvóæM§•šGŽÉt aWA�«PòÏÂÂÂéзyóæ Wi®X±Âeÿܹs³µºó~yyyiàÀ�}ù¿ñÆN}¯¼òŠºté¢Y³fiÚ´iêׯŸ*W®¬o¾ùFK–,Q½zõÆ/_¾\Ý»w×?þñýðÃNóݺuKÿú׿œú¿úê«,Õ˜ŸÕƒ:]÷Ô©SÖõý÷ß;õ�8q"ÝñsæÌQýúõ]»r劖,Y¢iÓ¦iúôé ÕíÛ·åææ¦¥K—*(((ÃZ 0±Ørã_CÀ 111Ú¿¿–-[¦E‹9mõ¬·ÞzK­ZµR… r|�ëׯ«I“& Wÿþý’¥s7nì´:ó^Íš5ÓÚµkU¾|yùûû;¬ê-Uª”ž~úiuèÐA½{÷–»»»æÌ™£ÈÈH­ZµÊ)”•¤   uïÞ]•+WÖ€äåå¥h×®]:~ü¸–.]ê2€ ÖÓO?­† ªcÇŽ’¤éÓ§kÿþýZ¿~½Ë›Õ«WWçÎ�¤W^yEß~û­¢££¦íÛ·§{Ïþþþzî¹çTµjUU¬X1ÏŸÇ{ôèQÕ­[W’Ô¢E —áb^=z´fΜ™á///-Y²D�:uÒ„ ôþûïÛ�Y­V5iÒÄþxä‘G¦½{÷êìÙ³ uZ ~WË–-Õ¼ysU¨PA­[·v —ïʋϪ‡‡‡¤?¶eïÞ½»öïßï0W¥J•ªF�9]çèÑ£zá…œV‘ûûûkõêÕjÒ¤Iº÷Ñ©S'………ex’T®\9-^¼8Û_î€Ï…ÔÂ… m’²üúç?ÿy_×;vì˜ÍËËËÖ¿ÿ,ŸsåÊÛóÏ?ﲞҥKÛ¦N�jKNN¶�÷óó³•.]Ú6xð`ÛŽ;ŽÙl6[rrr¶îùܹs6›Íf›8qb–Ï騱£ýzîîîY:ÇÓÓÓvîܹlÕv÷x?¿–,sss³I²Í�;7_®÷g}ô‘ÍËËËéÞ­V«­[·nöß“Íf³ýå/±Y­V[»víl!!!¶k×®9Í7zôèlÿœ§OŸža�¹ýYMLL´Õ¬YÓf±X2¬«B… ¶o¾ùÆf³Ùl×®]³U«V-Ó{©T©’mÏž=.ï#55Õ6gÎ[åÊ•]žëîîn2dˆíÒ¥KYýõ@¡Â `Ȇ�;wêÆ�êÒ¥K¶Î ×îÝ»uõêU¹¹¹©víÚjݺµÓ³W·mÛ¦'Ÿ|Rnnn¹YöïäÉ“ªU«–ÜÝÝuåÊùøøä{ ·nÝÒŽ;®¤¤$¨uëÖòóóswèÐ!ùúúªbÅŠù^£d®Ïê�tôèQ]½zUÅ‹WÕªUÕªU+•,YÒèÒ ÏLoúôé3fŒzôè‘0«Ñ�×,X Izýõ× ®€¼Å `€©íÞ½[O=õ”ªT©¢ððpY,£K ϰ`Z6›McÇŽ•$½óÎ;„¿Ó#˜ÖôéÓµoß>•+WN¯½öšÑå�瀅VZZš†*///UªTI½{÷ÖŽ;§Ù³gküøñ’¤¿ÿýï*^¼¸ÁÕ�÷x0 ÐZ±b…zöì™á˜Æ�kß¾}²Zù4ÀüøÛ/ Ðºzõj†ÇË”)£åË—þü PhuìØQ^^^.�hçÎ�zøá‡ó¹*ŒC (´ªT©¢mÛ¶éé§ŸVéÒ¥åéé©úõëkÊ”):~ü¸êÖ­kt‰ä+ž &Á `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0‰¢F(¼nܸ¡]»vÙÛrww7°"@A–˜˜¨ .ØÛO=õ”||| ¬È|€9¶k×.uéÒÅè2…ÔÚµkõ /]†©°4˜0˜[@r, À¡½víZ=òÈ#U.‰‰‰úúë¯ííAƒñ m˜^xx¸Ã£ïýwfÜ?`@ŽÝV=òÈ#ª]»¶AÕ…KBB‚|}}ííG}TVä?Eä>¶€“ “ “ “ “ “ “ “(jt"777 0À¡ ÷‹ÀV«UAAAF—ÀdØL‚Y IDATL‚L‚g ))IK–,±·ûôé#777+<¨l6›ÒÒÒd³ÙŒ.€A,‹¬V«,‹Ñ¥  --MmòKrr²nÞ¼©›7o*99™ð€,‹Š+¦R¥J©T©R*V¬˜Ñ%!‡€x@$&&êêÕ«Š‹‹3ºŒÍfSRR’¢££-OOO•/_^îîîF—†lâÀ<’““uþüyÂ_Y§óçÏ+99ÙèR�M¬äšÍÇ/éxbI£Ë …¤Ä»|ÃÞ^ýK¤ÜÜ= ¬©Çã�F—0¹ÔÔT]¸pA)))F— IIIÑ… ¨"EŠ]²ˆ“»|ù²ú¬V«¼½½åíí­bÅŠÉjeÓPàA•––¦äädݺuK·nÝRZZšýXbb¢._¾,+Dv`b©©©Š��uèsssS`` Š%&ð777yzzª\¹rŠŒŒTRR’ýXll¬RSSY\HðuLìÞgþZ,þp©hÑ¢ �Åbqèçùá…º䡨K2QÆ–áñ   \ªð ºwõo‰%äææfP5 777•(QÂ!ô½}û¶¼½½ ¬ YE �‡†=ÿdæc29n³e�‘{WíyyyT €Â¤dÉ’N0 ¶€À¤l6›RSSúŠ/nP5 “%J8´SSSùbb!Á `X,ùvìXmÞ¼Y’¯¹sçj„ câââ´~ýz=ûì³òõõͳZ�‚еhÑ"ϯa³Ùòü@~hݺµ7n¬H’>ûì3�3Fnnnö1ëÖ­Ó�;wØþ,¶€@¡1vìXûû+W®héҥǗ.]ªÒ¥KëùçŸÏïÒ€�…F×®]U½zu{ûã�?¶¿¿~ýº6oÞ¬^½zÉÝÝ݈òàаZ­úŸÿù{ûСCÚ¾}»$iõêÕJJJbûg<ЀP¨ôë×O+V´·gΜ)é�íŸkÔ¨¡¦M›U`8`Ø¥¤¤äèX~rww×È‘#íí�7jçÎ�Ú¹s§^yå•,Ía±XìïSSSs½FÀ(E�.àAÅsh’–ísþ¼ÒÈ žžžŠ‹‹“$�>}:ÝqÇŽshÛl¶<­+#C‡Õû￯[·nÉf³©gÏž’þXœö÷¿ÿþ{žÔ�Àzë­·Œ.Pdûÿ<¨²ºuëjß¾}’¤uëÖéÌ™3ªZµªÃ˜cÇŽiÔ¨Q*Y²¤nß¾-IºråŠËù²ºRøÎ�;íìÊÞÞÞ:t¨¦M›&IŠŠŠRÛ¶m³üÿØ~~~ö÷¿þú«~ÿýw=ôÐC’þ¨ÕªUêÕ«W–ë ¶€xÀ½úê«ö÷ jÙ²¥,X ƒjëÖ­1b„š5k¦©S§*00Ð>vîܹZ¹r¥>lïKIIQtt´½}ãÆ�t¯{öìY‡vLLL¶ê~ûí·U´èÿ­wÌêöÏ’lŸššªž={êûï¿×öíÛÕ®]»tÃm  #xÀ 4Hݺu³·/]º¤¨Aƒzæ™g´dÉ-]ºT/½ô’Ãy±±±Z²d‰víÚeï[²d‰’’’ìí]»véܹsN×´ÙlúôÓOú6nܘa`|/???uíÚU’T²dI‡{ÈÌK/½äfoÛ¶MÁÁÁjÛ¶­š5kæðŒa 0a h@®©P¡Û…�ÅbÑŠ+4oÞ<}ûí·:vì˜,‹ªT©¢îÝ»kèС*W®œ$©jÕªzî¹çÔ­[75iÒDVëë ·lÙ¢¿ýíoúá‡æ¾qã†jÖ¬©¦M›ê£�>RóæÍ5wî\Íœ9ÓéyÃgÏžU`` ‚ƒƒµf͹»»gZ{§N�´råJuëÖMžžžY¾ç%JhË–->|¸öìÙ£âÅ‹«Q£F5j”žyæ™,Ï4À°ÙlJLL´·ÝÝÝe±X ¬<è¬V«†ª¡C‡f8.44Ôeÿ3Ï<“åà4+×ɪóçÏK’ú÷ïŸís«W¯®Í›7çJ@AA È5£Vÿ¤Rû²÷ŒàA•šœ¨“ÛÛ5;ôU‘b™£V¼ö¤Ñ%@�²~ýzU©RE­Zµ2º @ .=ä鮨©Y¦*²ï!O¾~?Nž<©ýû÷kêÔ©ì®üÀÀ%«Õ¢r^F—¤kúôé*Q¢„ dt)@�A PܵË.û#""\öå]1PíÞ½[!!!1b„Ê–-kt9@�A ÐÆq=]ö?<Îõx›Í–‡Õ€q/^¬9sæÈÛÛ[�;wV¯^½túôiuïÞ]¥K—Ö„ Œ.(P€P ÅÆÆjÀ€JII‘$mÙ²EÆ ³_¾|¹Ê”)cTy@�d5ºÀ•âÅ‹ËËËËå±?üP/½ôR>W|À@­ÿûßF—ƒ½ûî»êÚµ«âãã�.òUÑ¢EµaÃ5oÞ\%J”PéÒ¥Õ±cGíÚµKcÇŽ5º< @" ¨ÈÈH+,,ÌèR`°É“'ëâÅ‹j×®�nß¾mt9�¯Z´h¡°°0ÅÅÅ)&&F6lPË–-�. (°€�èôéÓzâ‰'Ô´iSýýï7ºÌÓÓSß}÷�.^¼¨çŸ^‰‰‰F— ¨¢FÀÑÍ›7õüóÏ«råÊúæ›oŒ.„¯¯¯,X ¶mÛêí·ßÖ—_~itI �uøp¹ËþÏz6ÉçJ@aB  iiiêÛ·¯.\¸  6¨X±bF—„ûtàÀ}ýõ×Ú¾}»~ûí7I’¿¿¿š6mª=z¨S§N²Z³¶C«V­4bÄ}üñÇjÓ¦�zöì™—¥Èck•«ÑÀ¡ æY¶¢Ëþ   ü-*l  _~ù¥¾ûî;}ðÁzä‘GŒ.÷!>>^T×®] yóæiË–-úì³ÏT¾|y-Z´H/¼ð‚6l¨#GŽdyÞ‰'ªL™2>|¸~ÿý÷<¼yÍZ¤¨|k6°¿¬Eø^€ûG W¯^Õ{ï½§   ½ùæ›F—ƒû��� víÚéòåË:qâ„&L˜ Ö­[+88XÔÿû_}úé§’¤ƒªQ£FZ½zu–æ.Uª”Æ�¯èèhMž<9/oB,5 ˆñãÇëÆ�š9sf®lýüùçŸkÔ¨QJLL´÷yxxhÖ¬Y2dÈ}Ï�ô�1B©©©Z»v­<<<\Ž>|¸"""4sæL%%%©_¿~ T£F�2�È�!šüðCõïß_={öTëÖ­íýY óÒ‚ äéé©úõëëöíÛ†Ö’-Z¤´´4=÷Üs8p RRRÒëãã£çž{ÎÞ>zô¨¶mÛ–¥ë 8P’4þ|ÅÅÅÝ_Ñ ‘’š¦�Ç®Ø_)©Æþù À€ƒÅÇÇ+$$D’Ô¯_¿\›·Aƒ ѲeËô·¿ý-׿½_ ,Ð�;wtèÐ!………]N®ûþûï%I·oßVHHˆ¾ùæ› Ç·jÕÊ¡½eË–,]§I“&*W®œbccµvíÚÕ ÀX)©¶{`›Ñ%0ž lãÆ�Š��•¯¯¯4h`t9yîÏ+��^�œ¢¢¢ÚGŽÉp|¥J•Ú¿þúk–®cµZÕ¾}{-Z´HË—/Wß¾}³W( Œˆ¨tvƉˆpê ÊÓZ…0`°+VH’Ú´i#‹Åbp5¸_�>ú¨Nž�î5Ž;¦ëׯK’êÖ­›a=ùé§Ÿ4|øpÕªUK^^^òòòR½zõ4nÜ8]¼x1Ûóœîø~øAáááªU«–Ó±;wîhôèÑúꫯ”ššêp,::Z;vìÐŽ;4uêT­Zµ*Ý•·«W¯VBB‚Ëc‡Ö�T­Z5 2DÿùÏœÆDDDhÞ¼yZ³f�Μ9#ooo§1aaaö÷uêÔI÷~Ó«aÆiáÂ…N¿ïÇëðáÃúôÓOÕ½{÷,ϹqãFuîÜÙég'IIII:uê”N�:¥ùóç«~ýúúüóÏÕ¼ys—s-_¾<ÇÁëíÛ·µnÝ:uëÖ-_j5BZZš6nÜho[­VõèÑ#Ëç»»»ËÏÏO‘‘‘™>k<L¿ù曊‰‰±o©º|ùrû±‰'Úß{yy©Aƒz衇ôóÏ?+22R6›M#GŽT»víT½zõ,͹páBûûŠ+ª~ýúJNNÖáÇíã—-[¦K—.iÆ òòòÊ—{ÍͺΞ=«gŸ}ÖakPP�jÕª¥„„9rD×®]SJJŠfΜ©Ã‡+44T%J”p˜çñÇ×| °°0mذÁÞW­Z5IR‹-ìá¯$5mÚTS§NÕÁƒ%I'Nœ°Â/¾ø¢Z´há2ü�ŠŠR‡ôÓO?Ùû¼½½í+¡/\¸ _~ùE6›MQQQj×®�V®\©Î�;;Í5cÆ }òÉ'Š��·÷m߾ݼoÛ¶M=zôpXI\®\9Õ¯__±±±Ú·oŸ$éÚµk:uê”7nìt�cÇŽI’|||Tºtiç_@®]»¦öíÛë矶÷•.]ZuêÔÑC=¤ƒ*""BñññŸ‰ÌÜœ7lØP~~~rww×õë×®ˆˆI¬¾mÓ¦�–/_îòg¸páB-[¶Liiiö¾?ÿ Ÿzê)U¨PÁe%K–Ô˜1cò­V#|÷ÝwŠŒŒ´·_{íµlm-Égô… ðà°Øòk_TX,‡¶ÕjÕ„ 4zôhûjÌ””uèÐÁþÖwß}WÓ§OÏòœ~~ÿ�½;�®éêÿ8þ¹™‰¡$¦"湈Ÿ¡ÊCQªhSSÕ¬5Ï�–šZC•bÛjM5E©ÖPÔPÕZ”JP­yNŒ$¹¿?²rž\™n$r$y¿Öºk�}Î>û|îEž§ùÞ½wAÍš5KþþþƵ‡jþüù6l˜1ã¸{÷îúòË/Óì½¥G®ÈÈHÕ¨QÃ(Â+VLsçÎUãÆ�mú|ýõ×2dˆîß¿/Iêܹ³-Z”è˜Ù²eSTTT²Ÿu\½{÷Ö¼yó”#Gݾ};Á>>Týúõõ믿JŠ)üNš4I]»v•»»»ÑïôéÓêÞ½»±¶���Ž?®çž{.ÙõêÕ³YÂ8V‰%4mÚ45kÖL:þ¼üüütãÆ •+WNLp¶uóæÍµaÕ-[VÇŽ³ë³�bfŽ6jÔHÛ·o—$¹¹¹iÒ¤IêÙ³§ñ^­V«V­Z¥wß}Waaaƽ5jÔ0ŠÓ éÔ©“Q0vvvÖ�7â}Ià·ß~Ó˜1cŒç{xx(00PE‹M6{ÜÏðÇÔ«¯¾j÷ûNï¬O“Õj•ŸŸŸñïËÛÛ[���òññIÑ8o½õ–”7o^]½z5U™žtà¸Ë@N{]å åLU «�|¤Éëþ7{„E¹¹8š˜`K›%v÷ÍÄÿ ž’¨¨¨xÛÔ•,Y2Ù­Ëàiýü ²Y500Ðf’ R/Ký„_¶l™Ú¶mksÎÉÉI½zõ2 À¿ýö›ÝãåÏŸ_{÷îU¡B…lÎ;;;«_¿~*V¬˜^ýuEGGkÁ‚jß¾½êÕ«—ê÷‘^¹ÆŽk§J—.­_~ù%^qÊÅÅE½zõR•*UT¯^=…‡‡kñâÅj×®�5joL•*UJÇŽKÑž¥±³“Ú'wêÔ©Fñ7oÞ¼úùçŸU¦L™xýŠ+¦Í›7«V­Z:x𠂃ƒ5yòdM™2ÅîsæŒ$%: 61óçÏ7 šîîîÚ²eK¼¥¬-‹Ú¶m«\¹r©Y³fŠŠŠ²kì�>úH—/_Ö¥K—ôá‡&8Cü¥—^ÒÖ­[�"ôýû÷5oÞ¼'þ ŸTFÊú¸/¾øÂø÷åää¤U«V¥¸ø+Éø{wçÎ�Tgòññy¢ H�3³[$|¡é´ô ȲL¸mÛ¶ñŠ¿±J”(a_¹rÅî1g̘¯ÈWÓ¦MÕ½{w}ñÅ’¤I“&¥K8-rݼyS3gΔ3széÒ¥I†jÔ¨¡�>úHÆ “$M˜0!Á°$½ð :vìXŠö, ””x844T“'O6ÚË—/O°øËÅÅES¦LQƒ $Iß~ûí‹+¦�7*[¶lñ®åÌ™S5kÖLòþ›7oJRŠ–�ŠŠÒĉ�öøñãÝÇX’7n¬víÚiÉûf)R$Á=�çàà ÷Þ{Ï(DÇ]v;½d¤¬q�9sÆø·âàà Å‹ëå—_~¢±bg|‡‡‡+222Á=¸ðlóõñLä‚oºæH�5ZºÓì™›Çs’ÅÁì2‘,SîÑ£G¢×b—ƒ–d³ßkrš7ožlŸ÷ßß(´nß¾]7oÞ´k©áÔH‹\ßÿ½±¤sýúõÜ¿öq½{÷Öøñãu÷î]íÞ½[×®]SÞ¼yãõ«X±¢V®\©«W¯êúõëÊ“'O’ãž?Þ˜ÝøÂ /$ØgÆ 5òÖ¯_?Ù¼õë×—···BBBtæÌýóÏ?ÆžÄöúòË/,þÚëÞ½{’”è á„ìÙ³G—.]’$åÎ�[ýû÷OöžöíÛÛ]NˆÕjÕßÿ­þùG§N�Ò¥K—t÷î]�>}Úèû^Ìö¬g 7öŽvttÔ×_­víÚ=ñxq—7¿s玼½½Ó"&ãþMijq³SdnCOIÙ’þ=9¤D–)Ç]K<­<¾ïnB|}}U±bE=zT�=ÒÁƒõÊ+¯¤y–´ÎµgÏãØž‚²³·jƒ ´nÝ:Y­VíÚµKmÚ´‰×/n700И}¼uëV :T‘‘‘5j”:tè I63…+ÇÝ—÷Úµk‰Îö~\tt´q|ñâŀ˗/oW¡9)±…HWWW»ï‰]æZ’Þxã »f|>ɬÐèèh­[·Nß~û­¶oß®ààà�‘^2RÖ®]»êàÁƒruuÕŠ+ôæ›o¦jÇwÕ‚ÔÌFO+Gò½¥»…Š™ð”$·½Ì—e Àf²Z­fGHPR¹â^Kɬ¸}###ìS¤HeÏž]¡¡¡ÆÞ¾'Ož4Š¿’t÷î]íܹSMš4Ñ_ýes_BRR@MÈóÏ?¯5j¤èžâÅS¿ìI¶lÙ‘¢¥ÇãþÙ88¤ýl±Áƒkúôé6çŠ/®ºuëªlÙ²*W®œJ–,)8p@ 6Ló öÊHY¿øâ Mœ8QyóæÕæÍ›U¹rå47<<Ü8~ ÀÀ\€S!<<Ü®½[ã6Ÿþù§IRÚä*X° q|ôèQ½õÖ[v=;îrÍ H´_ÅŠõÛo¿3u7mÚd\óôôTXX˜6lØ &MšEâÄ–~<ÿ�!C4uêT»ò¦†��OªÇðôôÔÍ›7mŠxÉÉŸ?¿q|êÔ)»îyøð¡]ý6mÚdSPmÒ¤‰Æ�—èÐq—NkÑÑÑŠŽŽ–“SÂ?¦ž¥¬ÉÙ´i“z÷î­‚ jÇŽ‰Îܾqã†îß¿¯B… Ù=vXX˜¤˜âï“,õ 26›K…Í›7'ÛçøñãF‘ÓÙÙ9ÑâTZJ‹\q—÷ûî»ïìzî¥K—ôûï¿í_|1Ѿ±Ë@?^.Z´¨±ÌóæÍ›¥¿ÿþÛæž„Ô©SÇ8^µjU¢³�Ó’={-''¶H~ëÖ-»ï©U«–q¼qãF»f˜Ç-°'eÅŠÆñ;ï¼£M›6¥ËßÙÇ]¼xQ¾¾¾Ê‘#‡Ö®]›`Ÿg%kr<¨6mÚ¨@�ÚµkW’Ëv�5J|ðAŠÆ�]Ü××751Е+W’}�={6ÉÌG8,X�lŸñãÇÇMš4QŽ9žf$Ii“Ëßß_®®®’¤cÇŽéÛo¿MvÌ &(**J’äçç§’%K&Ú7¶˜{óæM�>}Z¿üò‹¤˜âfl1÷ôéÓÚ¼y³QÌMjð›o¾i¼‡‹/j„ Éæ•¤íÛ·«páÂ*_¾¼Í¾Çé¥X±˜½RÛ/9!/½ô’¼½½�û–/_ždÿ[·niÙ²ev�}ãÆ ã¸yóæÉö·wfq\qgô&6óù‡~Ð… tÿþ}­[·.Á>é‘5µÎž=«fÍšÉÛÛ[»víJvÙð   •+W.Eψý»S´hÑ'Î ÀZ²d‰ñJÉ– ÀÓТE‹d_E‹Mò@Z Iõ�@VD8¶oß®•+W&z}Á‚ÆuGGG�5*ѾŸ|ò‰òäÉ£Ò¥KkÏž=¦çòññQ¯^½Œvß¾}uæÌ™DÇܰaƒæÏŸo´ÇŒ“dƸÅÜùóç¿ô~ùå—Õ¨Q#›¬ Ýó8///�;ÖhüñÇš5kV’ÂÂÂÔ­[7]¸pAÇŽÓ�’ìÿ4į^½ªèèh»îquuUÿþý�öСC“ü³éÖ­›BBBR”GŠù{”œ-[¶Ø5n\q—��þ¸;vDZEòÇ=í¬C† QΜ9U¶lÙ'ú»qëÖ-½öÚkòððЮ]»’ý¥xTT”þüóO•/_>Eω-§´p àÙi¼ð?QQQjÙ²¥.]ºdv áœJï¾ûn¼åu¯_¿®!C†èÝwß5Î�5*Ñåiþùg�1B7nÜÐÉ“'õöÛoÛ] |š¹&Mšd•®]»¦zõêé§Ÿ~²é¥yóæ©M›6ÆRÄݺuÓ믿žd¾Øež%iÑ¢EÆqÆ U§NyxxH’ñ<77·$gKÒÀ�Õ¡CI1ûÇöïß_¯¿þº:¯oPP�^yå�;wNRLQòµ×^Krü§¡jÕª’b>Ç”,›8dÈ•-[VRLñ¸^½zñ œ·nÝRÇŽí^Â[’Þ~ûmãxΜ9úàƒlfÚÆ:~ü¸:tè iÓ¦çÝfßh«ÕªÏ>ûLkÖ¬‘³Ì¶¿¿ºg]½zµ>ûì3ݹsG'NœP×®]“}_qEDDÈßß_QQQÚµk— .œdÿèèhmذAaaa)*äž>}ZwïÞ•d»48dt£F�ÒîÝ»S]/²"‹Õž D3ˆ��}ôÑG –³l¬Ö­[ËÁÁA¹sçÖÈ‘#•?~M˜0A���ºwïž6lØ )¦ÐøÆoH’ *¤1cÆÈÓÓÓ'±}_+T¨ %JèÊ•+ú믿ôàÁãÚÛo¿­¥K—ÊÑÑ1Á{§N�ªaÆٜ 6–ùµÇÓÈ%I'NœÐ«¯¾jJ¥˜™åË—Wdd¤<¨ëׯ×4h ï¿ÿ^Ù²eK6sáÂ…m–].]º´Nœ8!IjÖ¬™6nÜh\óóóÓÁƒ“322R�:u²ù³—¤"EЍ|ùòrvvÖ©S§h\suuÕ¦M›T¿~}›{>¬™3gÚ|f;vì0fÓÖ­[Wùòå³¹'GŽ1b„ÝK †„„ÈÇÇG’ôí·ßªeË–vÝ'Å,Í]¿~}]»vÍ8W¼xq•-[V<О={l²ÇÊ�;·6l()f)î‘#GÚ\ïÑ£‡¾üòK£íîî®Ê•++þü Õ‰']²ÚÅÅE¹sç–‡‡‡FŽ™`á4<<\*TЩS§$ÅÌBÿ¿ÿû?ùøø(((H§OŸ6ú¾÷Þ{š;wn¢ŸÁÓÊ:räHMœ8Ѧ¿½Ë3[­Vµk×.ÉYø‰qwwWXX˜ìûnηß~«Ö­[KŠù’Fìߥôdó…ŽeË–%:k€­ˆˆ-]ºÔhwìØÑØ~0Ë/¾˜ê12ÑZ™FTT”þùç›s%K–´Ùª-I÷®KS“ÞÚ ©4ô””-�Ù)ž)ëÖ­S‹-dµZuæÌùúúš)KJõÏ�D<þ{åÀÀÀ¯Ž‰¤¥îOè3gΜD—ý]½zµqœ3gN5iÒD~øa¼~ááá6ÅÃråÊ%:ûoÞ¼yI1ø+W®H’>ýôÓÿí¸¹¹iýúõjÒ¤‰Î�;§G�iÿþý6},‹úô飙3g&ù<­¬~~~ñîß¿¿]à>øà‰Š¿RÌŸ•½Å_Iúý÷ß%IUªT1¥ø imß¾}jß¾=_2R!S-ݨQ£d §Ï=÷œ^yå½ð É~›àùçŸOrßÙ.]ºèäÉ“4h�J—.-777eË–M•*UÒ°aÃtâÄ »Š¬uêÔѧŸ~ªÜ¹s«|ùò Höž¤¤U®XÞÞÞÚ¾}»6nܨ¶mÛªpáÂrqq‘»»»Ê•+§~ýúéðáÚ1cFоõ1xð`£hU¾|y£@)ÅÌ‚ª]»¶,‹ ( Þ½{ÛÿHêСƒÎ�;§ èõ×_W¡B…äââ"WWW-ZT­[·ÖÊ•+uâĉ‹¿’Ô²eK¹¹¹¥è¹^^^)^J:v¹ì_~ù%E÷IR©R¥´wï^-_¾\¯½öš ,(y{{ëÕW_ÕÂ… ¨^½z©bÅŠñî/Q¢„Í^ºRL1ÿ³Ï>ÓŸþ©~ýú©L™2òðð�«««¼½½U³fMõíÛWÛ¶mÓ¡C‡´}ûv�;VU«VU®\¹äää$'''uéÒ%ÑÜeË–ÕÑ£G5aÂU­ZU9sæ”»»»J”(¡=zhÿþýš5kV²ÅЧ•µE‹4h�räÈ¡*Uª¨fÍšÆÊÉyÒ⯔ò}|üñGI2f@Föã�?ªQ£Fºÿ¾ÙQRåþýû‰®N ¤‡Lµtzˆ»ÔòƒR\ |ZžÕ\HÞü¡êÕ«ËÑÑQ!!!Ê•+—Ù‘ð˜æÍ›«Q£FêׯŸÙQ .\0öþçŸT¢D Sr°4ðäXϚؕ1’R¥J•$¯³$ðìa è à[Újµê‡~ЪU«ôûï¿ëÊ•+ŠŠŠRž}ZRÌjl÷îÝ3Šª'OžTãÆ�uöìYµhÑB«V­²™ÙZ»vmõèÑCMš4ÑŸþ©åË—ëСCÚ¶m›Í„¡K—.©X±b*Z´¨Q€–bŠéµk×VþüùµhÑ"•/_^aaaZ·n�æÌ™£¨¨(IÒìÙ³åââ¢iÓ¦÷æÊ•K}úôQhh¨>øàã|ãÆ�Õ¬Y³xŸ]¬ªU«ÊjµjÖ¬Yzå•W4f̘Dû"sc0ð èÚµ«¼½½µmÛ6�:uÊì8ˆcÓ¦M*S¦Ì3µ¬ñÖ­[õï¿ÿÊÏÏO�52;€L`úôéºzõª$©P¡BFñ7–ÅbÑ AƒŒöܹsnÓçèÑ£Ú»w¯$Å[¦9Ö¸qãTºtéTemÙ²¥,X -[¶¨bÅŠÆù��õèÑC;vìÐÒ¥Kõ矪S§NòòòÒ{ï½§çž{N’tçÎ5oÞ\gÏžUÁ‚µxñâ—5Λ7¯¶lÙ"oooIÒ‰'ôæ›oÚ¼ï-ZhàÀ�Z´h‘ͽ+W®ÔèÑ£µwï^uîÜYÿ÷ÿ§zõêiƌڲe‹\\\Œ¾Ó§O×îÝ»ã=¿o߾ʙ3§ÑÞ¸qc²KdÇ®4Ú·oß$û!sc0ð pwwרQ£4`ÀM�:UóæÍ3;3ÓvÚ´iêÒ¥‹ÙQ V«U£F�’ÅbÑìٳ͎O¥J•Ø«°Sxx¸vîÜi´kÔ¨!777€¬,((È8~|ß×X%K–4ŽïÝ»§S§NÙü>ðøñãÆñíÛ·ÃÉÉIýû÷×É“'SY’T¶lY=zT’tìØ1­X±B~~~’¤ìÙ³kñâÅ63‘¥˜}qcŸÿÞ{ïÉÓÓ3Ññ½½½5eÊuíÚU’ôÇhæÌ™úïÿkÓ¯páÂ6íÎ�;ë�wÞIpÌúõëküøñ1b„¤˜ßûN˜0A›7o¶é[¸ž4i’¤˜YÅ[¶lÑ«¯¾šhÞ+VÈÛÛ[Mš4I´2?fψ>}ú¨råÊZ°`A¢ÿãŠôµråJ…„„è½÷Þ3;Š! @P·nÝôâ‹/š@*8::ªråÊÆËÑÑÑìH «[·®q[@}\¶lÙlÚwîܱiÇýrûÔ©SuÿþýÇiÕªUšý.ÄÝÝÝ8Ε+—Þzë­$û_¿~ÝØbO’]«,¶k×Θ,IŸ~úi¼=����mÚ… JrÌ(Ož}º6lØ ¯¾úÊì8YZ‡4dÈ5kÖÌì(†wß}Wáááúᇔ#G³ãÈD,‹Z·n­=zÄ›éû÷ßëƒ>°™%,)Þ~´9räЄ ŒöþýûU±bE :T¡¡¡O/| üöÛo6íÇ÷:NLµjÕlÚ±{§F­ZµlÚçÎ�K°ßСCåàð¿’^b³€W­Z¥ *¨J•*©Î†Œ�p27nl3­?!¹sçÖ+¯¼’N‰b<«¹�z}ûöU÷îÝ5pà@›=�¾–-[¦Q£F™Ã0zôhmÛ¶MkÖ¬‰÷m9HkQQQZ±b…êÖ­«æÍ›+Ož< Hö¾þýûkøðáFûáÇš6mšJ•*¥… Æ+§·«W¯Ú´[¦úq�ÿ^6¡ZSêñ1_R;V‰%Ô²eK£½lÙ²xÏß»w¯Îž=Ëì_H¢œ¬_|QÁÁÁ²Z­‰¾®_¿®Úµk“ ifÞ¼yjÙ²¥^}õU]¼xÑì8YÒ³Tdýúë¯5gÎmÛ¶M 40;€´bvQQQš3gŽŠ/®‘#GªOŸ>:qℬ¼yóÚ5Æ'Ÿ|¢%K–({öìÆ¹k×®é�wÞQÍš5uäÈ‘§?Yaaa6m{g&ç̙Ӧmoá8%c&5ù¿ÿý¯qoØ+VÈÑÑÑî廑¹QžANNNZ¸p¡Ú¶m«>}ú˜&+Y²¤öíÛ§š5kš@ZŠŽ––ÒáÇuøða=zôÈìD ‹ûûï¿U¥JõíÛWÕªUÓÑ£GÕ¦M›å‡íÕ±cG�8qB]ºt±¹ÿ÷ßWõêÕõõ×_§et»åʕ˦�زË�{|Yì^ļqãF¢c= 777 6Ìhß¿_ ,Hö¾¸Û5Ž3&Õ9¢¢¢´zõjIRîܹջwo»îkÙ²¥Mñ¹[·nº}û6Ë?Ã`€,ìñY·ñúÜ»wO£G�¶9÷xAXŠ™%<~üøDŸ©H’êÔ©ïzÁ‚mÚ{÷îµioڴɦ(eÇŽ›œ¨nݺF{üøñ‰½%éçŸÖï¿ÿ.IêÞ½»š6mšì3úlâúâ‹/tñâEIÒ矮ܹsÛ]ŽŽŽ2dˆÑV‰%ôÒK/Ùu?² Àfy¡±Ù âbçÌ™£�j÷îÝÚ¿¿æÎ�+???ùùùÉÙÙÙè7{ölíÝ»W³gÏÖúõë�ó‹-Ò’%K|Ö¬Y³)WWW}üñÇñ®ûùùÉÝÝÝh�;V«V­Ò‘#G4räHM˜0A^^^ÆõãÇ�ÇÁÁÁ:{öl²ï×ÉÉIªR¥Š$éÖ­[jÙ²e‚KA_ºtɘ]Û¼ysÍš5+Ùñ%iÉ’%úòË/¼¶oß> :T’4qâDµlÙÒ®1cuéÒŦ`ܱcÇÝ�Ì�0€Y\=ÌN jÕªÙ£££5sæLýç?ÿQÍš5õÁhذaš>}ºêÕ«gô;räˆjÕª¥É“'«\¹r6cvéÒEíÛ·×Æ�õ×_iË–-êÖ­›†®9rhíÚµª\¹r¼,êÛ·¯Ñ¾}û¶Ú¶m«Ê•+ëÇÔêÕ«ªuëÖ©M›6:tè�ÍýþþþZ¾|¹:¤Û·o'úž}||ôË/¿¨sçβX,Ú½{·*Uª¤¹sçêÀ�Ú¿¿¦N�ª*Uª($$D£G�ÖºuëìÞg×ÏÏO PµjÕôõ×_ë÷ßׯ¿þªÿþ÷¿ªW¯ž\]]õõ×_ëý÷ß·k¼¸ÜÝÝõÎ;ïHŠ™½Ý©S§��ÌÍÉì0×¢E‹äç积¾úJ'Ož”‡‡‡Š/.õèÑC>>>’¤ùóç«k×®úã�?”;wnùûûk̘1Ê“'�þüóOc<«ÕªåË—kùòå’$)RDýû÷×�!CôüóÏ'šeâĉ²X,Z²d‰îܹ£âÅ‹«C‡êׯŸQ ž3gN‚÷9rDíÛ·—$}ùå—êÞ½{¢ÏñôôÔ¢E‹4hÐ -^¼XÛ¶mÓÈ‘#uÿþ}åÉ“G%K–ÔàÁƒÕ©S'(P EŸçk¯½¦o¾ùF&LÐèÑ£¬ìÙ³«xñâ=z´ºu림yó¦h̸š5k¦O?ýTÿùÏäëëûÄã s¢ �Å988hàÀ�8p`’ýŠ+¦]»v%x­U«V²Z­©Îâää¤O>ùDŸ|òI‚×gÏž­Ù³g§ú9±*Uª¤Ï>û,ÍÆ‹UªT)-^¼8ÍÇ•þ·ÇpìòÔ@\, d ëׯ—§§§Z·nmv<ƒ˜ H3�Ï}¤òÞŽfÇ2„ð‡VMöˆ�~Þ(ÕKù^/¤ �礡§ÌN‘¹yÒñB…ÌŽ<óZµj%…‡K“'›@&à `È$(@&ÁÐéììÙ³*P €|}}�s|/@êQHgE‹•ÕjU—.]ÌŽ “aª d€ “  ™{˜ ::ZçÏŸ7Ú… –ƒßÍ�:€L©E‹í#FÈÍÍͼ@2¦™¤³3gΘ@&Å `€tæëë«ððp³c�,«ÕªÈÈH³cdj...²X,fÇ�‰P ŠŒŒÔúõëÍŽ‘©5oÞ\®®®fÇ�‰°4d€ “` h@šiÔ¨‘Ê—/ov &û믿ԱcG�={VݺuÓgŸ}fv$ Ë`0ÒTß¾}õ×_)44TÓ§O׎;ÌŽd€�¦=zdÓ¶Z­&%² ÀHSÓ§OW™2e”={v 0@ 40-Ë•+WL{6`ö@šª^½ºŽ?nv mÙ²Eúꫯ̎¤ À&pvvVÛ¶mmÚH;/^T‡Ô´iS³£éŠ0€ U¦L³cdJááájݺµ®_¿nv ݱ02�G�©S§NÚ·oŸÙQSP€$éáÇ:sæLš�•æc&$44T­[·ÖêÕ«ÓåyÀ³ˆ0@wøða 4H Ô¸qãŒó?ÿü³:uê¤bÅŠÉÍÍMùòåSÓ¦MõÝwß%;æÑ£G5jÔ(•*UJ¿þúk¢ý"##µuëVõéÓGEŠÑÅ‹%IV«Uk×®Õk¯½¦|ùòÉÝÝ]/¼ð‚>ûì³ ÊÁÁÁòóó‹—mñâŲX,Æ«råÊö~,@†ÄÀ&ˆŒŒÔÚµk�v‹-äââbb"�ÕiéÒ¥Z³f�þý÷_›k·oßV¯^½´jÕ*›ó×®]Ó¦M›´iÓ&µhÑBË—/—«««qýرc ЪU«tâĉ$Ÿ¿víZèÇThh¨q>**J.\P—.]´cÇ›{Ž=ª!C†hß¾} °¹–+W.mذA’Ô A]¾|Y’äïï¯I“&ýÜÜÜ’ûh€ �À&ˆŽŽÖ‰'ŒWtt´Ù‘@såÊ(P@eÊ”±9¢—_~YG�Õ¼yó´wï^ýúë¯úðÕ-[6£ßÚµkÕ®];£ýÇhÚ´i ÑíÛ·“}~îܹ5xð`U¨PÁæüñãÇU³fMIÒêÕ«uøðaýðêR¥ŠÑgõêÕñ ÀÎÎÎ*S¦ŒÊ”)#gggã|Ž9ŒóeÊ”‘¯¯oò��1 jذ¡6l¨wß}W9sæTdd¤$iÓ¦M?~¼F�%‹Åbô饗ԦMÕ©SÇ(ð®]»Vß|ó�:tè jÕª©Zµj’bfà¶lÙ2Éç×­[W’Ô«W/íÙ³Ç8ÿÖ[oéã�?Vÿþý�s•*URíÚµU²dIݸqC’ôÅ_¨M›6iðI™ 3€²0wwwåÉ“Çhׯ__~ø¡Mñ7V… 4þ|›s&Lˆ×ïñYÅIÉ—/ŸM{Ê”)6ÅßX¹råR«V­Œö¾}ûXU H`€,.î’É… J²o›6mT±bE£}âÄ pà€>|h´Ã´nÝ:»Ÿ d4€`عs§ÆŽo¯³÷o×®]%I½zõÒàÁƒ㯿þ²i9r$Ñç]¹rŦ}ûöíDûž>}Ú¦}óæÍûÕ®]Û8 QçÎ�õûï¿kãÆ�ª]»vºÏHÒ{˜Àjµê~X¨ÑöðÌn³7 @Zš½~w¢×šVx>“€Œ B… š5k–V®\©¾}ûÊÏÏOÚ¾}»>ýôSEDDhÒ¤I1b„Í}ׯ_×Ù³g¨Ñ£GÛ\›6mš¼¼¼T¯^=•*UJ’bfÿ~óÍ76}—-[¦¦M›ÊÙÙÙæüµk×´råÊx}«V­ï=ôìÙS3fÌÐ�;w$Å,Y½bÅ 9::jÆŒzóÍ7ŸìÃ2 À&x¡�Ë¿6Úþ]Þ“‹«[w<9Ÿ…½æë[$“€Œ jÕªÚ²e‹&Nœ¨iÓ¦éòåËòððP‘"EÔ§OuïÞ]E‹�wßüùóõá‡&8æ�;w4hÐ IÒ¬Y³Ô·o_ >\Ë—/×¥K—lú~ûí·úõ×_õâ‹/jíÚµ’¤7ÞxC;w”ôôéÓµ~ýzõêÕKC† 1ÎçÏŸ_[·nÕ AƒtèÐ!åÌ™SµjÕÒðáÃU£F�T}>À³Ž0l(P@³gÏÖìÙ³í¾gÔ¨Q5j”Ýý§L™¢)S¦ØÕ÷ûï¿·{ÜXÕ«W×o¿ý–âû€ŒŽ=€ “`0 Í4v9¦ò®afÇ2„pEêÇ+F»¥ëa¹¹º˜˜dYA‡ÌNàYRž=1aËÅÅEÍ›77;F¦æâÂï¤- À A‹E®®®fǤK@@&A ‹‹ŒŒ4Žãàë<dr*\¸0)b±XT¸payxx˜)@€, ¶ìììlv€³³3Åß Š% Làææ¦Áƒ›H{öì‰w.þü&$�/^\ ÕÝ»wiv,Ïyyy){öìruueÕ€ Š0€T)T¨P¼sÏ?ÿ¼ IØÃb±ÈÍÍMnnnòññ‘ÕjUtt´ÍþÀ²‹Å" ¾™`²0‹Å"GGG³cÒ{@&A2 –€¤™|ùò±Ç`§ððpMž<Ùh�1Bnnn&&�P¤™Ák*Ǿ›fÇ2„G#tâÐ9£}tѯrtv51À^ÝꘀD±4d€ “` h’pïú›öÙ³g�c__ßô @2(�„M#Þ²iñ¿c«ÕšÎiHK@@&A2 ÀR$$$D›7o6;F–2tèP½ùæ›zðà�ÙQÀ3Ž0»�;wNµk×Öž={ÌŽ’¥Œ7N/^TÆ fvð £ À.ÿüó�^zé%Õ¨QCãÇ�7;N–’-[6mܸQ/^TóæÍav$ðŒr2;€gß�;wÔ¼ys.\X_}õ•Ùq²$-^¼X 4Pÿþýõù矛 @*Y,ŽÊ]¼¼Mðlzmò*›öœ·ª›”€äQ�¤èèhµoß^.\І äììlv¤,«^½z0`€¦OŸ®úõëë­·Þ2;€TpprR¾ 5ÌŽ°C¶<ùmÚ¾¾¾æÀ, IŸþ¹6nܨ‰'ªD‰fÇÉòÆŒ£çž{NýúõÓ�7ÌŽž1€$êÚµkúàƒäëë«Þ½{›’räÈ¡÷ß_!!!7nœÙqÀ3†0€D½ÿþûº}û¶F��&K?Ï�;Wnnn²X,ÆËÝÝ�ýlS¨gÏžòôôÔ矮sçΙó\£òÙsšÈ¢EëÀ©ÿ-åþÅsËÉ‘ïæ@†°z�٠أõb³¦à·Œ@·xñbeË–M•+WVXXXš�;uêTEEE©}ûöi2ûW’&Ož¬Î�;ë­·ÞÒË/¿lœ�ŽŽN“ñSãi}ŽOK×®]%I_ýµîÝ»grO"ê‘U›_2^Q�¬fG� P2¸Å‹ëþýû:räˆöìÙ“&c>xð@‹-’$uìØ1MÆ”¤*UªhÑ¢EZ¹r¥F��f㦅§ñ9>MÕ«W—···îÞ½«uëÖ™<#(\ÜÙ³i5“vÓ¦Mº{÷®|||T¥J•4óY÷4>ǧÉÁÁA�7–$­ZµÊä4`¾³Áa¶¯³g��•°0€x$Iõë×—Åb19 óŸÿüGß|ó�vìØ¡ÈÈH¹¸¸˜ LS´ïZÛqÚV+Ûm ë  À†ÕjÕO?ý$IªS§ŽÉi�”ØÙÙ÷îÝÓ�T«V­T�¬���Ýóï¿ÿ¦ê™ m±tµgÏùøøÈb±Ø¼Ú·o/Iºzõª&L˜ ÿüç?òöö–‹‹‹òæÍ«7ÞxC?ÿüó�¨Aƒ©J•*Ê™3§\\\T¨P!½ýöÛÚ¹sgz½uIRDD„~øáõèÑC/¾ø¢òåË'wwwyxxÈ××WõêÕÓgŸ}¦ñãÇËÓÓSãÇ�·{ì»wïjÖ¬Yjذ¡|||ŒÏ®iÓ¦Z¾|¹¢££õàÁU¨PA...š1cF¼1æÍ›'ww÷xŸ¥ÅbQ¥J•tóæM£ï¾}û4pà@U­ZU9sæ”›››Š-ªž={êŸþ±·G�rpp°o×®]Æõ&Mš$øL‹Å"///­Y³&Ù÷¤[·nI’*V¬h÷çö¸ƒª_¿~*[¶¬¼¼¼äåå¥J•*iĈºxñbŠÇ;|ø°FŒ¡×^{MÅ‹WžÒäuG�öÿŠrsq41@Æfi³$Ñküú àÙ¤ *íÀÀ@•/_ÞÄD™K@gP½{÷ÖÍ›7,IZµj•qm̘1Ʊ———ªT©¢Ü¹sëСC:wV«¨† ªT©Rv�[¨“¤üùó«råÊzøð¡þúë/£ÿÊ•+uùòemذA^^^Oå}¯_¿^o¼ñ†Í¸ùúúêùçŸW®\¹dµZuùòe>|XÑÑÑF{þCïÃ?Ô„ lú–)SFÅ‹WXX˜8 {÷îéÏ?ÿԻロäØS§NÕÌ™3õàÁãÜŽ;Œåu·o֭߮[ëÿÙ»ó¸*Ëüÿão» ¨InGÄ,Ô±ÔÆtwÓ¬ÆÉ­:©•†¹d“Iššé¤E¥f&eå’kõ›\Êe´š±Í¥\Q1·‚ÐÌDàüþàËG¶¸áøz>çñ½¯û¾îë¼ïg¾=üp]×¥K—ŒëAAAŠŒŒÔ¥K—Œb诿þªÃ‡«mÛ¶’²«V­²{¶ÜãvêÔIµk×Î÷ùüýýõôÓOù9ÄÇÇK’ªW¯^ìâﯿþª=zhï޽ƹ5j(""B���úþû˜¨ÔÔT»ß©¢,Y²Ä® Ú¦MÕ©SGÞÞÞºpá‚”˜˜(){öm—.]´zõjõë×/ßñÊòstvÖ¢Ô©SG'OžÔ�?þX¢û€ka°‹pss³k[,EGGkâĉÆìÑŒŒ õîÝÛØßõ©§žÒܹs³N�:š?¾ú÷ïo\»~ýºÞ|óMMš4ɘqüðÃFÁØÓÓS)))yþÈàÿûŸ¦M›f¼•*U—ïïG~œõ9–GÖÜ|ðA­Y³F·Ür‹~þùçeÎQÒ=€s/Í `ÀqÌp.fTÌ.{ÌvQ+V¬ÐÀ�íÎyxxè±Ç3 Àÿûßÿ/$$D_}õ•êÕ«gwÞÓÓSQQQ U¿~ý”••¥ØØX 2D�;w.õsÜhÿþì(oÔ¨QžBlnuëÖÕ‹/¾¨îÝ»KÊ[ÌÎíСC;v¬Ñ;v¬bbbd±Øo‘h,û[Ø{G§N�ôÑGÙÍ´­_¿¾tèÐ!Ý~ûíe¾¤ö�r–Ê.hlAÞ|óM£ éëë«Ï>ûL;v´ëãææ¦�ªF�ºçž{”‘‘áÐØ3gÎÔÙ³guæÌ=÷ÜsùÎ0¿ë®»´eË£}õêU-Z´H/½ôR±ž£´Ê;kÎïÎÅ‹K�=88XÁÁÁ¥ÌpbÁýö'ú¼lNÀd–¢» ²8p`žâoް°0ãøÜ¹s�ùꫯæ)þæÖ§O�1ÂhÏž=Û᱋#g6óùóçõË/¿Ú·S§NjÖ¬™ÜÜÜtÿý÷ØoÆŒJKK“$Ý}÷Ýùs[¸p¡jÖ¬Y‚ôöBCCµqãÆ|—Y®^½ºÚµkgÌœ-OçÏŸ—¤b-ã�‘‘¡_|ÑhϘ1#Oñ7·=zhðàÁ�ß AmÛ¶M,ô>‹Å¢ÇÜhïÙ³Çá÷p–òΚó;’––¦ôôô�®Àìoÿ²Z�p3a° ʽ”ñ�r ¨’ìö§-Jß¾}‹ì3yòd½õÖ[’²÷¸=þ¼S ¥¹ýíoÓ¢E‹táÂEFFjÔ¨QêÒ¥‹"##`××ËËKñññºzõªüýýóïÊ•+úè£�ŒöìÙ³ -þJÙ{À>\/¿\º¿$^²d‰üüüJ5FY¸råŠ$kæñ®]»tæÌIÙ3¥sϨ.È�!CJ5“Úf³éðáÃ:zô¨Ž;¦3gÎèÒ¥K:~ü¸Ñ'çYÌV–Ysÿ‘ÀÅ‹Tê¼Ê‡·§Eãú´°k@iQvA¹×Mw––PÎaµZÕ²eKíß¿_™™™Ú³g�ºuëæÔsæÌQ||¼¾øâ ýüóÏš1c†f̘!){Ùç-Z¨E‹jÕª•:v쨆 Xü•¤}ûö³­V«:tèàPŽÎ�;—ª®.]º”øþ²”Sˆôöövøžÿþ÷¿Æñ½÷Þ+//¯"ïq¤Ï�²²²ôñÇkݺuÚ¾}»’’’Š=Fy)¯¬îîìš³7€ÊÁÍÍMÕýŠÿ¿…P À.¨8K÷:[XX˜±OoÎŒPgªV­švìØ¡õë×륗^ÒîÝ»�k§OŸÖéÓ§µeËã\‡4uêTõèÑ#ßñNŸ>m7iÒÄá…•QØ’ÔfóððPff¦233¾çìÙ³Æqq>ÇâX»v­¦M›¦ƒ–ÉøÎTžYsÏä¯3ʨý .Õ 5;P!µk×Îìn€áT6›­ÌßÃb±hÀ€0`€’’’ôùçŸkÏž=:pà€âã㕘˜¨¬¬,IÙK÷ìÙSO<ñ„^ýõ<3™=<þø äžIYÖ5jTnïU\~~~ºvíZ±–Ïýs/j í’˜0a‚bbbìÎ5jÔH�:uRóæÍÕ¢E 5nÜXÁÁÁÚ½{·ºvíêô Ž*ï¬93Ø¥ŠQæ¢ ‡¤¥¥9´'ìÑ£G�ãºuë:=GVV–‚±# IDATÔ°aCyzz*88Ø(ç¸|ù²¾ùæ}ðÁZ±b…ÒÒÒ´`Á…††jüøñvãåÎxìØ1‡s”v©ÝàààRÝ_YYYÊÊʲ+zçÇßß_çÏŸ·+,%$$Ä8vôs¼~ýºCý6mÚdWPíÕ«—¦OŸ®¶mÛæÛ¿¬ ù…}Žfd½|ù²¤ìâoI–Õ®ÅùSõà’>ýôÓ"û3fÌ0Ž{õꥀ€§çøòË/%e›W®\Ydÿ-Zûÿ&%%é×_µ»îåå¥~ýúí矾È1Ïž=«·ß~»©ËVÍÚý÷¿ÿ­S§NéêÕ«úøã� /44{ÿÖÜû#å®»îRPP�q_Q?› .hÅŠ��’’b÷íÛ·ÈþŽÎ,¾‘3>ÇòÊš[ÎÏ©aÆ¥ @ù²Ùlº|ù²ñ*�m@ù;wîœñJLL4^PV(Ã!Û·oתU« ¼k\wwwWttt�}ÿõ¯©V­ZjÚ´©víÚUâL3gÎTrrr‘ý>lçÌöÍmòäÉÆ¾µëׯׂ +==]ƒÖ•+WJ�¸lÔ©SÇ8Ι�}£ÿüç?ÆqN�· 9ûÿüóÏÆ^ÊEñööÖØ±c�öSO=¥'NØÿ‘Gqèg—;�”ý{X”Ï>ûÌ¡qoäŒÏ±¼²æ–SnÑ¢E©Çà|÷ß¿ñjذ¡ñ€²B9rdže{ýõWMœ8Q#GŽ4ÎEGG¸ìíÎ�;õÌ3Ï(%%EGŽÑ Aƒ.2Þèøñãúë_ÿª/¾ø"ßëñññ>>º÷Þ{%IõêÕÓ´iÓìfÈ´OmDD„ÂÂÂtîÜ9ýøã�JMM5® 4HË–-“»»{¾÷Λ7O“&M²;—””d,\”‚2…††ªQ£FòóóSJJŠ:dWÀõôôÔöíÛÕ±cÇ|ïÏÌÌÔàÁƒµfÍ㜯¯¯Z¶l©��%&&ê‡~0®èâÅ‹’¤;ï¼S_ýµÝxßÿ½^{í5»Ïæ?ÿù�‘©S§Nª]»¶Ý=zæ™gŠý—àiiiŠˆˆÐ±cÇ$eÏÀþÓŸþ¤àà`ÅÇÇëøñãFßÇ\o¼ñF¡ã%''+88X’´nÝ:=ðÀg9pà€ºté¢_~ùÅ8רQ#5oÞ\©©©Úµk—Ýg’#00P]»v•$µlÙRS¦L±»>jÔ(-Y²Ähûúú*22R!!!úý÷ßuèС—¬öòòR`` ªT©¢)S¦høðáùösÖçXYs¬[·N �$ýòË/ÆÏ­<ÅÇÇ+""Âh¯X±¢ÈYæ²]»vMË–-3Ú=ô�¼½½MLÊBûöíó=Ï?Çàfuã¿+ÇÅÅ)<<ÜÄD®‡p%õüóÏkúôéEö{öÙgÕ«W¯ Ÿ¹½óÎ;v§ÜÅÖE‹i„ ùï¤ìëôéÓ5yòäBßãË/¿ÔÝwßm´CCC�‚›#r2ÝrË-òóó³+ʤiÓ¦zë­·ìÞ7?6›M³fÍÒ¬Y³ ÜV’† ¢�{¼æWîÚµ«CKßhÔ¨QZ¼xq±ï;xð zõ꥓'Oæ{ÝÍÍMcÆŒÑk¯½f,w]˜¦M›êÈ‘#š2eŠ^xá…be9r䈆ªï¾û®ÐñG�­'Ÿ|2ßëß~û­Ý,ò¬¬,=õÔSzíµ×Šœ1)Ÿ|¸‚‚‚´mÛ6;vÌì8ÈeË–-JHHPëÖ­Õ½{w³ã€ „0€|ùúú*::Z6›MóæÍ3;þ�ÍfStt´ÜÜÜ´`Á³ã(‹Å¢ /‹…ÿ,Pzì  @cÆŒÑÒ¥K« &¨qãÆfGºé­Y³F»wïÖˆ#Ô¾}{³ãäqûí·+<<Üì@¥Ñ±cG³#p1€aHJJÒ /¼ ¤¤¤<×~øaY,ÕªUKÑÑѪ]»¶ ͵yóf-_¾\™™™vŸQBB‚(){o§©S§ªF�fÅt*www-^¼XwÝu—&L˜ O>ùÄìH7µääd=ùä“jÒ¤I…�•ñÂ)ð{³c.Á¶`ˆÙTB€axã�74þü|¯­]»Ö8 ÔôéÓË+V…1bÄ�={6Ïù””­^½Úh‡††***ª<£•©;î¸C111ŠŠŠÒÛo¿­GyÄìH7­‘#G*--MŸþ¹ÌŽ* 6›ƒ¡G� *´O`` ºuëVN‰*–¿ÿýïEîÏ¢N�:•S¢òóÄOhĈ7nœâããÍŽsSš:uª¶mÛ¦õë׫iÓ¦fÇ3€ahß¾}¾Ë?#[LLŒbbbÌŽašE‹éúõëêÙ³§¾úê+Õ­[×ìH7�wÞyG .Ô¶mÛÔ®];³ãp–¬,éâÏ´jKEü¡…0‡xxxhéÒ¥zúé§5fÌý¿ÿ÷ÿÌŽtÓhܸ±¾þúk5nÜØì(œ)+C:úÕíÆí%wO£™˜˜h[­ÖòË R£ Àannnš;w®Ù1n:;v4;€ò°òi»fÃeã�c›ÍVÞiTR¬3.‚0¸ Àà"(€‹  .ÂÃì�4ø%ÉÝÓhž˜ÑßÄ0*+ ÀAÕZ’‡—Ñ´Z­æePi±4¸ Àà"Xà4q5g*<ÈÝì@¥�•eÓOlF»~À6Y,nt˜>ÚñÁ¦]tb2•`X,n²Öp+º#K@€‹`0@%•x!ëÿ�sV«Õ”,* À•TÃ×.g¼ÖÐ8g³Ù è àf@Àé6­ÜÝhné)/öP:€L�e“˲k@iYÌp Àà"(€‹``€JêÄ“þÙãö›@…A ’²Öø¿Å\¬VSs¨8X\`p€ÀE°0Ài¶„ÍÔÁzõÌŽT ééé:päc£ýa‹þòòò*Ù`ëÖ9)psøÛßþfv€2CÀnnnª^½º]J‹0€ <==Õ½{w³cp1ì ঑””¤ÄÄD³c”f¸iŒ3F’d³ÙLNP6˜ .‚À&ÈÊÊÒÅ‹�v@@€,þ6@éP0AFF†¶nÝj´û÷ï////pL3A\`7�… êĉfÇ(3€Ü4‚ƒƒeµZÍŽPf(€‹  .ÂÃì×ѽ{w…‡‡›¨ÒÒÒtäÈ£}ÿý÷ËÇÇÇÄD\3€ÀEPA\{˜ÀÓÓSýû÷·k@iQ0�»»»"##ÍŽÀŰ4¸ Àà"(€‹``\¿~]7n4Ú}úô‘§§§‰‰¸ À&ÈÌÌÔ÷ßo´{öìI@©±4¸ Àà"(€‹  .‚0¸³\ÇgÎêÀ5³c•Búµ4ÅŸûÍh¯ßwR^Þ>&& rк�Ù Ba0¸ Àà"(€‹``“xyy›€ /éì©B¯'Ö´xÍjµ:9 T|€Làåí£þÃG›€  ¿^È5›­àâ0¸*–€A\`pì `›Í¦ëé׌¶§—·ÜÜÜLLÀP0ÁõôkúøÝEF»ÿ°Çååícb"®€0¨°|òe¡×ûDÔ-§$P9PVð­õ ½nµ6(§$P9XÌp Àà"Xà4=¼(Üû²Ù1€J!Mé:ê~Îh?àý½|¼½LL@%¿·ìß#ü¾²pf€‹  .‚% ÀM-ñLRáü ¼dµZ�šJ‹0¸©5ìñX‰ïµÙlNL¥ÇÐà"˜ `wwuna×€Ò¢ `wu¾#¢èŽP , .‚0¸–€7µŸ½Yx‡&=Ê'8`dddê¿{í?·n.wpó²Ö .¢ƒµ\r€3P0AFf¦v~g´ÛÝÞ„0€Rc`pÌ8ÍÏþ hjv  RHKKÓï>ßíÓÕÚÈÇÇÇÄD @§O›�ÀM¢nݺfG.€Àà"(€‹  .‚=€ œœ:uªÀk^³Z­e�¸" ÀPN:tèP¢ûl6›““WÅÐà"(€‹  .‚=€Làíí­Ñ£GÛµ ´(˜ÀÍÍM>>>fÇàb(@9ÙµkW�×BBBÊ1 pU€ œÔ«W¯ÀkuëÖ-Ç$ÀUYÌpf˜ --Mo¿ý¶Ñ~ä‘GØ@©Q8MíÚµY® pPZZš¼½½�vݺu)(5 À§™°~�¾>ov  Rȼ~M‡öž4Úûßý¯Ü=½ ¹p³ZóHG³#*öA\`pì @qå×syÎ%&&æ9gµZË>  R¢ @±é™óœkøLÞ~6›­Ò*#–€A@…•œœ¬O?ýÔì¦zê©§tß}÷)55Õì(    B:yò¤þüç?k×®]fG1ÕôéÓuúôiuíÚU—/_6;¨à(¨pŽ=ª»îºKwÞy§f̘avSùùùiãÆ�:}ú´úöí«k×®™ €“¸¹¹«zýÆÆËÍÍÝìH\`Êŋշo_Õ¯__o¿ý¶Ùq*„àà`½÷Þ{úâ‹/4vìX³ãp‹‡‡ê´êh¼,fGàø—FFVV–† ¢S§NiÆ òôô4;R…ѹsg=ù䓊‰‰Q—.]ôàƒš e ÷œÕyÎ-|ð’*+ À*ŒÅ‹kãÆ�zõÕWfvœ gÚ´izï½÷¥®]»*00ÐìHp2¿Z!yÎY­Öò¨´X@…ðË/¿èÙgŸ•ÕjÕèѣ͎S!hòäÉJNNÖôéÓÍŽ* À ôÁÈßß_nnn¾¬V«Nœ8Qê÷š?ýô“–-[¦   :´Äã˜aëÖ­JNNÎs~ùòåŠ��•···S߯jÕª€¨iÓ¦Š�ͶÁ°aÃŒpi¤¦¦êÝwß•¤2[6¹,éõ×_7Ú¹ ÀeåŽ;îPPP�’““õñÇkÈ�!eþž r  ÀT›6mÒ¥K—¬V­Z™§R°X,êÑ£‡–/_®Õ«WS@�“ò®æ£|þ�Ójµ–y@ù  ÀTkÖ¬‘$uéÒEnnn&§©<î¾ûn-_¾\ÿùÏ”žž.///³# jøÄ‡yOæs®¬¶/”? ÀLc³Ù´uëVIRÇŽMNS¹äÌ–¾råŠvïÞ­:”z̤¤$%''ëž„„„R¿/p‹Ùà<»víRpp°ÜÜÜì^9ËÃþüóÏš5k–î¾ûnÉËËK·Ür‹î½÷^íܹ³DcÆÅÅiüøñjÕª•ªW¯.///Õ«WOƒ ÒŽ;ÊëÑí>|XÑÑÑúÓŸþd}´råJeee)55UòòòÒ«¯¾jwQŸcn|ð�ªU«f×ÏÃÃCS§N-2ç÷߯gžyF½{÷V£F�T«V-y{{«jÕªjÖ¬™yä}òÉ'æ¯ûãããuáÂIRË–-‹}exÞ¤¤$͘1CíÚµSÍš5�öiÙ²¥<<²ÿ†ç‡~pJÖ7ÞxCÅzõïßß)ï œƒÀ.dË–-ùÎÞ[¹r¥š6mª_|Q×®]³»–””¤ÿûßúä“O´`Á�=Úá1ÝÝݵ|ùò<ŵӧOkÕªUZµj•¨¥K—ÊÇÇÇ OX¸«W¯jâĉZ²d‰233í®%''kÇŽÚ±c‡fÏž­uëÖ9<ãôã�?Öˆ#”’’bw>))I›6mÒ¦M›4oÞ>^’´zõj�7Îè[ØçøÎ;ïÈÛÛÛ8÷å—_æ)Rgff*66V3fÌ(0ç¦M›Ô¯_¿<Ï.Iééé:|ø°>¬wÞyG‘‘‘zã�7Ô¾}{‡>ƒ²²k×.ã8""¢X÷V†ç}óÍ75eÊ]½zÕî¼3¾#ÞÞÞªS§ŽNž<©ýû÷;36¨Ä(»�Ñ£GëüùóJJJ’”]„Ì1mÚ4ã¸jÕªjÕª•µwï^�Ùl6%%%©k×®Z»v­úõëWè¸Ï=÷œfÍšeWänÖ¬™5j¤Ë—/k÷îݺråŠöíÛ§‘#G}n,Šö9ÞØ÷©§žRFF†~ÿýw]¹rE6l�$eeešõÆÂw›6mT§Ny{{ëÂ… JHHPbb¢¤ì™³]ºtÑêÕ«‹ü ÊRNÁ¼zõêªQ£F±î­ Ï;~üxãø–[nQ«V­”‘‘á´ïHNøÇtjnPyQv!ÁÁÁzýõ×�vî"£$Y,EGGkâĉªV­š$)##C½{÷ÖÖ­[uýúu-Y²DsçÎuxÌ:uêhþüùêß¿¿ÜÜÜ$Iׯ_×›o¾©I“&éÚµkúâ‹/4aÂ-Y²ÄéÏœó~<ð€Qü­V­šfÏž­áÇË×××èwüøq�1B;vìPzzºFŽ©?ÿùϪY³f¾ã.Y²D/¼ð‚ÑîÑ£‡æÌ™£ÈÈHã\JJŠ&L˜ ÷ß?ß™¨9Šús Õ[o½%IJLL4 ÀEÉ]<ôôôÔŽ;òÿ÷¿ÿiÚ´iÚ¾}»ÒÒÒ4hÐ ÅÅÅ©aƽ‡³?~\RöWeyÞZµjéõ×_׃>(‹%{Õ}g}GêÖ­+ÉyûðŽ=Z (Ö= , @Bø&²bÅ 8Ð‡‡{ì1mݺURvÁÌQ!!!úꫯT¯^=»óžžžŠŠŠRhh¨úõ맬¬,ÅÆÆjÈ�!êܹs©ŸãFóæÍÓÿû_IÙ³,wîÜ©fÍšåéªO?ýT:tО={”””¤9sæè¥—^ÊÓ÷СC;v¬Ñ;v¬bbbŒ^ŽÀÀ@½÷Þ{’¤÷ßß™�Ul3gÎÔÙ³guæÌ=÷ÜsùÎ&½ë®»´eËuïÞ]Û·o×Õ«WµhÑ¢|?ƒòpâÄ IRíÚµ‹}oexÞ€€}ùå—y~�õÉ™5}ñâE§ä Vpp°SÆ@ÅpbÁýyOöy¹üƒÊ�¥è.pÌSüÍfŸ;wÎá1_}õÕ<ÅßÜúôé£#FíÙ³g;<¶£~ÿýwÍ™3Çh¯\¹2*Š›t IDATßâo///»âߺuëòí7cÆ ¥¥¥I’î¾ûî|‹¿¹-\¸°À™Äå¥AƒÚ¶m›<¨ÁƒØÏb±èñÇ7Ú¹—Í.oçÏŸ—¤-^žwΜ9…þ>–ö;’3Ã=--Mééé% À4^=Ö½©ñòòà?ËÎg öÏû²Z󼮃À7‰Q£Fx-g9hIJMMux̾}ûÙgòäÉÆrÆÛ·o×ùóç�Z(ݰaƒ~ÿýwIR—.]Ô¥K—"ïéÒ¥‹‚‚‚”œœ¬'NèèÑ£jܸ±qýÊ•+úè£�ŒöìÙ³ -þJ’¿¿¿†®—_®XIo³Ùtøða=zTÇŽÓ™3gtéÒ%cée)ûyÍ’óÞ>>>N¯¢=oa…é¥ùŽä^âüâÅ‹ *YP¦°XÜT»ºoÑ (ß$"""œ>fΞ¿…±Z­jÙ²¥öï߯ÌÌLíÙ³GݺusZ†Ï?ÿÜ8þå—_ œå|£¬¬,ãøôéÓvà}ûö³­V«:tèàИ�;w®ବ,}üñÇZ·n�¶oß®¤¤$³#(§ëíí]â1*òózyyÙ§4ßwwwãøÚµk%Î \à›DI–Øu–°°0íß¿_’tæÌ§Ž�{¼øøxÅÇÇ{Œ †§OŸ6Ž›4iâð8þþþÅ~og[»v­¦M›¦ƒšÅ!ÊÌÌTfff‰î¯lÏ[�’~GrÏØ÷óósz.PùPF™³Ùle6vI ‡9êÖ­«;ï¼ÓÇ_‹Ü3,+º &(&&Æî\£F�Ô©S'5oÞ\-Z´PãÆ�¬Ý»w«k×®&%ýƒŸŸŸ®]»V¬¥ÇsTÆç-HI¿#93Õ¥ŠSþ¡öƒºT/Ôì(Ì×_›�@%Ô®];³#ÀA€QbiiiíÝzôèQã¸nݺNÍ�{¼‰'jÞ¼yNóرcßgæ¼›6m²+†öêÕKÓ§OWÛ¶móí_Q Ûþþþ:þ¼]!Ó•åy322êWÒïÈåË—%eYn@Å’žž® 6í{ï2€R³˜•×§Ÿ~ZdŸƒË2{zzX +©Ž;Ç«W¯Vzzz©Çlݺµ±œó‘#GçÐ}›6m*õ{ß(÷^Å…ùàƒŒãüãÚ´i“Ó?ë²pë­·J’.\¸P¬û*ËónݺµÈ>¥ùŽœ={VRö>Â*›Í¦óçϯ²\1À̓0J,66¶È>3fÌ0Ž{õꥀ€§f¸ï¾ûŒ1OŸ>­Y³f9tßöíÛU¿~}…‡‡ëÔ©Sv×¼¼¼Ô¯_?£ýüóÏ9ÞÙ³gõöÛo;ÜA õKII1Žûöí[dÿëׯ—8“3…†f/œ{ßeGT–çuäw¢4ß‘œÏ­aÆÅ@!Î�;g÷JLLÌó@ÅD%¶}ûv­ZµªÀë±±±ÆuwwwEGGØ÷_ÿú—jÕª¥¦M›j×®]g¨Zµª]�ö…^Ðüùó ½çòåËzä‘GtêÔ)8p@»wïÎÓgòäɲX²¿ëׯׂ /==]ƒÖ•+WÎíééiÿöÛoùöÉÌÌÔœ9s¯Q£FÆñöíÛ‹ìÿÙgŸ94nYËÉýóÏ?;<Û9÷}RÙ<ïĉU½zu5oÞ<ßßGmܸQ}ôQ�׋óÉON¸E‹%Î@~î¿ÿ~»WÆ ó¼P1QF©Œ92ÏÒÇ¿þú«&Nœ¨‘#G碣£ \ÚvçÎ�zæ™g”’’¢#GŽhРAÅ*Ž7NC‡•”½dòرcÕ¯_?íÝ»7OßøøxuëÖM'Ož”$Õ©SG½{÷ÎÓ/""Bÿüç?�vTT”ÆŽ«äää<ãuêÔIŸþ¹Ãy%©^½zÆñ’%Kò\OLLÔ½÷Þ«;v84Þ AƒŒã… êÙgŸµ›%›ãàÁƒ:t¨^~ùeã\jjªÃ{Õ:[›6m$eï•[œ¿.Ëç]»v­^yå]¼xQ‡ÒðáÃΕŸaÆå)@÷;’ŸãÇ�ëÒ¥K’¤:”*#pn66œsÉÉÉš9s¦’’’$ecÀ€²X, Ô”)S¢Y³f)..NW®\ц $I>>>º÷Þ{%e)§M›fì‡+Innnù¾wDD„ÂÂÂtîÜ9ýøã�JMM5® 4HË–-“»»{¾÷Λ7O“&M²;—””¤   ‡Ÿ===]?ü°Ý3KRƒ .OOO;vÌn?_ooomÚ´I]ºtÉwÌÌÌL sæL­\¹²ÈçÙ½{w�K%ׯ__ãÆ�Ë÷ZPP�š4i¢#GŽhß¾}Å*—ÅóJRëÖ­óÜÿÍ7ß8\vwwWff¦ÜÜÜ´xñb=ùä“JMMÕþýûµÿ~»¾Ž~Gò“ó{تU+ÓŠ¿ âa hÒ½{÷" §5kÖT·nÝtÛm·ù×uëÖÕm·ÝVàõaÆéÈ‘#?~¼š6m*ùùùéöÛoפI“tèÐ!‡ [;vÔܹs¨ððp»·Å5tèP�|XS§NUëÖ­U½zuùúú*,,L�>ú¨¾ýö[-_¾Ün¦tQüüü´mÛ6­]»V÷ß¿êׯ/oooyyy©^½zºï¾û´råJ=zT={öÌsPP�ÚµkgwÎb±è•W^Ѿ}û¥fÍš©J•*òöö6ú?ñÄÚ¶m›öîÝ«íÛ·ëùçŸW›6mT£F yxxÈÃÃCÆ 3ÆìÓ§�üüü~®Õ®][ùË_ íÓ¯_?IÒ_|Q¬±Ëây¥ì=ŽÆ�¯€€µjÕJíÚµ3fÕ;bذarssÓ°aÃ4räH§|Gò³yófI2fH,�bʽ¼mjjª|||LLS±ìܹÓ(vµ4þðÝwßéŽ;î�»»»’““U£F ³#ÙéÛ·¯ºwﮨ¨(³£N�:¥úõëK’Ž=ª°°0Ó²°4Pr, €ŠŒ% @Ya è²ÇÐLÕ¶m[………)!!A›7oÖàÁƒÍŽdçܹsªS§ŽÙ1ìä,ÞµkWS‹¿×õá‡Úµ[µjeR`¦?~¼ÆŒ£wß}·B€/]º¤¸¸8EFFšÅ`³Ù´xñbIÒ¤I“LNpU!!!vm«ÕjN{0ÝðáämÛ¶éØ±cfÇ1lÚ´IÍš5«PKoÙ²E jݺµºwïnv¥`±Xb¼,þ³ @éñ/�Lçëë«èèhÙl6Í›7Ïì8’²gÚ¾üòË6l˜ÙQ 6›MÑÑÑrssÓ‚ ÌŽ ”<==Õ§Oãåééiv$.€% TcÆŒÑÒ¥K« &¨qãÆ¦æYµj•’““õøã�›š#·5kÖh÷îÝ1b„Ú·oovœ|Ý~ûí 7;7- À(TRR’^xá%%%å¹öðÃËb±¨V­ZŠŽŽVíÚµMHh®Í›7kùòåÊÌÌ´ûŒ4pà@IÙ{æL�:U5jÔ0+f¥àîî®Å‹ë®»îÒ„ ôÉ'Ÿ˜–åСC=z´–-[&oooÓrä–œœ¬'Ÿ|RMš4©0³¤@ÅC…zã�74þü|¯­]»Ö8 ÔôéÓË+V…1bÄ�={6Ïù””­^½Úh‡††***ª<£UJwÜq‡bbb¥·ß~[�<òˆ)9†ª‰'êž{î1åýó3räH¥¥¥éóÏ?W@@€Ùq ñÂ)ð{³c•ŽmÁ³#pìŒBõèÑCAAA…ö T·nÝÊ)QÅò÷¿ÿ]Ká_£��uêÔ©œU~O<ñ„FŒ¡qãÆ)>>Þ” +V¬Ptt´)ï�Ÿ©S§jÛ¶mZ¿~½š6mjvÎbË’~O–~OVbb¢²²²ÌNÀ0…jß¾}¾Ë?#[LLŒbbbÌŽár-Z¤ëׯ«gÏžúꫯT·nÝr}ÿŠTd}ç�w´páBmÛ¶MíÚµ3;gÊÌ�}!Iz÷ÝßôÌ3ÏÈÇÇÇäP*;f¨p<<<´téR 8PcÆŒ1;Ž©7n¬¯¿þšâ/àŠ.ý*]»*]»ªß~ûM'Ož4;àf³Ùlf‡TNñññŠˆˆøãÄÀ9R`ùÎØ*­…Cóœâ?Ëàênüw常8…‡‡›˜Èõ0\`p€ÀEPA\„‡ÙnJƒ_’â¶K’žüK3=þøã&à (˜¡j-É»Š$©zõêjР�É�¸–€Á `3X<¤Æí%Iö•§§§É�¸ À§‰«9SáAîfÇ*�[þïÿ®~AšvÑÔ(\K@€‹  .‚0¸ö0Az†M‹w§íGŽÈËËKV«Õ¼P*= À&ȲIc?½ölj¦M%I6›Í¤D\K@€‹  .‚0¸ Àà"(€‹ð0;ÀÍêÉ;=�ãÇßÛ/oooÓp€LRÝÇÍ8nР�|||LLÀ°4¸ Àà"Xà4[Âfê`½zfÇ*…ëׯëä™-Fû£�>’§§g!w ¢ûÛßþfv€0€<==Õ§O³cp1, .‚À@ $%%Ùµ�c«ÕZ¾a€ÿC(�1cÆxÍf³•cà€L`³ÙtõêU£]¥J¹¹¹™˜€+  `‚ëׯkãÆ�F»ÿþòòò21W`1;À9(€‹  .‚=€€X¸p¡]»wïÞ&%þ@(�àà`»¶Õj5'� K@€‹  .‚0¸ö8M÷îÝnv  RHKKÓ‘#ÿŸ½;�®ª>÷Çÿ$dR@T J Š¢_ BmµZUD¼P‡¶¨  ëL‹Úë@KѪܫV®µ Š ÞZ´*WEë\g¯ (6ˆÊ{ÎÞï³sŽ óäóìRãO<1 Ld+€2„À ÈÉɉþýûWÔ—ß4$ '''z÷î�t Ãh �!€2„0@†p`€lܸ1fÏž�ÿøÇ?ŽÜÜÜ™@ ¥¥¥ñòË/§Æ}úôQêM h€ ¡ �!€2„0@†PÈ ÀB Cä$€Ìñ÷w>�wÖ·H:4 Ö¯‹ùK¾I�~saäå$˜È$?û^§¤# ± C(d- �—_??÷â¤cMDñç‹ê4Áî嵞[TTTÇ4@c¦ ÐÈýjàu›_‡¹ååµ/�ŸÐB C(d÷HÀ†õëâ‘{nO��v~äå$˜ÈVd+€¹[§?_§ùÇuïÐ@I€ÆN ‘+üNÇ:Í/*êÔ@I€ÆN h€ ¡ �!´€ mŽÉ{'ºå¯J:4 ëbC|ØlIj|Rþ[Q�Ÿ—`" £Ì#é¤K·’N@c0@†PÈ ÀÂ=€`YðYqÝ^Ð|A­¦Õ9 ™I Ͳ³£÷�ûU�ù:s^ƒ·¼¼¼AŽ @Ó£ �€ÜÜœèÿÃï%È0–šd`€ ¡ �!Ü %%¥ñÚü�Rãïwë99ÍLd`€””–Æã/¼™÷Ü¿³0À·À'_·ìwLà c)ÀRÔ¾°Ž/(j�d.÷È ÀB hÒæ‹Ý£U«®IÇ€&aݺu±¢à©ñâ]Š‚‚‚|{tèÐ!éÐ`¬È ÀB hš´E‹Õi~III­çÕ1 $K€&í°Ãk°c———7ر !h �!€2„Ð ÈÏÏ�3Ï<³Ò ¾€�••­ZµJ:�a´€ÈVФ͙3§NóÛµk×@I y À4i;v¬Óü:4PHž0@Ö¯_“'ON�O;í´ÈÏÏO0� €P^^+V¬¨4¨/`ÒfÏ=÷ÔJ jiݺu±Ë.»¤Æ:tˆ‚‚‚™ ;餇À¤Í%¿­^þ*éÐ$”n\ï½±05~ûž¢Y®{ÐxM;óˆ¤#P Vd`€ ¡4«¿\²Õý ,¨q_QQQzðÝ€€˜uùà­îï|yÍûÊËËÓœ€í¥4@†PÈ À@£µtéÒxüñÇ“Ž‘¸K/½4N8á„X»vmÒQ€4ÊÊÊŽ–í:¥YYþYÔŸß4�ÒÂ… ã‡?üaÌ™3'é(‰3fL,^¼8Ž:ê¨XµjUÒq€4ÉÎÉ�½þqê‘�“›t$ (�·~‡~xrÈ!qõÕW''qÍ›7�™3gÆâÅ‹càÀ�±~ýú¤#�TNÒ6·|ùò8p`ìµ×^qç�w&§Ñ(,,ŒI“&Å�üã¸à‚ b„ IG à ;u«ûÿ4øà”€úP�²²²2dH,Z´(f̘¹¹Ú¡n®OŸ>qá…ÆÍ7ß}ûö�Áƒ' € Ò¼M»­î/**Ú1A¨- �Fc„ 1sæÌ¸îºë¢K—.IÇi”F�»ï¾{Œ1"–-[–t ÊËJcÅ’…©GyYiÒ‘€   4 ÿú׿âÊ+¯Œ¢¢¢>|xÒq­V­ZÅW\K—.�1cÆ$¨‡²Ò’XôÊìÔ£¬´$éH@КFå¶Ûn‹K.¹$Ö¯_ŸÚVPPãÆ�‹sÏ=·ÎÇ»ì²ËâÏþsìµ×^qÏ=÷ÄA”θi×ÐyÓ}}ÓéŠ+®ˆo¾ù&þð‡?4¹ÖÏsæÌ‰ã�?>–.]ZiûСCcòäÉi?ß¹çžcÆŒ‰ &ÄÈ‘#£S§Ni?ÇöúC‹‡£Û.»&š„uJclþÛ©ñå-7FA^³À6<81éülRÒ €&À `•¿ýío•Š“ëÖ­‹I“êþ?¹O?ýtÜxã�±bÅŠ˜7o^œþùéŠÙ vDÞt^ßtúôÓOcòäÉѶmÛ:th¢Y¶Ç“O>Y¥øqï½÷V¹ÞéвeË8õÔScÆ qóÍ7§ýø@Óe0�ÊØ±c£]»v±nݺ(..Žgžy&""ÊÊÊê|¬ììì­Ž›‘7�×7�n¼ñÆ())‰!C†4¹Õ¿Ç�eË–EqqqDDL�:5µ¯¼¼¼AÎyÆgÄŸÿüç¸ë®»âÚk¯�æÍ›7Èy€¦E˜F¥W¯^qÏ=÷DDijÏ>›*Pn�>}úÄ¿ÿû¿Çí·ß�:uŠñãǧ)eÃØyÓy}ÓeíÚµ©L§�vZ²a¶SÛ¶mã–[nI�7/7”ƒ>8Ú¶mK—.�Gy$† Òàç¿Æ½$êiìØ±±|ùò˜;wnôìÙ3é8ÛÔÔò¦Ã¬Y³båÊ•QXX½zõJ:N“‘��ÇsLD옂3°c-(^Uõ±`A•À–¬5mÚ´ˆˆèÛ·odee%œ¦i9òÈ#ãÞ{ï�§Ÿ~:6lØyyyIGÒ¤ó¯þ»êÆj¶5Ômg€¦KHLyyy<ùä“qÄG$œ¦é©X1½zõêxíµ×â°Ã«×ñŠ‹‹céÒ¥uzÍG}T¯sé¥tBæÌ™………‘••UéQqÏ/¾ø"®½öÚ8òÈ#£mÛ¶‘——{ì±Güä'?‰gŸ}v»Ž9oÞ¼¸øâ‹£W¯^±ë®»F^^^tìØ1N9å”Dîûúë¯Çˆ# –-[FË–-ãÀŒË/¿</^\§c½úê«Ñºuë*ï½â‘““—_~y­�wÚi§Õx¬ï|ç;ñþûï§æ>óÌ3ѦM›jçæææÆu×]×ày«“Î뻥÷ß?F�ßÿþ÷SŸÏÂÂÂèÛ·oŒ7.V®\Y«ãÌŸ??¾þú눈èÑ£Çveyë­·âòË/�Ä>ûìmÚ´‰üüühÙ²eì¿ÿþqæ™gÆôéÓý«øâââ¸úê«£wïÞ±ûî»§í»×£G�ÈÉÙôw<ÿüç?ë�ó¶Ûn‹îÝ»×éqüñÇ×û¼@úXœ�'žx¢Ú•v÷ßtíÚ5®»îºX¿~}¥}ÅÅÅñè£�ÆôéÓãÖ[o�áÇ×ú˜Íš5‹{ï½·JlñâÅ1eÊ”˜2eJœ|òÉq÷ÝwGAAAÞaÍV®\¿úÕ¯bòäÉUòÌ�;7æÎ�·ÜrKüô§?­õ1_xá…øê«¯jÜ_ZZ“&MбcÇÖêx�>úh�û–,Y¯¼òJtíÚ5""üñX¶lYµsKJJbæÌ™qå•W6hÞÍ5Äõ­°fÍš9rdÜqÇQZZZißÒ¥Kã™gž‰gžy&®¿þúx衇¶¹ªwΜ9©çÝ»w¯sžY³fÅ Aƒªd‰ˆØ°aC¼ÿþûñþûïÇ]wÝ={öŒÛn»-=ôÐ:Ÿ§>Æ�W]uU¬Y³¦Òöt|÷òóó£}ûö±páÂxûí·Óh¢€2|øðøê«¯¢¸¸8""¦N�šÚ7zôèÔó–-[F¯^½¢uëÖñÆoÄÂ… £¼¼<.ºè¢8ꨣb¿ýö«Õ1'O>’7Ñ IDATžœzÞ®]»èÙ³glܸ1æÎ�›š?eÊ”øüóÏcÆŒѲeËyß_~ùesÌ1ñÆo¤¶í¶Ûnѽ{÷hݺu¼õÖ[±`Á‚X»vm¥ÌÛ2lذøôÓOcÉ’%•¶¯^½:f̘u»/Ò_þò—˜:uj”••Ń>eee±×^{Å¡‡�:uŠ“N:)5÷ /ŒÕ«WÇ—_~O>ùd|õÕW±Ë.»Ä±ÇyyyñË_þ²ÁóVh¨ë±é ¯¿þzjÛ.»ì’ZQ¾hÑ¢xóÍ7£¼¼<Š‹‹ã¨£ŽŠ|0 Tã1çÏŸ»îºkì¶Ûnu|·Q¥}ÐAEûöí#???¾þúëøè£�bÁ‚±i¥pß¾}cêÔ©[Í”n_|qêù{ì½zõŠ’’’´}÷* ÀsçÎMkn iÊ*O²/*)YYY•ÆÙÙÙ1jÔ¨9rdì²Ë.±i5é€R÷L½ôÒKã†n¨õ1Û·oüããøã�OíÛ¸qcŒ?>.»ì²ÔŠã³Î:+î¸ãŽ´½· eeeѯ_¿˜={vDDÄõ×_çž{nì´ÓN±©è9uêÔ8ûì³cÕªU©×rÈ!ñòË/×ùœ ,ˆÎ�;GĦâÛ_|QçcôéÓ'ž{î¹(**ŠO>ù¤Æy+W®ŒÂÂÂX·nÝv_ÃúämÈë»qãÆèÛ·o¼ð ±©ð{ýõ×Çgœ‘:vDÄÿþïÿÆYg�•jk\XXï¾ûnì¾ûîÕwàÀ�1cÆŒ8à€â�wÞ©õ{­púé§§ Ù¹¹¹±lÙ²*Ô_|1F��º.;ï¼sÌ›7/u�–߽6mÚÄ-·ÜƒŽììM�÷ÓõÝxkÆ�W¥ø»¹ãŽ;.Î:ë¬Ôøú믯õ±k£¤¤$®»îºÔøê«¯Þêýa�9æ˜8õÔSÓša{�tÒI©U›Ó¦M«q^EËí6mÚDß¾}wH¶ y}W¬XQé^Ä÷ßµÅß yyy•Š«=ôP�s+½-Ç;uêO=õT¼ûî»[}?ÙÙÙqþùç§Æ›·±nhcÇŽÝêõªïw¯böºuëbÆ ÛhtŠ [T}UylI¸:çœsjÜWÑ:"bíÚµµ>æÀ�·9çŠ+®H=Ÿ={vª8—sæÌ‰Ï>û,""Z·n\pÁ6_3dÈ�´�¿>öÜsÏT1µ¦bæòåËã‰'žˆˆˆO<1š5k¶ÃòE4ìõ�1cF¬X±"""úöí[«âvß¾}£mÛ¶±i•ï‡~Xí¼Õ«7µ>-((¨U–Ú(//�÷Þ{/¦OŸãÆ�‹Ë.»,Î;80aB•óîµ)´×ç»·y ît¬š6- ¡Íûž§Ë–÷$­NQQQôèÑ#Þ~ûí(--�×_=Ž>úè´œ¿¢}pDÄO~ò“ÈËËÛækj3gG©h½páÂxùå—£wïÞ•öÿíoKÝÇ5‰öÏ y}Ÿ{î¹Ôóýë_5®NßRYYYêùâÅ‹cß}÷­2§¢›ŸŸ_«cní\�<òH<ôÐC1{öì(..®×ñÒ©6×¹>ß½ÍÿØ â3|{)7BÛÛ7ºtéo¿ývDDjEi:|þùç©çûí·_ÚŽ»£œtÒIqÁDYYYL›6­J¸¢5tÛ¶mÓ~ïäÚhÈë»ùç`þüù1þü:£¦‚lNNN”––Fiiévç{ðÁcôèÑñî»ïn÷1ƒíýîmÞ  yóæiÏUWÿÜsp¬ì¸wÒ1 Iظqcª{DDD¿~ý"777ÁD@mlùÿƒ��ÐTR^^ÞàÇ­¸ŸnS²eèÍßÏ7ß|“hû爆½¾õ)ÎFDtèÐ!9ä�j÷U,ëÒÎ|s—\rIüüç?¯TüÝgŸ}â¿øEÜpà 1sæÌøàƒâ›o¾‰§žzj»Î±£lïwoݺu©ç�¡ Ô^YYY,Y²$õؼsÀö²ø[bݺuµºÏêæ÷jíСCÚÎß®]»Ôó�?þ¸V¯Ù¸qcÚΟm -Z/½ôRvØañ׿þ5•5‰öÏ {}7ÿŒ92n¼ñƺ…ÛŠ-ZÄW_}U©ˆY[³fÍŠ›o¾95>öØcc̘1ñƒü ÚùIæ#"JJJj5o{¿{«V­ŠˆMÅ߯Ô6HFÓ[ŠÉvyüñÇ·9çÝwßMµ÷ÍÍÍ­±�¶=*Š¥3gάÕjÇY³f¥íüépÒI'¥V×V´|Þüù{ì?úÑ�ÉÖ�×·båsDÄÔ©ScÆ uXƒï|ç;ñõ×_×ùµ<ð@êù/~ñ‹˜5kVZ?³éòä“OnsN}¾{í¿‹ŠŠ¶+P½Í;ulþX°`Aµ€ÆBø[bâĉۜsõÕW§ž{ì±ÑªU«´�ÿðÃ�¶mÛFDÄâÅ‹ãþûïßêü¯¿þ:î»ï¾´�?ªkýÕW_¥Z 'Õþ9¢a¯ï 'œ�ú,,^¼8®½öÚZ½nöìÙ±×^{E·nÝbÑ¢EÕÎÙ{ï½SÇ­«eË–¥ž8p›ó“ZQ~ç�wnsN}¾{×®sçÎuÔèÄO¬öѹsçj�…ð·ÄìÙ³cÊ”)5îŸ8qbj³fÍbÔ¨Q5Îý�ÿø�hÓ¦MtíÚ5æÌ™S«óçççÇ\�_zé¥ñÉ'ŸÔ8ÿÌ3ÏŒ¥K—ÖêØ;ÒÏ~ö³ˆˆøì³ÏâÅ_ŒÿþïÿNµøMªýsDÃ^ß–-[Æï~÷»Ôø÷¿ÿ}üñ�ÜêkV­Zgžyf,Z´(Þyç�xíµ×ª�·Ï>ûDDÄ_|Qç{_V¼6bÓç{[þþ÷¿×úØ#GŽŒ]wÝ58à€³×ÖÌ™3ã¯ýk�ûëòÝ«NEøÿý¿ÿ·ý!€Œ¡ü-röÙgWiûûå—_ÆÈ‘#ãì³ÏNm5jT�-hŸ}öÙ¸üòËcÙ²eñÁÄ)§œRëÂÝÈ‘#〈ˆM¿>}úT)Ê}ýõ×qÚi§mµ`–¤ÍÛ@?øàƒ©öÏ{î¹gyä‘IFkÐë{ÑEÅСC#"¢¬¬,.¸à‚4hP¼ñÆUæÎŸ??Ž>úèX¸paDD´oß> Píq:è ˆØtŸÜº¶L;å”SRÏÿô§?Å•W^YiUp…wß}7†7ÝtSjÛÚµkk¼7ïƒ>øÃbùòåñÞ{ïÅgœQ§\Õ6lX•ŸE]¿{ÕùßÿýßX¹reDTn|{å$àÛjéÒ¥qÍ5×Dqqq•}§Ÿ~zdggGë֭㪫®ŠvíÚŵ×^óæÍ‹Õ«W§æ-_¾ùäˆˆèØ±cŒ=:Z´hQã9W­ZÇw\tïÞ=ºtéK–,‰¹sçÆÚµkSsN9唸Ío~Sã1¶\ ù駟ƲeËR퇷f§�vЇz(úöíÿú׿âÓO?�þýûÇ>ûìp@¬]»6æÌ™S)O…�>ú(õ^{ôèW]uU¥ýÿøÇ?â¶Ûn‹õë×WÚ^Óõª���C‡­±@¹¥Š6ÐÏ=÷\<ðÀ©{×n^®�†ÈÛ�×7bS+ã�7ÆÔ©S#"búôé1}úôèÔ©StëÖ-rssãã�?Žyóæ¥^“ŸŸùË_"??¿Úë°yÑòÍ7ßLµ„®�Ã;,Î>ûì¸ãŽ;¢¼¼<®¿þú7n\ôìÙ3Úµk+V¬ˆ÷Þ{¯ÚöÒsçÎ�æÍ›GëÖ­cç�wŽ«®º*Uè}ë­·*Í�7o^¼óÎ;õZa»bÅŠèß¿ôèÑ#öÙgŸíúîUgóü¡‡ºÝù€Ì‘U^^^žtˆo£ßýîw1f̘mλòÊ+ãØc�MÝ{vkîºë®J«³²²RÏo¿ýö¸ä’Kª-þEDäææÆ˜1câŠ+®Øê9žþùJ+]÷Þ{ïøøã�·™ms|ðA :4^}õÕçtíÚ5†^xaµû_yå•J+%?üðZ·£ÞRëÖ­ãË/¿¬õüÛo¿=†^iÛÿüÏÿÔêgT¡!ó6ÄõÝܽ÷Þ]tQµ«m7·Ï>ûÄÝwß½ÍëÒµk×øàƒ⪫®Šßÿþ÷[�»¥²²²¸ôÒKã¿þë¿¶¹½gÏžQPP/¿ür•}p@¼óÎ;ñðÃÇOúÓJû·ünmKNNN”––FVVVL˜0!.¼ðÂz÷ªóë_ÿ:n¸á†èÕ«Wµ«±w„ùóçG÷îÝSãûN…|ø6[¿~}Lž<95>í´Ójüƒ`Ç«ëYúõ ÔΖ¿Wž7o^tëÖ-ÁD™G è„ôë×o›«fwß}÷8úè£ã»ßýî6?ø:tˆï~÷»5î6lX|ðÁqñÅG×®]£   š7ox`\vÙeñÞ{ïÕªuÄGÄ 7Ü­[·Žnݺ¥Z ×Å~ûí/½ôRÜÿý1`À€hß¾}äååEÛ¶m£ÿþq÷ÝwǼyóâ¼ó΋=zTy}—.]*Ýÿ5"â„NˆÜÜÜ:gÉÊʪ²Êv[N?ýôèׯ_4kÖ,òòò⬳ΪSñ7¢aó6ÄõÝÜСCcáÂ…1qâÄ4hPtìØ1òòò"???:wî?ûÙÏbÊ”)ñÞ{ïÕêº 4("6Ñë*;;;þð‡?Ä›o¾#FŒˆý÷ß?vÞyçÈÏÏ�¶mÛFïÞ½ãW¿úU<õÔSñÆoÄìÙ³ãw¿û]tÐA±Ûn»ENNNäääİaÃRÇ<ñÄãâ‹/ŽV­ZE¯^½¢wïÞÕ®ÔßšaÆEVVV 6,Î>ûì´|÷ªóØc�EÄÿÝ›À à ¶ù àµk×FAAA‚i z¯¾új|ðÁѬY³Xºtiì¶ÛnIGªdàÀ�ѯ_¿1bDÒQ*Y´hQìµ×^ñá‡F—.]Éa0l?+€ q[²dIµÛ{õêUíö¢¢¢L™Ã à†çÀ@¢~ðƒD—.]â£�>ŠÇ{,N=õÔ¤#U²dÉ’hß¾}Ò1ª¨¸óQG•Xñ¨Ÿ¬¬¬Ø}÷Ý+�€Æ£]»vÕnWè;- �Ä]|ñÅqÏ=÷$d +W®ŒyóæEÏž=“ŽRIyyyL˜0!"".»ì²„ÓÛ+///N<ñÄÔ#///éH@PwÆgDÛ¶mã©§žŠ�?þ8é8)³fÍŠý÷߿ѵ4~â‰'â£�>Šï}ï{ѯ_¿¤ã�ˆ0�¸�vÚ)F�åååqã�7&'"6­²½é¦›bذaIG©¤¼¼î¸ã"777ÁD@&P€ ²àë²-6,¨4,**ÚaYغÒÒÒxë­·Rãþýû+õ¦ ¤ó­ª¼á¿:W–——ïÀ4ìhî �!€2„0@†PÈ À"'é@ú|ra‹Ê.z;™ $B2HÑn[4÷(*J$ÉÐ CX ��‚‚‚¤#F€´y¢Ë5ñnÇŽIÇ`s=”t¶¢K—.©ç3fÌH$ÃOúÓDÎ 4 - 2„0@†PÈî �€òòòظqcjœ››YYYõ:fqqq�_³`Á‚:Í/**ªó9€G 7nŒGy$5>þøã#//¯^Çüå/YßXÛT^^Þàç¶ŸÐB C(d`€ ¡ �!r’@züéOªók ÐI€¤(dˆÂÂÂ:¿¦¨¨(ýA€Äh �!€2„ФM¿~ý¢[·nIÇ€&aݺuñÁ¤Æ'žxb$˜È À ÈÉɉ>}úTÔ—ß4$`Ë0@:¸0@†PÈ ÀÂ=€PRR/¼ðBjüÃþ0rrüÓ ¨¿eH@III<û쳩qïÞ½€€zÓ C(d`€ ¡ �!€2„0@†PÈ À"'édŽ¿¿óy¼³¾EÒ1 Iذ~]Ì_òMjüð› #/¿ ÁD°ý~ö½NIGàÿg0@†° ¹yùqü°ó+�êK YYYZ>Ðh¾¨Nóì^^ë¹EEEuL@](•üjàu›_‡¹ååµ/Pwî �!€2„Рذ~]̺ÿ®ÔxÀ©¿pO` Þ€²aÃú¤#F h€ a0PÉ­ÓŸ¯Óüãºwh $Ô•0PIáw:Öi~QQ§J@]i �!€2„0@†p`Òæ˜¼w¢[þª¤c@“°.6ć͖¤Æ'å¿ùy &€z˜ÿFÒ àÛ«Û I' ‘± C(d- Ð,;;zîß¹Ò""|V\ûÉÍÔjZQQÑve éQH@nnNÿãC’Ž@#Ôù˜óÒ~Ìòòò´€ÆÉR€ ¡ �!€2„{$ ´´4ÞþðÓԸǾ{E³fÍLd`€l,)�Gfÿ#5Þ¿s{` Þ€ ùäïãk?y¿c.M’04"Eí ë0¹¨ÁrÐ4e'€ôPÈZ@�6_´è­ZuM:4 ëÖ­‹ÿH�ïrP$˜€ :tH:l7+€2„0@†PÈî @Æ[´hQ­ç–””Ôj^QQÑv¦€†£ @Æ;ì°ÃÒ~Ìòòò´êK yyy1tèÐJc€úRH@vvv&È0ÙI =€2„0@†p`€¬_¿>¦M›–ÿüç?�üüüd¶9sæÔzn»ví0 4,`€”——ÇÒ¥K+�h8;v¬õÜ:4`hXZ@d`€ ¡4i³çž{j•µ´nݺØe—]Rã:DAAA‚‰€L  @Ú\òðëÑê寒ŽMBéÆõñÞ Sã·ïy!šåæ'˜ sL;óˆ¤#@b´€È ÀB C¸0MÖê/—TÙ¶`Á‚*ÛŠŠŠ> 4 À4Y³.\e[çË«Î+//ßi y À ÈÊÊŽæmÚUÔ—0Ðh-]º4^ýõèß¿ÒQu饗ÆÇ÷ßì´ÓNIÇÒ$;'7Š?6é@†±Ôh”.\?üácΜ9IGIܘ1cbñâÅqÔQGŪU«’Ž4b À@£óá‡Æá‡‡rH\}õÕIÇI\óæÍcæÌ™±xñâ8p`¬_¿>éH@#¥ 4*Ë—/��Æ^{íwÞygÒq�˜4iRüÏÿüO\pÁIÇ)÷�²²²2dH,Z´(f̘¹¹¹IGjTúôé^xaÜ|óÍÑ·oß|xÒq­V­ZÅW\K—.�1cÆ$hd€Ùaxà�hÑ¢EdeeÕø(**ŠO>ù$é¨ÛtÙe—E«V­¢G�ñúë¯''#®íW\ß|óMüö·¿mr­ŸçÌ™………U®ùi§�Ö ç;÷Üs£E‹1a„X¸paƒœhš´€f‡™1cF¬^½z«s.\O>ùdœsÎ9;(UÝ=ýôÓqã�7FDļyóâüóÏ�W^y%ÑLMýÚ~úé§1yòähÛ¶m :4é8uöä“OÆÒ¥K«l¿÷Þ{câĉ‘ŸŸÞ–®-[¶ŒSO=5þüç?ÇÍ7ßãÆ�Këñëã-Žn»ìšt hÖm(�±ùo§Æ—·ÜyÍL�Aœ˜tÈ ?›”t`;(³Ãüö·¿��vÚ)V­ZUeß?þñ�X°`ADD”••Õë<“&MŠáÇǾûî/¼ðB´hÑ¢^ÇÛRvvöVÇIØQ×¶¡Üxã�QRRC† ir«#"†Ë–-‹ââ∈˜:ujj_yyyƒœóŒ3Έ?ÿùÏq×]wŵ×^Í›7o�óM‹0;L×®]câÄêÿذa©"e}Mš4)Ö¬Yÿüç?cΜ9ѯ_¿´·BŸ>}âßÿýßãöÛo�N�:ÅøñãÓzüí±£®mCX¢Œ—› IDAT»vmÜsÏ= Ö2¹¡µmÛ6n¹å–ÔxópC9øàƒ£mÛ¶±téÒxä‘GbÈ�! ~N ñK~é"¤Ùæ«\jÅëØ±ccùòå1wîÜèÙ³gƒœãÛbÖ¬Y±råÊ(,,Œ^½z%§ÉÈÎÎŽcŽ9&"vLÁÈ| ŠWU~,XPé4 V‰š6mZDDôíÛ7²²²NÓ´yä‘qï½÷ÆÓO?6lˆ¼¼¼¤#MXç_ýwå [Œê7@z)‰)//�'Ÿ|2""Ž8∄Ó4=+¦W¯^¯½öZvØaõ:^qqq,]º´N¯ùè£�êuN ½2¦ôœ9s¢°°0²²²*=*î‹ùÅ_ĵ×^Gyd´mÛ6òòòb�=öˆŸüä'ñì³Ïn×1çÍ›_|qôêÕ+vÝu×ÈËË‹Ž;Æ)§œÏ<óLƒ¼Ïõë×ÇÁœÊÒ¼yóøë_ÿ�=öX 80Ú¶mqÈ!‡¤ k«V­Šk®¹&<ðÀhÞ¼y´iÓ&Î?ÿüX½zu�Þïæxà�Øe—]*ÍËÉɉßþö· ò¾krÎ9çDvvv¥Ï=÷\jÿ±Ç[åýT¼ÖÇlÖ¬YÜ{ï½U K‹/Ž)S¦Ä”)Sâä“OŽ»ï¾; Òð7ùðÃãÕW_M�׬Y§Ÿ~z¬ZµªÒ¼W^y%ú÷ï·Ýv[üÇüG|òÉ'•^3~üøøæ›oâ�HmßÚû½ë®»"???µíùçŸ�•+WVšWZZ'NŒ«¯¾ºÞï³¶¦N�ºÝŽU«VÅ£�>'�tR�s^xá…øê«¯jÜ_ZZ“&MбcÇnó|�ñó´5<ð@�×vñâÅñÒK/¥îüøã�Ç7ß|SíÜ�7ÆŒ3ââ‹/®²oΜ9©çÝ»w¯S¾Y³fÅ Aƒ¢´´´Ê¾ 6Äûï¿ï¿ÿ~Üu×]ѳgϸí¶ÛâÐC­Ó9ÒaüøñqÕUWÅš5k*mOÇÏ6???Ú·o .Œ·ß~;�±€&*c ÀÇ�¯¾ú*Š‹‹#bSa°ÂèÑ£SÏ[¶l½zõŠÖ­[Ço¼ .Œòòò¸è¢‹â¨£ŽŠýöÛ¯VÇœ»wï7ÝtS¼òÊ+1}úôX³fMªø›��|p”””Äk¯½eeeqÞyç¥^»çž{Æ�/½ôR¬X±"¦N�×^{mì½÷ÞÛ|¿[/½ôÒ())‰+VÄêÕ«cÆŒQVV––÷Y[“'OŽ)S¦T:ïÓO?�*´þèG?Š=÷ܳÚ×¶hÑ"~ýë_oõøÃ† ‹O?ý4–,YRiûæï¹¶èÆøyÚšI“&ŤI“¢´´4{ì±X±bEìºë®qÌ1ÇDûöíãÔSOMÍ9rdlذ!¾þúë˜5kV¬\¹2Z·nGuTÄ\Pí9æÏŸ»îºkì¶ÛnuÊwÇwT*þtÐAѾ}ûÈÏÏ�¯¿þ:>úè£X°`ADlZ)Ü·oߘ:uj 4¨ŽW¢~6/|ï±ÇÑ«W¯())IÛ϶¢^»ví⥗^ŠŽ;VÚž››#FŒˆ½÷Þ; eee1qâÄ2dHôéÓ§Þï£&W_}uôíÛ7"6»�;î¸Tx�=öˆI“&ÅÎ;ï ˆœœœ())‰?ü°Á2Q{�íó´¥sÎ9'n½õÖ())‰»ï¾;®¼òÊjç=üðéU¹[~ߪSÑš¼¦UÚ[sÍ5×Ä矟}öYüæ7¿©våìá‡O<ñDôë×/fÏžkÖ¬‰Ûo¿=þó?ÿ³ÎçÛ^­ZµŠçŸ>ößÿJÛÓõ³­X9½|ùòzg-,,ŒÂÂÂzhš>¹õÄÊŽÛúõ�SvÒv„“O>¹ÆbT—.]RÏ·ló»5ãÆ�«R¬ÛÜqÇg�uVj|ýõ××úØu•ŸŸçž{n¥m›¯ÐüÅ/~Q©8–ŸŸŸÖ¢õט>OÕéÑ£GrÈ!1qâÄÿ껢­õÞ{ï?øÁ¶yÜŠû+oOKëN�:ÅSO=ï¾ûn¥vÔ[ÊÎÎŽóÏ??5~ýõ×ë|®ú;vl•âïæêû³Ýi§�""bݺu±aÆí E…-*?ŠŠ*=€¦á[Q®©ÅqD¤ÚAGljs\[Üæœ+®¸"õ|öìÙ©bWº}ï{ß«ô>""µÚ7"ª]MX±_Á¨qhLŸ§šT|�>ùä“xê©§ªìÿüóÏãùçŸ�ˆMm‰kcõêÕ5¶¯«òòòxï½÷búôé1nܸ¸ì²Ëâ¼ó΋ &T9玲µât…úül+ Àþ ø–´€Þ¼�xºly�ÏêE�=âí·ßŽÒÒÒxýõ×ãè£�N{–½öÚ«^ûI^cú<ÕdðàÁqñÅÇŠ+bâĉUÎýÐCEYYYDÔ®ýsÄÿcóóó·;WYYY<òÈ#ñÐCÅìÙ³£¸¸x»�Õòòò¶9§>?ÛfÍš¥žWÜKh6””ÆÿãÓÔøÄCöмœf[yÀ¶}+ ÀÛÓ^6]ºtéo¿ývDD|öÙg rŽm­žL×êJ’·#>O5iÞ¼yœzê©1~üøxä‘GâË/¿Œ6mÚ¤öO›6-""8à€øîw¿[«cæääDiiiê¾ÁuõàƒÆèÑ£ãÝwßÝ®×7&Ûû³Ý¼sAóæÍÓž«®þ¹çàXÙqï¤c@“°~ýúxjÕäÔ¸ÝwN«×ÄM_ïÞ½“Žd€oE è$Õt¯TØIžÎ>ûìˆØÔ:|òäÿ+Z|öÙg1gΜˆ¨ýê߈ÿ+XÖ¥ýz…ÿ�½;�Ó©þÿ?þœÕndl“ÁØE¢&"IÙ÷%T¢Ù*Q–´’D){v‘‰’I¶±Æ0‘Û0cö¹~øÍùÎ5sÍ~Íœ™Ëã~»]·ÛyŸó>ç¼®s3ãz�÷ë=räHuëÖÍ*ù[¹re½ôÒKš:uª6oÞ¬Ó§OëÖ­[6KVç6™ýl###�åÜ�æº/Fg‡ÈÈÈt�¬=s挱ìíí��!!ƒâãã/WWóÿä•û©~ýúzä‘GôçŸjáÂ…1b„$iíÚµF3# àÂ… ëÆ�VIÌôزe‹f̘a´Ÿ}öYMš4I 6´Ù?q™äœ›®~™ýlÃÂÂ$ÝKþ¦§Ü4plŒÎ¤ü1Í>:~ü¸$ÉÍÍ-ÅäT^—0ïk^$yxxhíÚµf‡“§î§„QÀÇ�×�$IkÖ¬‘$Õ«WOÕªUK÷±|ðAIÒÍ›73Ã÷ßo,¿ôÒKÚ²eK®ý÷õÓO?¥Ù'+ŸíåË—%Ý›G€p&-X° Í>“'O6–Ÿ}öYyxxdgH¦9{ö¬Ù!XI<¢7¥‘¥6lÐ¥K—t÷î]­[·.§BKQ^ºŸzõêe”^¼x±BBBôÛo¿IÊØè_IªTéÞ\±AAAÚïúõëÆrÛ¶mÓì“¡ãÛÓÂ… Óì“•Ï6áÚU¬X1ãÁ0Í•+W’½.\¸�ìE8“üýýµ|ùò·/X°ÀØîââ¢ñãǧØ÷“O>Q‰%T½zucÕÜÀÍÍÍX¾uë–Í>qqqúøã�s*¤t)[¶¬±œ0ª2©ŸþÙXNHBšÉž÷Sv+R¤ˆ‘è]¾|¹Ö¬Y£¸¸8999©{÷î:VåÊ•%Iÿý÷_†F’'ì'Ý»viÙ¶m[†â5j”Š+¦‡zHÌоImÞ¼Y?üðCŠÛ³úÙ&$€kÖ¬™ù ä¸N�:%{U¬X1Ù 2Šp¼òÊ+Ú²e‹Õºk×®iÔ¨QF™\I?~|Š%]wíÚ¥·ß~[ׯ_×éÓ§Õ³gÏ\SR¹\¹rÆòüùó“m¿pá‚Ú·o¯�;wædXizê©§Œå3fèèÑ£FÛb±húôéFÉb'''uèÐ!Çc´Å÷SN8p $éÆ�ÆèU???U¨P!CÇyä‘G$Ý›'7#O¶÷ìÙÓXþòË/õÎ;ïX� N >}úè³Ï>3ÖEDD¤:/ïªU«4}út…††êäÉ“zñÅÓWJú÷ïŸ, m�ÏöŸþÑ�;w$I�5Êrœ ïsM»KÞ¢÷ß_ÁÁÁɶõíÛWÎÎÎòôôÔ¸qãäåå¥>ø@ÇŽSxx¸Ñ/44ÔÙX®\9M˜0A… Nñœaaazî¹çôðëJ•*ºr劎9¢ˆˆ£OÏž=õî»ï¦xŒ¤£ /^¼¨ëׯ«dÉ’)î3}útíß¿_!!!’¤_~ùE½zõRŸ>}Ô¦M}ðÁÚ°aƒÑèСªV­š&L˜ óçÏkæÌ™)î›X·n݌ѽï½÷žæÏŸ¯Zµj©@�ºxñ¢:$‹ÅbµOâkèåå¥ &¨X±b’¤“'OjÚ´i KöžþøãcyáÂ…ÚµkW²>>ø Þ{ï=ãx)éÑ£‡¦L™¢sçÎéúõëªW¯ž4h R¥Jéøñãú矌¾¯¾úª|}}S<Öü¡9sæ(**Êj}J÷Mggg›×45Y¹ŸrêÚ&xôÑGU§N9rDW®\‘¤ �þ•¬“–ýõWºGc7jÔH¯¼òŠæÏŸ/‹Å¢�>úH3gΔ¯¯¯¼¼¼tûöm�ú¨\\\¢xÀžafYÛ¶mÕªU+ :ÔìP¬\ºtIåË——$�9sFUªT1%F™­µk×íN�:ÉÝÝÝĈ@Nb0îWŒÎ~30€œ•0ZÝÕÕ5YÉäŒhذ¡ªT©¢³gÏjëÖ­6G£›éÊ•+*[¶¬Ùa$³bÅ IÒÓO?mZò@Ö¸»»g¨Zp,‰KP¯^="àhHȰøøx­^½ZÒ½¤§§g–Ž7bÄ 2D‹/ÎU à;wîèØ±còõõ5;+‹EóæÍ“$�3Æähd†­it|||r>Çaæ`wïÞ•¿¿¿‚‚‚¬Ö¯]»VW®\‘$½úê«Y>Ï‹/¾¨’%KjÇŽ:wî\–�g/[¶lQ�5r]IãíÛ·ëìÙ³ª_¿¾Zµjev8 ! À¦ˆˆ5hÐ@O?ý´ªU«¦C‡I’ÂÃÃõî»ïJ’ªU«¦víÚeù\ Ðøñãe±X4mÚ´,Ï,‹>ûì3õïßßìP¬X,�?^NNNš={¶Ùá€\†Ðl:vì˜$I… Rhh¨nܸ¡Þ½{ëäÉ“’¤�>úHNNNv9ß�!C´hÑ"-X°@#GŽTÕªUírÜÌZ¾|¹BBBôÚk¯™GR+W®ÔÁƒ5`À=þøãf‡“LݺuU«V-³Ãò‹Å¢ÐÐP£íááa·Ÿ©î_$€S¬)S¦(888Ù¶¾}ûÊÙÙY%J”ÐøñãU¦L"D^’×î§òåËËÙÙYñññ Õ| ?ÿüS·nÝ’$½òÊ+êÔ©“ÝÎçââ¢yóæ©qãÆ9r¤6nÜh·cgÔÉ“'5xð`-]ºTùòå3-ޤBBB4|øpU«V-׌”�yQQQš9s¦Ñ~ûí·•?~#àH§bΜ9úâ‹/ln[µj•±ìéé©I“&åTXÈ£òÚýTºti½üòËš?¾bbbäïïolkÙ²¥>ÿüs»ŸóÑGÕŒ34tèP-\¸P/¿ü²ÝÏ‘}úôѨQ£ôüóÏ›rþ”¼òÊ+ŠŒŒÔ/¿ü"³Ã±éá)›$ÏÃf‡qß³Ìîmv“0p*žyæ•,Y2Õ>žžžjÙ²eE„¼,/ÞOsæÌÑ»ï¾+///åÏŸ_¾¾¾š={¶¶nݪ dË9_ýu 0@o¼ñ†Ž?ž-çH˲eË4~üxSÎ�’÷Þ{O;vìК5kT½zu³Ã¹#€Sñøã�Û,× dF^¼Ÿ\]]5yòdMž<9GÏûÕW_)&&F­[·ÖÞ½{åíí�£çÏm Öo¾ùF_~ù¥vìØ!???³Ã¹ `¹Ž«««-Z¤7ß|SC† ÑúõëÍÉTU«VÕ¾}ûTµjU³CAnu;ĪyáÂ…d]|||r&€©HÈ•œœœ4uêT³ÃÈš4ibvÈí–Ž°jVLÒ–$‹Å’SÑLÄÀà H€ƒ  ‚08Àà \ÍdÑ 3¬šç'w0)d„«««Z·nmÕ€¬â›Fòº¢%­š>>>æÄ� quu•ŸŸŸÙap0”€A% vs¬øûªUÒÅì00iðÿ-O5/@Ž# `‚˜˜ùûûí-ZÈÍÍÍĈ8À&ˆ‹‹Ó¾}ûŒv³fÍHÈ2À8ˆ 7ãm¬¼`ÕôññÉ‘Xæ  €ƒ¨øyXò•ŸW´jZ,–Š`g³Ø `p$€ÀA�A„«Ùû8?¼pò•oÍù@¦! €ƒðyÀFaŸ�`J@€ƒ`0€ òçϯ‰'šÃ`pŒØÍö*ï+ \9³Ã@b«W›ò˜.]º˜€,`08Àà ( `‚èèh­[·ÎhwèÐAîîîv=Gppp†÷¹páB¦Îåãã“©ýØ `5dÈ�;—ÅbɱsH% ÀA�A `p$€ÀA¸š²Ç—_~™á}Ú´i“ ‘È)$€T©R¥2¼����ý�c( ‚08J@ì¦U«VªU«–ÙayBLLŒŠ/n´[´h!777#àH˜ÀÍÍM­[·6; †Ðà H€ƒ  ‚9€L«ƒí ÈÕ•?Íd ß2˜ 66V?þø£Ñöõõ% Ë( ‚08Àà H€ƒ  ‚08Àà H€ƒ  ÂÕìŽcÛ‰Ë:UØì0€il·XRO@ZH˜ &:JÛWk´[ué#7÷|&FÀ�0�ÅbQø�ÛVmÈ*g³Ø `p$€ÀA00€ÌÞ¸;Í>Ï=ì�‘¸Ÿ‘°ƒR–K³��O…ˆÀýŒÐà H€ƒ 4Ànžq?¡ZùÂÌÈ"­3.WŒvç|‡•?Ÿ»‰€qü�Ù¤¬VG³#`ŒÁ`8;;©FEo«6d `¸»¹©G›'ÌÜG.üœz‡BRÝìããc·X2`‹& IDATdÀ÷�ŠÏ¼š¥ý-‹�"��˜ `p”€0A\\œÎ^1ÚU+xÉÅÅÅĈ8À&ˆ‰�Óò­¿í·t" Ë( ‚À÷�óÛæ¦Þ¡Ú39€lEà>àS¶T|r$Ù‹Ðà H€ƒ  ‚9€vó_á‡åáQÝì0€¢üùó›¸ï™€Lðöö6;�Ë�ä‹Å¢øøxY,³CüNNNrvv–“““Ù¡ÀH²ULLŒBCCª˜˜’¿� 999ÉÍÍMòðð�›››Ù!!“H@.uéÒ¥T·ÇÆÆ¦¸ÍÇÇÇÎÑd\TT”®^½ªððp³C¤Áb±(::Z!!! Q¡B…TºtiåË—ÏìÐ�A$€Làîî®®]»Zµ ©F�ez_³GÙÆÄÄèâÅ‹©&©¹Wxx¸.^¼(Fç1$€Làìì¬råÊ™d‹¸¸8]ºt‰ä/äq±±±ºté’*T¨ ³ÃA:‘ØÕ•+WeµÎÙÙYE‹UÑ¢Eåææ&ggg“¢$¯˜˜ݾ}[·oßV||¼±-**JW®\‘···‰"#Hì&..NwîܱZçîî® *ÈÕ•¯¤ ·rwwW¡B…T²dI*::ÚØvçÎÅÅÅ1 8�à+€Ý„‡‡[µ�œœT®\9’¿�G¸ººª\¹rrrr²ZŸôç;r/~㘠::ZëÖ­3Ú:t�»»»‰€}$ý[°`Aþ¿yŒ»»» ,h•ô SÑ¢EMŒ éEÀñññ ²j@R¿ÿþ{ªÛ½¼¼r(’ôK:B¬H‘"&EÈŠÂ… 'K#o  ¹T¹råRÝîíí�C‘¤�ÅbQ\\œÕº ˜ + ,hÕŽ‹‹“ÅbIV¹sìÂVu#"d•­ŸßT±ËHìÂb±$[ÇH1È›lýü¶õs¹% vS¦L™\Wz È­"##U´hQ£ííí­üùó›GÀ`pŒØÍÈ5Êcß ³Ãò„¸˜(�<h´�.þM.nùLŒp¿Yùr³CdF€ƒ  ‚Ð8¸ðkW’­»páB²u>>>Ù [‘0…“ò{xZµÈ.[Þîžl]Å·“÷³X,9 È-‚‚‚ôï¿ÿê±Ç3;˜ 66V»wï–ŸŸŸ (`v8ìˆ0€ \ÜÜU¹Y{³ÃÜG,‹öï߯M›6iÓ¦M:|ø°úõëG8œ9sF .Ô¶mÛtéÒ%………©téÒòóóÓk¯½¦fÍš™×Å‹µcÇmß¾]Û·o×Í›7uþüy*Á†9€¹ÒÛo¿-'''›¯råÊéêÕ«é>Ö´iÓRrwwwåÏŸ_Í›7WíÚµÍÇ!………ièС²X,jÙ²¥œ�ÿ/S©R%­Y³F^^^òööÖ�!Cr4¶‚ ÊÍÍM•*URŸ>}rôÜȘ+W®˜ `¹Î™3gÔ¸qc=öØcš}úè¹çž3;8Àr�øøxõîÝ[—.]Ò¦M›˜‹$‰fÍšiøðáš1c†š7o®îÝ»›òˆB%¼’­óññÉù@°“š5kêĉF;&&F]ºtÑÁƒU®\¹t#a>ÖÄó²Yqüøq³C@©®]»êÚµkf‡A h¹Æ¼yó´yóf}øá‡ªR¥ŠÙáäJ&LPñâÅ5tèP]¿~ÝìpL1zôhuíÚÕj]pp°:tè ˆˆˆtÃÝÝ]’„» 1;äAqqqêÛ·¯öíÛgv(p $€ä W¯^Õ;ï¼# <Øìpr-�;V!!!š4i’Ùá˜ÂÉÉIK–,Ñ£�ZOipèÐ! 0À¤¨p¿‹ŒŒ4;ä1·oßV×®]µjÕ*³C�ƒ¡4²Ýï¿ÿ®:${ú©OŸ>Zºt©IQ!·;v¬nݺ¥éÓ§ç¹§.sú4h�&Mš¤yóæiÔ¨QªP¡‚ÝÏ‘YÓ ¯Q­¢”MÒ#2:Nç;j´ß.£üîÌÁÈA«˜�µ®KÌŽ�Ç(P@ëׯ×c�=¦‹/ë¿ûî;Õ­[Wo¾ùf¦�=mÚ4�3&Ùú~ýúiñâÅFûÖ­[zà�lc„ š8q¢ÍmÑÑÑÚ¾}»V®\©€€8p@Ò½dЂ ´~ýz(,,L+VT¿~ý4|øpåË—Ï8†ÅbÑÖ­[µdÉ8p@—/_V‰%Ô¾}{½ÿþû*^¼x†Þ³ÅbÑÊ•+µ`Áýù矺{÷®Ê”)£¦M›ê•W^I÷üÊ‹Ek×®ÕêÕ«õÇèêÕ«rssSÙ²eÕªU+ 0 Íy—#""ôÃ?hÉ’%?~¼š4i¢ˆˆM�:U‹/Vpp°ž|òI}ûí·)^ÿôÚ½{·Ö¬Y£_~ùEÿþû¯ñ™úøø¨U«Vêß¿¿*W®lsßÅ‹ëÅ_´¹mÒ¤IÉp$½2#<<\‹/ÖúõëuâÄ …„„ÈÃÃC•*URÛ¶m5hÐ •(Q"Kç°%&&Fß}÷�Ö®]«Ã‡+88X TùòåÕ¦M 80Íï)ÿûï?­^½Z+W®T›6môöÛoK’þþûo-\¸P;vìÐ¥K—äîî®zõêiܸqzê©§¬ŽqóæM-]ºT+W®ÔéÓ§¦5jhÈ�!zùå—Óõ^²z £££µk×.­_¿^›6mÒž={äíí-‹Å¢~øA ,СC‡ªªU«ªÿþ6l˜\]­SrÁÁÁjÔ¨‘Î�;gµ~É’%Z²äÿþ6®[·®>lÕÇb±hÅŠZ²d‰:¤ëׯ+..Ϊ�­ýpÿ`0²ÝO?ýd³ôÅ·ß~«¨¨("BnsñâE-]ºT%K–TŸ>}Ì'Ãrú/R¤ˆzõê¥èèh͘1ÃîÇÈ+Ê”)£M›6©H‘"VëÇŽ«mÛ¶eú¸ýúõÓöíÛÕ²eËTû-ZTGŽѦM›Ô¬Y³Tû†‡‡kéÒ¥êÖ­›J–,©¶mÛjéÒ¥Æ÷J?ýô“ªW¯®Q£Fé×_UHHˆ"""tâÄ ½õÖ[êÞ½»‘à9}ú´žzê)=÷ÜsZ¹r¥ÎŸ?¯¨¨(ýûᅳ3gŽ7n¬ÐÐÐt¿ßˆˆuîÜY=zôÐŽ;tóæMEEE)00PK—.5’À±±±©çôéÓòóóӻᆱ֭[ë‡~�¿¿¿Þzë-iæÌ™òõõÕäÉ““í­M›6©_¿~*]º´z÷î­íÛ·+..NaaajÙ²¥&L˜ óçÏ+<<\[¶lѬY³Òý“:þ¼Z´h¡¦M›ê¯¿þÒØ±cµ}ûvmß¾]ýúõÓ±cÇ4eÊÕ¨QCÇWttt²ctìØQÆ+±!C†Xm ÐG}”éx%ióæÍª^½º6oÞ¬¡C‡jëÖ­Úºu«ºté¢ýû÷küøñªQ£†6nܘ¥ó$µoß>Õ®][sçÎUŸ>}´qãFmß¾]Ô‰'ôᇪV­Zš?~²}Ïœ9£?üP�5RÙ²e5tèPíÞ½[‘‘‘Š��Õ˜1cT¿~}}ñÅÆC7nÜ�¿¿¿ž~úi«‘±Ë–-SµjÕ4|øpíÙ³Çø7ò×_iÀ€zç�w²õ®]»V=zôPÉ’%õÌ3ÏhΜ9ºxñ¢bccuéÒ%=ýôÓêܹ³¶nݪ«W¯*22RG�Õ¨Q£Ô«W¯dÇ{à�´iÓ&èÁ4ÖwèÐÁê¾Y·n�Õ~QQQjÛ¶­zöì©[·néË/¿ÔÁƒµk×.�=Ú(o�û `d»ÁƒkèСêÞ½»ºwïnµÍb±Øý|K–,Q¡B…äëë«°°0»ÿ~–]×vÚ´iŠ��UïÞ½óÜè_)çïqIÆ“…ß|ó�ÂÃóåyAíÚµµ|ùr¹¸ü_U¥øøxõèÑCgΜÉÔ1K–,©–-[êûï¿—““SŠýœ��U»vm=÷Üs6“_‰ëÚµkªY³f²yŠ.\¨çŸ^Mš4ѲeËôçŸjÿþýêÖ­›ÑgýúõZ¾|¹víÚ%???U­ZU[·nÕ±cÇ´{÷nõïßßè{òäI}òÉ'é~¿ýúõÓ?ü é^R½téÒÉú,X°@½{÷NñGŽÑOýôS>|X*TPll¬fÍš¥æÍ›[Å%Ý›®­F�Æ+±%JXm«Q£†¼¼¼2¯to°IûöíÕ¹sgmÙ²EmÛ¶UíÚµÕ¼ysÍ™3Gï¾û®¤{פsçÎYz"1µhÑBµjÕÒîݻյkWÕ©SGMš4ÑG}¤¹sçJº÷€ÃÀ�õÍ7ßXíâÄ +VLÅ‹W||¼±>""BíÚµÓÒ¥K5zôhmÛ¶MÇŽÓºu댑Äñññ4h�nß¾­áÇëí·ßÖ›o¾©={öèøñãZ½zµÕuÿä“OtòäÉl»†žžž9r¤~øa«õòóó“$­ZµJ‡Ö† T¯^=£ÏªU«´råJ«ýÜÜÜŒ{#ñ÷âIï+«ý&Nœh$²wîÜ©.]ºÈ××WO>ù¤¦N�ªõë×ËÙ™ôßýÎÉ’]Ù ‰AGDD(þüv=~óæÍµsçNIÒ¶mÛÔªU+»ÿ~–×6""B¥K—Ö�;wô矪~ýúY>¦Ù²û—îýñS¦L…„„èÛo¿Mõ�ïìtüøq«?xŽ}ÖNµÊQH�Èè8}¼.Q èµ) ¸¿QBlll²¤kÕªU“•>ͬ‰'jÒ¤IZ´h‘UÂS’¾øâ 6Ìj]Íš5µoß¾d#„¥ÿ+ß›Z©fé^BôêÕ«’R/ágõ>S;n—.]´fÍI’«««*W®¬µkתf͚ɎY¯^==zïÿ�ÞÞÞ תU«Ô¢E‹dÇ}þùçµyófIÒƒ>¨   › ìfÍšé—_~‘$U®\YAAA3fŒFŒa”Ž>wîœÆ�¯åË—[í;wî\ 4Èj]XX˜êÕ«§óçÏ+ @U«Vµù¾›4i¢ß~ûMÒ½äùŸþ)___«>k×®UçÎ��vóæÍU¡BÍŸ?_...Ú²e‹† fŒ®S§ŽÍs¥äâÅ‹jР�BBBT¯^=8pÀêá�ÄN�:¥ºuëUþÚµk§uëÖ¥øP@âõiÝWñ÷ßëÑGU¹råtòäI›ÿžnß¾-///ݽ{W’äåå¥þùÇæw“IKWŸ?>Y’Q’þý÷_Õ©SGqqq:þ¼ÍrÛñññªX±¢Q†½`Á‚:{öl²dwhh¨<==�Qìnnnêß¿¿>ÿüs(PÀªï�¬æ÷®\¹²J•*¥�7ÊÓÓÓªoPP�ªV­jÌ¿>^¥K—Öµk×4lØ0}þùç6û 0@Ìr èìú™žì{åcÇÒ, �Œá8œÄO%^FÖeǵݲe‹îܹ£R¥JY=…Ô9;;ë™gž‘$­X±Âäh€Œ¹–üuá‚Õ €Œ:t¨† bµîĉêÓ§O–ª´¥÷áþ”’ˆ¶$žS666V?ýôS²äoÂ1{öìi´ƒ‚‚ôé§ŸÚLþJÒ /¼`,_¾|YÿüóOš±œ;wN«W¯N6opåÊ•õý÷ßëÕW_µêÿÞ{ï%›ölÊ”):{ö¬Z´h‘bòWº— N¯… &ëóÐCYµCBB4oÞ<ãú¶iÓFgÏžÕÅ‹3œü•¤aÆe·G�•êçV½zucžZIÚ°aC²Qœ9aРAŠŽŽÖË/¿œbâ­hÑ¢jÚ´©Ñ¾råŠñ0@f�5J7nÜP÷îÝSœkÙÙÙYmÚ´1ÚwïÞÕwß}—¬Ÿ‡‡‡Uò¶iÓ¦úú믓%%©aƪV­šÑ¾víš6lØ�,ù+Ý{("qùõÝ»wیӞװL™2VíO?ý4YòWºWâ¹K—.F{ß¾}Yþ^ýÚµkºv횤{s�§däÈ‘©V/€ã# ÀT 05oÞœ_H”ðÇÈÏ?ÿls ·ªøúÚ䯊­^dÆçŸ®Ö­[[­Û°aƒ&L˜`RD¶%Mz•+W.žI¢UªTI±oÒ2ÄgÏžM3–ZµjY%f“š>}ºÊ—/o´ƒƒƒµvíZ£®yóæIRšó ?òÈ#Ví½{÷&ë“ôÚ¼ôÒKv›6îØ±cZ¿~½ÑNO…ÃÁƒ[�ÿƒ>°K,éµgÏýñÇ’ìs}Ó+00P«W¯¶ëy¶ÞÞÞ©3ñ}_¬X1•(Q"ž‰ï{[÷¼½¯aÒû1é¿»Ä�j ×Í›7S=ZòåËg|�¾jÕªdsO'¨Y³&#jïsö©»™`±XôÓO?IºWþ“0b:<<\T£F�²t¼àà`ãéÇôJÏ"rŠ‹‹‹V¬X¡Æ�ëØ±cÆú)S¦È××W�:u21ºÌ)Z´hºû&-u�ÚÁ©%Ö¤{I»!C†è­·Þ2ÖíܹÓ™üóÏ?ç?~¼1�jz\¹r%Í>ÅŠÙoº±ÄÉ_•,Y2Í}J•*¥fÍšßc=zT.\°Y29;$N¶§õjÒ‘îé¹¾)Ù°aƒQ®¹OŸ>V£Ë³ó¼ 2{ßÛºçͺ†Ic“î}—kk$szyxx¨qãÆúí·ß¡æÍ›ë›o¾Ñ³Ï>›¬ï·ß~›éó ïs˜ðï¿ÿ®:$K^ôêÕKË–-Óÿý§… jÛ¶m Phh¨xàùùùiĈ6ŸúHë˜ÇŽÓÂ… µk×.�?^wïÞUéÒ¥õÄOhàÀ�zê©§²ó-[‰ŠŠÒ¶mÛ´iÓ&=zTçÏŸWhh¨œœœTªT)ùøø¨]»v Ó§Ÿ~ª7ß|Sï½÷^†Þobßÿ½ d5齋‹‹ÞyçMž<9C±kîܹڲe‹NŸ>­°°°t_Ç�jÁ‚)–p±õC/AáÂ…µxñb«ù$|õÕW9r¤1o@buêÔÑÎ�;�r(ûöíÓòå˵{÷n�;wN‘‘‘òòòR«V­4zôèKž>|XË—/ב#GtêÔ)…††êÎ�;rwwWÙ²eÕ¸qcuèÐAÏ?ÿ|¦GÆîÝ»Wÿûßÿô믿*00PQQQ*\¸°Š)¢Ê•+«víÚjÓ¦M²§"¥ì»¶‰?~Üxâ©víÚxg÷äÄ5´‡¬Üã©©]»¶\]]«¿ÿþ;Ë à9sæhÒ¤IY:€ôssuR‡GË[µYW´hQmÚ´I�=ö˜1w¯ÅbQß¾}UµjÕL}e&gçôòLÚ×Ö÷›™Ñ©S'«ðñãÇ�å„9}%iÒ¤IêСCº�k¯¹¡ÓkÏž=Ʋ­y¡SÒ°aC#,ÝûÞ5§À‰¯ïæÍ›U¶lÙtïëááa—óΟ?ßjNÞ´Ø*ëœQ™½ïmÝóf]C[ì1µâôéÓõÄO(::Zÿý÷ŸÚ´i£víÚiúôéVååqs˜ðöíÛmŽ\ûî»ïT½zu}øá‡Éæ%Ö† ´qãFÍž=[ƒN÷1]\\ôí·ß&KŽiùòåZ¾|¹zôè¡E‹¥{ŽˆÌÚ²e‹^}õU]ºtÉæöÀÀ@ê—_~1Ö-Z´(Y8µ÷ûÍ7ß(_¾|ƺݻw[%%)..N ,ÈPxîܹ7nœ1©z‚ô^Ç+Vdzþް°0mذÁf’rÍš5)þqtäÈ8p@U«VÕ AƒlNÚ~áÂ}ýõ×Z»v­Î�;—ìi¥-[¶¨]»vÆT‰EGGëÔ©S:uꔾùæùúújΜ9züñÇÓýÞnܸ¡_|Q6lH¶íÖ­[ºuë–.]º¤]»vé‹/¾Ð„ 4qâD«~Ùumûý÷ß�åľ§Gv_C{Éê=žš|ùò©lÙ² ÔÑ£Gí6€àâì,_ŸâiwdX… ´~ýz5kÖÌøž/<<\:tÐ�¬æºudY™û8±Ê•+ËÃÃC¡¡¡’¤ëׯÛ�å’%Kfø{¾œôßÿËI¿¯KMõêÕ­ÚÁÁÁv‹)-‰¯¯��O²Xrâ¼eË–ÍÕŸkZ̺†Ù¥aÆZ¾|¹zöìiä½6lØ mÛ¶iäÈ‘zç�wT¸pa“£„Ù&|ØêÉ[¿øS{¿Iû�=Z±±±º}û¶ÂÃõiÓ&IzeĈÆréÒ¥U¯^=ÅÆÆ¦û:.]ºTË—/·:ïÏ?ÿl$²Ÿ|òÉd²'(\¸°Þ|óM›Û¦M›¦Ï?ÿ\6�ëïﯮ]»Z%ÁK–,)___ݹsGûöí“toBöS§N©aÆVÇŸ?¾Uâò‘GQÙ²e•/_>ݼySgÏžÕ… $ÝåÚ¼ys­X±BíÚµ³obÿý·Ú·ooõK­X±bª_¿¾<==£[·niïÞ½Æ/‡Ù³g'Kg×µM,áIÁbÅŠé�H³bÙy í)«÷xZÀGޱkÜyÝc�=¦%K–¨G�Æ÷›ÿüó�ºuë¦mÛ¶™]Þâää¤råÊ `wwwc[â9M³:¿iv 3–“pJMÒ2ÔIg•Y×7/}®iq¤÷’ cÇŽúí·ßÔ»wo�>}ZÒ½J±}ô‘–,Y¢Y³f¥9@ ŽÍaÀ¥J•Ò¬Y³Œvâä¥t¯Àøñã5jÔ(c4fll¬Ú´i£Ÿ~úI111š?¾¦N�šîc–-[V_|ñ…:tè`”—�‰‰Ñܹs5fÌEEEé×_ÕÈ‘#5þ|»¿gIšªH²]N#»®mbÿüó�gFe×5ÌY¹ÇÓâíí-É>sñgÏžÍPY€œÔ­[7�>}Új^Z�=ZuëÖ51²¼'q•ÃÄsç&.ãœ0 #·J<%&&F—/_Öƒ>˜æ~… ²j§5o²=¹ºº*::ZÒ½ëëçç—cçM�Û?×´˜u ³[ƒ ô÷ßë³Ï>Ó'Ÿ|b<ÔpùòeuéÒEƒ Ò—_~)“#…Ò_D=�[¶l™&MšdõKÊÕÕU¯¾úªÑN\ÿ?-^^^Ú»w¯:vìh5·¨›››†ª5kÖ‰ž h×®]Y6$”}­\¹²þ÷¿ÿ¥˜ØòööÖ‡~h´Íœ51íÞ½[={ö´JBæôu̬'Ÿ|Rû÷ïW»víŒ8Ë—/¯³gÏjïÞ½:xð Í²¾ï¿ÿ¾Z´h¡5jhñâÅ6G}6nÜXÛ·oW‹-$Ý{ªì«¯¾J5ž¾}ûÉßêÕ«ëÀ�êÛ·o²ä¯$Íœ9SÕªUS©R¥²í…´œ?^’RIœšìº†ö–Ý÷x­ O_fE©R¥T«V­ ½ªT©’åóàþs~v§ä¯óç­^ØËøñãõ /X­›9s¦–-[fRDySLLŒ±œ¸pârÚþþþ>nxxxÖË€ *Xµ>œ®ý�–”cóÿJY»¾111VŸ[N�WÊÙQÒi1ëæ„üùókܸq:þ¼F�e•�˜7o^†¦ì„c¹/À=zôP�=lnKœ¼¸råJº�9sæL•+W.ÅíÏ=÷œ `´?úè£t;#Ú7nÜÐÕ«WSíûä“OªF�rrrR§N�²%žŒúøã�U£F�·çÔuÌŒJ•*ióæÍ6K+VL~~~)Nv_¡BíØ±CêÕ«WŠçpvvÖk¯½f´ÿüóÏûþúë¯Ú²e‹¤{%XÖ­[—êdö�5Ò©S§tõêUµoß>Å~ÙéÆ�’”©éÙq ³Cvßã ÷Xdd¤ñ€¼!&6^ëö_4^1±›F€¼Ì§Táä/«ö´`Á5iÒÄjÝŽ;LŠ&oºv횱ܪU+c9q2øìÙ³úé§ŸÒ}ÌM›6©oß¾ö 0š5kfÕÞ½{wºöû÷ß�ewww5nÜØža¥*ñõ]±b…ÕüËi;v¬æÎ�›åóúûûëÔ©SéÞwöìÙV£îÍfÖ5Ì×®]Ó3Ï<“l½§§§¦M›¦¿ÿþÛª*éôéÓsU29ç¾H80Åm‰G'žï5-mÛ¶M³Ïرc�e#ÙeO]ºt‘t¯n½¯¯¯&L˜ _~ùÅæh@www?~\·oßÖgŸ}f÷X2#µÄ]‚œ¸Ž™1þüd¥?²Âb±èäɓڸq£fΜ©1cÆèÕW_Õ¼yóŒ>©= ·dÉcù¥—^J5é˜[$¼[£¤3#«×0;d÷=žø!{Œ�sââ-:|á†ñŠ‹·˜äz #ñbcc3´Ÿ»»»~øáU®\9ÃçL\M1µóf4¦¼äÖ­[FàŠ+Z% š6mjÕwذaŠŠŠJó˜gΜQß¾}­ªtf·Ž;*_¾|Fûûï¿7¦XLMâ‘ÂíÛ·WÁ‚³%>[_ß;wîh̘1éÚoÕªUš7ožúôé“åóZ, <8]×jÏž=3fLªy™œfÖ5̈Ä?gâââRí»{÷î¿ç®V­š¶mÛfä.ÂÂÂì2} òžû"œøé{IO eãI‹¸¸¸lyøñÇ?¼þûï?Mž)iIÞôðôôÔæÍ›U¬X± í—xÈ™3gRìwüøq«vz’eyÅÚµk�÷3yòd«ùaüq=ôÐCFûäÉ“êÕ«Wª ñ³gÏêé§ŸVýúõÕ²eËì < ///½òÊ+F;00PëׯOuŸ¸¸8mÞ¼YÒ½jƒãÇ�·Ù/>>>ÕvfõíÛ×êz/Z´HÓ§OOuŸ�7ê…^Ð[o½e³‚eztèÐÁªtòÏ?ÿ¬7Þx#ÕûzÿþýjÛ¶­z÷î­êÕ«gê¼ÙÁ¬k˜‰I¥5B9""B«W¯Nq»———1-¢”vBŽÉ5í.y_fÊËÚK•*UŒyz—‰°—¢E‹jçÎ�Z³f�>ýôS@aëßB�4nÜ8�5ÊX7kÖ,=zT&LP“&Mäì|oŒa`` fÍš¥9sæ¨dÉ’úøã�mž7ñý™Ö}—ø>H«ª£­û>qÂ×Þ×0#£ý“–_Né}—-[Ö¸'<¨˜˜ãßMXX˜vìØ¡:ý?úè#õìÙ3ÅH Õ"‹/®Zµj¥;^8Žûb°™râ)/ggguíÚUÐÕ«WµråJ½õÖ[jÛ¶­*Uªdü–¤ßÿ]­[·ÖСCóÔh¹-ÖÌ”ŠIläÈ‘êÖ­›Uâ²råÊz饗4uêTmÞ¼Y§OŸÖ­[·25IâQ¡¹YBÂ23Äe÷5Ìi™½Çÿq“ÀÙåîÝ»F¼mÛ¶ez„eóæÍ5gΜt÷饗Œe‹Å¢çž{N_~ù¥þúë/ýòË/7nœj×®­^xÁ*1¼råJ-^¼XýõW²[ÒÑ—.]JñüI·%.GœTÒ�)%ÊK”(a,9r$Å ÑÑÑêÛ·¯NŸ>­ž={ÚLØJRçÎ�“•rþûï¿õüóÏ«H‘"òññQ±bÅT¦LM˜0A‘‘‘Z±b…ªV­šæ{øã�?lž3³Š)¢ 6ÈÇÇG’tîÜ9õë×Ïfôرc1b„$iРAzç�wR<î_ýeÕÞ»w¯Ýbþøã�U¿~}«u«W¯VÆ U´hQU¬XQ T­Zµ´páB•/_^k×®M1©�4¶„ÄcRo¼ñ†Ú´icµnçÎ�jÖ¬™Š)¢Š+ªpáÂòññÑôéÓU°`A­[·ÎêþJpíÚ5íÔîù¤Û¯]»–ê ™ôÜ÷ö¼†W®\±j'Mþ'öÏ?ÿXµSšþï‰'ž0–CBBÔ¯_?íß¿_›7oÖO<‘ìûãS§NiÈ�!6¿WÞ·oŸ~ÿýwIÒ”)SÒU¥Žç¾œ"##Ó5oiâ’ ÞÞÞv�#>>^gÏžUÅŠåææ¦R¥J©k×®êÚµ«Ñ',,Lüñ‡¾ÿþ{-[¶L‘‘‘š={¶*Uªdüò2KzŸ”ÉŽë¯øøx«'�Ò«T©R™>ï–-[4cÆ £ýì³ÏjÒ¤Ijذ¡ÍþéMæ>øàƒÆ/¶€€€dO!æ¤ô^ÛÂ… ëÆ�ÉžÐJKv]Ãì�Ý÷xÂÓz… â9pX‡Òرc�äÉ©S§Ô½{wM™2åÿ±wßÑQU{ÇŸô@%!‘H�¡×ˆ"A± T¥HÄ `¡¨(zA¢`ÁFGŠ`h"*J% WT¤„P¤ƒ¡%D¤¦�dÞ?xsn†ôd†“L¾Ÿµf­sæì³çÉ^C¢ó›½w�–š8p 8 ñãÇçÚ¶uëÖ>|¸ñyÔ… 4tèP㺗——¦N�ªè§Ÿ~2žOIIѲe˧ڵkëêÕ«Ú¿¿Ö¯_o,)œî™gžÑˆ#tÛm·©fÍšJIIѾ}ûtäÈ‘L'L˜ Ýu×]ª[·®J•*¥={öhóæÍz÷Ýw­ÚΜ9SUªTÑí·ß® {×N�:U.\І ôï¿ÿªqãÆ Óƒ>¨€€%%%é�?þÐôéÓ«É“'ëÅ_ÌqœfΜ©²eËjâĉV+þ%%%éøñãÆypp°>ýôS…††ÏY,íØ±C‘‘‘š2eŠU¿‹-R¥J•Ô®];Ødiáš5kjëÖ­8p V¯^­/¾øBЋ/¾¨F�éêÕ«úþûï5qâD¹»»kúôé2dH¦~Ο?¯#GŽhß¾}zç�w¬®ýùçŸ S÷îÝhÁ ¢téÒúñÇÕ«W/}÷ÝwV×.]º¤K—.ç­[·Ö‚ të­·Zµû÷ßµgÏ­X±BK–,±º6bÄ]¹rEuêÔQ­ZµŒ÷‰³³³¾úê+ 4HŸ~ú©Õ=W¯^5fäKÒwÜ¡E‹©N�:VíŽ=ªh„ VÅÊ�7êƒ>P«V­T­Z5U¬XQçÎ�ÓÑ£GõóÏ?ë×_µê§wïÞzõÕWU«V-ÕªUK‰‰‰Úºu«Ö­[§Õ«W[µ8p FŒ¡5j«eÚb ¥ëÿ®?ûì3«ç/^¬‡~ؘ±›îìÙ³Zºti¦¶M›6ÍÔï3Ï<£)S¦3w—,Y¢%K–ÈÅÅES¦LÑ£�>šéžˆˆíÙ³GC† QýúõuñâEmÚ´IãÇ�WjjªÞzë-=÷Üs™îCÉàd)jS+m$ãr Ùk�;¦jÕªI’n¹å–—åÈØç’%KrÝguß¾}Æ/777ÅÅÅ©\¹ryþòâÞ{ïÕÏ?ÿ¬ºuëjçÎ�¹€öîÝ«ÐÐP]¼xQþþþ:{öl¶mó:†GŽ1fÄæ6†7öûå—_fù‹+£üŽãý÷߯M›6I’Ö­[§víÚej£-Z(>>^‹-ÊÓ’Îyé7/žxâ ãÄSO=¥¹sçæØ~ãÆ�zà�$IwÝu—¶f³,ZÆ~¬3f(_Nl=¶¡¡¡Úºu«š7ož¯oÄÙk mÅÞïñŒÚ´i£~øAõë×WtttÁCО={¬öY_¼x±ªWg h /’’’´hÑÿ–€~â –€€9nœÉ”.$$$Ósé3æ€ì¤¤¤dÚ'·fÍšš„!I}ô‘ÆŽ›í¬9éúÒ©kÖ¬QãÆ�óÕwZZšºuë¦Æ�kìØ±¹¶ÿâ‹/4cÆ íܹS×®]SÕªUÕ±cG 2DU«V•$=ýôÓrssS×®]uß}÷YýÜ ,Pÿþýs|�5jèСCЉ‰Q•*UrÍôóÏ?ëž{îQ“&M´k×®Û¦ÏÜÌ(**JkÖ¬Qdd¤Ž=ªØØX¥¤¤Èßß_õë×W‡Ô§OŸ|í�­9sæhÆ :yò¤U±bE5mÚTÝ»wWÏž=3ýÿï¹sçäçç—kß•+WVLLLž³äÅÏ?ÿ¬Å‹kÓ¦M:yò¤’““åççgüüýúõ˶p;}út 6,O¯3kÖ¬L³¤ bݺuúì³Ï´yófãóýÊ•+«E‹êׯŸÕÞ¯ :4OŸgõ>‘®¯.:þ|mܸQ§OŸVjjªn¹å5kÖL½{÷V§N�²œˆ“ñ3åì¼ýöÛ ×;ï¼£×_=ǶéÿFvîÜ™åß©ŒªV­jU¤NWÐ1|õÕWõùçŸg9¹R¥J Õ—_~)Iêܹ³~úé'«Ârºàà`=ûì³VËkK×÷P>|¸¶oß®òåË«E‹zõÕWu×]wmrú·âââ"ÝÿýzñÅÕ¬Y³¬&lý;=Ý�Ÿ+GGG³Tµ�1¸€"""r-¿õÖ[Æqûöím^ü•d,y²oß>}þùç ˱}½zõÔ¶m[-_¾\±±±:wî\–Ë1äÇ¡C‡ |ïܹss-Žåw3þâÉnfé7ß|c,!ñõ×_ÛdO߼ʸ�{ÇŽsmŸ×½HúöíkE?ùä 80×?€ÑÑÑÆ7€æÍ›—å’+Ùzl«W¯®­[·æû?Úì5†ö`�÷xFéc—þEò+?Ÿ‹8è\aÆ Ës�-¿Òg7æU�=Ô£G�ÛÌ™3'Ûkaaa¹~~›.000_ÿÞrZ:'�5R£F�4jԨݟ• hÚ´iùº§bÅŠ¦ý~iÙ²¥Z¶lY {‡j5üfhß¾½Ú·oŸïû¦OŸ®éÓ§øu[´h¡-Zäû¾�7æ¹mxx¸ÂÃÃóÔ¶I“&~Ït ?üðC}øá‡yj»jÕª|÷߬Y³L3Ÿodæ¿/ì\@‘‘‘™¦îga\wqqÉñ—Ö| Š+ªvíÚÆºìñöÛo+...×výõ—q\¦L™lÛe\® »5ìSSS³ÝÐ=/Ö¬Y“ãdågÓU®\Ù8¾q/�t?þø£q|³g+fÜ?8222×öëׯÏS¿mÛ¶Õ}÷Ý'ézÁó‘GÑÞ½{³mŸ––¦~ýúé—_~Ñ/¿ü¢ï¿ÿ>××°õئ�Å™3gòµg‹½Æ0ÝË/¿¬òåË«nݺڶm[¾î½‘=Þ㥀Óg€’�p! 4Hk×®µzîܹszùå—5hÐ ã¹ðððl÷&ݸq£FŽ©øøx8p@½{÷ÎW!,£#GŽèÁÔÿûß,¯ïÙ³G�?þ¸¢¢¢$]_~7§}Œ3.1òÉ'Ÿdº~ìØ1cƒÂ ËT Ëï8f”¾Ô¯$MžUªTÉêžråÊiäÈ‘yZŠ÷é§Ÿ¶*ª—*UJMš4Q@@€.^¼¨ýû÷g»,²»»»|}}Uºti�=:S�rÛ¶mêܹ³N�:e<çááaŒA||¼þøã«Ÿ-""B È5·-Æ6£¸¸8ùûûK’V¬X¡nݺåš!�½ÆpôèÑz÷Ýw­ÚïÙ³'_3líýO·bÅ =öØc’¤³gÏcy3±0Ppì €¢"444Ïmä£DØ‘½ö‹Ü|ì\|9Ì_Ý3fè£�>ÊòÚòåË�ãòåË«}ûöYn$ž˜˜hU8®W¯^¶³ÿfÍš¥—^zI ŠŽŽVtt´Õu777½ù曹î��qónézá6¯Åߌn¹åyyy¸#GŽXã2ª]»¶æÌ™“ë¾áááúí·ßŒ¾ÿý·±·kF·Ýv›Nœ8!)óÖ©SGÏ<óŒU{¥¦¦ÊÉÉI³gÏÖ /¼ „„íÞ½ÛjF©”÷qÌÈÓÓSß~û­Ú·o¯ãÇ�+55U¿ýö›U''' 2DS§NͲ�#F临pN›ÖÏž=;׌ü±Ê”)£©S§*--M Ú²eK–m›4i"OOOmݺU’”œœ¬Ó§OK’Æ�Ÿé=zÇwhçÎ�êß¿¿Ö¬Y#éz‘!«½Ê”)£iÓ¦åy–«-Æ6#???ÕªUKÐŽ;òU¶×Þ~ûí™îÿí·ßòU¶÷{<Ýï¿ÿ.I 1¥ø  ðÜÝÝÍŽÀÁ8ÌÐmڴɵpêãã£Ö­[«Q£F¹~“ 00P�5ÊözXX˜8 áÇ«víÚòôô”———7n¬W^yEû÷ïÏSA§eË–?~¼|}}U¿~}}ñŹޓÑSO=¥2eÊhƌڻw¯>ýôSuéÒEU«V•§§§\]]åãã£;ï¼SC† Ñwß}§}ûöéÞ{ï͵o///mذAË—/W×®]uÛm·ÉÃÃCîîîªR¥Š}ôQ}þùç:xð Úµk—é~???5oÞ<ÓóaaarrrRXX˜ d“q¼Qݺuµ{÷n�7NM›6UùòåUªT)ëé§ŸÖo¿ý¦�>úHÎÎYÿèÖ­[ŽËcgÅÛÛ[:tÈS[gggMš4I;vìаaÃT§N•.]ZƸ :T6lÐöíÛ©±cǪiÓ¦ªP¡‚\]]åêꪰ°°,û÷óóÓêÕ«õ믿êÙgŸU½zõTªT)¹ººÊÏÏO<ð€>üðC=z4ßKvloÔ©S'IÊvéòìØk »víªáÇ«\¹r QóæÍ�•òêf¼Ç%iݺu’dÌP¼xxx¨_¿~ƃٿlÁa–€¾2.ëš���ï!€Ìþøã5kÖL...Š‹‹S… ÌŽd¥cÇŽjÓ¦�† fv+ÿý·n»í6IÒÁƒlJ–€€â/}•¬…„„dz.((ÈÎiPܱ48–€.¾ø« ÀTwÞy§‚ƒƒuèÐ!­[·N�?þ¸Ù‘¬œ>}Z•+W6;F&éK­?ôÐC¦Ž! Ëç)öO³4€âkøðá’¤ ˜ä—.]Rtt´š4ibv+‹ÅØkú•W^19 (J(0]ÿþýåçç§ 6èðáÃfÇ1¬]»VuêÔ)rKÿý÷:tè�n¿ývµiÓÆì8 Èb±())Éx°+[` h¦+Uª”ÂÃÃõ /h„ š5k–Ù‘d±X4qâD………™ÅŠÅbQxx¸œœœ4}út³ãdÒ¸qcöjò(11Qï¿ÿ¾q>räHyzzš˜€#`0€"aÈ�!jÒ¤‰"""2m*o†¥K—*..NÏ=÷œÙQ¬|ñÅÚ¶m›  ÐÐP³ã€"†À9ˆ��Õ;ï¼£ØØØL×úõë'gggU¬XQáááªT©’ Çáââ¢Ù³gëî»ïÖK/½¤o¿ýÖ´,û÷ï×àÁƒµhÑ"yxx˜–ãFqqqzá…T«V-M˜0Áì8YjðÎjÉw§Ù1€â!%YÚeœ¾yf‰äênœ[¦÷1#€bŽpfΜ©�>ú(ËkË—/7Ž}}}õæ›oÞ¬X€ÃjÖ¬™&Ož¬aÆiîܹ0`€)9úöí«—_~Y�<òˆ)¯Ÿ�Aƒ)11Q›6mR¹råÌŽŠ –€ÎAÛ¶måçç—c___µnÝú&%ßСC5pà@½øâ‹Ú³g�)/^¬ððpS^;;o¼ñ†6lØ •+WªvíÚfÇE3€sšåòÏìkÖ¬YºvíšÚµk§-[¶(00ð¦¾~Q+°Î›7O3fÌІ Ô¼ys³ãÈΟüµO½&%]ýßù¥s’‹›qzìØ1ÛäúAAA6í@ÑD@‘ãêêªùóçëÕW_Õ�!C´jÕ*³#™ªfÍšÚºu«jÖ¬iv9Y4¼p÷G­·:­VØþn`±XlÚ€¢‰0€"ÉÉÉIãÇ�7;F‘вeK³#€b‚=€ÀAPA`p®fpOL¶iwGßêbÓþ” €l¡¬ŸM» ²iJ–€AK@˜!-U:ý×ÿÎjKÎ.æåà(l�˜Þ IDAT&ÚçmÕ÷£€äEâÎêý÷ß7ÎGŽì!OOO‰ÅbQrr²Ù1–»»»œœœÌŽY¢ €ƒINNÖ7ß|cv ‡Õ©S'yxx˜²ÄÀà ˜ `ÇΧå«}Òñãú÷ß�óãÇ�gûÍá   ÂD”p[¶l1;‚à 5;äŠ0€ T›z97L­c}:uj¶M-KA"€èðáÃÚ²e‹NŸ>­´´4(44T5kÖ4;€›„0%@ãÆ�åææfvŒbçÚµkÚµk—Ù1rµuëV½òÊ+úå—_²¼~ÿý÷kÆŒªW¯ÞMNàf£ @ àææFØAÍž=[C† ‘ÅbQ“&MT­Z5%&&j×®]:uê”$iãÆ�jÖ¬™6lØ æÍ››œ€=9›³råJ=ûì³êÖ­›<¨;vèË/¿ÔÚµk£Å‹«L™2’¤+W®¨OŸ>JNN695{¢ P �;wNÔ{ï½§eË–©zõêV×�œœôøã�kΜ9ÆsGŽÑ�?þx³£¸‰(C|ð�žxâ �92Çv½zõRÅŠ�ó={öØ;±0€ }¡L¾Ú'=·M³fÍ2Ο{î9yxxØ:pPiiiŠŠŠÒ7ß|“k['''ëܹs’¤R¥JÙ;Q°�  ù[XÅR«–Þÿ}ãÜÃÃCNNN¶Ž”³³³Ö¯_Ÿçö/^4ŽCBBì @AÀNNNòôô4;(’’’tìØ1IRhh¨BCCÍ À®ØÀ�-]ºTW¯^•¿¿¿>ýôS³ã°3flæûà·µ¯J³cÅÊf'ÀMÔ½{w³#J¨S§NiôèѪS§Ž–/_®àà`³#°3 ÀèÀ�êÞ½»®\¹¢Õ«W«AƒfGp°4€ ’““õÕW_�ääd³#qéÒ%}ðÁºýöÛµ{÷nýûãŽ;ôÌ3ÏèâÅ‹fÇ`gÌ0ɵk×ÌŽ€\ÄÆÆÚ¤ŸcÇŽº�   B÷plQQQš9s¦–,Y’©Ð›ššª9sæè§Ÿ~Rdd¤ª°•à°(Ù2dˆÙ ‹Åì€"îòå˺ýöÛU³fM�|¸|ðAãü÷ß71 {¢ P <Ø8Ž��51 {¢ P4oÞÜ8vqq11 {r5;PT͘1Ã&ýtèÐÁ&ýP~~~Æq¥J•LLÀž(Ùð÷÷·I?AAA6é€Â¸zõªqœq60ÇÂÐ%ÀÞ½{�ã=z˜˜€=1ÀÎÎÎV³B��ù^°¯•+WJ’4h GyÄä4ì…0€ \]]Õ¬Y3³c€bììÙ³úóÏ?¢€€€Û=zT³gÏ–›››æÎ�Ë—ÑF`3mÚ´QýúõÍŽ€,\»vÍìÅRQ·¸¸8Õ­[WçÏŸ—«««¬wÞyGÞÞÞ™ÚÆÇÇ«k×®JLLÔÂ… ùR:àà(PìÚµËì°¡“'Oêüù󒤔”M›6M+W®Ôˆ#ôè£�ªJ•*Š‹‹ÓêÕ«5fÌy{{ë§Ÿ~Ò=÷ÜcrröÆü~€b¦I“&8p Õs'OžÔðáÃ$Õ©SG«W¯Ö¤I“´{÷nŠ¿@ Á `¤¦¦j÷îÝÆyÆ åââbb"€£ 5;ìä“O>ѨQ£ô믿êÔ©SJII‘���üüüT­Z5…„„°×/PQ0Áµk×ôõ×_çuêÔ¡ ò­zõêª^½ºÙ1!€p0îîîêÔ©“Ù1–»»»Ù [€p0NNNòðð0;À,ü‚08 Àà (€ƒ  ‚08 Àà (€ƒp5;@Iäîî®gŸ}Öê ‹0ÀfÖï=¥½IeÌŽO§þ6;°³Çn¯jv%K@€ƒ  ‚%  )6Û9ó±äÚ&((Èi”d€Lp-9I?}³Ü8 Ócrs÷01(Œ¡[æÞ&ýX,¹‰ '€L`±Xôo|œÕ9{€ƒ  ‚08 Àà \ÍPÜMÿöç\Û<Ü ð&$PÒQ($ÿ[«äÚ&(¨êMHPtY,-^¼XóæÍS\\œ®^½ª²e˪gÏž4h�|}}ÍŽ8 À°«¤¤$uëÖM‹E³fÍRíÚµ%Iëׯף�>ªwß}WK—.U‡LN ì »zï½÷tíÚ5­^½Ú(þJRÛ¶m5pà@]ºtI={öÔ™3gLL 8fl¦­û^Õ÷¸lv  XHT²ºœ6λyì”§‡»‰‰€ÝíÙnv‚œÕÔìÀ�-\¸P1110`€æÍ›gu­eË–úè£�tùòe}ýõ×zöÙgMJ 8f˜ÀÙÙIA•ý�‡³³“Ù‘ìæÜ¹sJIIÑüùóou­lÙ²ÆñåËL0 ‹À&pwsSX—VfÇ8(‹Å¢K—.™Ãay{{Ëɉ/sçÇèÑ£5nÜ8uëÖM¾¾¾V×þþûoã¸^½z7;àp(à`.]º¤�šÃaEDDXÍZEîFŽ©‘#Gfyí矖$ÝvÛmjݺõÍŒ8$ À%ı“±Ù_ô:–ã½AAA6Íоøøx͘1Ck×®Õ¡C‡tñâE•+WN 6T÷îÝõÔSOÉÓÓ³P¯qæÌ­\¹RnnnŠˆˆ�›››�Ò%`€¢ZÛg |¯Åb±aÀÍ´e˳#8ŒÐÐP³#ä˦M›Ô¥KEDD¨[·nùº÷›o¾Q¿~ýtáÂ=øàƒúøã�¨#GŽhÚ´i2dˆ¦L™¢uëÖ©F�ÊwæÌõìÙSeʔт ˜ý Ø`¤¥¥éÄésÆùmåììlb"à(®^½ªiÓ¦iìØ±JJJÊ÷~ÐëÖ­S×®]•ššª'Ÿ|RóçÏ7ö¾¹)W®œ¶oßnd_¾|¹:tè {î¹GsçÎU```�rø~ÓP¸ºº²¿ªZ¸p¡ú÷ï/éza¶~ýúêÓ§�.\¨sçÎårwfcÇŽU||¼$©_¿~*S¦L–ín½õVuêÔI+W®Ô/¿ü¢/¾øB=zôÈ×k999©G�:vì˜þóŸÿèŽ;îÐo¿ý¦ªU«æ;7€ÿa�A€bªsçÎÚ»w¯Nž<©ÄÄDíØ±C&L�——W¾û:þ¼æÍ›gœ0 Çöé…gIš6mZ¾_/]ß¾}åä䤳gÏ*,,¬Àý¸Ž0@1U¡BÕ­[W·Þz«œ� WöùòË/•˜˜(I*_¾¼4h�cûÐÐPãxóæÍ:qâD�^÷Ö[o5fýnܸQ{öì)P?®c h€âèú�³¿X«íÍ Ф 6Ç�7ε½���#‹Å¢ï¾ûNO?ýt¦v›7oV�=Tºti-_¾<˾o¹å;vL’´wï^Õ¯_¿à?PÂQ(!‚*ûçp1è¦åESTT”q\«V­<ÝS³fMÅÄÄH’¶mÛ–eøƒ>ÐÉ“'%I ,ÐäÉ“3µ¹zõªqìã㓯ܬ±4@ —––¦Ã‡çy-Âfl·k×®,Û”-[V’T­Z5õíÛ7Óu‹Åb‘K•*¥���<ç�`€îøñãJJJ2Î+T¨�§û|}}�ã¿ÿþ;Ë6;vT©R¥´nÝ:5mÚ4Óõ_ýUçÏŸ—$=÷ÜsÌ ‰% 6s¦L•+WÛì@±�˜˜¨‹ž¿ç1e›ÊÓÓÓÄD ÄûÿY7Š�ÀÀ@³#p §N�²:÷òòÊÓ}Û�={V©©©rqq±jóØc�iÙ²eêÒ¥‹V¯^­5jX]Ÿ:uª$é�Ð{ï½W�ø2  PÂ]¾|ÙêÜÍÍ-O÷¹»»ÇiiiºpáB¦¼NNNZ¶l™Þ{ï=Ý}÷Ýzä‘G*-_¾\‘‘‘ ×o¼‘ç×�=–€(álQ–®¯z–WWW½þúë:r䈺víª‹/êÌ™3zòÉ'uæÌ½ýöÛa0€ ÜÜÜÔ©S'«s¸QvûiJRJJJ¶×‚‚‚ì�€#»zõªÕ¹³sÞæZ,«óŒûg¥téÒêСƒ:tè�¿€òŒ0€ \\\lv E\‹- tß�ÈÍ�3yóêÚµkVçžžž¶ˆ X „+]ºt�îKNN¶:/S¦Œ-â( À%\Ù²e t_BB‚qìää$///[EP@€J¸ªU«Z�§¥¥åé¾óçÏǾ¾¾yÞ;€ý°0€ ’““µnÝ:ã¼}ûöÞk °ªT©"777cOß‹/æé¾ŒàZµjÙ%€ü¡ `‚´´4>|ØêÀ,...ªW¯žvíÚ%IŠ��ÏÓ}'Ož4Ž)E`(¢6oÞœíµ€€€›˜@Ip÷Ýwàýû÷çÚ>99Yýõ—qÞ A»e�w€ ˆªR¥J¶×ob%Á< ™3gJ’¢¢¢rm¿oß>¥¤¤ç­Zµ²[6yÇNÜÐÃ?,oooIÒ�¬¶¯ÊÊÚµk�ã:uê($$Ä®ùä `¨T©RêÞ½»q¾lÙ²Û/\¸Ð8~á…ì– @þP€$éÕW_•«ëõD'Mš¤ÿý7Ëv?þø£±ÿoÆ 5pàÀ›–@ÎØ`3•*Ubÿ! �U¶lYã<00Pžžž&&Ž"55U Æù¥K—ò|o�:u4nÜ8ýç?ÿQ||¼žþy}úé§Vmþùç 2D’äíí­eË–Ecæã_#Àf^Zù§ÊmýÇì@±�z-Iû·7Îw/øE.n&&8º/´4;0YJJŠÙŠ¥¢>nÉÉÉŠŽŽVbb¢Î�;§ýû÷kÅŠŠ��5ÚŒ5JûöíShh¨åíí­ÀÀ@UªT)Ë>_}õUY,…‡‡kÑ¢E:{ö¬¬[n¹EQQQúðÃuøðaU®\Y«V­RݺuoÖ� (PìܹÓì°ƒS§N©iÓ¦9¶¹råŠfÍš¥Y³fÏ�3FcÇŽÍöžÿüç?êÖ­›fÍš¥ÈÈHõíÛW‰‰‰òññQ½zõ4tèP=ýôÓ*]º´­~6B ˜ ’Åb±KßÁÁÁš8q¢]ú`?€Lá$·Òe¬Î(¬+çNg{íØ±cÙ^ ²}Pd„††špQ0�‹›»jµîav €ƒY;²g¶×ª�Ìþ>{ÍÜ|€p0ÞÞÞŠˆˆ0;†Ãòöö6;d‹0ÆÉÉIeË–5;ÀÎf€ìÄÅÅé»ï¾3;†éFŒ¡G}T fGE`EÒñãÇuÏ=÷hóæÍfG1Ý›o¾©˜˜=ôÐCº|ù²Ùq؈ÅbQòÕKƃ½Ø`EÎÁƒu÷Ýwë®»îÒ[o½evÓyyyiÍš5Љ‰QÇŽ•””dv$6�–’¬ƒ?,7i)ÉfGàØ@‘ráÂuìØQ·Ýv›æÎ�kvœ"Ãßß_ .Ôƒ>¨çŸ^³gÏ6;Š ï/ËöÚŒžÍnb€Y((2ÒÒÒÔ§Oýý÷ßZ½zµÜÜÜÌŽT¤Üÿýzá…4yòdµjÕJ={ö4;НŠÙ^ ºyA¦a hEÆìÙ³µfͽûî» 6;N‘4fÌùøøhذaŠ��7;(b((Ξ=«×^{MAAA ÀLµvíZ]ºtIþþþ 1;N±áì쬶mÛê³Ï>Ó²eË( H:{9› Dz½'((È.Y ¤  ÀT_|ñ…$©U«Vrrr29Mñrï½÷ê³Ï>Ó�?þ¨ääd¹»»› °Rmè—Y_ÈîyÙo()(0�ÅbÑ?ü IjÙ²¥ÉiŠŸôÓW®\ѶmÛÔ¢E‹Bõ«¸¸¸|ÝsèСB½&P’¹º8©]“ÊVçPXÎf@ɵyófùûûËÉÉÉꑾ”í™3g4nÜ8Ý{ï½òóó“»»»n¹åuîÜY7n,PŸÑÑÑ>|¸BBBT¾|y¹»»«J•*êÝ»·ÍöÄÍ‹�;wjäÈ‘êСƒjÔ¨¡Š+ÊÃÃCÞÞÞªS§Ž  o¿ý¶Àß|ÿóÏ?5lØ0Õ­[WÞÞÞòööVãÆ�5räHÅÄÄ8·­ûݳg�Ο?/Ijذa¾ï·÷8ÚJll¬Þzë-5oÞ\>>>6{ß5lØP®®×¿Ç³k×®Bçœ9s¦4h�¯G—.] ýº@Iåêâ¬æµüŒ‡« ÿY ð˜ Ó|ÿý÷YÎ6üüóÏU»vm½ûî»JJJ²º«o¾ùFß~û­¦OŸ®Áƒç¹O}öÙg™Š�111Zºt©–.]ª^½ziþüùòôô´ÁO˜µµkתS§NJMMÍt-99Yýõ—þúë/Í›7OMš4ÑÌ™3š§¾/]º¤¡C‡jÑ¢E™~Ψ¨(EEEiÚ´iêÞ½{¾2Û«ßÍ›7Ç 4È×½öG[úøã�5zôh]½zÕêy[¼ï<<-Zd¨I“&ºv횢¢¢ŒöK—.Õ©S§´zõjy{{Ûåçþä“O¬Š–M›6UåÊ•åáá¡óçÏëСC:v오ë3\[µj¥eË–©S§N9ö{îÜ9µmÛVÛ·o7ž«P¡‚4h ___íܹSÇŽSBB‚ÕXäÆ^ýJ×gKRùòåU¡B…|Ýk¯q´µáÇÇ·Ür‹BBB”’’b³÷]z8**ʦ¹@ñD¦ñ÷÷×´iÓŒóŒÅZIrvvVxx¸^~ùe•-[V’”’’¢:è‡~еk×ôÉ'Ÿhüøñyî³råÊúè£�Ô¥K99]ßkñÚµkúøã�õÊ+¯())IÿýïõÒK/é“O>±ùÏ,ɪÀçææ¦Ÿ~ú)SÑï×_Õ˜1c©ÄÄDõîÝ[ÑÑѪV­Z–}¦¥¥©W¯^F‘ÖÓÓSï½÷žžyæ•*UJÒõýv—-[¦AƒéòåËyÊj¯~Ó9rDÒõ‚|~Ùcí¥bÅŠš6mšzöì)gçëK¼Úê}(É6{ñ}úèþûï/ôÏq£·ß~[§N�ÒÉ“'õúë¯g9ãóî»ïÖ÷߯6mÚ(22RW¯^Õ¬Y³ôá‡fÙçǬÈÈHIR©R¥´~ýzµlÙÒª�“““zõê¥ *è‘GQJJJ®YíÕoº£G�J’*Uª”ç{ÒÙcí¡\¹rúùçŸU§N«çmõ¾KŸ9}áÂ…Bgõ÷÷—¿¿¡û�7×RÒ}Ú8°A€Ü\ÙàXŽNïšõ…‡'ÞÜ P‚ð)#Ф^½ze*þ¦ 6ŽOŸ>�e›¬L™2%Sñ7£‡~X4Îß{ï½<÷�U«VÕ† ´oß>=þøãÙ¶svvÖsÏ=gœÿùçŸY¶KIIÑ»ï¾kœ¿õÖ[™Š´µmÛ6Ç×µw¿ýóÏ?’T å¶m=Žöòþûïg*þfTØ÷]úLìÄÄD%'',$S¤¦Y´õ@œñHM³ä~ÅL�™¬AAÙ>…à `IO?ýt¶×Ò—ƒ–¤„„„<÷Ù±cÇ\ÛŒ5JsæÌ‘$EFFêŸþ‘��Ož_£ ,‹þúë/|øpžr\»vÍ´~3*S¦Œþùç«"f^Øcí%%%%Oí ú¾»|ù²¤ëÅßü.Á 7KZZšºté¢ÄÄDÍ›7ÏêsÛsçÎéÃ?”$�8q¬ˆ€Ã Œã»ï¾S¯^½rl³oß>íÙ³G’äææ–mA± –,Yb?õÔSš;wn¡ûlÑ¢…q¼fÍY,–\÷;^»v­iýftë­·êĉ:þ|¾î³Ç8ÚË?ü G}4Ç6…yߥ/ÕTàŒp€ÜQF‰‘뎷ÞzË8nß¾½Ê•+gÓ ÿƒ«cÇŽ¹¶Ïˌڻï¾[~~~Š‹‹SLLŒ>ÿüsõéÓ'ÛöçÏŸ×âÅ‹Më7£êÕ«kë֭Љ‰É×}öG{™;wn®à¼ïÒÇ®Zµj px§OŸÎñú±cDz½ÆŽ�â+>>^þþþfÇpX±±±òóó3;F±2nÜ8IÒ#�<’éš“““V­Zu³#‹¯§ ÄˆŒŒÔÒ¥K³½a\wqqQxxx¶m?øàU¬XQµk×ÖæÍ›óœ¡F�Vyr³~ýú\ÛxxxèùçŸ7ÎGŒ¡£G�fÛ~À€Š‹‹3­ßŒÒÇãÌ™3JKKË÷}’íÆ1£—_~YåË—WݺuµmÛ¶|Ý{£5kÖ諯¾Êöz~ÞwYI/׫W¯à!­k×®9>ªU«–í[8pà€öíÛ'IªY³¦ÉiÇG%Ê Aƒ2-S|îÜ9½üòË4h�ñ\xxx¶ËðnܸQ#GŽT||¼8 Þ½{ç¹xÙ»woãxÆŒzíµ×²\†eß¾}êÛ·¯&Nœh<—���í~²/¿ü²êÖ­+éz1õþûïÏTô<þ¼žx≋‘7«ßtM›6•t}ŸÜœ¾m|#{�£$-_¾\“&MÒ… ´ÿ~õïß?Ϲ²–iÜòû¾ËÊ‘#GtéÒ%IÖKv€-ÄÇÇë­·ÞRóæÍU±bE¹»»ËÏÏO­ZµÒÌ™3•˜˜˜§~2~> ­[·ê¡‡R£F�¤�æ8 @þ°4L§·ß~[±±±™®õë×OÎÎÎòõõÕèÑ£ qãÆ)::ZW®\1Ú]¸pÁXÖ¹J•*3fŒÊ”)“ík^¾|Y?ü°4h àà`�>}ZQQQJHH0ÚôîÝ[¯¿þz¶}Ü8#ôĉŠ��ÏÓr-Z´Ð AƒôÉ'ŸÈb±è½÷ÞÓ”)SÔ¤Ièâŋڿ–K"GEEÉËËK¾¾¾*]º´F�m'K•*¥+V¨U«V:{ö¬Nœ8¡víÚ©F�ª[·®´yóf«Ÿ3Ý¡C‡Œ1lذ¡F�m\³W¿Ç#ÝŽ;T½zõ\ÇОã(I;wî´j­½{÷j†íŋծ];5lØP5jÔ(Ðû.+Û·o7ŽCCC œ€cÚ´i“ºt颈ˆuëÖ-_÷~óÍ7êׯŸ.\¸ |Pü±uäÈM›6MC† Ñ”)S´nÝ:«U³²wï^ãøÏ?ÿÔǬ¯¾úJÞÞÞºté’úöí«† ꫯ¾RëÖ­ ô³ø'‹Åb1;J¦±cÇêÍ7ß̵Ýk¯½¦öíÛ«eË–¹¶�7ožU1ÏÉÉÉ8ž5k–^zé¥,‹•’äææ¦7ß|S£F�Êñ5~þùgÝ{ï½ÆyõêÕuøðá\³¥KKKÓˆ#4uêÔ\g7iÒDžžžÚºuk¦kuëÖµú£)]_F£oß¾úã�?²í³víÚª¯¿þZ’ôØc�éÓO?•§§§qýÂ… ªQ£†’’’Å6E„½~§ßø¹rtt´êׯ_¨>a�% aš6mÚäúÒÇÇG­[·V£F�rýǨF�e{=,,LÐðáÃU»vmyzzÊËËK�7Ö+¯¼¢ýû÷ç©ײeK�?^¾¾¾ª_¿¾¾øâ‹\ïÉÈÙÙY“&MÒŽ;4lØ0Õ©SG¥K—–‡‡‡üüüÔ¼ys :T6lÐöíÛ©±cǪiÓ¦ªP¡‚\]]åêêšåëZµjiË–-úüóÏÕ¡CU®\ÙX’£]»vš?¾¢££õì³ÏªaÆ™îÎò›ZöêW’:uê$Iúïÿ[$Ʊk×®>|¸Ê•+§��5oÞ<ËYê9 ““““ÂÂÂ4hÐ ›¼ï²²nÝ:I×ÿƒ @Éd±Xtþüy­Ê•+›#“eË–I’zè!ÓŠ¿€âáË/¿ÌñzHHÈMJ°‡Î�;kïÞ½*W®œ*Uª$gçë‹¿®X±Â(çÕùóç5oÞ<ã|À€9¶ïß¿¿Qž6mZ¶`___ã8»Õ"}||$]/:þñÇjÕªU¾²ø ÀL7|øp 2D ,(RàK—.)::ZMš41;Š‹Å¢Ù³gK’^yå“ÓŠº€€€¯Ýœ »¨P¡‚ÍVVüòË/•˜˜(I*_¾¼Õ,ͬd\ebóæÍ:qℱraFUªT1޽¼¼²ìËÝÝÝ8>{öl¾r°ÆÀL׿ùùùiÆ :|ø°Ùq k×®U�:uŠÜ’Æßÿ½:¤Ûo¿]mÚ´1;€JJJRDD„ñ(Èž<¶´aÃã¸qãÆ¹¶÷ññQ`` ¤ëW¾ûî»,Ûe\m"»Ï@2n;PÔ¶ Š ÀLWªT)…‡‡Ëb±h„ fÇ‘tý?6&Nœ˜ç}1n‹Å¢ððp999iúôéfÇà@¢¢¢ŒãZµjåéžš5kÇÛ¶m˲Í=÷Üc,MŸe›«W¯æûµd�%  C†ü{w^Uu.ŽÿMH³ó DAAEE-j­""ßj+ÕŠö*N­‡:µ¶Zl«õZ§ª­hk‹ ˆ½*¢ØkETŠZQ¯ NED@d3�„ìßü<%�„Nrø|ž'�g�½Ö»ßöYg{Þìµ#GŽŒ‡~8®¾úêR' é0vìØX²dI\zé¥iÍckãÆ�‹·Þz+.ºè¢RË«Ô|pôèÑ#Ýi@�PXX“'ONµ�<òÈhРA3vg%%%¥Vhüêž¼Û³e¿éÓ§—Ù§uëÖqÜqÇÅäÉ“ãÃ?ŒvíÚmÓçóÏ?�ˆˆC=´Ö­Êu�0åË/¿Œ[n¹%¾üòËm¶ý×ýWdggG‹-âÆoŒ6mÚ¤!CÊS¯^½x衇â˜cމ«¯¾:&L˜�¶\>ú裸ì²ËbÔ¨Q‘———¶<¶¶dÉ’¸òÊ+£k×®µæJé­õ¼åÙˆæï¦; ¨õ’ß�“îJ™7o^©å™+» sóæÍS�çÏŸ_n¿ÿøÇ1yòäxöÙgãßøÆ6Û¿úCù›nº©²)åP&£<ðÀqÿý÷—¹í‰'žH=nÞ¼yüâ¿ØUiQIGqDÜsÏ=qùå—ÇŸþô§¸ð Ӓǹçž×\sM 4(-û/ÏÅ_………ñÊ+¯Ä{ì‘ît€ ²páÂRíÆ�WjÜ–ý/^›6mŠzõêmÓïä“OŽsÏ=7þð‡?İaâsçΩm&LˆiÓ¦Å÷¿ÿý8ýôÓ«ø €¯(“QN>ùäxà�bÉ’%åöiÞ¼yœtÒI»0+vİaÃbúôéqÕUWEß¾}Ó²œð_ÿú×8à€vù~+òóŸÿ<^|ñÅ?~|­Ë ¨ûÖ¬YSª�››[©qõë×O=.))‰•+W–»|ôŸÿüçhذa|ík_‹+¯¼2:vìo¿ývŒ5*n½õÖøéOZõ¤(“QŽ:ê¨2—¦n1bDÅ€âõ×_�:ìÒý×¶ëŸÿüçøýï/¾øbôíÛ7Ýé¨: À………åöÍÍÍ�?üáññÇÇk¯½ ,ˆ¾}ûÆÏ~ö³JßsØ>` ÖÉÉɉ‘#GÆõ×_?üácüøñéN)­ößÿxã�7bÿý÷Ow*@YV•¿êDyæÎ�6lˆ+V¤ž›7o^¹÷ÏÏϯjv•²nݺRíìììJ�K’¤T{Ëû—瀨uâ@&Qj¥¬¬¬¸ãŽ;Ò�F­Ð¯_¿t§TdÔ�vxȾeŒ¹÷Þ{Ëí¿õÿHT·­¯ä­¬¢¢¢Rí TG:ÀN¨ÜŸo�±5jT¥q7n,ÕnÒ¤Iu¤ì`€Ý\³fͪ4nýúõ©ÇYYYѸqãêJ ¨"`€Ý\§N�JµKJJ*5®   õ¸y󿕾w0Ps¼ vsûì³Oäææ¦Ú«V­ªÔ¸- À]»v­ö¼€§ °›«W¯^xà�©ö²eË*5nÁ‚©Ç ÀP;ä¤;€:í{÷ìð�9¿<½Ø9ÇsLLŸ>="">úè£íö߸qc|üñÇ©vÏž=k,7 ò€vF³–;<$??¿úóØI_ÿú×ã�ˆˆˆ3fl·ÿ‡~ÅÅÅ©ö 'œPc¹•§ �ÅÅÅñÖ[o¥Ú}úô‰œ§f@úœzê©Ñ´iÓX½zuüûßÿŽÙ³gGçÎ�Ëí?qâÄÔãnݺEïÞ½wEšÀv¸0@Çßÿþ÷ÔÏ–- � 6ŒÁƒ§Ú�?þx…ýÿò—¿¤_yå•5–°c\f@µ™¹÷¯¢GËzéNj¿_\Q”DüsÞûÉOÒ—Àÿïúë¯�Q£FEqqqÜ}÷ÝqÙe—Åž{î¹M¿—^z)uÿ߃:(.ºè¢]�*PWd�M›6ÅúõëSíÕ«WWzl·nÝâÖ[o�ˆˆeË–ÅW\±MŸåË—ÇøÃˆˆhÚ´i<þøãnmµˆw#@µqãÆ˜9sfÆÒ¥Kã£�>Š¿ýíoñå—_¦úÜpà ñá‡ÆQG:tˆ¦M›F‡¢M›6eƼþúë#I’¸ñÆcÔ¨Q±xñâ¸ì²Ë¢uëÖ1cÆŒøÍo~³gÏŽöíÛÇøñã£{÷î»êå•  Pæ”T¸}Cq+ “T{Þ¼y‘——·CûÈÏϯJj@Y¸pavØaöY»vmŒ1"FŒ‘znøðáqóÍ7—;æÇ?þqœqÆ1bĈ˜4iRœ{î¹QXX{ï½wxà�1lذ¸ä’K¢Q£FÕõR€j¢ Pö½wÍõ¿·[·ÞG’$Ûïd´üüüûŽ K—.q×]wÕHl æ¸0@†PÈ–€€ Ó¼yóøòË/Ó�FÆjÞ¼yºS(—0d˜ìììhÙ²eºÓ , �!\ Pæ\Ù¤ÂíI’Äê�ÿi7½þ½ÈÊʪᬀL§ Pò÷ÚÁ…VöÝ·fv+–€È ÀB C¸0Õæ….¿Š÷Ù'Ýi@�PTT/¼ðBªÝ̘ÈÍÍMcFìJƒNw d(`€4H’$Ö®][ª °³, �!\ ;èË/¿Ü©ñsçÎÝ©ñùùù;5€Ì¥ ;è‡?üaZ÷oÉpÊc h€ ¡ �!€¨YYYÛ<ç&uSIIÉ6Ï•5ÏSû(P-²³·ýʹ¨¨( ™°³Š‹‹·y®¬yžÚÇ¿Õ"+++êׯ_ê¹5kÖ¤)vÆÖówýúõ]\Gä¤;¨k~ÿûßïÔø�VS&Pû4mÚ4–-[–j¯Zµ*Z¶l©hP‡$I«V­*õ\Ó¦MÓ” ;J ²²²¢}ûö¥ÚÔ­ZµÚ©ñùùùÕ“ÔB[€‹ŠŠbÁ‚Ѿ}{ÿïP$I ,Øf ÿfÍš¥)#v”0@äææÆ1Ç“î4ª]ƒ "77·Tá`õêÕ1{öìhÖ¬Y4iÒ$rrrÜG )))‰âââX³fM¬Zµj›âonnnäåå¥);v”0Õ&+++ÚµkŸ}öY$I’z¾¨¨(–-[Vêê`j¿¯æu«8Ô ÀT›þýûG�=Ò��f�5ŠŽ;nS nÉÊÊŠŽ;F£F�Ò� ;ÀT»¯ŠÀ¹¹¹éN€*ÈÍÍUü­£\ �›6mŠY³f¥Úûï¿Ô«W/�T¿F�EçÎ�cÆ ±jÕªX½zulܸ1ÝiPŽúõëGÓ¦M£Y³f‘——gÙç:J ŠŠŠbìØ±©öO~ò` #eeeEƒ ¢AƒѪU«H’$JJJ, P‹deeEvv¶‚o†P`—ÉÊÊò°PƒÜ C(d`€ ¡ �!€2„0@†PÈ ÀB Cä¤;€ÝQýúõãüóÏ/ÕØY Ài���ùùùéNÈ0–€È ÀB C¸0@lܸ1F��j2$êׯŸÆŒ€L  @•mذ¡Tû“O>IS&P÷lذ!Þ|óÍT»W¯^‘———ÆŒ æmý=òÖß3³ó€¨²ùóç—jŸ~úéiÊê¾#F¤;ØåæÏŸ‡zhºÓÈ(î @•­X±"Ý)P‡ùž¹ú)Pe«V­Jw Ôa¾g®~–€ ÊúôéSª=nܸ8ðÀw*æùçŸo½õVôéÓ'yä‘�Š%æî³.äøÉ'Ÿ”Z6ýé§ŸŽ.]ºìt\Ø�ÔÄ{½.ªË¿‡Ú–{ºòÙû­©}TgÜ��å³53Ô¶y!]êòï¡6枎œÌíÕËüžjãÜ�uù÷PÛrwîžÞ¸;ëƒ>ˆ3Ï<3ÕÞú{fvž0UÖ¬Y³Rí<0zôè±S17nœúïÎÆs÷�YrÜZ—.]j$.d²š~_Öuù÷PÛrOW>»b¿5µ�êŒ[Ý9úl­›jÛ¼�.uù÷PsOGNæöê�õó{ÝTç†t¨Ë¿‡Ú–»s÷ôÆ­î·þž™�g h€ ¡ �!€2„0@†ÈIw°¥óÏ??Ž?þøÈÏÏSÌZ¯¦b;Çûr³ºü{¨m¹§+Ÿ]±ßšÚGuÆ­mÇéá8ج.ÿjcîéÈÉÜ^ý±¨Û ›ÕåßCmËݹ{zãÖ¶ã�me%I’¤; ê¦÷ß?zöì™jÏœ93zôè‘ÆŒ îðþ€êå³ 3™ß2�¹½æY C(d`€ ¡ �!€2DNº îjÙ²e >¼T¨ï¨^>[2“ù ó˜Ûk^V’$Iº“`çY C(d`€ ¡ �!€2„0@†PÈ ÀB C(d`€ ¡ �!rÒ�uOqqq¼ùæ›1cÆŒ(((ˆV­ZE·nÝâè£�ެ¬¬t§@š={vÜrË-qðÁÇUW]U¥………ñÚk¯Å‡~«V­ŠvíÚÅA‡zh5g °{«­söš5kâÕW_�Ù³gǺuëbŸ}ö‰Þ½{G÷îÝ« ®Û�æìåË—Ç+¯¼óæÍ‹¢¢¢èÔ©SqÄ‘ŸŸ_嘵•+€¨´M›6ÅÝwßûì³OsÌ1ñàƒÆÔ©SãÖ[o�¯}íkѵk×5jTºÓ„:eöìÙ1tèÐøío›îT VúôÓOã‚ .ˆnݺÅ#�<+V¬Øáëׯ�›nº)Ú´iýû÷�G}4þùÏÆOúÓ8ì°Ã¢wïÞñüóÏ×@ö»—Ú:gİaâeË–ñío;Æ�/½ôR\qÅqà�ƱÇÿú׿v8W€ºlwš³çÏŸçž{n´jÕ*þë¿þ+žyæ™xþùç㢋.ŠÎ�;Ç©§žÿþ÷¿w(f­—@%¬X±"9î¸ã’ˆHš7ožLž<9µ­¤¤$9rd’›››DDrñÅ'›6mJ_²PÌž=;:th’“““DD2|øðt§µÊ§Ÿ~š\pÁ©Ïʯ~vô3ó³Ï>Kzöì™DDÒ¹sçäÝwßMm+**Jn»í¶$"’¬¬¬äæ›o®æW°{¨ÍsöôéÓ“Ž;&‘~øáÉìÙ³SÛÖ¬Y“\~ùåID$õë×OþøÇ?îP¾uÑî6gOš4)Ù{sˆHN9å”dñâÅ©mK—.M¾ó�ï$‘4kÖ,™0aB%_}íWïæ›o¾y—U›¨“ ãÄOŒ©S§FVVVüýï�ãŽ;.µ=+++9ä�hÓ¦ML˜0!Þyç�X·n]ôïß?�YCí4gΜ¸öÚkãâ‹/ŽwÞy'JJJ""âøã��ã�?>½É@-°hÑ¢¸îºëâ±Ç‹N�:ÅâÅ‹cùòå©í;ò™¹téÒèׯ_|üñÇѨQ£˜2eJôèÑ#µ=;;;¾öµ¯EQQQL™2%^~ùåhÙ²eqÄÕý²2RmŸ³gÍšÇw\,Z´(Ú¶mS¦L‰:¤¶×¯_?N9唘5kV¼ûî»ñÜsÏÅa‡]»vÝñ_@-·;ÎÙ¯½öZ 0 V¯^tPüãÿˆ=÷Ü3µ½Q£Fñ­o}+^y啸÷¿ÿO?ýt 0 ÚµkW©ßCmf h¶ëšk®I-«qæ™gF¿~ýÊìwÑEÅ!‡wÞygŒ?~—åµÝ¢E‹â?øAüà?ˆ½öÚ+#ï-ÕaãÆ�ñ‹_ü"þ÷ÿ7î¼óÎ1bD•c�wÞy1{ö숈¸üòËËýrèg?ûY´mÛ6""®ºêªxûí·«¼O€ÝImž³‹ŠŠâÌ3ÏŒ¥K—FDÄÏþóhÙ²e™}ï¸ãŽhذa”””Ä9çœóçϯò먭v·9»   Î:ë¬X¿~}DDüæ7¿‰† nÓ/'''~ûÛßFVVV¬_¿>¾õ­oÅš5k*xõuƒ0z÷ÝwK� \qÅåöÍÊÊŠ+¯¼2Õ¾îºë¢¸¸¸F󃺢:O² “uêÔ)Z·n�jï·ß~UŠ3~üø˜8qbDl>O½üòËËíÛ¨Q£¸ä’K""¢¸¸8®»îº*í`wS›çìx Þ}÷݈ˆhÚ´i :´Ü˜íÚµ‹3Ï<3""V­Z?ÿùÏ«ô:j³ÝmÎþå/ŸþyDDì¿ÿþ1`À€rcöîÝ;Ž=ö؈Ø|¿à»îº«Ü¾u…0úïÿþïH’$""Ú¶mGuT…ýO;í´ÈÉɉˆÍËvüå/©ñ¡.¨ã éN IDAT®“lØÝdgWí«‹Ûn»-õøÈ#�ŒöíÛWØðàÁ©Ç“'OŽI“&Ui¿»³Ú2goÚ´)~ó›ß¤Ú§žzjäååU:æ£�>³fͪTîuU&ÏÙñàƒ¦ÚgœqF…ñ¶Žyç�wÆŠ+¶;¦6S \«W¯Ž§Ÿ~:Õ>öØc#++«Â1{íµWôêÕ+Õ5jT�åuYUO²€íûøã�S·0‰ˆ8î¸ã¶;¦gϞѼyóTÛy,À®Qsö‹/¾ .Ü¡˜[~çQRRýë_·;`wSWæìqãÆEaaáÅܲϚ5kJ}/^ùæ€r½ñƱaÆTûÐC­Ô¸-ûM™2¥Ô8Ô´W_}µT»²ç±½{÷N=~úé§K� P3jbήJÌfÍšEçÎ�SíǼRyìNêÊœ]•˜Ý»w� ”³®Q \¯¿þz©v·nÝ*5îÀL=.))‰þóŸÕšT¤:ÎcW®\Ó§O¯Ö¼ØVMÌÙÕó£�>Š%K–TjÀÌÙ[ÆÜk¯½¢U«VÛ�—““]»vMµ§L™’º5b]¤ @¹¶\Î#"¢]»v•·u¿3fT[N°=ÎcêŽêž³“$‰iÓ¦¥žoÒ¤I4kÖ¬J1ý!@iuaÎ^²dIÌ™3g‡sܺïÚµkcöìÙ•[Û(P® ”j·mÛ¶Rã¶î÷þûïW[N°=[žÇæææF‹-*5Îy,À®WÝsöÊ•+cÍš5©çÛ´iSé\|T¬.ÌÙUýN»¢˜u‘0å*(((ÕnÒ¤I¥ÆmÝoéÒ¥Õ–T¤¤¤$V­Z•j7nܸÒc�ÇìZ51gWõ»ŒŠbPwælŸ›)P®­?,4hP©q[÷ÛòÄjÒŠ+JÝ««²ç°eõu P³jbήêwÅ îÌÙ>6S \ëÖ­+Õ®_¿~¥ÆmýA¹víÚjË *RÕsØç±»ZMÌÙ>jF]™³}l¦ @¹5jTª]TTT©q[÷Û:Ô”ªžÃ–Õ×y,@ͪ‰9Ûç@ͨ+s¶Ï�Í€(WÓ¦MKµ +5në~[Ç€šRÕsزú:�¨Y51gû¨ueÎö9°™0åj×®]©öÖËg”gýúõ¥Ú­[·®¶œ "¹¹¹Ñ¢E‹T{ësÓŠ8�صjbήêwÅ îÌÙ>6S \]»v-Õ^¼xq¥Æmݯ{÷îÕ–lÏ–ç±………±råÊJ�s °ëU÷œÝ¸qãR_þWö»ŒŠb°Y]˜³»téÙÙÙåö«J̺H€rõìÙ³T{áÂ…•·`Á‚ ã@Mr PwÔÄœ½åã+VTú*5Ÿ« sv^^^téÒe‡sÜ:fÆ c¿ýö«ôØÚF€r�p ¥Ú³fͪԸ-ûeeemjRuœÇ6kÖ,?üðjÍ €mÕÄœ]1»wïmÛ¶­Ô8€ÝE]™³·Œ¹dÉ’J_©üÉ'Ÿ¤üñQ¯^½J�«�€(WŸ>}bï½÷Nµßyç�J�›6mZêña‡V§ï•@Ýó�o|£Ô—5U9�íß¿äääT{n”VsöÉ'Ÿ\ªoebÆÌ™3SíSO=µRyìNêÊœ½eÌ$Iâÿþïÿ¶ó“O>‰‚‚‚rcÖ5 À”«^½zñ½ï}/Õþç?ÿ¹Ý1k×®-õ!½åxØZ´hƒ Jµ+s;gΜRK¾9�Ø5jbÎ>ä�CâàƒÞ¡˜¯¿þz—€º3g80Z¶l¹C1§L™’zœ——gžyævÇÔf ÀTè?øAdeeEDÄìÙ³ãÝwß­°ÿ³Ï>›ºOC³fÍbèС5ž#lí²Ë.K=~å•WbÙ²eö7n\êq—.]J}±@ͪ‰9{˘ãÇ�/U(Ø^̯ýëÑ«W¯íæ °;ª svýúõ㢋.Jµÿö·¿Uoë˜C† )U@®‹€¨P·nÝâÒK/Mµ÷»ßUØÿþûïO=¾é¦›¢iÓ¦5–™oùòå¥Ú_ý±áöôïß?ÅÅÅ1bĈrûnܸ1zè¡Tû¶Ûn‹ìl_™ì¨Ú4g:4uEÙÒ¥KcìØ±åÆ\¶lYŒ3&"6¯†öë_ÿºRyÔe™>g_ýõÑ®]»ˆˆ˜>}z…WôÑGñ�ü#""š6m7ÝtS¹}ë ÿ7ÀvÝ~ûíÑ¥K—ˆˆxä‘GJݳaK£G�Ž©S§FDÄqÇW_}õ.ËꚪždÀîæé§Ÿ.Õþç?ÿI’Tjìþð‡hÞ¼yDDÜqÇ1wîÜ2ûÝyç�1gΜˆØ¼|ÜàÁƒ«ž0Àn¬6ÍÙ¹¹¹ñÈ#�Dƒ ""âÆo,uoÇ-Ýpà ±råʈˆøéO}ûö­TÎuY¦ÏÙ{î¹güñ�Lœ¯¾úêØ°aÃ6ýJJJâG?úQlÚ´)""~ûÛ߯¾ûî[fÌ:%€JX¸par衇&‘´lÙ2yå•WJmüñÇ“ $‘ 0 Y±bEš2…ºá¦›nJ""õsôÑG'%%%éN Ò®¸¸8™1cFòüóÏ'Æ KêÕ«Wê33"’3Î8#yòÉ'“wÞy'Y¶lY…ñ>üðÃdß}÷M""Ùÿý“éÓ§§¶mÚ´)¹÷Þ{“¬¬¬$"’óÎ;/Ù°aCM¿D€ŒQæì©S§&-Z´H""éÛ·oòé§Ÿ¦¶&?ùÉOR¹Þpà þ¿ ÈX»ëœýÔSO%�5J""4hP²xñâÔ¶•+W&ç�w^INNNò»ßýn»ñꊬ$©d9€ÝÞÚµkã¿øEŒ1"Ö¬Y|ptìØ1>þøãø÷¿ÿÍ›7�k¯½6®»îº¨W¯^ºÓ…ZeÓ¦MñÁÄ‚ â¹çž‹#F¤þ²ð+gœqFœsÎ9‘ŸŸ�:uн÷Þ;MÙ@ú,]ºt‡î·uÇwĵ×^»Ý˜7ÜpCŒ5*ŠŠŠ¢OŸ>ѪU«xï½÷bÞ¼yÑ¡C‡>|x©û„°}ueΞ;wn\wÝuñÔSOENNNôéÓ'š5kï¼óN,^¼8ºuë·Ýv[œ~ú镎 P×ìÎsöŒ3âšk®‰I“&EãÆ�ãðÃ�œœœxë­·¢   ?üð¸ë®»¢_¿~•ŽYÛ)°ÃÖ­[S¦L‰?ü0Ö¬Y{ì±GôìÙ3¾öµ¯EnnnºÓƒZ©&N²€³bÅŠxõÕWã“O>‰õë×Ç^{í½{÷Ž#�<Ò=j™š˜³/^S¦L‰9sæDQQQ´lÙ2úôé½{÷®æìv/ueΞ7o^L�:5æÏŸ%%%ѶmÛ8ꨣ
rÌÚJ CøóV€ ¡ �!€2„0@†PÈ ÀB C(d`€ ¡ �!€2„0@†PÈ ÀB C(d`€ ¡ �!€2„0@†PÈ ÀB C(d`€ ¡ �!€j‘/¿ü2öÙgŸxòÉ'Ó� P)Ô"cÆŒ‰Ï?ÿ<6mÚ”îT€:HjÐÒ¥K£qãÆ‘••U£?£F�J÷K¥šŒ3&š6mƒ *s»c ¨HNº€LöÔSOźuë""¢M›61tèÐèׯ_äççGãÆ�#;{óßfoܸ1®ºêª˜0aBjì 7ÜC‡�† FDD’$QXX_|ñELž<9î¸ãŽX³fM*6uß§Ÿ~ÿú׿â{ßû^êß}kŽ) " ÀPƒÆ�ßþö·ã/ùK4iҤܾ«W¯N=nÔ¨QÜtÓMe÷ßÿèׯ_qÄqÊ)§DDD·nݪ9sÒa̘1qöÙg—ÛÇ1T$+I’$ÝI@&Zºti´mÛ6N:é¤xî¹ç"++«Ü¾ÅÅűçž{ÆÚµk#"â„NˆI“&mw]»v�… ÆêÕ«+ŒOÝгgÏX¼xq,Z´(rr¶ý»}ǰ=®€òÔSOENNNüñ�Ün!múôé©B]DÄ1ÇS©}ì·ß~ѤI…º 0cÆŒxÿý÷ãÒK/-³øá˜¶/;Ý @¦7n\œuÖYѾ}ûíö}íµ×Jµ+[¬K’ÄR½bôèÑ1dÈ�rû8¦€íq0Ô€¥K—ÆË/¿\©%w#"¦N�šzœ��}ûö­Ô¸/¿ü2Ž>úè*åHí‘$IŒ;6:vìXn¡Ö1T†+€ <õÔSÑ®]»èׯ_¥úoyµfÏž=c�=ö¨Ô¸Ï>ûÌÕšàµ×^‹yóæÅw¿ûÝr—^vL•¡ 5`ܸqñ�ï|§R÷Q�?~ÌŸ??Õ®ìR½±|ùò8à€ªœ'µÃ˜1c""âì³Ï.·�c ¨ `¨Ë–-‹sÏ=·R}«z¯Öµk×F÷îÝëê¸âââxâ‰'¢{÷îqÈ!‡”ÛÏ1T†{@ xç�w*ÝwË{µFT¾XסC‡øàƒv(/jŸI“&Å—_~Æ «°Ÿc ¨ W@šmyµf»ví"???}ɰË�=:"*^þyG9¦`÷¥ i´víÚ˜>}zª]Ù+5É ………ñôÓOÇá‡]ºt©–˜Ž)ؽ)@½ùæ›Q\\œj+Öí^ž}öÙXµjUµ^ý똀ݛ0¤QUïÕJf3fLdggÇYg�Um1S°{S€4Úò^­�5ŠC9$�Ù°+­Zµ*&NœÇw\´k×®Úâ:¦`÷–“î`w•$I¼þúë©ö‘G99™÷¿ê%%%±lÙ²R?ßüæ7Ó�VÚ=ùä“QXXC† ©¶˜»Ë1”Ïÿ@š|ðÁ±bÅŠT;S—ê}õÕWãë_ÿz©ç’$IS6µÇèÑ££~ýúqÆgT[ÌÝå˜Êg hH“-—ê�ÈÜbÝñÇ………ñ׿þ5ݩԋ/Ž—^z) {íµWµÅÝ]Ž) | À�&S§NM=ÎÎÎŽ£Ž:*�ÙÔ¬¼¼¼8óÌ3Ó�F­1nܸشiSœ}öÙÕww:¦€²)@šlyµf�=b�=öHc65Ͻhÿc̘1Ѹqãj¿òîvLÛR€4X²dIÌš5+Õ¶Tïîcîܹñúë¯Çi§��5ª¶¸Ž) BÒ½Zw_cÆŒ‰ˆˆ!C†Tk\Çaí%Hƒ-ïÕ±cźիWÇÛo¿Ë—/�‚‚‚(((ˆ‹/¾8öØc�xûí·ãõ×_�ÂÂÂØÿý£ÿþѰaà ãÍœ93þõ¯Å’%K¢C‡qòÉ'GË–-+�Ï»ï¾o¿ýv,]º4Ú¶mÇ{läççWzüŽØ™\-Z'NŒÅ‹GÇŽcàÀ�±÷Þ{DzeËbâĉ±`Á‚4hPôìÙ³Ô¸ 6Ä‹/¾üqdggÇÁÇ{lÔ«W¯J¯aôèÑѼyóèß¿•Æ—ggŽ©¢¢¢˜>}z,Y²$õ3lذÈËËKý~>ÿüóhß¾} 80Z´hQ­¹Wfÿ‹-Š}öÙ'N=õÔhÖ¬YjìÚµkc„ 1oÞ¼hÑ¢E 0 Ú·o¿Í>ªû}µ•+€ ¶¼Z³mÛ¶±ï¾ûVzìG}çŸ~ <8.ºè¢¸îºëâÿþïÿâ”SN‰‡~8š5kõêÕ‹ë®».òóóãÑG-3Îܹsãøã��[o½5Ö®];vŒW_}5:tè×\sMU˜Çœ9sâßøFœvÚi±téÒèÔ©SÄe—]Œ‚‚‚J½ž7ß|3rrr"+++õÓ¦M›˜6mZµåú«_ý*:è X¼xqtîÜ9¦N��:uŠ‹/¾8 .ŒñãÇÇ)§œRjܸqã¢sçÎ1zôèhݺu$IçŸ~|ðÁñþûïWêõmiæÌ™1sæÌ;;;úöío¼ñÆ61ÇŽ3f̈-Zl³drDĽ÷Þ'�tRÜxã�ÛÍ{éÒ¥qâ‰'ưaÃbøðá‘••Uf¿ªæ:eÊ”ÔòÁ{ï½w©mûí·_Dl^‚zõêÕ¥¶ýò—¿Œ¢¢¢2dH4hÐ`›¸_½î'žxb»¯ñ+o¼ñFÌ™3'Î:ë¬r_gUUç1õÕÒÔƒ м¼¼m¶·iÓ&"6/w\–ì슿nÚÞöÊîÿøã�/ó^Ä­[·Žˆˆ T¸Ÿˆª½o²²²â /Œˆˆ‡~x›±Ó¦M‹víÚE�=¶»¨ 9éN2ÕòåËcíÚµQ\\ëÖ­‹‚‚‚xõÕWãî»ï.ÕoܸqQTT{íµW4lØ0rrrb�=öˆfÍšUK'�tR¼ñÆ1~üøX·n]4jÔ("6jï½÷Þ2Ç|ÕgÕªUÛl{ì±Ç""¢OŸ>Q¯^½m¶_pÁqÁl7¯ùóçGÿþýã’K.‰K.¹¤Â¾UÍuÍš5e¿*ì&I7nL=¿nݺ˜0aBDDtïÞ½Ì}véÒ%""æÍ›«W¯Ž¦M›V˜DÄèÑ£#"bÈ�!Ûí[ž]yLõîÝ»Ìçëׯ±Ýû.ï¬íí{Û·ü7­ŠòÞ7C‡�áÇǤI“bΜ9¥î·üðÃÇE]´Sû€�¡ 5 ¨¨(:uê”*@V䮻ÔsgŸ}vª`¸³8à€ˆˆØ°aCÌ�;7<ðÀRÛW®\Ï<óL¼þúëñÞ{ïÅÊ•+ãóÏ?/7Þ{ï½;v¬rNüqœtÒI1þü?~|\uÕU•º*vGsíÙ³gDD,Y²$Š‹‹#'ç?_…,^¼8"6_QÚ¼yóÔósæÌ‰ 6DDÄí·ß>ø`™±[·nÙÙÙQXX¸Ýð¦M›bܸqqÀÄ¡‡ºÝ×Y–]}LmYðL‡íí¿¦ó«è}Ó¶mÛ8õÔScüøññ§?ý)n¹å–ˆˆX»vm¼ð qß}÷ÕhnPK@@ ÈÍÍ�Õ«WG’$Uú©®âoDDÆ S�×®]›z¼zõêøÑ�~­[·Ž_ÿú×Ñ£G�9rd̘1#¾ùÍo–oÅŠÛÄÝQŒûî»/:t诼òJ<ôÐCö¯j®={öŒ¯ýëQRRo¿ýv©m/¾øbDD\uÕU¥ž_·n]êñwÜï¾ûn™?_|ñE,\¸0Z¶l¹Ý×ûÒK/ÅâÅ‹ãì³ÏÞnßòÔ¦cjwPÞûæ+_|qDD<òÈ#±iÓ¦ˆØ|åõi§�Væç°«¸2Ü–÷jýêªÝÅ‹G¿~ýbÖ¬Yqá…Æ<�Z:w{Ú·o³gÏŽåË—W)Ÿ¼¼¼xâ‰'âÐC� Ä)§œ?þñ�cРAÑ¡C‡múïL®›—�îÕ«W\qÅñôÓOG›6mâå—_Žûï¿?¾ó�ïÄu×]Wªÿ–W6Wæ>²•1f̘ˆˆ�*³k•õ¾ÙÒ€¢C‡ñùçŸÇóÏ?ƒ Ї~x»Ì5ÍÀ�á^{íµˆˆèÕ«W´nÝ:""†³fÍŠ<0|ðÁíT?úè£øì³Ï""âøã��ˆˆ3fT8¦¬«&#"š4i’ZyÀ€qþùçǪU«âûßÿ~™ýw&׈ˆG}4F�ŒÁƒG¯^½â׿þu<ðÀ1nܸÈÎ.ýõHëÖ­£W¯^ñÉ'ŸT¸¯ÊÁ7lØO>ùdvØaѵk×íöÏt[Vk³²Þ7[ªW¯^ :4"6ß÷÷ƒ>ˆ’’’Ô²ã�. À�ŠŠŠÊ|¾   &L˜—_~yêùW_}5""N<ñÄR÷ÅýÊÖEº±cÇÆK/½—\rIdeeÅ{⦅~úi™ûÝ´iS}ôÑåæµ¥{î¹'Úµk'NŒÇ{l›í;“kÄæå—{öìÇ�©S§Æ{ï½ÿøÇ?bÈ�!åæôÕïêoû[—Ù'I’8ñÄK-]–‰'ÆÊ•+w›«4h%%%Ûl[¶lYÌ™3gW§T®}ßlí /Œìììxî¹çâ–[nI- é¤ à׿þu™Ïÿüç?�5kÖÄ€â /L=ߪU«ˆˆX²dÉ6c>ùä“xùå—#â?E¼’’’ÈÍÍ�ˆˆ#Ž8"®¼òÊ())‰o¼±ÌýŽ92 �S‘=÷Ü3FŒ›ïÇ»uAwgr�Ø\¨½çž{Ê,H–ç /ŒSN9%¾øâ‹;vl™}zè¡8á„¢Q£FÆ=ztdggÇw¿ûÝJï¿.ëÑ£GDD,]ºt›m÷ÜsOì½÷ÞñŸ{I§Ó޾o¶Ö©S§8餓¢¸¸8ž}öÙ8묳j*U¨4`ÈË–-‹Ë.»,V®\………qÓM7Åï~÷»øÖ·¾ãÆ�‹¬¬¬TÿáÇGƒ bܸq©ûÓFD¼óÎ;qÖYgÅý÷ßo¿ývDl^î¹oß¾©~wÜqG\rÉ%1f̘¸âŠ+bÍš5±¹øúÇ?þ1ž|òÉøå/Y*ǯ®ü\½zu,Z´¨Ô¶SO=57nË–-‹ï|ç;¥–VÞÙ\#GŽŒV­ZE·nÝ¢[·nѳgÏèÛ·oœyæ™qûí·—Z2:""+++Æ�§Ÿ~z\vÙeñøã�§ È7nŒûî»/&NœXnñ+«W¯Žçž{.úõëíÛ·¯°omPPP�úÝÏž={›í………©û"—·<öõ×_yyyñ§?ý)Ö¯_›‹ð�=öX$IÝ»w�ˆˆ»îº+þû¿ÿ;&Ož\¥ý—µ}Ó¦M1wîÜ óÛÒŽ¾oÊrÑEEÄæû;7nÜx»û€š–•$I’î$€ªùª85gΜ˜†¿úÕ¯âä“OŽiÓ¦•úwnÑ¢E 4(FŽY*¿�yßl­¨¨(ZµjÿøÇ?¢OŸ>;ø›€ê§ uØ–…¬üüüô&S =úè£ñýï?~ó›ßÄСC£I“&Q\\+W®Œ¹sçÆÔ©SãÎ; Æ´iÓ¢wïÞÕ¶ÿSN9%&Mš_|ñEjécÒ¯:ß7sçÎ�3Î8#u:¤[Ŧ PG-[¶,¾ÿýïÇù矗_~y©m999ѼyóhÞ¼yvØaqì±ÇFïÞ½c„ ÕV^²dI¼øâ‹1`ÀÅß ö§?ý).¸à‚t§)î d¤Ù³gGaaaêž³Ùwß}#"â‹/¾¨¶ý?ñÄQ\\gŸ}vµÅ$}>üðÃèÕ«W\yå•©ç6lØO>ùdœ{î¹iÌ JS2ÒAmÚ´‰Q£FEaaa…}~øáˆˆ0`@µí¿¸¸8öÛo¿8í´Óª-&é3qâÄxï½÷â�ˆ’’’ˆˆxà�bÈ�!±Ç{¤9;ø`¨£>þøãÔã™3g¦1“Ú©aÆñ÷¿ÿ= ã°Ã‹Ç<Ö¬Y“Ú^RRÓ¦M‹óÎ;/~ñ‹_Äïÿûøæ7¿Ymû¿âŠ+böìÙѸqãj‹ÉΫêû¦_¿~‘��7ÞxcdggÇ3Ï<cÇŽ�«¯¾º&Ò€*ËJ’$Iw@å½õÖ[qöÙgÇܹs£¸¸8""²²²¢cÇŽqß}÷Uk3Ç3Ï<ÿó?ÿÓ§O�ìììÈÎÎŽ 6D~~~ôïß?Î9çœhÕªUºS¥UÇûæÑG�{î¹'ŠŠŠâ�C‰ûî»Ïý�¨u€2„% 2„0@†PÈ ÀB C(d`€ ¡ �!€2„0@†PÈ ÀB C(d`€ ¡ �!€2„0@†PÈ ÀB C(d`€ ¡ �!€2„0@†PÈ ÀB C(ðÿµg2ƒü­ïñ•FÀ„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&–GkIEND®B`‚unyt-3.2.0/paper/ufuncout.png000066400000000000000000003452441526544257300162310ustar00rootroot00000000000000‰PNG  IHDR€ ¿‘^ÙsBIT|dˆ pHYs.#.#x¥?v9tEXtSoftwarematplotlib version 2.2.2, http://matplotlib.org/†ŸÔ IDATxœìÝwtÔUþÿñפC -ˆ„MBï$Ò;HQ@¤ °ÁjË*¸âê ®.°*$ˆ EªRAEЯ@¤·„H€$�6óùýÁ�Y'“ If2y>ÎÉ9sïç~îç=�c|åÞ�É0 C€2ÏÍÑŠ0¸`pÀà"€ÀE€‹ A .‚\0¸`pÀà"€ÀE€‹ A .‚\0¸`pÀà"€ÀE€‹ A .‚\0¸`pÀ+³Ù¬˜˜]¼xÑÑ¥€›@ åÜ… ôÉ'Ÿ(""BµjÕR�=´oß>G—…påÊ}øá‡º÷Þ{Õ AùùùÉÏÏO�5Òƒ>¨˜˜G—¸E&Ã0 G9qâ„BCCoêÜîÝ»kÛ¶mÅ[P·fÍmݺU[·nÕÞ½{•óWí[·ªG�Ž)%býúõzôÑG•––¦‰'ªzõêúüóÏõÓO?ÙŒ‹ŒŒÔÛo¿í *·Š@™�’’¢Å‹+55U'NœÐ7ß|£Ó§Oç9><<\ݺuSPP�êׯ¯Aƒ•bµÎï…^�§§§âããµ|ùr]»vÍæ8°kY½zµ,IÚ¹s§Ú¶m+éú–ß<ð€>ûì3›ñTãÆ�K½NÀ­#P&edd¨}ûöÚ»w¯Ý±çŸ^¯¿þºª*›>ùä�5ʦ�ØuœÝ~ûí¨¦ìªR¥Š£K@ INNÖòåË­mÿ\Ç…††*::º´Ê” V(³üüüìú*W®ì€JÊ677~5tUk×®UVV–µm2™X  4ð[>€2+·à’0øŸÝ»w;º@)ãÿŒà¢Îž=ë襌uùòeG—(eŽ.É0 ýðúvíšúôécs,99Y›6mÒ±cÇT¡B5kÖL=zô�‡Géÿ*•ššª¯¾úJƒ ²¹÷qvv¶¾ûî;9rDIIIºýöÛÕ±cGÕ¯_¿TëËÌÌÔ¯¿þªØØX]¼xQ’T½zuµlÙR­[·¾å­¹¯^½ªíÛ·ëøñãJNNV¥J•T¿~}uèÐAU«V½éyccc«øøxY,)<<\ 6¼¥z�Eff¦£K(´Ý»wëøñãºÿþûmú¯^½ªÍ›7ë÷ß—‡‡‡6l¨Þ½{ËÇÇ禯e†öîÝ«={ö(!!Aîîîºí¶ÛÔ¦M5nÜøVŸ 8–eÔÖ­[ I6?ÁÁÁ…:÷À�ÆK/½d„††’Œˆˆ뱤¤$ã‰'ž0¼½½íæ¯[·®ñý÷ß—ÌÊÁb±Û¶m3Æ�gøúú’ŒãÇ�†aYYYƬY³ŒÛo¿Ý®FIF÷îÝ�úZ9Ïߺuk¡Î‹��7"##�€€ë¹†›››µ]³fMãí·ß6,K‘_ƒƒcÆŒ±¾ÞÞÞ†ŸŸŸunOOOcðàÁƾ}û =gvv¶1oÞ<£Aƒ†$Ãßßßðôô´yþíÛ·76nÜXäzó2kÖ¬\ß§ü>³þþþyž“ׯóÁÁÁùž“×ÏôéÓ Ã0ŒF�8æÏ¾úê«|çýó÷*7Ç�7^ýu£yóæÖÏí W¯^5¦M›fó~ßø 4V­ZUˆWÞVjjªñÆoµk×6$&“É0L&“uîfÍšQQQ7õygÀÐÊ�ýû÷ë…^PãÆ�Õ´iS½òÊ+:~ü¸Í˜]»v©E‹š?¾222ìæ8vì˜î¾ûníÝ»·Dj4›ÍÚºu«"##¤=z(**JiiiÖ1§N�R×®]õ /(...×ybbbtÇwhÍš5%R§$}ýõ×jÔ¨‘Þyç¹»»kñâÅJKKSrr²’““õïÿ[^^^JHHФI“ôàƒÊb±jn³Ù¬W_}U-Z´ÐÊ•+5uêT>|X×®]Ó•+WtèÐ!µlÙRYYYúꫯ¦yóæ8ï±cÇÔºuk=û쳺ÿþû¯K—.)==]Û¶mS«V­$]ÿÜu×]š:uê-½F7ôíÛW/¿ü²Ú´iSèsÞxã Íœ9Ónez~þùÏê½÷Þ³þ4hÐÀæø€lŽßø¹çž{$IÓ¦MÓäÉ“ ½ª:,,LsçÎÕÓO?­ÐÐÐB�sâÄ ½ú꫺ãŽ;ª)S¦(66ÖfÌü¡Ö­[ëÕW_UJJŠÝçÏŸ×СCõí·ßêš’ôÃ?¨yóæzî¹ç®Í›7+##CÉÉÉJMMÕ³Ï>+éú¿ãÆ�Sß¾}•œœ\èùÀY˜ Ã0]ÜŒmÛ¶©gÏž6}ÁÁÁ:qâD®ãW¬X¡ôôtíß¿_sæÌÑŸŠˆˆÐ˜1c4pà@yzzjôèÑ Wff¦V­Z¥M›6ÙÌÕ¹sg}ÿý÷Åþœ–.]ª7ÞxCçÏŸWBB‚ÝñüQcÆŒÑÑ£G®Î�;«B… :tè�6lØ ¬¬,›ñ>>>ŠŽŽVÇŽó½®Éd²ioݺU=zôÈsü·ß~«þýû[Ýèèh»÷B’-Z¤GyÄÚþ÷¿ÿ­gžy&ßZÒÓÓ5lØ0­]»Vµk×Vttt®[2ïØ±C�;w¶é[¼x±Æ�—뼇Ö�wÞ©3gÎä9.))I-[¶ÔÙ³g­}³gÏÖ”)Sò­¹°Ìf³:tè ÿû¿ÿ³öå÷™½á¡‡ÒâÅ‹mú óë|�=cmOŸ>]3fÌ(ð¼½{÷*,,̦¯ s/_¾¬ÐÐP›Ð4""BQQQ6ãÖ­[§sçÎ)..N¯¾úªÍ6ÕÝ»w×þóõîÝ[iii>|¸Ú·o/mÚ´IŸþ¹Í\¡¡¡:tè�<==ó}>K–,ÑÃ?,³Ù¬wÞyGO<ñ„ÝÃ0Ô¤I:tÈÚ׳gOmÙ²ÅîûNÍ¡ë�àÜÊÐwß}·Íyááᆯ¯¯1xð`ãâÅ‹vãŸyæ»kýöÛoÅüŒlýío³»fíÚµ�fÍšÛ·o·æÌ£sçÎvç4iÒÄÈÈÈÈ÷Z9ÏÉo h³ÙlÔ«WÏ:ÖÝÝÝ0›Í¹ŽÍÎÎ6n»í6ëØêÕ«™™™yÎm±XŒ!C†X·{Ž��Í·î?×qãõÉ͵k׌Æ�’Œ!C†ä;çܹsmæ4™LÆ®]»ò=§(^{íµ"f?ÿüóBm�S÷îÝ ÜÆ9/ 6,ò¹ (ÒÐ'N´ß A£fÍšF—.]ŒS§NÙ�ë­·ì^‡Õ«Wç{�U«VY·x~ñÅóûòË/ÛÍ_œ[�@i` håRÓ¦MmÚ»wïÖã�?®•+Wæºýí+¯¼"›¾�7–h�#GŽ´ë Ö®]»ÔµkW»cµk×ÖæÍ›­ÛßpðàA-\¸°Øêúã�?tôèQkÛl6+>>>×±îîî6Û_¸pA{öìÉsîùóçkåÊ•’¤çž{NÍš5Ë·–þýûÛ´Ïž=« .Ø�{饗ôûï¿K’þþ÷¿ç;çÈ‘#mV|†¡—_~9ßsŠ¢fÍšE>§ZµjÅvýÂ*�:s~>¬^½z)::ZuêÔ±i·<¿ïáÙ³gõàƒÊ0 Õ«WO/½ôR¾õ 0À®¯¤¶{€’B  \ªT©’M»}ûöú׿þ•çV¯+V´Û9ç}K‹[•*UìúÞ|óMùúúæyŽ���–-[f÷<>øàƒb«ëÚµkv}yÀ’ìõ¼î[œœœ¬_|Q’äáá‘ë6½9Mœ8Q^^^Öv£F�ìBÈÄÄD½ýöÛ’¤úõëëŽ;îÈwÎÛn»-×�ñòåËÖSnnEÿUÜ[—F�9¿‡µjÕÒÒ¥KóÜÒÙd2©_¿~6}ù}§N�ª+W®HºþYñööηž;î¸Ãf[q“ÉTàöéàl€”K9ƒ*ŸÏ©W¯žM;·•¦Å)·®V­Zž×¼ysÝÿý6}¿ýö›Ž;V,u5oÞ\Mš4±¶7n¬æÍ›ç9>çk�šššë¸÷Þ{ÏÖuìØQ·Ýv[�µ4mÚT«W¯ÖÀ�õØc�iÓ¦Mv×[¸p¡222$)ßûÿYÎ�8++K»wï.Ô¹(¼œï•——W�Ása¿‡§OŸÖŠ+¬íœß‰¼|ñÅzôÑG5hÐ }ýõ×v÷™gçá蠬ȹZ1--ÍA•ì�°n¥|ÃO?ý¤ºuëÞòÜžžžŠ‰‰Ñüùóåéé©¿þõ¯… ÐoÈÎÎεùòåÖÇmÛ¶-ô|wÝu—îºë®<�õÕWÖÇ·ß~»Îœ9Sàœ¹m|øðáBÈ(9…ý~òÉ'2›Í’®¯B/ìgÿ¶ÛnÓ‚ n­Hp `(¤œ«-‹ƒ*)Xß¾}åææfSã¡C‡Šmþ5jhÆŒùŽ9wîœ>úè#mڴɦß0 »±ñññ:pà€µT,u^»vÍæžÃ/¿üòMßÏ÷Ò¥KÅRnMa¿‡›7o¶>.®Ï”Àà‚*Uª¤àà`?~ÜÚ—œœ\*×Þ²e‹Þ{ï=­^½ZíÛ·W```ž÷ý½!çöÊ~~~ÅRËþýû•••emOžø öíÛ§F�iܸq6«psóç:¥ë+w‹CÎûÃ6oÞ\÷ÜsO±Ì ç•––¦ÄÄDk»¸>OP€‹Ê¹êÑß߿دa†–,Y¢3fèäÉ“6l˜6lØ :uêižË—/Û´“’’Š¥¾œ«žSSS‹e^8·’ú<@Y@ .ªbÅŠ6íªU«ëü 6l˜¾ûî;yyy)**JÅ2wlll±ÌãææfÓι"åéS§”’’ÂVÐÊ·‚‡ŠbÆŒ2 £Ð?%±ý³d¿åsƒ Šmî?þøCmÛ¶Õwß}'IZ´hÑ-…¿UªT±iïØ±C†aÜR�’`Ó>zôè-Ï ç—óód±Xôã�?:¨(]Àà¢.]ºdÓîܹs±Ì›––¦ÁƒëôéÓ’¤ž={j̘1·4gÍš5mÚqqqÚ²eËMÍõçímŽ}÷Ýw²X,75/ÊŽ *Ø­öýè£�nj®œß#pvÀà¢~ÿýwëãF�©V­ZÅ2ï[o½¥XÛ#FŒ¸å9Ûµkg×÷Æoyž>ø@O>ù¤µÝ¬Y3y{{[ÛgÏž½é`yΜ9úüóÏoê\”¾œŸ©/¾øBÇŽ+Òqqq SJJJq–%Š\PBB‚âââ¬í &ÛÜ‹-²i‡„„ä;¾0[9©nݺ6}7nÔÒ¥K ]×O?ý¤gŸ}VS¦L±öyyy©M›66ãnlÑ]¿üò‹þþ÷¿«U«VE:¯0 SKVVV±_·¨ÊJ�7tïÞݦ�‘‘¡ &zxFF††ª‘#Grï`e 0€2+;;Û®Ïl6; ç³jÕ*ëc???�?¾Xæ½víšÝ}t/\¸�ï9 6íÜÞ7Izøá‡íú{ì±B­Ø���Õ=÷Ü£Q£F©iÓ¦6ÇF�mÓÞ±c‡.\Xàœ7$$$hÈ�!0`€6lXèóòòçÉ’”˜˜˜çkrÉ'nêZ9¿EÙþ:g�ñññžs³u–„ˆˆ¹»»ÛômÞ¼Y'N,0ÌÎÌÌÔˆ#täÈ›?(€²€@™õç{½ÞPØûuÞLPœžž^äsŠ[a<Ã0ôÁXÛ¯¿þºòŸÛóÊëõÉíõýùçŸóœûÔ©SÚ¾}»M_RRR®c{ì1»•–éééêׯŸfΜ©´´4»s,‹¢¢¢Ô¹sgY,Íž=ÛnÌèÑ£åïïoÓ©M›6åY÷ êÛ·¯ôæ›o8¾0rnÅ}íÚ5mذ!Ïñ—.]ÊõÚ©©©^+瘢leœ³ÎuëÖ)###ÏñëÖ­Ó�?þX¤Kò{ø—¿üEÇ·ëÿïÿ«Þ½{Ûl‘þgûöíS÷îÝõõ×_ë�7ÞP•*UŠ\#80€2+66Ö®/55UGŽ)ðÜœAf~ÁÖ çÎ�³i_½zµÀsŠ[aVÃ._¾\»wï–$õêÕK'NÌwüáÇíúr>תU«&///›¾÷ß_¿ýö[®óÞ}÷Ýv«[wìØa}|õêUk W½zuÍ�;×nž¬¬,͘1C���4h�ž~úi½øâ‹;v¬êÔ©£ñãÇëÊ•+Z¸p¡ªU«fw~åÊ•íî'œ™™©ä,†¡Õ«W«mÛ¶úí·ßôŸÿüG¡¡¡¹¾&EÕ¶m[»Õµ“&MÒéÓ§íÆþúë¯êܹ³j×®­ÀÀ@›cßÿ}¾×±X,:~ü¸Mß¡C‡ ]g×®]mÚqqqŠŒŒ´[=k6›5þ| :Ô.pýé§Ÿòݺ¤¿‡sçÎUõêÕíú£££Õ¤Iµk×N&LдiÓ©öíÛ«eË–Ú¹s§ ¤ˆˆˆëgc2Šzã#pIIIjݺu®[Î>üðÃZ°`�ÜÜòþ›×®]»Úh5jÔP\\œ<<<ò<§aÆ6ai@@€.\¸`·Ílq9qâ„]èX¡B­X±BÌõœ_ýUÝ»wWjjªÚ´i£Í›7Û­~ý3Ã04~üx-Y²Ä¦ðàÁúòË/s=§ÿþv+V}||ôðÃ+,,LW®\Ñ®]»ôå—_jàÀ�jÛ¶­¦N�jk2™ôâ‹/Ê××W ,Ptt´Í}„zè!-^¼8Ïšsó�üC3gÎÌwÌÈ‘#õé§ŸÚõûúúªOŸ> •···Îž=«íÛ·ëäÉ“’¤gŸ}¶ØVÿÞ0aÂ-X°À¦¯J•*?~¼BBBtáÂÅÄÄ(&&FMš4ÑöíÛ¦³gÏZÇW«VM Õ˜1cìVyõÕWºÿþûmú|||«zõêXcjjª‚ƒƒíVl·nÝZC‡•···Ž=ªµk×êäÉ“zî¹çÔ·o_õéÓÇf|»ví4pà@5nÜØ®ž±cÇjÙ²eÖ¶ÉdRRRR¾+Öûôé£Í›7Ûô%&&æôJ×ï%}ß}÷*\¾¡eË–Š‰‰É·pVÀÊ„””EEEéòåËúã�?´~ýz]¼x1Ïñ�5RïÞ½¢úõëkРA’®¯ŠüðÃõè£�Ú�óÌ3ÏhæÌ™ªT©’Mff¦^}õU½òÊ+…>§8ä7hÐ@‡Ö�!CôÔSO©cÇŽrww×… ´xñb͘1CW¯^U¿~ý´lÙ2U­Z5×¹W¯^­ŸþY_ýµöíÛ—ë˜N�:©W¯^ Tdd¤µ÷îÝêÔ©S¾[ñšL&=ñÄš7ožbcc–븾}ûjíÚµòôô´öY,Mš4Iï¾ûnžóßàáá¡×^{MÏ=÷\�c³³³õÐCiéÒ¥Ž•®‡¥¯½öšž~úéB�/ŠäädµmÛÖî~Ê9uèÐA«V­RÍš5dûûû«OŸ>êß¿¿F�%-Z´HñññÚ³g�V¯^�ëê[???ÝsÏ=jÚ´©ôÈ#�ÈÇÇ'×ë¯ZµJC† Éwëq“ɤéÓ§kúôéÚ¼y³]ܰaCõïß_C† Q—.]¬ýk֬ѰaÃì‚Ù‘#GjþüùvŸ]³Ù¬… ê¯ý«Ý*äQ£Féí·ßÎu¸t=>|x®ÛÆçÔ«W/}òÉ'yÊàô (Ž?nHº©ŸîÝ»†ao¿ý¶Q¥J•|Çzyy­Zµ²^÷ÕW_5üüü mmwïÞ]¬ÈõBLLŒ äè2—²jÕ* 8ÐÑe¸¶€A .‚-  ¡N�:6íU«V©~ýúª¸uZ¸p¡µýÈ#�p_kPâŽ9bs«µœÿß ·Ž rcõë×W³fÍT pëÒÓÓhm7mÚT>>>¬”GüAzñc hpÀà"€ÀE€‹ A .‚\0¸G ôyyyiܸq6m”}À@9äææ¦��G—€bÆÐà"€ÀE€‹àÀ@9”™™©�?þØÚ~à�äåååÀŠ8Ša²X,2 ÃÑ¥p“É$777™L&G—‚b@ ”C‹E'Nœ°i(?²²²tùòe]¾|YYYY„¿d2™äéé)ùûûËÓÓÓÑ%á&PNddd(!!AiiiŽ.€“1 C™™™JLLTbb¢|}}U³fMy{{;º4÷ ÈÊÊÒ©S§JZZšN�:¥¬¬,G—‚"b0ÀMøö@œdTrtÀMËÌH×þøKÖöÊÝ'ååíãÀŠ(>Ãîvt àtÌf³NŸ>­ììlG—  ÉÎÎÖéÓ§,wwwG—ƒB"ÀÅÅÇÇ+##æÏÍÍM•+WVåÊ•åéé)776 Ê+‹Å¢¬¬,]¹rEW®\‘Åb±ËÈÈP||¼‚‚‚X!Š‚f6›•’’bÓçåå¥àà`yx¸ÎËËK¾¾¾ªQ£†Nž<©ÌÌLë±””™ÍfV—ü9.,ç=M&“êÔ©Cø WªS§ŽL&“M?÷/;ø×eÊù¸Óù?QÕÈóXHHH1WÎ/çêߊ+ÊËËËAÕ( ¼¼¼T±bE›Ð755U•+Wv`U(,`”)‘÷vÍÿx>Ç #ïp\UÎU{~~~ª@YR©R%»e[@ࢠÃ�Ùl¶é«P¡‚ƒªP–T¬XѦm6›ùcº2‚À@9d2™P­†M€ë±X,v}îîî¨@Y“Û¿‹…CÊ` òôòVß¡c]€–Ûj=þ@aäöo+€Ë¶€A .‚- P¦¼³æ»|�hTJ•·(‡,‹®$]°¶+W­.776” �·×É÷xHHp)U8` ÊÎÊÔÆ•Ë­íAãþ*/oVÀY,†.¦e8º —VÍ×[nn&G—À…€\]LËPà +]†K;?kˆjøñ¹Š0ÀM¸Ë뀚y§:º থ+S‡Ýã­í!Þ{äãíåÀŠ(Fûut(MÍ;º§ÂM¾ÀE€‹` hNíÄÙóyô=‘kwHHH‰Ôàì€8µÐ»&ùÃ0J çÇÐ(×âãã]Pl€PníÝ»W�<òˆ£ËŠ 0Ê¥”” 6LiiiŽ.(6À(w ÃиqãtøðaG—+G ôyz¸kP¯ö6mÊ“¿ýíoúòË/]P쀀rÈÝÝ]a�C]@¡ÿöý¼6¼«ô ¸„ÌÌL=ýôÓz÷Ýw] P"Ø€S ©˜÷OHH®?€‚EFFÊd2Ùý̘1ÃfÜž={rg2™•ëÜ¿ÿþ»^ýuuêÔI³g϶éŸ4i’4h  *èöÛo×øñãuêÔ©\çiÓ¦Mž×6™LêÒ¥‹Ý9GŽɳÖÌÌLuêÔÉ.ü�‰‰±P´p"ÀåÐÔ©Sµf͵iÓ&ßqMš4Ñž={´råJµlÙ2Ïq‡ÒóÏ?¯F�©I“&š:uª~üñG¥§§Ëb±è•W^QË–-õÎ;ïèÈ‘#JOOW||¼¢¢¢Ô®];;vÌnÎuëÖiÆŒ2™L6ý�;wÖÆ�µdÉ»s‚ƒƒµsçN�1B’äææ¦÷Þ{OC‡•———–/_®ƒªmÛ¶ÖsÚ¶m«ƒZ~þùç|_À™±4@9¤   Õ®][wÜqGžã¼½½ÕªU+µjÕJ•+WVŸ>}r—��­Q£F©R¥Jš>}ºµ?++K£F�Òwß}§Ù³g«K—.2›ÍZ¶l™u%nBB‚"##µ~ýz›9kÖ¬©éÓ§+..N ,°ö:4Ï:<==Õ¾}{ :TŸ~ú©~øaMœ8Ñz¼Q£F’¤Š+Zû*V¬¨Æ�çùe 0PeeekÝö_¬íÝZËÓ“_ úè£ÖØ0 ýøã�¹À¡¡¡>|¸V¬X!IÚºu«<˜gx�™™©/¿üRaaaùn[ ¸"î €bõç°·nݺ¹†¿ÒÿV ßpúôé<ç|þùç­� Ãмyóò»aÃ]ºtI…-pÀp???›vZZZžcÃÂÂt×]wYÛK—.Õ… r»bÅ yxxè�(žB�2„- pBù­|�¤ììì\ûCBBJ  tX,–|�O™2Eß~û­$éÚµkzÿý÷5mÚ4›1iiiZ³f�î¾ûn–X­€³"À uêÔé¦Î3 £˜+œGÏž=Õ¶m[ýüóÏ’¤ùóçëù矗———uÌêÕ«uõêU¶F¹ÅÐ(3¦L™b}|îÜ9­X±ÂæøŠ+T¥JÝ{ï½¥]à€Pf ù¤<<þ·Þ±°Û?KR—.]¬�Íf³FŒ¡~øAÑÑÑêÝ»wžá6àì€ʹGyDC† ±¶ãââ4nÜ8…‡‡«oß¾úøã�µbÅ >Üæ¼””}üñÇŠ‰‰±ö}üñÇÊÌÌ´¶cbbtüøq»k†¡·Þz˦oýúõùÆ9Õ®][ƒ–$UªTÉæ9døðá6aö–-[Ô¥KõêÕK:t°¹Ç0P–°4ÀM¸í¶ÛØz¸ “ɤÏ>ûL ,ÐâÅ‹µÿ~™L&Õ­[WC‡ÕĉU£F IR½zõÔ¯_? 2DíÚµ“›Ûõõ†7nÔ?þñíÚµËfîK—.©qãÆjß¾½^ýuuìØQï¿ÿ¾æÌ™cw¿ácÇŽ)88X]ºtÑ—_~)ooïk¿çž{ôùçŸkÈ�!òõõ-ôs®X±¢6nܨI“&éûï¿W… Ô¦M=óÌ3êÛ·o¡çœ 0P†¡ŒŒ kÛÛÛ[&“É�ÍÍÍM'NÔĉó÷õ×_çÚß·oßB§…¹Na�:uJ’Qäs6l¨o¿ý¶Xêœ0ÀMxfå/òßY´{ÒÎÄœ•¡ß×/·¶÷-wÏ‚ÿª€óùìᮎ.p¨5kÖ¨nݺêÑ£‡£Kœ0ÈU5_o�ŸUø{ª¢èªùòǸ·â÷ß×O?ý¤Y³f±³ðÿ€\¹¹™TÃÏÇÑeyzã�7T±bE=òÈ#Ž.pÀ”!iâmÚ'Nœ°> )ÝbÚ¾}»¢¢¢4yòdU¯^ÝÑåNƒ€2dýÔ6íЩÿ{lF)W”¼åË—ë�wÞQåÊ•uß}÷iäÈ‘:|ø°†ª*UªhÚ´iŽ.p*ÀpJ)))7nœ²³³%I7nTdd¤õø§Ÿ~ªªU«:ª<À)¹9º 7*T�ŸŸ_®ÇfÏž­áÇ—rE€ó#œXbb¢¾ùæG—¥æoû›¬k×®9º8­]»V;vTÅŠU¥J 0@111š2eŠ£Ëœ0à¤Nž<©.]ºhÇŽŽ.JÍÌ™3uæÌõîÝ[©©©Ž.N S§NÚ±c‡ÒÒÒ”””¤µkת[·nŽ. pZÀ€:|ø°:wî¬öíÛëå—_vt9Pj|}}µnÝ:�9sF÷Þ{¯222]”)Ž.€­Ë—/ëÞ{ïÕ_þò-Z´ÈÑå@© Ô’%KÔ«W/=ùä“úàƒ]N¥ÿìOmÚóG´sP%gD 8‹Å¢Ñ£GëôéÓZ»v­<==]nÑÏ?ÿ¬… *::ZgÏž•$©}ûö6l˜î¹ç¹¹±�S�=4yòdÍ�;WwÞy§FŒáè’—crsW�Fá6meƒoõZ6í��ÇpJ¤€ùàƒ´nÝ:½öÚkª_¿¾£ËÁ-¸víšÆ�¯Áƒ«N�:Z°`�6nܨùóç«fÍšZ¶l™¨Ö­[kß¾}Ž.pJÓ§OWÕªU5iÒ$]¼xÑÑå.ÇÍÝC��í?nîüm(€+ œDBB‚þþ÷¿+$$D�?þ¸£ËÁ-HOOWïÞ½¯ƒjÚ´iêÙ³§ºté¢ñãÇë»ï¾Ó[o½%IÚ³g�Ú´i£•+W:¸jÀùøûûë…^Pbb¢fΜéèr LàÏü'ñ /èÒ¥Kš3gN±lýüî»ïê™gžQFF†µÏÇÇGóæÍÓ„ ny~ämòäÉ2›ÍZµj•|||r3iÒ$�8qBsæÌQff¦ÆŽ«àà`µiÓ¦”«œÛ„ 4sæL}ðÁzöÙgìè’¬æTZ©f•]Òç ]r3l‰£+PN±p§N�ÒÒ¥KU£F �3¦Xæüúë¯mÂ_éúÊÔ%KøŸ%éÀ�Z¸p¡Þ|óÍ<Ãß^zé%ùûûKúß–Ñ‹¥4ÊÊ ???=ðÀÊÌÌÔܹs]8=`À ¼ùæ›ÊÎÎÖèÑ£‹eõ¯$Íž=[1b„zöìiíwtÀ¸dÉùúú*,,L©©©­¥$,[¶L‹EýúõÓøñã•���çØ€€õë×ÏÚŽ��Õ–-[J£Ì2ÅÕ?3®¢$ß§ñãÇK’>üðC¥¥¥ëÜ@y–m¶hÛþsÖŸl3„à €»v횢¢¢$IcÇŽ-¶yÃÃÃ¥O>ùDÿøÇ?ŠmÞ[µdÉ]½zU{÷îÕŽ;]N±ûá‡$I©©©ŠŠŠÒ¢E‹òߣG›öÆ�Kª´2ËÕ?3®¢$ß§víÚ©F�JIIѪU«Šun <Ë69`ÃÑ% ¶~ýz¥¤¤(00PáááŽ.§Äýy²£W#—„óçÏÛ´÷íÛ—ïøÛo¿Ý¦ýÇ{Me�«f\EI¾Onnnºë®»$IŸ~úi±Î PNœOÕ‰'tâÄ G— "ì³Ï>“$Ýyç�2™L®·ªiÓ¦6í°°°|Ç{xxØ´sÞ·Àuݺu“$EGG+33ÓÁÕä/4òK…††*44ÔÑ¥(‡<  ¤†¡M›6I’ºvíêàjPæÎ�«ÄÄDíÙ³GÆ Ó¸qãòŸsÅp­ZµJ°: ìº±CBZZšþïÿþO�:uº¥ùΟ?¯ÄÄÄ"�säÈ‘[º&”—Z¼cÇÊd2ÙüŒ=Z’tîÜ9ýóŸÿT·nÝT£F yyy©fÍš8p ¶mÛvSsÆÆÆêé§ŸVxx¸äåå¥:uêhÔ¨QÚºu«ÃžkIÔµeË�;VuëÖ•���ªV­ª°°0½ð :tèP¾ç&&&ª^½zvõÞøéÔ©“ÍŠ®´´4µjÕ*Ïñ:tPVVV¾×«ÿþ÷¿2›Íyž¨/¾ø"Ï•·½{÷Ö–-[ò<ÿ›o¾Qƒ 4aÂmÞ¼9ÏqÕ«W×Ñ£GU¹re»c ,Є $IIIIªR¥Jžóä&%%E‘‘‘Zºtižïw… 4tèP-]ºT’Ô¾}{íܹ3Ï9ׯ_¯ûî»/ß×°0½ûî»êرc®ÇýýýuåÊ•B<“Ü=øàƒZ²dI©Ôê‹EuëÖÕÉ“'%]¿Ïé™3gJtpq|Ÿóû÷'==]ÞÞÞÖöã�?®÷Þ{Ïn\­Zµg×_ÒŸ™²äVß+W|ŸBBBtòäIýõ¯Õ»ï¾{Ó×—ò} +öß÷©Y�€[šp¤ôL³f¯úß½ê§j!/wV®Ã4ü#ëcúß.€2*;;Ûn‘Jƒ \¸%õïÇþýûÕ¼yskûÏùЇKý ÿøã�+))ɺ¥ê§Ÿ~j=6}útëc???…‡‡«Zµjúõ×_uòäI†¡§žzJ½{÷VÆ 5ç�@Mºþ?ÉÔ••¥ß~ûÍ:þ“O>Q\\œÖ®]+??¿Ry®ÅY×±cÇt÷ÝwÛ|ÁCBBÔ¤I¥§§kß¾}ºpáÿ±wßÑQU{ÇŸ éBB½*.EAD�¦tD‘Þ/JA)"ÍEUQA¤$‚)*JQ@J)¡‰$Ô !óþ‘7çfH'“L’ù~ÖšµÎ>³Ï>3™¸ÌoöÞ×£Ù³gëØ±cÚ°aƒÜÝÝ-ÆñõõÕÔ©Sµwï^mÚ´É8W¡BIRƒ ,>ÜõêÕÓ´iÓtäÈIÒÉ“'uìØ1IR‡Ô Aƒ$‹¿¡¡¡jÕª•:dœËŸ?¿1úâÅ‹úóÏ?e6›ªfÍšiÍš5zùå—�5sæL}òÉ'ºÿ¾qn×®]Æ’¡;wîTçÎ�-f{yy©fÍšºsçŽQd½víšþúë/Õ©S'Ñ=‚‚‚$Ižžžé.þ^»vM-Z´ÐáÇ�s TõêÕU¨P!9rD!!!ºÿ¾ÅÏDj-œ×®][%J”�‹‹‹nÞ¼©Ó§O+$$DRÜìÛ¦M›Êßß?É×pùòåZ½zµbcc�s _ÃÆ�«hÑ¢IæðððÐØ±c³,«-lÞ¼Ù(þJRß¾}3µøk­ÏsJ¿ýãÖèÑ££ððpݽ{×øü'ü™H(³fš={¶F��%�óööÖ… ,Š®)±Æ{•[Þ§„J”(¡óçÏÿ=$–«f?Êd2Y´äçç§Q£F³1cbbÔªU+cÖÑ£Gëã�?Nó˜%J”мyóÔ®];ã¹hñâÅ3fŒ1ã¸_¿~úüóÏ­öoËŠ\ÑÑѪW¯žQ„-[¶¬.\¨-ZXôùòË/5jÔ(Ý»wO’Ô»wo-]º4Ù1óæÍ«˜˜˜T_ë„âg§(P@·nÝJ²ÏƒÔ´iSýú믒⠿ӦMSŸ>}äææfô;{ö¬úõëg,…ííí­“'Oê‰'žH5G“&M,–9�W¾|yÍš5KmÚ´‘ƒƒƒ.\¸ ___]¿~]U«VÕ¡C‡’œmݶm[mÚ´IUªTщ'ÒôZHqE™æÍ›3”]]]5mÚ4½õÖ[Æ¿Õl6Ëßß_o¾ù¦"""ŒkS›Ü«W/£`ìää¤ëׯ'ú’Ào¿ý¦‰'÷wwwW`` Ê”)“jö„¯á?ü —^z)Íÿî¬Îš™Ìf³|}}�Ï————åíí�)÷ËŒÏs¼„¿îß¿ŸìÊ!!!Æë^¤Hýûï¿iÊnÍŸ™„¢¢¢ô×_%[ä´¦‚ ªtéÒiê›YïUN}ŸêÚµ«Ò•+9�»pÂe ™ŒœŽÀ�y˜ ÈN˜ àq18粫ßð+V¬P·nÝ,Î9::jÀ€Fø·ß~KóxÅŠÓ¾}ûT²dI‹óNNN2dˆÊ–-«—_~Y±±±Z²d‰zôè¡&Mšdøß‘U¹Þÿ}£Q©R%ýòË/‰ŠSÎÎÎ0`€jÕª¥&Mš(22RË–-S÷îÝÕ¼yóDc:;;«bÅŠ:qâDºöpŒŸí•Ò>¹3gÎ4Š¿EŠÑO?ý¤Ê•+'êW¶lYmݺU 4СC‡ªéÓ§kÆŒiΓPãÆ�õÝwßYÌà-Uª”NŸ>­àà`Õ¨Q#ÙB˹sç$)Ù™rÉY¼x±QÐtssÓ¶mÛ-em2™Ô­[7,XPmÚ´QLLLšÆþàƒôÏ?ÿèòåËzï½÷’œ!þì³ÏjûöíFúÞ½{Z´hÑc¿†�+'e}ÔgŸ}f|¾åïïŸiÅ_)s>Ï9�‹‹‹ž~úi[ÇH„÷*yñ¿goß¾�á±¼½½3õ3ìÛ¹ù¤Ö³l€�r°u€¬Ò­[·DÅßxåË—7ޝ\¹’æ1çÎ�›¨ÈšPëÖ­Õ¯_?£=mÚ´4��ÖÈuãÆ }òÉ'’âfN/_¾<Å?”׫WO|ð�Ñž2eJ²}ã .Ç�O¶Ï£%%_×ôéÓ�öÊ•+“,þÆsvv¶(~ûí·iÎ’PÙ²eµyóæ$—oöôôTýúõ-f?êÆ�’”®åÁcbb4uêT£=yòäd÷1–¤-Z¨{÷îi¿téÒÚ±c‡Nž<™âuzûí·�vÂe·³JNʚйsç4fÌ" ÚW IDATIqÙ–-[¦çŸ>Óî—™ŸgXïUÊâŸFFF*::ÚÆi’çãí!ùøøØ: gŽ•î^ã‘™sæ¯PÀ¾ØÍ àþýû'û\ürÐ’,ö{MMÛ¶mSíóÎ;ïè³Ï>“·gì�7Ò´ÔpFX#׆ ŒeE›6mšäþµ�8p &Ož¬;wîhÏž=ºzõªŠ)’¨ßSO=¥Õ«WëßÿÕµk×T¸páǽpá‚1Û+¹Ùz›6mRxx¸‘·iÓ¦©æmÚ´©¼¼¼¦sçÎéï¿ÿ6ö$N«Ï?ÿ\yóæM×5 ݽ{W’’�!œ”½{÷êòåË’¤B… ièС©^Ó£G}ýõשöKŽÙlÖ_ý¥¿ÿþ[gΜÑåË—uçÎ�={Öèÿo±µìž522ÒØ;:Ož<úòË/ÓU ™ùy†uñ^¥,ájnß¾-///¦ÀNÜ»!Í,gë¹Ûè3RÞ”ÿNéa7à„k‰[Ë£ûî&ÅÇÇGO=õ”Ž?®‡êСCzñÅ­žÅÚ¹öîÝk§¥ ,Åí­ú /hýúõ2›ÍúùçŸÕ¥K—Dýq�å§·o߮ѣG+::Z~~~êÙ³§$Ë™ÂÉ€îË{õêÕdg{?*áÞŸ—.]JW¸Zµji*4§$¾éââ’ækâ—¹–¤W^yEÎÎΩ^“–>�Š��Õúõëõí·ßjçÎ� M÷Y%'eíÓ§�:$­ZµJíÛ·Ïô{fæçÖÅ{•²|˜ækþùçã¸bÅŠÎ�”5kÖhâĉ:yòd¦ŒoM9)ëøñãµzõjåÏŸ_ëׯÏÔeŸÊÌÏ3¬‹÷*e WéÈÈê Ör´hWÝ)YÖÖ1d‚úõëÛ:Àc³›°-™Íf[GHRJ¹>—žYV û&·?céÒ¥•?~…‡‡{ûž:uÊ(þJÒ�;w´{÷nµlÙRÇŽ³¸.)é) &åÉ'ŸT½zõÒuM¹r_ö$oÞ¼ŠŠŠJ×Òã ßëÏÔ9r¤æÌ™cq®\¹rjܸ±ªT©¢ªU«ªB… òööÖÁƒÕ¬Y3«gH«œ”õ³Ï>ÓÔ©SU¤HmݺU5kÖ̲{gæçÖÅ{•²ÈÈHã8;€ ;¢œ‘‘‘iÚ»5aaóÉ'ŸÌÌH’¬“«D‰ÆññãÇÕµk×4Ý;árÍÅ‹O¶ßSO=¥ß~û͘©»eËã9EDDhÓ¦MjÙ²¥Q$NnùçGó�5J3gÎLSÞŒðööÎðºqã†EQ#5ÅŠ3ŽÏœ9“¦k>>VNÀÞ]¹rÅâbñÈIrî4©l`É’%êÖ­[Š}&Ožl·lÙR ÈìXVÉÕ®]; :TQQQ:qℾýö[uêÔ)Å1§L™¢˜˜I’¯¯¯*T¨�lßøbî�7töìYýòË/’⊛ŋ×þýûuöìYmݺÕ(æ¦4¸}ûö:t¨nß¾­K—.iÊ”)š4iRŠy%içÎ�êÓ§�òå˧­[·Z}æejÊ–-«ýû÷§kÏÎgŸ}V^^^ Ó¥K—´råJõèÑ#Ùþ7oÞÔŠ+Ò4öõë×�ã¶mÛ¦Ú?­3‹J8ë/¹™Ïßÿ½±êúõë“Üo9+²fTHHˆÚ´i#///íÚµKeÊ”I±PP�Z¶liõ™ýyN«Ó§O?ÖuÖú™yÔ�!Côâ‹/fjÁ3ÞO\={ö”·„éСCõòË/ëðáÉúéÅ_Ôùóç%Å.Zµj•âø™¡víÚ’â^Çô,/8jÔ(U©RER\ñ¸I“&‰ œ7oÞÔk¯½–æed%éÕW_5Ž,X wß}×b¦m¼“'OªgÏžš5k–qîþýûÆ,Ä”<ÿüóÆñœ9s,ö.5›Íš={¶Ö®]+)n™ívíÚeyÖ5kÖhöìÙº}û¶‚ƒƒÕ§OŸTÿ] EEE©]»vЉ‰ÑÏ?ÿœjñ/66V›6mRDDD²…­ŒfÊÌÏs™óŸþy¢çCBBôÊ+¯h÷îÝéÊÏZ?39Ef½W9ý}:{ö¬îܹ#Ér)|ä>~~~Ú³gO–¬ÞäF&s.ZÏ,,,L|ð�BCC%ÉbI»Î�;ËÁÁA… ÒøñãU¬X1M™2E���º{÷®6mÚ$)®ÐøÊ+¯HŠûcùĉåááaŒ“ܾ¯Õ«WWùòåuåÊ;vL÷ïß7ž{õÕWµ|ùòd—)˜9s¦ÆŒcq.44T^^^iþ·gF.I ÖK/½dJ¥¸Y[ÕªUStt´:¤k×®Ͻð ڰaƒòæÍ›jæR¥JK�JR¥J•,IjÓ¦�6oÞl<çëë«C‡¥:ftt´zõêeñÞKRéÒ¥U­Z5999éÌ™3 4žsqqÑ–-[Ô´iS‹kŽ9¢O>ùÄâ5Ûµk—1›¶qãÆ*Z´¨Å5 иqãÒ¼Ô�,ú˜L& 4HŸ|òIНAfeõõõMtý�ÒTl}÷Ýw«ø+ŽWI3š)^f}žýüütàÀcæèÅ‹->ÛñJ•*¥ .HJü»¶råÊzë­·’ßš?39Ef¼W9ý}úý÷ß%IµjÕ²Iñ™oÿþýêÑ£_Ä2(W-ݼyóT §O<ñ„^|ñE=ýôÓ©~›àÉ'ŸLqßÙ×_]§N�Òˆ#T©R%¹ºº*oÞ¼ªQ£†ÆŒ£ààà4Y5j¤�?þX… RµjÕ�ê5)±V®x^^^Ú¹s§6oÞ¬nݺ©T©Rrvv–›››ªV­ª!C†èÈ‘#š;wnº¾õ1räHã�øÕªU3 ”RÜ ”† Êd2©xñâ8p`Ú_I={öÔùóçµdɽüòË*Y²¤œ��åââ¢2eʨsçÎZ½zµ‚ƒƒ“,þJRÇŽåêêš®ûæË—/ÝKIÇ/ÙúË/¿¤ë:IªX±¢öíÛ§•+WªU«V*Q¢„œ��åå套^zI_}õ•5`À=õÔS‰®/_¾¼Å^ºR\AiöìÙúóÏ?5dÈU®\Yîîîrqq‘———êׯ¯ÁƒkÇŽ:|ø°vîÜ©÷ß_µk×VÁ‚åèè(GGG½þúëÉæ®R¥ŠŽ?®)S¦¨víÚòôô”›››Ê—/¯þýûëÀ�š7o^²ÅÐÌÎÚ¡C�1B P­ZµT¿~}ce�ÔÏyóæÕŽ;´fÍuèÐA¥J•’‹‹‹œ��U²dIµoß^+W®Ôßÿ­—^z)ÉLõë×OñÖú™ÉI¬ý^åô÷é‡~�$c0r—~øAÍ›7×½{÷l%CîÝ»—ìÊ”@VÉUK@g…„K-ß¿?ÝÂÌ’]s!uüñ‡êÖ­«Ð¯¿þª5kÖ¨råÊÚ°aƒ:uꤎ;*:::É1Ο?¯5jhìØ±*_¾¼täÈmÚ´)Å-{ôè¡'NhêÔ©çwìØ¡“'O�fÍšI’Î�;§3f¨víÚª^½ºf̘¡Ë—/K’Ô°aCýøã� ×ŋշo_EEEYŒ}íÚ5uêÔI¾¾¾Úºu«¨Í›7kçÎ�6l˜.^¼¨Y³fÉ××W=zôPxxx¢ÜÐСCU²dI5lØPK–,1ú]ºtIÍš5S»ví´nÝ:]¸pAQQQú矴fÍ5mÚTC† ITôþüóÏ5þüD_Ò®\¹²6nܨü1QGGG|X;vì°˜˜sùòe•-[VeÊ”1 ÐR\1½aÆ*V¬˜–.]ªjÕª)""Bëׯׂ #Iš?¾œ��5kÖ,ãÚ‚ jРA ×»ï¾kœoÑ¢…Ú´i“赋W»vm™ÍfÍ›7O/¾ø¢&Nœ˜l_ä~̲�>}úÈËËK;vìЙ3gl lÙ²E•+WÎV˼fÇL@fÙ¾}»NŸ>-___5oÞÜÖqr¥9sæèßÿ•$•,YÒ(þÆ3™L1b„Ñ^¸p¡"##-ú?~\ûö퓤DË4Ç›4i’*Uª”¡¬;vÔ’%K´mÛ6=õÔSÆù°°0õïß_»víÒòåËõ矪W¯^Ê—/ŸÞ~ûm=ñÄ’¤Û·o«mÛ¶ Q‰%´lÙ²$—4.R¤ˆ¶mÛ&///IRpp°Ú·ooñïîСƒ†®¥K—Z\»zõjM˜0AûöíSïÞ½õŸÿüGMš4ÑܹsµmÛ69;;}çÌ™£={ö$ºÿàÁƒåééi´7oÞœêÙñ«Œ<8Å~Èý˜ dnnnòóóÓ°aÃ4sæL-Z´ÈÖ‘ ¸™‡³fÍÒ믿në(†ì˜ È,f³Y~~~2™Lš?¾­ã$R£F ö&AŽ©Ý»wízõêÉÕÕÕ†‰¶d?ºçk¼ *ÇwïÞÕ™3g,þ6ròäIãøÖ­[IŽáè訡C‡êÔ©S�,IªR¥ŠŽ?.I:qâ„V­Z%___IRþüùµlÙ2‹™ÈRܾ¸ñ÷ûí·åáá‘ìø^^^š1c†úôé#Iúã�?ôÉ'Ÿè¿ÿý¯E¿R¥JY´{÷î­7Þx#É1›6mªÉ“'kܸq’âþ6eÊmݺբ_|ázÚ´i’âfoÛ¶M/½ôR²yW­Z%///µlÙ2Ù>°Ì²‰Aƒ©fÍšZ²dI²ÿ�EÖZ½zµÂÂÂôöÛoÛ:Š!;f2K@@€<¨¾}ûê™gž±u ×É“'�jÖ¬i<òäÉcëHiܸ±q_@}TÞ¼y-Ú·oß¶h'üRñÌ™3uïÞ½$ÇéÔ©“ÕþÔÍÍÍ8.X° ºvíšbÿk×®Û�IJÓŠsÝ»w7fKÒÇœhd'''‹vÉ’%Ssذa*\¸°ÑÞ¾}»®]»–d¿„¯ëœ9s’óèÑ£:yò¤ºwïž(ì3€Sª?üP¡¡¡‰žëÕ«—T¸paùùù©hÑ¢vŸ �/Ož<úôÓOõì³Ïjäȑڸq£­#Ùµàà` 8PË—/7ö…°µì˜ È,aaa6l˜*V¬¨™3gÚ:N’ª¸I*tÄÖ1«0Ïïaë;v¬Ê–-«›7oªG�´ý?âƒ,Ú�7–‡‡‡"""tâÄ 5mÚTË–-K´ä³···Åž·Ö’?~™L¦ûlÛ¶Íb 焳š“ãìì¬víÚéóÏ?—$]¿~]{÷îU“&M;««««Ú·ooŒi6›µoß>µmÛÖ¢_‘"EÔ»wo£h½}ûv%¹*ݪU«$ÅÍ>˜œŠ… jÞ¼yò÷÷—¿¿¿ÅskÖ¬‘¿¿¿,X�åKöf×\ȘºuëjΜ9Ú´i“¾øâ [DZk={öÔ¨Q£Ô¦M1dÇL@fyóÍ7©ï¿ÿ^ °u€\Íd2©sçÎêß¿¢™¾ýõ—Þ}÷]‹YÂ’íG[ @M™2Åh8p@O=õ”F�­ðððÌ Ÿ¿ýö›EûÑ½Ž“S§N‹vü^ÇÑ A‹öùóç“ì7zôh98ü¯œ—Ü,`U¯^]µjÕÊp6ä|€SÑ¢E ‹©ýI)T¨�^|ñÅ,J'»æBÆ m—(QB+VL±³fÍäëëk´çÌ™#)nùç è•W^Ép&ä€ìÔŽ;l´«W¯žd?³ÙœêX[·nMö¹-ZhùòåF;©Ù·&“É¢ýðáÃTï™M›6µØËøûï¿O4»7) ³Ö©SGåÊ•Ëp–Ço½õVš®I¸p`` 6mÚ¤uëÖ©K—.ruuÍp&ä€ìÔñãÇ-ÚaaaIö»pá‚E;:::QŸ={öèܹsÉÞ«mÛ¶Æ,ऊ»�1¯_¿žìX�ÃÕÕUcÆŒ1Ú÷îÝÓ’%KR½.áV�'NÌpŽ˜˜­Y³F’T¨P! 80M×uìØÑ¢øÜ·o_ݺu‹åŸ‘`;õè¬Û€€€D}îÞ½« &Xœ{´ ,ÅÍžûlš®‡ý  Ø›×æHÝgHO·�žn¡aÆ)888Åoir§G ± ,ÐðáõgÏ8p@ .”¯¯¯|}}åäädô›?¾öíÛ§ùóçkãÆ�Æù¥K—ê믿Nò^óæÍStt´\\\ôá‡&zÞ××WnnnFûý÷ß—¿¿¿Ž=ªñãÇkÊ”)Ê—:}Q IDAT/ŸñüÉ“'�ãÐÐP…„„¤úïuttT@@€jÕª%Iºyó¦:vì˜äRЗ/_6f×¶mÛVóæÍKu|Iúúë¯õùçŸ'ùÜþýû5zôhIÒÔ©SÕ±cÇ4�ïõ×_·(¿öÚkéºö�0`oò{Iù K.î’‹»<==UºtiùøøØ: ‹Õ©SÇ¢ˆ«O>ùDÏ=÷œêׯ¯wß}Wcƌќ9sÔ¤I£ßÑ£GÕ AMŸ>]U«Vµóõ×_W�=´yóf;vLÛ¶mSß¾}5vìX(P@ëÖ­SÍš5eqww×àÁƒ�ö­[·Ô­[7Õ¬YS?üðƒÖ¬Y£ððp­_¿^]ºtÑáÇ-®o×®�V®\©Ã‡ëÖ­[Éþ›½½½õË/¿¨wïÞ2™LÚ³g�jÔ¨¡… êàÁƒ:pà€fΜ©Zµj),,L&LÐúõëӼϮ¯¯¯† ¦:uêèË/¿Ôï¿ÿ®_ýUÿýïÕ¤I¹¸¸èË/¿Ô;3¦ñrssÓo¼!)növ¯^½Ò=r?G[€í,]ºT¾¾¾úâ‹/têÔ)¹»»«\¹rj×®�ú÷ï/oooIÒâŋէOýñÇ*T¨�Úµk§‰'ªpáÂúóÏ?�ñÌf³V®\©•+WJ’œ��Uºti :T£F�Ò“O>™l–©S§Êd2é믿ÖíÛ·U®\9õìÙSC† 1 Ä ,HòÚ£G�ªG�’¤Ï?ÿ\ýúõKö>Zºt©FŒ¡eË–iÇŽ?~¼îÝ»§Â… «B… 9r¤zõê¥âÅ‹§ëõlÕª•¾ùæM™2E&LPhh¨òçϯråÊi„ êÛ·¯Š)’®1jÓ¦�>þøc=÷Üs|™I¢ `Ç4|øp ><Å~eË–ÕÏ?ÿœäs�:u’ÙlÎpGGG}ôÑGúè£�’|~þüùš?~†ï¯F�š={¶ÕÆ‹W±bE-[¶ÌêãJÿÛc8~yjàQ, ä7n”‡‡‡:wîlë(Ȧ˜ ðŸø@Õ¼òØ:ðØ"˜5Ý=êÿ[OÛ4 €lÌý iô[§ÈÝÜŸ°uä 7oÞÔ÷߯޽{ËÃÃÃÖq�MQì�siÀœãÈÙÙÙ¶�dO&)oa[§ðÿæÏŸ¯¨¨( :ÔÖQ��Qì�ƒƒIEó™âE‹Ú6 HÕ©S§4}útµk×NU«Vµudc€;r3öÿB$I>>>6Ë@NmѾÿ~†ÆûñÇ5iÒ$9;;«E‹êÙ³§ÂÃÃõÊ+¯(&&F}ôQ†ÆGîG°Se>‰ˆ;ø¤Œ$Él6Û0 9SPP�EûèÑ£¯gÏž •$íÞ½[ãÆ�3žûè£�T¡B… ��ÜÏÁÖ€œæÌ™3Z½zµz÷îmq~ûöí3fŒvîÜ©ãÇ�'š!œooï$Ï8PcÆŒyì¼°ÌìPT ³}Ȉzõêéúõë‰Î›ÍfÍœ9S3gΔ$?~\Õ«WOó¸6l˜öïß/IúÏþ£¡C‡ª]»vÖ Ž\�0`‡X퀌¹víZ¦Œ[¥Jmß¾=SƆ}` hÈ%(@.ÁЀ�VÏ)î þ@½ýöÛ¶ «  Ø)OWÓÿxªtéÒ¶ «` hÈ%(@.ÁÐ�a{ùt²dI[ÇK§N�¤ÈHiút[G€•1r À�K°4`'BCC%I!!!ŠŽŽ–‡‡‡ .,Irp໡¹`ÀN 4(Ñ9³Ùlƒ$È,|Ír À�KP€\‚=€;"I*Uª”ø~(@NÇ_x;¶téR-]ºTÑÑѶŽ+`0`',X IjÕª•¢¢¢´hÑ"'€µQì„···$ÉÇÇG‘‘‘òôô´q"Ù�ÙlfÅ Læìì,“Édër À IÑÑÑÚ¸q£­cäjmÛ¶•‹‹‹­cÈEØr À�K°4ÀchÞ¼¹ªU«fëÙÒ±cÇôÚk¯)$$D}ûöÕìÙ³m °Ì€U |hÑ6›Í6JØ À°ª9sæ¨råÊÊŸ?¿† ¦^xÁfY®\¹b³{¶ÀÀ°ªºuëêäÉ“¶Ž¡mÛ¶) @_|ñ…­£Y†0`‡œœœÔ­[7‹6¹É¥K—Ô³gOµnÝÚÖQ€,E°CyòäQåÊ•m€L©Î�;ëÚµk¶Žd9ö@®ñðáCõêÕKû÷ï·uÀ&(@’ôàÁ�;wÎêãÆÄÄX}̤„‡‡«sçÎZ³fM–ÜÈŽ(ع#GŽhĈ*Q¢„&Mšdœÿé§ŸÔ«W/•-[V®®®*Z´¨Z·n­ï¾û.Õ1�?.???U¬XQ¿þúk²ý¢££µ}ûv 4H¥K—Ö¥K—$If³YëÖ­S«V­T´hQ¹¹¹éé§ŸÖìÙ³“,(‡††Ê××7Q¶eË–Éd2�š5k¦õer$öìPtt´Ö­[g´;tè ggg&dµ   -_¾\k×®ÕéÓ§-ž»uë–  ‹óW¯^Õ–-[´eËuèÐA+W®”‹‹‹ñü‰' §xÿuëÖ) @?üðƒÂÃÃ�ó111ºxñ¢^ýuíÚµËâšãÇ�kÔ¨QÚ¿¿,ž+X° 6mÚ$Izá…ôÏ?ÿH’Úµk§iÓ¦ý\]]S{i€�À€Š��Upp°ñˆ��µu$@»r劊/®Ê•+[œ ÓóÏ?¯ãÇ�kÑ¢EÚ·oŸ~ýõW½÷Þ{Ê›7¯ÑoݺuêÞ½»Ñþã�?4kÖ,………éÖ­[©Þ¿P¡B9r¤ªW¯nqþäÉ“ª_¿¾$iÍš5:r䈾ÿþ{ÕªUËè³fÍšD`'''U®\Y•+W–“““q¾@�ÆùÊ•+ËÇÇ'õÈÁ˜ `‡š5k¦fÍšéÍ7ß”§§§¢££%I[¶lÑäÉ“åçç'“ÉdôöÙgÕ¥K5jÔÈ(ð®[·Nß|ó�zöì©:uê¨N�:’âfàvìØ1Åû7nÜX’4`ÀíÝ»×8ßµkW}øá‡:t¨q®F�jذ¡*T¨ ëׯK’>ûì3uéÒÅ ¯�»0À޹¹¹©páÂF»iÓ¦zï½÷,Š¿ñªW¯®Å‹[œ›2eJ¢~�Î*NIÑ¢E-Ú3f̰(þÆ+X° :uêd´÷ïßÏŠV@(ع„K&—,Y2ž]ºtÑSO=e´ƒƒƒuèÐ!‹>îîî�uo)åâqµjÕŒã»wïêæÍ›i¾`/( ÍL&“ºuëfq.áΙ)_¾|í»wïfÉ}�œ„=€öÿèD”‡­c�-:*RAWníµž—³‹« `{�}KÛ:9Fƒ ,ÚçÏŸ·I–€c0Ò¥R¥JíÛ·oÛ( €GQ@ºxzzZ´]š€í°4ìRè?-Ú!O˜-Ú>>>Y˜€œÅÑѲÄäååe£$EvipÛF–íGž7›ÍI ·h×®]ÛFI<Š0`‡L&“òæËoÑ ­NŸ>m»¸¸¨Aƒ6L ! À€rrvQëî}m�C8pÀ8îÑ£‡<<66Ö¢�Õ[+¸ººÇׯ_ÏÒ{¶F† .¤øü–-[´ÿ~IÒ”)ST©R¥D}îܹ“b;¡˜˜˜4g»wïžE;¹Âr‰%ŒãƒêÁƒF;""BëׯOó=�œ†0 »wïÖû￟h¯·÷oŸ>}$I ÐÈ‘#“ãØ±cí£G�&{¿+W®X´oݺ•lß³gÏZ´oܸ‘d¿† ÇaaaêÝ»·~ÿýwmÞ¼Y 6ÌòÉ@Vb`À™ÍfÝ‹7Úîù-öGÀÌ߸Ǣݺú“6J@öR½zuÍ›7O«W¯ÖàÁƒåëë+íܹSü±¢¢¢4mÚ4�7Îâºk×®)$$D���š0a‚Ås³fÍR¾|ùÔ¤IU¬XQîîî’âfÿ~óÍ7}W¬X¡Ö­[ËÉÉÉâüÕ«WµzõêD}k×®�èßðÖ[oiîܹº}û¶¤¸%«W­Z¥,OOO5hÐ@cÇŽU½zõ2ôúÙ`X(^¼¸æÏŸ¯ùóç§ù???ùùù¥¹ÿŒ34cÆŒ4õݰaCšÇ�W·n]ýöÛoé¾ÈéØr f<†Î'TÍ%ÂÖ1€Ç©hý�çŠÑîèrD®.Î6L@6tØÖ €œ­ûiæFÎÎÎjÛ¶­­cäjÎÎü¿ë¢ ’d2™äââbë€t` hÈ%(عèèhãøþýû6L £XðØB.‡Æä 1ÎùøøØ$ €Çsýúu]½zÕh=zÔ†id`Àc+Ób@¢sf³ÙI¤×Å‹uøðaÍš5K±±±Æù¿þúKo¼ñ†:wî¬%J¨lÙ²òðð°aRéAÀµoß^‡Jò¹¯¾úJ_}õ•$iãÆ�jÓ¦MVF�€ìÐÁƒm@&  Ø!ǾôWåqr±a"È^ú6²ux,, ¹`È%XØ­»×®$y>$$$Ùk|||2' X``·¶Œëšäù2ã’¿Æl6gRÈ8–€€\‚0䀤KXX˜¶nÝjër±Ñ£G«}ûöºÿ¾­£@ŽC@š�?^ 6ÔÞ½{m@.6iÒ$]ºtIÍš5SDD„­ã@ŽB@šüý÷ßzöÙgU¯^=Mž<ÙÖqäbyóæÕæÍ›uéÒ%µmÛVQQQ¶Ž9†£­Èþnß¾­¶mÛªT©Rúâ‹/l€ðööÖ²eËô /hèСúôÓOm ÈuL¦<*T®šEìQ«éþIž_еn'ë  E±±±êÑ£‡.^¼¨M›6ÉÉÉÉ֑؉&Mšhذaš3gŽš6mª®]»Ú:�«88:ªhõz¶Ž6—·p±$Ïûøødm°–€�¢O?ýT›7oÖÔ©SU¾|y[Ç`g&Nœ¨'žxBC† Ñõë×m²= À’uõêU½ûî»òññÑÀ�m€*P €Þyç………iÒ¤I¶ŽÙ`Ézç�wtëÖ-M˜0Á*K?/\¸P®®®2™LÆÃÍÍ�½=¤è­·Þ’‡‡‡>ýôS�?ÞÖq [c`Iºpá‚–/_.///õìÙÓ*cnذAQQQç"##µlÙ2½õÖ[V¹€Ü'_¾|êÞ½»>ûì3Í™3Gsçεu$IÒl�µª–ßÓÖ1€Çó0VÏüoiõÿ”+$Ç<|? k–Ø:�µ:/³uX ár¸eË–)oÞ¼ªY³¦"""¬6îÌ™3£=zXeö¯$MŸ>]½{÷V×®]õüóÏçccc­2~FdÖ눌ã½É92ó½êÓ§�$éË/¿ÔÝ»w­:6`¯bšµõÈeãóÐlëH° À@·lÙ2Ý»wOG�ÕÞ½{­2æýû÷µtéRIÒk¯½f•1%©V­ZZºt©V¯^­ &Xm\kÈŒ×ÖÁ{“sdæ{U·n]yyyéÎ�;Z¿~½Uǀ܄% �.áìYkͤݲe‹îܹ#oooÕªUË*cfw™ñ:Â:xorŽÌ|¯Ô¢E }óÍ7ò÷÷W�=¬:>`/BB“Y­'$$ÉÓ>>>™–™ƒ0€D$IM›6•Éd²qˆóÜsÏé›o¾Ñ®]»-ggg[Grœ2ƒ×%ýD2çÍf¶‰Èi(°`6›õã�?J’5jdã4ð?ñ+ܽ{WTƒ {¬ÐÐP………¥ëšÓ§O?öý «°pµwï^y{{Ëd2Y<â—Äü÷ß5eÊ=÷Üsòòò’³³³Š)¢W^yE?ýôÓc�¨#F¨V­Zòôô”³³³J–,©W_}U»wïΪº$)**Jßÿ½ú÷ï¯gžyFE‹•›››ÜÝÝåãã£&MšhöìÙš�ïñvïÞ­‰'ª[·nªW¯žªU«&oooU¬XQ�5ÒàÁƒõñÇÛõÍ䢾�ŽŒµ¨ÄÅÅiÀ€ ‘���ªV­ªððpMš4I‡ʳ¯­ßÙ½ûT©’E;«k@Ç{¼´áYý©iÓ¦òðÈüîÚ/¿ü’ïþÙ-Z´HaaaùúéÕ«W¡^Šƒ›™y\J¥iÓ¦iúô鹞›>}º^zé%ݼy3×ónnnzõÕW5jÔ(»Ç0`€V­Z•gÂ*22Ro½õ–|||켊‚Ù´i“FŒ¡S§NÙÝÇd2é×_µÙnÆ 2dˆ.^¼hµM³fÍ¥'Ÿ|R’Ôºukýøã�m:tè ¸¸8«c|öÙgjР�†®Í›7[mW­Z5;vL•*U’$ùûûëêÕ«6¯Ãš'žxB+V¬È³Ío¼¡áÇK’.]º¤*Uªäë5®]»¦Ñ£GkåÊ•Vß/¾¾¾zôÑGµråJIR«V­´mÛ6«cnÚ´I={öTzzºÍ××¢E‹tï½÷ZmS”÷Ñѱ:ÚåË—Õ¿}úé§VÛxxxh̘1š5kV®Sìæõ»"%%EÞÞÞÆþ¨Q£´xñâ킃ƒuöìÙÇ‹ã=^Zð¬rg2™tâÄ �9R‹-*ðëçuoìµonO…Öª\¨1gJIM×ì {�ý‰½šÊÇ«œ#ÅÁí±ÿæ«=:ޝ°°0cß¾} ubD®‡) K©Q£FéÒ¥KJLL”$­Y³Æ8mlW¬XQÍš5S@@€vîÜ©'NÈl6ë™gžQ‡tç�wÚ5fV¢NÊL„‡‡ëÖ­[Ú³g�Ñ>66VgÏžÕÆ�U±bÅ"¹î�?þX=ô�Å?>L&“jÖ¬©*UªÈl6ëìÙ³Ú½{·222Œ6öücå…^PLLŒEÛF�©^½zº~ýº¶oß®äädíÚµKC‡Ísì9sæháÂ…ºqã†q쫯¾2¦�‹‹SïÞ½uíÚ5ã|`` ÂÃÃuíÚ5#záÂ:tH÷Üs�¤ÌçkqmÙÇm×®�ªW¯žëõU¨PAÏ=÷œÍû/Iª\¹r¾“¿.\PçÎ�µsçNãX•*U¦€€íÞ½[ ºqã†Å{Ê–¥K—Z$T[´h¡5jÈÛÛ[—/_ÖÑ£G•�� )³ú6""BkÖ¬QÏž=s¯(cu¤ãÇ�«K—.•å&“I�7VJJŠöîÝ« .(--MóæÍÓž={ôᇪ|ùòãäõ»âöÏÄ ”––¦«W¯*99Y7n”$‹{Ÿ]q¼Ç³Ì›7O&L(–?féäÉ“ ׼𬬫Q£†Nœ8¡={ö¨?¸:*€]„›››Å¾»»»¦L™¢ñãÇÕ£iiiêÖ­›±¾ë„ ôòË/Û=f�5ôÊ+¯¨W¯^ƹ[·niÉ’%zöÙg�Šã!C†héÒ¥»¶ìî¹çmß¾]RfUòôéÓU·nÝíNŸ>­‡~Øh[§N#é–›¥K—jذaÆ~çÎ�5{öl…‡‡Ç.^¼¨qãÆé¿ÿµü¦¬­êÕ,íÛ··˜5Kýúõ5wî\=øàƒrww×É“'Õ¼ys]¼xQMš4ÑŽ;ò¬ªÎ>î§Ÿ~ª.]ºØŒ%/=zôÐÆ�Õ¸qcíß¿ßî~êÔ©“Qùìãã£Y³fiøðáòõõ•”™pZ³f�†ªëׯ}mÝÃ'žxÂH{zzêâÅ‹9¾=~¤ IDATdðÃ?(::ÚxýòåËkß¾}¹¾?rã¨ûX±DjjªZµj¥Ý»wK’BBB´hÑ"uîÜ٢͛o¾©ñãÇë�?þ�$ýãÿÐÛo¿�çØÙWܸqÃêû5!!Á¸Æ;î¸C¿ýö›]±;ú=žåæÍ›:tè�Õ§#U©REuêÔ±«-Ï*o}úôÑ{ï½—¯¸rSÐ5€³OM0J;*€(›¨ÎFpÑ£ØE½óÎ;ŠŒŒ´8æáá¡#F à~øÁîñ‚ƒƒõã�?ªV­ZÇ===¥��õìÙSZ¶l™ú÷ï¯öíÛú:n·woæ)ëÕ«—#›]Íš5õÒK/©S§N’r&³³;xð ÆŒcì�3FóçÏ—»»åÙÆt¥y½v~´k×N|ð�E¥míÚµuôèQø ÒÒÒì{æÌ™:{ö¬Îœ9£^x!× óûî»O_|ñ…‘„þã�?´xñbýûßÿÎ×uVI�uÚ´iFB±aÆúî»ïdÑÆËËK#FŒP³fÍÔ¾}{¥¤¤hÅŠêׯŸñYr%ÞÞ޺뮻œF<«¼eý¾¼råJ¡Æ Êq_€²à×WÉýD÷¹ÅŠŒ»í&(m"##s$³Ô¯_ߨ>wîœÝc.X° Gò7»îÝ»kÈ�!Æþ¬Y³ì;?²ª™/]º¤óçÏçÙ¶]»vjÔ¨‘ÜÜÜôÈ#Vþq#iÆŒJII‘$Ýÿý¹&³{íµ×TµjÕDo)$$DŸ|òI®Ó,W®\Y­[·6*g‹Ó¥K—$)_Óx§¥¥é¥—^2ög̘‘#ù›]çÎ�Õ¯_?»Ç¯S§Ž6oÞ¬äÙÏÝÝ]#GŽ4öwìØa÷k8JIŒõÒ¥KZ¸p¡ñº+W®Ì3ñÕªU+Íœ9ÓØ�‰‰)²Ø`‰ge[ÖïÅ””¥¦¦:9 ô1UÈýÇdÊõ¥À.(ûTÆ·ËJ J²XŸÖ–=zØl3iÒ$½ñÆ’2׸½té’C¥Ù=úè£Z¼x±._¾¬ððp 6L —¿¿¿E[///ÅÇÇë�?þP… r/99Y|ð�±?kÖ¬<“¿RæÚ•ƒ Òܹ…ûfìÒ¥KåççW¨1ŠBrr²$å«òxëÖ­:s挤ÌJéìÕÖôïß¿P•Ôf³Y‡Ò‘#GtìØ1�9sF×®]ÓñãÇ�6Y×âlÎŽõÃ?4¦ Žˆˆ0Ö”Î˨Q£4cÆ ]»vM[¶lÑùóçuÇwYŒÈij²-ûc®\¹¢ÀÀ@'F”nÞžîz¦{‹}”~$€]PöyÓ%¯)”³˜L&5mÚT{÷îUzzºvìØ¡Ž;:4ŽÙ³g+>>^ß}÷�~ûí7͘1C3fÌ�”9ís“&MÔ¤I5kÖLmÛ¶Uݺu­&%i×®]Fõ¯ÉdR›6m슣}ûö…J‡††*""¢Àý‹RV"ÒÛÛÛî>ßÿ½±ýÐCÉËËËf{ÚÜ.##C6lкuë§ÄÄÄ|�Q\JR¬[·n5¶íù2‡”¹.ñ<  6Èl6ëÛo¿Õc�=VT!âÿð¬l+WîÏõI³ÖžP0nnnªì—ÿÿ d#ì‚ò3u¯£Õ¯_ßX§7«"Ô‘*Uª¤¯¿þZëׯ׿ÿýomß¾Ý8wúôi�>}Z_|ñ…q¬M›6š:uª:wîœëx§OŸ6¶ï¼óN»ãÈ+©l�¼¦¤v6¥§§+==Ýî>gÏž5¶ósócíÚµŠŽŽÖ�Šd|G*i±ž:uÊØ®]»¶Ýý²·ÍþYAÑáYÙ–}ö gÏ¢ðKõ>ºV+Ä©1J—Ö­[;;@@e6›‹ü5ÜÝÝÕ»woõîÝ[‰‰‰úöÛoµcÇíß¿_ñññJHHPFF†¤Ìjº.]ºhôèÑúÏþ“£’ÙÃãÏ�@öª²¢V¯^½b{­üòóóÓÍ›7ó5Exöçnk í‚7nœæÏŸoq¬^½zj×®�7n¬&Mš¨Aƒ ÒöíÛÕ¡C‡Ç`¯’kö瓟ŠÉìmYkµxð¬lËšµAr~J"À°KJJŠ]kÂ9rÄØ®Y³¦ÃãÈÈÈÐÑ£GU·n]yzz*((ÈHg¹~ýº~úé'½ûî»zç�w”’’¢W_}U!!!;v¬ÅxÙc|ø°öíÛgW›6m*àd²gMeG:}ú´L&“üýýõþûïçÙ6+ytùòe»ÇϾvò'Ÿ|bW%¸½÷ðÝwß5¶Ÿ|òImÚ´©HÞ[ö°uKR¬ÙeŸjðƒ>°«Ï™3gôóÏ?û÷Þ{o¡ãȪÌ/ ùy�g™;w®ÜÝÝåææVä?AAAv}q„ge[Ö”ó&“ÉÁ‘eOjjªbcc�WŸA ¬(½eR(VË–-Sdddžmf̘alwíÚUþþþ�cË–-’2“Í«W¯ÖÀ�ólߤIuîÜYk×®Ubb¢.\¸ jժ罼¼Ô³gO­^½Z’4mÚ4­[·.Ï1Ïž=«åË—îB({�µªÝ�>úÈX[tÆ y®A¢mÛ¶åkÑûî»O���JJJÒéÓ§µzõjõïßßjûË—/ë�wÞ±kì‹/Û=zô°ÙÞÞÊâÛ9â>W¬ùÕ«W/�3F7oÞÔþýûµnÝ:=úè£yö‰‰‰QZZš¤Ì/J4hРÐq=z´@ýýÏ¥Ž;i²3KÕªUåíím³Ïʶ¬ßMuëÖ-PŒþd6›�ªú¬}Žqîܹ\�'$$äzœ/6‰0ì§ØØX«IàeË–)66VRæ´¶S¦L±:Ö¿þõ/½üòË Ð[o½eQ=š3gÎT÷îݘg»C‡ÛYÕ¾ÙMš4I±±±ÊÈÈÐúõëõꫯjôèÑ¹Ž•ššª~ýú)99¹@1…ìSÆÆÇÇ«W¯^9Ú|õÕWÆvHHHžãe­OüÛo¿)##î5}½½½5f̽𠒤 &¨M›6V4ƒVRR’Íq³Ç#e¾s»¾ì>ÿüs»Æ½�#îcQÇ:~üx-_¾\ÁÁÁZ¹r¥Z¶liW¿   �1B .”$�=Z-Z´°ú|6nܨ%K–ûÑÑÑyŽïééi$³ÿýwU¯^=G›ôôô\«ðíáè÷x///Ýu×]Š©¨ð¬lËJ7iÒ¤P<òû'¾€p$¦€†Ý†šcÚÞ .hüøñ:t¨qlÊ”)V§½ýæ›o4qâD]¼xQ‡Vß¾} \}wüøq=ðÀúî»ïr=¯~ýúiÏž=’2§EÍmã°°0ýóŸÿ4ö£¢¢4f̘ Êøøxµk×Nß~ûm�â-*ûÛߌíùóç[¬j6›5oÞ<­_¿^RæÔÓ¶’’-Z´�$¥¥¥Y­PÈÍøñãÕ¸qcI™ÉãöíÛçHp^¾|Y °{j[IêÛ·¯±ýÚk¯éù矷¨´ÍràÀ=þøãš;w®qìÆ�Fe¤-ޏ�EëÚµk5oÞ<]¹rEÔ Aƒìº®,³fÍ2fçÏŸWûöíõå—_Z´IKKÓâÅ‹õØc�„U¬“'OÖK/½dÑ>>>>_U�T—.]tâÄ ãXHHˆBCC•ššª;vèÂ… ƹx@~ø¡üüüòwÒ¤I£µjÕRhh¨|}}uòäIíܹ3GUKöß?ÁÁÁŠŽŽVåÊ•sßÑïñÒ€g•»uëÖ©wïÞ’2“ãY¿«ŠK||¼ÂÂÂŒýwÞy§@UÌ@IqóæM­\¹ÒØ0`€]ÓÕ°íÞ{ïÍW{þY ,¹ýïlûöíShh¨#r=$€K©iÓ¦iúôé6Û=ÿüóêÚµ«ÕÄgvo¾ù¦EÂ){²uñâÅ7n\®É;)3Á:}útMš4)Ïר²e‹î¿ÿ~c?$$ÄHØ#+¦;î¸C~~~Ék6l¨7ÞxÃâusc6›£˜˜«kWJRÿþýi¬ñš[¸C‡Š‹‹³Ûí† ¦×_=ßý8 ®]»Z$‹²sssÓSO=¥… Ú5¥sÆ uøðaMž|XcÇŽUÆ åãã#???Ý}÷ÝzöÙguðàA›É_IjÛ¶­±þohh¨EÅ­=ž|òIU¨PA¯½öšöï߯ÿþ÷¿êÕ«—êÔ©#yxx¨jÕªºçž{ôÔSOé³Ï>Ó�l&¥Ì¤Ä”)StèÐ!M�:UÍ›7WåÊ•åëë«úõëkøðáúù矵jÕª\×Îîïÿ{®ÓMç¥bÅŠêÖ­[¾údiܸ±öîÝ«˜˜µhÑÂ"îaÆ駟~Ò+¯¼bw²%kYkÓkçåÎ;ïÔ�?þ¨Õ«W«[·nªQ£†¼¼¼¨.]ºè­·ÞÒ¾}û4bÄ5mÚ4Gÿúõë[¬¥+e&¹æÍ›§]»v)**J�5Rùòååíí­ÀÀ@µnÝZ£G�ÖæÍ›µsçNÅÅÅiÚ´ijÑ¢…ªT©"yxxhàÀ�yÆîˆûXT±>òÈ#;v¬üýýÕ¬Y3µnÝÚ˜ ?§O>ùD‘‘‘ª]»¶¼¼¼äëë«&Mš(**J»wïÖ‚ ìJ(J’ŸŸŸ6oÞ¬µk×ê‘GQíÚµåíí-///ÕªUK?ü°V¯^­#GލK—.¹ÆÔºuë<_ÃÑïñÒ€g•Ó§Ÿ~*IF0 '*€aUö à7nä;¡éʾùæc­ËÜ*€K»ÿýïúë_ÿªråÊ)))IUªTqvH¸M�=Ô©S'EEE9; Xœ:uJµk×–$9rDõë×/ö¨†«¡(:T€uT=ûJ†”)÷Üs�êׯ¯£G�êÓO?U¿~ýœnsîÜ9Õ¨QÃÙaÅ&k­û:8%ù @~¼ÿþû¹oÖ¬Y1G(‹HÈÕØ±cõÔSOéí·ß&\Â\»vMûöíSxx¸³CŠ…Ùl6ÖGöÙg� ¶çzÜd2o €2ÉuKàPƒ R`` 6oÞ¬cÇŽ9;d³iÓ&5jÔˆ©gQf|ñÅ:zô¨š7o®N�:9;(ÑHÈ•¯¯¯¦L™"³Ù¬9sæ8;ü³Ù¬¹sçjàÀ�Î(f³YS¦L‘›››^}õUg‡¸wwwÕ©SÇøqw矮€) XõÔSOé­·ÞÒ²eË4nÜ85hÐÀÙ!•y±±±JJJÒÈ‘#� P,Þ{ï=mß¾]C† ѽ÷Þëìp,Ü}÷Ý uv@¡´mÛÖÙ!ÀÁHÃ�˜˜¨_|Q‰‰‰9Î=ñÄrwwWµjÕ4eÊU¯^Ý :×§Ÿ~ªU«V)==Ýâ=zT‘‘‘’2×úš:uªªT©â¬0ª\¹rzýõ×uß}÷iܸqúøã��R™vðàA�5J+W®”···³ÃŠ\RR’ž~úiÝyç�%r&‚°7J»�à4æWû;;ä‚0 ‹-Ò+¯¼’ë¹µk×Ûš>}zq…Ub 2DgÏžÍqüâÅ‹Z³f�±¢¨¨¨â ­Hýõ¯Õüùó¥åË—kðàÁΩÌzüñÇ5~üx=øàƒÎ(C‡UJJоýö[ùûû;;(Xè †Î�;+000Ï6êØ±c1ET²<öØc6ׯ V»víŠ)¢â3zôh 2DÏ<óŒâãã�N™õÎ;ïhÊ”)Î(S§NÕæÍ›µ~ýz5lØÐÙá@©A0 ÷Þ{o®Ó?#Óüùó5þ|g‡á4‹/Ö­[·Ô¥Kýøã�ªY³¦³C*sH‚¡¬xóÍ7õÚk¯ióæÍjݺµ³Ã\WF†tå·?÷ý«K6¾ì€’�¿ð°‹‡‡‡Þzë-EFFê©§žrv8\Xƒ ´mÛ6’¿@QËH“ŽüøçOFš}ý®&IW“”�� „„„" ùG0»¹¹¹éå—_vv\\Û¶m�€¼¬+Iªûÿ5›ÍÎŒ·¡\ `p$€ÀE�A\„‡³PŠ ˜/IúuF/'€Ü�`¿J�’$“ÉäÜ8�+¦€A\S@À¾ª3XÎÙa–‘aÖÉ6fc¿¶ÿf¹»»Ù?ÀôQnG_q`d( À@äîî&S•|$|P*04¸*€HÂåŒÿÛH�$™L&§Å€L$€HÝ…×37Ö•$™ÍæùD ,Pýúõ�'‹ŽŽÖŠ+¥:( ÀÙ!àÒüª[=g2™Š/@¡04€áüùózþùçe2™4jÔ(g‡ ð÷÷פI“”””¤éÓ§;;(H°êÝwßU… äææfõÇd2é×_-ôkMš4I¿ÿþ»¦N�Zª¦~Þºu«‚‚‚rÜ—8;4À% >\*TÐ믿®'N8;À¥˜3ÒõûÉ#Æ�9#ÝÙ!À˜€U7nTrrržmNœ8¡/¿üRÆ +ð뜫¿þõ¯ TRR’6lØ þýû;llp5$€8Õ¦M›tíÚ5©Y³fÎ%LöêòÂVš£hå³rwwWçÎ�µjÕ*­Y³†0eXBbÎÙ‰þ<™�ëa“ÉT$±@IE€S½÷Þ{’¤ˆˆ¹¹¹99%Õý÷߯U«V髯¾Rjjª¼¼¼œp‚º£ß·~ÒÊ9–fPÖ�à4f³Y_~ù¥$©mÛ¶NŽ@I–5C@rr²¶oß®6mÚj¼ÄÄD%%%å«ÏÑ£G õšPÜ�gëÖ­ ’›››ÅOÖT™¿ýö›bbbtÿý÷+00P^^^ºãŽ;ôÐCé›o¾)ИûöíÓØ±cÕ¬Y3U®\Y^^^ªU«–úöí«¯¿þº¸.Ý¡C‡4eʵlÙҸΠ  EDDhÁ‚ºvíZ¾Ç¼víš^yåuèÐAAAAƽëÞ½»V¯^­ŒŒ ݸqCaaaòòòÒ‚ ,úÛº�Ù½ûT©’E;M�:Õfœ»wïÖĉÕ­[7Õ«WOÕªU“···*V¬¨F�iðàÁúøã�KÌ7àãããuùòeIRÓ¦MóÝ¿4\obb¢f̘¡Ö­[«jÕª%â3§($$D>>>ªZµªÂÃÃ5iÒ$:t(ϾEù^6l˜ÜÝÝ-Úûí·Æù®]»æxݬŸŠ+jýúõ…»1%ÏêOM›6•‡Gæ÷Ö~ùå—|÷¿Ý¢E‹–¯Ÿ^½zúu ¨‘v!_|ñE®ÕL«W¯ÖŒ3d2™4eÊmÙ²E.\Э[·”˜˜¨�>úHZ´hQ¾Æ|â‰'t×]wiÁ‚Ú½{·®\¹¢[·néôéÓŠ��UDD„úöí«”””"¹ÞÛýñÇ9r¤BCC£;v×™””¤¯¿þZcÇŽUýúõµeË»ÇݰaƒêÖ­«1cÆ(..NIIIƽ۴i“ú÷ﯖ-[*66Vñññºuë–Ö¬Yc1F^÷ñæÍ›ǶlÙ’#I�žž®eË–åç¦M›Ô²eKýë_ÿÒ§Ÿ~ªãÇ�ëâÅ‹JMMÕõë×uèÐ!½ùæ›êÙ³§š7o®üÑî{PT¶nÝjl‡……å«oi¸Þ%K–¨nÝºŠŽŽÖO?ý¤Ë—/;õ3rùòeuëÖM:tЪU«ô믿êæÍ›º|ù²~ùåÍž=[aaa?~¼RSSs£(ßËkÖ¬)p²þúõëúè£� Ô·$âYåäíí­5jH’öîÝ[ ×€²€) ]ȨQ£téÒ%%&&J’E2::ÚØ®X±¢š5k¦€€íܹS'Nœ�ÙlÖ3Ï<£:èÎ;ï´kÌ•+WÛÁÁÁ ×­[·´gÏ£}ll¬Îž=«�7ªbÅŠEsáʬ²ìÖ­›vìØa«T©’Q™|êÔ)íÚµKf³Y‰‰‰êСƒÖ®]«ž={æ9î /¼ ˜˜‹DG£F�T¯^=]¿~]Û·oWrr²víÚ¥¡C‡mnOŒäuoo;aÂ¥¥¥éêÕ«JNNÖÆ�%IyƺtéR¥§§û-Z´P�5äíí­Ë—/ëèÑ£JHH�”Y9¡5kÖØ¼E)>>^’T¹reU©R%_}KÃõŽ;ÖØ¾ãŽ;Ô¬Y3¥¥¥9å3rüøquéÒEGŽ1Ž™L&5nÜX)))Ú»w¯.\¸ ´´4Í›7O{öìч~¨òåË[ŒS”ïå•+W*66ÖâüW_}e$1Ûµk§êÕ«çÚ·B… zî¹ç콚7ož&L˜P,ÕáAAA:yò¤¼½½íjϳ²®F�:qâ„öìÙS þP¸™KÊ\°p8777‹}wwwM™2EãÇ�W¥J•$IiiiêÖ­›±ë„ ôòË/Û=f�5ôÊ+¯¨W¯^ƹ[·niÉ’%zöÙg�*³!C†héÒ¥»¶ìnݺ¥ˆˆ}ÿý÷’2¿³fÍÒ Aƒäëëk´;~ü¸† bL»¤¨jÕª¹Ž»téR 6ÌØïܹ³fÏž­ððpãØÅ‹5nÜ8ý÷¿ÿµèÛªU+mÛ¶ÍjÌÙïã�7äãã“k»„„Õ­[WRfñ·ß~³:æO}äîž9éBqFRSSÕªU+íÞ½[’¢E‹©sçÎmÞ|óM�?^üñ‡$éÿø‡Þ~ûí<Ç.Š÷rvíÛ·7¦þôÓOÕ¥K»úÙróæM:tÈæ+¡J•*ªS§Ž]myVyëÓ§�Þ{ï½|ÅeMA×Î> ô¾¹=Z«r¡âœ)%5]³7üYQ?±WSùx•sbD`›ÛcÿµÝè6üÙ(Yâãã-fÝ·oŸBCC�‘롸 yç�wiqÌÃÃC#FŒ0À?üðƒÝãëÇT­Zµ,Ž{zz***J!!!êÙ³§222´lÙ2õïß_íÛ·/ôuÜnΜ9Fò÷Ž;îÐ7ß|£F�åh¢Ï>ûLmÚ´ÑŽ;”˜˜¨Ù³gëßÿþw޶Ô˜1cŒý1cÆhþüùF/K@@€‘½= \ÜfΜ©³gÏêÌ™3zá…r­&½ï¾ûôÅ_¨S§NŠ‹‹Óü¡Å‹çzŠÃ¯¿þ*IV+óR®×ßß_[¶lÉñ~,îÏÈ´iÓŒ„bÆ õÝwß)((È¢�———FŒ¡fÍš©}ûöJIIÑŠ+Ô¯_?uêÔÉá19›···îºë.g‡‘Ï*oY3\¹r¥Ðc帷 äûõÕG¬Ÿì>·ø€Œ5€ËˆÈÈÈÉß,õë×7¶Ï�;g÷˜ ,È‘üÍ®{÷î2dˆ±?kÖ,»Ç¶×Õ«W5{ölcõêÕ¹&³xyyY$ÿÖ­[—k»3fë²Þÿý¹&³{íµ×¬V—:uêhóæÍ:pà€úõëgµ�»»»FŽiìgŸ6»¸]ºtI’ 4õqi¸ÞÙ³gçù~,ŽÏÈ¥K—´páBI™÷båÊ•y&½Zµj¥™3gû111� ¹ãYÙ–5«CJJŠÕµ�ØÏËÃ]#:54~¼<ø§€’ÏTÁú�É”ë”5T—Ù§2¾]ÖtÐRæ´ öêÑ£‡Í6“&MÒo¼!IŠ‹‹Ó¥K—š(ݸq£®^½*IŠˆˆPDD„Í> TRR’~ýõW9rD 40Î'''ëƒ>0ögÍš•gòWÊ\ÓrРAš;·d}ãÜl6ëСC:r䈎;¦3gÎèÚµk:~ü¸Ñ&99Ùiñe½¶µ©hó«¤]o^‰é,EýùðÃ�i‚#""tÏ=÷Øì3jÔ(͘1C×®]Ó–-[tþüyÝqÇ‹ ¹ãYÙ–}Zÿ+W®(00ЉѥŸ»»›ªWöµÝ¥ à2"û\êŽrûZ§¹1™LjÚ´©öîÝ«ôôtíØ±C;vtX YëMJÒùóç­V9ß.ûºŸ§OŸ¶Hïڵ˨þ5™LjÓ¦�]c¶oß¾D$€322´aí[·NqqqJLLtvHVe%c½½½ Þøñã5g·ŽyìØ1»û9s:ÒM›6Y$C»víªéÓ§[]C´¤$¶+T¨ K—.Y$uìQZ®7--Í®vEù©Q£†±½wï^õéÓÇ®~YÉ’ô—¿üÅ¡1…ŒŒ eddX|�£´áYÙvýúuI™É_{¦X�·ÔÔTmÜ¸ÑØðÁùl¸wg€Òë³Ï>³ÙæÀ�Æ´ÌžžžVtÕ¶m[c{Íš5©~kÞ¼¹1�óáǵoß>»úmÚ´©Ð¯}»ìkçåÝwß5¶Ÿ|òImÚ´Éá÷º(d%«._¾œ¯~¥åz¿üòK›mŠú3’½Êåƒ>°«Ï™3gôóÏ?û÷Þ{o¡ã°÷½\§OŸ–Éd’¿¿¿Þÿ}»úÌ�;Wîîîrss+òŸ   »¾ ³²íìÙ³’2×ÎPxf³Y—.]2~ŠrF ŸÒ[*§[¶l™"##ól3cÆ c»k×®ò÷÷wh ?ü°ÆŒ£+W®èôéÓŠ‰‰ÑôéÓmö‹‹‹Ó AƒT±bE}öÙgªU«–qÎËËK={öÔêÕ«%IÓ¦MÓºuëòïìÙ³Z¾|yá.&G�µ«ÝÅ‹�í=zØlëÖ­ÇäH!!!Ú¶m[¾×---×»|ùr=üðÃy¶)êÏH¯^½4fÌݼySû÷ï׺uëôè£�æÙ'&&ƨ^nÞ¼¹4hPè8ì}/ß.{•¨µJñ�>úÈX?wÆ zä‘GlŽ¥Ž;i²3KÕªUåíím³Ïʶ¬ßuëÖ-PŒ€²áܹsVÏ%$$äÙ—/\ `X\\œbcc­&�—-[¦ØØXI™SðN™2ÅêXÿú׿ôòË/+ @o½õ–Ú´icW +VÔ´iÓ4vìXIÒ‹/¾¨jÕª)**ÊjŸëׯkðàÁFbûöí `Iš4i’bcc•‘‘¡õë×ëÕW_ÕèÑ£s/55UýúõSrr²]1K™•žYIÉßÿ]Õ«WÏÑ&==]³g϶k¼zõêÛqqqêÕ«Wží?ÿüs»c-JYqÿöÛoÊÈÈ�»»}“õõŽ?^Ë—/Wpp°V®\©–-[æ«–O>ùD|ð�Õ$p~>#�)((H#FŒÐÂ… %I£G�V‹-¬&Ð6nܨ%K–ûÑÑÑyŽïè÷òí²O‹Ÿë³þꫯŒí�ûÖcõòòÒ]wÝU ˜Š Ïʶ¬p“&M ! ¬È£à ˜…2tèÐS_¸pAãÇ�×СC�cS¦L±:µí7ß|£‰'êâÅ‹:|ø°úö훯ª¼gžyF�?þ¸¤Ì©KÇŒ£ž={jçÎ�9ÚÆÇÇ«cÇŽ:qℤ̄E·nÝr´ Ó?ÿùOc?**JcÆŒQRRRŽñÚµk§o¿ýÖîx%Y$œ—.]šã|BB‚zè!}ýõ×v�×·o_cûµ×^ÓóÏ?oQ%›åÀ�züñÇ5wî\ãØ�7ì^«ÖÑZ´h!)s­\[ÕÙåõ®]»VóæÍÓ•+WtðàA 4Èî¸r3pàÀ èü~F Ó¬Y³Œ„ÙùóçÕ¾}ûÓS§¥¥iñâÅzì±ÇŒ?|>>z衇$e& ¢££�õp¥Ì?Úç&,,Lõë××¹sç´gÏݸqÃ8×·o_­\¹Råʕ˵ïœ9sôì³ÏZKLLT`` Ýמššª'žxÂâš%©N�: •§§§Ž;f±ž¯···6mÚ¤ˆˆˆ\ÇLOOW¿~ýôÞ{ïÇ|}}Õ´iS+!!A¿üò‹qÎßß_W®\‘$µjÕJÛ¶m³ï¤I“,ªìjÕª¥ÐÐPùúúêäɓڹsgŽêƒìÏ&88XÑÑѪ\¹²q~ذaI___…‡‡+88XW¯^ÕÁƒ­Nµìå奀€•/_^“'O6ŒÔœ9stýúõ}~úé'#iÛ²eK‹ªÜ,ùË_4uêT‹8³KJJRPP�$iݺuúûßÿžk»ÜÅõJÒäÉ“õÒK/Y´���·»âÐÚg¤iÓ¦ªW¯^�>#…�IÊ|–]ºt1¾ü eV`†††*55U;vìÐ… Œs<ð€>üðCùùùå9nQ¼—³KIIQXX˜Ž;&)³RºeË– R||¼Ž?n´9r¤-Zdç)¹xV¹[·n�z÷î-)39žõ»£8ÅÇÇ+,,ÌØç�w TÉ ”7oÞÔÊ•+�ýØ5e=PÒÝ{ï½îË?� èÝþw¶}ûö)44Ô‰¹À.dÚ´iv­ûüóÏ«k×®jÛ¶­Í¶o¾ù¦Er,{rkñâÅ7nœE"+;OOOMŸ>]“&MÊó5¶lÙ¢ûï¿ßØ 1ùµjÕ*=óÌ3¹VƒfW¯^=½õÖ[6ï�ÙlVLLŒbbb¬®i)Iýû÷Wdd¤±­­prr²zôèa³Ò®víÚ:yòd®ç–,Y¢áÇûš0a‚.\h³‚:<<\>>>¹ÆØ¸qcí߿߸®¬µ� jþüùzæ™g¬žoذ¡>¬É“'ëÅ_´{Ü¢¸^IZ¿~}ŽuWoÿäÅÃÃCééérssÓ믿®§Ÿ~ºÐŸ‘ÂÆ”%))I‘‘‘ÓðÞÎÝÝ]QQQš3gŽÅš®ÖÅ{ùvP×®]-¢Ù¹¹¹é©§žÒÂ… ížF¼¤ãYåôÜsÏéå—_V³fÍr�á¡8�†«! WEJ6ÀEÏ5þRIR§N�lVÍV­ZU;vÔ]wÝeóÃT³fÍ<×È8p >¬±cǪaÆòññ‘ŸŸŸî¾ûn=ûì³:xð ÍÄ–$µmÛÖXÿ744Ô¢â6¿üq�8qBË–-SÏž=U«V-yyyÉÛÛ[uëÖUïÞ½«ƒÚ•wssÓ”)StèÐ!M�:UÍ›7WåÊ•åëë«úõëkøðáúù矵jÕ*‹Ji[üüü´yóf­]»V�<òˆj×®-oooyyy©V­Zzøá‡µzõj9rD]ºtÉÑ?00P­[·¶8æîî®yóæi×®]ŠŠŠR£F�T¾|yy{{íG�­Í›7kçÎ�Š‹‹Ó´iÓÔ¢E U©REòððÐÀ��1»wïn³ª0/Õ«W·˜67YÓÖ~÷Ýwù»(®WÊ\3nìØ±ò÷÷W³fÍÔºuk£ªÞ”›››¨¡C‡:ä3Rؘ²þöî=<ªêÜø›’ ¥\ *´*jm)* -ÖKUT´Xï *¢=Xù•zkéñ‚=*ʩ׃zP´G« µÐJmñRµ¨ T±¢ T¢E%@`~ð0%æB“ìdòù<Ï<Ϭ½×Þû›=3QæÍZ«}û˜={v̘1#† ]ºt‰üüühÑ¢E|ýë_�Ñ£GǼyóâæ›o®QA1¢nÞË_Õ³gÏxã�7âºë®‹8 ÜgðÜsÏ�_|1n¹å–¬)þFx­*óÔSOED¤GP9#€Ù&[Ž^³fM&˜¦ayöÙgÓÅέ�æßþú׿ÆAÍš5‹’’’hÓ¦MÒ‘Ê:th 80F��t”´†˜ êÒ’%K¢K—.ñÎ;ïD÷îÝÉa0ÙÆ`²•À ›Àu¯fÆêÈ�Ý»w�E‹ÅSO=§žzjÒ‘ÊY¶lYtìØ1éå4ÄLP—6¯ï~ä‘G&Vü ñøÍo~Så¾¾}ûÖcH†0�¸1cÆÄ¨Q£âÞ{ïmPàU«VÅüùó£OŸ>IGIkˆ™ .¥R©˜2eJDD\~ùå § 1èСC•ûŠ‹‹ë/$${L­3Ï<3Ú·o³fÍŠwß}7é8i3gÎŒ½÷Þ»AMñÚ3A]zæ™gbÑ¢E±ÿþûÇÀ�“ŽY%777:tè�~dÓZêM™oy€ÄµhÑ"Æ�©T*n¸á†¤ãDĦQ‡7ÞxcŒ1"é(i 1Ô¥T*ãÇ��œœœ¸õÖ[“ŽY§yóæñÝï~7ýhÞ¼yÒ‘ÈS@ ¨Q£âž{î‰;ï¼3.½ôÒèÑ£G¢y¦M›%%%qÁ$šcK 1Ô¥‡~8^~ùå8ûì³ã�CI:Nûí·_ôêÕ+éå(S­å˗ǵ×^Ë—/¯°ïŒ3ΈÜÜÜØe—]büøñ±Ûn»%�0YO=õTÜÿý±aÆr÷hÑ¢E1lذˆØ´ÙOúÓhÓ¦MR1…f͚Ŕ)Sâ°Ã‹K/½4žxâ‰Ä²,\¸0FŽS§N�‚‚‚Ärl©!f‚ºTRR_|qì¹çž ff€Æ@˜jMž<9n¹å–J÷MŸ>=ý¼]»vqÕUWÕW¬ãì³ÏŽ�>ú¨ÂöO?ý4zè¡t»[·n1zôèúŒÖ(tÐA1iÒ¤=ztÜu×]qÖYg%’cøðá1vìØøÞ÷¾—Èõ+Ó3A]:çœs¢´´4æÌ™­[·N:N¥z_ûdD»yIÇ€z“ºõ´¤#PÖ¦Zƒ ŠöíÛWÛ§]»vqÔQGÕS¢†å¤“NŠÜÜê?F:tˆoûÛõ”¨ñ»ð ãì³ÏŽK.¹$,X�H†x Æ�ŸÈµ«Ò3A]ùéO³fÍŠG}4öÚk¯¤ã@öJmŒø¼äß�ÔÆ¤�FS­C9¤ÒéŸÙdÒ¤I1iÒ¤¤cd�Ûo¿=Ö¯_ƒŽçŸ>:uêT¯×oˆ§†˜ êÂÝwß·Ýv[Ìš5+úõë—tÈnÊ"þéßíý‡Fäå'—€ŒPœ¼¼¼¸çž{âÇ?þqŒ5*üñ¤#õ¤G�ñ /D�=’ŽÙoÕ'k¿,ßnÖ¼Êî‹/®ñ©‹‹‹kŸ €í¢ 4H999qýõ×'¨g‡~xÒ éxðÇåÛ¯ÿ®Úî]§Ž©ñ©S©Tm�ÖÈ ÀYB K(d `€,‘—t §þgÄüÙÿn÷>"¢Yó*»¿wõ±õ €í¥ MQË]" v(ßÎ˯²{qqqÝg`»™ K MQn^D�CÊ·hô|ËP óÛ^½Ú7K:lŸ]·¡ïU#ÿý|ÂÊŒG 3L �%€²„0@–°04AëÊRñ›·Ê""¢ä‹�1¸O¡¶ IDAT¨{^ä7Ë©ÙÁ‹×ø:ÅÅÅÛ€ZS€&hc*bá'""âª9ë"bmÍþU×wM¥RÛ˜ €ía h€,¡ �%€²„0@–PÈyI’uñÁÍã‚oäGA^N͸ä�º @­)@·saNì¾sn6¯a¸¸¸NóP{¦€È ÀYÂеðL÷kâ­Î�“ŽÑ¤ýà?H:B£–³vmì|ûíÿn_pADAA‚‰È`h‚ â’K.I:f h€,a0�ÂòåË˵/^\¡Oqqqý„€J€FaÔ¨Q[í“J¥ê! 4\ ÀÐ¥R©X¹reºÝºuëÈÉÉI0™  MÐÚµkãæ›oN·Ç�……… & r“@f(d `€,a `…Ûn»­\{È�! %€†K€F¡¨¨¨\»¸¸8™ Ѐ™ K(d `€,a `€Z8p`ôêÕ+éå �%Œ€&(///\® @ãç[h‚òòò¢_¿~IÇ ÃL �%€²„0@–°04Aëׯ�Ù³g§ÛGqD4oÞ<ÁDd‚04A6lˆ^x!Ýîß¿¿0@04@–PÈ ÀYB K(d `€,¡ �%ò’ÐýîÍ�â͵;%jmÝÚÒX°ì³tûÑ¿½ù… &€†ëÄýwO:Ô˜ÀYB K˜š ü‚Â8é¼1IÇ€Ä-ÿhÉVû,n›ªvqqq†ÒÀöS Éºpèá[ﳕý©Tõb¨O¦€È ÀYB KXš ukKã±{oO·�qAä&˜€L0 K @“uëÏmµÏw{wª‡$� À4YE_ë¼Õ>ÅÅ»×CÈ S@d `€,a h€Z”ÿfô*X�t ¨µÒXï4[–nŸP0/ òL Ø‚W“N�]z—t€¬f0@–PÈ ÀYÂÀ@Æ,þpyõv\\å®âââŒfhŠ€  j–›ýöÛ³\ º:¿ÖǦR© &hš€  jÞ•Je( @ãc h€,¡ �%L MPAAAœuÖYåÚ4~ ÀÐåääDëÖ­“Ž@†™ K 4(sçέv‡ê) @㣠4(�;w®v§N�ê) @㣠MÐÚµkcêÔ©éöé§Ÿ & €  J¥Rñù矗kÐø)ÔÂn»ífúIµÒÒÒhÕªUºÝ©S§(,,L0™�›t2Ã`€Z¸ôÑW¢õ ÿJ:ÔÚ†õkcá«ï§ÛoÜûçhÖÜÀ�ÙÃgžt 0 K(d S@42_|²¬Â¶Å‹WØV\\\÷a€E ‘™9îä ÛºŽ«Ø/•JÕC !14@–PÈ À@ƒURRO?ýtÒ1€ztÙe—ÅqÇkÖ¬I: d½œœÜhÙa÷ô#'Ç? ²�oy€éý÷ß�o~ó›1wîܤ£õ誫®Š¥K—Æ‘G«W¯N:dµÜ¼æÑå #Ò�ܼæIG €�ç�wÞ‰Ã;,>øà¸úê«“ŽÔ£wÜ1f̘K—.�¡C‡ÆÚµk“ŽШä%`K+W®Œ¡C‡F—.]â®»îJ:�€¢¢¢¸ï¾ûâˆ#Žˆ‹.º(¦L™’t$€gÈć*l»íäƒH44 À@ƒ±qãÆ8í´ÓbÉ’%ñä“OF󿦢„¦ªÿþqñÅǤI“bÀ€qòÉ''  AÙq—¶× Á14Ð`L™2%f̘?ÿùÏ£{÷îIÇ6a„hÛ¶mŒ=:>ýôÓ¤ã@ÖImÜŸ/{?ýHmÜ�t$2@h>þøãøÉO~ÅÅÅ1räȤã @ëÖ­ãŠ+®ˆ’’’¸êª«’ŽYgㆲXòÒìôcㆲ¤#�¦€¦A™ˆ©S§Fûöícøðá‰f©�ßÿþ÷Š¿÷ß…û l›–-[Æ©§žëÖ­‹I“&% ÁS¦A™8qbüð‡?Œ“O>9¾ó�路oܸq›Ï•››[m»¡©�¼™¼¿™tà 7DYYYœvÚi�nôoDÄÈ‘#côèÑqòÉ'ÇÉ'Ÿ\n_*•J(Uö¸ï¾ûbÇwŒ>}úÄêÕ«“ŽC5êêµ:óÌ3#"âî»ïŽ/¾ø"cçÈF »"F“Ó·o߸÷Þ{cÚ´iñÓŸþt»ÎÕ¿ÿø�ÿø�hÕªUì³Ï>qÇwd(eݨ�¼™¼¿™²fÍš¸÷Þ{#"âôÓOO6L-µoß>þë¿þ+¦M›Ó¦MK:NÖ¹ï¾ûâË/¿Œ×^{-æÎ�›tªQW¯ÕAíÛ·�U«VÅc�=–±ód#`²ÚĉcåÊ•ñúë¯GŸ>}’޳U�-o&Ìœ93V­ZEEEÑ·oߤãÐm9B=éÑêT¯®^«ÜÜÜ4hPDD<ôÐC;/MÏâå«Ë?/N? [ä%hÚ~øáˆˆ0`@äää$œh¨¾õ­oÅý÷ßøÃbݺu‘ŸŸŸt$¡®þ¦ü†-Ú–ð [(‰I¥Rñûßÿ>""?üð„Ó Ùæ¾øâ‹xùå—ãÐCÝ®ó-_¾}âŠ+®(÷þ®ÌÖ~×léÿ÷£U«VÞßU­A}î¹çFnnn¹þsæÌIï?ú裫üÜ´lÙ2}ôÑí»1 �×j“}öÙ'òò6ýÝÚk¯½¶MÇVfòäÉÑ»wïmz{ì±Û}]€º¦œ�gžy¦Ò‘G>ø`\}õÕQ\\ãÇ��çž{.>ùä“X¿~},_¾<~ûÛ߯€bòäÉÛtÎ3Î8#öÝw߸ùæ›cÞ¼y±råÊX¿~},]º4¦M› ˆSN9%JKKëäçÝÒªU«â‡?üaxà�që­·ÆÂ… cõêÕ±zõêxýõ×ã—¿üeì¹çžq÷Ýw×øœþóŸã_ÿúW•û7lØ÷Ýw_�Ï÷Ûßþ¶Ê}Ë–-‹—^z)Ý~úé§ãÓO?­´oYYY̘1£Îón©.îïf_~ùe\pÁÑ«W¯¸îºëâ•W^I¿?KJJâ�ücŒ3&ºwïÏ=÷ÜVÏ7wîÜôóÞ½{osž™3gÆ7¾ñ�øå/O=õTüãÿˆO?ý4Ö­[«W¯Ž¿ÿýïq÷ÝwÇ1Çûï¿<ÿüóÛ|�íuÇwD×®]c„ ñâ‹/ÆŠ+ûìED¬X±"† GydÜÿýñÞ{ïÅÚµkcÅŠñÚk¯Åĉ£wïÞ1vìØX·n]¥ç¨îwÍÚµkËm{î¹ç*üAÀ† âÎ;ï¬ôÜ=ôP­‹õ«W¯®ö³ÛØx­Ê+((ˆŽ;FDÄo¼Q«ë4¦€NÈÈ‘#ã_ÿúW,_¾<"6}‘¾Ù„ ÒÏ[¶l}ûö�víÚÅ«¯¾ï¿ÿ~¤R©¸ä’KâÈ#�Œ=÷ܳFçœ:ujúy‡¢OŸ>±~ýúxýõ×Óý§M›}ôQ<ùä“ѲeË:ù¹?ùä“4hP¼úê«émmÚ´‰Þ½{G»víbÞ¼y±xñâX³fM¹Ì[3bĈøàƒbÙ²eå¶ñÅñä“OFĶ­åó?ÿó?ñÐCÅÆ�cúôé±qãÆèÒ¥KrÈ!±ûî»Ç 'œ�î{ñÅÇ_|Ÿ|òIüþ÷¿�ýë_ѪU«8úè£#???F�Uçy7««û±ië�!Câ•W^IokÕªUzDù’%Kâoû[¤R©X¾|yyä‘1}úô8æ˜cª<ç‚ ""bç�wŽ6mÚlãOñë_ÿ:6lØ�npÀѱcÇ(((ˆ+VÄ¢E‹bñâűi¤ð€⡇ª6S¦�3&ý|×]w�¾}ûFYYY½ö""þñ�ÄàÁƒã�wÞIo+..Žž={Fiii¼ñÆñÉ'ŸDYYYÜtÓMñúë¯Çã�?;ì°C¹óT÷»æ«ïÛË.»,ÊÊÊâóÏ?/÷þÞ¸qc¥§N�Ó¦M+·ÿøCºˆùío;vÛm·J�Ýi§�âÇ?þqMoGÜtÓMqÙe—ÕËè𢢢øàƒ¢   Fý½V•ëØ±c¼ÿþûñúë¯oó±MEN*ÉyQIËÉÉ)×ÎÍÍ�ñãÇÇØ±c£U«V±i4é�!CÒk¦^vÙeqýõ××øœ;vŒ[n¹%Ž=öØô¾õë×ÇwÜ—_~yz4ØÙgŸ¿þõ¯3ö³m¶qãÆ8p`Ìž=;"" ã¿øEœwÞyÑ¢E‹ˆØT�x衇âœsΉիW§�=øàƒã…^Øæk.^¼8ºv훊oÿüç?·ùýû÷�9sæDqqq¼÷Þ{Uö[µjUEiii­ïáöä­Ëû»~ýú0`@üùÏŽˆM…ß_üâqæ™g¦Ï±©huöÙg§§5.**Š·Þz+Ú¶m[éy‡O>ùdôìÙ3Þ|óÍÿ¬›�qÆéBvóæÍãÓO?­P@ýË_þ&LHß—vØ!æÏŸŸ¾Ïu᫟½]vÙ%þë¿þ+N>ùäÈÍÝ4ñB}~ö""Ö­[|pÌ›7/""ºuë“'OŽAƒ•ës÷ÝwÇØ±cãË/¿Œˆˆþð‡qï½÷V{î-Þ5kÖDaaa¥ýjûþÞüŒˆxê©§bðàÁ5:nkÖ®]ÿûß«,pfR›6mb÷Ýw¯Q_¯UÕN>ùäxøá‡kýû|Kµ]xËi çßxLôê¼óvå€$mܘŠ>ù"Ýî²ËŽ‘››SÍÐøåœô?Uîó@ýX°`A¹YAçÏŸ½zõJ0Qö1¸�zà�bذaå¶åååÅù矟.ÿå/©ñù:tèÏ?ÿ|tîܹÜöæÍ›ÇèÑ££[·nqÌ1ÇÄÆ�ãÎ;ïŒÓN;-ú÷ï¿Ý?Ç–î¸ãŽt®E‹ñ»ßý.?üðr}rrrbذaѦM›øÞ÷¾eeeÍP'žxbÌ™3'/^/½ôRtÐA•öûío›žÆ÷¤“NªÏˆQ·÷÷†nHwÝu×xöÙgcï½÷®Ð¯[·nñôÓOÇ¡‡¯¼òJ,_¾<&NœÿùŸÿYéy7Ô«%¸5×\sM|ôÑGñá‡Æÿûÿ¯Òѳ‡vX<óÌ3éâø—_~·ß~{•™2­uëÖñÜsÏU¸_õùÙ‹ˆøÙÏ~–.(îµ×^ñ§?ý)ŠŠŠÊõÉÏÏ�óÏ??úöíýû÷�ÒÒÒ¸ï¾ûâÔSO��fûìtû¿øE�Ï]eeeñóŸÿ<ݾúê«+'·4hР8õÔS3š¡¶N8á„ô¨Í‡~¸Ê~›§VÝe—]bÀ€õ’m³º¼¿ŸþyLœ81Ý~ðÁ+-þn–ŸŸ_®¸úÈ#�TÙwó:ȵ�öx÷Ýw�Y³fÅ[o½UíÏ“››\pAº½å4ÖumâĉÕÞ¯ºþìElºÏ¿úÕ¯"bÓ½˜:ujµ…¯ƒ>8®¹æštûºë®Ëx&*çµªÞæJKK«\÷ªS\´SùGqqúÙB¸:÷Üs«Ü·y:èˆMÓwÖÔСC·ÚçŠ+®H?Ÿ={vº8— sçÎ�?ü0""Úµk]tÑV�9í´Ó2výí±Ûn»¥‹©U3W®\Ï<óLDDüñѬY³zËQ·÷÷É'ŸŒÏ?ÿ<"" P£âö€¢}ûö±i”ï–ë˜né‹/6M;YÕ4´µ‘J¥báÂ…ñÄOÄÍ7ß—_~yœþù1eÊ” ×­5)´×åg/"âñÇOO<`À€8ðÀ·zÌÈ‘#Ó…ùçž{.>þøãŒf¢r^«êm9å|&Fd#S@7@[Î{ž)_]“´2ÅÅűÏ>ûÄo¼6lˆW^y%Ž:ꨌ\óôÁßÿþ÷#??«ÇÔ¤O}Ù< ôûï¿/¼ðBôëׯÜþÇ<½ŽkÓ?×åýݼžgDÄÇ\åèô¯Úr]Õ¥K—F�=*ôÙ\ˆ-((¨Ñ9«»Öc�=�<òHÌž=;–/_¾]çˤšÜçºüìElú�ÍjòÇ ›ÖJ>âˆ#â±Ç‹T*sæÌIä½ÝÔx­ª·å×lþ� @y À Pm§ÃÍ„îÝ»Ço¼‘Qš }ôQúùž{î™±óÖ—N8!.ºè¢Ø¸qc<üðà À›§†nß¾}�¬ßº5uy·|,X° ,X°Í稪 ›——6lˆ 6Ô:ßôéÓc„ ñÖ[oÕú A]}ö""–,Y’~Þ¥K—·eߥK—f4•óZUoË™/vÜqÇ“lòÚn'ǪÎÝ’Žµ¶~ýúô &ŒæÍ›'˜š¶¯þjËД“J¥êü¼›×ÓmL¾: ô–?ÏgŸ}–èôÏu{·§8Ñ©S§8øàƒ+Ý·¹€³-Ó™oéÒK/�“N:©\ñw�=öˆýèGqýõ×ÇŒ3âí·ßŽÏ>û,fÍšU«kÔ—ºúì}õÜÛ2jr˾Ö[­^«ê•––¦Ÿ7„04v7nŒeË–¥[ÎÞ@ãÕø*qÔÊ–_šWg˵Z;uê”±ëwèÐ!ýüÝwß­Ñ1ë×¯ÏØõ3áÄOŒˆM#ôžþùôöÿû¿ÿKgMjÚÕº¼¿[¾ÆŽ©Tj›K–,‰âââJϽÓN;EDÍߟ[š9sfLš4)Ý>úè£ã¥—^ŠE‹Å]wÝ—]vY 2$zôè­[·N¤0QVVV£~uõÙ‹ˆèرcúùæQÆ5±e߯}íkÍT6nÜXãûÝPy­ª·zõêˆØTümHË4$ ÀMÄÓO?½Õ>o½õVzzßæÍ›Ç�˜±ëzè¡éç3f̨ÑhÇ™3gfìú™p '¤G×nžòyËç»îºk|ûÛßN$[]ÞßÍ#Ÿ#"z行Ž.Ü\¨Z±bÅ6û¿ÿû¿éç?úÑ�bæÌ™}ÏfÊïÿû­ö©ËÏ^Dùéÿïÿþ¯FÇ|øá‡ñÒK/¥Û‡rÈvç¨Ë‘eK—.�âââhݺuüæ7¿©Ñ17ÞxcäææFNNN�?ŠŠŠj4¢×kU½ÍÓÝWõG%ÐXl9ú~ócñâÅPÖn"î¼óÎ6lXµ}®¾úêôó£�>:Z·n�±ëvØaѾ}û())‰¥K—ƃ>§�vZ•ýW¬X<ð@Æ®Ÿ ›§�ž3gN<òÈ#1iÒ¤X±bEzjᤦލÛû{ÜqÇÅE]+W®Œ¥K—Æu×]W]uÕV�›={vœyæ™Ñ²eËxúé§£sçÎútëÖ-^xá…Z­Yúé§Ÿ¦Ÿ:t«ý“Q~×]wÅqÇWmŸºüìED{ì±qÑEÅÚµkãÍ7ߌGy$~ðƒT{Ìu×]—¡¹ÿþûG�=¶;Ç¢E‹ju\^Þ¿ÿSUÕhñßþö·éõs{ì±8þøã·zÞÑ£GÇQGU/Sž¶mÛ6 ¶ÚÏkU½Í¿+ºvíZ«|ÐPÔô¿u¹LÙËà&böìÙ1mÚ´*÷ßyç�éýÍš5‹ñãÇWÙ÷—¿üeì²Ë.±×^{Åܹsktý‚‚‚¸è¢‹ÒíË.»,Þ{ï½*ûŸuÖYQRRR£s×§ÍÓ@øá‡ñ—¿ü%~ó›ß¤ /IMÿQ·÷·eË–ñ³Ÿý,ݾöÚkã–[n©ö˜Õ«WÇYg�K–,‰7ß|3^~ùåJûí±ÇñÏþs›‹p›��ØôþÞšßýîw5>÷رccç�wŽž={V™½¦f̘QíHÎmùìÕ6WQQQœþùéö…^XíûãÉ'ŸŒ;î¸#Ýž0aBµçoÞ¼yúùgŸ}ViŸ 6Äĉk¹œ-§EÞûlŒ7.>ýôÓxûí·ã”SN©qánìØ±Ñ³gψØTðëß¿…¢ÜŠ+âôÓO¯ñÔ§õmËi §OŸžžþy·Ýv‹o}ë[IF«Óû{É%—ÄðáÃ#bÓÔ°]tQsÌ1ñꫯVè»`Á‚8ꨣâý÷ß�ˆM¡!C†TzÞ8 "6­“»­SÜ�rÊ)éç·Ýv[üä'?)7*x³·Þz+†7ÞxczÛš5kª\túôéqÓM7ÅÊ•+cáÂ…qæ™gnS®ÊŒ1¢Âk±­Ÿ½íÍõ‹_ü"]4ûøã�£ÿþ¦§.++‹Ûo¿=N:é¤ôh“³Î:+Ž9æ˜jϽåèî_ÿú×ö/^¼8¾ÿýïÇÿøÇmʼÙw¾ó�ôóI“&•[ï6•JÅM7Ý�>úhDDäääıÇ[«ë4^«ÊýãÿˆU«VEDùiï(/'eN©D”””Ä5×\Ë—/�ˆMk«nvâ‰'Fnnn´k×.®¼òÊèСC\wÝu1þüøâ‹/âÉ'ŸŒˆˆÂÂÂøþ÷¿›¾ÔŸ0aBì´ÓNéóäääTzíÞ½{G÷îÝcÙ²eñúë¯Çš5kÒûN9唘:uj•Sßpà qùå——Û¶|ùòhß¾}�~î7ß|3 üqzÛ{ì={öŒ5kÖÄܹsËåÙ¬]»vqä‘GFDÄ>ûìW^ye¹ý/¾øbLž<¹Â›UݯÍrsscøðáUÆ.ÔÔ IDAT(+Ó¿ÿ˜3gN´oß>V¬Xeee1jÔ¨¸õÖ[k|ŽºÊ[W÷7"bݺuqÆg”{¯FDì¾ûîÑ«W¯hÞ¼y¼ûî»1þüô¾‚‚‚˜9sf 0 Ò¼%%%QTT�<òHœp •ö«Ê¹çž[®ˆÕ¢E‹èÓ§OtèÐ!>ÿüóX¸pa•ÓKçççG»víb‡vˆ+¯¼2]P½òÊ+ãç?ÿy¹¾ ,ئ‡U}ööÙgŸØc�=jõÙËD®… ÆàÁƒÓÅùˆM#0{õêëÖ­‹W^y%>ùä“ô¾#Ž8"üñØqÇ«=ïW\QnÄhçÎ�£W¯^Ñ¢E‹øàƒâÕW_­0}á–ïï:Ä„ bç�w®ôü¥¥¥Ñ»wïx÷Ýw#bÓHéo|ãQTT ,ˆüãé¾\pALž<¹†w¤áòZUôÈ#�¤gaøøã�Ó¿;êÓ‚ ¢wïÞéö<°Í£˜¡!Y»vmL�:5Ý>ýôÓk4]=°ý9ä�õóÏu }õ{¶ùóçG¯^½L”}€ò³Ÿý¬Fë¨þä'?‰£�>:?üð­ö½ûî»Ë� ܲuûí·Ç¥—^Ziñ/bÓ´ W]uU\qÅÕ^ã¹çž+7Òµ[·né/úkêí·ßŽáÇÇ_ÿú×*ûìµ×^1räȸøâ‹+ÝÿÒK/•)yØa‡Õx:ê¯j×®]¹BÊÖÜ~ûí1räÈrÛþô§?Õè5Ú¬.óÖÅýÝÒý÷ß—\rI¥£m·´Ç{Ä=÷ܳÕû²×^{ÅÛo¿W^ye\{íµÕöýª�7Æe—]¿úÕ¯¶:½OŸ>QXX/¼ðB…}={öŒ7ß|3""}ôÑ k®~õ³µ5yyy±aÆÈÉɉ)S¦ÄÅ_¼ÝŸ½LäŠØTt6lX¹ix¿*777F�7ÜpC¹5]«òÅ_ÄСC·:j´K—.ñÁTºïŽ;îˆóÎ;¯Êcßzë­8úè£ËD·”““£F�Š_ýêWéQú��ת¼ÿøÇqýõ×Gß¾}+�} >(“m€!9 À@S¦\÷²ã[òFhàÀ�[5Û¶mÛ8ꨣbß}÷Ýê¿S§N±ï¾ûV¹ĈñöÛoǘ1cb¯½öŠÂÂÂØqÇc¿ýö‹Ë/¿<.\¸ÕTDÄá‡×_}´k×.zõꕞy[ì¹çžñüóÏǃ>C† ‰Ž;F~~~´oß>÷ÜsOÌŸ??Î?ÿüØgŸ}*ß½{÷rë¿FDwÜqåÖ¶¬©œœœ6lØ6sÆgÄÀ�£Y³f‘ŸŸgŸ}ö6#ê6o]Üß- ><Þÿý¸óÎ;ã˜cމÎ�;G~~~D×®]ãÄOŒiÓ¦ÅÂ… kt_6OYû§?ýi«}¿*777nºé¦øÛßþ£G�޽÷Þ;vØa‡(((ˆöíÛG¿~ýâ /ŒY³fÅ«¯¾³gÏŽŸýìgqÀD›6m"///òòòbĈésüñ1f̘hݺuôíÛ7úõë—©_S#FŒˆœœœ1bDœsÎ9ùìe"WDDûöícöìÙ1cÆŒ6lXtéÒ%òóó£E‹ñõ¯=F�óæÍ‹›o¾¹FňˆwÜ1fÍšÓ§O�ã�?>ºt鑟Ÿ�;wŽãŽ;.|ðÁxç�wbðàÁ•fêׯ_µ×èÙ³g¼ñÆqÝu×Å;ï¼s´hÑ"ºwïçž{n¼øâ‹qË-·dMñ7ÂkõUO=õTDü{-v*gpÛrðš5k¢°°0Á4P¹¿þõ¯qÐAE³fÍ¢¤¤$Ú´i“t¤r†ŒÑ£G'¥œ†š êÂ’%K¢K—.ñÎ;ïD÷îÝÉa0ÙÆ`HβeË*lëÛ·o…mÅÅÅõ� ~\÷j6d Žxà�ѽ{÷X´hQ<õÔSqê©§&©œeË–EÇŽ“ŽQACÍuaóÚãGydbÅ_ÈF999ѶmÛrm ~tèСÂ6Å^2%{æÊ­1cÆDDĽ÷Þ›l�¯XµjUÌŸ??úôé“t”rj.¨ ©T*¦L™—_~yÂi »äççÇñÇŸ~äçç' € Pwæ™gFûöícÖ¬Yñî»ï&'mæÌ™±÷Þ{7¸)^j.¨ Ï<óL,Z´(ößÿ8p`Òq<` q-Z´ˆñãÇG*•Šn¸!é8±iÔá�7Þ#FŒH:J9 5Ô…T*ãÇ��œœœ¸õÖ[“ŽÐ(XhF�÷ÜsOÜyç�q饗F�=Í3mÚ´())‰ .¸ Ñ_ÕPsA]xøá‡ãå—_޳Ï>;9ä�¤ãT°ß~ûE¯^½’ŽPŽpY¾|y\{íµ±|ùò ûÎ8ãŒÈÍÍ�]vÙ%Æ�»í¶[ ¡jÍš5‹)S¦Äa‡—^zi<ñĉeY¸paŒ92¦N�‰åøª†š êBIII\|ñűçž{6˜™¾ª÷µOF´›—t ²XêÖÓêôü7n,÷ÿ�EEE‘›k‚ €ÆN8‹Lž<9n¹å–J÷MŸ>=ý¼]»vqÕUWÕW,¨±ƒ:(&Mš£G�Ž»îº+Î:ë¬Dr ><ÆŽßûÞ÷¹~Uj.¨ çœsN”––Æœ9s¢uëÖIÇ�¬´nݺ¸ãŽ;ÒíqãÆEaaa‚‰Èà,2hР˜}’Ž@†å&€Ì0 æ·½&zµo–t ª2aeÒ Fd #€  Z¿~}̘1#Ýþîw¿Í›7O0™  @VY¼bcÄâÅQ\\œt”mÆ 1oÞ¼t{ðàÁ ÀYÀÐd•®¿Z]»vM:$B K(d `€,¡ �%€²„0Y彋wŠ÷Þ{/é�ˆ¼¤@&·É�(.N:$Â`€,a04Q………IG Àjá™î×Ä[�;'ƒ-üà?H:B£RXXãÆ�K:f h€,¡ �%€²„0�ÞòåËcñâÅIÇhTR©T”––¦©T*éHd@^Ò`{�5*"Bs¬]»6&Nœ˜n�7. L@& �%€²„0@–PÈ ÀYB€Fï¶Ûn‹÷Þ{/é�8`½¢¢¢(..N:$N K(d‰¼¤4FŒ^½z% `h‚òòò¢ÿþåÚ4~¾å€&è«`²ƒ5€²„0@–PÈÖ€&¨¬¬,þüç?§Ûßüæ7#/Ï?;ßð@TVVÏ>ûlºÝ¯_?`€,` h€,¡ �%€²„0@–PÈ ÀYB K(d‰¼¤4F¿{ó£xsíNIÇ€Z[·¶4,û,Ý~ôoïG~Aa‚‰È¤÷ß=é@BŒÈF@Ô<¿ ŽqA¹6�Ÿ04A999¦|ÈË?ZRéöÅmS¶×q !Ph¤.zxåÛ+Ù–JU, ÙÇÀYB K˜š ukKcæƒw§ÛCNý‘5�²€04QëÖ­M:f h€,a0@#uëÏUºý»½;Õs ¡Ph¤Š¾Ö¹ÒíÅÅ»×s ¡04@–PÈ ÀYÂÀµ0(ÿÍèU°:éPk¥±.Þi¶,Ý>¡`^ä'˜€ŒZðjÒ ³z—t€FÃ`€,¡ �%L MP³ÜÜè³w×rm€¤-þpyå;v\\aSqqq�fh¬€  jÞ/|1Ý^Úê€(,,L0@ÝéÔ©SÒê�ÀYB K(d kYaÉ’%•n/++«°­¸¸¸ŽÓ$CÈ ‡zh�û¦R©:L�`h‚òóócøðáåÚ4~ ÀÐåææFQQQÒ1Ȱܤ� ÀYB KXš µkׯÃ?œnŸtÒIQPP�`"€í7wîÜJ·wèСž“$Gš T*%%%åÚ�]çÎ�+ÝÞ©S§zN�S@d `€,a h€ZØm·ÝL'I£VZZ­ZµJ·;uê……… & €jáÒG_‰ÿÏÞ½Ç÷\ÿÿ¿ovbfCŒ9Óœ+‘œ#‡"E*9%CéDèäPSö�Äœ¢±ÈªO"Q’œ>QNC6g;¿øíýÙÛvx¿÷Úû½ÛõrÙåò~¾^Ï×óõx¿ž¯÷;½¯çóéµë’Ñaù–šœ¨#{OšË.ûI%\Ý Œ²>¢­Ñ!€Ý` hp$€ÀA�ÁÀ Èˆ¿p.Ó¶'NdÚæïïoû`À‘EÆæ)3m«9%s=“ÉTÑ€ý! CNNÎò¬XÅ¢ ûG@‘«ß~ûMݺu3:…dÒ¤Iúû￵bÅ •,YÒèp‡æìâ*ÿ6¬ŒÇüI'OžÔ< �;w €B4sæLEGG«S§NŠ‹‹3:°;$€9G�U›6mÔºukÍš5Ëèp"OOOmÚ´IÑÑÑêÙ³§� ì `EÊÕ«WÕ³gOU¯^]K—.5:ðõõUhh¨~üñG�;ÖèpÀ®°0€"#--MC† ÑéÓ§!WWW£C`�öíÛkܸqš?¾:tè �àpLiiºqé¼¹\ªB%99ó|(ãu{U¦mle@$`ŸH(2–,Y¢M›6iÁ‚ªS§ŽÑá0Xpp°BCC¤N�:ÉÛÛÛè�‡’–š¬;"Íå݇¨„³»�À-ž«dÚæïï_ø�€�âEÂùóçõÊ+¯Èßß_£G�6:E€———¦N�ªØØXÍœ9ÓèpÀ.�F¡ùòË/Uºti999eûçïï¯ãÇ�êMžÑüùóµ`Á£C2›Wz­Ê–3: ß’Rõ¶ûŸæò”2Éòp+a`D�ƒÕ!FGäÏ€P£#@1D…fúôé*Y²¤âââ2íûå—_tâÄ IRZZZ�ΪѣG«nݺúé§ŸTºtéµw;ggçËF(¬kk+sçÎUJJІ bw£%iôèѺxñ¢bbb$I«V­2ï3™LF…å0lý™†uزŸžzê)}òÉ'úì³Ï4{ölyzzZ­mp4$€Qhêׯ¯��¬ŸÚ>|¸9IYP¡¡¡ºqã†þøãíܹS]ºt±J»éÚ·o¯—_~Y‹-R�5´xñb«¶Ÿ…ummáæÍ›Z¶l™$Ùí”É>>>úàƒÌåŒ `œ­?Ó°[öS«V­äãã£ØØX}õÕW2dˆÕÚGC'ã(W[�x}ûí·õöÛoÛ¤íâfóæÍº~ýº|}}Õ¼ys£ÃATŸiœ-ûÉÙÙY]»vÕòå˵jÕ*À(rNÄdž‘ëÖŽ™6ùûûÛ4€0C…‡‡K’:tè '''ƒ£PTµk×NË—/×wß}§¤¤$¹¹¹`Vó…uYïÈb;KÀÖH0ŒÉdÒ·ß~+IjÛ¶­ÁÑ(ÊÒgˆ��ׯ¿þªûï¿¿@íÅÄÄ(666OÇ;v¬@ç€ÂàltÖ²sçNùúúÊÉÉÉâ/}šÈÿýW³gÏV»víäãã#777UªTI½{÷Ö?ü�¯68 ñãÇ«yóæ*W®œÜÜÜäçç§Ç\ßÿ½MÞgbb¢ZµjeŽÅÓÓSëׯWdd¤zöì)yxx¨uëÖæÄZ\\œ^ýu5mÚTžžžªX±¢žþyÅÇÇçéýfôå—_ªlÙ²õ\\\4}út›¼ïìŒ5JÎÎÎqüç?ÿ1ïøá‡3½Ÿô¿2eÊhíÚµ9¶¿gÏy{{gÛ†‹‹‹¦L™’«X‹âý”“ &dº¶é~~~Ú·oŸ¹ndd¤Ê—/Ÿe]777ÍŸ??Ës�=ª={ö˜Ë7nÜГO>©îÝ»+""B.\Pbb¢vïÞ­nݺiÉ’%jÒ¤‰¦OŸ®ýû÷ëÆ�ºxñ¢/^¬‘#Gæúý&&&ZlÛ¾}»®_¿n±-55U!!!V|·w¶jÕª|'÷âââ´qãÆëüôÓOºtéR¶ûSSSš«óÅû)'_~ùe¶×6::Z?ÿü³¹üÍ7ßèÊ•+YÖMNNVDDD–ûvîÜi~ݨQ£<Å·yófµlÙRï¼óŽ"##õÏ?ÿèâÅ‹JJJR\\œþûßÿê³Ï>S¯^½Ô¢E ‹x ÓâÅ‹U³fMë—_~ÑåË— íÛË—/«{÷îêÔ©“–/_®ãÇ�+11Q—/_Öü¡·ß~[�5Òĉ•”””e¶ü®°õgÚž´¯­ŸÜÝÝUµjUIÒŸþ™¯s@qà0S@�=Z—.]RLLŒ¤[?N§ 6¿.S¦Œš7o.oooíÝ»W'Ož”ÉdÒ‹/¾¨N�:©^½z¹j3,,ÌüºJ•*jÖ¬™’““µÿ~sý•+WêìÙ³ŠˆˆP™2e¬ò>5j¤÷Þ{O»wïÖ×_­7n(..N’äìì¬V­Z)%%E¿þú«ÒÒÒôÜsÏ™�­\¹²š6mªŸþY×®]ÓªU«4{ölÕªUëŽï÷öú'M𤔔]»vMñññæ_ZZšUÞgn………iåÊ•çýî»ïÌI�|P•+WÎòØÒ¥K륗^ʱýáÇëÔ©S:wîœÅöŒï9·I�¢x?å$44T¡¡¡JMMUdd¤®]»¦råÊ©k×®ªZµªl®›ž€º|ù²6oÞ¬ëׯËÛÛ[�:u’‡‡‡ÆŽ›å9<(I*W®œÊ—/Ÿ§ø>ýôS¥¦¦šË÷Üs�ªV­*www]¾|YÇŽÓ‰'$Ý)Ü¡C­ZµJ½zõÊã•(˜ñãÇ›_WªTIÍ›7WJJŠ!}ûÏ?ÿ¨[·n:zô¨y›¿¿¿6l¨„„ýù矺pá‚RRR4oÞ<íß¿_6lP©R¥,Ú±åw…­?ÓÍ›7O“&M*”â¾¾¾:uê”ÜÝÝsUß}å(ý”QÕªUuòäIíß¿?_ǰäêâ¤AmjZ”`ÿœLFÏ�j#NN–?`9;;kÚ´iš8q¢Ê–-+IJIIQ÷îÝÍS%Oš4IsæÌÉu›U«VÕ‡~¨>}ú˜÷%''kñâÅšªåË—«T©RZ¿~½úöí+IZ²d‰F�uÇ÷{óæMyxxdYïĉªYóÖ�‡•*UÒ¿ÿþ›ç÷2|øpóHÚE‹Y$®óª}ûöæ©H###Õ­[·|·•k¼çºŸ¬qmƒ‚‚ôÑGÉÅÅE§N�R•*U²¬£»îºK©©©š0a‚Þ{ï½ÛíÙ³§"""Ô°aC:t(O1=ù䓿Ĺ«««.^¼˜)yºcÇ+**J’TªT)8pÀÜw¶r{ßV¬XQ|ð�(gç[/æw…$%%%©uëÖæ©»kÕª¥… ªk×®u>ûì3Mœ8Q7nÜ�$ 6LË–-˱m[WØê3�˜˜¨ÿþ÷¿…òàJùòåU£F�\ÕµU_Ùk?e4pà@…‡‡çû{7£ü®œqèïõR€_¹ÅÇàôØÿ庮ƒþ�k´˜ôÀ� 00"Çã0#€ïä‹/¾Ð Aƒ,¶¹¸¸è¹çž3'€wìØ‘ëöªT©¢ŸþY~~~Û]]]¤Zµj©W¯^JKKSHHˆ† ¢öíÛø}dgÖ¬YêСƒ¤[Éî=z˜À•*URhh¨ydX÷îÝåâ⢔”‹Ñe0NQ»Ÿn7jÔ(}ôÑGJIIÑ矮W^y%Ëzk×®5�ʽýó–•ãÇ�KR¶#sòúë¯ëìÙ³:sæŒ^{íµ,GζiÓF[·nU—.]¥7nhÑ¢Ez÷Ýwó|¾üòòòÒöíÛÕ A‹í…Ý·3fÌ0'ëׯ¯üQ¾¾¾uÜÜÜôÜsÏ©yóæjß¾½ªÁƒ«K—.V�ÉhîîîjÒ¤‰ÑadB_e/}¦€«W¯¸-__ßL×ȯãõÍzG�œŒlÁaÖÎÉ Aƒ²MFÕ©SÇüúöi~s²`Á‚LɺŒzôèa±Æî[o½•ë¶óÊÝÝ]Ï>û¬Å¶Œ#4Ÿ~úi‹ä˜»»»UDGÁ¥û)+�7VëÖ­%I!!!Ù>­œ>Ål­Zµtï½÷Þ±Ýôõ•ó3íq�5´mÛ6>|Øb:êÛ9;;ëùçŸ7—ûí·<Ÿ« Þ~ûíLÉߌ £o/]º¤÷ß_Ò­ë–câ«uëÖzýõ×ÍåÙ³g[=&d�¾ÊYÉ’%%I Ù®Q Áß·tÖþþ™þ[+ àì¦8–džZº5%fnõìÙóŽu¦NÈ=h& IDAT�j~eNvY[‹-,Þ‡$‹u ³M˜¾ŸЋ†¢t?e'ýstüøqmÛ¶-Óþ³gÏjûöí’nMÓšñññ’”íT´ye2™täÈ}ýõ×Z°`�&Ož¬çž{NK–,ÉtÎÂ’Sr:�­ûvÆ æi‚;tè�«äüèѣ͉ùíÛ·ëüùóV� Y£¯r–ž–x€ ²S,Àç·–Û×øÌŠ¿¿¿7n,IJMMµÙÈÃêÕ«h?ŒW”î§ì 8Ðü AHHH¦ýkÖ¬1¯¥š›éŸ¥ÿ%cÝÝÝóWZZšÖ­[§Áƒ«råÊjذ¡zõê¥ñãÇkîܹZ²d‰yšw#¸¹¹Ý±Ž­ûvçÎ�æ×¹yØ@ºõ�HÇŽ%ÝJ¬§¯í Û¢¯rV¢D óëôµ³ä_RJªVî8nþKJI5:$XA±X8?ÓËZK�:uôçŸJ’Μ9c“sÜiô¤µFWÂx…q?eÇÓÓSƒÖâÅ‹õÕW_éÂ… ªX±¢yxx¸$©aƹ^WÕÅÅE©©©æuƒójõêÕ ÖáÇóu|Qb˾=}ú´ùu^ÉX7::Úª1!kôUÎ2ÎÔáééi`$·üQy ®ûÕ2: ßµ-.Ì\®r×z( €q�P„‹ÀFÊn­T ?Œ¾ŸžyæI·¦ û߯gΜ1�\Ìíè_é œ¼L¿žn„ zì±Ç,’¿µk×ÖÓO?­9sæhÓ¦Mú믿tåÊ•,§¬.jlÙ·ÛÎ˨Ɍu™.¾pÐW9KHH0¿. `(ŠHçSÆ¡srôèQóëjÕªÙ*äCZZšRRRŒC’ýÜO-Z´Ð=÷Ü#IZºt©yûºuë̉«¼$€K—.-)÷ï?ÝæÍ›5þ|sùá‡ÖîÝ»uìØ1-]ºT“&MR÷îÝU·n]yyyYL[Ør{�Ù²o«V­j~�>Ê872ֽ뮻¬“-¥Ït~‡¾*H?ÅÅÅIº•üÍÍôêP‘Χo¾ùæŽu>¬ƒJ’\]]uï½÷Ú:,C¤¯ûjO¢££åïï////­[·Îèpìê~J|ðàAíÙ³G’´víZIRóæÍU¯^½\·•ž¨º|ùržbøòË/ͯŸ~úimÞ¼¹È~¾r³þ°­û6㔀ëׯÏÕ1gΜÑîÝ»ÍåûÀqØò»"?Ÿé÷Þ{OÎÎÎrrr²ùŸ¯¯o®Fô…¾*jý”ÑÙ³g%ÝZ7�µb±°-„„„Üq¤ã¬Y³Ì¯~øayyyÙ:,C;vÌè,¸¸üï¶ÎndéÆ�Íkm~õÕWêÛ·o¡Ä–{ºŸ¬‰'*>>^Ë–-“¿¿¿~úé'Iyý+IµjÕÒ®]»ò¼féÅ‹ͯ{öìyÇúÉÉÉyjßš–.]ªG}4Ç:¶îÛ>}úhìØ±JLLÔ¡C‡´fÍõïß?ÇcfÏžm¥Ù¢E Õ­[·Àqä÷»ÂVŸé   uîܹPb©P¡B®ÖÕ, }UÔú)£ô5kæ+FÁ¹sç2m;qâD¦m<0Å à|ŠŠŠÒÊ•+³Mx…„„håÊ•’¤%JhÚ´iÙ¶õÎ;ïhΜ9òööÖ矮ûï¿ß&1ç•«««9qvåÊU®\9S�ÔÔT½ýöÛ…ZŽ2N¡zðàAõéÓ'S�ï¾ûÎüºV­Z…WN¬y?ÙZ™2e4hÐ -]ºT+W®TãÆ�•šš*''' 80OmÕ®][’ôï¿ÿ*--MÎι›” ý8éֵ˪�3Ú²eKžâš8q¢–.]ª*Uª(,,L-[¶ÌÓñmÚ´IëׯÏ6 œ—¾Ío\¾¾¾zî¹çôþûïK’^xáÝsÏ=Ù&Ñ"""´xñbs9888Çömý]a«Ï´›››š4i’¯˜lÅ–}e¯ý”Qzøî»ïÎG„8†Ü>@•¾D  øa èxæ™g´yóf‹m.\ÐĉÍÓäJÒ´iÓ²�Òõ‡~Д)StñâEýõ×_züñNj̔Ê~~~æ×Ÿ~úi¦ý'NœPïÞ½õý÷ßfXwôÐC™_ÏŸ?ßbmL“ɤyóæ™§,vrrºcò°°Xã~*,£F�’$]ºtÉÝÜ^vÔ¨Q#ýý÷ß’n�ªlÙ²¥|}}uðàAýóÏ?æºÏ?ÿ¼.\˜m[¿üò‹.\˜iíÎìî›tÎÎÎY^ÓŒ¬y?ֵͨiÓ¦Ú¿¿¹¼`Á�7.×ÇK·>·¾¾¾’¤5kÖ¨_¿~¹>vÔ¨QI¬’%KªY³fªR¥Š®]»¦#GŽd;µ´›››¼½½UªT)½úê«ÉÔW_}Uo¾ù¦EýƒæiÄav}Û¸qcÕ®];_ßÖˆëÈ‘#êÖ­›Nž|¸þúë/�?^õë×—‡‡‡<==Õ´iSMž|¸œœœ4|øp=óÌ3Vù®°F\Ò­ÏeTT”6mÚ¤Aƒ©zõêrssSÉ’%u÷Ýw+((HûöíÓ‚ r•ü•¬ÿ]‘k}¦í‰µûÊÞû)22R’Ì£€Ys˜À…!ãˆÍ›7ofJ¤yaï÷ÓO?ýdI§Q�9Ù³g�Zµj¥%J(66VåË—·f˜Ö³gOuéÒEAAAF‡b¡¨ÆØÂéÓ§U½zuIÒÑ£GU§NCâ`0MRR’Ö­[g.÷íÛWnnnF 7 ÀÞ1Øör7¼ n“>ZÝÅÅ%ÓÔÄyqï½÷ªN�::vì˜"##³�n¤sçΩjÕªF‡‘IQ� °…U«VI’:uêdXòpDnnnyš±@Ñ�ñÁ�tÍ›77 @QE@ž¥¥¥iÍš5’n%d¼½½ ÔÞøñã5fÌ-[¶¬H%€¯_¿®¨Y³fF‡b¡¨ÆØ‚ÉdÒ’%K$I“'O68Œ—ÕÒ+þþþ… ÈrœÅXÝ�7¥èèh‹íëÖ­Ó¹sç$IÏ=÷\�ÏóÔSOÉÇÇGÛ¶mÓßÿ]àö¬eóæÍjРA‘›âµ¨ÆØÂÖ­[uìØ1µhÑB]ºt1:(òHÈÒÍ›7Õ²eKuêÔIõêÕÓÞ½{%Iñññzíµ×$IõêÕS¯^½ |®’%KjÚ´i2™Lš;wn�Û³“ɤ÷Þ{OÇ7: E5.ÀL&“¦M›&'''}ôÑGF‡v�) déÀ�:|ø°$ÉÓÓSW¯^Õ¥K—4dÈ9rD’ôÖ[oÉÉÉÉ*ç3fŒ>ÿüs…„„h„ ª[·®UÚͯ•+W*66VÏ?ÿ¼¡qÜ®¨ÆØBxx¸~ýõW�9R÷ÝwŸÑádÒ´iS�o&“IW¯^5—½¼¼¬ößu‡pbbbôÆo(&&&Ó¾'Ÿ|RÎÎΪX±¢¦M›¦Ê•+!쉽ÝOÕ«W—³³³ÒÒÒtõêUÍž=[¿ýö›®\¹"Izæ™gÔ·o_«�¯D‰Z²d‰Ú´i£ &è믿¶ZÛyuäÈ�=Zaaarww7,ŽÛÕ¸[ˆ��Õ¸qãT¯^½"33àhµ`ÁsyÊ”)òðð00"X à,\¸P~øa–ûV¯^m~ííí­™3gVX°Söv?UªTI#FŒÐ§Ÿ~ªäädEEE™÷uîÜYï¿ÿ¾ÕÏÙªU+ÍŸ?_AAAZºt©FŒaõsäÆÐ¡C5qâD=òÈ#†œ?;E5.Àžyæ%$$è?ÿù�¼¼¼Œ'K�Þˆ�¼÷20}4Äèñpºví*Ÿëx{{«sçÎ…ì™=ÞO .Ôk¯½¦*UªÈÃÃCÍš5ÓG}¤ÈÈH•,YÒ&ç|á…4räH½øâ‹:xð MÎq'_|ñ…¦M›fȹsRTã¬múôéÚ¶m›Ö®]«úõëØFçà¾ûîËrº^ ?ìñ~rqqѬY³4kÖ¬B=ï¢E‹”œœ¬nݺéçŸVµjÕ õüE5áTTã¬é³Ï>ÓǬmÛ¶)00ÐèpÀî0@‘ãââ¢Ï?ÿ\ƒ Ò˜1cŒ@!ª[·®víÚEòyw-V'Nœ0: ÀpŒP$999iΜ9F‡ �µmÛÖè`¯ÂÆ«fØx™L&£# Å`p$€ÀA�A `p.FØóu|V££°+...êÖ­›Eö�_y`ÿÊúÈßßßè(슋‹‹�VÆÐà H€ƒ` h€|8Páuø”0: d4sôÿ^_5.À@$€€b(99YQQQærÇŽåêêj`D°À@1”ššª]»v™ËíÛ·' àXåÄå4�8qÂè0C�€C©ù~œjÖ¬it€!H€ƒ  ‚08Àà H€ƒ  ‡r|\i?~Üè0C¸`Mþå�%£Ã Á`pŒŠ!͘1Ãè0`eŒÁ`€|ØZçuöó3: dп£C Ç`p$€ÀA04ì^LLŒÑ!Ø�„„½ýöÛæò”)Säááa`D°FÀî�3Æè€"�08Àà H€ƒ  ‚08À°{ü±Ñ!E `Ø=___£CŠÀà H€ƒp1:{Ô¥K�o%J”P`` Eö�0P ¹ººª[·nF‡+c hp$€ÀA�ÁÀ@1”’’¢_ýÕ\nÙ²¥\\øß{Ç/<@1”’’¢o¾ùÆ\nÖ¬ `ÀÐà H€ƒ  ‚08Àà H€ƒ  ‚08Àà \ŒÀm9tV‡K�oI‰ :x¼ö÷“rs÷00"ro@‹F‡Y$€€bÈÕÍ]=?mQ€ý# CNNNò,ãet°2ÖÁ` 1gOçªÞ‰ ¦;Öñ÷÷/`4€}" €"á…žmsW/uL¦;'‰GD(†’“µuÍrs¹Kÿ¡rus70"X ` 2™LŠ¿~Í¢ ûçltë  ‚08Ö@‘ðÑ×ÛsU¯G£j6ް_$€P$øÞå—«zþþ5l `¿˜ `pL �]Ý)À=Îè0€|KP’Ž–8g.÷sß'w7# îµý9µý9`08FÅ�³³“Ô¬fQ€ý# Cn®®Ôý£ÃÀ0'ÎÄä\ÁóÄÛð÷÷·J,€5‘@±S³ësnÃd2Y!ÀºX `pL C©©©:zòœ¹\·F•(QÂÀˆ` $€€b(9%U+#2—§ŒìKÀ048F Ø9¾eqÎêu-œ@+# €bÇ¿ªï*øJ€µ148Àà H€ƒ` `€|ø·t#yyÕ7: ßtÍãs9ºì=òðð00"°®jÕª‚0 Ð˜L&¥¥¥Éd2 àÿsrr’³³³œœœŒV@`SÉÉɺzõª®^½ªääd’¿P999ÉÕÕU^^^òòò’«««Ñ!!ŸH»rúôé;ÖIII¹c+DÈIbb¢ÎŸ?¯øøx£CÜ�ÉdRRR’bcc+OOOUªTIîîîF‡†<" Cnnn0`€EìÅý÷ßo•v}¶•œœ¬S§Nåê¡@ѯS§NÉßߟÑÀv†0P 9;;ËÏÏÏè0à RSSuúôi’¿`çRRRtúôiÕ¨QC%J”0:ä `€U�;wN‰‰‰Ûœ��U¶lY•-[V®®®rvv6(:ÀíÒÒÒ”œœ¬k×®éÚµkJKK3ïKLLÔ¹sçT­Z5#D^�XMjjª®_¿n±ÍÍÍM5jÔ�‹ ?I@Qåææ&OOOùøøèäÉ“JJJ2ï»~ýºRSSl'xÄ `5ñññe'''ùùù‘ü;áââ"???999Yl¿ýûEÿÅŠ¡¤¤$}õÕWærŸ>}äææf`Dp·�þ-UªÿÖ;ãææ¦R¥JY$}ãââT¶lY£Bn‘Š¡´´4EGG[”À^ìܹóŽuªT©R‘²rû±2eÊ   J—.�) û@Ø??¿;Ö©V­Z!D¸�ÉdRjjªÅ¶’%K   J•*eQNMM•ÉdÊ454ŠÖXEV3Ë”(Q€H•Õ÷73ˆÙÀ«0™L™¶1R ìSVßßY}Ï£èa h€|¨\¹2SK®%$$¨lÙ²ærµjÕäááa`D°F€ƒ`0@>LXû›¼v]2: ßR“udïIsùÏe?©„«»�2 ÑÖèØ)F€ƒ  ‚)  á\¶ûNœ8‘í>ëÀa�Š%'yxy[”…kó”�Ùî«9%ûãL&“ ¢GÑÑÑ:sæŒZ·nmt(0@JJжoß®ÀÀ@•,YÒèpX ` *áê¦Úí{€Bd2™´{÷nEDD(""BûöíÓ°aÃHÛÀÑ£GµtéRmÙ²E§OŸV\\œ*Uª¤ÀÀ@=ÿüójß¾½!q�:uJÛ¶mÓÖ­[µuëV]¾|YÇ�g†ÀÁ°0 Hš2eŠœœœ²üóóóÓùóçsÝÖܹs³m+ãßܹsmøŽŒóå—_ªråÊ Ôo¼¡}ûö’ÃZ¸p¡š4i¢“'Oê£�>RHHˆªT©¢S§N)<<\=ô�V¬XQ¨1}ðÁª]»¶jÔ¨¡#FhÕªUº|ùr¡Æ ð�PdÅÆÆê›o¾1: …hÒ¤IzôÑGuóæM£C/¾ø¢¾ÿþ{Mš4I..–ZFGG«_¿~JNNÎU[Æ Ó–-[ôî»ïªfÍšû¼½½¬ÈÈH 6Ìjñ%ýúõÓÉ“'%WWW£ÃqXááázá…T¹re}ñÅjÓ¦�úô飨¨(•+WÎ\/22²Pã9r¤Ž9¢¿ÿþ[ 6,Ôs(|$€I'OžÔ< �;w €B4sæLEGG«S§NŠ‹‹3:€Á*W®¬öíÛkΜ9úæ›oäîîn±ÇŽzá…rÕ–���ºté¢É“'k÷îݪP¡‚$ÉÉÉIß|ó�f̘¡nݺÉÇÇÇêï£(pss“‡‡‡:tè Æ�ŽCŠ‹‹SPP�L&“:wî,gçÿ¥`jÕª¥µkתJ•*ªV­šÆŒS¨±•*UJ®®®ªU«–†Z¨çFÞœ;wÎèàH(rŽ=ª6mÚ¨uëÖš5k–Ñá(DžžžÚ´i“¢££Õ³gO%&&à°LiiJ¸zÑügJK3:$ G;vÔ¸qã2mÿä“O´hÑ¢<µU±bEõêÕK’Ô®];µlÙÒ*1Ú‹2eÊ‚CZ¾|¹bbb$I•*UÊ´¿C‡:{ö¬NŸ>­ÀÀÀÂÏ,«ØP4lÙ²EÓ¦M3: 8—;W€ÂsõêUõìÙSÕ«W×Ò¥Ky³¿‹ IDAT�€|}}ªŽ;jìØ±Z²d‰Ñ!)-5Yÿ°Á\nÐ}ˆJ8»çpÀÚº¿½*Û}lUˆ‘€ý(Y²d–ÛÇ�§F�©mÛ¶¹n+}Ü€€«ÄlܸÑüºD‰F’³¢[q­¡C‡ªG�F‡@@‘‘––¦!C†èôéÓŠˆˆ`- kß¾½Æ�§ùóç«C‡8p Ñ!X�gÅ*Ùîó÷÷/¼@ÀÝ}÷Ý:tè�¹œœœ¬þýûë×_•ŸŸ_®ÚH_�5㺬@A|XqqqªY³¦† ¦qãÆÉÝÝÝ܆ÉdRdd¤BCCµgÏ�={V+VTïÞ½õú믫B… yzÏ&“Iááá Ño¿ý¦7n¨råÊj×®�žyæ™\¯¯l2™´nÝ:­Y³F¿üò‹ÎŸ?/WWWU­ZU]ºtÑÈ‘#ï¸îòÍ›7µ~ýz…††jÚ´ijÛ¶­nÞ¼©9sæhÙ²eЉ‰Ñƒ>¨åË—g{ýskûöíZ»v­þóŸÿèÌ™3æ>õ÷÷W—.]4|øpÕ®];Ëc—-[¦§žz*Ë}3gÎÌô@ûí÷O~ÄÇÇkÙ²eÚ°aƒ:¤ØØXyyy©V­ZêÙ³§ž}öYU¬X±@çÈJrr²V¬X¡uëÖiß¾}Љ‰Q©R¥T½zuuïÞ]£F�ºãï6ÿþû¯Ö¬Y£ððpuïÞ]S¦L‘$ýñÇZºt©¶mÛ¦Ó§OËÍÍMÍ›7׫¯¾ª‡zÈ¢�Ë—/+,,Láááú믿§ h̘11bD®ÞKA¯aRR’~øámذAÚ±c‡ªU«&“ɤõë×+$$D{÷îÕÕ«WU·n] >\cÇŽ•‹‹eJ.&&F÷ß¿þþûo‹í¡¡¡ ý߿Ӛ6mª}ûöYÔ1™LZµj•BCCµwï^]¼xQ©©©u²:Å#€asß~ûm–S_,_¾\‰‰‰D„¢æÔ©S “���†jt8yÆ=ØN™2e4xð`%%%iþüùF‡(b*W®¬ˆˆ•)SÆbûÔ©SµeË–|·;lØ0mݺU�;wα^Ù²eµÿ~EDD¨}ûö9Ö���WXX˜{ì1ùøø¨gÏž 3ÿ®ôí·ßª~ýúš8q¢~üñGÅÆÆêæÍ›:tè�^~ùe 8Мàù믿ôÐC©G� ×ñãÇ•˜˜¨3gÎháÂ…jÓ¦�®^½šë÷{óæMõë×Oƒ Ò¶mÛtùòe%&&êäÉ“ 3'�SRRrl篿þR`` ^{í5uëÖMëׯWTT”^~ùeEGGkÁ‚jÖ¬™fÍš•騤¤$EDDhذaªT©’† ¢­[·*55Uqqqêܹ³‚ƒƒuüøqÅÇÇkóæÍúàƒrýowüøquìØQíÚµÓï¿ÿ®©S§jëÖ­Úºu«† ¦è�7ÞPƒ 4nÜ8%%%ejãÑGÕáÇÍ�3ÆbßáÇõÖ[oå;^IÚ´i“êׯ¯M›6)((H‘‘‘ŠŒŒTÿþýµ{÷nM›6M 4Ð×_] óÜn×®]jܸ±/^¬¡C‡ê믿ÖÖ­[5jÔ(:tHo¾ù¦ôé§Ÿf:öèÑ£zóÍ7uÿý÷«jÕª ÒöíÛ•�� ””Mž­N�:©_¿~ŠŒŒÔùóç•�� ?ÿüS'NÔàÁƒ3µW¾|yEDDèðáú뮻ÌÛûôécqß|õÕWÇ%&&ªgÏžzüñÇuåÊ}üñÇúõ×_õÃ?hÒ¤IæéíQ¼‘†Í�=ZAAA8p h±Ïd2Yý|¡¡¡òôôT³fÍgõö‹3[]Û¹sç*%%EC† ±»Ñ¿RáßãÅ Ÿiû`Ë~J’ö³Ï>S||¼UÛØ¿Æ�kåÊ•*Qâ3Ú¤¥¥iРA:zôh¾ÚôññQçÎ�õå—_ÊÉÉ)ÛzÎÎÎjܸ±zôè‘eò+£˜˜]¸pAwß}w¦uŠ—.]ªGyDmÛ¶Õ_|¡ß~ûM»wïÖc�=f®³aí\¹R?üðƒU·n]EFFêÀ�Ú¾}»†n®{äȽóÎ;¹~¿Ã† Óúõë%ÝJªWªT)S��� 2$Û6öï߯x@%J”О={4lØ05mÚT���š:uª9‰•’’¢àà`MŸ>ÝâøáÇkãÆ�úæ›otýúuóöô¾¼qã†ú÷ïoÑ/^Ìõ{ÌèçŸÖ½÷Þ«ï¾ûNcÇŽÕ?ü Ç{LÍš5Sûöíõî»ïjß¾}ªQ£†RRRôÁ¨C‡qI·–¯jР�ù/£Š+ZìkР�ªT©’¯x¥[ƒMz÷î­~ýúióæÍêÙ³§7n¬:háÂ…zíµ×$ݺ&ýúõ+ÐEEE©cÇŽ ÐöíÛ5`À5iÒDmÛ¶Õ[o½¥Å‹Kºõ€Ã¨Q£ôÙgŸYèÐ!•+WN*TPZZšyûÍ›7Õ«W/………iÒ¤IÚ²e‹8 ¯¾úÊ<’8--MÏ>û¬®]»¦qãÆiÊ”)z饗´cǬÀÀ@IÒêÕ«µoß>mܸQÍ›77×Y½zµÂÃÃ-Žsuu5ß¿ý¾ò÷÷·8nÆŒæDö÷߯þýû«Y³fzðÁ5gÎmذAÎΤÿŠ;îØœ���>øà­\¹R+W®´ùùBCCuãÆ ýñÇÚ¹s§ÍÏWœØâÚÞ¼yÓ<íÉOø Zµj¥çž{Îâ¸�êå—_VTT”ú÷ﯦM›ªgÏžŠŠŠ’···¹Þ'Ÿ|’åyó"--M!!·– éÚµ«ù½gÔ­[·l§&GñA'ãSD_£àlqm7oÞ¬ëׯË×××â‰( Ÿiû`Ë~rvvV×®]%I«V­²jÛÅÁ‰˜¸¬ÿNœÈòìUPP�ÆŒc±íСCNÚe•`ÉJÆäÖ�d\S6%%Eß~û­î¾ûî,Û|üñÇÍåèèh½ûî»êرc–íf`qöìYýóÏ?wŒåï¿ÿÖš5k2­\»vm}ùå—™’]Ó§OÏ´ìÙo¼¡cÇŽ©cÇŽª[·n¶çzä‘G̯ÓÒÒ´téÒLu6lhQŽ��Õ’%KÌ×·{÷î:vì˜N�:¥&MšÜñýÝnìØ±æi·'Nœ˜c¿Õ¯_ß¼N­$mܸ1Ó(ÎÂðì³Ï*))I#FŒÈ2 +ÝšŽ¼]»væò¹sç´iÓ¦�wâĉºté’˜íZËÎÎÎêÞ½»¹|ãÆ ­X±"S=///‹dh»víôÉ'Ÿ¨dÉ’™êÞ{ェW¯ž¹|áÂmܸÑâøtÕªU³˜~}ûöíYÆiÍkX¹re‹ò»ï¾«±cÇfªW¾|yõïßß\ÞµkW�7»pá‚.\¸ éÖC.Ù™0aB޳Àñ‘`¨ô0uèÐ�ÿ ÈVú?¾¿ûî»,×Ü@öj¾°.뿚5³ü{öþûï«[·nÛ6nܨàà`ƒ"ÊÚíI/??¿lëÞž­S§N¶uoŸ†øØ±cwŒ% À"1{»yóæYŒðŒ‰‰ÑºuëÌåøøxó¨à;­ƒ|Ï=÷X”þùçLun¿6O?ý´Õ–�;pà€6lØ`.wéÒåŽÇŒ=Úâü³g϶J,¹µcÇýòË/’¬s}sëäÉ“Z³f�UÏ›±o«U«–c›ïûråÊ©bÅŠÙÖÍxßguÏ[ûÞ~?Þþ¹Ë( Àü:>>^—/_þìÝwtÕûÇñOzI@J B/B("AQš (]z©¢   |EPšÒ¥ˆ"ˆ¨€ˆ RD,T¥÷.�ÐkIö÷GNæ—MÝ„ÝL²y¿ÎÙÃÜ™;3ÏÞ™lÂ>sïMõüiñòò2¾G_ºti’¹§ãU¨PÁêÜÈy’Ì2�Åbѯ¿þ*IªS§ŽÉÑÈÊâG¸}û¶¶mÛ¦Úµk?Ðñ.^¼h<ík+[þÓ 0—›››–,Y¢'žxB{öì1ÖðÁ Q«V­LŒ.cüýým®ëççgUN­‡`¼ÔkR\Ò®_¿~zûí·�u¿ýö›Ñ3yݺuÆyFŒaÌ£j‹„C§$oÞ¼6/- “¿yòäQÁ‚ÓÜ' @uëÖ5¾Çܽ{·Nœ8‘d^VGI˜lOë;ÔÄ=Ýmiß”¬X±B111’¤Î�;§:}Ÿ=Ï/£÷}r÷¼Ym˜86)î»­äz2Û*Ož>>Ê•+—‚‚‚T·n]Mžú¨1<ÏÎ�;Ó½b³fÍR¥J•ÒõjѢşÈJ<Ü]Ô¢fqãåáÎHpþþþZ¹r¥ *d¬³X,êÚµ«vïÞmbdãêjû×ø‰ë>è°ñ'Î÷îÝk,oذÁX5j”vìØ‘êk÷îÝÆ+<<Ü.ñÙjãÆ�ÆrâÄ\j{ì1«òƒô¬M¯„í»jÕªTÛvçÎ�Ví;~üx»œ÷³Ï>K×ySš‡7=2zß'wϛՆɱÇÔi“'O–§§§¤¸ÜW“&MÔ¼ys=zô�� çá4=€ùå—d{ò|óÍ7*[¶¬ÆŽ›d^‚‹/jÅŠúé§Ÿ4cÆ õíÛ׿cº¹¹é«¯¾J’X:}ú´/^¬Å‹«}ûöš?¾ÍsDdÔêÕ«Õ»wo�:u*Ùí'OžÔÉ“'­¾œŸ?~’/öS{¿óæÍ3&»—âÆÑ¿yó¦U½˜˜Í�;7ÙärJ>ùä >\wîܱZok;.Y²$Ãɽ[·niÅŠjݺu’mË–-Kñ�£]»viëÖ­*]º´zõꥰ°°$uNœ8¡O?ýTßÿ½Ž=šäi¥Õ«W«Y³fÆT Ý»wOÔÁƒ5oÞ<…„„hÖ¬Y µù½]¹rE/¿ü²V¬X‘dÛµk×tíÚ5�:uJ¿ÿþ»>þøc�9Rï½÷žU=GµmB›6m2–+Uª”®s8º íåAïq{»zõª:uê¤5kÖX­�ŠŠÒÕ«WµsçNMœ8Q¯¿þºÆ�gü!‘�#?+2ã¾Ë.ôZ9ÛuòòòRÑ¢EuòäÉlùŸu +rsuUHP¾´+ÙÐ#�<¢åË—«nݺÆ÷|·oßV‹-´uëV«¹n�™½:F”,YRyòäÑõë×%I—/_6¶�³J\V¯^]E‹•———®^½ª#GŽèĉ’âz¹Ö¯__K–,Q³fÍ’�7¡�;wªyóæV¿ÔòæÍ«jÕª)þüºÿ¾®]»¦Í›7¿f̘‘$쨶M(þIÁ¼yóꡇJ³~BŽlC{zÐ{ÜžŽ;¦F�YõL Rùòå©Ý»wëÒ¥KŠŽŽÖäÉ“µk×.-_¾\¹rå²:Ž#?+2㾋7yòd <8Szˆè¿ÿþ³Jº¦Æ×ÊY®SBñ à]»veh@Îòøã�kÁ‚jß¾½ñácÇŽ©mÛ¶Z»v­ÉÑe/...*V¬˜‘Nø zÂ9Mt~SG»uë–±œøaøÔ$†:=ÉãeVûf§ëšgz/ñZ¶l© 6¨S§N:tè�¤¸Ž#ãÆ�Ó‚ 4}út§é(ƒŒqšp@@€¦OŸn”~Ñ-Å 0bÄ 4Èè�­&Mšè×_Õýû÷õÙgŸé£�>²ù˜E‹ÕǬ-Z“nß¿_Ÿ|ò‰† ¢¨¨(ýùçŸzóÍ7õÙgŸÙý=KÒèÑ£�?^ºté¢Q£F©D‰Iê�>}Z-[¶Ô¶mÛR}ºÚµkg Õ`k;6kÖ,IB¯nݺFoç¡C‡ªQ£FéŽ)$$DóçÏOñ¸ ï“R¥JiÒ¤Izá…äêêªÿþûOÕªUÓåË—U¡B…d‡6N˜äóððÐo¿ý–$ñ·qãF�9RááኌŒT‡´gÏžd¯o¼Ë—/«Y³fúï¿ÿ$Å=œ0~üxµoß>IïÀš5kjëÖ­’’NÃQm›Ð±cÇŒ8ÓËQmèr�Û˽{÷Ôºuk#¡¬Y³fé¹çž³ª3oÞ< 4HwîÜQXX˜úöí«/¾øÂêXŽü¬ÈŒû.^¿~ýÔ°aC» »’–‡zÈæä¯½®•³\§„%Ùg.Þ¾}ûªM›6éÚçÈ‘#  ÙLÛ¶muèÐ!«yiÃÃÃ5xð`U©RÅÄȲŸ„£&œ;7~Ê&IF‡Œ¬*a'”û÷ïëìÙ³zøá‡ÓÜ/wîÜVå´æM¶'wwwÝ»wOR\ûÖªU+ÓÎ/«_×´˜Õ†ŽV£F íܹS“&MÒ„ Œ‡Ξ=«_|Q½zõÒÌ™3åææfr¤0ƒÓ$€Óòõ×_«}ûöVëÜÝÝÕ»wocòö„ãÿ§¥H‘"Ú¼y³Š+fµÞÃÃCýû÷Wpp°š5k¦ØØXÍ�;W�:uRݺuø}$? fÉ’%SW?00PcÇŽÕ³Ï>+IFÂÚlyòäÑúõëU®\9«õ™ÝŽõôÓOë‡~°úáxñâ:räˆ8 *Uª$;¬ïû￯³gÏêÌ™3úßÿþ—l¯Ï'žxB¿üò‹ž}öY…‡‡ëÎ�;š={¶>üðÃãéÚµ«‘ü-[¶¬ÂÃÃU´hÑdëN�:U/¿ü²®]»f$~2ÛñãÇ%)Åž‚©qTÚ[V¹Çß{ï=íØ±CRܽñçŸ* ÀªŽ§§§z÷î­ªU«Ã#-X°@;v4>;œ‰———*W®lvIp­RÿYÿ´ñƒHÒ®ÎêøŒVÉox~Ræ&1b„:d5ªãÔ©SÕ°aC£Ê~îß¿o,'8ápÚ™Ó÷öíÛI¬ŽòÈ#�èï¿ÿ6Ê;vì°)œ°ç°7R[fÉ—/ŸÑã8<<Ib,¡Ìjnj֪U«’º8oÞ¼ªU«–|||’Ý÷‘GQXX˜öï߯Ž;¦xWWWõéÓÇ(ÿóÏ?)ÖýóÏ?µzõjIqÉ¡ü1Åä¯$Õ®][Ô… Ô¼yóë9Ò•+W$)CÃ;¢ !+ÜãW®\Ñ´iÓ$ŵÇÂ… SM|=þøãzÿý÷�ò˜1cì’ǵJ]ügjdd¤ñÔ&€Œ»«ÿþÏxÝ�vüˆsø&ÿ JöÎhîܹªS§ŽÕº°°0“¢Éž.]ºd,'|=a2øÈ‘#F‡+[¬\¹R]»vµO€6HÜñbýúõ6íwæÌcÙÓÓSO<ñ„=ÃJUÂö]²d‰ÕüËi6l˜>ùä“>oxx¸Åï¹Ë”)£µk×¹‹[·nÙe:5d?9"œðé{±eå   ãI‹˜˜‡ô<?~¼ñáuþüy�=ZuëÖUÞ¼yU¬X1=÷Üs8p ¾üòK?~\®®®òõõµ{•x^ÚädF;¦WÅŠU¿~ý>Nll¬¾ÿþ{uìØQ… VùòåÕ¬Y3 8P'NÔœ9sl~b.áÓjéÂÂLñ¿¤l�59ölCGÈ ÷ø¦M›Œe[^‘¤\¹r©Aƒ’âþÀ‹ŸÛŽÅµJ]ÂùJlù�$ÀùÄŸ” (å= IDATxH^[äÏŸ_«V­RÞ¼yÓµ_ÂN ‡N±ÞÞ½{­Ê¶$˲‹ï¿ÿÞx?£G�¶š644TåË—7ÊPÇŽSMˆ9rD 6TµjÕôÌ3Ï8.ðDŠ)¢W_}Õ(Ÿ}Z§OŸÖ/¿üb¬«]»¶Þ}÷Ýd‡ÈÊÝŽée�!´—.]ª‘#GjÿþývˆHÆÜ¿’T¡B»ÓÑÜÝÝ“á_@önC39ò?uê”±\¼xq›÷KX÷ôéÓv� ÉãZ¥.áH™57Pjvn§›Å‚ÍȰ¨¨(�Îóÿs ýØå�Ê`ŽZµj™™*¾êñãÇ3´Ù²eµlÙ25jÔÈjNÛÔ<úè£FrwëÖ­Ú¸qc’!€OŸ>­—^zIyóæÕµk×$ÅuØIIü�ñ,KŠ�Ž'RSá.ñqm镜V¢:22R&L�$½üòËÉö†|ÿý÷�Ñ*¥¸„q�54fÌ=ûì³Æü©.\М9s4eÊÅÆÆjöìÙIŽ•8æôŒÜi‹±cÇ*,,L�$ >>>|¸ d¬›>}ºvïÞ­‘#GªN�:ru�ëcxòäIMŸ>]³fÍRÁ‚5~üødÏ›ðþLë¾Kx¤5ªcr÷}„¯½Û0=½ý¿œÒû.Z´¨qOnÛ¶M÷ïß7~nnݺ¥°°0µhѨ?nÜ8uèÐ!ÅHñ£çåË—O+V´9^8�ÑØL™ñ”—«««Ú´i£­[·êÂ… úöÛoõöÛo«iÓ¦ 6>„¥¸Þe�5Rÿþý³ÕhY-ÖŒ “Лo¾©¶mÛZ%.K–,©W^yE}ô‘V­Z¥C‡éÚµkš‹$a/¹¬,>�“‘?â݆™Í‘÷xÂc§§×dº̷š9¸V©KøÇ|VH2×�;wŒQðÖ®]›á–õë×׬Y³l®ÿÊ+¯Ë‹EÏ?ÿ¼fΜ©íÛ·ë�?þÐðáÃõè£�ªK—.V‰áo¿ýV_|ñ…¶oßž$Á–¸·p‡ÂK¼-ápĉ%î(‘R¢¼@�Æò®]»Rì�pïÞ=uíÚU‡R‡’MØJRëÖ­“ å¼sçN½ð òóóSPP�òæÍ«Â… käÈ‘ŠŒŒÔ’%KTºté4ßÃ_ý•ì93ÊÏÏO+V¬0æ½?zô¨^zé¥d“ {öìÑÀ�%I½zõÒ;3âq·oßnUÞ¼y³Ýb?~¼ªU«fµî»ï¾Óc�=&•(QB¹råRÅŠõù矫xñâúþûïSLj'Ž->ñ˜Ø€Ô¤I«u¿ýö›êÖ­+???•(QB¾¾¾ ÒäÉ“•+W.ýøã�V÷W¼K—.éâÅ‹F9µ{>ñöK—.¥ÚiÆ–ûÞžmxîÜ9«râäBÇŽ³*§4ýß“O>i,GDD襗^Òßÿ­U«VéÉ'ŸLòýñÁƒÕ¯_¿d¿WÞ²e‹1Òà|`Ó(•p>9¢°#DFFÚ4oiÂ!AíGll¬Ž9¢%JÈÃÃCjÓ¦�Ú´icÔ¹uë–þúë/-Z´H_ýµ"##5cÆ ¿¼Ìbë“2ŽhÇØØXÅÆÆZ= d«€€€ ŸwõêÕš2eŠQnܸ±F�•â\Ÿ¶&s~øaãÛþýû“<…˜™lm[___]¹r%ÉZiqT:‚™÷x¼¢E‹Ë»wïV»vílÚ/¾G²weuò3�Uä„kõ ×)þéÔܹsó‡+ä0ÿþû¯† f$O<¨víÚéƒ>ÈÐP³=zôСC‡ôÑG¥Y÷™gžÑÀ��_¿®×^{ÍØž;wnM›6MÝ»w×o¿ýf¬�ŽŽÖ’%K¡²eËêÎ�;:pà€Ö®]k )¯W¯^IöCÎ@à Jü‘œýû÷Oryxx¤˜œzuëÖUÙ²eU¥J•{}ùúúªAƒš;w®þùçùûûKRŠÃ0¤×ƒÌe`ËܬŽhÇÓ§O+((HyòäÑ÷ߟîým™:% ¹¾òÊ+Z½zµ]ÞS„ï7ß|óÀÇ˨ô´mü/Ðô‡â¨6t³îñ„ øÃ?Ø´Ï™3gô÷ßå„�g”½æ=INF~¦'Mš$WWW¹¸¸8ü`S�Þ¬p­²ÚuJ(~¸¥ø'tÈ)Î�;—âëĉ)¾pü±òçϯêÕ«[Mu'ÅõÞ+W®œµsçÎt{üøñVCª¦fòäÉZ²d‰žzê)ùûûËÇÇGåÊ•Ó�!C´wï^uïÞ]RÜ÷]}ûöUXX˜®^½ª5kÖhÈ�!Ê•+—~øáÕªUK#GŽLÒkïçŸVÆ Õ¸qcIqÃGW®\Y-Z´HÒ»ñÚµkêÛ·¯ªW¯®þùG’Ô©S'õìÙ3Éß×®]SŸ>}ôøã�[}P´hQýúë¯Ú¹s§ÆŽ«��ýðÃjÛ¶­BCCÕ¶m[­^½Z¯½öšŽ=šfòWŠûÎt„ Ú±c‡ú÷ï¯òåËËßß_žžžzøá‡Õ´iS-X°@{öìIòýÅåË—U½zu½õÖ[ÆÿÿãÅÆÆj„ ªW¯žÕ¼¦ªP¡Búé§Ÿô矪W¯^ŠŒŒTÿþýªöíÛ믿þÒØ±cuìØ±d“¿R\2¯F�êÒ¥‹<˜dû‚ Ô´iSU­Z5I"0½òäÉ£5kÖhõêÕêØ±£‚‚‚äãã#•*UJ]»vUXX˜~ùå—d—#FŒÐ“O>©©S§&¹ÿâ{xW­ZÕê>‘$OOO-X°@7nT�=TªT)åÎ�[ÞÞÞzä‘GÔ¦M}ÿý÷Ú²eK’ä¯7lx£F�’ŒÒh±X4tèPÕ¬YSŸ|ò‰$é“O>QÍš55hР$Ó®_¿^M›65z$8p@õêÕÓ‡~˜äû¬?ÿüSÍš5KÒ{ùAÛð­·ÞRPPP²ŸEÅ‹·š:²yóæ*]ºt’žËS¦LQéÒ¥5iÒ$«õEŠÑ/¿ü¢ÚµkËÛÛ[… V«V­´qãF«NÛ¼y³:wU«ª~ýúš={¶^xámÞ¼YÿûßÿRÜÎ/ûv“2ÙܹsÕ¾}ûTëŒ=ÚXnܸ±òäÉc÷8â‡<Ù¿¿¾ùæuëÖ-Õú*TÐsÏ=§¥K—êâÅ‹ºtéR²Ã1¤Ç‘#G2¼ï矞ì“+ ¥·ö*K©géŠ+Œ!$~üñG»Ìék«„¸7mÚ4Íú¶ÎEÒ¹sgãÉ£Ï>ûL=zôPÕªUSÝgÏž=Æ@óæÍKvÈ•„ìݶÁÁÁÚ²eKºç,uT:‚#îñôjÑ¢…^ýuEEEiß¾}úî»ï¬ædIΘ1cŒÞËÕªUKóÞ°EF?+õ3Ý¿=óÌ3MxÆË—/ŸMójf…k•Õ®SBñŸ%J”ÈPŒdWýÿJV›J€Œèß¿¿ú÷ïï�cÇ÷n´UÛ¶mÕ¶mÛTë|úé§)nëÖ­[šß߯ L×ïòÔ†…NMåÊ•U¹re 6,Cû'§R¥Jš>}zºö)P €i»Ô©SGuêÔÉо¯½öZªÉ9Ghܸ±ñ @z̘1C3fÌÈðyk×®­Úµk§{¿ßÿÝæº#FŒÐˆ#lª’á{&£møá‡êÃ?´©îòåËÓ}üš5k&éùœ˜™?+È^èœAááá©>±3wî\c»››[ªZ&LP�T¶lYc\öŒxÿý÷‘f½„O"ùúú¦X/áp)�aó@=‰W­Z•êYéiÇx ‡PM<—F¼uëÖËÁÁÁ¶†k çO³þÚµkm:îsÏ=§§Ÿ~ZR\Âó…^о}ûR¬«®]»jÆ Ú°aC’§–’cï¶�o‹óçϧ+ ç¨6Œ7hÐ åÍ›WåË—×¶mÛÒµobö¼Ç3W@@€Õ,¯½öZŠó¿HÒÊ•+�§î$iäÈ‘©ßÑŸŽú™öôôTåÊ•âðWñâÅmŠÉ‘×*»^§„âÀñC÷’"ü^}õU­^½ÚjÝ¥K—4hÐ ½úê«Æº#F¤8¤ëï¿ÿ®¡C‡êòåËÆ0 í�vìØ15hÐ@þùg²Û÷îÝ«Ž;j×®]’↠MmãbÅŠËŸ}öY’í'NœPóæÍ­æµÈˆnݺ%IÐ¥·ªW¯ž±þøãš4i’nß¾mUïÊ•+êСƒ¶oß.)nž’´ž^”ìß¶ñsDGG§kˆ:G¶áÒ¥K5yòd]¿~]ÐË/¿ls\)±Ç=þ q�7ÎHš]¸pAuëÖM2|¸Š)¢1cÆhÏž=º}û¶1A¸···š7o.)î‹ò‘#GZõ�MiÞ×J•*©T©R:wîœvíÚ¥»wïÛ:tè … ÊÍÍ-Ù}'Nœ¨!C†X­»xñ¢ ,hÓûN)¦àà`•,YR¹sçÖåË—uàÀ«ÞÁ Ouh‹aÆYõ+V¬˜*V¬(ý÷ßú÷ß“ 5�° ‹)¢‘#G&™Ø>¥˜}ôQ•,Y2Cí˜Pdd¤*Uª¤£G�JŠëUY£F hïÞ½:vì˜Q·OŸ>š5kV’cìØ±CÓ¦M³ŠaݺuF>ýôÓ*\¸°Õ>yòäÑСCmš´gÏžV …„„¨H‘"ºqã†8�â°ÈžžžÊŸ?¿råÊ¥áÇ'InÛ¶MÍ›7·š+ÃËËËhƒË—/këÖ­VïmîܹÆ<%©±GÛ&¡€€Iqó$´nÝ:Íâ9ª ‡®±cÇZÕß»woºz:â·G\P£F�tòäIc]pp°*V¬¨{÷îéŸþÑ¥K—Œm 4ÐòåË•;wîT�ë¨ÏŠxö¾ï²G\«ì~�¾ûî;µiÓFR\b<þ³#3íÝ»W•*U2Ê_ýu¦�"ØSTT”.\h”»tébÓpõ2_â9òlå$ÿÝd3ÑÑÑ:|ø°ÕºÒ¥K[MÈõ™žø{¶={ö¨bÅŠtLXsšð{ï½§Q£F¥Yï�wÞQãÆ�mÓÞ¼yV‰¡„I�Ù³gëÍ7ß´Jà$äáá¡Q£F¥9wÂúõëõÔSOåàà`ãËs[ÄÇT¨P!åÎ�Ûê ö””-[VŸ~ú©Õy“sûöm5mÚ4ÍÞ`Å‹×ÿý—ì¶O>ùD½zõ²Zçî˜¹¸¸hΜ9zã�7¸Û¿¿7nl•}zºz“>hÛ&V¶lY:tHÇ×|`sŽjÃeË–%™s5ñgAZq�Û#.)îÞhß¾½ÕP¼‰¹ººªÿþš8q¢M¿ÈõY‘�½ï»ìÀÞ×*»_§·ÞzK}ô‘ªV­ªÿý7]ûÚ `8›¨¨(«‡&ÛµkGÈ¢H²ÀàüðC?~<Ý ÄmÛÄ⇬Mièò”8ª [µj¥�*Ož<ªZµªjÕªeŒ,`+GÜãöˆKŠ»7ÂÃõjÕ*µoß^Å‹—§§§|||T¡Bõïß_;vìÐÔ©Smþ%î¨ÏŠ„ì}ßeö¾VÙý:­Y³F’Œ^Àœ———ºvíj¼Hþ8§éœö¾{÷nº„’Úºu«jÖ¬)777EDD衇2;$+M›6Õ³Ï>«þýû›Š•¬à§N�RñâÅ%I‡V©R¥L‰ƒÀ³œ;w.ÅmU«VMq[PP�¢ uôçAàì‹ßºLõØc�©T©R:räˆÖ¬Y£Ž;š’•sçΩhÑ¢f‡‘DV� p„ø!j6lhZò3)R$Åm$y‰9ÏX™²­�J’¾øâ sIäæÍ›Ú³g�BBBÌÅJV� p‹ÅbÌ­>dÈ“£€¬�0Ó½üòË*X° ÂÂÂtôèQ³Ã1¬^½ZåÊ•ËrC¼fÕ¸Gøå—_täÈU«VMÏ>û¬ÙáNÅb±(**Êx13 €s`h¦óññш#ôÆohâĉš={¶Ù!Éb±hÒ¤IêÖ­›Ù¡XɪqŽ`±X4bŸ¸hÆŒf‡“D•*U˜›ÙZdd¤Æ�o”‡*ooo#€=Ð@–Я_?…„„hîܹI&•7ÃâÅ‹¡>}ú˜Š•¬àß~û­¶mÛ¦îÝ»+44Ôìp [ p*.^¼¨>ø@/^L²­k×®ruuU�4bÄ.\Ø„çáææ¦9sæè‰'žÐ›o¾©Ÿ~úÉ´X8 ¾}ûjáÂ…òòò2-ŽÄ²j\€#DDDè�7ÞP™2e4qâD³ÃIV¥VJùw˜�qÑ÷¤wÅQçÉòÉË&{ œŠY³féã�?NvÛÒ¥K�åüùókÔ¨Q™à´jÖ¬©)S¦¨ÿþúüóÏÕ½{wSâèܹ³ ¤^xÁ”ó§$«Æ8«¯¾ªÈÈHýñÇÊ“'�Ùá@¶A8Ï=÷œfÍš¥ˆˆˆëäÏŸ_Ï<óL&F8·×^{M;wîÔ€T«V-Sæ×üúë¯U¶lÙL?oZ²j\€½½ûî» Óòå˹ç �H§"444ÙáŸ8ÖìÙ³uÿþ}5jÔH›7oV```¦ž?«&œ²j\€=Í›7O3gÎTXX˜jÕªev8@Îu'îß›—tâÄ cuPP�)áàÁ¸š$æîî®ùóç«}ûöêׯŸÙáÈD¥K—Ö–-[Hþ™i×Ú¸×7o©D‰Æ Ù=€dI...úè£�Ì@&«S§ŽÙ!@¶F`p$€ÀI�'Aȉ\ݤ¢åÍŽvænvLàê&­ u™b¬:>º…‰ÀH9™Ac1((ȼ8`  N‚08 †€r¢ØéÜÁÿ/)k^,°À°'ßûªXÐÍì0€ ‹¼oÑø}QFyè¢ë&FÀÞ,‹îÝ»gvNËÓÓS...f‡É" €“¹wïžV¬XavN«Y³fòòò2; Hs€“ 0�ƒ]‹´H’Nž<)///™»Û¼y³Ù!8�ÐÐP³C€4‘r°iÝ�û·\9Iq󄲯£G�jóæÍ:wîœbccU¤H…††ªtéÒf‡ “� ¨R¥Š<<<Ì#Û¹ÿ¾vîÜiviÚ²e‹† ¢ 6$»½nݺš9s¦*T¨�É‘Èl$€È<<|XÛ·o×÷߯իWëôéÓúúë¯åëë+Iº}û¶:uê¤{÷î™5G" � ]ºtI=zôиqã´dÉ[mwqqQÇŽõé§ŸëŽ;¦uëÖev¨2 `€lh„ êÒ¥‹†šj½öíÛ«@�FyïÞ½Ž €‰˜ÈÁÞx vËËËËäh¶Š��Õ®]»´bÅŠ4뺸¸¨T©Rºté’$ÉÇÇÇÑá0 ` òr—†>ùÿ _¯2eäââbbD€ôpuuÕÚµkm®ãÆ c¹jÕªŽ @AÈ�\\\äíaµÂ´XŽ¥'NH’BCCjn@Š9€œØâÅ‹uçÎèË/¿4;F`€ ø¥ÔûÚ_¬˜Ùa8­_|Ñìp gÏžÕðáÃU®\9-]ºT¥J•2;$FÀ :tH/¾ø¢nß¾­•+WªR¥Jf‡ �r ÈÈHM�:Õ(0@ÞÞÞ&F°—›7ojÖ¬Yzÿý÷uûömIR�5Ô½{w}ôÑGò÷÷79BŽÄÀÈR.^¼¨'N˜FŽi¼Ùß®]»Ô»wojèСFòW’bbbôé§ŸªF�:uꔉQp4z KéׯŸ$Éb±˜ ÙË­[·T­Z5•.]ZgΜÑßÿ­Í›7+66Ö¨søðaµk×N6l�«+ýgDÀ Ô®][µk×¶ZwêÔ)½ûî»úâ‹/Œu›7oÖ�?þ¨V­Zer„2�v8©bÅŠiþüùšø@~~~Iê^¾|Y­ZµRdd¤,X š5kš1€ÌB€`çÎ�f‡;:s挮^½*IŠŽŽÖôéÓµlÙ2 ûì3 6L7nÔÙ³g­|ùò©`Á‚*Q¢„ªV­Ê\¿@DÈ�îß¿¯üÑ(—+WŽ0dCÁÁÁ 6; Y `œŒ§§§š5kfvNËÓÓÓì E$€p2...òòò2; € øœ `p$€ÀI�'Aœ `p$€ÀI�'ánv2Ÿ§§§z÷îmU@öG Öî;«}Q¾f‡ØÏÙSfG@²ÚT{Äì€l…! ÀI�'ÁÐ0ÅE¦ 8‘Ï’f�   ;D8À@tÿ^”~[±Ô(×kÖFž^&Fȉ^kZ'í:6ÇbI;I ä$€€Èb±èÚå«2²?æ'Aœ `p$€ÀI¸›r¦?­O³Îó•3!Ày�€).–f�  G2!�,‹¾þúkÍ›7OºsçŽüýýÕ®];½úê«ÊŸ?¿Ù!N�0***J­[·–ÅbÑìÙ³U¶lYIÒÚµkÕ²eK�;V‹/V“&MLŽÈþ˜5nÜ8Ý¿_+W®4’¿’ôÜsÏ©G�ºyó¦Úµk§óçÏ›%àè �ÏyîSE¯[f‡dX¤îé°Û9£ÜÚk‡¼½}ZÝ»w×¼yó¬¶Õ©SGü±nݺ¥üQ½{÷6)JÀ9ÐÈ�\]]T4Àx¹ºº˜À‰]ºtIÑÑÑš?¾._¾lµÍßßßX¾u‹î�E` òôðP·õÍ€ƒX,ݼyÓì0œ–ŸŸŸ\\x�6=†®1cƨuëÖÊŸ?¿Õ¶S§NË*TÈìЧC'sóæMõèÑÃì0œÖܹs­z­"mC‡ÕСC“ݶ~ýzIRñâÅõÌ3ÏdfX€S" €ãÄ™‹iWÊ}"Í*AAA YÝåË—5sæL­^½ZGŽÑ�7”'O=úè£zñÅõÊ+¯ÈÛÛû�Îqþüy-[¶Lš;w®<<<ì=�s‘@ŽQâ¹Þv9ŽÅb±Ëq 3lÞ¼ÙìœFhh¨Ù!¤Ëü¡-Zhîܹjݺuºö]±b…ºvíªëׯ«Aƒúä“O¨cÇŽiúôéêׯŸ¦N�ª5kÖ¨dÉ’Šïüùój×®�|}}õÅ_Ðû°À@«ÿÎ]2ÊÅ‹�«««‰ìåÎ�;š>}ºÞ{ï=EEE¥{>è5kÖ¨U«VЉ‰ÑK/½¤ùóçsתUKmÚ´QóæÍµfÍÕ­[Wüñ‡‚ƒƒm:öõë×U¯^=ÅÄÄèèÑ£*P €–,Y¢§Ÿ~:Ýï@òH9нûÑúâÇuFyh�Vòöò41"Ž"wwÒé­;v˜FŠ,‹®]»¦K—.iß¾}úõ×_µlÙ2�?>CÇ‹ˆˆP—.]£|ùòiÆŒFò7^üpÍAAA:}ú´^zé%cß´äÉ“Gÿþû¯ûÒ¥KÕ¤I=ùä“úüóϘ¡¸ü?>éÈÜÝÝ™_Õ -X°@/¿ü²¤¸ÄlÅŠÕ©S'-X°@—.]Jcï¤Þ{ï=]¾|Y’ÔµkWùúú&[ïá‡V³fÍ´lÙ2mذAß~û­Ú¶m›®s¹¸¸¨mÛ¶:qâ„Þ~ûmÕ¨QCýõ—yä‘tÇ àÿ1Æ@6Õ¼ysíÛ·OgΜQdd¤¶oß®‰'*wîÜé>ÖÕ«W5oÞ<£Ü½{÷TëÇ'ž%iúôéé>_¼Î�;ËÅÅE.\P·nÝ2|qHdS=ô�Ê—/¯‡~X®®–öùþûï)IÊ›7¯*Uª”jýÐÐPcyÓ¦Múï¿ÿ2tÞ‡~Øèõûûï¿kïÞ½:€8  €ãøÚOÒ®Tæ9Ç@f,W©R%ÍúùòåS`` NŸ>-‹Å¢ŸþY={öLRoÓ¦MjÛ¶­råÊ¥¥K—&{ìB… éĉ’¤}ûö©bÅŠ#@G9FPÑ*9<²¢]»vËeÊ”±iŸÒ¥KëôéÓ’¤mÛ¶%›ž0a‚Μ9#Iúâ‹/4eÊ”$uîܹc,çË—/]q°ÆÐ9\ll¬Ž=j”mMÂ&¬·sçÎdëøûûK’J”(¡Î�;'Ùn±XŒ$²���ªV­jsÜ’" �Ã�É_ÀNè ä@jÖ¬™U²²”æ“K,:::Í:AAA €ó¹sçŽUÙÕÕ¶>„‹ÅªœpáääÊ•KMš4Q“&MÒ ›‘r 777•*UÊì0Àfµk×¶Û±I €¤=ymuÿþ}«²···=Âð ‡Ë•+W†ö»wïžUÙ×××áx$€r8ÿ íw÷î]cÙÅÅE¹sç¶WH2ˆ0@÷È#�X•cccmÚïêÕ«Ærþüùmž;€ã00�Ý»wOkÖ¬1Ê�7Îð|O€ì¯X±bòðð0æô½qã†Mû%L—)SÆ!±HÀ@«£G�Z•9—›››*T¨ �;wJ’._¾lÓ~gΜ1–IY `�åmڴɦzEŠqp$Îë‰'ž0ÀH³þ½{÷tðàA£\©R%‡ÅÀv$€@–W¬X1›ê:8çU¯^=Íš5K’´k×®4ëïß¿_ÑÑÑF¹~ýú‹ €í˜‰zþùçåçç'I:tè�ÕÔAÉY½zµ±\®\9U­ZÕ¡ñ° `ÈÇÇG/¾ø¢Q^²dIªõ,X`,¿ñÆ‹ @ú�€$é­·Þ’»{Ü ¢“'OÖµk×’­·nÝ:cþßG}T=zôÈ´¤Ž9€2 páÂÌ1ˆl-22RþþþF900PÞÞÞ&F°—˜˜ݽ{×(ß¼yÓæ}Ë•+§1cÆèí·ßÖåË—õúë¯ëË/¿´ªsåÊõë×O’äçç§%K–Icæã§ Þ\ö�òl¹bv@†ÅÜ�Ò�OåÝ_l�›‡—‰ú¶{³C8¡èèh³CÈ–²z»Ý»wO{öìQdd¤.]º¤è»ï¾ÓÅ‹�:Æ ÓþýûªÀÀ@ùùù)00P… Nö˜o½õ–,‹FŒ¡… êÂ… êÛ·¯ *¤]»véÃ?ÔÑ£GU´hQ-_¾\å˗Ϭ· À$€ÈvìØavp€³gϪzõê©Ö¹}û¶fÏž­Ù³gëFŽ©÷Þ{/Å}Þ~ûmµnÝZ³gÏVxx¸:wî¬ÈÈHåË—O*TÐk¯½¦ž={*W®\öz+ì„0@6$‹Åâ�c—*UJ“&Mrȱ8 ` Gr‘G._«2 sݾt.Åm'NœHq[PP�ýƒ8µÐÐP³Cd"À@äæá©2Ï´5; ÈÑVm—â¶CSÞÏQ=|8À8???Í�;×ì0œ–ŸŸŸÙ!@ŠHàd\\\äïïov¸š¤$""B?ÿü³ÙaÈDƒVË–-u÷î]³C€l‰0€,éäÉ“zòÉ'µiÓ&³C�‰F�¥Ó§O«aƺuë–ÙáNÍb±èÞ�›Æ‹ù$œ `YÎáÇõÄOèñÇ×èÑ£Í@&Ê�;·V­Z¥Ó§O«iÓ¦ŠŠŠ2;$ÀiÅFßÓá_—¯Øè{f‡;``YÊõë×Õ´iS/^\Ÿþ¹Ùá0A@@€,X  èõ×_ל9sÌ À!šŒ_’â¶™íjfb$œ `YFll¬:uê¤S§NiåÊ•òðð0;$&©[·®Þxã M™2Eõë×W»víÌ Àîr(’â¶   Ì €SahYÆœ9s´jÕ*�;V¥J•2;&9r¤òå˧þýûëòåËf‡Ù `YÂ… ôÎ;ï(((H}ûö5;Y@žW€ŠkÆ —Åb±ú»¼´çŸþ©©S§êæ›oVXX˜üýýU»vmõìÙSß}÷]©úܶm›F�¥¸¸8U¯^]þþþjР�zè!‡]×›7oÖsÏ=§Ûo¿]Mš4Q­Zµ ��EGGë±ÇÓ²eËJý‹ëß~ûM#FŒPLLŒBBB¢6mÚè¹çžÓÑ£GK·£ûݾ}»ÒÒÒ$I­Zµ*q{g?�Ž’””¤_|Q:tPÍš5]vÜ]–˜˜¨þýû«qãÆ TÍš5Õ¶m[�7NüñG‘m‹û?–ßüùóUµjU«z¾¾¾zá… íûñÇ—���Uýµkךû{ôèQà~/ÿ…„„èË/¿,Ûã†x­þ§U«VòõÍûÝÚ–-[JÜþJ³fÍRlll‰þzõêUæû܉o%uhfþùV⣀7°®ÎŒ Âšû÷ï¯O?ý´Èd`Ÿ>}4{ölÚù(JnåÊ•ºû““SlݶmÛjÖ¬Yºþúëíêûܹs>|¸l>ÎÊ•+ëþûïWBB‚$éºë®ÓÆ�]Òï| 'žxB’têÔ)Õ¨Q£Èúù9óy,«üKY¿ñÆ?~¼.\¸`³~yw’”––¦¾}ûjÕªU6ëøúújäÈ‘š6mZ¡Kìõ,##CfyذaŠ��/P/""BÇ�/p{µjÕtöìY{J¡yäÍ�;·ÔíÝ ¯Uá"##uèÐ! :T³fÍ*õýKE??öÚöúÝjÙ z™ú(–Þÿ,q¾.PZÙÙÙÚ³g�ÕmM›65Ô ðÎÓ·oß®ØØX³¼mÛ6µlÙ²L}Âïºp™aÆéÔ©SJJJ’$-\¸ÐÜ7iÒ$s;$$Dqqq Õ¦M›tèÐ!†¡§Ÿ~Z·Þz«š5kfWŸ—“R^R£mÛ¶ÊÊÊÒÖ­[Íú ,Ðñãǵ|ùr…„„8åqøá‡VIËvíÚ©^½z PZZšöîÝ«ƒJÊ›áÚ¥K-\¸Pwß}w‘ý¦¤¤¨[·nÚ´i“y[�5«ÐÐPmÞ¼YÔÅ‹­ž‹â8«_)o�—¤êÕ«—(ù+9ïyt´Q£F™Ûµk×V\\œ²³³Ëý¸Û¿¿ºwïnõf©˜˜eddè÷ßWJJв³³5sæLmݺUK—.UPP�U?Eý»ò ¢1cÆ(;;[gÏžÕùóçµ|ùrIRnnn¡1&$$hÁ‚Vû¿ýö[s™ÞN�:©N�:…¶­R¥Šž}öY{ŸÍœ9ScÆŒ)—/µÂÃÃuøða«„kQx­l«W¯ž:¤­[·–ª=T̆ÛÈ?kR’|||4aÂ�=ZU«V•”÷k“Ûo¿Ý¼nì˜1c4}út»û¬W¯žÞyçõêÕËÜ—••¥÷Þ{OcÇŽ5g4H~ø¡Ã[~�<òˆ™(õóóSjjj�¤ßúõë5iÒ$%&&J’‚‚‚´mÛ6]uÕU…ö™››«®]»šõ5mÚ4=ñĪ\¹²¤¼„ÏÂ… 5xð`¥§§›m‹š©ë¬~/»ë®»´|ùrÅÄÄhÇŽEÖ½’3žGG¹ò¸«U«–Þ~ûm=øàƒòñÉ[^³<�»K—.éºë®ÓæÍ›%I�7Ö¬Y³Ô­[7«:Ÿ|ò‰F�mÎV~ôÑG5gΜ"ûÎÿX/^¼hsóÁƒÍç½víÚúóÏ?튽sçÎæÒ«V­R÷îÝíjWœÌÌLýñÇ6œŽT£F 5jÔÈ®º¼VE{ðÁµhÑ¢ÅeKi¯œhfOÁ `å‰Àà=˜ì¹x×…Ûúì³ÏÔ§O«Û|}}5dÈ3¼~ýz»û‹ˆˆÐ�?þ¨ XÝîçç§#F¨qãÆºû››«�>úH}ûöUçÎ�Ëü8®ôÒK/éøñã:vì˜&NœXèŒÏo¼QÿùÏÌäë… ¯×^{­Ð>ß{ï=3ÉY¹re}ýõ×êØ±£U‹Å¢>}ú¨F�ºóÎ;•��]l¬Îê÷²H’Í™‚EqÆóè ÕªUÓºuëmu{yw“'O6ŠÍ›7×÷߯ððp«:þþþ2dˆâââÔ¹sgeddhîܹzøá‡ÕµkW‡ÆãÔºukW‡Q¯UÑ.¯pæÌ™2÷^à¹*š¬ì\%n;a–o‰��Ÿ/×otàÝ{mï¼ãõò @¹à¸¥>}úHþ^enŸ8q¢Ð:…yóÍ7 $ó»ãŽ;4hÐ ³ÿüsMš4I;wî,s_Ç�7·ùÆè¬~óóõõUNNŽrrrJÕÞ‘Ï£«9ë¸;r䈹ݰaC»Ûå¯{ôèQ‡ÅÛx­Š—Õ‡àà`F’gK�u®AcW‡”Zff¦ŽVK0Ë?Õï_¦e(_:tpu@©lÚ´Iwß}·Ú´i£¥K—ªQ£F’¤¯¿þZÝ»w׆ T§NG x6ÀÀ ù׿{æ™gôÆoXÝÖ¤IuêÔI111jÑ¢…š6mªððpýú믺õÖ[‹ì/¼>>Ž[ÕÝYýæ¬ÌÌÌ-å}™£ŸGWsÖq—¿ß’̘Ì_—k­–^«âedd˜Ûî�@Éó¿ùÙanïÛ·Ï®8²²²\Öo~UªTÑ©S§¬’:öpÆóè,ÙÙÙvÕsÖqW¯^=sû÷ß׃>hW»Ë³‘%©nݺ‹ÇYrss•››+__Ï}[ãµ*^zzº¤¼äoI—œ€kåææªW¯^ÊÈÈÐ'Ÿ|bõ½mJJŠ^{í5IÒáÇ]"à5<÷›r „þýï«OŸ>EÖÙ¹s§¶oß.Iòóó³™P,­ùóç›Ûýë_õñÇ—¹Ïn¸ÁÜ^±b… Ã(özÇ+W®tY¿ùÕ­[W‡VZZZ‰Ú9ãyt–o¾ùF÷ÜsO‘uœyÜuèÐA³gÏ–$-^¼X/¿ür±mŽ;¦ŸþÙ,_ýõeŽ#77·Ì}ØrôèQÝpà JMMUBB‚î½÷ÞbÛ¼þúë;v¬ÓgüKRXX˜Ž9R첪¼VÅ»¼4}dd¤¢À»äææ*55ÕÕax­ÐÐP§­œè­æÏŸ¯-[¶hÔ¨QV“!¤¼çóî»ïÖ?üPì÷‚:ž¿ IDATøŠGÆG}TìÇ‹/¾hn÷èÑCÕªUsh ùO¸îºë®bëÛ3£öÆoTXX˜’““uôèQÍ›7O}ûöµY?--MŸ}ö™ËúͯqãÆÚ¸qc‰¯[êŒçÑY>þøãbÀÎ<îzõꥑ#G*33S;vìÐ_|¡ûï¿¿È6S§N5g._}õÕjÚ´i™ãØ»wo©ÚåŸ%jk¦ø¿þõ/óú¹K–,±+©8bÄÝvÛmNMv^V³fM»®©ÉkU¼ËcÅUW]Uªð4'Nœ°¹ïàÁƒ6÷ñc) å}‡îê0¼VRR’ÂÂÂ\†G™:uª$éÎ;ï,°Ïb±héÒ¥åàµH£ÂHLLÔ‚ l&�?úè#-X°@RÞ’Á&L°Ù×ßÿþwMŸ>]¡¡¡š={¶ÕlÙ¢4iÒÄ*ž^½zYÿ믿.¶Ï€€�9R'N”$�3F7ÜpƒÍÉc�=¦ääd—õ›ßåçãÏ?ÿTnn®Ý¿˜sÆó˜ßèÑ£õñÇ+""B jß¾}‰Úç·bÅ -^¼Øf¸$Ç]iâ ×�!CôÖ[oI’†®víÚÙ|—/_®÷Þ{Ï,Oš4©ÈþýüüÌûéÓ§U§N�urrrôꫯkaòÿpûöí…¾Öß~û­¹Ý¸qc»úõ÷÷WëÖ­K“³ðZïr¸E‹¥ˆÏSÒK]V«œ%±{÷níܹS’2‰@ÑXŸÊàÁƒ ,Sœ’’¢Ñ£GkðàÁæm&L°¹ ïwß}§çž{N©©©Ú½{·zè!»g>ôÐCæö?þñ=ÿüó….òsçNõë×O¯¿þºyÛÅ‹m^OvôèÑŠ‰‰‘”—Líܹs�¤gZZšú÷ï¯Å‹Û«3û½¬]»v’ò®“[Ô †+9ëy”¤Ï?ÿ\3gÎÔ™3g´k×. 8Ðî¸l0`@�ç­¤Ç]Yâš6mš™0;yò¤:wî¬o¾ùƪNvv¶âããÕ»woó ÃÇ{Lwß}w‘}7hÐÀÜþðà ì?xð zöì©5kÖØo~ùË_Ìí7ÞxÃêz·†ahæÌ™úòË/%åýJ°¸¸;^+Ûöï߯sçÎI’Ý?º@Ù¤¦¦êÅ_T‡T«V-ùûû+,,L]ºtѬY³l®w¥üß�FDDhãÆ�ºõÖ[ÕºukEFFjРA:pà€³PáX ~ INNÖK/½¤¤¤$IÒÂ… Í}<ð€|||ªñãÇ+""BS§NÕ¶mÛtþüy-_¾\’¨ž={JÊKnLš4IUªT1û±uÍÚØØXEEEéĉÚºu«.^¼hî{衇”��`uúüf̘¡±cÇZÝV’å>üq«äKåʕնm[EDDèìÙ³Úµk—Í%‘ýýýª   �?Þ* ¸cÇuéÒE'Ož4okÒ¤‰bbbtñâEmذÁêq^ª[o½U’ÔªU+�?Þj¿³ú•òŽ�ËËÐ|ñźï¾û }Ü…qÖó8~üx½òÊ+Võ·oß^¢‡¶Ž»V­Z©I“&¥:îÊ×®]»Ô½{w:tȼ­qãÆjÙ²¥.]º¤ß~ûM)))æ¾[n¹EK—.Uppp‘ýŽ7ÎjÆhƒ Ô²eKU®\Y‡Ö¦M› Ì@Éÿÿ6""B“&MRõêÕ í?##C±±±Ú·oŸ¤¼YÒíÛ·Wxx¸¶oß®ýû÷›u‡ªY³fÙõ|¸3^«Â}ñÅzà�$å%Ç]±„ÕöíÛk–?ûì³RÍdÜEff¦ÌrÿþýíZ²@ù¹þúëKÕŽ�ùWÊÎÎÖž={¬nkÚ´©Õ¥ƒP>ò÷Çó”% ×®]«^½zé£�>*Ñ÷¯RÞå¼yä�9sF·Ür‹† ¢úõëkÿþýzûí·õÓO?©iÓ¦Zµj•Õª�…:t¨¹šÝÆ�¯wÞyG!!!:wîœúõë§ÄÄD-^¼X·Ýv[©/ËYcú•ß³mÛ¶M-[¶,SŸ°F.3yòdM™2¥ØzÏ?ÿ¼zô衎;[÷“O>±JæåOÄÅÇÇë™gž)4Y)å-�:eÊ�7®ÈûX·n�n¾ùf³Ü¸qc3áa�ÜÜ\�3Fo½õV±3‡Û¶m«ÀÀ@mܸ±À¾˜˜íرÃê¶Ý»w«_¿~úå—_löÙ¼ys 6LO=õT¡ûþùç³P�Õïåv»wïÖøñãõòË/ÛìÿJÎz¿üòË×]½ò¸*ޝ¯¯rrrd±Xôþûïë©§ž*óq爸’““Õ§O«ex¯äãã£#FhÆŒv½‰Ÿ?^wÝuW±³F6l¨Ã‡ºï½÷ÞÓOù¤Þzë-»—ww¼V=û쳚>}ºâââ´iÓ¦µuÀ€òFà‰H»ÀÎåî à .èí·ßÖäÉ“•™™©Ù³gkÀ€v·_µj•îºë.åääèÑGÕìÙ³­¾oÏÊÊRÏž=µjÕ*Õ¯__k×®-ò{’{î¹GK–,‘”7ìŸÿü§ÍýgΜQ“&M”™™©­[·Ú¼,Ê `Ïåß”Ã#uíÚµØ7Èš5kê¶ÛnSëÖ­‹ýÏ_¿~ý"¯é9`ÀíÞ½[£F�RóæÍ¨àà`µiÓFcÇŽÕ®]»ŠMÂIRÇŽÍëÿ¶lÙR‹-*¶M~>>>š9s¦þûßÿjĈŠŽŽVPP�¦:høðáZ½zµ6mÚ¤ÄÄDMžbbbôûï¿kêÔ©j×®�ªW¯®Ê•++**J�?þ¸~úé'½óÎ;^“ü•x­ ³jÕ*I2g �aJKKÓž={´téR >\Mš4Ѹqã”™™Yâþ’““Õ¿åää¨fÍšz÷Ýw ¬zèçç§�>úH~~~:zô¨}ôÑ"û¼|i/)ù“¿’T­Z5ÝqÇJOO×óÏ?_â˜Xc0¼Zþ7¥‹/xS�ëýòË/ºöÚkU©R%%''«F�®ÉÊ]wÝ¥®]»jĈ®ÅŠ»Æ8Ñ#GÔ°aCIÒž={å’8˜ (oÌx"f»f;—;Íž3g޹R ŸŸŸZ¶l©[n¹EsçÎ5/%V’ÀO>ù¤yù®§Ÿ~Zo¼ñ†Íº÷ß¿¾üòKIy—yìÝ»w¡õî¼óN­X±B’´eË–B's½òÊ+?~¼|}}uêÔ)…„„Ø/œ‡Àž‹w].uÍ5×(**J{÷îÕªU«ôðû:$+'NœP½zõ\Fîà —¯ë­·º,ù €+|õÕW6÷ÅÅÅ•c$pg={öÔŽ;T­Z5Õ©SÇ\}í‹/¾0ÀöJKKÓ'Ÿ|b–{ì±"ë8ÐL¿ýöÛ6À¡¡¡æ¶­Õ"kÖ¬))/éøË/¿¨K—.%ŠÀÿ�àr£F�Ò“O>©9sæ¸UøÜ¹sÚ¶m›Ú¶mëêP¬¸k\€3†¡÷ß_’4vìXG@ùŠˆˆ°¹/22²ü€[«Q£†ÃVVüꫯ”‘‘!Iª^½ºÕ,ÍÂä_µfÆ :|ø°¹’[~ 40·ƒƒƒ íËßßßÜ>yòd‰â`Í{.˜Àc 8PaaaZ½zµöíÛçêpL+W®Ttt´Û-ñê®qÎðŸÿüG{÷îÕÕW_­®]»º:À«dffê£�>2ÿJs](€wY½zµ¹Ý¦M›bë׬YSõë×—”÷Cþÿûß…ÖË¿‚�­ÏŸù/eân— < `.W¹reM˜0A†ahÆŒ®GRÞÉÆë¯¿n÷u1Ê‹»Æ8ƒaš0a‚,‹Þ}÷]W‡àõ¶nÝjn7kÖÌ®6M›65·ýõ×BëÜtÓMæÒÔ©©©…Ö¹páB‰ï@áX€[xòÉ'5{öl}ôÑGzæ™g¬N\aÁ‚JNNÖСC]Ç•Ü5.À-Z¤_ýUƒ ²ZNÈ]´iÓF-[¶tu@©eddhÍš5fùºë®S``  #¸Rnn®Õ �—¯É[œüõ¶lÙRh�Úµk«S§NZ³f�vîÜ©ºuë¨sôèQIÒÕW_Íê‡@‘†WIJJÒË/¿¬¤¤¤ûyäùøø¨V­Zš0a‚êÔ©ã‚aK¥J•ôþûïëÆoÔ3Ï<£eË–¹,–]»viذaJHHP@@€Ë⸒»Æ8Crr²žzê)5kÖÌmV¸RìËË¥ÐÍ®(½ìKÒ¦ÿý²û¹ç\ Àå:dµ<³½Ë0‡††šÛGޱYïoû›Ö¬Y£åË—ë–[n)°ÿò�”'NœhoÈl  ¯2kÖ,½óÎ;…îûüóÏÍíÐÐPM™2¥¼Â‚�®½öZ½ñÆ1b„>þøc=öØc.‰£_¿~=z´î¼óN—Ü¿-îà ƒVFF†Ö®]«jÕª¹:¯wüøq«rpp°]íò×;yò¤rrrT©R¥õºuë¦~ýúéƒ>ÐðáÃÕ¤Isß²eËôË/¿è‰'žP¯^½Jù\F^¥[·nš5k–’““mÖ Õm·ÝVŽQ¡$†®-[¶èé§ŸV‡\²¼êgŸ}¦æÍ›—ûýÇ]ãí…^ÐêÕ«µtéRŽy€r’žžnUöóó³«�¿¿¿¹�››«3gÎØ\>ú“O>QåÊ•uÓM7é©§žRÆ õÛo¿)!!AS§NÕóÏ?_úÀD^åúë¯/tùgx–øøxeee©{÷îúñÇU¿~ýr½wM8¹k\€#}òÉ'úÇ?þ¡Õ«W«C‡® ÂpDX’222lÖõóóÓ| ?þøC6lбcÇÔ¡C�?Þîk( `nÇ××W³gÏÖ³Ï>«'Ÿ|RK—.uuHÊIÓ¦MµqãF5mÚÔÕ¡CæsóСCæ5æ###]ÀU.\¸`Uöññ±«�aVåü×¶¥yóæLxœˆ0·d±X4}útW‡ œuìØÑÕ!ËÖ¯ÍÍèèhsûÊïïwåL^{eeeY•€2°ïçðZAAA¥jwéÒ%«r•*U€2  PÁU­ZµTí.^¼hn[,;*$¥D¨ˆ,|üO£F�¬Ê¹¹¹vµKKK3·CCCí¾v0çá!PUòuu7Ò Aùùù™å³gÏÚÕ.¸Y³f� @É‘¨à*Uª¤-Z˜åÔÔT»Ú;vÌÜ& ¸~öTTýß07¼ØË…�ÜÁ�7Þ¨-[¶H’víÚUlýK—.é�?þ0˱±±N‹ €ý˜ TTUÃÌ¿ÈÈHóP1ýå/1··nÝZlý�;w*;;Û,wéÒÅ)q(À@E”›#ý¹×üËÿ�P1ÝqÇ ‘$íÞ½[ûöí+²þÊ•+ÍíèèhÅÅÅ95>ö! TD¹9Òá-æ `@åÊ•uÿý÷›å… YîܹæöSO=å´¸” ×(…m5_R˰J®(µŒ,C¯eº: €›yöÙg•�� ììlÍœ9SÆ SõêÕ ÔûöÛoÍëÿ¶jÕJƒ *ïPØÀ `/’““£‹/šåsçÎÙÝ6::ZS§N•$¥¦¦jäÈ‘êœ:uJO>ù¤$)$$D .”¯/swÁÿFuéÒ%mÛ¶MJIIÑ®]»ôÅ_())ɬ3nÜ8íܹS×_½êׯ¯��Õ¯__uêÔ)´ÏgŸ}V†ah„ JHHÐÉ“'5lØ0Õ®][[·nÕk¯½¦}ûö©^½zZºt©bbbÊëá° ` ‚:�a˜Û‡R@@€$)22ÒEJêøñãj×®]‘uΟ?¯øøxÅÇÇ›·Mš4I“'O¶Ùæoû›î»ï>ÅÇÇ+11QýúõSFF†jÖ¬©-ZhøðázüñÇ䨇ÀAHÔ[?eýo;:ÚÜ6 £°ê7é´ÏqQQQzýõ×�Ò7çáÀà%H€—` h¼Lhh¨’’’\†× uu` `¼Œ���ÂÂÂ\ÀX¼3€€ (ÀWÚ2$Ø,‡<û»,‹ #€#�* ‹Å¢Öu*ý®r]0p–€/A¼ `ð\ þõ’v6hàê0ðÿî¿ÿ~W‡àq233o–‡ff* À…ÀH�a:}ú´Už�% ÀK�€GKJJÒÁƒuðàAW‡¸K@À£=ù䓿6Ë ¢c0x Àà%HÂb±¸�Kµ€gÊÍÍ-p[aã<Ü `€CøøüÊ9++Ë‘Ê*;;»Àm…�óp?¼J‡°X,ò÷÷·º-==ÝEÑÊâÊñÛßߟÀ‚0<Ú?þñ8p@pu($…„„X•Ïž=Ë2Ðàa ÃÐÙ³g­n»r|‡ûòuu@Y„‡‡+22ÒÕaxEGG[•G QjjªYÎÊÊÒ±cÇT¯^=fŽ€0 CÇŽ+°„ÕªU]JŠ0Pùûû«OŸ>®^(00P~~~V‰ƒsçÎiß¾}ªZµªªT©"___~„n$77WÙÙÙJOO×Ù³g $ýüüà¢èPR$€c±XT·n]>|Øjé第,¥¦¦Z͸¿Ëã:«8xÀ¥ÐµkWµlÙÒÕa€[ RÆ $�žÅb±¨aÆ ru((ÖØ8Üå$°ŸŸŸ«C”‚ŸŸÉ_Å ` ÊÉÉÑž={ÌrÓ¦MU©R%Fo¤&Mš(33SgÏžÕ¹sçtéÒ%W‡°Áßß_!!!ªZµªXöÙC‘* ¬¬,-X°À,?÷Üs$€à‹E��� Txx¸ ÃPnn.KC€±X,òññ!áë%HÊ�ÅbáLJ8×/A¼ `ð$€ÀK�/A¼ `ð$€ÀK�/áëê”? 0Àª ÏG¨€|||éê0à`, ^‚0x Àà%¸0P]ºtIóæÍ3Ë?ü°üýý]�0€233­Ê{÷îuQ$€cdffêçŸ6Ë­[·V@@€ #Á•ß«]ù½ÊŽ0€Ž9bUîÕ«—‹"œ#>>ÞÕ!€ èÈ‘#ºúê«]†WáÀv8}ú´«C¼ß»9 `;œ={ÖÕ!^‡ïÝ�% ìо}{«ò¢E‹Ô¢E‹Rõ5`Àýúë¯jß¾½æÌ™Sê˜èÇóbr§~öîÝkµ”ù’%KUê˜wàÈñÃ�¹ûãtu|åuÿθw{,m¼Ç¸Wÿ,/îþ8]ã¢ãúb\ô|®þÿX^Üýqº:>ÆEÇõUÚ>vìØ¡Þ½{›å+¿wCÙ‘°CÕªU­Ê-Z´PË–-KÕWpp°ùoiû ÏŒÉÝúÉ/**Êa}®âŒÿîÈݧ«ã+¯ûwÆý¸Û{ £âá=Æu\ýÿ±¼¸ûãtu|Œ‹Žë‹qÑó¹úÿcyq÷Çéêø×—£â¹ò{7”K@€—  ^‚0x Àà%|]@E3`ÀuîÜY‘‘‘ôãÄ~Ü1&wëð6åÿ†»?NWÇW^÷ïŒûq·÷@W¿–(»Šòºûãtu|Œ‹ŽëËÕ¯%Ê®¢¼†îþ8]ã¢ãúrõk Û,†a®ÀÝmß¾]±±±fyÛ¶mjÙ²¥ #ʆcà,¼Ç€5ÆE°Æ¸è|, ^‚0x Àà%H€—  ^Â×Õx‚°°0Mš4ɪ x2Ži€³ðÖÀã¢óY Ã0\ ìX¼ `ð$€ÀK�/A¼ `ð$€ÀK�/A¼ `ð$€ÀK�/áëêÜYvv¶~þùgmݺUiii Wtt´n¸áY,W‡PîöíÛ§—_~YmÚ´ÑÓO?]ª>222´aÃíܹSgÏžUݺuÕªU+]}õÕŽJÇ]Ǻôôt}ÿý÷Ú·oŸ.\¸  (..N111¥î@ÅV‘Æ»S§NiíÚµ:tè�²²²Ô¨Q#]{íµŠŒŒ,uŸîŠÀ…ÈÉÉÑÌ™3Õ AÝxã�zï½÷´~ýzM�:U7Ýt“š5k¦„„W‡ ”Ù¾}û4pà@½ùæ›®àæöï߯¿þõ¯ŠŽŽÖœ9stúôé÷qñâEMœ8QuêÔQ×®]õÏþS?üðƒžþyµk×NqqqZµj•¢û¸ëX—––¦áÇ+,,L÷Þ{¯-Z¤o¿ýV#GŽT‹-tóÍ7ë§Ÿ~*q¬*®Š4Þ9rDýúõSxx¸yäýë_ÿÒªU«4hÐ 5iÒDwÜq‡vïÞ]¢>Ýž+§OŸ6:uêdH2BCC�5kÖ˜ûrss�Ù³g~~~†$cðàÁFNNŽë‚Jiß¾}ÆÀ� ___C’1iÒ$W‡pSû÷ï7þú׿šï—ÿJúÞqøða#66Ö�d4iÒÄØ¼y³¹/++˘6mš!ɰX,ÆäÉ“ü( hî<ÖmÙ²Åhذ¡!ɸæškŒ}ûö™ûÒÓÓ�#F’ ãÃ?,Q¼*žŠ6Þ%&&5kÖ4$=zô0Nžz÷WiòäÉ“Ë-Û àæ222të­·jýúõ²X,ú÷¿ÿ­N�:™û-‹Ú¶m«:uêhÙ²eÚ´i“.\¸ ®]»º0jÀ~И1c4xð`mÚ´I¹¹¹’¤Î�;«sçή àVNœ8¡±cÇêÓO?U£F�tòäI�:uÊÜ_’÷Ž””uìØQüñ‡‚‚‚´nÝ:µlÙÒÜïã㣛nºIYYYZ·n�¾ûî;………éÚk¯uôÃ+î>ÖíÙ³G�:uÒ‰'¡uëÖ©~ýúæ~õèÑC{öìÑæÍ›µbÅ µk×NÍš5+ù“À«UÄñnÆ êÞ½»Î�;§V­Zé›o¾QõêÕÍýAAAºçž{´víZíÞ½[K–,Q÷îÝU·n]»žwÆÐùŒ=Ú\F¦wïÞêØ±c¡õ ¤¶mÛJ’f̘¡¥K—–[Œ@iœ8qBC† Ñ�!CT£F ¯¼¾ À±.]º¤)S¦è믿֌3_ê¾}ôQíÛ·O’4bÄ›_Ô�?^’¤§Ÿ~Z¿ýö[©ïìáÎc]VV–z÷î­””{^vl IDATIÒ /¼ °°°BëNŸ>]•+WVnn®úöí«#GŽ”úqðNm¼KKKÓƒ>¨‹/J’^{í5U®\¹@=___½ù曲X,ºxñ¢î¹ç¥§§ñè= `€ÿ·yóf«“ß‘#GÚ¬k±XôÔSO™å±cÇ*;;Û©ñeáÈz€Š¡Q£Fª]»¶Ynܸq©úYºt©V®\))ïjĈ6ëéñÇ—$eggkìØ±¥ºO°—;�u³fÍÒæÍ›%I!!!8p Í>ëÖ­«Þ½{K’Ξ=«^x¡T�€÷ªhãÝ‹/¾¨£G�J’š6mªîÝ»Ûì3..N7ß|³¤¼ë¿þúë6ëz ÀÿïÕW_•a’¤ˆˆ]ýõEÖïÙ³§|}}%å-S3wî\§Ç”–£>è*.ŸÒ}�4mÚ4sûºë®S½zõЬÿý÷›ÛkÖ¬Qbbb©îJÃ]ƺœœ½öÚkfùŽ;îP@@€Ý}þóŸÿÔž={ìŠ@ÅäÍã]ZZšÞ{ï=³|ß}÷Ùß•}Θ1C§OŸ.¶�;# éܹsZ²d‰Y¾ùæ›e±XŠlS£F µnÝÚ,'$$8->ÀÑJûA€’øã�?ÌËkHR§N�Šm«ÐÐP³Ì9w猱nõêÕ:~üx‰úÌÿ9677WŸ}öY±m $ ¬ ¬ ÃÐÿûßbûÜ»w¯ÒÒÒlöéiHHªT©’ú÷ïo–øá‡bÛœ?Þê¤4{HµjÕÒ�wÞi–í9Ç:pà€Õò{œcpwÎëÚ¶m«6mÚ”¨ÏüQÙÙÙ6û€²ò”ñîöÛoWXXX‰ú\·n�¹ Þ½{ÛÆ�‘øC† ‘Åb‘$íÛ·O›7o.²þòåËÍë’T­ZUtzŒžfذaæöÚµk•ššZdýE‹™ÛQQQV_2€»rÆX—¿Ï¥K—Z%;Šëó/ù‹Z·n]lÜPRž0ÞùûûkРAfù‹/¾(²¿+û|øá‡­Èžˆ0Àÿ‹ŽŽÖСCÍò»ï¾[dýwÞyÇÜž8q¢BBBœ€«�:uʪ|ù‡pÅéÚµ«n¿ývIRvv¶âããmÖ½té’Þÿ}³SSS5þ|Iy+\½òÊ+vÅ  âòöñîÙgŸUݺu%I[¶l)rð®]»ôÍ7ßH’BBB4qâD›u=gÐùüýïWTT”$iΜ9V×(ÉoÞ¼yZ¿~½$©S§Nzæ™gÊ-FÀJûAPq-Y²ÄªüÃ?È0 »Ú~ðÁ •$MŸ>],´ÞŒ3tàÀIyKùÝÿý¥JÁ�Æ:???Í™3G���’¤ &X]Ÿ2¿qãÆéÌ™3’¤çŸ^:t°+f—·�wÕ«Wׇ~h&œŸyæeff¨—››«Q£F)''G’ôæ›oꪫ®*´O�bÀÊñãÇ�«¯¾Ú�d„……k×®µÚ¿páB#00Ð�dtïÞÝ8}ú´‹"Joâĉ†$óï†n0rss]À�dgg[·n5V­Ze >ܨT©’Õ{‡$ã¾ûî3¾úê+cÓ¦MFjjj‘ýíܹӸꪫ IFÓ¦M�-[¶˜ûrrrŒ·Þz˰X,†$ãÑG5233�ýÀ#ƺõë×µjÕ2$:t0öïßoîËÈÈ0ž{î93ÖqãÆq^ Pu¼[¼x±dH2î¼óNãäÉ“æ¾3gÎ�>ú¨!Éðõõ5Þ}÷Ýbûóð3�P�œ?^S¦LQ||¼ÒÓÓÕ¦M5lØPüñ‡vïÞ­ÐÐP�3FcÇŽU¥J•\.P¬œœíرCÇŽÓŠ+oþºõ²ûî»O}ûöUdd¤5j¤š5kº(Z€;HII)ѵϦOŸ®1cÆÛç¸qã”�� ¬¬,µoß^áááúý÷ßuèÐ!Õ¯__“&M²ºf8“§ŒuÔØ±cµxñbùúúª}ûöªZµª6mÚ¤“'O*::ZÓ¦MS¯^½ìî@ÅR‘Ç»­[·jôèÑJLLTpp°®¹æùúúê×_UZZ𮹿½þúëêØ±£Ý}º;ÀE¸pá‚Ö­[§�;w*==]ÕªUSll¬nºé&ùùù¹:<ÀnÎø @i�>}Zßÿ½öîÝ«‹/ªF�Š‹‹Óu×]Ç5x gŒu'OžÔºuëtàÀeee),,LíÛ·W\\œƒ£ûyÊxwèÐ!­_¿^GŽQnn®"""týõ׫yóæ¥îÓ]‘/ÁO*ÀK�/A¼ `ð$€ÀK�/A¼ `ð$€ÀK�/A¼ `ð$€ÀK�/A¼ `ð$€ÀK�/A¼ `ð$€ÀK�/A¼ `ð$€ÀK�/A^RR’4h ¯¾úÊÕ¡eBÞüùóuôèQåää¸: LH¯“’’¢àà`Y,§þ%$$¸ú¡ÂAæÏŸ¯��Ýyç�…î瘀§ðuu޶xñb]¸pA’T§N 8P;vTdd¤‚ƒƒåã“÷›øK—.éé§ŸÖ²eË̶ãÆ�ÓÀ�U¹reI’aÊÈÈПþ©5kÖhúôéJOO7û†çÛ¿¿~úé'õïßß|ݯÄ1OAx�E‹I’î½÷^Í�;WUªT±Y÷ܹsævPP�&NœXh°iÓ¦êØ±£®½öZõèÑC’íàÈá óçÏ—$=ôÐC6ëpLÀSX Ã0\€£¤¤¤(""B·Ýv›V¬X!‹Åb³nvv¶ªW¯®óçÏK’ºté¢ÄÄÄbï£Y³f:~ü¸Î�;Wdÿð ±±±:yò¤Nœ8!_ß‚ó%8¦àI˜ ¼ÊâÅ‹åëë«?ü°ØDÚ–-[ÌD�$Ýxã�vÝGãÆ�U¥Ju^`ëÖ­Ú¾}»†ZhòW☀gñquŽ´hÑ"=øàƒªW¯^±u7lØ`U¶7YgKõz‰yóæI’~øa›u8¦àI˜ ¼FJJоûî;»–Ü•¤õë×›Û>>>êСƒ]í’’’tà 7”*F¸Ã0´`Á5lØÐf¢–c ž†ÀÀk,^¼XuëÖUÇŽíªŸ¶fll¬ªU«fW»Ã‡3[Ó lذA‡RŸ>}l.½Ì1OCx�E‹é�°ë:ªGŽÑ‘#G̲½Kõ¦¥¥éÔ©SjÞ¼y©ã„{˜?¾$顇²Y‡c ž†0ð©©©êׯŸ]uK{­ÖóçÏ+&&†d�‡ËÎÎÖ矮˜˜µmÛÖf=Ž)x® ¼Æ¦M›ì®›ÿZ­’ýɺúõëkÇŽ%Š î'11QIII>|x‘õ8¦ài˜ *¤ü³5ëÖ­«ÈÈH׃r7oÞ}úìtÿ]±'µ.]º4³gÏÎòåËÓ»wï 6,x`V®\™Ù³gç?ÿùO†žþýû7é·qãÆÜ{ï½yæ™gR]]�÷¼ç=9þøã³ß~ûíÖ5L›6-]»vÍàÁƒw«ÿ¶ìÉ=U__ŸÇ<+V¬¨|.¾øâÔÔÔT~>‹/NÏž=3lذtëÖ­Ukß™ù—.]š·½ím9å”SÒ¹sçJßõë×gÖ¬YyþùçÓ­[· 2$={öl6Gk?7ì˜7€€6cë·5>øàvØa;Ý÷駟Θ1c2bĈœwÞy¹üòËó·¿ý-C‡Íäɓӹsçì·ß~¹üòËÓ§OŸL�:µÅq-Z”N8!ßùÎw²~ýúôîÝ;=ôPzõê•/|á ©¯¯ßn .ÌÇ>ö±œvÚiyñÅs衇fõêչ袋2lذ¬^½z§®çÑGM»víRUUUùôèÑ#sçÎmµZ¿ýío稣ŽÊòåËsøá‡gΜ99ôÐCsþùçgذaY²dIîºë® :´I¿™3gæðÃÏ´iÓR[[›¢(2f̘¼ç=ïÉ“O>¹S×·µ dÁ‚1bDÚ·o¿Ëý·gOî©¥K—æøã�ϰaÃröÙgç‹_üb^yå•L›6-cÆŒÉ+¯¼’®]»æ?øAúôé“Ù³g7é¿hÑ¢ôë×/�:uªü|ðÁJû«¯¾šþýû§K—.•öÛn»m—æË[Þ’«¯¾:½{÷ÎÿøÇ$É=÷Ü“O|âY±bEjkk3uêÔôíÛ7S¦Liv�{úÜÜtÓMéÕ«W“ûôÍo~s¾úÕ¯VÎY²dI:wî\io×®]Î:ë¬�þ=”NÐlܸ±¨©©)’IŠ#FìÖ8�>úheŒ~ýúO=õT“öµk× (’×^{m³þƒ *:è âž{îir|âĉE’âÌ3ÏÜæÜ ,(ºwï^~øáŪU«š´�}öÙE’ââ‹/nÖoK½¯uå•WIŠO<±˜;wn«ÖzõÕWIŠ›o¾¹Éñ‘#GIŠßþö·EQÅO~ò“â’K.©´ßpà EUUU1~üø&ý–-[VÔÖÖµµµÅŠ+¶9oK¾ò•¯IŠ|p—úíHkÞSÕÕÕE’âöÛo/.¼ð¢±±±Òþì³ÏIŠ®]»6lhÖñâÅEûöí‹$Å<Ь}íÚµÅAT$)¦L™²Ûó÷èÑ£˜;wnñÉO~²xõÕW›Œß©S§¢¦¦¦Xºté6¯qOž›)S¦Tú/^¼¸YûªU«Š=zG}t±páÂkh+À@›ðç?ÿ¹ %)&Nœ¸ÛcmãÞ{ïm±ý±Ç+’íÛ·/üñ&m:t(’§œrJ“ã›6m*Þö¶·IŠ9sæ4sãÆ�•€lÖ¬YÍÚ8à€"I1|øðmÖ»µµk×GuTñ�o|£IØ×µ¾ôÒK•¾+W®lÒöË_þ²HR|àhÖï‰'ž(Ú·o_tëÖ­xå•Wšµo •¿øÅ/¶Xï¶vØaE¯^½¶y�»«5ï©C9¤HR 8°¨««kÖ~Øa‡IŠûï¿¿Åþ[~-ÀE±9ÌßV¼+óqÄ-ðýèG‹$Åm·Ý¶Íkܓ禱±±èÛ·o‘¤˜1cF‹ý�<òÈbÁ‚Ûœ ­°4Ð&¼vùÜ}èC{<æá‡Þâñc�=6L}}}¾ó�ï4i;ÿüóÓ¹sç|æ3Ÿir¼ºº:L’<òÈ#ÍÆœ1cFžxâ‰tëÖ­Ù’ÉIrÝu×夓NÊW\±Ãº_|ñÅœx≹øâ‹3~üøTUUµxÞîÖú§?ý©²|ð�ؤ­oß¾I6/A½nݺ&mßúÖ·R__ŸÑ£Ggÿý÷o6î–ë¾ãŽ;vx�[<òÈ#Y¸paF޹ÍëÜ]­yOmYšzøðá©©©iÖÞ£G�$›—;nIuõöÿÌ·£ö��ÿ„Nhq/âÚÚÚ$ÉþóŸíΓìÞsSUU•±cÇ&I&OžÜ¬ïܹssÈ!‡¤_¿~;œ ìÚííZÓªU«²~ýú444dÆ Y½zuzè¡\{íµMΛ9sfêëëóÖ·¾5:tH»víÒ¥K—tîܹUê8餓òÈ#�ä®»îʆ Ò±cÇ$›ƒÚë®»®Å>[ÎY»vm³¶Ûo¿=IrÜqÇe¿ýökÖ~î¹çæÜsÏÝa]/¼ðBœqãÆeܸqÛ=wwk}ùå—“¤Å qK°[E^}õÕÊñ 6dÖ¬YI’w½ë]-ÎyÄG$Ižþù¬[·.o~ó›·[’L›6-I2zôèž»-ÿË{ê˜cŽiñø›Þô¦$Ùá¾Ë{jGóï¨}ëßéîØÖs“$çœsNÆ�Ÿûî»/ .l²ßòäÉ“sÞyçíÑÜe!J£¾¾>‡zh%€Üžk®¹&×\sM“c£F�ª†{êÈ#�L’lܸ1‹-Ê»ßýî&íkÖ¬ÉÝwß�‡~8óçÏÏš5k²xñâmŽ7þü$IïÞ½w»¦gžy&'�tR^xá…Üu×]ùìg?»SoÅîj­ýû÷O’¬X±" i×î¿‚Z¾|y’Ío”víÚµr|áÂ…Ù¸qc’d„ ¹ùæ›[»¶¶6ÕÕÕ©««Ûa¼iӦ̜93GydÞûÞ÷îð:[ò¿¾§¶<÷†Íÿz×·½çæàƒÎ)§œ’»îº+·Þzk®¼òÊ$ÉúõësÏ=÷dÒ¤I¯kmo–€J£}ûöY·n]Š¢Ø­Ok…¿IÒ¡C‡Ê×ëׯ¯|½nݺ|îsŸKmmm®ºêªôë×/S¦LÉO<‘SO=u›ã½ôÒKÍÆÝUÆ ˤI“Ò«W¯üñ�Ì-·Ü²Ýów·Öþýûç#ùH3oÞ¼&m÷Þ{o’䳟ýl“ã6l¨|ýýï?ÿûß[ü,[¶,K–,ÉA´Ãë½ÿþû³|ùòŒ5j‡çn˾tOµÛzn¶8ÿüó“$·Ýv[6mÚ”dó›×§�vZ‹oœ´EÞxl½Wë–·v—/_žAƒåÙgŸÍرcsã�7V–ÎÝ‘ž={æ¹çžËªU«v«žšššÜqÇyï{ß›ý÷ß?C‡Í—¿üå ><½zõjvþžÔšl^>zÀ€¹ôÒKó«_ý*=zôȃ>˜ë¯¿>Ÿþô§sùå—79ë7›wfÙ�1}úô$Ù£˜ÿ­–ž›­ 2$½zõÊâÅ‹óÛßþ6ÇÏäÉ“wøŸÚo¼þüç?'I �ÚÚÚ$Éøñãóì³ÏæÝï~wn¾ùæªO?ýtþýï'IN8á„$ÉO<±Ý>-½5™$p@eä!C†d̘1Y»vm.¸à‚Ïß“Z“dêÔ©™6mZ† –#FdÀ€¹êª«rã�7fæÌ™©®núg©ÚÚÚ 0 IòÏþs»síL¾qãÆÜyç�9öØcóŽw¼c‡ç—ÝÖÁ꾬¥çfkûí·_Î9çœ$›÷ý}ê©§ÒØØXYv0Àn«¯¯oñøêÕ«3kÖ¬$É%—\R9þÐC%IN<ñÄ&ûânñÚ�nÆŒ¹ÿþû“$ãÆ�KUUUæÏŸŸýë_-λiÓ¦|èCÚf][›8qb9ä�Ìž=;·ß~{³ö=©5Ù¼ürÿþý3~üøÌ™3'óçÏÏþð‡Œ=z›5mùYýâ¿HCCC‹çE‘O<±É’Ñ-™={vÖ¬YÓfÞþÝÿý“$���ÍÚV®\™… þ¯KÚ¦]}n^kìØ±©®®Îo~ó›\yå••e¡ØL °›®ºêª�ýë_ÏË/¿œ!C†dìØ±•ãÝ»wO’¬X±¢YŸþóŸyðÁ“ü7ÄkllLûöí“$ïÿûsÙe—¥±±1W\qE‹óN™2%C† ©ôÙž·¼å-¹é¦›’lÞ�÷µ�îžÔšlj'NœØb ¹-cÇŽÍСC³lٲ̘1£Åsn¹å–|ô£MÇŽ·;Ö´iÓR]]�3ÏI2oÞ¼$›—{8p`å¼ïÿû\Ä6 YIDATû7n\¦OŸžK/½4/¿ür’Íáë�üãÜyç�ùÖ·¾Õ¤Æ-o~®[·.K—.mÒvÊ)§¤S§NY¹re>ýéO7YZyOk1bD¦L™’îÝ»ç�ï|gÞùÎw¦ÿþ8p`Î8ãŒL˜0¡É’ÑIRUU•™3gæŸøD.ºè¢üüç?¯ȯ¾új&Mš”Ù³go3@ÜbݺuùÍo~“Aƒ¥gÏžÛ=w_°zõêÊÏþ¹çžkÖ^WWWÙy[ËcéK_JMMMn½õÖ¼òÊ+I6‡ð·ß~{Š¢È»Þõ®$É5×\“ï~÷»yà�vkþ–Ú7mÚ”E‹m·¾­íêsÓ’óÎ;/Éæý�;uê´Ã9Ú’ª¢(н]ÀÉ–pjáÂ…yà�ò£ý(6lH]]]úöí› /¼0ÿøÇ[ ±ž~úé\{íµ¹ï¾û²iÓ¦tïÞ=GqD¾ñ�oäïxG&L˜� &¤_¿~¹ì²Ë2bĈfcüþ÷¿Ïõ×_Ÿ ¤S§NéСC>õ©Oå _øBjjj’$�=öXÎ:ë¬,\¸°²änûöíÓ§OŸL›6-Çw\Þ÷¾÷å±Ç«Œ[SS“øÃ¹ï¾ûö¸Ö'Ÿ|2ƒ ÊêÕ«·ùs¬©©Éu×]×lâ¢(r÷Ýw禛nÊ /¼�öíÛ§cÇŽ9ãŒ3rñÅ·¸$õÖ¦N�š³Ï>;·ÜrKÆ�·Ýs÷¦%K–äcûXžþùJh[UU•Þ½{çË_þr.¼ðÂôë×/ÿþ÷¿+a’|ðÁ9÷Üsså•W6ïÉ'ŸÌ„ òøã�§]»véÔ©SÎ<óÌ\tÑE•ÓO?}·æïÙ³gÎ9çœ|ûÛßÎÉ'Ÿœ¹sç6ù=wëÖ-ÇÏ”)SšÔ·'ÏÍkÕ××§{÷îùÃþ�ãŽ;nòå&ØE[Y}úôÙ»Å샦N�š .¸ ßûÞ÷rÎ9çä€H’444dÍš5Y´hQæÌ™“üàY²dIæÎ�›cŽ9¦Õæ:thî»ï¾,[¶¬²ô1{_k>7‹-Êé§Ÿ^y€ÿÚþ—€]°råÊ\pÁ3fL.¹ä’&míÚµK×®]Óµk×{ì±9þøãsÌ1ÇdÖ¬Y­¯X±"÷Þ{o† "ü-±[o½5çž{îÞ.`Ÿd`ZÍsÏ=—ºººÊž³ÛsØa‡%I–-[ÖjóßqÇihhȨQ£ZmLöžüã0`@.»ì²Ê±�7æÎ;ïÌg>ó™½XÀ¾K @«9ꨣңG�üô§?M]]ÝvÏ�}2xðàœuÖYéÞ½ûÞ.•×Qk<7S§NÍĉS__Ÿ£�>:“&M²¿3Àv€JÂÐ%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB P`€’”„ $À%!( 0@I€JB Pÿø2}Õ!|IIEND®B`‚unyt-3.2.0/paper/unary.png000066400000000000000000002124351526544257300155120ustar00rootroot00000000000000‰PNG  IHDR€ ¿‘^ÙsBIT|dˆ pHYs.#.#x¥?v9tEXtSoftwarematplotlib version 2.2.2, http://matplotlib.org/†ŸÔ IDATxœìÝy”TÕ¹?î·›¹A@d‚¨5Š&NQ�sœ�x£$*zãÅ!ÔˆæŠâ�qžGŒ¢D…¨ jÅq`dìñüþðG})ª›î†Æ‚âyÖªµzï³kŸ·ªŽ•è§ö>yI’$À&/?ÛP3À9B �#À9B �#À9B �#À9B �#À9B �#À9B �#À9B �#À9B �#À9B �#À9B �#À9B �#À9B �#À9B �#À9B lEEEñ»ßý.š5kÛm·]<öØcÙ. ç €€u2~üøÈËË«ö£cÇŽ•Î=zôèjÍ9~üø þz�ê»á†bäÈ‘±páÂøüóÏãÄOŒÏ?ÿ<Ûeä´ÚÙ.Ø4uíÚ5n¾ùæøþûïcÊ”)ñÜsÏEIII¹c4h‡~xôîÝ;vÜqÇJçÞk¯½â†nˆ™3gÆóÏ?_n`ÔªU«8úè£cÏ=÷Œ�wÞy½_Pó&Mš”Ö.**Šwß}7¶ÝvÛ,U�ûò’$I²]°é{úé§ã׿þuF“&Mâ?ÿùOl·Ývë4oYYYœ~úéq÷Ýw§úŽ>úè¸ï¾û¢  `�ë6¼!C†ÄÕW_�jשS'¦M›¶ÎßTN Ôˆ$I¢eË–1þü´þÓO?=î¼óÎõš{îܹѦM›H’$òòòâë¯¿Ž¶mۮלÀºùæ›o¢Q£FѤI“JÇ._¾<Î;ï¼xê©§¢yóæ1tèÐ0`ÀOP%ÀæË=€€‘——�:uÊèïÞ½ûzÏݪU«èÚµkDDl¿ýöÂ_È’’’’0`@¼÷Þ{U_PPwß}w,^¼8>ûì3á/ÀO@ Ô˜ò¶d®Ê*ÁªèرcDD¹!3ðĿæ›ob«­¶Š�vÚ)öÚk¯õz~øa|øá‡1{öì(++‹víÚEÏž=£k×®ë4ß×_sçÎ�Ýwß=Õ·lÙ²3fLÌœ93:vìÇsLÔ­[w­óL�:5Þ}÷ݘ;wnF³fÍb»í¶‹}÷Ý74hPi“&MŠ~ýúÅìÙ³×éu”§´´t�>ט4iR|ùå—1oÞ¼ÈÏÏ�Ö­[Ç;ì={ö\ç‰,Y²$žzê©8è ƒ¢M›6iǦN�¯½öZ,X° Z´hûï¿téÒ¥ÚçX¶lYLœ81¦OŸ‹/Ž D—.] -¶Øb�ê¨PPCúôé“DDÚ㮻¹O=õÔ$"’SO=µÒ±Ë–-K}ôÑ䨣ŽJêÔ©“DDòÅ_¤Ž?ûì³I�=2jÍËËKÎ?ÿü¤¨¨¨ÊuÍž=;8p`Ò´iÓÔ™9sfrõÕW'Íš5+wL÷îÝ“+®¸"¹çž{Ê=IIIrã�7&G}tÚó:è äµ×^«ÒûQeeeÉŸþô§TPÚ¯_¿äí·ßN…ã_ýuòç?ÿ9ÊEDÒ¨Q£µ^G|ðArå•W&;í´S¹×ßÊ•+“ÓO?½J!æå—_^¥×ñÙgŸ%»ì²KR«V­äÒK/MfÏž�$I’”––&ãÇ�OvÙe—´\z饾¯½öZò»ßý.Ùj«­ÒjY?ýôÓ©ÀpÍÇK/½”6ßG}”tëÖ-‰ˆ$???¹âŠ+’¹sç&I’$EEEÉSO=•´mÛ6õü]vÙ%ùî»ïÊ­í©§žJFŽ™Œ92ã¼]tQêØªÇ7ß|“ñ :4í½¨,(^]aaarÖYg%yyyID$gŸ}v2mÚ´Ôñ3f$üãÓÞ›-Z$Ï?ÿ|…s>úè£É 'œ�4iÒ¤Âûê«¯Îø‘Åš�>}úTøÏò*K—.MöÚk¯$"’Ö­['£G�N–,Y’$É�ŸÅرcÓ~�ЧOŸ*½/•5&›ð¼yó’aÆ%·ß~{¹AàÇœvØaID$½{÷N®»îºdôèÑÉå—_^nh:nܸµÖ3vìØ´�èå—_.wܨQ£Òæ½ñÆ3Æ<ûì³IÏž=“½÷Þ;céªxðàÁI~~~Ò«W¯´Õ„«ÒU>þøã¤aÆsTò•gÕû×»wïrW˜®«Â¤ÿþ©šþçþ§Â±Ó§OO­â]õ¸òÊ+3ÆM›6-éÑ£GÒ±cÇTP¸úãŽ;îHŽ<òÈTP~úé§'ƒNN:é¤ Ãòáǯõu|òÉ'I»víÖz}/X° £þaÆeŒÛe—]’ýöÛ/cuïªø�wÞI4h�têÔ)µÒxõÇc�=–šë«¯¾JZµjUéû;uêÔ´&qÄk}½I’T––ç‰'žHöÜsÏ ÃÓªÀ .LöÛo¿Ôsî¼óΠǾþúë©bDDR»vídÔ¨QåŽ2dH2jÔ¨´¹Wÿgøì³ÏN""éÑ£GrÍ5×$£G�N®¾úê¤}ûöå^[ksÁ¤Æ¾ýöÛåŽY¶lYê½5E Ô˜�e è7Þx#£Ž}÷Ý7iÚ´iòÄOdŒÿâ‹/2V_sÌ1Î_ZZšl·Ýv©±µjÕªp5`IIIÒºuëÔØæÍ›gl1½úsÿïÿþ/£ö[n¹%iÞ¼y2qâÄT½;ï¼sêx¿~ýÒæ»ä’K2æxï½÷*}ß’äÇ•‰«Â´ªn]\Uç�w^ªžƒ>¸ÒñS§NÍXÍ=zôè Ç?û쳯{ë­·N¶ÜrËä®»îʳ—/_žVÓªGýúõ“O>ù¤Üs¬X±"µÂvÍ÷}M7ÝtSÚ¼yyyÉäɓӯ¬úì¿û`ÿ¢‹.J¶ÝvÛäOúSRZZš”””$]tQZð¿jåq’$ÉoûÛ´ç�?¾ÂÚŽ=öØ´±ï¼óÎZ_KuBÜÿüç?ɻロ|ôÑGÉÀ�«—••¥~¬ÉYg�µÖñI’$/½ôRÚjÕª•±:zusæÌ)÷;¢^½zÉÈ‘#3Æ/X° éܹsÚøÝvÛ­Âù—.]šÔ«W/‰ˆ¤[·nk­}êÔ©I­ZµÀ@�É€³ãŽ;fô}ùå—1iÒ¤8úè£3ŽuìØ1 ”Ö7nܸH’¤Üù?ù䓸ì³ÏRíÒÒÒ˜={v¹ckÕª{ì±Gª=þü˜2eJÚ˜üüÿ÷¯fGydÆ—]vY<ýôÓÑ»wïT½“'OŽQ£FÅÈ‘#ãÞ{ïMá…F½zõÒúî¹çžrë[Ó /¼?üðCtêÔ):è *=§*üñ9rdª=lذJŸ³ãŽ;Æe—]–ÖwÞyçÅŒ3ÊØa‡Å[l‘ÖWTT“'OŽÓN;-jÕª•v¬AƒqÛm·Å9眓ֿråÊøïÿþïrÏqÅWÄôéÓ#"âòË/_kýÇ|äåå¥ÚI’ÄÕW_�6fÕgß¼yóØ{ï½ÓŽ�929ä�¸æšk"???jÕªÇ� &Äõ×_“'OŽÖ­[§Æ?÷ÜsiÏÿúë¯+¬­W¯^iíýë_k}-Õ±Ûn»Å®»î;ì°C\wÝuï{e†ÿüç?#"¢víÚqÍ5×Túœ<0~ûÛߦڥ¥¥ñ›ßü&¾ÿþûrÇ·jÕ*š5k–Ö÷á‡ÆK/½çž{nÆøfÍšÅUW]•Ö÷Î;ïÄ‚ Ê�ÿ�7ވˆˆŒkrM;î¸c¹ßKëJ äœF�eôýýï�nݺUøœ_ýêWií%K–ĬY³Ê»bÅŠŒ¾ŠàˆÈš¾ýöÛ Ç6oÞ<£ï¤“NÊëׯgœqFœ{î¹Ñ Aƒ´cmÚ´‰“O>9­ïÿøG,_¾¼Âó®òÐC¥Î¹zx¹>’$‰+®¸"ÕîÖ­[ì¶ÛnUzî%—\-Z´HµW¬XþóŸ+ß´iÓ´öE]]ºtYë9þö·¿EûöíÓúžz꩘7o^Zßwß}·ÜrKDDtîܹÒ×кuëèÚµkZß‹/¾‹/.wüšŸ}Æ ã†nÈ·ß~ûÅÅ_œñC‡5¯Ëšº&×GAAAÚçW™e˖ŵ×^›jtÐAѪU«*=÷Úk¯�:uê¤ÚóæÍ‹¿ýíoŽ_ó{bèС±Ï>ûT8~ÍCãò¬~íL�:5-ZTá¼§�vÚZ�T‡È9å—õë×_ës¶Ûn»Œ¾ùóç—;¶G�±Ã;¤Úݺu‹=zT¹ž¥K—V8¶víÚ}GqD…ã+òÇ?þ1meñÂ… côèÑk}Ί+âé§ŸŽˆˆSN9¥Úç¬È³Ï>Ó¦MKµ× ³×¦^½zqüñǧõ=ðÀ†›«¿æˆÃðªœã’K.Ië+..ŽgŸ}6­oÔ¨Q©U�ûï¿¥óFDFH\\\ï¾ûn¹c×üì<ðÀhذa•Î1`À€Ôß 4ˆÃ;¬Â±Õ¹&×ך«Ñ׿ÿøGÚªÝê\+­ZµŠC=4­ï–[n‰¢¢¢rǯùTöÑ´iӌ༢ïˆ&Mš¤þ^¾|yÚ Êó‹_ü¢ZŸ5ÀÚ€¢üUÃË–-+wl�:ub„ 1dÈ�øóŸÿ¯¿þz¥áÑêJJJªU[AAAµÆGDl¿ýöqÔQG¥õýío«p[눈1cÆÄÒ¥K£wïÞѹsçjŸ³"«¶ó]½¶êX=ØŒøñý«É-‹#"Ž;ðøÍ7ßLk?ùä“©¿Û¶m_ýu¥�òV¯V´…õšªû¹ßvÛm1bĈúè£èÓ§OœrÊ)qà 7DË–-³R�ÛÀ@�©nX³.jÕªµÁϱ.ŠŠŠâ¾ûî‹áÇǧŸ~§œrJ|ðÁ±ýöÛÇi§�–¶zô§tÉ%—¤À¯¼òJL™2%vÝu×´qO<ñDÆ1Ç[n¹e��Ñ¢EÛ /Y²¤Úó´mÛ6-®èÞ«ëcÍPtõqÍóõèÑ#?ü婦ýë_ÿŠn¸!Æ�}ûö�Ç<<ðÀ=zt<ÿüóÙ./MyŸiu¯•üüühÕªU|ñÅk�÷§PPPcÇŽ�ƒ>8¦N�švìž{î‰1cÆÄµ×^gŸ}vÆ w€õáß0€³ú=/W©©­eW…ˆuêÔ©‘ùjJ’$1zôèèÚµkœqƱãŽ;ÆŒ3âïÿ{VVz®éW¿úUì´ÓNi}7ÝtSƸ µýsy÷Hýᇪ=OãÆ�ÓÚ+W®\çš*²Å[¤µWß~xõÕÀK—.­ñóפ×^{-öÞ{ï8øàƒã»ï¾‹×_=ÆŽx`¶K«Ð¦t­TU›6mbâĉѯ_¿Œc .ŒóÎ;/~þóŸ§ý¸`} €€Ó¨Q£Œ¾5W®«U!Κ!]6Í�;7úôé¿ýíocöìÙ1zôèxä‘G¢}ûöÙ.-Í%—\’Ö~衇bΜ9©öܹsãå—_ŽæÍ›Ç¯~õ«=wy«‰gÏž]íyÖüÜ·Új«u®©"iíÕïí¼æ Íl­*­LqqqœþùñóŸÿ<&MšçŸ~¼ùæ›Ñ»wïl—V©MéZ©ŽÆ�Çc�=÷Ýw_´nÝ:ãøÄ‰c�=öˆ'Ÿ|2 Õ¹H Ô˜¶mÛfôÕÔJÉÅ‹GDDóæÍkd¾õõÉ'ŸÄž{újDDÜyç�qê©§f¹ªòüñ±Í6Û¤ÚEEE1bĈTûÑG�ÒÒÒ8þøãk|…uAAAF°úÁT{ž+V¤µ[´h±^u•gõ-Ÿ#"ºté’ú»iÓ¦iÇ>ûì³?ÿúZ±bEôíÛ7n»í¶ˆˆ8ãŒ3bĈQ»ö¦q÷§ò>Ó�õZY'žxb|üñÇq饗FýúõÓŽ-]º4Ž=öØøç?ÿ™¥ê€\"jL×®]3újj¥ä7ß|:t¨‘ùÖDzeËâè£�ޝ¾ú*""8à€8餓²\UÅj×®ƒ Jë»ýöÛSAÙC=5¿ýó*»ì²KZûÃ?¬öÖàkÞ v÷Ýw_ïºÖ´hÑ¢´ö>ûì“ú»eË–iÇ^}õÕ(++«ñÖǹçžãÇ��ˆëáÇg· jjÑ¢E´iÓ&­ïý÷߯öÿüóõžwéÒ¥ñé§ŸFDdÜÏ6þ÷ÿ7>úè£Tû¸ãŽËb5Usæ™g¦mi¼`Á‚¸çž{bÖ¬Y1qâÄèÖ­[¹Ÿ_M8à€ÒÚK—.�7Þx£Zs¬y­9gM˜>}zêïüüüèÓ§OªÝ½{÷´{\óÍ7ñÒK/­Óy†�>úèºZŽI“&Å=÷Ü“jzè¡÷Âݬù¹N›6-¾ýöÛ*?¿¬¬,¾üò˵ÎùSxì±ÇâÌ3Ϭðx‡âñÇ�ÿû¿ÿ‹¼¼¼TÿçŸ/¿üòOQ"�ÃÀ@�Ùc�=2¶[?~üzßøé§ŸŽâââhÛ¶mì¸ãŽë5WM¸óÎ;ÓÚ;v\ëøê®vÝ6lLë»ùæ›ãÁŒ$Iâä“OÞ`çîß¿F_uÐåË—Ç_|‘jo³Í6äž¶ï¼óNêïÃ?>üðôvM_“kÞzÕ=¹«bͰymáó‘GݺuKë»û|®±cǦµ/½ôÒ*?·¦Íœ93Þzë­JÇ�wÞyií5·°¨.0P£  6Lë»à‚ 2¶e­Š$IbРA1uêÔhݺuüá¨ÒóÖeuâÊ•+«4nÍûÄFÄZCžY³fÅ¿ÿýï´¾ï¿ÿ¾ÂñåÕ^TTT¥Ú*Ó¼yó8ýôÓÓú~øá‡Øÿýc›m¶©‘sTdèСi!â·ß~·ÜrK•ž»úÖÆ;ì°Cœ}öÙU>oUïÓ;räÈÔß ˆ<0c̉'žMš4Ië8p`Œ7®ÒùçÎ�}ûö�¹sçÆ_ÿú×rǬùÙWçs_¸paZûí·ß®plqqq<üðÃi}k»&#"ãu¯–¯RQˆ¼|ùò´ö²eË* 4ˆGy$mseª² ïŒ3âöÛo�ˆˆV­Zň#Ê׸qã¸á†ÒúŠŠŠâ°Ã‹«®ºªÜ`3I’xæ™gbÏ=÷Œ÷ß?þö·¿E§N�Ê�ÍϾ:ŸûêÛUGDL™2%þþ÷¿gŒ[²dIwÜq1uêÔ´þ·Þz+u�&I’wéÒ%­ýÐC¥¨‹/Žƒ:(^}õÕ´qË–-‹ ¤õÍœ9s­¯åˆ#Žˆ .¸ ­ï²Ë.[kpñøã�§¶ñnÑ¢EÜÿýkÝ1`Íï‰Ê¾#JJJ2^Kyß«»÷Þ{3Vg¯iõû‰7kÖ,úöí»Öñ•5îüóÏ�‹/¾8­ïÓO?�^½zÅyç�|ðA…ÛÀ~üñÇ1lذØvÛmãþûï�-¶Ø"ÆŒ¿øÅ/ª|þ)S¦”;ïÚ¼þúë}Ó¦MËè«[·nF-………Ñ«W¯8p`Œ5*†Çw\ì¸ãޱãŽ;Æ5×\“6þ™gž‰+®¸"† =zôH AËÛRøŽ;î¨öÊÊl»í¶qÄG¤ÚåÞ£wC¸è¢‹bРA©öÂ… ã˜cމ~ø¡ÜñsçÎ�ãŽ;.’$‰† Æ“O>=zô¨Ö9xà�¸âŠ+*\ ¼`Á‚èׯ_¬\¹2š5kãÆ�˸�õêÎ:ë¬8î¸ãÒúŠ‹‹ãÊ+¯ŒV­ZÅÑGƒ ŠË.»,N9å”èÔ©SuÔQñÕW_Åþð‡ W/OŸ>=^{íµ´¾·ß~;&MšT¥×ùË_þ2£ïœsΉ~ýúň#bäÈ‘1pàÀhß¾}L›6-ª¯2þü8á„bĈѧOŸxæ™gÒŽ¯¹"úƒ>ˆC9$þñ�İaÃbç�wŽúõëǾûî›6îÉ'ŸÌøgýᇮtËéo¼1í}þôÓOãä“O®pUô'Ÿ|’zo[¶lcÇŽ�6mÚT8ÿgŸ€)5\ IDAT}K—.Më«ì;bòäÉu—÷±º’’’0`@Æ–Û«”••ÅW\‘jÿõ¯�‚‚‚µÎ P©`yà�’6mÚ$‘ñhÞ¼yòóŸÿ<9ꨣ’#Ž8"Ù{s­·Þ:mÌ>û쓼ÿþûÕ:ç¬Y³’ŸýìgçkÛ¶mòÖ[o•ûœ>ø ÙvÛm3žÓ®]»dòäÉãßyç�¤~ýúå¾®U�¼¼¼dàÀ�IIII2eÊ” ÇõíÛ7™2eJ2xðà¤G�Žkß¾}rþùç'7Þxcòæ›o®Óç±Ê˜1cRóžp ë5׺>|xÚû×¹sçä‘GIV¬X‘$I’,_¾<¹ÿþû“víÚ¥Ž—÷9”§C‡iï[—.]’ˆHvÛm·ä±ÇK–.]š$I’¬X±"y衇’Ž;&‘l¿ýöÉ»ï¾[¥s''Ÿ|òZ?ÿÕõë×O†ž1ÏÊ•+“›nº)9üðÓ:uê”ûÜzõê%ýû÷Oþüç?'wß}w…5ýðÃÉvÛmWi-p@2wîܤ¸¸8iÙ²e¹c¶Ùf›dÖ¬Yióùå—k½æ{öì™|ÿý÷I’üøÏý_þò—dÀ€¾®í·ß>¹ôÒK“Ñ£G'¥¥¥å¾¦ÒÒÒä’K.IjÕª•zÞ{ì‘<÷ÜsIQQQ’$I²hÑ¢ä¶ÛnKš6mšDD²ûî»'3fÌXëç7þüäˆ#ŽÈ¨©aÆɸqãÊ}ÎÌ™3“=÷Ü3ã9�7N^xá…¤¬¬,mü£�>šñ]rç�w& .L�y÷Ýw“_þò—©1W]uÕZë¨*0°A-Y²$1bDÒ»wï$??¿Ò€ªE‹Iÿþý“—^z©Zç),,Lºuë–äåå­uþÖ­['wÞyg’$?A«µ=Ú¶m›¼öÚkiç{ùå—“öíÛ—üî·ß~É„ ÒÆ80m\~~~rî¹ç&Ë—/O†Zå01"’!C†¬×gòÍ7ߤæ;vìz͵®¾øâ‹ä¤“NJ5j”öÞ5mÚ4õvëÖ->|x*쫊5à»îº+¹çž{’Ö­['‘ÔªU+iÖ¬YêmÚ´I®¸âŠTø\cÆŒIzöì¹Öà÷ÔSOM>þøãrŸ?{öìj}î:tXk=3gÎLöÙgŸ ×;î¸#-¨|ðÁ“Úµk§�Ûÿý“/¿ü²Üù~øá¤Aƒ×ñgœ‘,Y²$5®{÷îÕz]•½÷ï½÷^rÔQG%õêÕK;o“&MRíÝvÛ-¹ë®»2‚Ø5õéÓ'ã5¯ùØj«­’k®¹&õœ]vÙ¥Òï®æÍ›'?üpê9kÀ«?š6mš¤ÚݺuKÆŒ³Öºª#/I*Øw  †-[¶,Þÿý˜1cF,Z´(–,YõêÕ‹f͚Ŗ[nݺu‹vØ!ÛeVYQQQ¼üòË1uêÔH’$Úµk{íµWtìØ±Üñÿú׿âÝwß�¦M›Fß¾}£C‡?mÁÿ¿±cÇÆ/ùËhÓ¦M|õÕWQ«V­¬Ô±råÊxíµ×âË/¿ŒyóæE£F�¢uëÖѳgÏèܹsµçëØ±c|ùå—©ö]wݧ�vZ¬X±"þýïÇ´iÓbÅŠѪU«èܹsì³Ï>ëýú¿øâ‹˜û,ž~úéxõÕWc̘1[@Gü|ÿò—¿ŒŽ;F§N�¢_¿~Y¨~`€òâ‹/ÆUW]|ðAäååE÷îÝã„NˆsÎ9'êÔ©“íòjܨQ£â¬³Îªòø^½zÅo¼±+€ìä÷È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!È`€!ȵ³]�;-Z&LHµÛ·oõêÕËbEÀƤ°°0¾úê«T»OŸ>Ñ´iÓ,V”{À@�™0aBüú׿ÎvÀ&â©§žŠ£Ž:*Ûeä[@ä0@ް4PcÚ·oŸÖ~ê©§¢sçÎYª6_………1jÔ¨TûÌ3Ït?n`£ðé§Ÿ¦ÝNrÍl�õ'jÌšSçÎ�£{÷îYª6_+W®Œ–-[¦Ú;î¸cÔ¯_?‹”Ï╚g h€a0ä˜zõêÅàÁƒÓÚlÀ�còòòlù °™²4@Žä0@Žp`È1+W®Œ›o¾9Õ¾ð Ý`3!€´råÊl—@Ø G€r„ G€r„ GÔÎv@ö$Ieee‘$I¶K²$///òóó#///Û¥PÀ°™)..ŽÅ‹ÇâÅ‹£¸¸Xø D^^^Ô©S'š4iMš4‰:uêd»$Ö‘6………1wîÜX¶lY¶K62I’DQQQ|÷ÝwñÝwßEÆ £U«VQ¯^½l—F5¹0lŠ‹‹cÖ¬YÂ_ J–-[³fÍŠâââl—B5Y 9¦V­Z±ë®»¦µ€Í[iii|õÕWQRR’íR€MHIII|õÕWÑ¡Cÿ�q"€S§N�øõ¯�í2€�ÈìÙ³£°°0­/???7n�7Ž:uêD~¾MCasUVVÅÅÅñÃ?Ä?üeee©c………1{öìh×®]+¤:À�ÃJKKcÉ’%i}uëÖ�:DíÚbàGuëÖ�† F‹-âË/¿Œ¢¢¢Ô±%K–Dii©UÀ›?瀶æ=óòò¢}ûöÂ_ \µk׎öíÛG^^^Z¿û‡o:À�ÃÖ\ý[PPuëÖÍR5À¦ nݺQPP�Ö·téÒ,UCuùy°Á¼ðÑ·ñQa£l—›�²ÒÒ˜õéôT{›ÎÝ"ßÖ,°Ù:v·Ù.Ȳ5Wím±ÅYªØ”4jÔ(íûC¼é@Ž)))Ž7Ç¿˜j·í¸]ÔÀf)I’(--MëkРA–ª6%k®.--�$I2¶†fãc hÈQeee}µüP¨‚ò¾+ÊûNaã#€•$IFŸÕ{@U”÷]QÞw 0@Žä0@ŽäˆÚÙ.Ø8••%±`Ya¶ËÈi[5¬ùùyÙ.È!` \ –FËËÏv9mÞÐ~Ñb‹úÙ.È!¶€È`€a hÈ1µëÔ�¾ýNLk°y@ŽÉÏÏ�¦Í[f» ²ÀÐ9B ÀfmöìÙÙ.jŒ€ÍÖ{ï½gžyf¶Ë€ãÀ�cŠ‹ ã•gMµ8òبS·^+€�Ó’%KâØc��¶mÛf»¨1`È1I’Ä¢ߥµ€tI’Äi§�3fÌ“Sl Àfç�üc<ñÄÙ.jœÀl6ŠŠŠâ¢‹.ŠÛn»-Û¥Àa0ÀfhàÀ�‘———ñ¸òÊ+ÓÆM™2¥Üqyyy1zôèrçž>}z\wÝu±÷Þ{ǰaÃÒú/¸à‚èÒ¥K4hÐ Ú¶m¿ýíocÖ¬YåγÇ{Txî¼¼¼Øwß}3žóé§ŸVXkQQQì½÷Þáï„ ÒÆ6mÚ´zo&lD¬€MÔ¼o¿ªtÌÌfÉZ�wìØ±†ª`S3xðà8ôÐC㪫®Š·ß~»Âq;ì°CL™2%>û쳸ꪫâý÷ß/wÜÇwÞyg<ýôÓñÉ'Ÿ¤úûöíeeeñ—¿ü%®¹æš(..N›={vŒ=:žþù˜8qbl»í¶isþóŸÿŒÛo¿=®ºêªH’ÿ÷ÿm÷ÙgŸ2dHÆøˆˆ:Äo¼7ÝtS<üðÑŸŸ·Þzkôïß?êÖ­÷ß$I§œrJ¼õÖ[±çž{Æ=÷Ü“š£V­Z•¼{°ñÀ&jà?¯|L%ÇWÿ�hl^ÚµkíÚµ‹­·Þ:vÛm· ÇÕ«W/vÙe—Øe—]¢qãÆqðÁ—;®¤¤$~ó›ßD£F�bÈ�!©þâââøÍo~¯¾új 6,öÝwß(--�ûî»/µwîܹ1pàÀxî¹çÒælÕªU 2$¾ýöÛøûßÿžêïß¿…uÔ©S'zõêýû÷�‡~8Î8ãŒ8÷ÜsSÇ·ß~ûˆˆ(((HõD·nÝ*|`Sb h€ÍØ;ìPå±�:uªðX÷îÝ£gÏžqÙe—EýúõSý7ß|s,Z´(>üðÃ4hPüìg?‹Þ½{Ç­·Þ§Ÿ~zjÜØ±c㫯ÊßåfðàÁi«rÇŒSi­Ï?ÿ|Dü¸Õ5lNÀ›±ÕÃÚÊTekä:uêD³fÍRíÝwß=ž}öÙ´¾UÎ:ë¬ÔßI’ĤI“Ê�³S§N1`À€Tû•W^‰iÓ¦UXCQQQ<ñı뮻ÆÎ;ï\iÍ�KÀÔ¨:uê¤þÞvÛmÓÚ«ëÞ½{Z»¢À—\rIêï$Iâæ›o®pìóÏ?‹-ŠSO=µª%CÎ�[l±EZ{Ù²eŽÝu×]ã�CIµï½÷Þ˜?~¹c|ðÁ¨]»vœp 5S(lBÀ�còóó£e›v©G~¾ÿ¹`ÓPVV¶Öã—^ziêï+VÄí·ßž1fÙ²e1f̘8ôÐC£eË–5^#lìjg» fÕ®S7ö?òØl—üFŒyµÒ1‡õh÷T?�8 öÜsÏxë­·""âÖ[o�K.¹$êÖ­›óÌ3ÏÄòåËmÿÌfK ›¨–mÛW:¦cÇ?A%ðÓ¹ôÒK£ÿþ1gΜxðÁÓÂÞ|0¶ÜrË8âˆ#²U"d•=!Ød}ôÑѵk×Tû¦›nJý½páÂxá…âøã��zõêe£<È:0›Œüüü¸øâ‹Sí÷Þ{/^~ù刈xüñÇ£¨¨ÈöÏlÖÀ�cÊÊÊbÞ·_¥eeeÙ. jÔÉ'ŸmÚ´Iµ‡?nÿ¼ýöÛG¯^½²Ud�rLIqQŒóXêQR\”í’Ø„”””¬Ó±ŸR½zõâ /LµŸ{î¹?~|Œ?>N9å”*Í‘———ú»´´´Æk„llæ6l˜ú{ÆŒŽ›:ujZ;I’ VSeÎ=÷ÜhܸqªŽãŽ;."~\\õë×Oý½`Á‚š/²D °™Ûi§�R?óÌ3ñÙgŸeŒ™:uj 4(5j”ê›3gN¹óUu¥ðòåËÓÚÕ ”7nçž{nª=oÞ¼8à€¢}ûöUzþÖ[o�úû“O>I �KJJ⡇ªr-°1læN?ýôÔß+W®ŒýöÛ/î¾ûî˜2eJŒ7.~ÿûßÇ^{íC‡�:¤ÆÞ~ûíñè£�Æû￟ê+))‰ï¾û.Õ^´hQ…çýüóÏÓÚßÿ}µêþ¯ÿú¯¨]»vª]ÕíŸ#"öÝwßÔߥ¥¥qÜqÇÅ믿/¿ürtÐA†Û°±læÎ<óÌèׯ_ªýí·ßÆi§�={öŒ¾}ûÆ<>ø` 0 íyK–,‰x &L˜�ê{à�¢¨¨(Õž0aB|ñÅçL’$þ÷ÿ7­ï¹çž[k`¼¦­·Þ:Ž>ú興hÔ¨QÚk¨Ì€ÒÂì—^z)öÝwßøÅ/~{íµWÚ=†aS"ØÌåååÅ#�<#GŽŒŸýìgѰaÃhÔ¨Qì¼óÎqõÕWÇG}‡~xDDl·ÝvñÇ?þ1&MšóçÏ�'Ÿ|2.¸à‚xñÅc¯½öŠSO=5mîE‹E·nÝb¿ýö‹I“&EÄ�+‡·ß~û¸ãŽ;ÒÆ~þùçÑ¡C‡8ì°Ã¢°°°Jµ¯ª«_¿~i÷2®LAAA¼øâ‹Ñ·oß(((ˆ­¶Ú*9ä�xá…bذaUž66µ+@®ËÏÏ�sÏ=7í¾ºåyúé§ËíïÛ·oôíÛ·JçªÊyªjÖ¬YÁsUtíÚ5^xá…©6V°É3fLl»í¶±ÿþûg»Ø(X ”k«†õbÞЪßS•êÛªa½l—°I›>}z¼ùæ›1tèÐÈËËËv9°QåÊÏÏ‹[ÔÏvP¡n¸! âÌ3ÏÌv)°Ñ°4›œÿûß1zôè8çœs¢yóæÙ.6V@Ž©]»NìÓ÷ˆ´6lªî¿ÿþ1bD4nÜ8Ž<òÈ8þøãcƌѿÿØrË-ãOúS¶K„�ŠrL~­Z±u§ÎÙ.ÖÛ’%Kâ´ÓN‹’’’ˆˆxñÅcàÀ�©ã?üp4kÖ,[åÁFÉÐl”4h[l±E¹Ç†  ø‰+‚�Ÿ€�RíÚµãÙgŸ�Þ½{GAAAl¹å–qØa‡Å„ âÒK/Ívy°Q²4­½÷Þ;&Nœ˜í2`“!€SR\“_›j÷:ðШ]§n+à§"€SVVßÌü,­ ÀæÁ=€r„ÀÀsHÝ�¢{½¥Ù.6;+£(fÔš�j÷«7%ê׳4l¶¦¾“í €êê~t¶+`f0@Žä0@Žä0@Žä0@ލ�퀚•——M7Lk°y@Ž©W·N\xòÙ.€,°4@Žä0@Žp`È1I’Äâ%ËSí&[D^^^+à§"€SXT7ß;&Õ|æ1Q¿^Ý,Vl²’²ˆåßg»ŠÜVÐ,"φ­@Íå[þ}Ä_·Ëv¹í�ŸE4lží*€â'%9B ÀÿÇÞ½Çi9çÿÏ4ÍLéÀ·“¤DE*tذä[Ò.!"Å*ÖY¬¥õËúÊ!ÒîWZ‹EŽh eµB¡ƒÓVS‘J+S:LÓÌï¿îu7ÓIcîºçù|<î‡ë}]Ÿës½çÞ}Ô£^}>�&ÀiB �&ÀiB ÀNgÙ²e±aÆT·»œ¬T7Í¢%K7q·E›½Ô¸qã2ïvF………Ñ£G�xüñÇ£Q£F©nv)`(gû{Ñ�º¯¸¸¸Œ;€�Óõ×_¯½öZ¥ºØåØ€�ƸqãbðàÁ©nvYV@šÉªT)ŽëÐ&©€]ÁŒ3¢wïÞv½€ €4“•U)?ä€T·Ûå…^ˆÓO?=V¯^�êVvÈêÕ«ãßÿþwì½÷Þ©n… ÊÐDÄ÷ï›?~|œyæ™Ñ´iÓØm·Ý"'''4hÝ»w�gžyf««s¿ûóÎ;ãç?ÿyì¾ûî‘™™IŸ+¯¼2éž»îº+N8á„X¹reÒù}÷Ý7é¾qãÆ•xÞ¼yóâw¿û]ôîÝ;qnæÌ™ñË_þ2jÖ¬�5Š'žxb³ýΚ5+®½öÚ8ì°Ã¢~ýú‘““µk׎6mÚÄÕW_³fÍÚ¦ïí�7Þˆ_ÿú×Q¿~ýxðÁׯ�=zôˆ}öÙ'rss£AƒÑ«W¯xå•WJ�ë´ÓN+ñ}ýðSZ°\XXXêØ›nºi«½“~ÀÄ‚ âÐC�îÝ»Ç{ï½ÿû¿ÿ¯¿þzŒ3&š7oãÇ��ÓN;-zôè¥ÎñÉ'ŸÄ!‡ ˆ¦M›ÆèÑ£cÖ¬YñüóÏG�=6ûìÞ½{Ç{ï½·ÞzkÒù—^z)æÏŸŸøtéÒ%"">þøãø`bÜgŸ}]ºt‰îÝ»ÇØ±cãÓO?�uëÖÅçŸcÆŒ‰Î�;Çå—_^"Pà�bذa‘“““t¾yóæñÜsÏÅ?þñ�}deeÅÛo¿—_~yâÜM7Ýýû÷ßìwNú²4”³�_¼oó÷?¶ü€ÿïóÏ?�£Ž:*¾üò˨W¯^¼öÚkQ½zõˆˆhÓ¦MtëÖ-:uêS§N�¿ýíoqýõ×ÇàÁƒKÌó«_ý*.\gŸ}vŒ1"qþàƒŽN8!X"ä�ˆ¨_¿~âóCMš4‰Æ�'�{æ™gâ…^ˆÅ‹ǻロtíµ×^‹ .¸ Î8㌘6mZ|ôÑG±nݺøî»ï¡ê‡~Ç{l,Z´(N=õÔ5jTdeý'6ëСC\pÁѵk×øç?ÿO>ùd¼ûî»ñÒK/Eƒ ã–,Yûí·_ì»ï¾‰:âû0½C‡Q¿~ýxä‘G¢eË–±jÕª7n\Ü{ï½QXXÆ ‹ììì2dHâÞ=öØ#.½ôÒÈÏÏ�ë®».qþØc��O<±Äw·Q»ví¢¸¸8î¹çžøÅ/~7ÞxãfÇ’ÞÀ�fÖ¯/ŒÉ3ç$êc;8*Wö[>ìL7¨»…‹�Ë­ØhèСñå—_FDDÆ áïFñ›ßü&¦N�Ç�›o¾9rsscòòòbúôéѽ{÷RŸó‡?ü!žyæ™êµG�‰ÕÄ|päååEDIJeËâ‚ .ˆ—_~9Ú¶mùùùqùå—Çßþö·èÓ§Oü×ýWDD|ûí·Ñ­[·X´hQ4hÐ FŒ‘þnT¯^½xñÅ£eË–±lÙªï IDAT²xÿý÷ã”SN‰©S§&~îSO=5""ºuëM›6MÜ;räȸÿþûãÜsÏMš³S§NqÒI'E×®]«¨‡Ý»w�£Ž:*iìe—]ƒŽ+VDDÄ„ bèС‘‘‘±Ùïæ…^HÜKÅe hH3ŠŠbÆìŸ EE©n €�ܼyóÇÿú׿JÓ¬Y³Äñwß} .Lº>þüÄñÆÐrSYYYeº-ñ�˜8~ï½÷âÆoŒ¶mÛFDD�5bĈ‘ŸŸÇOŒ»ñÆãÃ?Œˆˆ‹/¾8ªU«¶ÙùëÔ©“´Òù­·ÞŠ?ýéO%Æ5jÔ(©>çœsJ„¿uîÜ9n¾ùæD]\\ƒ *1®zõêqñÅ'ê Ä‹/¾¸Ù^#"žzꩨS§NtíÚu‹ãHo`€ ®cÇŽ‰ã�ê¦vÛm·¤úÛo¿Mª¸ø®»îŠÕ«W—:Ïi§�•*Uú±­&©R¥Jâx�=öˆÓO?}‹ã¿þúëøË_þ’¨ùË_nõgžyfÔ©S'Qßyç�%Þ�\¹r夺aÆ[œóŠ+®ˆÚµk'êI“&Å×_]ê¸~¯C‡Ý윳gÏŽùóçÇ™gžY¢*0@7`À€=ztüå/‰çž{n›îY¿~}RݱcÇÄjÚ÷Þ{/:wî|ðA‰ûêÖ­›ôÎÛ²R£F�-n�ñâ‹/ÆÚµkõW5oNvvvÒ–ÖË—/�iÓ¦ýøFãû°ü”SNIÔÅÅʼní³¨^½zqÎ9ç$êI“&%­Öþ¡§žz*""i<“ ‚ËÈȈž={Æ\Pb¥ï|×]w]Ò*áˆïC˪Y³fÒVÆ3gÎŒƒ:(®¾úêÈÏÏÿéšßo¼ñFR½é»Ž7§}ûöIuiaíö:âˆ#’êO>ù¤ÔqW_}udfþ'ÒÛÜ*àQ£FE«V­¢M›6;Ü»60I ã©§žŠŽ;F·nÝ¢víÚ1zôè­Þ׿ÿ0`@¢^¿~} 2$ößÿxøá‡K„ÆåíË/¿Lª7·Mõ¦8à€¤zéÒ¥;Ü˦snº¥öFM›6�=z$ê'žx¢Äó§OŸ‹-²ú—ˆðÿƽ÷ÞMš4‰�Æ¥—^ï¿ÿ~\uÕUQ¯^½mšãŽ;îˆG}4jÔ¨‘8÷ÕW_Źçž‡~xÌž=û§j«V­Z•ToëÊäÝwß=©ÞÖàx{æÜÒjäßýîw‰ãµkׯŸÿüç¤ëO=õTTªT)z÷î½Ã}±ë|ðA´iÓ&.»ì²hß¾}äååE¯^½’¶ÞVg�uV¼ÿþûÑ·oߤûß|óÍ8ôÐC㡇*ËÖ·Ù{ì‘TonÛåMmº-víÚµw¸—¬¬¬¤ºN�:›Û®]»8æ˜cõðáÃcݺu±aÆ=ztüò—¿Œúõëïp_ìúÀÜܹsãÐC�¹sçÆa‡#GŽ,zn¯úõëÇÃ?yyyqê©§&ÎÄù矓'OÞѶ·Û>ûì“TÏš5k›îÛtåpãÆ�w¸—MW·k×n‹ã¯½öÚÄñÒ¥Kã‰'žˆˆˆW^y%¾úê+Û?“ ¨ÀŠŠŠ¢gÏž‰@òšk®)±:u[<ýôÓqÛm·•8ߢE‹xæ™gâïÿ{Ô¬Y3""Š‹‹cРA;Öø�ЩS§¤úµ×^Û¦û–,Y’TwîÜy‡{Y°`Aâ¸Aƒ±ÿþûoq|—.]¢mÛ¶‰zèСñýöÏ5kÖŒ“O>y‡{"=€*°—^z)ÞÿýDݪU«RÇou®¿ÿývì±ÇÆc�=–¨K[}›‘‘‘Toذa«ÏÜ�;wNz—ñ³Ï>[buoi~Økûöí£I“&;ÜËÌ™3Ç^xá6ÝóÃwÏ�;7žþù;vlôêÕ+rssw¸'Òƒ ËËËKª—-[Vê¸O?ý4©.(((1æµ×^‹�?þx³ÏêÖ­[bpiáî¦!æòåË7;×�‘››×\sM¢^½zu<øàƒ[½oüøñ‰ão¼q‡û(,,Œ1cÆDDD­Zµâ’K.Ù¦ûzôè‘>ŸwÞy±bÅ Û?“D i&7';nºôŒÄ'7';Õ-°ÛtÕíèÑ£KŒùî»ïâ÷¿ÿ}Ò¹MáˆïW ß|óÍ›}VAAA¬Y³&""Ž:ê¨×4h�TOŸ>=©ž8qbR(\XX˜8Þ8ïÖ\qÅѱcÇD}óÍ7o6ôŽˆxõÕWãÍ7ߌˆˆóÏ??N8á„­>£´ïæ‡î¿ÿþøì³Ï""â/ùKÔªUk[Z�J•*ÅoûÛD½téÒhÚ´iyä‘Ût?ƒ Û4ˆ½÷Þ{ãÊ+¯Œ×^{-fΜÇ�¶mÛFÛ¶m£råʉqÆ ‹éӧǰaÃâ¹çžKœä‘GâÑG-õY÷ÜsODNNNÜrË-%®·mÛ6ªT©’¨oºé¦5jTÌž=;ƒ ŠêÕ«'®ÏŸ??q¼téÒX´hÑVÞ¬¬¬=zt´iÓ&""¾ùæ›èÑ£G©[A/Y²$±º¶[·nqÏ=÷luþˆˆG}4xà�R¯Í˜1#®¾úꈈ¸õÖ[£G�Û4çF}ûöM ŒÏ:ë¬íºŸô'¨ÀÚ·oŸ"ÅŸþô§øïÿþï8üðÃãºë®‹k®¹&†�:uJŒ›={vqÄqûí·G‹-’æìÛ·oôîÝ;&L˜sæÌ‰_|1Î;ï¼0`@Ô¬Y3ÆŽ­[·.ÑKÕªUã²Ë.KÔ+V¬ˆ3Î8#Z·n/¼ðBŒ3&òóócܸqÑ«W¯x÷Ýw“îïÞ½{<ùä“ñî»ïÆŠ+6û3×­[7¦N�çœsNdddÄk¯½‡rH ><Þ~ûí˜9sfÜu×]ѦM›X¶lYüþ÷¿�qãÆmó{vÛ¶mW\qE´oß>zè¡xóÍ7ãõ×_�ßýîwÑ©S§ÈÉɉ‡z(þçþg›æû¡*UªÄ¹çž߯Þ>ûì³·{Ò[Fñ¶¼±`Ì›7/Zµj•¨çŽûc´lÚ(…À.¨å)©îH#………ñ¯ý+é\³fÍ"++kÛ&øî눻šl}?ÞÕ #v«�ê.¢¨¨(þïÿþ/þú׿Ƈ~U«V�&MšD÷îÝã‚ .ˆºuëFDÄG}ýúõ‹·Þz+jժݻw�o¼1j×®O?ýtôìÙ³Ôù³³³cŸ}ö‰N8!~ûÛ߯Þ{ï½Ù^ càÀ�ñè£�Æ·ß~Mš4‰>}úÄå—_žˆï½÷Þ­þL<ð@œþù[7{öì1bD¼ôÒK±xñâX½zuÔ®];š5kÇw\œ}öÙ±×^{mužn¥}ã�7Æ™gžƒ ŠÉ“'ÇÒ¥K£F�ѤI“8ùä“ã¼ó΋zõêmuÎÍ™:ujtìØ1:v쯾úê�žgKvø×�Í(‘%Ì�-[¶Ü¡9I¶cÿ °ËËÌÌŒ+¯¼2®¼òÊ-ŽÛo¿ýbÊ”)¥^;í´Ó¢,ÖfeeÅwÜwÜqG©×‡ Æ ÛáçltÈ!‡ÄÝwß]fóm´ÿþûLj#Ê|Þˆÿ¼cxãöÔðC`H3k×ÄíŽMÔמjäæd§°# ,=÷ÜsQ­ZµÍ®¸¦b¥«ú_ßoQÌO§ê¥ºv1ß|óM<ûì³qÎ9çDµjÕRÝ;!0PºŒÌ�âý´À 6,Ö­[ýû÷Ou+ì¤2Sݰu~øaÜ~ûíѽ{÷hÑ¢EªÛa'%€PPP�T¯Y³f‡æûÇ?þ:tˆÎ�;ÇwÜK–,‰ùóçlj'ž………qÇwìÐü¤7[@?™/«µŠš5HuPá¬]»6òsg&êÏj´‹ÜÜÜvP±ì½÷Þ©n€r6oÞ¼¤zöìÙ;4_Ÿ>}béÒ¥ñÊ+¯Äµ×^›¸vÇwD³fÍvh~Ò›Àð#,\¸0FŽçœsNÒùI“&Å5×\“'O޼¼¼+„·¦nݺ¥ž¿ä’Kâšk®ùÑýR1X ?Âa‡Ë—//q¾¸¸8îºë®¸ë®»"""///ZµjµÍóŽ=:®¸âŠ˜1cFDDüìg?‹þýûG÷îÝ˦qÒš~„¯¿þú'™÷ÀŒI“&ý$s“þl �&ÀiÂÐ�f*UªmÚ´Iª¨À�f*W®G}tªÛ l �&ÀiB �&¼ÒLaaaÌ™3'Q|ðÁ‘•å·|€ŠÀß@š),,ŒW_}5Q·hÑB PAØ M€Ò„ M€Ò„ M€Ò„ M€ÒDVªvNÅÅÅQPP�ê6ÒZvvvddd¤º �€€RÄsÏ=—ê6ÒZ·nÝ"'''ÕmiD i&'''Î;D€²³xñâ-^/,,ÜìµÆ�—q7ÉÀ�f222¢fÍš©n mqÄ?úÞâââ2ì ¤ÌT7@z™3gNrÈ!Q³f͸ꪫRÝT(`ÊÔe—]sæÌ‰üüü:th¼üòË©n * 0ejÆ IµWa@ùñ`H3ëÖ­‹Ç{,QŸuÖY‘“““ÂŽ¨h†çœsN|þùçѯ_¿8æ˜cRÖË_|õë×OÙó¡¼ € ÍG~~~R åéÐC�ùó秺�xñÅcôèÑñ׿þ5Õ­@¹l‡iÓ¦mñºÕ%;‡Ï>û,úôé'œpBª[�r%Ø 6Üâõ½÷Þ»œ:`sÖ®]={öŒ¯¿þ:Õ­@¹ËLuPV6lØgŸ}v̘1#Õ­@J€ˆˆˆõë×ÇÇ\æó–ùœ¥ÉÏÏ�ž={Ƙ1cÊåy°3Tp³fÍŠßüæ7Ñ AƒøÃþ�8ÿꫯÆÙgŸûí·_äææÆž{î'œpBüíoÛêœyyyqýõ×ÇþûﯿþúfÇĤI“âÒK/�}öÙ'>û쳈ˆ(..ޱcÇÆñÇ{î¹gT©R%>øà¸ûî»K ”—.]mÛ¶-ÑÛˆ#"###ñiݺõ¶~-°Kò`€ hÞ¼yñØc�Å3Ï< ,Hº¶bÅŠ¸è¢‹bÔ¨QIç¿ú꫘8qbLœ81N=õÔxòÉ'#'''qý½÷Þ‹Ñ£GǨQ£âý÷ßßâóÇŽ£G�Ž^x!òóóç cñâÅÑ·oßxùå—“îÉËË‹ßþö·1cÆŒ=ztÒµ=öØ#žþùˆˆ8æ˜câóÏ?�ˆˆîÝ»Çm·Ý–—››»µ¯viVT@_|ñEìµ×^Ѽyó¤óË–-‹£�>:òòòâÏþsLŸ>=^ýõ¸á†b·ÝvKŒ;vlœy晉ú­·ÞŠ!C†Ä²eËbÅŠ[}~­Zµâª«®ŠV­Z%�Ÿ?~~øá1f̘˜5kV<ûì³Ñ¦M›Ä˜1cÆ”€+W®Í›7�æÍ›GåÊ•çkÖ¬™8ß¼yóhܸñÖ¿Ø…Y PuéÒ%ºté¿þõ¯c÷Ýw�‚‚‚ˆˆ˜8qbÜ|óÍqýõ×GFFFbü‘G½zõŠ£Ž:*ðŽ;6üñèÓ§O´oß>Ú·o߯Àíѣǟ߱cLjˆ¸è¢‹bÚ´i‰ó§Ÿ~zÜrË-Ñ¿ÿĹC9$:tèÍš5‹åË—GDÄý÷ß½zõ*ƒoÒ‹ÀX•*U¢víÚ‰ºsçÎqà 7$…¿µjÕ*î»ï¾¤sƒ *1nÓUÅ[²çž{&ÕƒN 7Úc�=â´ÓNKÔ3f̈¢¢¢m~T`H3™™™Ñ¤I“Ä'3Óo÷lÙ·LnذáÇöêÕ+:è DýþûïÇ;34¦jÕª?êÙ[�[¶l™8þî»ïâ›o¾Ùæç@Ea hH3ÙÙÙqòÉ'§º ÒTFFFœqÆ‘———87mÚ´h×®ÝOþìêÕ«'Õß}÷]ÔªUë'.ìJ, `»qÄIõ'Ÿ|’’>l % €Ø.p@Rýí·ß¦¨`S`¶Ëî»ïžToº53�:Þ ifÆ ññÇ'ê}÷Ý7*Uª”ÂŽH7YYÉS�:uRÔ °)0¤™õë×dzÏ>›¨/¹ä0e*???©n×®]Š:6e h¶Ë‚ Ç999qÄG¤°à‡Àl—™3g&Ž{÷îÕªUKa7%edd$Ž7lØ�ÂN ü €Ø.O=õTD|¿úwÀ€%®%ÕÅÅÅåÒ×F¹¹¹‰ãåË——ë³!ÕÀ$|úé§[¼>qâĘ1cFDD 4(8à€cV®\¹Åú‡ ·¹·Õ«W'Õ› –4h�8~ûí·cýúõ‰zÕªU1nܸm~&ìjÀ$¼òÊ+qÓM7•XÅñý»ûõë]tQ\uÕU¥Î1gΜ¤zöìÙ›}Þ_|‘T¯X±b³c?ú裤úßÿþw©ã:tè�8^¶lYœsÎ9ñæ›oÆ„ ¢C‡å¾"Ê“€„V­ZÅ=÷Ü-Z´ˆaÆŴiÓbÆŒ1hРøÙÏ~ùùùqÛm·ÅŸÿüç¤wí~ýõ×ñöÛoÇ#�<LšsÈ�!ñÇ?þ1fÍš•´Š·°°0üñ¤±O<ñDÒŠÝ�¾úê«9rd‰±¥¹ð £fÍš‰ú©§žŠÃ;,N>ùä8ÿüóã”SNÙö/v1`ÚµkyyyÑ¥K—2dH}ôÑѵk×3fL\zé¥ñÞ{ïŵ×^[â¾ûî»/Ú·oýúõ‹Å‹']ûöÛoã7¿ùM´iÓ&z衈ˆ0`@4nÜ8&Mš”4öé§ŸŽF�Å©§žš8wòÉ'G³fÍbÉ’%Ic‡Íš5‹!C†$�¯_¿~Lš4)Ž8âˆÈÍÍ�=÷Ü3N=õÔxã�7â²Ë.Û¡ïvvY©nH_{î¹gì½÷Þ©n*œµk×F�5õÞ{ï¹¹¹)ì€]Í^{íÆ ‹aÆmó=×_}\ýõÛ<~ðàÁ1xðàm;~üømžw£C=4Þxã�í¾vuV¤ +€€ReggG·nÝRÝFZËÎÎNu @š@šÉÎÎŽ¾}û&Õ?FFFFää䤺 ¶ƒÒLfff4nÜ8Õm�`à'sÕ3ïDÍÿNu�0ú¼£RÝì” ÇkÖ¬Ia'ÀŽÊLu¤ÎòåË㫯¾JÔ³gÏNa7ÀŽT@‹/ŽñãÇÇ)§œEEE‰ó|ðAœ{î¹ñ /Äœ9sbÕªU)ìØ^¶€€4ST¸>>�ùR¢ntX—È̪œÂŽØ�rÊ)ñÎ;ï”zíá‡އ~8""ž{î¹8ñÄ˳5`€ ÍÅw_‘TÀ¦Þ~ûíT·ül �&ÀiB �&ÀiB �&ÀiB �&ÀiB i*##£Ä¹âââtìjŠŠŠJœ+í×v>Y©n(k‘[³VR TL™™%×�­_¿>*W®œ‚n€]Iaaa‰s¥ýšÂÎG i¦RåìhÒéäT·ì222";;; çV­ZU«VMaWÀ®`ÕªUIuvv¶À»1=¤±êÕ«'Õùùù¶�¶¨¸¸8òóó“Îmúk ;/0¤±MC›õë×Ç’%K„À@©Š‹‹cÉ’%±~ýú¤ó5jÔHQGl/[@@ËÍÍ�Ê•+'…9+W®Œ… F�5¢Zµj‘••åÝžP�Eaaa¬Zµ*òóóK„¿•+WŽœœœuÇö@š).*Šu+¿IÔ9Õ÷ˆ €€ +###öÚk¯øôÓO“Vý®_¿>–/_Ë—/OawÀÎnã¯!Þÿ»ë@š)Ú°>¾:>Q7?¾wTÊô¯ó "«Zµj4jÔ¨D °%ѨQ£¨Zµjª[a;XÀƸråÊ©nØT®\Yø»‹²*ˆªU«F“&Mbݺu‘ŸŸ+W®Œ‚‚‚T·ì$²³³£zõêQ£F�ÈÉɱíó.J @Úùîë/J=¿hÑ¢RÏ7nÜø§k`'“‘‘¹¹¹‘››uëÖ�âââ(**²54T`‘™™)ðM`ÒÎÄkO/õü¾×–>Þ_vYFFFTªT)ÕmPF¼ M€Ò„ M€Ò„ Md¥º(kÇß>ªÔó÷ž~h9wåK i&³RV4hsTR Ínµë—z¾qãÆåÛ”3# i&#³RìÞ¨YªÛ ¼ M€Ò„ Mx0¤™¢ÂÂø"oz¢®ÐÏ#3Ëoù�¿ €4S\¼!V|ú¯D½g«CÃoùƒ- Ò„ M€Ò„ M€Ò„ M€Ò„ M€ÒDVªÊ^¥ÊÙ©n€@š©T9'šß'Õm�¶€H`€4!HÞ i¦¸¸8Š ufVvddd¤°#Ê‹øÉÜ]í™hYc÷T·ÎÚ‚ qû¸¼D}m÷ƒ"7»R ;€�ȘSÝÑsDª;€´e h€4!H`€4!H`€4!H`€4!H`€4!HY©n([Y•2¢SË=“j*0¤™¬J™I0‡- aðÖ[oÅ…^Íš5‹ªU«FÕªUcÿý÷�³Î:+ž}öÙ(**Ju‹ìÀ°[³fMôë×/N9å”hذaÜÿý1iÒ¤¸÷Þ{£^½zñøã�ÇÉ'ŸíÚµ‹¼¼¼T· @ŠÙvRk×®�.]ºDõêÕcþüùQ½zõĵ:D¿~ýâž{î‰þýûǬY³âg?ûY<ùä“Ñ£G�v @*YœÇ�ÜÜÜÈÈÈH|ªT©ùË_RÝ;‘+®¸"6lØãÆ�K èòË/�«®º*"" ⬳Ί·ß~»<ÛvB…ŠâÕy_&>…lPQ€S`üøñ±nݺ¤sk×®�#F¤¨#v6ï½÷^<øàƒq×]wEnnîÇÞpà Q³f͈øÏ–ÑÞ [á†âMàâT·@9§Àí·ßçœsNœ~úéqôÑG'Χ:´1bDì¶ÛnѺuëXµjUJ{©èüñ(**Š®]»F¿~ý¢°°p³cwß}÷èÚµk¢ž;wnLž<¹<Ú`'#N�6mÚÄ#�<#GŽŒßÿþ÷©n'aĈ±zõê˜={vL›6-ÕíTho¼ñFDD¬Zµ*y䑸ë_ÿºÅñ�:uJª'MšôSµÀNLLÂW §z5rE·téÒ¤://o‹ã÷Úk¯¤úÃ?,óžØù €a'Ô¢E‹¤ºuëÖ[Ÿ•••ToúŽi*0iéþûï�êÕ«Çã�?¾K>wèСqÔQGEõêÕãÜsÏ�¾}ûnqü¦+†ëׯ¿CÏ€²°héªÒ?‹•øe#këCØï¼óN<òÈ#ñÒK/ÅgŸ}ûí·_tíÚ5.»ì²íškÖ¬Y1räȘ3gN|ðÁñí·ßÆÊ•+#;;;4hGydtïÞ=N<“˶ IDATñÄÈÈÈØâ\\pA<øàƒQ\\\êõ®]»nöÞjÕªÅ#�<=zô(·~·×Ë/¿«V­Š×_=úôéS¦s—Çs5jS§NÝæñ3gÎLªÛ´ió£Ÿ eeßËÆ–~¡”ó›û; `û€"+W®ŒË.»,{ì±€™3gNÌ™3'þïÿþ/N;í´mšoâĉqÒI'ņ J\+((ˆ>ø >øàƒx衇¢uëÖ1|øðøùϾÙùF�õ£ÿ`µjÕªxöÙg·—u¿Û«N�:Q·nÝ2›sg}nQQQLœ81QgffFÏž=wxÞ¥K—Ʋe˶ëž ìðsøñÀ?�¯¿þ:Ž=öØx÷ÝwçöØc�hÕªUÔªU+fÍš‹-Š5kÖÄc�=¶Ms>ðÀIaj»ví¢Aƒ‘““ß|óM,X° ±]Ò¬Y³¢sçÎ1jÔ¨8餓J�ï±Ç‹‘#GFQQQâÜË/¿œü:vì{î¹g©÷V«V- P®ýn¯�lyÀ©xî„ â“O>IÔç�w^™l=|øðøÃþ°ÃóP~Àe¬¨¨(Î8ãŒDø›››·Ýv[\xá…Q¥J•ˆø~K£Q£FůýëXµjÕ6Í[½zõÄqåÊ•ã•W^I:ñÆoÄ�7Þ“'O޵kׯ¯~õ«˜;wnì»ï¾%æ;餓J„­�:uŠ)S¦DDĵ×^Çwܶÿà?q¿¥Y¹retèÐ!vÛm·x衇¢yóæ‰k› bß|óÍ8÷Üs£víÚ1yòä¨T©Òvÿl©zniŠ‹‹ã÷¿ÿ}¢®S§NÜrË-e27»žÌT7�nî»ï¾˜ºL授¸ä’K¶û] ,ˆîÝ»—YÀ�“S93®í~PR @Å .CÓ¦M‹%K–DDD­Zµ¢ÿþ[½§wïÞÛ—¦¸¸8>øàƒø×¿þ .Œ%K–ÄÊ•+ã£�>JŒ)ËÕ¦;ê§è÷¿øEü⿈·Þz+î¼óÎ;vltÐA1pàÀˆˆ˜2eJüÏÿüO¬^½:úöí ˆvjéNR¾�@".C¯¿þzâøä“OŽììì­Þ³-c~¨¨¨(Æ�O?ýtLž<9–.]ºÝ}–§òê·}ûö1zôèøè£�âî»ïŽk¯½6"" ^xa\yå•Ñ Aƒ´yn¿~ýâ�wÞ‰œœœxê©§â”SN)ógÀŽj\·Úf.4.×> "—¡Ï?ÿ}bĈñè£�ÆÉ'Ÿ7ÜpC´mÛv—zîĉã’K.‰ ÄË/¿¼ÙUæË—/�Õ«WGÆ ÜìòÖlˆ?N|/Q_y| ï¨ ¬.CGqDâx„ I+‚7gâĉ[óÔSO%ŽÏ=÷ܘ8qâfÃÔŸÚgŸ}�7Žš5kÆØ±cKS^ýΟ??Ž9æ˜xùå—£J•*1|øðxî¹ç¢nݺ‰w /]º46l˜l+UªãÆ�‹Ÿÿüç±råÊ]æ¹ï¼óNôêÕ+öÚk¯˜2eÊ·¿þúëãºë®ûQ?�>ÖlH|¨8ÀeèÈ#�Œ:uêDÄ÷Aé“O>¹Åñß|óM<ñÄ[�wùòå‰ãnݺmuü¶¬*.ÍWô®]»¶Ô1Ï>ûl,^¼8V¯^ãÆ�+uLyõÛ AƒhÙ²e~øáñî»ïÆÅ_œ¸öÕW_%ý7333o¼ñF´lÙ2;ì°¨Zµê.ñÜE‹ʼn'žuêÔ‰)S¦D“&M¶8~Þ¼yÑ¢E‹íü©Hà2”““ýû÷OÔW_}u|üñÇ›ÞyçŲe˶:ï¿É“'ouü‹/¾¸Õ1¥iРAâxÞ¼y¥ŽÙ¸åqDÄ~ûíWê˜òê·F�‘——Ó§O�æÍ›']ûáJÜ:ôÐCcîܹ1uêÔ½õty>÷›o¾‰ã�?>ªV­S¦L‰}÷Ýw‹ã ãŸÿüg´lÙr›Ÿ@ú—±ßþö·qà�FDÄ—_~�:u*p~óÍ7qÖYgÅßþö·mšóW¿úUâøÞ{ï�ë®».i•íFóçÏ�>}úÄ�!CçÖ¬Y………Ûôœ£�>:qwݺuѽ{÷(,,Œ)S¦D£F�¶8¾¨¨(žþùXµj•ÀTÖÖ‡°=ªT©O?ýttîÜ9¾úê«øôÓOã¸ãŽ‹&MšÄ�kÖ¬‰iӦŚ5kJÜ»`Á‚8ãŒ3""â ƒŠ�FÄ÷ïþõ¯<ð@Çm·Ýüã£uëÖQ¿~ýÈÏÏ�÷ß?>ûì³sΙ3'vÛm·¨U«VT­Z5ýúõ+µ÷3Î8#n¹å–X¸pa,_¾<Ú´i?ûÙÏ¢nݺ1oÞ¼øè£�c/ºè¢hݺu©ó”W¿[²qeõ¶¬°.KeõÜâââèÛ·oL�:5""6l¸Í÷V©Re³«³HoàŸ@‹-bêԩѧOŸxë­·""báÂ…±pá¤qp@\rÉ%qÅWDÄ÷ïÎ5jTDDŒ5*~ùË_Fûöí#"â¾ûî‹jժşþô§(**Š5kÖÄôéÓK}~ëÖ­#777f̘ñÅ_DDÄ�wÞ¹Ù@5777ž{î¹èÚµk|òÉ'±aƘ9sfÒ˜ŒŒŒ¸ôÒKãOúÓ¿ƒòèwKºté&LˆŽ;n÷½;¢¬ž{Ýu×ÅÈ‘#Ô½p@dfZÜPI‰~"ûï¿LŸ>=ž|òÉ8þøã£Aƒ‘��uêÔ‰ãŽ;.~øá˜;wn\tÑEqÐA•¸¿iÓ¦IïÒÍÌÌŒ»ï¾;þùÏÆå—_Í›7�ªU«FNNNÔ©S'?üð¸ì²Ë⥗^Šwß}7&Ož7ÝtS´k×.öØc�ÈÊÊŠ¬¬¬èÛ·ïû>ðÀ#/// íÚµ‹Ýwß=ªT©M›6� .¸ fΜ÷ÜsÏVÆòêwsÎ?ÿüX¹reÒvÔ塬žûcÃ߈°ý3@–Q\\\œê&€ô0oÞ¼hÕªU¢ž;ä¤hÙp÷vÓÚ‚ qû¸ÿ¼ÇýÚîEnv¥v›è9"Õ�"%²„¹s£eË–)ì(ýX �&Ài"+Õ e«RfF´nü_I5ƒÒLå¬Ìè~h£T·@ Ø M€Ò„ Mx0¤™ EE‘÷éŠD}P£Ý£R¦óP€ ͬ/,Žqo~š¨›ïU3*e§°!Ê�å@iB �&l üdfïyz¬l¸_ªÛ€ gݺuñYÍÇõ̽ϊœœœvT4‡~xª[¨°¬H`€4!H`€4!H`€4!HY©n([•+WŽSN9%© b@šÉÌÌŒZµj¥º RÀÐiB �&ÀiÂ;€ ÍÄóÏ?Ÿ¨O<ñÄÈÎÎNaG”0¤™âââø÷¿ÿ�TP1Ø M€Ò„ M€Ò„ M€Ò„ Md¥º`×òÅ_lñú¢E‹¶x½qãÆe× IÀÀv9õÔSwèþâââ2ê€M € ÍdffFýúõ“j*0¤™Ê•+Ç 'œ�ê6HK‚Ò„ M€Ò„w@š)**Н¾ú*Q׫W/23ý›/ ìŒ;v‹×Û´iSN�°)0¤™õë×Ç„ õYg�999)ìH7õë×ßâõÆ�—O#”`9@š¤ 0@š¤ 0@š¤ 0@š¤ 0@𤉬T7”­¬¬¬èÒ¥KR @Åào„ ÍTªT)7nœê6H[@¤ 0@šóÿØ»ÿ¹ë;¿ãïÙùɰCjÈú<Ž�X1>zœ„D¦‘ ÆÔ§¤Ø—p„¤Ò¡þQí_©«ë¨T6‚4‘P+â”æË!6…KŒj¹—kJÁ$¹ÇLÎ ç³ña4»;;Ó¿:É^câàÙùØïy<$Kû±gw_ÿ­´OÏç $áÀ�Ìììl8p`pÞ°aCÔëõrƒ’éõzqôèÑygƃ+ ’€’€’€’¨•äµvíÚX½zué0v:�N|ï{ßœoºé¦hµZ0*Þ �„ �„ �„ �D­ô`¸*•J,Y²dÞ€ñ  æúÿðß"Þý\é0¦Þý‡?Ux£ä h€$`€$`€$`Ȧß�˜>1}&N�:ý~¿ô"FD€læf#žßñüþعsgLOO—^ÀˆÀIÀIÀIÀIÀIÀIÀIÀIÀIÀIÔJ†l¢ñÛk#"â¶Ûn�ZÍ�{€qá7Â�ÍD5bé5±~ýúÂc%W@$!$!$!@6s݈£ÏG}>öïß³³³¥0"µÒ€!;ýóˆWGDÄþý3±bÅŠh6›Ñn· `¡ À�ÍŸþÛÁ‡»?»víœûý~‰EŒˆ+ ’€’€’€’€’¨• Ù'ÿcÄÿ<""þø–Uqÿý÷G³Ù,< €Q€ ›ËÞÑü­ˆˆX²dI,_¾¾ýöÛ .`Ô`HæÊ+¯|Ün·Ë `ä\ �„w@2Ýn7ž}öÙˆˆ¨ÕjqÇwD½^/¼ €Qð`H¦×ëÅ‘#GâÈ‘#ñÜsÏÅÜÜ\éIŒˆ �„ �„ �„ �„ �„ �„ �„ �„ �D­ô`øêõzDD´Z­ÂK%’i4±yóæˆˆØ²eKá5Œ’+ ’€’€’€ ™~¿333133�N'úý~éIŒH­ô`¸fggcïÞ½ñâ‹/ÆÔÔT´Z­Â«ïHBHBHÂ3€�³qãÆX½zué0v:�N¼øâ‹¥gP€w$!$!$!$!$!$Q+=®Z­6l˜w`<ø�0$óO0ãÃÐIÀIÀIx0$ÓívãàÁƒƒóÍ7ßµšùãÀoƒ ™n·œ×¯_/Œ W@$!$!$!$!$!$!$!$!$!$Q+=®f³SSSóÎŒ’©T*ÑjµJÏ W@$!$!$áÀ�L§Ó‰�;wÎ<ð€gŒ êt:¥'P€+ ’€’€’€’€’€’€’€’€’¨• WµZ�uëÖÍ;0`H¦^¯Ç]wÝUz¸   Ï€dæææâ…^œ×¬YÕjµà"FE€dfggcïÞ½ƒóªU«`€1á h€$`€$`€$`€$`€$`€$`€$`€$`€$`€$j¥ÃÕh4ⳟýì¼3ãAÌ“?þYüxúÒÒ3€Ÿ½ZzÀEcë�ËKO8/®€HBHBHÂ3€ ™Ù™éøÞã68ßrçÖ¨7š0*0$Óï÷ãÔ‰×ç�®€HBHBHBHBHBHBHBHBH¢Vz0\qåU“óÎŒ’©Õ±áέ¥gP€·$!$!$áÀ�L¯×‹¿?þÚàüž¥ï‹‰ ÿç `À�Lwv&|ç¿ÎwýáýÑh¶ .`T` …ŸÿìÕóþG®èŸ×ç·ÛíóÞp>` …ýû;ÿ¯qžŸßïŸ_@8_�„ �„ �„ �„ �D­ô€axø;ÿ㼿Æ×Oa @90�•W/;ï¯Ñn/€r\ �„w@2µZ=>ºñ÷ç�0$3Q­ÆûV\Sz¸ jDe IDAT  Ï€dº³3ñýïîœoú·E­Þ(¸€Q€ ™^¯¯ùÛygƃ+ ’€’€’€’€’€’€’€’€’¨• W¥R‰E—]>ï Àx€ ™z£w|ò¾Ò3(ÀÐIÀI¸X0·6~«›o–žpî~ôléÿ¿Õ›K/."0$Óï÷ã�|kp^|ÙoE¥R)¸€Q€ ™é™ÙØùõï ÎStw´š�‚‹ÏHBHBHBHBHBHBHBHBHBH¢Vz0\µj5n»ù†ygƃ ÉÔjÕX¿ö¥gP€+ ’€’€’ð `Hfv¶þýÃó'nú�¨×ýÈ~ ÉÌõzñÏ¿88oø½ë£^p£ã h€$`€$`€$<`�yíçïü“ù�?¥Ýn¿óï\Ô`€¶âÖÏŽôûõûý‘~?àÂá h€$`€$`€$`€$`€$j¥ÃÕj6bÇçÿ ô ~ÉËO~é�òu·o�ž °ÀÚï»ò<>¹=´@~®€HBHBHÂ3€ ™ÎôL<øèžÁyê�îŽV³Qp£âÀIÀIÀIÀIÀIÀIÀIÀIÀIÀIÔJ†«:1ë×^7ï Àx€ ™z½·Ý|céà-AIÀIÀIx0$ÓíÎÅ~ôÒàü»«¯‰Z­Zp£"@2ݹ¹Øðÿ ÎëV­€Æ„ ,˜ã—^‹ ô ;�N'N·¾?8»üŸG«Õ*¸ÎÝäädé pQó `€$`€$`€$`€$`€$`€$`€$`€$`€$j¥ÃÕl6ã¾ûî›w`<À�L¥R‰Å‹—ž@®€HBHBHÂ3€ ™éééøú׿>8ß{ï½Ñl6 .`T`H¦ßïÇéÓ§ç�®€HBHBHBHBHBH¢Vzù½úê«çôºn·{Î_³Ýn¿Ã5�— À‚ûÈG>2ô¯Ùï÷‡þ5àbç h€$¼’™˜˜ˆ•+WÎ;0`H¦ÑhĦM›JÏ o HBHÂÐ,¸C‡�Ó뮺êª^¹ À�ÌÜÜ\¼üò˃óŠ+¢Z­\Ë–-;§×MNN.ðÈM€dfggãñÇœ?÷¹Ï ÀcÂ3€’€’€’€’€’€’€’€’€’€’¨• W£Ñˆ­[·Î;0`Hfbb"–-[Vz¸   Ï€dfffbïÞ½ƒó]wÝ�F£à"FE€dz½^;vlÞ€ñà h€$`€$`€$<X0K—.�ÉÉÉÒ3`ìt:�¸üòËçÉÉÉhµZ0*Þ �„ �„ �„ �D­ô ¯ó­ÿ‹ÿâJÏ€±37;?yöèàüÂ×FµÞ,¸€‹Õ7ïûXé ÀoH€t*ÑZüîygƃ ÉTë�X¹aSéàÀIÀIÀIx0$ÓïõbúOÎÍËÞ• ÿç `À�Lon6þöÀ·çU·*ªÍ‚‹oHBHBHBHBHBHBHBHBHBH¢Vz0\ÕZ¼ï†�Í;0üF’©LTcÉo_[z¸   Ï€dzÝnüÝ ÿsp¾j͇c¢æG>¿Ú™¿ÿ»³þÛ‘#GÎúoív{øc€óæ·Á�L¿?§^ù›Áyéõ ?ò8›'¦î9ë¿­˜:ûçõûýXœ/W@$!$!$!$!$Q+=€rnð¿œõß¹çC#\ ƒ 0ƽ窳þ[»ÝÝ`(\ �„ �„+  ¡j½QzÀ�LµÞŒU·ÿ«Ò3(ÀÐIÀIÀIx0$Óï÷£×�œ'j�¨T*0*0$ÓëÎÄOžxlp^uû§¢Zo\À¨¸          ‰ZéÀpU&ªñÞÜ0ï Àx€ ™‰j-®\uï!éÀÀ‚ùO—~+V_¾¤ô Þ©?{´ôàB±uwéÀ9ò `€$`€$\ Étçzqð'?œo^ueÔªþÏÀ8€ ™î\?üèøà¼þÚ÷F­Zp#ãí@IÀIÀIÀIÀIÀp�{æ™gâôéÓçôÚn·O?ýtôz½^À…¨Vz\ Nœ8�<òH<ñÄñÒK/ÅéÓ§cñâűf͚زeK|æ3Ÿ‰V«µ ß{ûöíqâĉشiSÜzë­±nݺX¾|y,Z´(:�N?~<>ßýîwcÏž=Ñétâ•W^‰E‹-È.\0ü�?þxlÛ¶-Þxã�øÄ'>_úÒ—brr2~úÓŸÆC=ŸÿüçcçÎ�±oß¾X¹rå‚lxóÍ7ã±Ç‹Ç{ìm_×h4â©§žÆ” ocß¾}q÷ÝwÇÜÜ\lß¾=¾úÕ¯F¥R‰ˆˆõë×ÇÖ­[cÓ¦M±o߾ذaC<óÌ3ñþ÷¿¿ÈÖË.»,vïÞÿøÇ‹|Êó `8‹×_=î½÷Þ˜››‹+®¸"~øáAüýêõz<úè£Q¯×ãØ±c±}ûö"[?úÑ�ÆsÏ=›7o.òý¸0Œeþâ¿­V+*•ÊàÏ%—\_þò—KOã²cÇŽ8qâDDDlÛ¶-.½ôÒ_ùº«¯¾:î¼óΈˆ8xð`|ó›ßú–5kÖÄæÍ›£ÝnÇ%—\Íf3V®\Û¶m‹'Ÿ|2øUÆ2ßpà ñµ¯}-¾ñ�oľð…ÒsvïÞo½õV<ÿüóqèСÒsÆÚÓO?=øxíÚµ¿öõW\qELNNFDD¿ß�ýû÷/Ø68›ZéüÂ/¿¹ô»‘ÇÝáÇ_wÝuçô9×^{m;v,""~ðٻ󸪪ýÿãofPq¸jâL¢9%9¤Y‰c9d™•–ššQÚÕÌ4Ókå--‡’ §œMÍ똚Ž)Ž8‚¢2s~øs9€LG¯çãqíµ÷Úk}ö>[âÁg¯µöï× Aƒr%6 ?3™LJJJ’Éd²t(€ÿÏÆÆF¶¶¶,'g%H)$%%éÌ™3F¹dÉ’™:/y½Ã‡çx\�Y1q‰úzýq£<¼C-9;ÚY0"@A¯[·néÖ­[Š��'ù �!988¨xñâ*^¼¸,²©@N�Ü7{öl¹¸¸háÂ…ù®ß .(66Ö(—(Q"Sç¹¹¹Û!!!ÙîrBL\¢ñÀRbccuñâE+44Tqqq$à1e2™§ÐÐPëâÅ‹fùäVŸþûï¿õÞ{ïéÉ'Ÿ”‹‹‹\\\T·n]ùùùÓõfÖ¡C‡äçç§:¨jÕª*Uª”œœœäââ"OOO½ñÆZ³fM¦~�4h�1”þÁgÛ¶mÆñ^xÁìXò�‹‹‹–/_ž§ñfÕ–-[tçÎíØ±#ÇÛÎí~¯\¹bV.R¤H¦ÎK^ïúõëJLÌù¤ËÁƒÕ¿yxx¨P¡BrqqQ£F�ôÙgŸéæÍ›9Þ `:ãŽùçüy³dF||¼.^¼¨»wïZ:@6ܽ{W/^T||¼¥CAYíÐQQQz÷Ýwµ`Á‚T Π  iÆŒêÖ­[¦Ú[¿~½:uê”fR/..Nÿüó�þùçýøã�ªW¯žfΜ©¦M›>´½€€€l'^ïܹ£Õ«WË××7ÏâÍ*wwwIRéÒ¥s¬Í¼ê÷Î�;fåÌNqàèèhl'%%éÖ­[™ž>:#ñññ9r¤üýýÕ·o_͘1CeË–UXX˜¾ýö[ýûßÿÖ7ß|£eË–ÉÇÇ'Gú\•ß]a¾#E™Ñ{2’˜˜¨��%$$X:À#HHHPHHˆ*Uª$;;–™Ë/¬2¦víÚéÀ�ƾ%J¨víÚrssÓ¡C‡tþüyEGGkÁ‚™jsΜ9fÉÔ† ª|ùòrrrRDD„‚ƒƒ�7`:¤V­Z) @�:uJ³½ è×_URR’±oË–- •$µlÙReË–MóÜ¢E‹jôèÑyoV=HÀæu8'ú͉°$ÅÄÄd;†”~ùåuèÐA§OŸN5%õ /¼ =zhÙ²ezá…´lÙ2½øâ‹�Üç�7Œç1³‚ƒƒ¹_äW¯^M5m¨­­­Š+¦bÅŠÉÁÁA¶¶V?A%äIIIŠ��×íÛ·uûöm³üUll¬®^½ª *X0Bd…Õ%€“’’Ô«W/#ùëìì¬É“'ë­·ÞR¡B…$ÝK5 @o¾ùfªdßø¸¸ÛÚºu«Ù>IÚ¹s§Æ�§ÀÀ@ÅÄĨwïÞ:zô¨*W®œª½N�:¥J¶úøøÓ@ûùù©}ûö™¿ð\Ž7-QQQjÑ¢…Š)¢üQžžžÆ±‡%b÷îÝ«×_]¥J•R```¶ÞÉí~ïÝ»gVÎì/¢)ß~ΩyñÔ©S'-]º4Íd´���æÌ™£Í›7+22R}úôÑÉ“'U¦L™GêwæÌ™úôÓO© <‰‰‰ŠŠŠ2Ûçèè¨J•*ÉÞÞêþ$ VÃÑÑQEŠ‘»»».\¸ ¸¸8ãXTT”œOXÝ+Vßÿ½%I… Ò¦M›4|øp#ù+ÝO˜õêÕKË–-Ëô/Ÿ}ö™Z·n-OOOÍŸ??U2U’š7o®M›6©uëÖ’î'gÍš•W•uyoHHˆ‚‚‚´{÷n5lØPßÿ½qìAòñÁ“’’4iÒ$5oÞ\ÇŽÓÎ�;³½öGn÷›r$of¥œßÙÙ9[í¤´cÇŽ‡&puuÕ«¯¾*IŠŒŒÔÈ‘#s¤o «RþýÍÆÆF+V$ù ù„½½½*V¬(³ý¬éžXU8!!A“&M2Ê&LÐ3Ï<óÐúíÚµÓ+¯¼’©¶+Uª¤Í›7ëĉéžckk«wÞyÇ(ÿý÷ß™j?§åE¼µjÕÒ¦M›Ô²eKÝ»wOï¼óŽ:vì¨ÐÐP³‘¸!!!zî¹ç4fÌ%&&ªcÇŽÚµk—Š+–­kËí~ .œ­¸’¿ #ÝŸª;'”)S&SÓP7hÐÀØ^²d‰ÂÃÃs¤ +RŽþ-\¸p¶],ÃÑÑ1U¾$³³êÂò¬ê•«]»véòåË’$777 :4Ãs^}õUýüóÏÙêÏd2éŸþÑéÓ§uæÌ]¾|YQQQ:{ö¬Qçqz"7âmÛ¶­Ú¶m«}ûöiêÔ©Z±b…êÔ©£1cÆH’¶mÛ¦�>úH÷îÝÓk¯½¦Ñ£GëÉ'Ÿ|äkÉÍ~³›˜ŽŽŽ6¶mllT¤H‘lµ“]+V4¶ãããµ|ùr 4(Ûí tèÐ#µWºtéTk) †sßv5ßñâ,€|Çd2)11Ñl_òåùùGÊÀ‰‰‰2™L©¦†ÆãǪÀW®\1¶kÔ¨‘ãí/]ºTãÆ�Ó‰'r¼íÜ`‰xoü’—˜˜¨¸¸¸T¿ô=ÎýV¬XQÆš¾·oßÎÔyÉÀ9ñüpÇŽ3¬Ÿ™QÅiI>¢7&&&Í:«W¯VHHˆîÝ»§•+W¦Y'¯â-_¾¼¼¼¼äíí­è�wÞ1Ž]¿~Ýì¿¶¶¶3fŒvîÜ)///=ýôÓ©œú}ñÅåââ"I:uêT†#Ê“¿Hàéé©úõëgùºRòöö–‡‡‡nݺ¥ÿüç?Öß·oŸ±íêêªÎ�;?r È_¬*ìä䤡C‡åQ£F¥™Üo¼¡ÐÐÐ Û­Zµª±˜aý�7fX'-åË—7¶�;–f�SKR•*UÒ¬“Wñ+VLGŽÑîÝ»åééiv,ùHÜäš4i¢£G�êÿû_¶§žÎ‹~ *¤nݺ倀€tëûûûÛÆ K·î”)STªT)Õ¬YS»vízh½èìÙ³Z¶lY†ñFGG›­)Iºvíš|||R%8#""Ô·o_ýöÛo™j³wïÞÆöwß}§�?þØl”í'NœPŸ>}ÌFkFGG›M œžäSü~õÕW:räˆQ6™Lš>}º–/_.éþÂÛ]ºt±h¼éy�€}07¯äd¿£G�6FeOŸ>]‘‘‘iÖÛ²e‹±þo�:u4pàÀ‡¶ùçŸÊÏÏOááá:uê”z÷î­¤¤¤4ëV¨PAÆ Ó°aÃtéÒ¥tcõ÷÷7âëØ±£FŒ‘áõ°^‰II:tþ¦ñI|ÈÏ€õ±ºp¡B…´lÙ2•)SF’tñâEµoß^ÕªUSÇŽÕ¦M•/_^ .Lunpp°zõê¥^½zéóÏ?7ö7kÖLo¾ù¦¤û‰ØÉ“'«bÅŠjÖ¬™|}}Õ¶m[U¬XQµjÕJ5¥tPP�Š)¢ýë_ªV­š~ú駇ÆÞ«W/cônxx¸êׯ/ooouêÔIÕªUÓÈ‘#�ºo¿ý¶êÕ«—f;yozŒ¬ÎÌ뜔“ýzzzÏAxx¸ÙèònÞ¼©!C†H’\\\`6•wJû÷ï7+_¼x1Íäü“'OÖO<¡V­ZéèÑ£iÖ9räˆüüü$݉à矖��MúÀªÅ'˜´rïEãŸ`²tH€<òðLU>V«V-ýïÿSŸ>}ŒuQÏœ9“jך5kjðàÁÆ”½áááÆT¿zþùçÕ¸qcIÒ÷߯¢E‹ê›o¾QRR’¢££µ{÷î4û¯W¯žœ��µgÏIR\\œ®^½*Iš:uª �æyÎÎÎZ³f�^xá]¸pA‰‰‰ú믿ÌêØØØhÈ�!úæ›oÒ½yozÚ´i£uëÖ©eË–Y>÷Qät¿£G�–ÉdÒØ±cµ`Á]¿~]ƒV™2e¤/¿üRgΜQùòåµjÕ*côùÃ<ýôÓfå*UªëV§ÅÉÉI[¶lÑ€Ô°aC½òÊ+êܹ³Ê•+§ððpmÚ´IsæÌQ||¼ÆŽ«ñãÇg{jmË¥K—tùòåT·DÁ��� íÛ·ËÛÛ[… ²t8r��Éd²ÚaA‰‰‰Z²d‰.\¨Ã‡+44TÅ‹WÆ Õ³gOõéÓGIIIjÔ¨‘ÙtË’T­Z5ýõ×_*Y²¤Ùþ   Í�;Wüñ‡.^¼¨ÄÄD+VLU«VU£F�Ô¥KµjÕJÑÑÑš:uªÖ¬Y£³gÏ***J’ôùçŸkôèÑ鯥ÿþ÷¿Z±b…Μ9£ØØX•/_^­ZµÒÀ��¤tfäE¼App°fÍš¥ÀÀ@�9sF111*Y²¤jÕª¥Î�;kРA*\¸p¦Úš6mš¾øâ •-[Vþþþjذa¦Îûý÷ß5gÎíÚµK¡¡¡*R¤ˆ<==õüóÏkàÀ�ªT©Ò£\bŽ8vì˜j×®m”�þ§“¼*ºZ0" `ЉKÔ+ÿïÿk~]êÈÙ‘—Cðºû[:ùDBB‚NŸ>m¶¯zõêéΚ‡¼c2™´wï^­]»Vk×®Õ¡C‡Ô¿ÍŸ?ß`7mñ IDATÒ¡Y�Ó§OkÞ¼yÚ¸q£BBBtçΕ)SFÞÞÞzç�wäããc‘¸.^¼¨Í›7kÓ¦MÚ´i“"""tîÜ9yxxX$<Þrëgzª\ÂÑ£òòòz¤6aΪÀò `àñ@9Ž0€LÊéd�ŸŸŸ¦L™’æ± *hÿþýÆr€™6mš>øàƒ ëM�:U£F�ÊRœùÁ/¿ü¢áÇëÆ�fûIç¼™3gjäÈ‘êÒ¥‹Þ}÷]…††êý÷ß×ùóç�:‹-Ò+¯¼’g1͘1Cß|ó�Ξ=›ê `< àüËêÖX‡áÇkëÖ­5jTª„Ã¥K—äëë«øøøLµÕ¿mܸQ_~ù¥*W®lvÌÍÍMãÆ�Ó† Ô¿ÿ‹ÿqâëë« .(00P–Çj-Y²Dï¾û®Ê–-«E‹©yóæêÒ¥‹åêúƒe6lØ�§q 8P'OžÔ™3g2\Ê@þGðX*[¶¬|||4uêTýþûïrrr2;¾sçN½ûî»™jËÝÝ]Ï?ÿ¼>øàíÝ»×XþÏÆÆF¿ÿþ»Æ�¯öíÛËÝÝ=ǯãqàèè(gggµjÕJuêÔ±t8VéÎ�;zï½÷d2™Ô¶m[ÙÚþ_ ¦J•*Z¾|¹Ê•+§ *hÈ�!y[áÂ…åàà *Uª¨OŸ>yÚ7²æêÕ«–V€0à±×ºuk 6,ÕþÙ³gkÖ¬YYj«T©RêÔ©“$éÙgŸU£F�r$ÆüÂÅÅÅÒ!X¥… Sl§55y«V­tåÊ…„„ÈÛÛ;¯Ã3dvÚtä½�7jìØ±–V€0 _(T¨Pšû‡ ¦íÛ·g©­Óà²î$rÊêÕ«�m;;; F’¾Ç9¶‚ìÒ¥KêÓ§�- ¬ `@¾R«V-³r||¼ºuë¦���L·ñ`=Öäë²�âØ±c–ùTLLŒºwï®°°0K‡+A�¯Œ5JÝ»w7ÛwãÆ uéÒEÑÑÑ™jÃÑÑQ’äàà�ãñ¡` µtȇÕ¯_?íÙ³ÇÒ¡ÀŠ�ä+666ò÷÷W“&MÌö8p@´PT(èbbb,ò™Û·o«{÷îZºt©¥C�•! €•q´·ÕÛÏ×4>Žöüï`} *¤U«Vé‰'ž0Û¿xñb}ùå—�Ôö´iÓdcc“êóÚk¯™Õ‹ŒŒL³ž���Æ�ÿÐöãââ´víZõë×O�76öß¾}[Ó§OWË–-Uºti.\X^^^úòË/kÖ†ÉdÒúõëÕ³gOU©REÎÎΪP¡‚† ¢›7ofùšM&“Ô¶m[•,YRÎÎÎòððP¿~ý²´¾²ÉdÒòåËÕ»woU©REEŠ‘«««¼¼¼ôþûïgjšäèèh-^¼XíÚµ3úŽŽŽÖ„ T¥J-ZT/¾ø¢"""²|�)mß¾]ÇWýúõUºti9::ªL™2zúé§õÉ'ŸèÌ™3=wþüùfß¹Éd2Ž}úé§>?Ùq÷î]}÷ÝwzþùçU¡B999©téÒòööÖ矞kSÇÇÇËßß_�;wV¥J•T¨P!¹¹¹©~ýú3fŒ.\¸�a×®]Ó·ß~«gŸ}V_|ñ…±ÿðáÃ:t¨jÕª%¹¹¹©M›6Úºukª6"""4cÆ µhÑÂø7Ò AÍ›7/Ó×ò¨÷0..N›6mÒ�!CT©R%]ºtIÒýgÅŠêСƒÊ–-«B… é©§žÒôéÓ•���ª�7n¨Aƒúí·ßÌöûûû›=7õêÕKu®ÉdÒ¯¿þª^xAeÊ”‘½½}ªç-­óPpða¬Œ­­�ʺ2>¶¶6– €\Q¶lY­]»V...fû?úè#mܸ1Ûíöïß_›6mRÛ¶mÓ­W¬X1iíÚµòññI·îÝ»wµ`ÁõèÑCîîîêØ±£,X`LüǨfÍš9r¤þ÷¿ÿ)44TÑÑÑ:~ü¸>üðCõìÙS‰‰‰’¤S§Né¹çžÓ‹/¾¨%K–èܹsŠ��ÕåË—5sæL5oÞ\·nÝÊôõFGGË××W½zõÒæÍ›¡ØØX]¸pA ,гÏ>«7ß|3Í$Vr§N�’···>ùäµoß^¿ýö›õá‡êÒ¥Kúúë¯U¯^=M˜0!Õ¹’âýû÷W™2eôꫯjÓ¦MJLLÔ�;wÔ¶m[�7NçÎ�ÓÝ»wµ~ýz͘1#ÓטҹsçÔºuk=ûì³:xð >úè#mÚ´I›6mRÿþýuôèQMœ8Qžžž6l˜âââRµñòË/ëĉÆ'¹!C†˜;qâ„&Ožœíx%iݺuªY³¦Ö­[§÷Þ{O6lІ Ô­[7íÝ»WcÇŽ•§§§Ö¬YóHý¤´gÏÕ©SGßÿ½úôé£5kÖhÓ¦M4h�Ž?®I“&ÉËËKsæÌIuîéÓ§5iÒ$5kÖLåË—×{ï½§íÛ·+&&F úàƒÔ Aý÷¿ÿÕ‰'tçÎݼyS���jÓ¦�ÙÈØE‹©F�6l˜vîÜiü9xð ¨�?þ8WïáŠ+Ô«W/¹»»«]»vš9s¦.^¼¨„„…„„¨M›6òõõÕ† týúuÅÄÄèÈ‘#9r¤^yå•Tí•(QBk×®Õ‰'ô¯ýËØß¥K³çfåÊ•fçÅÆÆªcÇŽêÝ»·"##õÝwßiÿþýúóÏ?5jÔ(cz{lö–€ìªS§Ž~ýõWuêÔÉH�&%%©W¯^Ú»w¯ªW¯žå6ÝÝÝÕ¶m[5hÐ@îîîf#;“³µµU�:uT§NÕ¬Y3ݾnܸ¡°°0ÕªU+UBgÞ¼y>>zóÍ7Õ¶m[]¸pA3fÌÐßÿ­ 6˜½lP¼xq/^<Í>J•*%OOÏlÅ—–… êµ×^Ó�!CôÍ7ߘkÕª•ÜÝÝ5aÂ…‡‡Ë××WkÖ¬Q»ví¹ßÀÀ@uêÔIíÛ·W@@€ìíÿ/­ôÌ3ϨF�zýõ×u÷î] 4Hvvvzýõ×�:Ç�—«««J–,©¤¤$ctt´:uê¤hÔ¨QjݺµÊ—/¯àà` 6L.\PRR’Þzë-µk×NŸ|ò‰V¬X¡Ñ£G«yóæruuÕ‰'4vìX� Fòµ:諯¾2Û©.]º˜%³ÊÍÍM¥K—ÎTÝÊ•+gxüý÷ß×øñãÕ©S'cÿåË—5uêTøà5kÖLµjÕ’¯¯¯þøã#𔔤Ÿþ9Íkɉ{زeK5iÒDo¿ý¶Ùy={öÔ‡~¨ÀÀ@uëÖMuëÖUÇŽ(777£ÞìÙ³Óì7+’’’4wî\IR»víÌ’¿´oß^ xä¾�¿‘ä{ï½÷ž† b¶ïøñã�œ´K+Á’–äÉ­ŒT­ZÕØNHHÐü¡Zµj¥ÙfïÞ½�ò¥K—ôå—_ªuëÖi¶Û·o_cûÊ•+:{öl†±œ9sFË–-ÓgŸ}¦’%KšÅøË/¿¤JvýûßÿNµñĉ¬Ö­[§; ú¥—^2¶“’’Ò\·õÉ'Ÿ4+‡††ê‡~0îo‡¬‹/ê©§žÊðúR:t¨1íöÈ‘#ÓýÞjÖ¬)???£¼zõjcDv^zë­·§7Þx#Í$¬t:ògŸ}Ö(_½zUëÖ­{¤~GŽ©›7oªgÏž*Q¢DšulmmÕ¡C£|ïÞ=-^¼8U½âÅ‹›%CŸ}öYÍž=[… JU·qãÆªQ£†Q ÓêÕ«ÍΠB… fÓ¯?l½êœ¼‡eË–5+ùå—:thªz%J”P·nÝŒòž={ÌFAgGXX˜±FqddäCë�1"ÍPp04€\s¸lOEU¬bé0€çÁš9¼ôÒK¬ý€…x{{[: ”o¾ùFgΜÑï¿ÿnì[½zµÆ�—溳–’2éU±bŇÖM™­V­ÚC릜6688Ø,Ùœ///³ÄlJÓ§O×úõëuñâEI÷§²^±b…‘˜¾{÷®1*8£u�6lhVÞ½{wª:)ïÍ믿n6=î£8zô¨V­Ze”Ÿþù Ï>>FBèîÝ»êÒ¥‹öíÛg¶Ö­5Ë©YÁªV­ªâÅ‹ëÖ­[’¤ððpãØ… Œmww÷T£¯'×®]3¶ïÝ»—éójÖ¬iV¾qãFŽÅ”‘ä÷×ÃÃ#U,yÑoùòåëï5#–º‡¹¥qãÆúõ×_Õ»woc=îÕ«WkãÆ�1b„>þøc-ZÔÂQÂÒ˜`už~úiùûûËÆÆÆØwöìYõèÑØÚ™cccc¶N±£££±‘æöãèÎ�;ÆvTTT¦ÏK9 uV’Ç�ÊR÷7?}¯±¦kyàå—_ÖŽ;T£F c_ll¬&Ož¬š5kjùòåŒ�À«Ô£GM˜0Ál_`` F�e¡ˆò¯äk²&_;7ù4Îy¹6nv”(QÂØŽ��ו+W2u^‘"EÌÊ­›œ“,uóÓ÷škº–ä5j¤Ã‡kâĉfSš_¹rEݺuÓÛo¿ÍË. `€Õ;v¬úöík¶ï믿֢E‹,Qþol'Ÿ8ùtÚ���Yn÷îÝ»�XTªTɬ|èСL�—|ä°¤<[ÿWz´ûoö½åU¿RÞŽ’Έ¥îa^pvvÖ˜1ctîÜ9�9RÎÎÎÆ±~ø!Õ 0(8H¬ÚܹsõÌ3ϘíÛ¼y³…¢ÉŸÂÂÂŒíçŸÞØNž Öü‘é6×®]«~ýúåL€™àããcVÞ¾}{¦Î»|ù²±íèè¨æÍ›çdXéJ~ÌÖ_ÎÈG}¤ï¿ÿþ‘û Ô?ÿü“és¿ýö[}òÉ'Ùê77Xê憰°0µk×.Õ~777M›6M‡V�:uŒýÓ§O¬’ñÈ;$€ùƒ‘x Y:ÏÑÑQ¿ýö›ªV­šå>“¯!œ^¿Y�)?‰ŒŒ4¦Î­\¹²YêÙgŸ5«;tèPÅÆÆfØæéÓ§Õ¯_?½ýöÛ9kz^~ùe999å_~ùE&“)Ãó’�îܹ³ .œ+ñ¥%ùý�ŠŠÒ|�©ó–.]ª~øA}úôyä~M&“œ©{µsçN}ðÁ4hP¶úÍ –º‡Y‘üçLFÓ6oß¾ý¡#çkÔ¨¡�7Ó–ß¹sGÁÁÁ9(ò À€|áAÒ#唼™áææ¦uëÖÉÕÕ5Kç%_ÿõôéÓ­wìØ1³rf’eùÅŠ+Œë™0a‚ÙšªM›6Õ“O>i”Ož<©W^y%Ý„xpp°Ú´i£ ¨mÛ¶¹x åʕӛo¾i”/\¸ U«V¥{Nbb¢Ö­['I²µµÕرcÓ¬—”””n9»úõëgv¿úé'MŸ>=ÝsÖ¬Y£¾}ûêÃ?4[÷8+ºtéb6uò–-[4|øðtŸë½{÷ªcÇŽzõÕWU³fÍlõ›,u³"ùÔÍ�PŽŽŽÖ²eËz¼\¹rjݺµQfà‚‰0 _x0 õܹsÙ:¿fÍšZ¾|¹2}NòéT÷íÛ§�;w¦ªséÒ%õïßß,¹|íÚµ‡¶cVN/©–2‘šÞš¹)ÛĮ́äŒÕ111š2eŠ$iÀ€iކüì³ÏÌÊ+V¬P£F�´nÝ:³õS¯_¿® &¨qãÆŠŒŒÔ¬Y³Rµ•2æèèè ¯!+&Mš$OOO£|X/½ô’\\\äáá!WWW•-[VãÆ�SLLŒT½zõ ¯á¯¿þJ³ÏìrqqÑêÕ«åáá!I:sæŒú÷ïŸfôèÑ£zÿý÷%Io½õ–>þøã‡¶{ðàA³òîÝ»s,æ/¾øB 40Û·lÙ25nÜXÅŠSåÊ•U¸payyyiÞ¼yzâ‰'´bÅ ³Q¥éÅvòäÉ4ë >\:t0Û·uëVùøøÈÅÅE•+WVÑ¢Eåáá¡éÓ§«páÂZ¹r¥Ùóõ@XX˜nܸa”Ó{æS {è3*eî¹ÏÉ{xõêU³rÊärgÏž5+ß¼y3Íz-Z´0¶CCCÕ¿íÝ»WëÖ­S‹-R%Žÿùç 2$Í„òž={´k×.IÒĉåèèøÐø`½ìÆ�?ÞÒA°¡¡¡f¿<ûúúæÉôÌÙÙÙ©F�ÆÇÎÎÎÒ!P`U¨PÁÒ!�§’’’R%8ÜÜÜùåäèÍ7ßÔÑ£G%ÝŸ"õøñãª[·nšÉ¦Œ4hÐ@÷îÝÓ®]»äãã#Ÿ‡Ö­Zµªnß¾­={öH’bccµ~ýzýðÚ?¾8 ¯¾úJC† ÑâÅ‹�i¢ííí%“ɤ† êÞ½{:|ø°~üñGÍ™3Ǭ�“'Oª\¹rJLL”›››tìØ1íÙ³G&LPXX˜Ù½(^¼¸ìììäêê*;vL«V­ÒرcÍ’QGŽ‘«««’’’T¢D cäsóæÍ¤³gÏ*&&Fþþþºqã†u÷î]]¸pA+W®Ô€täÈMž¹ìÞÃÑ£GkñâÅiŽF.[¶¬š6mª+VH’:w[·š%¨V­šÞ~ûíTÉÙ½{÷êý÷ß×�äêêªfÍšiôèÑzúé§�:éý[±³³SéÒ¥åãã£áÇ«I“&iߘ,ÈéŸé¤Ì%=z”©ªs `9†0`Ž0  É­d ï‘οX¬¯]`e’’’Œék$©L™2�¼.   €•‰��׺uëŒrß¾}S­­°N +A¬ `°$€ÀJØ[:¬ÁÕ«WSí;þ|ª}¹  À" @èÚµk¦ê™L¦\ŽP�14X À`%H€•  VÂÞÒ€œeoo¯yÄEv IDAT6mÚ˜•ÀÊØÙÙÉÃÃÃÒaPà¬X±"Õ¾úõë[ @AF€P®\¹Tûx) �×X¬ `°L €•‰��ןþi”}||äàà`¹€y†0V&))I.\0+ ¦€+A¬ `°$€ÀJ�+A¬„½¥9Ëd2)..ÎÒaX-GGGÙØØX: H `¬L\\œV¯^mé0¬V§N�ääädé0 ML V‚ÀX-ZÔ¬ ®Ý»w[:«Ñ´iSK‡" €•qttT¯^½,,àÌ™3Ú½{·®^½ª¤¤$•+WNM›6UõêÕ-€lé02´gÏ}ðÁÚ±cGšÇ}||ôÝwß©V­Zy€¼F€ÀÁÁ�°•úá‡4dÈ™L&Õ«WO•+WVLLŒ>¬+W®H’þüóO5iÒD›7o–···…#�›l-²gùòåzûí·åëë«Ó§OëàÁƒZ±b…Ö¯_¯K—.iÑ¢E*Z´¨$éîÝ»zõÕWgá¨ä&ÀX“ɤ¨¨(ãc2™,rAXX˜¨É“'+ @UªT1;ncc£W^yE³gÏ6ö�={V[¶lÉëPä!ÀX™¸¸8Þè°NS¦LQß¾}åçç—n½^½z©T©RFùرc¹ b `€|&))IAAAZ½zu†umllT­Z5………I’ *”Ûá° ÀrMݺuåååeé0€'&&F[·n5ÊO?ý´œ��-rš­­­6nܘéú·oß6¶ëׯŸ!xL04€‹��Õùóç%IM›6UÓ¦M-€\EÀŠýú믺wïžJ—.­ŸþÙÒáÈe$€¬Ô•+W4fÌyzz*00PÕªU³tHrkX¡S§N©[·nº{÷®Ö®]«Úµk[:$y€ÀV$**JS¦LQƒ täÈEFFªQ£Fzë­·tûömK‡ —1@®©=q­ävÈÒayÎôí«–PPP�fΜ©_~ù%U¢711Q³gÏÖÖ­[¨Š+Z(J¹�0€¸sçŽ4h êÕ«ëòåËÚ»w¯vïÞ­¤¤$£ÎéÓ§Õ³gOíØ±C¶¶L X#ÀV Y³fjÖ¬™Ù¾��ýûßÿÖüùó�}»wïÖÊ•+Õµk×<Ž@^  €•±··WûöíÍÊ(˜*V¬¨Ÿ~úIO=õ”FŒaìÿå—_HVŠ¿`eìííåíímé0ðyÿý÷µnÝ:J’öîÝkáˆä&w(ll߸q‘ÈM$€ €ä³ÆÙÙÙY0¹‰0@àîînl—-[Ö‚‘ÈM¬ €•‰��7Ör‘¤Ö­[ËÁÁÁ‚àqpïÞ=c;ùh`Ö…0V&11Q{öì1Ê>>>$€ ãÇ�Û=zô°`$rS@Ë—/—$Õ®][/½ô’…£�[HäCׯ_×úõëuõêÕ ëž;wN?üðƒ4oÞ<ÙÚ’"¬S@PÄÇÇ[:„|éq½o¡¡¡zòÉ'!{{{ ký `€|ªJ•*ªR¥Š¥Ãð! €•qttT§N�,†Õrtt´tðP$€°2666rrr²t `âw°ŒÀÊ8;;küøñ–`Œ+Á`€õ¹jÑîÏŸ?oÑþ=<<,Ú?ÀrH¬Ï‚÷-Ú}e ÷o2™,Ú?Àr˜¬#€°2111úâ‹/Œ²ŸŸŸœ��- ¯0¬ `°$€ÀJ°0Àúôýʢݟ›ÐÅ¢ý .ÀëSÌÝ¢Ý{xxX´ÿ˜˜‹ö°¦€+A¬ `°$€ÀJ�+aoé@β³³“···YP0�ÀÊ888¨}ûö–`L V‚0r�ÉdÒÂ… ÕªU+Õ©SGU«VUýúõõÅ_(<<ÜÒáVƒ) �«bccåëë+“ɤY³f©fÍš’¤�7êå—_Ö¤I“ô믿ªC‡ŽÈÿ €•IHHО={ŒOBB‚¥C@7yòdÅÇÇkíÚµFòW’Úµk§�***J={öÔµk×,%`H`eôûï¿À°4mÙ²Eo¼ñFªcÏ<óŒ$éÎ�;Z¹re^‡XÀÈUaaaJHHÐO?ý”j½ßbÅŠÛwîÜÉëЫÃÀX“ɤ¨¨(K‡aµ\\\dcccé0ò•1cÆèóÏ?—¯¯¯ÜÜÜÌŽ…„„ÛµjÕÊëЫC+¥�Z: «5wî\³Q«È˜ŸŸŸüüüÒ<¶}ûvIÒO<¡¶mÛæeX€Ub h¤® &ÈÛÛ[¥J•’£££ÜÝÝÕªU+Íœ9S111�Üǵk×´|ùr988hîܹrppÈ�È�‚�ÀX±Ý»w[:«Ñ´iSK‡�%Û¶mS—.]4wî\ùúúféÜÕ«W«_¿~ºuë–Z·n­ï¿ÿ^*TÐÙ³g5cÆ 2D_ýµ6lØ ªU«f+¾k×®©gÏž*Z´¨æÏŸÏè_ ‡�°"÷îÝÓŒ34~üxÅÆÆfy=è 6¨k×®JLLTÿþýõÓO?k{{{«{÷îêܹ³6lØ mÛ¶MUªTÉTÛ·nÝÒsÏ=§ÄÄD�9sF¥J•R@@€Z¶l™åë�6ÀõêÕ“½=i�¬JHHСC‡,ÆC™L&EFF*,,LÇ�×ü¡åË—ëÚµkÙj/44T}ûöUbb¢J–,©o¿ýÖHþ>ð`ºf]ºtIýû÷7ÖñÍHñâÅuàÀ#ö¥K—ªC‡jÑ¢…æÍ›§ *d+nÿ‡Ÿôööö¬¯j…üýý5`ÀI÷³^^^zõÕWåïﯰ°°,·7~üx…‡‡K’úõë§¢E‹¦Yï_ÿú—:uê¤åË—kÇŽZ²d‰zôè‘¥¾lllÔ£G�?^~ø¡5j¤¿þúK•*UÊrÜþ�­¥@ötîÜYÇ�×åË—£ƒjÚ´i*R¤H–ÛŠˆˆÐ�?þh”ßxã�të?H­ùóç§YçÞ½{ÆvÉ’%3Õ7€´‘àÿ±wçñU•wÂÀ Y �(û" "› .-Ô mk|[«T[kGé¨omiu¦jµÕâtêkǪSçí LëÛº´Pi§Jmuºà†¨­Õ RY,K; YÎûïp!�›�ä&7ßïç“ç¹çy~çw¹yNî/çèàêêêbÙ²e©v¦Eؽû5tuoYYYDDuÔQqùå—ï·>I’X½zuDDtéÒ%ÆŽ›qÞÀþ€:¸•+WFUUUª�és…{öì™Z^µjU½}þ×ÿú_Ñ¥K—xòÉ'ãä“OÞoýüùó£¢¢"""®½öZWÃ!RèàÖ®]›ÖîÚµkFãöî·nݺ¨­­Ý¯Ï§>õ©8ÿüóã /L»Êø}÷Ýw_DDœ}öÙqç�w6&m ÙNh^UUU1}úôTûÚk¯�âââ,f@[·}ûö´vaaaF㊊ŠRËuuu±eË–ý®àÍËË‹Gy$î¼óÎ8í´Óâ‚ .ˆñãÇGqqqüüç?�¹sçÆ­·Þßüæ73Þ.Ð0`È1I’ÄæÍ›ÓÚp ÍQŽˆ¨¬¬¬·_AAAÜvÛmñÕ¯~5žyæ™X²dIÔÖÖÆW\?ýéO£[·nMKØ�0@·sçδv~~fOÝ÷⃽Ÿ#\Ÿ’’’˜8qbLœ8±q ó `€nß+y3U]]�Öîܹss¤`€®¤¤¤IãvïÞ�Öv+gÈ>`€®¬¬¬IãvíÚ•ZÎËË‹®]»6WJ@)tpƒNk×ÕÕe4®¢¢"µÜ³gÏŒŸ ´ïB€îÈ#�ŒÂÂÂT{ëÖ­�Û»<|øðfÏ h<`€®S§N1jÔ¨T»¼¼<£qkÖ¬I-+CÛ  @œvÚi©å7ß|ó ýwïÞK–,IµÇŒÓ"y�£ @œ}öÙ©å… ´ÿâÅ‹£¦¦&Õ>çœsZ$/ q ²�мòóócĈim8˜I“&EiiilÛ¶-Þzë­X¶lY :´ÁþO<ñDjyĈ1vìØÖH8Ÿ@Ž)**ŠOúÓ©¯¢¢¢l§@;Ð¥K—˜˜Z¾îºëZ,/ q€ˆˆˆ›nº) öÜ@öÞ{ï�Í›7×Ûï©§žJ=ÿ÷¸ãŽ‹«®ºªÕrL ‡ÔÖÖÆ®]»RímÛ¶e·ÜrK,^¼8Æ�ŒÒÒÒ8p`ôëׯޘ7ÝtS$I·Þzk<üðñnݺøâ¿}ûö�… Æ]wÝË–-‹#Ž8"æÌ™#GŽl­Ý2  9¦¶¶6–.]šjsÌ1Ñ©S§,f´¯½öZ¶S ¬]»6N>ùäöÙ±cGLŸ>=¦OŸžzmÚ´iqûí·78æk_ûZ\|ñÅ1}úô˜;wn\~ùåQYY=zôˆQ£FÅÔ©Sãšk®‰’’’æÚ ™(Ða­¨¨Ëv +V4{Ȫªª˜1cFª}íµ×FqqñÇ 2¤Ùó å 2$’$i‘ØÃ† ‹{î¹§Eb-G€ë¨û¶g;…ˆûŽjùMÜwßAû´Ô/ @ö�?>Û)Њò³�ÍÃÀ�cJKKãþûïÏv9«´´4Û)4HrL^^^”••e; ²À- r„0@Žp h:¬å×uËv ׿Þì!«ªªbúôé©öµ×^ÅÅÅ;Ú`:¬!ÝÛÀ�0† iö�•••qøá‡§ÚƒŽÎ�;7ûvh{ÚÀ'ß4`€áÐ�cŠŠŠâÊ+¯LkÐ1(@ŽÉÏÏ�!-ðlaÚ>·€È À9B Gx0ä˜Ý»wÇÌ™3SíË.»,ŠŠŠ²˜­ErL]]]¬X±"­ @ÇàÐ9B G(ä`€¡ �#€r„0@ŽPÈ À´šŠŠŠ˜6mZœxâ‰qüñÇÇèѣ㢋.Š·Þz+Û©AN(Èv@óÊËË‹~ýú¥µ -xõÕWããÿxœp 1gΜþñ�ÇóÏ?Ÿþô§³”!ä`È1åååѧOŸl§‘³Ö¯_½{÷ÎvíÊwÜ\pÁ~ëòòòbΜ9­�ä,`È1uuu±~ýúT»OŸ>þ"€¬yë­·bñâÅqÌ1Çd9È}> €³{÷î˜1cFêk÷îÝÙN €v¨¼¼<¾õ­oŸqã¢W¯^QTT½{÷ŽsÎ9'þã?þ#*++3ŠóÛßþ6µÜ¿ÿx饗â#ùHüñ1dÈ�¸êª«bùòå-µÐá(ä gŸ}6ºwïÿõ_ÿÕ豿úÕ¯bèС1mÚ´èÖ­[̘1#ž{ï¾ûbçÎ�ñ¥/})Ž?þøX¶lÙAc½ñÆ©åW^y%f̘�>úh,\¸0^ýõذaCwÜqñûßÿ¾ÑyûSÈ!;wîŒï|ç;ñ±�},6oÞÛ¶mkÔø'Ÿ|2.ºè¢Ø²eK\qÅñûßÿ>&OžãÆ�‹Ë.»,æÍ›çŸ~,]º4&L˜ï¼óÎãýíoK-ßsÏ=1cÆŒ(--�ˆˆÒÒÒx衇¢sçÎqÑE¹š�0@;•$ITTTÄÒ¥KcΜ91uêÔ:thÜrË-QUUÕèx6lˆÏ}îsQ[[=zôˆïÿû‘———Ö§°°0î¿ÿþ(,,ŒÕ«WÇW\qÀ˜{ Ç��;wN[Øa‡Å¤I“bûöíñõ¯½Ñ9é€Ú©|0zôèÇ�O}êS1þüøìg?½zõjR¼Ûo¿=ÊËË#"âïþîï¢[·nõö0`@|üã�ˆˆçŸ>fÏžÝ`̽ ¾þð‡ëísì±ÇFDÄ/~ñ‹F_± ¤Sh§>ñ‰OÄo¼kÖ¬‰ÊÊÊøË_þwß}wtíڵѱ***âG?úQªý÷ÿ÷ì?eÊ”Ôò¿ýÛ¿5دgÏž©å¡C‡ÖÛ§G�QSS/¿ürFùõ+Èv4M÷îÝ£{÷îÍë—¿üeTVVFDÄá‡cÆŒ9`ÿñãǧ–_xá…x÷ÝwcРAûõ;òÈ#SË ¦‹ŠŠRËëÖ­kTÞ@:WøÃRË'œpÂAû÷èÑ#{žEüßÿýßõö;vlj¹¡ç'I’Zn®‚6tT ÀÄÂ… SËÇÏhÌ1Ç“ZþóŸÿ\oŸÓO?=òó÷”¤Þ¾ð¾vîÜÙèmõSèàêêêbÙ²e©öûÏä=˜½û-X° Þ>}ûö�³Î:+""/^\oŸÕ«WGDÄI'�G}tFÛê§ ÐÁ­\¹2íö̙ކ¹gÏž©åU«V5Øïk_ûZDDüú׿®wýÓO?·Ýv[FÛV�í€æUXX^xaZdíÚµií®]»f4nï~ëÖ­‹ÚÚÚèÔ©Ó~ý>ö±�Åå—_?øÁbêÔ©1tèÐÔºÇ<^~ùåøßÿû§}®4�0ä˜N�:ʼn'ž˜í4hG¶oßžÖÎô¢‚¢¢¢Ôr]]]lÙ²¥ÁÛGÿèG?Š.]ºÄé§Ÿ×]w] 4(^yå•xøá‡ãŽ;ýëMß E ƒkŽpDDeeeƒ} ã?øA,Y²$^xá…X³fMŒ7.¾ñ�odüÌaàà€:¸�;w¦µóóó3—$IZ{ïç7äØc��c�=6óä€FÉìÝ @ÎÚ÷JÞLUWW§µ;wîÜé‡ÀÀ�cª««ã7¿ùMª=iÒ¤ŒoÙ@ÇTRRÒ¤q»wïNkwëÖ­9Ò�0ä˜ÚÚÚxíµ×RíóÎ;O€*++kÒ¸]»v¥–óòò¢k׮͕ÐDn ÐÁ <8­]WW—Ñ¸ŠŠŠÔrÏž=3~v0Ðr\ @‡°~ýú¬nÅŠ­¶­ªªªØ¼ysª½råÊ(..Ž!C†´Z´/Gyd¦žé»uëÖŒÆí]>|x‹ä4Ž0—¾ô¥l§�5÷Ýw_DD$I’åLh«:uê£F�Š DDDyyyFãÖ¬Y“ZV†¶ÁuøÄi§�–Z~óÍ7Ú÷îݱdÉ’T{̘1-’Ð8 ÀÄÙgŸ�Z^¸páAû/^¼8jjjRísÎ9§EòG€˜4iR”––FDÄ[o½Ë–-;`ÿ'žx"µ=Õ¾öÚk£¸¸¸Õ¶@vÕÖÖÆ®]»RímÛ¶e=æÎ�—_~yTVVF�=bÔ¨Q1uêÔ¸æšk¢¤¤¤¹vh& ÀíÔ�!C"I’‰=lذ¸çž{Z$6Ðrò³�ÍC G¸4ä˜$I¢ªª*Õ...޼¼¼,f´¶ž={Æúõë³�FÎêÙ³g¶Sh�0䘪ªªøÎw¾“jß|óÍѹsç,f´¶üüüèÝ»w¶Ó Ü G(ä`€¡ �#€r„0@ŽPì´2 IDATÈ À9B G(䈂l'4¯‚‚‚˜0aBZ€ŽÁ'Â�cö-Ðq¸4@ŽP Yäååí÷Z’$YÈ€CUWW·ßkõýœ§íQ Yäçïÿ‘suuu2àPÕÔÔì÷Z}?çi{<rLMMM<ÿüó©öé§Ÿ¦|Z^^^^ÅîÝ»S¯mß¾=JJJ²˜M±}ûö´vQQ‘+€Û Ÿ-æÜsÏ�Ñ£Gg; èpjjjâ™gžIµÇ�§ @«)--�òòòT{ëÖ­Ñ»woE€v$I’غukÚk¥¥¥YʆÆr�6ÍfßAuuu¬Y³Æ³€Ú‰$IbÍš5ûÝ¿¬¬,KÑX. ÙtîÜ9 Ó Û¶m‹eË–EYYYtëÖ- }úD’$QWW—ö|`²+///òóó|s„0­&///:uê”í4 gy0@ŽPÈn 9¦¸¸8n¾ùæ´6ƒ0䘼¼¼èܹs¶Ó Ü G(ä`€áÀ�c*++ã{ßû^ª}ýõ×{&0@¡ 9¨²²2Û)�n �#€r„0@ŽPÈ À9B Gd; wTUU¥µß~ûí,e[UUU¬_¿>Õ~ã�7¢¸¸8‹ì±oí`ßÚ‡Nh6«V­Jk_xá…YÊØÛôéÓ³�@½V­Z'�tR¶ÓÈ)n 4›Í›7g; Q[h~ À@³Ùºuk¶SÚµ…æçÐ@³9å”SÒÚ³gÏŽQ£F5[ü+¯¼2þüç?Ç)§œ<ð@›�Û^c·Çœ[2v{Ìùí·ßN»ûc�=Æ k¶ø@fZòçG.È¥ïO[ß—lçךÛoémµDüæŠiþïX²ý¾nËré{ÓÖ÷%ÛùµööÛÛï†æš"Ûïë¶.—¾?my_²�›ù¥ub¾ñÆqÉ%—¤ÚûÖ8t À@³)++Kk�5*F�Ýlñ»víšú·=Äm¯±ÛcÎ-»=漯aƵh| ~­õo¯réûÓÖ÷%Ûùµæö[z[-¿¥r6ÿç¶l¿¯Û²\úÞ´õ}Év~­½ýöö»¡ù…¦Èöûº­Ë¥ïO[Þ—lçf~iý˜û×8tn �#€r„0@ŽPÈÙN SW^yeL˜0!† Ò.â¶×Øí1ç–ŒÝsÚïñË¥ïO[ß—lçךÛoémµDülÿÿÐ>9n–Kß›¶¾/Ùίµ·ßÞ~7Ìöÿí“ãæÀréûÓ–÷%Û¹™_Z?&-#/I’$ÛI¹á¯ýkŒ3&Õ^´hQŒ=:‹AÇä½�ù€–`~ %˜_Zž[@ä`€¡ �#€r„0@Ž(Èv@îèÝ»wL›6-­ ´>ïEèxÌÿ´ó -ÁüÒòò’$I²�‡Î- r„0@ŽPÈ À9B G(ä`€¡ �#€r„0@ŽPÈ À9¢ Û í_MMMüéOŠ… FEEEôéÓ'FŒúЇ"///Ûé@»¶lÙ²øö·¿'œpB\ýõMŠQYY/¼ðB,^¼8¶nÝ ˆãŽ;.N:é¤f΀lk«óÆöíÛã¹çž‹eË–ÅÎ�;ãÈ#�Œ±cÇÆÈ‘#›€Cבæ�M›6ųÏ>+W®ŒêêêÿùÏLj#â�ˆÍ›77:Æ®]»â¶Ûn‹~ýúŹçž=ôP<ÿüóñõ¯=N>ùä;vl<ùä“-�=­­­Î1uêÔèÝ»w\tÑE1{öìxê©§â+_ùJŒ5*Î<óÌøãÿØè\84iÞXµjU\~ùåѧOŸø»¿û»øÕ¯~O>ùd\uÕU1tèИ4iR¼õÖ[�ŠÙæ%M°yóæä¬³ÎJ""éÙ³gòôÓO§ÖÕÕÕ%?þñ�“ÂÂÂ$"’«¯¾:©­­Í^²ÐÁ,[¶,™2eJRPP�DD2mÚ´l§4Â;3|þóŸOÍåï5vN÷Ýw“1cÆ$‘ :4yíµ×R몫«“;ï¼3‰ˆ$///¹ýöÛ›y/h-myÞX°`A2hР$"’SO=5Y¶lYjÝöíÛ“/ùËID$EEEÉøÃFå @Ót´ycîܹI�=’ˆHÎ?ÿüdݺu©u7nL>õ©O%‘”••%�?þx†{ßöuºýöÛooµj3�*++ã#ùHÌŸ??òòòâ¿ÿû¿ã¬³ÎJ­ÏËË‹O<1úõë�?þx¼ú꫱sçÎ8÷Üs³˜5ä¾åË—Ç 7ÜW_}u¼úê«QWW&Lˆ &d79à Þ{クñÆã'?ùI <8Ö­[›6mJ­oÌœ¾qãÆ8ãŒ3bÉ’%QRRóæÍ‹Ñ£G§ÖçççÇé§ŸÕÕÕ1oÞ¼xæ™g¢wïÞñ�| ¹w €ÒÖç�¥K—ÆYg�ï½÷^ôïß?æÍ›L­/**ŠóÏ??–.]¯½öZüæ7¿‰“O>9†ÞøoÕç�^x!Î;ï¼Ø¶m[wÜqñûßÿ>?üðÔú’’’øä'?Ï>ûl¼õÖ[ñØc�Åyç� ÈèûЖ¹4Ðh_ýêWS·X¸ä’KâŒ3Ψ·ßUW]'žxbDDÜ}÷Ý1gΜVË:’÷Þ{/¾ð…/ľð…èÞ½{N>³:‚Ý»wÇ?ýÓ?ÅoûÛ¸ûî»cúôéMŽuÅWIJeË""âË_þrƒŠ|ã߈þýûGDÄõ×_¯¼òJ“· @ëjËóFuuu\rÉ%±qãÆˆˆøæ7¿½{÷®·ïw¿ûÝèÒ¥KÔÕÕÅg?ûÙXµjU“÷€†u´y£¢¢".½ôÒØµkWDDÜu×]Ñ¥K—ýúÄ÷¾÷½ÈËË‹]»vÅ'?ùÉØ¾}ûö¾}Påµ×^K›¾ò•¯4Ø7///®»îºTûÆoŒšššÍ:¢æÕ~øá‡[,?`�¦ž¼íß’%KR�k‰ˆ8묳:f̘1ѳgÏTÛ9;@ÇÑóÆþð‡X»vm£bîýS]]]üô§?=èZ_{™7fÏž•••�йwŸíÛ·§ÕBÚ#Ÿ{饗¢ªª*Õ>餓2·w¿yóæ¥ý0šÏsÏ=—ÖÎôœ}ìØ±©åÇ{,í¼€ÜÕóFSb–••ÅСCSíGy$£<h]íeÞhJÌ‘#GFçÎ�ŒÙÞ({ñÅÓÚ#FŒÈhܨQ£RËuuuñüóÏ7k^ÀÍqξeË–X°`A³æ@ÛÔóFsÄ|óÍ7cÆ � õ´—ycï˜Ý»w�>}ú4^AAA ><Õž7o^êq˜í‘0�±½oí±çaë™Ø·ßÂ… ›-'à8g 1š{ÞH’$^~ùåÔëݺu‹²²²&ÅôÇHmO{˜76lØË—/otŽûöݱcG,[¶,ã±m�0�±5kÖ¤µû÷ïŸÑ¸}ûýõ¯m¶œ€ÿ±÷9{aaaôêÕ+£qÎÙ:¦æž7¶lÙÛ·oO½Þ¯_¿Œs1´}íaÞhjã@1Û#` ciínݺe4nß~7nl¶œ€=êêêbëÖ­©v×®]3뜠ãi‰y£©Ÿ(&mC{™7ÌE{(Û÷çÞD?�}ûí=IÍcóæÍiϨÊô|½¾¾ÎÙr_KÌMýìè@1hÚ˼a.ÚCÈØÎ�;ÓÚEEE�Û÷‡æŽ;š-'`�¦ž¯G8gèˆZbÞ0ä®ö2o˜‹öP2VRR’Ö®®®Îhܾýö�º¦ž¯×××9;@îk‰yÃ\�»Ú˼a.ÚCÈXiiiZ»²²2£qûöÛ7pèšz¾^__ç칯%æ s@îj/ó†¹h` c Hkï{+…†ìÚµ+­Ý·oßfË Ø£°°0zõê•jï{~ ÎÙ:ž–˜7šúÙÑ�bÐ6´—yÃ\´‡0�±áǧµ×­[—Ѹ}û�9²ÙrþÇÞçì•••±eË–ŒÆ9g蘚{ÞèÚµkÚï™~vt ˜´íaÞ6lXäçç7د)1Û#` ccÆŒIk¯]»6£qkÖ¬9` y8g 1ZbÞØ{yóæÍ_!f.hûÚüQ\\Æ ktŽûÆìÒ¥K}ôÑ�mk€�Œ�sÎ9ií¥K—f4nï~yyyûÅšGsœ³—••Å©§žÚ¬yÐ6µÄ¼Ñ1GŽýû÷Ïh­§½Ì{ÇܰaCÆW*¿ýöÛ©å &D§N�2×);å”S¢G�©ö«¯¾šÑ¸—_~9µ|òÉ'·ëûæ@[öá8íCЦœ³Ÿ{î¹QPPÐì¹Ðö´Ä¼ñ±�},­o&1+++cÑ¢E©ö¤I“2Ê€ÖÕ^æ�½c&IùË_óí·ßŽŠŠŠc¶7 À@Æ:uêŸûÜçRíçŸþ cvìØ‘ö{ïñ@óêÕ«W\pÁ©v&çìË—/O»Õ™sv€Ž£%æ�O<1N8á„FÅ|ñÅ£¦¦¦Á˜´ íeÞ˜8qbôîÝ»Q1çÍ›—Z...ŽK.¹ä cÚ2` Q¾ð…/D^^^DD,[¶,^{íµöÿõ¯�ºgYYYL™2¥Ås€Žì‹_übjùÙgŸ�òòòöŸ={vjyذaiè�ûZbÞØ;æœ9sÒ>¤?X̳Ï>;Ž?þøƒæ @v´‡y£¨¨(®ºêªTû¿øÅãíó²Ë.K+ ·G À@£Œ1"®½öÚTûûßÿþûÿßÿûSË·Ýv[”––¶Xn�K6mÚ”Ö~ÿ+æÜsÏ�‰'FDDMMMLŸ>½Á¾»wïŽÿüÏÿLµï¼óÎÈÏ÷Q@{Ô–æ�)S¦¤®æÚ¸qcüìg?k0fyyyÌš5+"öÜ}îÿüŸÿ“QÞš\Ÿ7nºé¦0`@DD,X°à€W¿ùæ›ñûßÿ>""JKKã¶Ûnk°o{á·: Ñþå_þ%† <ð@Úýû÷6sæÌ˜?~DDœuÖYñ�ÿø�­–#tdM=yÚ–Ç{,­ýüóÏG’$�ýÁ~={öŒˆˆï~÷»±bÅŠzûÝ}÷ݱ|ùòˆØsÛ´É“'7=a²ª-Í………ñÀDçÎ�#"âÖ[oM{®âÞn¹å–زeKDD|ýë_�qãÆe”3‡&×ç�Ã?<~øÃ¦ Îÿø�ÿUUUûõ«««‹ø‡ˆÚÚÚˆˆøÞ÷¾GuT½1Û•  Ö®]›œtÒIID$½{÷Nž}öÙ´õ�<òHÒ¹sç$"’óÎ;/Ù¼ys–2…Žç¶ÛnK""õõ¡}(©««ËvZÀAÔÔÔ$ .Lž|òÉdêÔ©I§N�ÒæôˆH.¾øâä—¿üeòꫯ&åå匷xñâ䨣ŽJ""9æ˜c’ ¤ÖÕÖÖ&÷Ýw_’———DDrÅW$UUU-½‹4£ö0oÌŸ??éÕ«Wɸqã’wÞy'µ®²²2¹ùæ›S¹ÞrË-~whAuÞxôÑG“’’’$"’ .¸ Y·n]jÝ–-[’+®¸"‰ˆ¤   ùþ÷¿ÐxíE^’dXÎØÇŽ;âŸþéŸbúôé±}ûö8á„bРA±dÉ’xë­·¢gÏžqà 7Ä�7Þ�:uÊvº�³jkkã�7Þˆ5kÖÄo~ó›˜>}zê/ÖÞwñÅÇg?ûÙ2dH <8zôè‘¥l€†lܸ±QÏ™úîw¿7ÜpÃAcÞrË-ñðÃGuuuœrÊ)ѧOŸxýõ×cåÊ•1pàÀ˜6mZÚó±hÚ˼±bÅŠ¸ñÆãÑG�‚‚‚8å”S¢¬¬,^}õÕX·n]Œ1"î¼óθð 3Ž @ãuäycáÂ…ñÕ¯~5æÎ�]»v�SO=5 âÏþsTTTÄ©§ž÷ÜsOœqÆÇlë€�C¶sçΘ7o^,^¼8¶o߇vXŒ3&N?ýô(,,Ìvz�óZâä È-›7oŽçž{.Þ~ûíØµkWtïÞ=ÆŽüà=ó€ý´Ä¼±nݺ˜7o^,_¾<ª««£wïÞqÊ)§Äرc›9{Z[{™7V®\óçÏ�U«VE]]]ôïß?Æ�Ç{l“c¶U À9Ÿùä`€¡ �#€r„0@ŽPÈ À9B G(ä`€¡ �#€r„0@ŽPÈ À9B G(ä`€¡ �#€r„0@ŽPÈ À9B G(ä`€¡ ´Iëׯ�#�<2~ùË_f;€vCh“fÍš«W¯ŽÚÚÚl§Ðn(Ð*6nÜ]»v�¼¼¼ýzøá‡³½«4“Y³fEiii\pÁõ®wLì¯ Û Ð1<ú裱sçΈˆèׯ_L™2%Î8ãŒ2dHtíÚ5òó÷ü�òîÝ»ãúë¯�Ç<5ö–[n‰)S¦D—.]"""I’¨¬¬Œ¿ýíoñôÓOÇw¿ûÝØ¾}{*6íß;ï¼üããsŸû\êÿ}_Ž)€ý)Ð*fÏž]tQ<øàƒÑ­[·ûnÛ¶-µ\RR·Ýv[½EÀcŽ9&Î8ãŒøÀ>çŸ~DDŒ1¢™3'fÍšŸùÌgìã˜Ø_^’$I¶“ ·mܸ1ú÷ïýèGã7¿ùMäåå5Ø·¦¦&?üðرcGDDœsÎ91wî܃ncøðá±víÚØ¶mÛãÓ>Œ3&Ö­[ï½÷^ìÿ÷ëŽ)€ú¹€÷è£�FAAAüð‡?úèèÖ­›B]X¸paüõ¯�k¯½¶Þâo„c  !ùÙN€Ü7{öì¸ôÒKãˆ#Ž8hß^x!­�i±.I·êÍ3gÎŒˆˆË.»¬Á>Ž)€ú¹€µqãÆxæ™g2ºånDÄüùóSËùùù1nܸŒÆ­_¿>>ô¡5)GÚŽ$Iâg?ûY 4¨ÁB­c  a® E=úè£1`À€8ãŒ32ê¿÷ÕšcÆŒ‰Ã;,£qï¾û®«5sÀ /¼+W®ŒOúÓ ÞzÙ1Ð0`ZÔìÙ³ãSŸúTFÏQ]µjU¬Zµ*ÕÎôV½±iÓ¦8öØc›œ'mìY³""â3ŸùLƒ}S S E•——Çå—_žQߦ>«uÇŽ1räHźv®¦¦&~þóŸÇÈ‘#ãÄOl°Ÿc  až @‹zõÕW3î»÷³Z#2/Ö 80Þxã�FåEÛ3wîÜX¿~}L�:õ€ýS s0mÆÞWk0 † ’½dhu3gÎŒˆßþ¹±S@G£ @›°cÇŽX°`Aª�镚ä†ÊÊÊxì±ÇâÔSO�aÆ5KLÇÐ)Ð&üéOŠšššT[±®cùõ¯[·nmÖ«S@G¤ @›ÐÔgµ’fÍšùùùq饗6[LÇÐ)Ð&ìý¬Ö’’’8ñij˜ ­iëÖ­ñÄOÄYg� h¶¸Ž) #*Èv�$I¼øâ‹©ö?øÁ((Ƚ_Yëêꢼ¼<íëãÿx¶Óʺ_þò—QYY—]vY³Åì(ÇÀ¾üæ@Ö½ñƱyóæT;WoÕûÜsÏÅÙgŸ�öZ’$Yʦí˜9sfÅÅ_Ül1;Ê1°/·€ ëö¾UoDîë&L˜•••ñÓŸþ4Û©´ëÖ­‹§žz*Î;ï¼èÞ½{³Åí(ÇÀ¾€Ⱥùóç§–óóócüøñY̦eÇ%—\’í4ڌٳgGmmm|æ3ŸiÖ¸é˜Ø›0Y·÷Õš£G�ŽÃ;,‹Ù´<Ï¢ý³fÍŠ®]»6û³�;Ú1ð>`²jÆ ±téÒTÛ­z;Ž+VÄ‹/¾ŸøÄ'¢¤¤¤Ùâ:¦€ŽL€¬ò¬ÖŽkÖ¬YqÙe—5k\ÇБ¹çYµ÷³Z#W¬Û¶m[¼òÊ+±iÓ¦¨¨¨ˆŠŠŠ¸úê«ã°Ã‹W^y%^|ñŨ¬¬ŒcŽ9&Î=÷ÜèÒ¥Ëã-Z´(þøÇ?Ɔ bàÀ�ñ±�},z÷î�q>¯½öZ¼òÊ+±qãÆèß¿œyæ™1dÈ�ŒÇ7Æ¡äúÞ{ïÅO<ëÖ­‹AƒÅĉ£G�Q^^O<ñD¬Y³&.¸à‚3fLÚ¸ªªªøÃþK–,‰üüü8á„âÌ3ÏŒN�:5ifΜ={öŒsÏ=·Iãr(ÇTuuu,X° 6lØ�úš:uj§¾?«W¯Ž#Ž8"&Nœ½zõjÖÜ3Ùþ{ï½GydLš4)ÊÊÊRcwìØ�?þx¬\¹2zõêç�w^qÄûm£¹ß7@Ûâ `²jï«5û÷ïGuTÆcß|ó͸òÊ+còäÉqÕUWÅ�7ÞùË_âüóÏ�ûï¿?ÊÊÊ¢S§Nqã�7Æ�!C⡇ª7Ί+b„ qÇwÄŽ;bРAñÜsÏÅÀ�ã«_ýjTWW0�å˗LJ?üáøÄ'>7nŒÁƒGEEE|ñ‹_Œ‰'FEEEFûó§?ý) "///õÕ¯_¿xùå—›-×þçŽãŽ;.Ö­[C‡�ùóçÇàÁƒãê«¯Ž‰'ÆÚµkcΜ9qþùç§�›={v :4fΜ}ûö�$IâÊ+¯ŒN8!þú׿f´{[´hQ,Z´(&Ož………� ‡rL½÷Þ{qæ™gÆÄ‰ãŠ+®ˆn¸!víÚ3gÎŒ+¯¼2víÚ={öŒ»ï¾;† O<ñDÚø+VÄèÑ££k×®©ÿÃgžy&µ~÷îÝ1f̘8ì°ÃRëxà�FmÿðÃ�;ï¼3 Ï>ûlDDüîw¿‹ /¼06lØ}ûö�‡z(Ž>úèøñ�¼ß>êûfúôé1pàÀ´ãZ¤‚IDAT´´´4¾ñ�o¤ú¬]»6ÊÊÊRë ⳟýlÆÿÀ!H Kªªª’âââ$"’ˆH&OžÜ¤8úÓŸR1F��¼ñÆië·nÝšüñID$÷Þ{ï~ãÏ8㌤wïÞÉï~÷»´×ÿõ_ÿ5‰ˆäÓŸþtƒÛ^´hQÒ§OŸdèСɦM›ÒÖ]qÅID$S§NÝoÜûùîëÛßþvÉG>ò‘äå—_nÖ\ï¼óÎ$"’3f¤½~饗&‘<ùä“I’$É�~ô£äË_þrjý÷¿ÿý$///™6mZÚ¸¿ýíoIß¾}“¾}û&6lhp»õ¹å–[’ˆHžyæ™F�;˜æ<¦òóó“ˆH~ò“Ÿ$×^{mRWW—Z¿téÒ$"’ž={&;wîÜoüêÕ«“ÂÂÂ$"’§Ÿ~z¿õ[·nMz÷î�DDòãÿ¸ÉÛïׯ_òòË/'Ÿüä'“Ý»w§ÅïÚµkR\\œ¼÷Þ{ î㡼o~üã§Æ¯^½z¿õ›6mJúõë—œxâ‰ÉòåËëÍh~ ÀdÍ /¼�* EDò¯ÿú¯MŽõ~Œ?üáõ®ÿóŸÿœDDRXX˜,X° m]—.]’ˆH&Mš”özmmmrä‘G&‘ÌŸ?¿˜UUU©Ùã�?¾ßúnݺ%‘\pÁ æ»·­[·&Çw\rûí·§ûš#×Í›7§Æ–——§­û¯ÿú¯$"’~ðƒû�[¸paRXX˜ôêÕ+Ùµk×~ëß/*ßpà õæÛ�£Ž:*8p`ƒûÙTÍyL 0 ‰ˆdܸqIeeå~ë�:ê¨$"’§žzªÞñïÿÔWN’=Åü† À�Ùþ°aÃê-ÀŸsÎ9ID$<ð@ƒûx(ººäè£�N""ùÙÏ~Vïøc�=6Y´hQƒÛšŸ[@�5ûÞ>÷CúÐ!Ç:th½¯Ÿ|òÉ1nܸ¨®®Ž;î¸#mÝÕW_eeeqùå—§½žŸŸãÆ�‹ˆˆ—^zi¿˜?ûÙÏbáÂ…Ñ«W¯ýn™qß}÷ÅG?úѸõÖ[š÷Æ�ã#ùHL�:5¦M›yyyõökj®óæÍKÝ>¸G�iëŽ>úèˆØs êmÛ¶¥­ûÖ·¾ÕÕÕqÙe—EçÎ�÷‹ûþ~ÿüç??è>¾ï¥—^ŠåË—Ç¥—^Úà~6UsSïßšú‚ .ˆâââýÖ÷ë×/"öÜî¸>ùùþØå`ë3Ýþ„ ê}qß¾}#"bÍš5ÜNDÓÞ7yyyñ÷ÿ÷qÿý÷ï7öå—_ŽÄèÑ£º} ùd;rߦM›bÇŽQSS;wîŒŠŠŠxî¹çâÞ{ïMë7{ö쨮®ŽîÝ»G—.]¢   ;ì°(++k–<>úÑ�ÆK/½sæÌ‰�;wFIIIDì)ÔÞwß}õŽy¿ÏÖ­[÷[÷“Ÿü$""N9å”èÔ©Ó~ë?ÿùÏÇç?ÿùƒæµjÕª8÷Üsãšk®‰k®¹æ€}›šëöíÛ#"ê-$¾_ØM’$vïÞ�z}çÎ�ñøã�GDÄÈ‘#ëÝæ°aÃ""båÊ•±mÛ¶(--=`þ3gÎŒˆˆË.»ì }ÒšÇÔØ±cë}½¨¨("â Ï]>TÛþÁÖïýÚ ½o""¦L™Ó¦M‹¹sçÆòåËÓž·|ÿý÷ÇUW]uHÛO€U]]ƒN äž{î‰{î¹'íµÏ|æ3©‚á¡:öØc#"¢ªª*V¬X£F�J[¿eË–øÕ¯~/¾øb¼þúë±eË–X½zuƒñ^ýõˆˆ4hP“sZ²dI|ô£�U«VÅœ9sâúë¯ÏèªØÆæ:f̘ˆˆØ°aCÔÔÔDAÁÿ|$°nݺˆØsEiÏž=S¯/_¾<ªªª""â_þå_bÆŒõÆîÛ·oäççGeeåA Àµµµ1{öì8öØc㤓N:è~Ö§µ�©½ žÙp°í·t~zßôïß?&MšsæÌ‰ÿ÷ÿþ_|ûÛߎˆˆ;vÄï~÷»ø·û·Í ØŸ[@üÿöî>V˲€ãøïœ`ÛÙž=÷õÜ÷Å÷?|Ï}]œP�;wÎÎ�;ÓÒÒrL?퓤k×®•×ï½÷^åõÎ�;óƒü ={öÌŒ32pàÀÌŸ??k×®Íå—_~Øóýûßÿ>ä¼×e—]–Ù³g§OŸ>yñÅ3oÞ¼#Ž?Ö¹4(\pAš››óÒK/µ:öì³Ï&I¾ÿýï·z÷îÝ•×÷ßþò—¿´ù³uëÖlÙ²%§œrÊQÿ¼Ï=÷\Þzë­Œ=ú¨cçÓôoê³àp÷Íßýîw“$¿þõ¯³oß¾$ûŸ¼¾âŠ+Ú|â8±< ÀgÆÁ{µxj÷­·ÞÊСCóúë¯gܸq™;wneéÜ£éÝ»w6nܘwß}÷˜æSSS“¥K—æì³ÏN—.]2lذL™2%ÇOŸ>}ùç?ÿ™ßýîw>|x~øá£þ2pbx€ÏŒ?ýéOI’úúúôìÙ3I2mÚ´¼þúë9ãŒ3òÐC5¨nذ!o¾ùf’äßøF’díÚµGüL[OM&I·nÝ*Ë 744d̘1ùÏþ“ &´9þxæš$ ,ÈÂ… sÙe—eÔ¨Q©¯¯ÏŒ32wîÜ,Y²$ÕÕ­ÿ› gÏž©¯¯O’¼ñÆG¼ÖG‰à{öìɲeË2xðàôïßÿ¨ãKwpXý4kë¾9Øç>÷¹Œ;6Éþ}ÿú׿¦¹¹¹²ì8ðÉ€(ÊÞ½{Û|ûöíyòÉ'“$·Þzkåý?þñ�I’‹/¾¸Õ¾¸|8Ò-Z´(Ï=÷\’düøñ©ªªÊºuëò·¿ý­ÍëîÛ·/çž{îaçu°Y³fåK_úRV¬X‘Ç{ì�ãÇ3×dÿò˃ Ê´iÓ²jÕª¬[·.Ï<óL®¿þúÃÎéÀwõÄO¤©©©Í1---¹øâ‹[-Ý–+VdÇŽŸ™§»té’$inn>䨶mÛ²iÓ¦OzJ‡õqï›7n\ª««óôÓOgúôé•e¡€Ož @QfÌ˜ÑæûwÞygvíÚ•†††Œ7®ò~]]]’äí·ß>ä3o¼ñF^xá…$ÿ‹xÍÍÍéܹs’äë_ÿz&OžœæææL�:µÍëΟ?? •ÏÉç?ÿù<øàƒIöïÇûá {î}Ó–›o¾9Éþý�kkk�zMàĨjiiiéèIÀñ:§6mÚ”çŸ>¿üå/³{÷î466æ´ÓNË-·Ü’oûÛmF¬ 6ä§?ýiV®\™}ûö¥®®._ùÊWòãÿ8ýû÷ÏÌ™33sæÌ 80“'OΨQ£9Çþð‡Ì™3'¯¼òJjkkÓµk׌1"·ß~{jjj’$kÖ¬É 7Ü�M›6U–Üíܹsúõë—… æœsÎÉ×¾öµ¬Y³¦rÞšššœwÞyY¹råqÏuýúõ:th¶oß~Øï±¦¦&?ûÙÏÙ‡¸¥¥%Ë—/σ>˜üãéܹsN:é¤\sÍ5ùÞ÷¾×æ’Ô[°`An¼ñÆÌ›7/ãÇ�?âØŽ´eË–\tÑEùûßÿ^‰¶UUUéÛ·o¦L™’[n¹%Ì›o¾Y‰ýIòÅ/~17ÝtS¦OŸÞê|ëׯÏÌ™3óòË/§S§N©­­Íu×]—‰'æÒK/ͺuëÒ£G�ôèÑ##FŒÈÈ‘#�éú½{÷ÎØ±csÏ=÷ä›ßüfV¯^Ýêï¹G�>|xæÏŸßj~Çsß|ØÞ½{SWW—gžy&çœsÎÇüæ€ö"P„ƒCV¿~ý:v2ŸB ,È„ rß}÷eìØ±éÖ­[’¤©©);vìÈæÍ›³jÕª<ðÀÙ²eKV¯^�³Î:«Ý®?lذ¬\¹2[·n­,}LÇkÏûfóæÍ9rdå t cù×s€ÿ{Û¶mË„ 2f̘Üzë­­ŽuêÔ)Ý»wO÷îÝ3xðàœþù9묳òä“O¶[~ûí·óì³Ï¦¡¡Aü-Ø#�<’›nº©£§Ÿyö€Âmܸ1���•=g�äË_þr’dëÖ­ívý¥K—¦©©)£G�n·sÒq^}õÕÔ××gòäÉ•÷öìÙ“eË–å;ßùNÎ H`(ÞW¿úÕôêÕ+�>úh�8öá‡N’444´Ûõ›ššrÚi§åŠ+®h·sÒqV¬X‘uëÖeîܹinnN’Ì�;7×_}N>ùäž ðïµ×^«¼~å•W:p&ŸN]»vÍïÿû466fðàÁY¼xqvíÚU9ÞÜܜիWçÆoÌ]wÝ•_üâ¹üòËÛíú“&MÊÆ�S[[Ûnçäøë}3tèÐTWWgêÔ©©®®Îòå˳hÑ¢ÜvÛm'bšÀÇTÕÒÒÒÒÑ“€c±fÍšŒ=:›7oNSSS’¤ªª*}ûöÍìÙ³Û5b– ©©)Ë—/Ïo~ó›¼üòË©®®NuuuöìÙ“~ýúåÒK/Í 7Ü�ºººŽž*'P{Ü7 ,ȬY³²wïÞœyæ™™={¶ý�àSB(„%  !B(„ P 0@!`€BÀ…€ !B(„ P 0@!`€BÀ…€ !B(„ P 0@!`€BÀ…€ !B(„ P 0@!`€BÀ…€ !B(„ P 0@!`€BÀ…€ !B(„ P 0@!`€BÀ…€ !B(„ P 0@!`€BÀ…€ !B(„ P 0@!`€BÀ…€ !B(„ P 0@!`€BÀ…€ !B(„ P 0@!`€BÀ…€ !B(„ P 0@!`€BÀ…€ !B(„ P 0@!`€BÀ…€ !B(„ P ÿM¦3XȃÔIEND®B`‚unyt-3.2.0/pyproject.toml000066400000000000000000000101561526544257300154470ustar00rootroot00000000000000[build-system] requires = ["flit_core>=3.11,<5"] build-backend = "flit_core.buildapi" [project] name = "unyt" version = "3.2.0" description = "A package for handling numpy arrays with units" authors = [ { name = "The yt project", email = "yt-dev@python.org" }, ] license = "BSD-3-Clause" license-files = ["LICENSE"] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: Implementation :: CPython", ] keywords = [ "unyt", ] requires-python = ">=3.11" dependencies = [ "numpy>=1.23.2, <3.0", "sympy>=1.9.0", "packaging>=22.0", ] [project.readme] file = "README.rst" content-type = "text/x-rst" [project.urls] Homepage = "https://github.com/yt-project/unyt" Documentation = "https://unyt.readthedocs.io/en/stable/index.html" Changelog = "https://unyt.readthedocs.io/en/stable/history.html" [dependency-groups] test = [ "pytest-doctestplus>=1.4.0", "pytest>=9.0.2", ] covcheck = [ {include-group = "test"}, "coverage[toml] ; python_version < '3.11'", "coverage>=7.10.0", ] doc = [ {include-group = "integration"}, "docutils>=0.21.2", "sphinx>=7.4.7", ] integration = [ "astropy>=5.0.5", "dask[array,diagnostics]>=2024.1.0", "h5py>=3.8.0", "matplotlib>=3.6.0", "pint>=0.20", ] [tool.uv] # never build the following packages from source. Prefer more recent versions # with binary distributions even with --resolution=lowest[-direct] no-build-package = [ "astropy", "bokeh", "contourpy", "coverage", "h5py", "locket", "numpy", "markupsafe", "matplotlib", "pandas", "toolz", "tornado", "pyyaml", "kiwisolver", "pillow", "pyerfa", ] constraint-dependencies = [ "mpmath>=1.2.1", # via sympy "toolz>=1.0.0", # via dask "pyparsing>=3.1.0", # via matplotlib ] # ensure that uv resolves envs that are compatible with macOS arm64, # even in drastic conditions like --resolution=lowest[-direct], # taking into account tool.uv.no-build-package required-environments = [ "sys_platform == 'darwin' and platform_machine == 'arm64'", ] [tool.flit.sdist] include = [ "unyt", "unyt.tests", "unyt.tests.data", "unyt._mpl_array_converter", ] [tool.black] exclude = ''' ( /( \.eggs | \.git | \.hg | \.mypy_cache | \.tox | \.venv | _build | buck-out | build | dist | _version.py ) ) ''' [tool.ruff] exclude = [ ".*/", "benchmarks/*.py", "paper/*.py", "*/_version.py", "*/__init__.py", ] [tool.ruff.lint] ignore = [ "E501", "B904", "B905", # zip-without-explicit-strict ] select = [ "E", "F", "W", "C4", # flake8-comprehensions "B", # flake8-bugbear "YTT", # flake8-2020 "I", # isort "UP", # pyupgrade "NPY", # numpy specific rules ] [tool.ruff.lint.isort] combine-as-imports = true [tool.pytest.ini_options] addopts = "-ra --ignore=benchmarks --ignore=paper --ignore=unyt/_mpl_array_converter --color=yes" filterwarnings = [ "error", "ignore:Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.:UserWarning", "ignore:FigureCanvasAgg is non-interactive, and thus cannot be shown:UserWarning", "ignore:distutils Version classes are deprecated. Use packaging.version instead.:DeprecationWarning", 'ignore:datetime\.datetime\.utcfromtimestamp\(\) is deprecated:DeprecationWarning', # https://github.com/dateutil/dateutil/pull/1285 'ignore:mpnumeric is deprecated:DeprecationWarning', # sympy 1.12 VS mpmath 1.4, solution: https://github.com/sympy/sympy/pull/25290 'ignore:`np.compat`, which was used during the Python 2 to 3 transition, is deprecated since 1.26.0, and will be removed:DeprecationWarning' # from dask 2021.x ] [tool.coverage.run] source = [ "unyt", ] omit = [ "docs/*", "unyt/_version.py", "unyt/_on_demand_imports.py", "unyt/tests/test_linters.py", ] [tool.coverage.report] show_missing = true skip_covered = false unyt-3.2.0/unyt/000077500000000000000000000000001526544257300135275ustar00rootroot00000000000000unyt-3.2.0/unyt/__init__.py000066400000000000000000000055561526544257300156530ustar00rootroot00000000000000""" The unyt package. Note that the symbols defined in :mod:`unyt.physical_constants` and :mod:`unyt.unit_symbols` are importable from this module. For example:: >>> from unyt import km, clight >>> print((km/clight).to('ns')) 3335.64095198152 ns In addition, the following functions and classes are importable from the top-level ``unyt`` namespace: * :func:`unyt.array.loadtxt` * :func:`unyt.array.savetxt` * :func:`unyt.test` * :func:`unyt.array.uconcatenate` * :func:`unyt.array.ucross` * :func:`unyt.array.udot` * :func:`unyt.array.uhstack` * :func:`unyt.array.uintersect1d` * :func:`unyt.array.unorm` * :func:`unyt.array.ustack` * :func:`unyt.array.uunion1d` * :func:`unyt.array.uvstack` * :class:`unyt.array.unyt_array` * :class:`unyt.array.unyt_quantity` * :func:`unyt.unit_object.define_unit` * :class:`unyt.unit_object.Unit` * :class:`unyt.unit_registry.UnitRegistry` * :class:`unyt.unit_systems.UnitSystem` * :func:`unyt.testing.assert_allclose_units` * :func:`unyt.array.allclose_units` * :func:`unyt.dimensions.accepts` * :func:`unyt.dimensions.returns` """ from unyt import physical_constants, unit_symbols from unyt.array import ( # NOQA: F401 allclose_units, loadtxt, savetxt, uconcatenate, ucross, udot, uhstack, uintersect1d, unorm, unyt_array, unyt_quantity, ustack, uunion1d, uvstack, ) from unyt.dimensions import accepts, returns # NOQA: F401 from unyt.testing import assert_allclose_units # NOQA: F401 from unyt.unit_object import Unit, define_unit # NOQA: F401 from unyt.unit_registry import UnitRegistry # NOQA: F401 from unyt.unit_systems import UnitSystem # NOQA: F401 # function to only import quantities into this namespace # we go through the trouble of doing this instead of "import *" # to avoid including extraneous variables (e.g. floating point # constants used to *construct* a physical constant) in this namespace def import_units(module, namespace): """Import Unit objects from a module into a namespace""" for key, value in module.__dict__.items(): if key not in namespace and isinstance(value, (unyt_quantity, Unit)): namespace[key] = value import_units(physical_constants, globals()) import_units(unit_symbols, globals()) del import_units def test(): # pragma: no cover """Execute the unit tests on an installed copy of unyt. Note that this function requires pytest to run. If pytest is not installed this function will raise ImportError. """ import os import pytest pytest.main([os.path.dirname(os.path.abspath(__file__))]) # isort: off from unyt.mpl_interface import matplotlib_support matplotlib_support = matplotlib_support() def __getattr__(item: str): if item == "__version__": from importlib.metadata import version return version("unyt") raise AttributeError(f"Module 'unyt' has no attribute {item!r}.") unyt-3.2.0/unyt/_array_functions.py000066400000000000000000001200671526544257300174540ustar00rootroot00000000000000import warnings from importlib.metadata import version from numbers import Number import numpy as np from packaging.version import Version from unyt import delta_degC, dimensionless from unyt.array import NULL_UNIT, unyt_array, unyt_quantity from unyt.dimensions import temperature from unyt.exceptions import ( InvalidUnitOperation, UnitInconsistencyError, UnytError, ) NUMPY_VERSION = Version(version("numpy")) # Functions for which passing units doesn't make sense # bail out with NotImplemented (escalated to TypeError by numpy) _UNSUPPORTED_FUNCTIONS = { # Polynomials np.poly, np.polyadd, np.polyder, np.polydiv, np.polyfit, np.polyint, np.polymul, np.polysub, np.polyval, np.roots, np.vander, # datetime64 is not a sensible dtype for unyt_array np.datetime_as_string, np.busday_count, np.busday_offset, np.is_busday, # not clear how to approach np.piecewise, # astropy.units doesn't have a simple implementation either np.packbits, np.unpackbits, np.ix_, } _HANDLED_FUNCTIONS = {} def implements(numpy_function): """Register an __array_function__ implementation for unyt_array objects.""" # See NEP 18 https://numpy.org/neps/nep-0018-array-function-protocol.html def decorator(func): _HANDLED_FUNCTIONS[numpy_function] = func return func return decorator @implements(np.array2string) def array2string(a, *args, **kwargs): return ( np.array2string._implementation(a, *args, **kwargs) + f", units={str(a.units)!r}" ) def product_helper(a, b, out, func): prod_units = getattr(a, "units", NULL_UNIT) * getattr(b, "units", NULL_UNIT) if out is None: return func._implementation(np.asarray(a), np.asarray(b)) * prod_units res = func._implementation(np.asarray(a), np.asarray(b), out=np.asarray(out)) if getattr(out, "units", None) is not None: out.units = prod_units return unyt_array(res, prod_units, bypass_validation=True) @implements(np.dot) def dot(a, b, out=None): return product_helper(a, b, out, np.dot) @implements(np.vdot) def vdot(a, b, /): return np.vdot._implementation(np.asarray(a), np.asarray(b)) * ( getattr(a, "units", NULL_UNIT) * getattr(b, "units", NULL_UNIT) ) @implements(np.inner) def inner(a, b, /): return np.inner._implementation(np.asarray(a), np.asarray(b)) * ( getattr(a, "units", NULL_UNIT) * getattr(b, "units", NULL_UNIT) ) @implements(np.outer) def outer(a, b, out=None): return product_helper(a, b, out, np.outer) @implements(np.kron) def kron(a, b): return np.kron._implementation(np.asarray(a), np.asarray(b)) * ( getattr(a, "units", NULL_UNIT) * getattr(b, "units", NULL_UNIT) ) @implements(np.linalg.inv) def linalg_inv(a, *args, **kwargs): return np.linalg.inv._implementation(np.asarray(a), *args, **kwargs) / a.units @implements(np.linalg.tensorinv) def linalg_tensorinv(a, *args, **kwargs): return np.linalg.tensorinv._implementation(a, *args, **kwargs) / a.units @implements(np.linalg.pinv) def linalg_pinv(a, *args, **kwargs): return np.linalg.pinv._implementation(a, *args, **kwargs).view(np.ndarray) / a.units @implements(np.linalg.svd) def linalg_svd(a, full_matrices=True, compute_uv=True, *args, **kwargs): ret_units = a.units retv = np.linalg.svd._implementation( np.asarray(a), full_matrices, compute_uv, *args, **kwargs ) if compute_uv: u, s, vh = retv return (u, s * ret_units, vh) else: return retv * ret_units def _sanitize_range(_range, units): # helper function to histogram* functions ndim = len(units) if _range is None: return _range new_range = np.empty((ndim, 2)) for i in range(ndim): ilim = _range[2 * i : 2 * (i + 1)] imin, imax = ilim if not (hasattr(imin, "units") and hasattr(imax, "units")): if len(units) == 1: # allow range to be pure numerical scalars # for backward compatibility with unyt 2.9.5 # see https://github.com/yt-project/unyt/issues/465 imin *= units[0] imax *= units[0] else: raise TypeError( f"Elements of range must both have a 'units' attribute. Got {_range}" ) new_range[i] = imin.to_value(units[i]), imax.to_value(units[i]) return new_range.squeeze() def _sanitize_bins(arr, bins): if np.isscalar(bins): # integer giving number of bins if hasattr(bins, "units"): if bins.to_value(dimensionless).is_integer(): return int(bins.to_value(dimensionless)) else: raise ValueError("Bin count must be a dimensionless integer.") else: return bins if hasattr(bins, "units"): # if bins has units, must be convertible to arr's units (assumed dimensionless if # absent) return bins.to_value(getattr(arr, "units", dimensionless)) elif hasattr(arr, "units"): # bins doesn't have units but arr does, only ok if arr is dimensionless return bins / arr.units.get_conversion_factor(dimensionless)[0] # neither arr nor bins have units (but maybe weights or density do) return bins def _histogram(a, *, bins=10, range=None, density=None, weights=None, normed=None): range = _sanitize_range(range, units=[getattr(a, "units", None)]) sanitized_bins = _sanitize_bins(a, bins) if NUMPY_VERSION >= Version("1.24"): counts, sanitized_bins = np.histogram._implementation( np.asarray(a), bins=sanitized_bins, range=range, density=density, weights=np.asarray(weights) if weights is not None else None, ) else: counts, sanitized_bins = np.histogram._implementation( np.asarray(a), bins=sanitized_bins, range=range, normed=normed, weights=np.asarray(weights) if weights is not None else None, density=density, ) # a and/or weights could have units, only apply if present # don't getattr(..., "units", NULL_UNIT) because e.g. we don't want # a unyt_array if weights are not a unyt_array and not density if density and hasattr(a, "units"): counts /= a.units if weights is not None and hasattr(weights, "units"): counts *= weights.units return counts, ( sanitized_bins * getattr(a, "units", 1) if np.isscalar(bins) else bins ) if NUMPY_VERSION >= Version("1.24"): @implements(np.histogram) def histogram(a, bins=10, range=None, density=None, weights=None): return _histogram(a, bins=bins, range=range, density=density, weights=weights) else: @implements(np.histogram) def histogram(a, bins=10, range=None, normed=None, weights=None, density=None): return _histogram( a, bins=bins, range=range, normed=normed, weights=weights, density=density ) def _histogram2d(x, y, *, bins=10, range=None, density=None, weights=None, normed=None): range = _sanitize_range( range, units=[getattr(x, "units", None), getattr(y, "units", None)] ) if np.isscalar(bins): sanitized_xbins, sanitized_ybins = ( _sanitize_bins(x, bins), _sanitize_bins(y, bins), ) else: sanitized_xbins = _sanitize_bins(x, bins[0]) sanitized_ybins = _sanitize_bins(y, bins[1]) if NUMPY_VERSION >= Version("1.24"): counts, obtained_xbins, obtained_ybins = np.histogram2d._implementation( np.asarray(x), np.asarray(y), bins=(sanitized_xbins, sanitized_ybins), range=range, density=density, weights=np.asarray(weights) if weights is not None else None, ) else: counts, obtained_xbins, obtained_ybins = np.histogram2d._implementation( np.asarray(x), np.asarray(y), bins=(sanitized_xbins, sanitized_ybins), range=range, normed=normed, weights=np.asarray(weights) if weights is not None else None, density=density, ) # x, y and/or weights could have units, only apply if present # don't getattr(..., "units", NULL_UNIT) because e.g. we don't want # a unyt_array if weights are not a unyt_array and not density if density: if hasattr(x, "units"): counts /= x.units if hasattr(y, "units"): counts /= y.units if weights is not None and hasattr(weights, "units"): counts *= weights.units return ( counts, ( obtained_xbins * getattr(x, "units", 1) if np.isscalar(sanitized_xbins) else bins[0] ), ( obtained_ybins * getattr(y, "units", 1) if np.isscalar(sanitized_ybins) else bins[1] ), ) if NUMPY_VERSION >= Version("1.24"): @implements(np.histogram2d) def histogram2d(x, y, bins=10, range=None, density=None, weights=None): return _histogram2d( x, y, bins=bins, range=range, density=density, weights=weights ) else: @implements(np.histogram2d) def histogram2d(x, y, bins=10, range=None, normed=None, weights=None, density=None): return _histogram2d( x, y, bins=bins, range=range, normed=normed, weights=weights, density=density, ) def _histogramdd( sample, *, bins=10, range=None, density=None, weights=None, normed=None ): range = _sanitize_range(range, units=[getattr(_, "units", None) for _ in sample]) if np.isscalar(bins): sanitized_bins = [_sanitize_bins(a, bins) for a in sample] else: sanitized_bins = [ _sanitize_bins(a, b) for a, b in zip(sample, bins, strict=True) ] if NUMPY_VERSION >= Version("1.24"): counts, obtained_bins = np.histogramdd._implementation( [np.asarray(_) for _ in sample], bins=sanitized_bins, range=range, density=density, weights=np.asarray(weights) if weights is not None else None, ) else: counts, obtained_bins = np.histogramdd._implementation( [np.asarray(_) for _ in sample], bins=sanitized_bins, range=range, normed=normed, weights=np.asarray(weights) if weights is not None else None, density=density, ) # sample(s) and/or weights could have units, only apply if present # don't getattr(..., "units", NULL_UNIT) because e.g. we don't want # a unyt_array if weights are not a unyt_array and not density if density: divider_units = 1 * NULL_UNIT for s in sample: if not hasattr(s, "units"): continue divider_units *= s.units if divider_units != NULL_UNIT: counts /= divider_units if weights is not None and hasattr(weights, "units"): counts *= weights.units return counts, tuple( ob * getattr(s, "units", 1) if np.isscalar(sb) else bins[i] for i, (ob, sb, s) in enumerate( zip(obtained_bins, sanitized_bins, sample, strict=True) ) ) if NUMPY_VERSION >= Version("1.24"): @implements(np.histogramdd) def histogramdd(sample, bins=10, range=None, density=None, weights=None): return _histogramdd( sample, bins=bins, range=range, density=density, weights=weights ) else: @implements(np.histogramdd) def histogramdd( sample, bins=10, range=None, normed=None, weights=None, density=None ): return _histogramdd( sample, bins=bins, range=range, normed=normed, weights=weights, density=density, ) @implements(np.histogram_bin_edges) def histogram_bin_edges(a, *args, **kwargs): return ( np.histogram_bin_edges._implementation(np.asarray(a), *args, **kwargs) * a.units ) @implements(np.digitize) def digitize(x, bins, right=False): # convert bins to x's units before binning, reusing the same helper as the # histogram functions. This both makes the comparison unit-aware (so e.g. # grams and kilograms give consistent indices) and raises on dimensionally # incompatible bins instead of silently comparing raw values (see #633). if not hasattr(bins, "units"): # let _sanitize_bins operate on an array (it divides bins by a # conversion factor, which a plain list does not support) bins = np.asarray(bins) sanitized_bins = _sanitize_bins(x, bins) return np.digitize._implementation( np.asarray(x), np.asarray(sanitized_bins), right=right ) def get_units(objs): units = [] for sub in objs: if isinstance(sub, np.ndarray): units.append(getattr(sub, "units", NULL_UNIT)) elif isinstance(sub, Number): units.append(NULL_UNIT) else: units.extend(get_units(sub)) return units def _validate_units_consistency(objs): """ Return unique units or raise UnitInconsistencyError if units are mixed. """ # NOTE: we cannot validate that all arrays are unyt_arrays # by using this as a guard clause in unyt_array.__array_function__ # because it's already a necessary condition for numpy to use our # custom implementations units = get_units(objs) # filtering unique units using equality comparison implicitly allows for units # which have a dimensionless**(n) component to be treated as one and the same unique_units = [units[0], *(u for u in units if u != units[0])] if len(unique_units) == 1: return units[0] else: raise UnitInconsistencyError(*units) def _validate_units_consistency_v2(ref_units, *args) -> None: """ raise UnitInconsistencyError if units are mixed if all args are pure numbers, they are treated as having ref_units, otherwise they are treated as dimensionless """ if all(isinstance(_, Number) for _ in args): return else: _validate_units_consistency((1 * ref_units, *args)) @implements(np.concatenate) def concatenate(arrays, /, axis=0, out=None, *args, **kwargs): ret_units = _validate_units_consistency(arrays) if out is not None: out_view = np.asarray(out) else: out_view = out res = np.concatenate._implementation( [np.asarray(_) for _ in arrays], axis, out_view, *args, **kwargs ) if getattr(out, "units", None) is not None: out.units = ret_units return unyt_array(res, ret_units, bypass_validation=True) @implements(np.cross) def cross(a, b, *args, **kwargs): prod_units = getattr(a, "units", NULL_UNIT) * getattr(b, "units", NULL_UNIT) return ( np.cross._implementation(np.asarray(a), np.asarray(b), *args, **kwargs) * prod_units ) @implements(np.intersect1d) def intersect1d(ar1, ar2, assume_unique=False, return_indices=False): _validate_units_consistency((ar1, ar2)) retv = np.intersect1d._implementation( np.asarray(ar1), np.asarray(ar2), assume_unique=assume_unique, return_indices=return_indices, ) if return_indices: return retv else: return retv * ar1.units @implements(np.union1d) def union1d(ar1, ar2): _validate_units_consistency((ar1, ar2)) return np.union1d._implementation(np.asarray(ar1), np.asarray(ar2)) * ar1.units @implements(np.linalg.norm) def norm(x, *args, **kwargs): return np.linalg.norm._implementation(np.asarray(x), *args, **kwargs) * x.units @implements(np.vstack) def vstack(tup, **kwargs): ret_units = _validate_units_consistency(tup) return np.vstack._implementation([np.asarray(_) for _ in tup], **kwargs) * ret_units @implements(np.hstack) def hstack(tup, **kwargs): ret_units = _validate_units_consistency(tup) return np.vstack._implementation([np.asarray(_) for _ in tup], **kwargs) * ret_units @implements(np.dstack) def dstack(tup): ret_units = _validate_units_consistency(tup) return np.dstack._implementation([np.asarray(_) for _ in tup]) * ret_units @implements(np.column_stack) def column_stack(tup): ret_units = _validate_units_consistency(tup) return np.column_stack._implementation([np.asarray(_) for _ in tup]) * ret_units @implements(np.stack) def stack(arrays, axis=0, out=None, **kwargs): ret_units = _validate_units_consistency(arrays) if out is None: return ( np.stack._implementation([np.asarray(_) for _ in arrays], axis=axis) * ret_units ) res = np.stack._implementation( [np.asarray(_) for _ in arrays], axis=axis, out=np.asarray(out), **kwargs ) if getattr(out, "units", None) is not None: out.units = ret_units return unyt_array(res, ret_units, bypass_validation=True) @implements(np.around) def around(a, decimals=0, out=None): ret_units = a.units if out is None: return np.around._implementation(np.asarray(a), decimals=decimals) * ret_units res = np.around._implementation( np.asarray(a), decimals=decimals, out=np.asarray(out) ) if getattr(out, "units", None) is not None: out.units = ret_units return unyt_array(res, ret_units, bypass_validation=True) @implements(np.block) def block(arrays): ret_units = _validate_units_consistency(arrays) res = np.block._implementation(arrays) return unyt_array(res, ret_units, bypass_validation=True) @implements(np.fft.fft) def fft_fft(a, *args, **kwargs): return np.fft.fft._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.fft2) def fft_fft2(a, *args, **kwargs): return np.fft.fft2._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.fftn) def fft_fftn(a, *args, **kwargs): return np.fft.fftn._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.hfft) def fft_hfft(a, *args, **kwargs): return np.fft.hfft._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.rfft) def fft_rfft(a, *args, **kwargs): return np.fft.rfft._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.rfft2) def fft_rfft2(a, *args, **kwargs): return np.fft.rfft2._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.rfftn) def fft_rfftn(a, *args, **kwargs): return np.fft.rfftn._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.ifft) def fft_ifft(a, *args, **kwargs): return np.fft.ifft._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.ifft2) def fft_ifft2(a, *args, **kwargs): return np.fft.ifft2._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.ifftn) def fft_ifftn(a, *args, **kwargs): return np.fft.ifftn._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.ihfft) def fft_ihfft(a, *args, **kwargs): return np.fft.ihfft._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.irfft) def fft_irfft(a, *args, **kwargs): return np.fft.irfft._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.irfft2) def fft_irfft2(a, *args, **kwargs): return np.fft.irfft2._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.irfftn) def fft_irfftn(a, *args, **kwargs): return np.fft.irfftn._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.fft.fftshift) def fft_fftshift(x, *args, **kwargs): return np.fft.fftshift._implementation(np.asarray(x), *args, **kwargs) * x.units @implements(np.fft.ifftshift) def fft_ifftshift(x, *args, **kwargs): return np.fft.ifftshift._implementation(np.asarray(x), *args, **kwargs) * x.units @implements(np.sort_complex) def sort_complex(a): return np.sort_complex._implementation(np.asarray(a)) * a.units def _array_comp_helper(a, b): au = getattr(a, "units", NULL_UNIT) bu = getattr(b, "units", NULL_UNIT) if bu != au and au != NULL_UNIT and bu != NULL_UNIT: b = b.in_units(au) elif bu == NULL_UNIT: b = np.array(b) * au elif au == NULL_UNIT: a = np.array(a) * bu return a, b @implements(np.isclose) def isclose(a, b, *args, **kwargs): a, b = _array_comp_helper(a, b) return np.isclose._implementation(np.asarray(a), np.asarray(b), *args, **kwargs) @implements(np.allclose) def allclose(a, b, *args, **kwargs): a, b = _array_comp_helper(a, b) return np.allclose._implementation(np.asarray(a), np.asarray(b), *args, **kwargs) @implements(np.array_equal) def array_equal(a1, a2, *args, **kwargs) -> bool: u1 = getattr(a1, "units", NULL_UNIT) u2 = getattr(a2, "units", NULL_UNIT) if u2 != u1: return False return np.array_equal._implementation( np.asarray(a1), np.asarray(a2), *args, **kwargs ) @implements(np.array_equiv) def array_equiv(a1, a2, *args, **kwargs) -> bool: u1 = getattr(a1, "units", NULL_UNIT) u2 = getattr(a2, "units", NULL_UNIT) if u2 != u1: return False return np.array_equiv._implementation( np.asarray(a1), np.asarray(a2), *args, **kwargs ) def _linspace( start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0, *, device=None, ): _validate_units_consistency((start, stop)) kwargs = { "num": num, "endpoint": endpoint, "retstep": retstep, "dtype": dtype, "axis": axis, } if NUMPY_VERSION >= Version("2.1.0.dev0"): kwargs["device"] = device result = np.linspace._implementation(np.asarray(start), np.asarray(stop), **kwargs) if retstep: return result[0] * start.units, result[1] * start.units else: return result * start.units if NUMPY_VERSION >= Version("2.0.0dev0"): @implements(np.linspace) def linspace( start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0, *, device=None, ): return _linspace( start, stop, num=num, endpoint=endpoint, retstep=retstep, dtype=dtype, axis=axis, device=device, ) else: @implements(np.linspace) def linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0): return _linspace( start, stop, num=num, endpoint=endpoint, retstep=retstep, dtype=dtype, axis=axis, ) @implements(np.logspace) def logspace(start, stop, num=50, endpoint=True, base=10, dtype=None, axis=0): startu = getattr(start, "units", NULL_UNIT) stopu = getattr(stop, "units", NULL_UNIT) if startu != NULL_UNIT or stopu != NULL_UNIT: raise TypeError( "The first two arguments to numpy.logspace must be dimensionless, " f"got units={startu} (arg1) and units={stopu} (arg2). If output with" " units is desired, apply the units to the `base` kwarg." ) result = np.logspace._implementation( np.asarray(start), np.asarray(stop), num=num, endpoint=endpoint, base=np.asarray(base), dtype=dtype, axis=axis, ) return result * getattr(base, "units", NULL_UNIT) @implements(np.geomspace) def geomspace(start, stop, *args, **kwargs): _validate_units_consistency((start, stop)) return ( np.geomspace._implementation( np.asarray(start), np.asarray(stop), *args, **kwargs ) * start.units ) @implements(np.copyto) def copyto(dst, src, *args, **kwargs): # note that np.copyto is heavily used internally # in numpy, and it may be used with fundamental datatypes, # so we don't attempt to pass ndarray views to keep generality np.copyto._implementation(dst, src, *args, **kwargs) if getattr(dst, "units", None) is not None: dst.units = getattr(src, "units", dst.units) @implements(np.prod) def prod(a, *args, **kwargs): res = np.prod._implementation(np.asarray(a), *args, **kwargs) return res * a.units ** (a.size // res.size) @implements(np.var) def var(a, *args, **kwargs): return np.var._implementation(np.asarray(a), *args, **kwargs) * a.units**2 @implements(np.trace) def trace(a, *args, **kwargs): return np.trace._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.percentile) def percentile(a, *args, **kwargs): return np.percentile._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.quantile) def quantile(a, *args, **kwargs): return np.quantile._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.nanpercentile) def nanpercentile(a, *args, **kwargs): return np.nanpercentile._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.nanquantile) def nanquantile(a, *args, **kwargs): return np.nanquantile._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.linalg.det) def linalg_det(a, *args, **kwargs): return ( np.linalg.det._implementation(np.asarray(a), *args, **kwargs) * a.units ** (a.shape[0]) ) @implements(np.linalg.lstsq) def linalg_lstsq(a, b, *args, **kwargs): x, residuals, rank, s = np.linalg.lstsq._implementation( np.asarray(a), np.asarray(b), *args, **kwargs ) au = getattr(a, "units", NULL_UNIT) bu = getattr(b, "units", NULL_UNIT) return (x * bu / au, residuals * bu / au, rank, s * au) @implements(np.linalg.solve) def linalg_solve(a, b, *args, **kwargs): au = getattr(a, "units", NULL_UNIT) bu = getattr(b, "units", NULL_UNIT) return ( np.linalg.solve._implementation(np.asarray(a), np.asarray(b), *args, **kwargs) * bu / au ) @implements(np.linalg.tensorsolve) def linalg_tensorsolve(a, b, *args, **kwargs): au = getattr(a, "units", NULL_UNIT) bu = getattr(b, "units", NULL_UNIT) return ( np.linalg.tensorsolve._implementation( np.asarray(a), np.asarray(b), *args, **kwargs ) * bu / au ) @implements(np.linalg.eig) def linalg_eig(a, *args, **kwargs): ret_units = a.units w, v = np.linalg.eig._implementation(np.asarray(a), *args, **kwargs) return w * ret_units, v @implements(np.linalg.eigh) def linalg_eigh(a, *args, **kwargs): ret_units = a.units w, v = np.linalg.eigh._implementation(np.asarray(a), *args, **kwargs) return w * ret_units, v @implements(np.linalg.eigvals) def linalg_eigvals(a, *args, **kwargs): return np.linalg.eigvals._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.linalg.eigvalsh) def linalg_eigvalsh(a, *args, **kwargs): return np.linalg.eigvalsh._implementation(np.asarray(a), *args, **kwargs) * a.units @implements(np.savetxt) def savetxt(fname, X, *args, **kwargs): warnings.warn( "numpy.savetxt does not preserve units, " "and will only save the raw numerical data from the unyt_array object.\n" "If this is the intended behaviour, call `numpy.savetxt(file, arr.d)` " "to silence this warning.\n" "If you want to preserve units, use `unyt.savetxt` " "(and `unyt.loadtxt`) instead.", stacklevel=4, ) return np.savetxt._implementation(fname, np.asarray(X), *args, **kwargs) @implements(np.apply_over_axes) def apply_over_axes(func, a, axes): res = func(a, axes[0]) if len(axes) > 1: # this function is recursive by nature, # here we intentionally do not call the base _implementation return np.apply_over_axes(func, res, axes[1:]) else: return res def diff_helper(func, arr, *args, **kwargs): u = getattr(arr, "units", NULL_UNIT) if u.dimensions is temperature: if u.base_offset: raise InvalidUnitOperation( "Quantities with units of Fahrenheit or Celsius " "cannot be multiplied, divided, subtracted or added." ) ret_units = delta_degC else: ret_units = u return func._implementation(np.asarray(arr), *args, **kwargs) * ret_units @implements(np.diff) def diff(a, *args, **kwargs): return diff_helper(np.diff, a, *args, **kwargs) @implements(np.ediff1d) def ediff1d(ary, *args, **kwargs): return diff_helper(np.ediff1d, ary, *args, **kwargs) @implements(np.ptp) def ptp(a, *args, **kwargs): return diff_helper(np.ptp, a, *args, **kwargs) @implements(np.cumprod) def cumprod(a, *args, **kwargs): raise UnytError( "numpy.cumprod (and other cumulative product function) cannot be used " "with a unyt_array as all return elements should (but cannot) " "have different units." ) if NUMPY_VERSION >= Version("2.1.0.dev0"): @implements(np.cumulative_prod) def cumulative_prod(x, /, *args, **kwargs): return cumprod(x, *args, **kwargs) @implements(np.pad) def pad(array, *args, **kwargs): return np.pad._implementation(np.asarray(array), *args, **kwargs) * array.units @implements(np.choose) def choose(a, choices, out=None, *args, **kwargs): if (au := getattr(a, "units", NULL_UNIT)) != NULL_UNIT: raise TypeError( f"The first argument to numpy.choose must be dimensionless, got units={au}" ) retu = _validate_units_consistency(choices) if out is None: return ( np.choose._implementation( a, [np.asarray(c) for c in choices], *args, **kwargs ) * retu ) res = np.choose._implementation( a, [np.asarray(c) for c in choices], *args, out=np.asarray(out), **kwargs, ) if getattr(out, "units", None) is not None: out.units = retu return unyt_array(res, retu, bypass_validation=True) @implements(np.fill_diagonal) def fill_diagonal(a, val, *args, **kwargs) -> None: _validate_units_consistency_v2(a.units, val) np.fill_diagonal._implementation(np.asarray(a), val, *args, **kwargs) @implements(np.insert) def insert(arr, obj, values, *args, **kwargs): _validate_units_consistency_v2(arr.units, values) return ( np.insert._implementation( np.asarray(arr), obj, np.asarray(values), *args, **kwargs ) * arr.units ) @implements(np.isin) def isin(element, test_elements, *args, **kwargs): _validate_units_consistency((element, test_elements)) return np.isin._implementation( np.asarray(element), np.asarray(test_elements), *args, **kwargs ) @implements(np.place) def place(arr, mask, vals, *args, **kwargs) -> None: _validate_units_consistency_v2(arr.units, vals) np.place._implementation(np.asarray(arr), mask, np.asarray(vals), *args, **kwargs) @implements(np.put) def put(a, ind, v, *args, **kwargs) -> None: _validate_units_consistency_v2(a.units, v) np.put._implementation(np.asarray(a), ind, np.asarray(v)) @implements(np.put_along_axis) def put_along_axis(arr, indices, values, axis, *args, **kwargs) -> None: _validate_units_consistency_v2(arr.units, values) np.put_along_axis._implementation( np.asarray(arr), indices, np.asarray(values), axis, *args, **kwargs ) @implements(np.putmask) def putmask(a, /, mask, values, *args, **kwargs) -> None: _validate_units_consistency_v2(a.units, values) np.putmask._implementation(np.asarray(a), mask, np.asarray(values), *args, **kwargs) @implements(np.searchsorted) def searchsorted(a, v, *args, **kwargs): _validate_units_consistency_v2(a.units, v) return np.searchsorted._implementation( np.asarray(a), np.asarray(v), *args, **kwargs ) @implements(np.select) def select(condlist, choicelist, default=0, *args, **kwargs): ref_units = choicelist[0].units _validate_units_consistency_v2(ref_units, choicelist, default) return ( np.select._implementation( condlist, [np.asarray(c) for c in choicelist], default ) * ref_units ) @implements(np.setdiff1d) def setdiff1d(ar1, ar2, *args, **kwargs): retu = _validate_units_consistency((ar1, ar2)) return ( np.setdiff1d._implementation(np.asarray(ar1), np.asarray(ar2), *args, **kwargs) * retu ) @implements(np.sinc) def sinc(x, *args, **kwargs): # this implementation becomes necessary after implementing where # we *want* this one to ignore units return np.sinc._implementation(np.asarray(x), *args, **kwargs) def clip_impl(a, a_min, a_max, out=None, *args, **kwargs): _validate_units_consistency_v2(a.units, a_min, a_max) if out is None: return ( np.clip._implementation( np.asarray(a), np.asarray(a_min), np.asarray(a_max), *args, **kwargs ) * a.units ) res = ( np.clip._implementation( np.asarray(a), np.asarray(a_min), np.asarray(a_max), *args, out=np.asarray(out), **kwargs, ) * a.units ) if getattr(out, "units", None) is not None: out.units = a.units return unyt_array(res, a.units, bypass_validation=True) if NUMPY_VERSION >= Version("2.1.0.dev0"): from numpy._globals import _NoValue @implements(np.clip) def clip(a, a_min=_NoValue, a_max=_NoValue, out=None, *args, **kwargs): return clip_impl(a, a_min, a_max, out, *args, **kwargs) else: @implements(np.clip) def clip(a, a_min, a_max, out=None, *args, **kwargs): return clip_impl(a, a_min, a_max, out, *args, **kwargs) @implements(np.where) def where(condition, /, *args, **kwargs): if len(args) == 0: return np.where._implementation(np.asarray(condition), **kwargs) elif len(args) < 2: # error message borrowed from numpy 1.24.1 raise ValueError("either both or neither of x and y should be given") x, y, *args = args retu = _validate_units_consistency((x, y)) return ( np.where._implementation( condition, np.asarray(x), np.asarray(y), *args, **kwargs ) * retu ) @implements(np.triu) def triu(m, *args, **kwargs): return np.triu._implementation(np.asarray(m), *args, **kwargs) * m.units @implements(np.tril) def tril(m, *args, **kwargs): return np.tril._implementation(np.asarray(m), *args, **kwargs) * m.units @implements(np.einsum) def einsum(*operands, out=None, **kwargs): subscripts, *operands = operands ret_units = _validate_units_consistency(operands) if out is not None: out_view = np.asarray(out) else: out_view = out res = np.einsum._implementation(subscripts, *operands, out=out_view) if getattr(out, "units", None) is not None: out.units = ret_units if res.ndim == 0: cls = unyt_quantity else: cls = unyt_array return cls(res, ret_units, bypass_validation=True) @implements(np.convolve) def convolve(a, v, *args, **kwargs): ret_units = np.prod(get_units((a, v))) return ( np.convolve._implementation(np.asarray(a), np.asarray(v), *args, **kwargs) * ret_units ) @implements(np.correlate) def correlate(a, v, *args, **kwargs): ret_units = np.prod(get_units((a, v))) return ( np.correlate._implementation(np.asarray(a), np.asarray(v), *args, **kwargs) * ret_units ) @implements(np.tensordot) def tensordot(a, b, *args, **kwargs): ret_units = np.prod(get_units((a, b))) return ( np.tensordot._implementation(np.asarray(a), np.asarray(b), *args, **kwargs) * ret_units ) @implements(np.unwrap) def unwrap(p, *args, **kwargs): ret_units = p.units return np.unwrap._implementation(np.asarray(p), *args, **kwargs) * ret_units @implements(np.interp) def interp(x, xp, fp, *args, **kwargs): _validate_units_consistency((x, xp)) # return array type should match fp's # so, the fallback multiplier is 1 instead of NULL_UNITS # This avoid leaking a dimensionless unyt_array if reference data # is a pure np.ndarray ret_units = getattr(fp, "units", 1) return ( np.interp(np.asarray(x), np.asarray(xp), np.asarray(fp), *args, **kwargs) * ret_units ) @implements(np.array_repr) def array_repr(arr, *args, **kwargs): rep = np.array_repr._implementation(np.asarray(arr), *args, **kwargs) rep = rep.replace("array", arr.__class__.__name__) units_repr = arr.units.__repr__() if "=" in rep: return rep[:-1] + ", units='" + units_repr + "')" else: return rep[:-1] + ", '" + units_repr + "')" if NUMPY_VERSION < Version("2.0.0dev0"): # functions that are removed in numpy 2.0.0 @implements(np.asfarray) # noqa: NPY201 def asfarray(a, dtype=np.double): ret_units = a.units arr = np.asfarray._implementation(np.asarray(a), dtype=dtype) # noqa: NPY201 return arr * ret_units _trapezoid_func = np.trapz # noqa: NPY201 elif NUMPY_VERSION >= Version("2.0.0dev0"): # functions that were added in numpy 2.0.0 @implements(np.linalg.outer) def linalg_outer(x1, x2, /): return product_helper(x1, x2, out=None, func=np.linalg.outer) _trapezoid_func = np.trapezoid @implements(_trapezoid_func) def trapezoid(y, x=None, dx=1.0, *args, **kwargs): ret_units = y.units if x is None: ret_units = ret_units * getattr(dx, "units", NULL_UNIT) else: ret_units = ret_units * getattr(x, "units", NULL_UNIT) if isinstance(x, np.ndarray): x = np.asarray(x) if isinstance(dx, np.ndarray): dx = np.asarray(dx) return ( _trapezoid_func._implementation(np.asarray(y), x, dx, *args, **kwargs) * ret_units ) if NUMPY_VERSION < Version("2.4.0.dev0"): @implements(np.in1d) # noqa: NPY201 def in1d(ar1, ar2, *args, **kwargs): _validate_units_consistency((ar1, ar2)) return np.isin._implementation( np.asarray(ar1), np.asarray(ar2), *args, **kwargs ) @implements(np.take) def take(a, indices, axis=None, out=None, mode="raise"): ret_units = getattr(a, "units", NULL_UNIT) if out is not None: out_view = np.asarray(out) else: out_view = None res = np.take._implementation( np.asarray(a), indices, axis=axis, out=out_view, mode=mode ) if getattr(out, "units", None) is not None: out.units = ret_units ret_cls = unyt_quantity if res.ndim == 0 else unyt_array return ret_cls(res, ret_units, bypass_validation=True) if NUMPY_VERSION < Version("2.4.1"): def _average(a, axis=None, weights=None, returned=False, *, keepdims=np._NoValue): if NUMPY_VERSION < Version("1.23"): res = np.average._implementation( np.asarray(a), axis=axis, weights=weights, returned=returned, ) else: res = np.average._implementation( np.asarray(a), axis=axis, weights=weights, returned=returned, keepdims=keepdims, ) if returned: avg, wsum = res else: avg = res if returned and isinstance(weights, unyt_array): wsum_cls = unyt_quantity if wsum.ndim == 0 else unyt_array wsum_units = weights.units wsum = wsum_cls(wsum, wsum_units, bypass_validation=True) if isinstance(a, unyt_array): avg_cls = unyt_quantity if avg.ndim == 0 else unyt_array avg_units = a.units avg = avg_cls(avg, avg_units, bypass_validation=True) if returned: return avg, wsum return avg if NUMPY_VERSION < Version("1.23.0"): @implements(np.average) def average(a, axis=None, weights=None, returned=False): return _average(a, axis=axis, weights=weights, returned=returned) elif NUMPY_VERSION < Version("2.4.1"): # will not be needed once https://github.com/numpy/numpy/pull/30522 is merged, # probably in numpy 2.4.1, but this will still be needed until earlier versions # are no longer supported @implements(np.average) def average(a, axis=None, weights=None, returned=False, *, keepdims=np._NoValue): return _average( a, axis=axis, weights=weights, returned=returned, keepdims=keepdims ) unyt-3.2.0/unyt/_deprecation.py000066400000000000000000000006751526544257300165450ustar00rootroot00000000000000import warnings def warn_deprecated( name, /, *, stacklevel: int = 3, replacement: str | None = None, since_version: str, ) -> None: msg = ( f"{name} is deprecated and will be removed in a future version\n" f"Instead, {replacement}\n" f"(deprecated since unyt v{since_version})" ) warnings.warn( msg, category=DeprecationWarning, stacklevel=stacklevel, ) unyt-3.2.0/unyt/_mpl_array_converter/000077500000000000000000000000001526544257300177435ustar00rootroot00000000000000unyt-3.2.0/unyt/_mpl_array_converter/__init__.py000066400000000000000000000113111526544257300220510ustar00rootroot00000000000000from weakref import WeakKeyDictionary from matplotlib.units import AxisInfo, ConversionInterface from unyt.array import unyt_array, unyt_quantity from unyt.unit_object import Unit class unyt_arrayConverter(ConversionInterface): """Matplotlib interface for unyt_array""" _instance = None _labelstyle = "()" _axisnames = WeakKeyDictionary() # ensure that unyt_arrayConverter is a singleton def __new__(cls): if unyt_arrayConverter._instance is None: unyt_arrayConverter._instance = super().__new__(cls) return unyt_arrayConverter._instance # When matplotlib first encounters a type in its units.registry, it will # call default_units to obtain the units. Then it calls axisinfo to # customize the axis - in our case, just set the label. Then matplotlib calls # convert. @staticmethod def axisinfo(unit, axis): """Set the axis label based on unit Parameters ---------- unit : Unit object, string, or tuple This parameter comes from unyt_arrayConverter.default_units() or from user code such as Axes.plot(), Axis.set_units(), etc. In user code, it is possible to convert the plotted units by specifying the new unit as a string, such as "ms", or as a tuple, such as ("J", "thermal") following the call signature of unyt_array.convert_to_units(). axis : Axis object Returns ------- AxisInfo object with the label formatted as in-line math latex """ if isinstance(unit, tuple): unit = unit[0] unit_obj = unit if isinstance(unit, Unit) else Unit(unit) name = unyt_arrayConverter._axisnames.get(axis, "") if unit_obj.is_dimensionless: label = name else: name += " " unit_str = unit_obj.latex_representation() if unyt_arrayConverter._labelstyle == "[]": label = name + "$\\left[" + unit_str + "\\right]$" elif unyt_arrayConverter._labelstyle == "/": axsym = "$q_{\\rm" + axis.axis_name + "}$" name = axsym if name == " " else name if "/" in unit_str: label = name + "$\\;/\\;\\left(" + unit_str + "\\right)$" else: label = name + "$\\;/\\;" + unit_str + "$" else: label = name + "$\\left(" + unit_str + "\\right)$" return AxisInfo(label=label.strip()) @staticmethod def default_units(x, axis): """Return the Unit object of the unyt_array x Parameters ---------- x : unyt_array axis : Axis object Returns ------- Unit object """ # In the case where the first matplotlib command is setting limits, # x may be a tuple of length two (with the same units). if isinstance(x, tuple): name = getattr(x[0], "name", "") units = x[0].units else: name = getattr(x, "name", "") units = x.units # maintain a mapping between Axis and name since Axis does not point to # its underlying data and we want to propagate the name to the axis # label in the subsequent call to axisinfo unyt_arrayConverter._axisnames[axis] = name if name is not None else "" return units @staticmethod def convert(value, unit, axis): """Convert the units of value to unit Parameters ---------- value : unyt_array, unyt_quantity, or sequence there of unit : Unit, string or tuple This parameter comes from unyt_arrayConverter.default_units() or from user code such as Axes.plot(), Axis.set_units(), etc. In user code, it is possible to convert the plotted units by specifying the new unit as a string, such as "ms", or as a tuple, such as ("J", "thermal") following the call signature of unyt_array.convert_to_units(). axis : Axis object Returns ------- unyt_array Raises ------ UnitConversionError if unit does not have the same dimensions as value or if we don't know how to convert value. """ converted_value = value if isinstance(unit, str) or isinstance(unit, Unit): unit = (unit,) if isinstance(value, (unyt_array, unyt_quantity)): converted_value = value.to(*unit) else: value_type = type(value) converted_value = [] for obj in value: converted_value.append(obj.to(*unit)) converted_value = value_type(converted_value) return converted_value unyt-3.2.0/unyt/_on_demand_imports.py000066400000000000000000000073101526544257300177420ustar00rootroot00000000000000""" A set of convenient on-demand imports """ from functools import wraps from importlib.util import find_spec class NotAModule: """ A class to implement an informative error message that will be outputted if someone tries to use an on-demand import without having the requisite package installed. """ def __init__(self, pkg_name, exc=None): self.pkg_name = pkg_name self._original_exception = exc error_note = ( f"Something went wrong while trying to lazy-import {pkg_name}. " f"Please make sure that {pkg_name} is properly installed.\n" "If the problem persists, please file an issue at " "https://github.com/yt-project/unyt/issues/new" ) if exc is None: self.error = ImportError(error_note) else: exc.add_note(error_note) self.error = exc def __getattr__(self, item): raise self.error def __call__(self, *args, **kwargs): raise self.error def __repr__(self) -> str: if self._original_exception is None: return f"NotAModule({self.pkg_name!r})" else: return f"NotAModule({self.pkg_name!r}, {self._original_exception!r})" class OnDemand: _default_factory: type[NotAModule] = NotAModule def __init_subclass__(cls): if not cls.__name__.endswith("_imports"): raise TypeError(f"class {cls}'s name needs to be suffixed '_imports'") def __new__(cls): if cls is OnDemand: raise TypeError("The OnDemand base class cannot be instantiated.") else: return object.__new__(cls) @property def _name(self) -> str: _name, _, _suffix = self.__class__.__name__.rpartition("_") return _name @property def __is_available__(self) -> bool: return find_spec(self._name) is not None def safe_import(func): @property @wraps(func) def inner(self): try: return func(self) except ImportError as exc: return self._default_factory(self._name, exc) return inner class astropy_imports(OnDemand): @safe_import def log(self): from astropy import log if log.exception_logging_enabled(): log.disable_exception_logging() return log @safe_import def units(self): from astropy import units self.log # noqa: B018 return units @safe_import def __version__(self): from astropy import __version__ return __version__ _astropy = astropy_imports() class h5py_imports(OnDemand): @safe_import def File(self): from h5py import File return File @safe_import def __version__(self): from h5py import __version__ return __version__ _h5py = h5py_imports() class pint_imports(OnDemand): @safe_import def UnitRegistry(self): from pint import UnitRegistry return UnitRegistry _pint = pint_imports() class matplotlib_imports(OnDemand): @safe_import def __version__(self): from matplotlib import __version__ return __version__ @safe_import def pyplot(self): from matplotlib import pyplot return pyplot @safe_import def units(self): from matplotlib import units return units @safe_import def use(self): from matplotlib import use return use _matplotlib = matplotlib_imports() class dask_imports(OnDemand): @safe_import def array(self): from dask import array return array @safe_import def __version__(self): from dask import __version__ return __version__ _dask = dask_imports() unyt-3.2.0/unyt/_parsing.py000066400000000000000000000052641526544257300157120ustar00rootroot00000000000000""" parsing utilities """ import token from sympy import Basic, Float, Integer, Rational, Symbol, sqrt from sympy.parsing.sympy_parser import auto_number, parse_expr, rationalize from unyt._unit_lookup_table import inv_name_alternatives from unyt.exceptions import UnitParseError def _auto_positive_symbol(tokens, local_dict, global_dict): """ Inserts calls to ``Symbol`` for undefined variables. Passes in positive=True as a keyword argument. Adapted from sympy.sympy.parsing.sympy_parser.auto_symbol """ result = [] tokens.append((None, None)) # so zip traverses all tokens for tok, nextTok in zip(tokens, tokens[1:]): tokNum, tokVal = tok nextTokNum, nextTokVal = nextTok if tokNum == token.NAME: name = tokVal if name in global_dict: obj = global_dict[name] if isinstance(obj, (Basic, type)) or callable(obj): result.append((token.NAME, name)) continue # try to resolve known alternative unit name try: used_name = inv_name_alternatives[str(name)] except KeyError: # if we don't know this name it's a user-defined unit name # so we should create a new symbol for it used_name = str(name) result.extend( [ (token.NAME, "Symbol"), (token.OP, "("), (token.NAME, repr(used_name)), (token.OP, ","), (token.NAME, "positive"), (token.OP, "="), (token.NAME, "True"), (token.OP, ")"), ] ) else: result.append((tokNum, tokVal)) return result global_dict = { "Symbol": Symbol, "Integer": Integer, "Float": Float, "Rational": Rational, "sqrt": sqrt, } unit_text_transform = (_auto_positive_symbol, auto_number, rationalize) def parse_unyt_expr(unit_expr): if not unit_expr: # Bug catch... # if unit_expr is an empty string, parse_expr fails hard... unit_expr = "1" # Avoid a parse error if someone uses the percent unit and the # parser tries to interpret it as the modulo operator unit_expr = unit_expr.replace("%", "percent") unit_expr = unit_expr.replace("°", "deg") try: unit_expr = parse_expr( unit_expr, global_dict=global_dict, transformations=unit_text_transform ) except Exception as e: msg = f"Unit expression '{unit_expr}' raised an error during parsing:\n{e!r}" raise UnitParseError(msg) return unit_expr unyt-3.2.0/unyt/_physical_ratios.py000066400000000000000000000142101526544257300174330ustar00rootroot00000000000000import numpy as np # # Physical Constants and Units Conversion Factors # # Values for these constants, unless otherwise noted, are drawn from IAU, # IUPAC, NIST, and NASA data, whichever is newer. # http://maia.usno.navy.mil/NSFA/IAU2009_consts.html # http://goldbook.iupac.org/list_goldbook_phys_constants_defs.html # http://physics.nist.gov/cuu/Constants/index.html # http://nssdc.gsfc.nasa.gov/planetary/factsheet/jupiterfact.html # Elementary masses mass_electron_kg = 9.10938291e-31 amu_kg = 1.660538921e-27 amu_grams = amu_kg * 1.0e3 mass_hydrogen_kg = 1.007947 * amu_kg mass_proton_kg = 1.672623110e-27 # Solar values (see Mamajek 2012) # https://sites.google.com/site/mamajeksstarnotes/bc-scale mass_sun_kg = 1.98841586e30 temp_sun_kelvin = 5870.0 luminosity_sun_watts = 3.8270e26 # Solar abundances from various references metallicity_sun = 0.01295 # Cloudy 17.03 metallicity_sun_angr = 0.01937 # Anders & Grevesse (1989) metallicity_sun_aspl = 0.01337 # Asplund et al. (2009) metallicity_sun_feld = 0.01909 # Feldman (1992) metallicity_sun_lodd = 0.01321 # Lodders (2003) # Conversion Factors: X au * mpc_per_au = Y mpc # length mpc_per_mpc = 1e0 mpc_per_kpc = 1e-3 mpc_per_pc = 1e-6 mpc_per_au = 4.84813682e-12 mpc_per_rsun = 2.253962e-14 mpc_per_rearth = 2.06470307893e-16 mpc_per_rjup = 2.26566120943e-15 mpc_per_miles = 5.21552871e-20 mpc_per_km = 3.24077929e-20 mpc_per_m = 3.24077929e-23 kpc_per_m = mpc_per_m / mpc_per_kpc pc_per_m = mpc_per_m / mpc_per_pc km_per_pc = 3.08567758e13 cm_per_pc = 3.08567758e18 cm_per_mpc = 3.08567758e21 km_per_m = 1e-3 km_per_cm = 1e-5 m_per_cm = 1e-2 ly_per_m = 1.05702341e-16 rsun_per_m = 1.4378145e-9 rearth_per_m = 1.56961033e-7 # Mean (volumetric) radius rjup_per_m = 1.43039006737e-8 # Mean (volumetric) radius au_per_m = 6.68458712e-12 ang_per_m = 1.0e10 m_per_fpc = 0.0324077929 kpc_per_mpc = 1.0 / mpc_per_kpc pc_per_mpc = 1.0 / mpc_per_pc au_per_mpc = 1.0 / mpc_per_au rsun_per_mpc = 1.0 / mpc_per_rsun rearth_per_mpc = 1.0 / mpc_per_rearth rjup_per_mpc = 1.0 / mpc_per_rjup miles_per_mpc = 1.0 / mpc_per_miles km_per_mpc = 1.0 / mpc_per_km m_per_mpc = 1.0 / mpc_per_m m_per_kpc = 1.0 / kpc_per_m m_per_km = 1.0 / km_per_m cm_per_km = 1.0 / km_per_cm cm_per_m = 1.0 / m_per_cm pc_per_km = 1.0 / km_per_pc m_per_pc = 1.0 / pc_per_m m_per_ly = 1.0 / ly_per_m m_per_rsun = 1.0 / rsun_per_m m_per_rearth = 1.0 / rearth_per_m m_per_rjup = 1.0 / rjup_per_m m_per_au = 1.0 / au_per_m m_per_ang = 1.0 / ang_per_m # time # "IAU Style Manual" by G.A. Wilkins, Comm. 5, in IAU Transactions XXB (1989) sec_per_Gyr = 31.5576e15 sec_per_Myr = 31.5576e12 sec_per_kyr = 31.5576e9 sec_per_year = 31.5576e6 sec_per_day = 86400.0 sec_per_hr = 3600.0 sec_per_min = 60.0 day_per_year = 365.25 # velocities, accelerations speed_of_light_m_per_s = 2.99792458e8 speed_of_light_cm_per_s = speed_of_light_m_per_s * 100.0 standard_gravity_m_per_s2 = 9.80665 # some constants newton_mks = 6.67408e-11 planck_mks = 6.62606957e-34 elementary_charge_C = 1.6021766208e-19 # permeability of Free Space mu_0 = 4.0e-7 * np.pi # permittivity of Free Space eps_0 = 1.0 / (speed_of_light_m_per_s**2 * mu_0) avogadros_number = 6.022141410704091e23 rydberg_constant_mks = ( 0.125 * mass_electron_kg * elementary_charge_C**4 / (eps_0**2 * planck_mks**3 * speed_of_light_m_per_s) ) # temperature / energy boltzmann_constant_J_per_K = 1.3806488e-23 erg_per_eV = 1.602176562e-12 J_per_eV = erg_per_eV * 1.0e-7 erg_per_keV = erg_per_eV * 1.0e3 J_per_keV = J_per_eV * 1.0e3 K_per_keV = J_per_keV / boltzmann_constant_J_per_K keV_per_K = 1.0 / K_per_keV keV_per_erg = 1.0 / erg_per_keV eV_per_erg = 1.0 / erg_per_eV kelvin_per_rankine = 5.0 / 9.0 watt_per_horsepower = 745.69987158227022 erg_per_s_per_watt = 1e7 J_per_BTU = 1055.0559 J_per_watt_hour = 3600 btu_per_mmbtu = 1e6 * J_per_BTU btu_per_therm = 1e5 * J_per_BTU btu_per_quad = 1e15 * J_per_BTU rydberg_unit_mks = planck_mks * speed_of_light_m_per_s * rydberg_constant_mks stefan_boltzmann_W_per_sqm_per_K4 = ( 2.0 * np.pi**5 * boltzmann_constant_J_per_K**4 / (15.0 * speed_of_light_m_per_s**2 * planck_mks**3) ) radiation_constant_J_per_m3_per_K4 = ( 4.0 * stefan_boltzmann_W_per_sqm_per_K4 / speed_of_light_m_per_s ) J_per_foe = 1.0e44 # Solar System masses # Standish, E.M. (1995) "Report of the IAU WGAS Sub-Group on Numerical # Standards", in Highlights of Astronomy (I. Appenzeller, ed.), Table 1, # Kluwer Academic Publishers, Dordrecht. # REMARK: following masses include whole systems (planet + moons) mass_jupiter_kg = mass_sun_kg / 1047.3486 mass_mercury_kg = mass_sun_kg / 6023600.0 mass_venus_kg = mass_sun_kg / 408523.71 mass_earth_kg = mass_sun_kg / 328900.56 mass_mars_kg = mass_sun_kg / 3098708.0 mass_saturn_kg = mass_sun_kg / 3497.898 mass_uranus_kg = mass_sun_kg / 22902.98 mass_neptune_kg = mass_sun_kg / 19412.24 # flux jansky_mks = 1.0e-26 # Cosmological constants # Calculated with H = 100 km/s/Mpc, value given in units of h^2 g cm^-3 # Multiply by h^2 to get the critical density in units of g cm^-3 rho_crit_g_cm3_h2 = 1.8788e-29 primordial_H_mass_fraction = 0.76 # Misc. Approximations mass_mean_atomic_cosmology = 1.22 mass_mean_atomic_galactic = 2.3 # Miscellaneous HUGE = 1.0e90 TINY = 1.0e-40 # Planck units hbar_mks = 0.5 * planck_mks / np.pi planck_mass_kg = np.sqrt(hbar_mks * speed_of_light_m_per_s / newton_mks) planck_length_m = np.sqrt(hbar_mks * newton_mks / speed_of_light_m_per_s**3) planck_time_s = planck_length_m / speed_of_light_m_per_s planck_energy_J = planck_mass_kg * speed_of_light_m_per_s * speed_of_light_m_per_s planck_temperature_K = planck_energy_J / boltzmann_constant_J_per_K planck_charge_C = np.sqrt(4.0 * np.pi * eps_0 * hbar_mks * speed_of_light_m_per_s) # Imperial and other non-metric units kg_per_pound = 0.45359237 pascal_per_atm = 101325.0 m_per_inch = 0.0254 m_per_ft = 0.3048 m_per_mile = 1609.344 m_per_nautical_mile = 1852.0 # https://en.wikipedia.org/wiki/Comparison_of_the_imperial_and_US_customary_measurement_systems uk_fl_oz_per_L = 0.0284130625e-3 us_fl_oz_per_L = 0.0295735295625e-3 # logarithmic units # IEC 60027-3: https://webstore.iec.ch/publication/94 # NIST Special Publication 811: https://www.nist.gov/pml/special-publication-811 neper_per_bel = np.log(10) / 2 unyt-3.2.0/unyt/_pint_conversions.py000066400000000000000000000030201526544257300176350ustar00rootroot00000000000000""" Stuff for pint conversions """ pint_aliases = { "meter": "m", "second": "s", "gram": "g", "joule": "J", "franklin": "esu", "dyne": "dyn", "parsec": "pc", "mole": "mol", "rankine": "R", "watt": "W", "pascal": "Pa", "tesla": "T", "kelvin": "K", "year": "yr", "minute": "min", "hour": "hr", "volt": "V", "ampere": "A", "foot": "ft", "coulomb": "C", "newton": "N", "hertz": "Hz", "arcsecond": "arcsec", "arcminute": "arcmin", "speed_of_light": "c", "esu_per_second": "statA", "atomic_mass_unit": "amu", "astronomical_unit": "au", "light_year": "ly", "electron_mass": "me", "proton_mass": "mp", } pint_prefixes = { "yotta": "Y", "zetta": "Z", "exa": "E", "peta": "P", "tera": "T", "giga": "G", "mega": "M", "kilo": "k", "deci": "d", "centi": "c", "milli": "m", "micro": "u", "nano": "n", "pico": "p", "femto": "f", "atto": "a", "zepto": "z", "yocto": "y", } def convert_pint_units(unit_expr): uexpr = unit_expr pfx = "" for prefix in pint_prefixes: if unit_expr.startswith(prefix): pfx = pint_prefixes[prefix] uexpr = uexpr[len(prefix) :] break if uexpr in pint_aliases: uexpr = pint_aliases[uexpr] if pfx == "": return uexpr else: return pfx + uexpr # If we can't figure it out just pass it and see # what happens return unit_expr unyt-3.2.0/unyt/_unit_lookup_table.py000066400000000000000000000721621526544257300177670ustar00rootroot00000000000000""" The default unit symbol lookup table. """ from collections import OrderedDict, defaultdict import numpy as np from unyt import dimensions from unyt._physical_ratios import ( J_per_BTU, J_per_eV, J_per_foe, J_per_watt_hour, amu_grams, amu_kg, avogadros_number, boltzmann_constant_J_per_K, btu_per_mmbtu, btu_per_quad, btu_per_therm, elementary_charge_C, eps_0, jansky_mks, kelvin_per_rankine, kg_per_pound, luminosity_sun_watts, m_per_ang, m_per_au, m_per_ft, m_per_inch, m_per_ly, m_per_mile, m_per_nautical_mile, m_per_pc, m_per_rearth, m_per_rjup, m_per_rsun, mass_earth_kg, mass_electron_kg, mass_hydrogen_kg, mass_jupiter_kg, mass_mars_kg, mass_mercury_kg, mass_neptune_kg, mass_proton_kg, mass_saturn_kg, mass_sun_kg, mass_uranus_kg, mass_venus_kg, metallicity_sun, metallicity_sun_angr, metallicity_sun_aspl, metallicity_sun_feld, metallicity_sun_lodd, mu_0, neper_per_bel, newton_mks, pascal_per_atm, planck_charge_C, planck_energy_J, planck_length_m, planck_mass_kg, planck_mks, planck_temperature_K, planck_time_s, radiation_constant_J_per_m3_per_K4, rydberg_constant_mks, rydberg_unit_mks, sec_per_day, sec_per_hr, sec_per_min, sec_per_year, speed_of_light_m_per_s, standard_gravity_m_per_s2, stefan_boltzmann_W_per_sqm_per_K4, temp_sun_kelvin, uk_fl_oz_per_L, us_fl_oz_per_L, watt_per_horsepower, ) # Lookup a unit symbol with the symbol string, and provide a tuple with the # conversion factor to cgs and dimensionality. default_unit_symbol_lut = OrderedDict( [ # base ("m", (1.0, dimensions.length, 0.0, r"\rm{m}", True)), ("g", (1.0e-3, dimensions.mass, 0.0, r"\rm{g}", True)), ("s", (1.0, dimensions.time, 0.0, r"\rm{s}", True)), ("K", (1.0, dimensions.temperature, 0.0, r"\rm{K}", True)), ("rad", (1.0, dimensions.angle, 0.0, r"\rm{rad}", True)), ("A", (1.0, dimensions.current_mks, 0.0, r"\rm{A}", True)), ("cd", (1.0, dimensions.luminous_intensity, 0.0, r"\rm{cd}", True)), ("mol", (1.0 / amu_grams, dimensions.dimensionless, 0.0, r"\rm{mol}", True)), # some cgs ("dyn", (1.0e-5, dimensions.force, 0.0, r"\rm{dyn}", True)), ("erg", (1.0e-7, dimensions.energy, 0.0, r"\rm{erg}", True)), ("Ba", (0.1, dimensions.pressure, 0.0, r"\rm{Ba}", True)), ("G", (0.1**0.5, dimensions.magnetic_field_cgs, 0.0, r"\rm{G}", True)), ("statC", (1.0e-3**1.5, dimensions.charge_cgs, 0.0, r"\rm{statC}", True)), ("statA", (1.0e-3**1.5, dimensions.current_cgs, 0.0, r"\rm{statA}", True)), ( "statV", ( 0.1 * 1.0e-3**0.5, dimensions.electric_potential_cgs, 0.0, r"\rm{statV}", True, ), ), ("statohm", (100.0, dimensions.resistance_cgs, 0.0, r"\rm{statohm}", True)), ("Mx", (1.0e-3**1.5, dimensions.magnetic_flux_cgs, 0.0, r"\rm{Mx}", True)), # some SI ("J", (1.0, dimensions.energy, 0.0, r"\rm{J}", True)), ("W", (1.0, dimensions.power, 0.0, r"\rm{W}", True)), ("Hz", (1.0, dimensions.rate, 0.0, r"\rm{Hz}", True)), ("N", (1.0, dimensions.force, 0.0, r"\rm{N}", True)), ("C", (1.0, dimensions.charge_mks, 0.0, r"\rm{C}", True)), ("T", (1.0, dimensions.magnetic_field_mks, 0.0, r"\rm{T}", True)), ("Pa", (1.0, dimensions.pressure, 0.0, r"\rm{Pa}", True)), ("bar", (1.0e5, dimensions.pressure, 0.0, r"\rm{bar}", True)), ("V", (1.0, dimensions.electric_potential, 0.0, r"\rm{V}", True)), ("F", (1.0, dimensions.capacitance, 0.0, r"\rm{F}", True)), ("H", (1.0, dimensions.inductance, 0.0, r"\rm{H}", True)), ("Ω", (1.0, dimensions.resistance, 0.0, r"\Omega", True)), ("Wb", (1.0, dimensions.magnetic_flux, 0.0, r"\rm{Wb}", True)), ("lm", (1.0, dimensions.luminous_flux, 0.0, r"\rm{lm}", True)), ( "lx", (1.0, dimensions.luminous_flux / dimensions.area, 0.0, r"\rm{lx}", True), ), ("degC", (1.0, dimensions.temperature, -273.15, r"^\circ\rm{C}", True)), ("delta_degC", (1.0, dimensions.temperature, 0, r"\Delta^\circ\rm{C}", True)), ("L", (1e-3, dimensions.volume, 0, r"\rm{L}", True)), ("ha", (1.0e4, dimensions.area, 0.0, r"\rm{ha}", False)), ("t", (1.0e3, dimensions.mass, 0.0, r"\rm{t}", False)), # Imperial and other non-metric units ("mil", (1e-3 * m_per_inch, dimensions.length, 0.0, r"\rm{mil}", False)), ("inch", (m_per_inch, dimensions.length, 0.0, r"\rm{in}", False)), ("ft", (m_per_ft, dimensions.length, 0.0, r"\rm{ft}", False)), ("yd", (0.9144, dimensions.length, 0.0, r"\rm{yd}", False)), ("mile", (m_per_mile, dimensions.length, 0.0, r"\rm{mile}", False)), ("nmi", (m_per_nautical_mile, dimensions.length, 0.0, r"\rm{nmi}", False)), ( "mph", (m_per_mile / sec_per_hr, dimensions.velocity, 0.0, r"\rm{mph}", False), ), ( "kt", ( m_per_nautical_mile / sec_per_hr, dimensions.velocity, 0.0, r"\rm{kt}", False, ), ), ("acre", (4046.8564224, dimensions.area, 0.0, r"\rm{acre}", False)), ("furlong", (m_per_ft * 660.0, dimensions.length, 0.0, r"\rm{fur}", False)), ( "degF", ( kelvin_per_rankine, dimensions.temperature, -459.67, r"^\circ\rm{F}", False, ), ), ( "delta_degF", ( kelvin_per_rankine, dimensions.temperature, 0.0, r"\Delta^\circ\rm{F}", False, ), ), ( "R", (kelvin_per_rankine, dimensions.temperature, 0.0, r"^\circ\rm{R}", False), ), ( "lbf", ( kg_per_pound * standard_gravity_m_per_s2, dimensions.force, 0.0, r"\rm{lbf}", False, ), ), ( "kip", ( 1000 * kg_per_pound * standard_gravity_m_per_s2, dimensions.force, 0.0, r"\rm{kip}", False, ), ), ("lb", (kg_per_pound, dimensions.mass, 0.0, r"\rm{lb}", False)), ("atm", (pascal_per_atm, dimensions.pressure, 0.0, r"\rm{atm}", False)), ("hp", (watt_per_horsepower, dimensions.power, 0.0, r"\rm{hp}", False)), ("oz", (kg_per_pound / 16.0, dimensions.mass, 0.0, r"\rm{oz}", False)), ("ton", (kg_per_pound * 2000.0, dimensions.mass, 0.0, r"\rm{US ton}", False)), ( "ton_UK", (kg_per_pound * 2240.0, dimensions.mass, 0.0, r"\rm{UK ton}", False), ), ( "slug", ( kg_per_pound * standard_gravity_m_per_s2 / m_per_ft, dimensions.mass, 0.0, r"\rm{slug}", False, ), ), ("fl_oz_US", (us_fl_oz_per_L, dimensions.volume, 0.0, r"\rm{US fl oz}", False)), ("fl_oz_UK", (uk_fl_oz_per_L, dimensions.volume, 0.0, r"\rm{UK fl oz}", False)), ( "pt_US", (us_fl_oz_per_L * 16.0, dimensions.volume, 0.0, r"\rm{US pt}", False), ), ( "pt_UK", (uk_fl_oz_per_L * 20.0, dimensions.volume, 0.0, r"\rm{UK pt}", False), ), ( "qt_US", (us_fl_oz_per_L * 32.0, dimensions.volume, 0.0, r"\rm{US qt}", False), ), ( "qt_UK", (uk_fl_oz_per_L * 40.0, dimensions.volume, 0.0, r"\rm{UK qt}", False), ), ( "gal_US", (us_fl_oz_per_L * 128.0, dimensions.volume, 0.0, r"\rm{US gal}", False), ), ( "gal_UK", (uk_fl_oz_per_L * 160.0, dimensions.volume, 0.0, r"\rm{UK gal}", False), ), ("cal", (4.184, dimensions.energy, 0.0, r"\rm{cal}", True)), ("BTU", (J_per_BTU, dimensions.energy, 0.0, r"\rm{BTU}", False)), ("MMBTU", (btu_per_mmbtu, dimensions.energy, 0.0, r"\rm{MMBTU}", False)), ("therm", (btu_per_therm, dimensions.energy, 0.0, r"\rm{therm}", False)), ("quad", (btu_per_quad, dimensions.energy, 0.0, r"\rm{quad}", False)), ("Wh", (J_per_watt_hour, dimensions.energy, 0.0, r"\rm{Wh}", True)), ( "pli", ( kg_per_pound * standard_gravity_m_per_s2 / m_per_inch, dimensions.tension, 0.0, r"\rm{pli}", False, ), ), ( "plf", ( kg_per_pound * standard_gravity_m_per_s2 / m_per_ft, dimensions.tension, 0.0, r"\rm{plf}", False, ), ), ( "psi", ( kg_per_pound * standard_gravity_m_per_s2 / m_per_inch**2, dimensions.pressure, 0.0, r"\rm{psi}", False, ), ), ( "psf", ( kg_per_pound * standard_gravity_m_per_s2 / m_per_ft**2, dimensions.pressure, 0.0, r"\rm{psf}", False, ), ), ( "kli", ( 1000 * kg_per_pound * standard_gravity_m_per_s2 / m_per_inch, dimensions.tension, 0.0, r"\rm{kli}", False, ), ), ( "klf", ( 1000 * kg_per_pound * standard_gravity_m_per_s2 / m_per_ft, dimensions.tension, 0.0, r"\rm{klf}", False, ), ), ( "ksi", ( 1000 * kg_per_pound * standard_gravity_m_per_s2 / m_per_inch**2, dimensions.pressure, 0.0, r"\rm{ksi}", False, ), ), ( "ksf", ( 1000 * kg_per_pound * standard_gravity_m_per_s2 / m_per_ft**2, dimensions.pressure, 0.0, r"\rm{ksf}", False, ), ), ("smoot", (1.7018, dimensions.length, 0.0, r"\rm{smoot}", False)), # dimensionless stuff ("dimensionless", (1.0, dimensions.dimensionless, 0.0, r"", False)), ("%", (0.01, dimensions.dimensionless, 0.0, r"\%", False)), # times ("min", (sec_per_min, dimensions.time, 0.0, r"\rm{min}", False)), ("hr", (sec_per_hr, dimensions.time, 0.0, r"\rm{hr}", False)), ("day", (sec_per_day, dimensions.time, 0.0, r"\rm{d}", False)), ("week", (7.0 * sec_per_day, dimensions.time, 0.0, r"\rm{week}", False)), ( "fortnight", (14.0 * sec_per_day, dimensions.time, 0.0, r"\rm{fortnight}", False), ), ("yr", (sec_per_year, dimensions.time, 0.0, r"\rm{yr}", True)), # Velocities ("c", (speed_of_light_m_per_s, dimensions.velocity, 0.0, r"\rm{c}", False)), # Solar units ("Msun", (mass_sun_kg, dimensions.mass, 0.0, r"\rm{M}_\odot", False)), ("Rsun", (m_per_rsun, dimensions.length, 0.0, r"\rm{R}_\odot", False)), ("Lsun", (luminosity_sun_watts, dimensions.power, 0.0, r"\rm{L}_\odot", False)), ( "Tsun", (temp_sun_kelvin, dimensions.temperature, 0.0, r"\rm{T}_\odot", False), ), ( "Zsun", (metallicity_sun, dimensions.dimensionless, 0.0, r"\rm{Z}_\odot", False), ), ( "Zsun_angr", ( metallicity_sun_angr, dimensions.dimensionless, 0.0, r"\rm{Z}_\odot", False, ), ), ( "Zsun_aspl", ( metallicity_sun_aspl, dimensions.dimensionless, 0.0, r"\rm{Z}_\odot", False, ), ), ( "Zsun_feld", ( metallicity_sun_feld, dimensions.dimensionless, 0.0, r"\rm{Z}_\odot", False, ), ), ( "Zsun_lodd", ( metallicity_sun_lodd, dimensions.dimensionless, 0.0, r"\rm{Z}_\odot", False, ), ), ("Mjup", (mass_jupiter_kg, dimensions.mass, 0.0, r"\rm{M}_{\rm{Jup}}", False)), ("Mearth", (mass_earth_kg, dimensions.mass, 0.0, r"\rm{M}_\oplus", False)), ("Rjup", (m_per_rjup, dimensions.length, 0.0, r"\rm{R}_\mathrm{Jup}", False)), ("Rearth", (m_per_rearth, dimensions.length, 0.0, r"\rm{R}_\oplus", False)), # astro distances ("AU", (m_per_au, dimensions.length, 0.0, r"\rm{AU}", False)), ("ly", (m_per_ly, dimensions.length, 0.0, r"\rm{ly}", False)), ("pc", (m_per_pc, dimensions.length, 0.0, r"\rm{pc}", True)), # angles ("degree", (np.pi / 180.0, dimensions.angle, 0.0, r"^\circ", False)), ("arcmin", (np.pi / 10800.0, dimensions.angle, 0.0, r"\rm{arcmin}", False)), ("arcsec", (np.pi / 648000.0, dimensions.angle, 0.0, r"\rm{arcsec}", False)), ("mas", (np.pi / 648000000.0, dimensions.angle, 0.0, r"\rm{mas}", False)), ("hourangle", (np.pi / 12.0, dimensions.angle, 0.0, r"\rm{HA}", False)), ("sr", (1.0, dimensions.solid_angle, 0.0, r"\rm{sr}", False)), ("lat", (-np.pi / 180.0, dimensions.angle, 90.0, r"\rm{Latitude}", False)), ("lon", (np.pi / 180.0, dimensions.angle, -180.0, r"\rm{Longitude}", False)), ( "rpm", (2.0 * np.pi / 60.0, dimensions.angular_frequency, 0.0, r"\rm{RPM}", False), ), ( "rev", (2.0 * np.pi, dimensions.angle, 0.0, r"\rm{rev}", False), ), ("spat", (4.0 * np.pi, dimensions.solid_angle, 0.0, r"\rm{sp}", False)), ("gradian", (np.pi / 200.0, dimensions.angle, 0.0, r"^\rm{g}", False)), # misc ("eV", (J_per_eV, dimensions.energy, 0.0, r"\rm{eV}", True)), # note: 1 foe = 1 Bethe ("foe", (J_per_foe, dimensions.energy, 0.0, r"\rm{foe}", False)), ("bethe", (J_per_foe, dimensions.energy, 0.0, r"\rm{B}", False)), ("amu", (amu_kg, dimensions.mass, 0.0, r"\rm{amu}", False)), ("Ã…", (m_per_ang, dimensions.length, 0.0, r"\AA", False)), ("Jy", (jansky_mks, dimensions.specific_flux, 0.0, r"\rm{Jy}", True)), ("counts", (1.0, dimensions.dimensionless, 0.0, r"\rm{counts}", False)), ("photons", (1.0, dimensions.dimensionless, 0.0, r"\rm{photons}", False)), ("me", (mass_electron_kg, dimensions.mass, 0.0, r"m_e", False)), ("mp", (mass_hydrogen_kg, dimensions.mass, 0.0, r"m_p", False)), ("Sv", (1.0, dimensions.specific_energy, 0.0, r"\rm{Sv}", True)), ("Ry", (rydberg_unit_mks, dimensions.energy, 0.0, r"\rm{Ry}", False)), ( "rayleigh", (2.5e9 / np.pi, dimensions.count_intensity, 0.0, r"\rm{R}", False), ), ("lambert", (1.0e4 / np.pi, dimensions.luminance, 0.0, r"\rm{L}", False)), ("nt", (1.0, dimensions.luminance, 0.0, r"\rm{nt}", False)), # Planck units ("m_pl", (planck_mass_kg, dimensions.mass, 0.0, r"m_{\rm{P}}", False)), ("l_pl", (planck_length_m, dimensions.length, 0.0, r"\ell_{\rm{P}}", False)), ("t_pl", (planck_time_s, dimensions.time, 0.0, r"t_{\rm{P}}", False)), ( "T_pl", (planck_temperature_K, dimensions.temperature, 0.0, r"T_{\rm{P}}", False), ), ("q_pl", (planck_charge_C, dimensions.charge_mks, 0.0, r"q_{\rm{P}}", False)), ("E_pl", (planck_energy_J, dimensions.energy, 0.0, r"E_{\rm{P}}", False)), # Geometrized units ("m_geom", (mass_sun_kg, dimensions.mass, 0.0, r"\rm{M}_\odot", False)), ( "l_geom", ( newton_mks * mass_sun_kg / speed_of_light_m_per_s**2, dimensions.length, 0.0, r"\rm{M}_\odot", False, ), ), ( "t_geom", ( newton_mks * mass_sun_kg / speed_of_light_m_per_s**3, dimensions.time, 0.0, r"\rm{M}_\odot", False, ), ), # logarithmic units ("B", (neper_per_bel, dimensions.logarithmic, 0.0, r"\rm{B}", True)), ("Np", (1.0, dimensions.logarithmic, 0.0, r"\rm{Np}", True)), ] ) # This dictionary formatting from magnitude package, credit to Juan Reyero. unit_prefixes = OrderedDict( [ ("Y", (1e24, "yotta")), ("Z", (1e21, "zetta")), ("E", (1e18, "exa")), ("P", (1e15, "peta")), ("T", (1e12, "tera")), ("G", (1e9, "giga")), ("M", (1e6, "mega")), ("k", (1e3, "kilo")), ("h", (1e2, "hecto")), ("da", (1e1, "deca")), ("d", (1e-1, "deci")), ("c", (1e-2, "centi")), ("m", (1e-3, "mili")), # typo, kept for backward compatibility ("m", (1e-3, "milli")), ("µ", (1e-6, "micro")), # ('MICRO SIGN' U+00B5) ("u", (1e-6, "micro")), ("μ", (1e-6, "micro")), # ('GREEK SMALL LETTER MU' U+03BC) ("n", (1e-9, "nano")), ("p", (1e-12, "pico")), ("f", (1e-15, "femto")), ("a", (1e-18, "atto")), ("z", (1e-21, "zepto")), ("y", (1e-24, "yocto")), ] ) default_base_units = { dimensions.mass: "kg", dimensions.length: "m", dimensions.time: "s", dimensions.temperature: "K", dimensions.angle: "radian", dimensions.current_mks: "A", dimensions.luminous_intensity: "cd", } physical_constants = OrderedDict( [ ("me", (mass_electron_kg, "kg", ["mass_electron", "electron_mass"])), ("Na", (avogadros_number, "mol**-1", ["Avogadros_number", "avogadros_number"])), ("mp", (mass_proton_kg, "kg", ["proton_mass", "mass_proton"])), ("mh", (mass_hydrogen_kg, "kg", ["hydrogen_mass", "mass_hydrogen"])), ("c", (speed_of_light_m_per_s, "m/s", ["clight", "speed_of_light"])), ( "σ_T", ( 6.65245854533e-29, "m**2", [ "sigma_thompson", "thompson_cross_section", "cross_section_thompson", ] # typos, kept for backwards compatibility + ["sigma_thomson", "thomson_cross_section", "cross_section_thomson"], ), ), ( "qp", ( elementary_charge_C, "C", ["proton_charge", "elementary_charge", "charge_proton"], ), ), ("qe", (-elementary_charge_C, "C", ["electron_charge", "charge_electron"])), ("kb", (boltzmann_constant_J_per_K, "J/K", ["kboltz", "boltzmann_constant"])), ( "G", ( newton_mks, "m**3/kg/s**2", ["newtons_constant", "gravitational_constant"], ), ), ("h", (planck_mks, "J*s", ["planck_constant"])), ("hbar", (0.5 * planck_mks / np.pi, "J*s", ["reduced_planck_constant"])), ( "σ", ( stefan_boltzmann_W_per_sqm_per_K4, "W/m**2/K**4", ["stefan_boltzmann_constant"], ), ), ( "a", ( radiation_constant_J_per_m3_per_K4, "J/m**3/K**4", ["radiation_density_constant"], ), ), ("Tcmb", (2.726, "K", ["CMB_temperature"])), ( "Msun", ( mass_sun_kg, "kg", ["msun", "m_sun", "m_Sun", "M_sun", "M_Sun", "solar_mass", "mass_sun"], ), ), ("Mjup", (mass_jupiter_kg, "kg", ["mjup", "jupiter_mass", "mass_jupiter"])), ("mercury_mass", (mass_mercury_kg, "kg", ["mass_mercury"])), ("venus_mass", (mass_venus_kg, "kg", ["mass_venus"])), ("Mearth", (mass_earth_kg, "kg", ["mearth", "earth_mass", "mass_earth"])), ("mars_mass", (mass_mars_kg, "kg", ["mass_mars"])), ("saturn_mass", (mass_saturn_kg, "kg", ["mass_saturn"])), ("uranus_mass", (mass_uranus_kg, "kg", ["mass_uranus"])), ("neptune_mass", (mass_neptune_kg, "kg", ["mass_neptune"])), ("m_pl", (planck_mass_kg, "kg", ["planck_mass"])), ("l_pl", (planck_length_m, "m", ["planck_length"])), ("t_pl", (planck_time_s, "s", ["planck_time"])), ("E_pl", (planck_energy_J, "J", ["planck_energy"])), ("q_pl", (planck_charge_C, "C", ["planck_charge"])), ("T_pl", (planck_temperature_K, "K", ["planck_temperature"])), ("mu_0", (mu_0, "N/A**2", ["vacuum_permeability", "magnetic_constant", "μ_0"])), ( "eps_0", ( eps_0, "C**2/N/m**2", ["vacuum_permittivity", "electric_constant", "ε_0", "epsilon_0"], ), ), ("R_inf", (rydberg_constant_mks, "m**-1", ["rydberg_constant", "R_∞"])), ("standard_gravity", (standard_gravity_m_per_s2, "m/s**2", [])), ] ) default_unit_name_alternatives = OrderedDict( [ # base ("m", ("meter", "metre")), ("g", ("gram", "gramme")), ("s", ("second",)), ("K", ("degree_kelvin", "kelvin")), ("rad", ("radian",)), ("A", ("ampere", "amp", "Amp")), ("cd", ("candela",)), ("mol", ("mole",)), # some cgs ("dyn", ("dyne",)), ("erg", ("ergs",)), ("Ba", ("barye",)), ("G", ("gauss",)), ("statC", ("statcoulomb", "esu", "ESU", "electrostatic_unit")), ("statA", ("statampere",)), ("statV", ("statvolt",)), ("Mx", ("maxwell",)), # some SI ("J", ("joule",)), ("W", ("watt",)), ("Hz", ("hertz",)), ("N", ("newton",)), ("C", ("coulomb",)), ("T", ("tesla",)), ("Pa", ("pascal",)), ("V", ("volt",)), ("F", ("farad",)), ("H", ("henry",)), ("Ω", ("ohm", "Ohm")), ("Wb", ("weber",)), ("lm", ("lumen",)), ("lx", ("lux",)), ("degC", ("degree_celsius", "degree_Celsius", "celcius", "celsius", "°C")), ("L", ("liter", "litre", "l")), ("ha", ("hectare",)), ( "t", ( "tonne", "metric_ton", ), ), # Imperial and other non-metric units ("mil", ("thou", "thousandth")), ("inch", ("in",)), ("ft", ("foot",)), ("yd", ("yard",)), ("furlong", ("fur",)), ("degF", ("degree_fahrenheit", "degree_Fahrenheit", "fahrenheit", "°F")), ("R", ("degree_rankine", "rankine")), ("lbf", ("pound_force",)), ("kip", ("kilopound", "kipf")), ("lb", ("pound", "pound_mass", "lbm")), ("ton", ("ton_US", "ton_US_short", "short_ton")), ("ton_UK", ("ton_US_long", "long_ton")), ("atm", ("atmosphere",)), ("hp", ("horsepower",)), ("oz", ("ounce",)), ("nmi", ("nautical_mile",)), ("fl_oz_US", ("fluid_ounce_US",)), ("fl_oz_UK", ("fluid_ounce_UK",)), ("pt_US", ("pint_US",)), ("pt_UK", ("pint_UK",)), ("qt_US", ("quart_US",)), ("qt_UK", ("quart_UK",)), ("gal_US", ("gallon_US",)), ("gal_UK", ("gallon_UK",)), ("kt", ("knot",)), ("cal", ("calorie",)), ( "BTU", ( "british_thermal_unit", "btu", ), ), ("MMBTU", ("mmbtu",)), ("therm", ("therms",)), ("quad", ("quads",)), ( "Wh", ( "watt_hour", "watt_hours", ), ), ("pli", ("pounds_per_inch",)), ("plf", ("pounds_per_ft",)), ("psi", ("pounds_per_square_inch",)), ("psf", ("pounds_per_square_ft",)), ("kli", ("kips_per_inch",)), ("klf", ("kips_per_ft",)), ("ksi", ("kips_per_square_inch",)), ("ksf", ("kips_per_square_ft",)), # dimensionless stuff ("dimensionless", ("_", "")), ("B", ("bel",)), ("Np", ("neper",)), # times ("min", ("minute",)), ("hr", ("hour",)), ("day", ("d",)), ("yr", ("year",)), # Solar units ( "Msun", ("msun", "m_sun", "M_sun", "m_Sun", "solar_mass", "solMass", "mass_sun"), ), ("Rsun", ("rsun", "r_sun", "R_sun", "r_Sun", "solar_radius", "solRadius")), ( "Lsun", ("lsun", "l_sun", "L_sun", "l_Sun", "solar_luminosity", "solLuminosity"), ), ( "Tsun", ("t_sun", "tsun", "T_sun", "t_Sun", "solar_temperature", "solTemperature"), ), ( "Zsun", ("z_sun", "zsun", "Z_sun", "z_Sun", "solar_metallicity", "solMetallicity"), ), ("Mjup", ("m_jup", "jupiter_mass")), ("Mearth", ("m_earth", "earth_mass")), ("Rjup", ("r_jup", "jupiter_radius")), ("Rearth", ("r_earth", "earth_radius")), # astro distances ("AU", ("au", "astronomical_unit")), ("pc", ("parsec",)), ("ly", ("light_year",)), # angles ("degree", ("deg",)), ("arcmin", ("arcminute",)), ("arcsec", ("arcsecond",)), ("mas", ("milliarcsecond",)), ("hourangle", ("HA",)), ("sr", ("steradian",)), ("lat", ("latitude", "degree_latitude")), ("lon", ("longitude", "degree_longitude")), ("rev", ("revolution", "turn", "pla")), ("gradian", ("gon",)), # misc ("eV", ("electronvolt",)), ("amu", ("atomic_mass_unit",)), ("Ã…", ("angstrom",)), ("Jy", ("jansky",)), ("counts", ("count",)), ("photons", ("photon",)), ("me", ("electron_mass",)), ("mp", ("proton_mass",)), ("Sv", ("sievert",)), ("nt", ("nit",)), ("%", ("percent",)), # Planck units ("m_pl", ("planck_mass",)), ("l_pl", ("planck_length",)), ("t_pl", ("planck_time",)), ("T_pl", ("planck_temperature",)), ("q_pl", ("planck_charge",)), ("E_pl", ("planck_energy",)), ] ) def generate_name_alternatives(): names = defaultdict(list) inv_names = {} seen = set() def append_name(n, okey, key): if key not in seen: n.append(key) inv_names[key] = okey seen.add(key) else: if okey[0] not in ["u", "μ"]: raise RuntimeError( # pragma: no cover f"Duplicate unit name found: {key}, {okey}" ) for key, entry in default_unit_symbol_lut.items(): append_name(names[key], key, key) # Are we SI prefixable or not? if entry[4]: for prefix in unit_prefixes: # This is specifically to work around # https://github.com/yt-project/unyt/issues/145 if prefix in ["u", "μ", "µ"]: used_prefix = "μ" else: used_prefix = prefix append_name(names[prefix + key], used_prefix + key, prefix + key) elif len(key) > 3 and key.title() != key: if all(len(k) > 3 for k in key.split("_")): append_name(names[key], key, key.title()) if key in default_unit_name_alternatives: alternatives = default_unit_name_alternatives[key] # Are we SI prefixable or not? if entry[4]: for a in alternatives: for up, up_data in unit_prefixes.items(): if len(a) < 4: append_name(names[up + key], up + key, up + a) alt = up_data[1] + a if alt not in seen: append_name(names[up + key], up + key, alt) if alt.title() not in names[up + key]: append_name(names[up + key], up + key, alt.title()) for alt in alternatives: append_name(names[key], key, alt) if not alt.islower() or len(alt) < 4: continue if alt.title() not in names[key]: append_name(names[key], key, alt.title()) return names, inv_names name_alternatives, inv_name_alternatives = generate_name_alternatives() unyt-3.2.0/unyt/array.py000066400000000000000000002627751526544257300152420ustar00rootroot00000000000000""" unyt_array class. """ import copy import re import sys import warnings from functools import lru_cache from importlib.metadata import version from numbers import Number as numeric_type import numpy as np from numpy import ( absolute, add, arccos, arccosh, arcsin, arcsinh, arctan, arctan2, arctanh, bitwise_and, bitwise_or, bitwise_xor, cbrt, ceil, clip, conj, copysign, cos, cosh, deg2rad, divide, divmod as divmod_, equal, exp, exp2, expm1, fabs, floor, floor_divide, fmax, fmin, fmod, frexp, greater, greater_equal, heaviside, hypot, invert, iscomplex, isfinite, isinf, isnan, isnat, isreal, ldexp, left_shift, less, less_equal, log, log1p, log2, log10, logaddexp, logaddexp2, logical_and, logical_not, logical_or, logical_xor, matmul, maximum, minimum, mod, modf, multiply, negative, nextafter, not_equal, ones_like, positive, power, rad2deg, reciprocal, remainder, right_shift, rint, sign, signbit, sin, sinh, spacing, sqrt, square, subtract, tan, tanh, true_divide, trunc, ) from packaging.version import Version from sympy import Rational from unyt._on_demand_imports import _astropy, _dask, _pint from unyt._pint_conversions import convert_pint_units from unyt._unit_lookup_table import default_unit_symbol_lut from unyt.dimensions import angle, temperature from unyt.equivalencies import equivalence_registry from unyt.exceptions import ( InvalidUnitEquivalence, InvalidUnitOperation, IterableUnitCoercionError, MKSCGSConversionError, SymbolNotFoundError, UnitConversionError, UnitOperationError, UnitsNotReducible, ) from unyt.unit_object import Unit, _check_em_conversion, _em_conversion from unyt.unit_registry import ( UnitRegistry, _correct_old_unit_registry, _sanitize_unit_system, default_unit_registry, ) from unyt.unit_symbols import delta_degC, delta_degF from ._deprecation import warn_deprecated NUMPY_VERSION = Version(version("numpy")) if NUMPY_VERSION >= Version("2.0.0.dev0"): from numpy import vecdot NULL_UNIT = Unit() POWER_MAPPING = {multiply: lambda x: x, divide: lambda x: 2 - x} DISALLOWED_DTYPES = ( "S", # bytestring "a", # bytestring "U", # (unicode) bytes "O", # Python object "M", # datetime "m", # timedelta ) __doctest_requires__ = { ("unyt_array.from_pint", "unyt_array.to_pint"): ["pint"], ("unyt_array.from_astropy", "unyt_array.to_astropy"): ["astropy"], } _COPY_IF_NEEDED = None if Version(version("numpy")) >= Version("2.0.0dev0") else False # This is partially adapted from the following SO thread # https://stackoverflow.com/questions/41668588/regex-to-match-scientific-notation _NUMB_PATTERN = ( r"[+/-]?(?:((?:\d\.?\d*[Ee][+\-]?\d+)|(?:\d+\.\d*|\d*\.\d+))|\d+|inf\s|nan\s)" ) # *all* greek letters are considered valid unit string elements. # This may be an overshoot. We rely on unyt.Unit to do the actual validation _UNIT_PATTERN = r"((\s*[*/]\s*)?[α-ωΑ-Ωa-zA-Z]+(\*\*([+-]?\d+|\([+-]?\d+\)))?)+" _QUAN_PATTERN = rf"{_NUMB_PATTERN}\s*{_UNIT_PATTERN}" _NUMB_REGEXP = re.compile(_NUMB_PATTERN) _UNIT_REGEXP = re.compile(_UNIT_PATTERN) _QUAN_REGEXP = re.compile(_QUAN_PATTERN) def _iterable(obj): try: len(obj) except Exception: return False return True @lru_cache(maxsize=128, typed=False) def _sqrt_unit(unit): return 1, unit**0.5 @lru_cache(maxsize=128, typed=False) def _cbrt_unit(unit): return 1, unit ** (1.0 / 3.0) @lru_cache(maxsize=128, typed=False) def _multiply_units(unit1, unit2): try: ret = (unit1 * unit2).simplify() except SymbolNotFoundError: # Some operators are not natively commutative when operands are # defined within different unit registries, and conversion # is defined one way but not the other. ret = (unit2 * unit1).simplify() return ret.as_coeff_unit() @lru_cache(maxsize=128, typed=False) def _preserve_units(unit1, unit2=None): if unit2 is None or unit1.dimensions is not temperature: return 1, unit1 if unit1.base_offset == 0.0 and unit2.base_offset != 0.0: return 1, unit2 return 1, unit1 @lru_cache(maxsize=128, typed=False) def _difference_units(unit1, unit2=None): if unit1.dimensions is not temperature: return _preserve_units(unit1, unit2) s1 = repr(unit1) if unit2 is not None and unit2 != unit1: s2 = repr(unit2) if s1 in s2 and s2.startswith("delta_"): return 1, unit1 elif s2 in s1 and s1.startswith("delta_"): return 1, unit2 else: raise InvalidUnitOperation( "Quantities with units of Fahrenheit or Celsius " "cannot be multiplied, divided, subtracted or " "added with data that has different units." ) if unit1.base_offset == 0.0: return 1, unit1 if s1 == "degF": return 1, delta_degF elif s1 == "degC": return 1, delta_degC else: # This is supposed to be unreachable raise RuntimeError( "Could not determine difference temperature units " f"in operation ({unit1} - {unit2}).\n" "If you see this error please file an issue at " "https://github.com/yt-project/unyt/issues/new" ) @lru_cache(maxsize=128, typed=False) def _power_unit(unit, power): return 1, unit**power @lru_cache(maxsize=128, typed=False) def _square_unit(unit): return 1, unit * unit @lru_cache(maxsize=128, typed=False) def _divide_units(unit1, unit2): try: ret = (unit1 / unit2).simplify() except SymbolNotFoundError: ret = (1 / (unit2 / unit1).simplify()).units return ret.as_coeff_unit() @lru_cache(maxsize=128, typed=False) def _reciprocal_unit(unit): return 1, unit**-1 def _passthrough_unit(unit, unit2=None): return 1, unit def _return_without_unit(unit, unit2=None): return 1, None def _arctan2_unit(unit1, unit2): return 1, NULL_UNIT def _comparison_unit(unit1, unit2=None): return 1, None def _invert_units(unit): raise TypeError("Bit-twiddling operators are not defined for unyt_array instances") def _bitop_units(unit1, unit2): raise TypeError("Bit-twiddling operators are not defined for unyt_array instances") def _coerce_iterable_units(input_object, registry=None): if isinstance(input_object, np.ndarray): ret = input_object elif _iterable(input_object): if any(isinstance(o, unyt_array) for o in input_object): ff = getattr(input_object[0], "units", NULL_UNIT) if any(ff != getattr(_, "units", NULL_UNIT) for _ in input_object): ret = [] for datum in input_object: try: ret.append(datum.in_units(ff.units)) except UnitConversionError: raise IterableUnitCoercionError(str(input_object)) ret = unyt_array(np.array(ret), ff, registry=registry) # This will create a copy of the data in the iterable. else: ret = unyt_array(np.array(input_object), ff, registry=registry) else: ret = np.asarray(input_object) else: ret = np.asarray(input_object) if ret.dtype.char in DISALLOWED_DTYPES: raise IterableUnitCoercionError(str(input_object)) return ret def _sanitize_units_convert(possible_units, registry): if isinstance(possible_units, Unit): return possible_units # let Unit() try to parse this if it's not already a Unit unit = Unit(possible_units, registry=registry) return unit def _apply_power_mapping(ufunc, in_unit, in_size, in_shape, input_kwarg_dict): # a reduction of a multiply or divide corresponds to # a repeated product which we implement as an exponent mul = 1 power_map = POWER_MAPPING[ufunc] if input_kwarg_dict.get("axis", None) is not None: unit = in_unit ** (power_map(in_shape[input_kwarg_dict["axis"]])) else: unit = in_unit ** (power_map(in_size)) return mul, unit unary_operators = ( negative, absolute, rint, sign, conj, exp, exp2, log, log2, log10, expm1, log1p, sqrt, cbrt, square, reciprocal, sin, cos, tan, arcsin, arccos, arctan, sinh, cosh, tanh, arcsinh, arccosh, arctanh, deg2rad, rad2deg, invert, logical_not, isreal, iscomplex, isfinite, isinf, isnan, signbit, floor, ceil, trunc, modf, frexp, fabs, spacing, positive, isnat, ones_like, ) binary_operators = ( add, subtract, multiply, divide, logaddexp, logaddexp2, true_divide, power, remainder, mod, arctan2, hypot, bitwise_and, bitwise_or, bitwise_xor, left_shift, right_shift, greater, greater_equal, less, less_equal, not_equal, equal, logical_and, logical_or, logical_xor, maximum, minimum, fmax, fmin, copysign, nextafter, ldexp, fmod, divmod_, heaviside, ) if NUMPY_VERSION >= Version("2.0.0.dev0"): binary_operators += (vecdot,) trigonometric_operators = (sin, cos, tan) multiple_output_operators = {modf: 2, frexp: 2, divmod_: 2} LARGE_INPUT = {4: 16777217, 8: 9007199254740993} def _update_array_dtype_inplace(array, *, dtype) -> None: # change the dtypes in-place, this does not change the # underlying memory buffer dt = np.dtype(dtype) assert dt.kind == "f" if NUMPY_VERSION >= Version("2.5.0dev0"): array._set_dtype(dt) else: array.dtype = dt def _update_array_values_inplace(array, *, dtype) -> None: new_values = array.astype(dtype) _update_array_dtype_inplace(array, dtype=dtype) # actually fill in the new float values now that our # dtype is correct np.copyto(array, new_values) class unyt_array(np.ndarray): """ An ndarray subclass that attaches a symbolic unit object to the array data. Parameters ---------- input_array : iterable A tuple, list, or array to attach units to units : String unit name, unit symbol object, or astropy unit The units of the array. Powers must be specified using python syntax (cm**3, not cm^3). registry : :class:`unyt.unit_registry.UnitRegistry` The registry to create units from. If units is already associated with a unit registry and this is specified, this will be used instead of the registry associated with the unit object. dtype : numpy dtype or dtype name The dtype of the array data. Defaults to the dtype of the input data, or, if none is found, uses np.float64 bypass_validation : boolean If True, all input validation is skipped. Using this option may produce corrupted, invalid units or array data, but can lead to significant speedups in the input validation logic adds significant overhead. If set, units *must* be a valid unit object. Defaults to False. name : string The name of the array. Defaults to None. This attribute does not propagate through mathematical operations, but is preserved under indexing and unit conversions. Examples -------- >>> from unyt import unyt_array >>> a = unyt_array([1, 2, 3], 'cm') >>> b = unyt_array([4, 5, 6], 'm') >>> a + b unyt_array([401., 502., 603.], 'cm') >>> b + a unyt_array([4.01, 5.02, 6.03], 'm') NumPy ufuncs will pass through units where appropriate. >>> from unyt import g, cm >>> import numpy as np >>> a = (np.arange(8) - 4)*g/cm**3 >>> np.abs(a) unyt_array([4, 3, 2, 1, 0, 1, 2, 3], 'g/cm**3') and strip them when it would be annoying to deal with them. >>> np.log10(np.arange(8)+1) array([0. , 0.30103 , 0.47712125, 0.60205999, 0.69897 , 0.77815125, 0.84509804, 0.90308999]) """ _ufunc_registry = { add: _preserve_units, subtract: _difference_units, multiply: _multiply_units, divide: _divide_units, logaddexp: _return_without_unit, logaddexp2: _return_without_unit, true_divide: _divide_units, floor_divide: _divide_units, negative: _passthrough_unit, power: _power_unit, remainder: _preserve_units, mod: _preserve_units, fmod: _preserve_units, absolute: _passthrough_unit, fabs: _passthrough_unit, rint: _return_without_unit, sign: _return_without_unit, conj: _passthrough_unit, exp: _return_without_unit, exp2: _return_without_unit, log: _return_without_unit, log2: _return_without_unit, log10: _return_without_unit, expm1: _return_without_unit, log1p: _return_without_unit, sqrt: _sqrt_unit, cbrt: _cbrt_unit, square: _square_unit, reciprocal: _reciprocal_unit, sin: _return_without_unit, cos: _return_without_unit, tan: _return_without_unit, sinh: _return_without_unit, cosh: _return_without_unit, tanh: _return_without_unit, arcsin: _return_without_unit, arccos: _return_without_unit, arctan: _return_without_unit, arctan2: _arctan2_unit, arcsinh: _return_without_unit, arccosh: _return_without_unit, arctanh: _return_without_unit, hypot: _preserve_units, deg2rad: _return_without_unit, rad2deg: _return_without_unit, bitwise_and: _bitop_units, bitwise_or: _bitop_units, bitwise_xor: _bitop_units, invert: _invert_units, left_shift: _bitop_units, right_shift: _bitop_units, greater: _comparison_unit, greater_equal: _comparison_unit, less: _comparison_unit, less_equal: _comparison_unit, not_equal: _comparison_unit, equal: _comparison_unit, logical_and: _comparison_unit, logical_or: _comparison_unit, logical_xor: _comparison_unit, logical_not: _return_without_unit, maximum: _preserve_units, minimum: _preserve_units, fmax: _preserve_units, fmin: _preserve_units, isreal: _return_without_unit, iscomplex: _return_without_unit, isfinite: _return_without_unit, isinf: _return_without_unit, isnan: _return_without_unit, signbit: _return_without_unit, copysign: _passthrough_unit, nextafter: _preserve_units, modf: _passthrough_unit, ldexp: _bitop_units, frexp: _return_without_unit, floor: _passthrough_unit, ceil: _passthrough_unit, trunc: _passthrough_unit, spacing: _passthrough_unit, positive: _passthrough_unit, divmod_: _passthrough_unit, isnat: _return_without_unit, heaviside: _preserve_units, matmul: _multiply_units, clip: _passthrough_unit, } if NUMPY_VERSION >= Version("2.0.0.dev0"): _ufunc_registry[vecdot] = _multiply_units __array_priority__ = 2.0 def __new__( cls, input_array, units=None, registry=None, dtype=None, *, bypass_validation=False, name=None, ): input_units = units if bypass_validation is True: if dtype is None: dtype = input_array.dtype obj = input_array.view(type=cls, dtype=dtype) obj.units = input_units if registry is not None: obj.units.registry = registry obj.name = name return obj if isinstance(input_array, unyt_array): # Unpack the input array and coerce to the correct type and dtype ret = np.asarray(input_array, dtype=dtype).view(cls) if input_units is None: if registry is None: ret.units = input_array.units else: units = Unit(str(input_array.units), registry=registry) ret.units = units elif isinstance(input_units, Unit): ret.units = input_units else: ret.units = Unit(input_units, registry=registry) ret.name = name return ret elif isinstance(input_array, np.ndarray): pass elif _iterable(input_array) and input_array: if isinstance(input_array[0], unyt_array): return _coerce_iterable_units(input_array, registry) # Input array is an already formed ndarray instance # We first cast to be our class type obj = np.asarray(input_array, dtype=dtype).view(cls) # Check units type if input_units is None: # Nothing provided. Make dimensionless... units = Unit() elif isinstance(input_units, Unit): if registry and registry is not input_units.registry: units = Unit(str(input_units), registry=registry) else: units = input_units else: # units kwarg set, but it's not a Unit object. # don't handle all the cases here, let the Unit class handle if # it's a str. units = Unit(input_units, registry=registry) # Attach the units and name obj.units = units obj.name = name return obj def __repr__(self): return np.array_repr(self) def __str__(self): return str(self.view(np.ndarray)) + " " + str(self.units) def __format__(self, format_spec): return f"{self.d.__format__(format_spec)} {self.units}" # # Start unit conversion methods # def convert_to_units(self, units, equivalence=None, **kwargs): """ Convert the array to the given units in-place. Optionally, an equivalence can be specified to convert to an equivalent quantity which is not in the same dimensions. Parameters ---------- units : Unit object or string The units you want to convert to. equivalence : string, optional The equivalence you wish to use. To see which equivalencies are supported for this object, try the ``list_equivalencies`` method. Default: None kwargs: optional Any additional keyword arguments are supplied to the equivalence Raises ------ If the provided unit does not have the same dimensions as the array this will raise a UnitConversionError Examples -------- >>> from unyt import cm, km >>> length = [3000, 2000, 1000]*cm >>> length.convert_to_units('m') >>> print(length) [30. 20. 10.] m """ units = _sanitize_units_convert(units, self.units.registry) if equivalence is None: conv_data = _check_em_conversion( self.units, units, registry=self.units.registry ) if any(conv_data): new_units, (conv_factor, offset) = _em_conversion( self.units, conv_data, units ) else: new_units = units (conv_factor, offset) = self.units.get_conversion_factor( new_units, self.dtype ) if offset and ( str(self.units.expr).startswith("delta_") or str(new_units.expr).startswith("delta_") ): raise InvalidUnitOperation( "Interval temperature units cannot be converted to or " "from offset temperature units without a reference point." ) self.units = new_units values = self.d # if our dtype is an integer do the following somewhat awkward # dance to change the dtype in-place. We can't use astype # directly because that will create a copy and not update self if self.dtype.kind in ("u", "i"): # create a copy of the original data in floating point # form, it's possible this may lose precision for very # large integers dsize = values.dtype.itemsize if dsize == 1: raise ValueError( "Can't convert memory buffer in place. " f"Input dtype ({self.dtype}) has a smaller itemsize than the " "smallest floating point representation possible." ) large = LARGE_INPUT.get(dsize, 0) if large and np.any(np.abs(values) > large): warnings.warn( f"Overflow encountered while converting to units '{new_units}'", RuntimeWarning, stacklevel=2, ) _update_array_values_inplace(values, dtype=f"f{dsize}") _update_array_dtype_inplace(self, dtype=values.dtype) values *= conv_factor if offset: np.subtract(values, offset, values) else: self.convert_to_equivalent(units, equivalence, **kwargs) def convert_to_base(self, unit_system=None, equivalence=None, **kwargs): """ Convert the array in-place to the equivalent base units in the specified unit system. Optionally, an equivalence can be specified to convert to an equivalent quantity which is not in the same dimensions. Parameters ---------- unit_system : string, optional The unit system to be used in the conversion. If not specified, the configured base units are used (defaults to MKS). equivalence : string, optional The equivalence you wish to use. To see which equivalencies are supported for this object, try the ``list_equivalencies`` method. Default: None kwargs: optional Any additional keyword arguments are supplied to the equivalence Raises ------ If the provided unit does not have the same dimensions as the array this will raise a UnitConversionError Examples -------- >>> from unyt import erg, s >>> E = 2.5*erg/s >>> E.convert_to_base("mks") >>> E unyt_quantity(2.5e-07, 'W') """ self.convert_to_units( self.units.get_base_equivalent(unit_system), equivalence=equivalence, **kwargs, ) def convert_to_cgs(self, equivalence=None, **kwargs): """ Convert the array and in-place to the equivalent cgs units. Optionally, an equivalence can be specified to convert to an equivalent quantity which is not in the same dimensions. Parameters ---------- equivalence : string, optional The equivalence you wish to use. To see which equivalencies are supported for this object, try the ``list_equivalencies`` method. Default: None kwargs: optional Any additional keyword arguments are supplied to the equivalence Raises ------ If the provided unit does not have the same dimensions as the array this will raise a UnitConversionError Examples -------- >>> from unyt import Newton >>> data = [1., 2., 3.]*Newton >>> data.convert_to_cgs() >>> data unyt_array([100000., 200000., 300000.], 'dyn') """ self.convert_to_units( self.units.get_cgs_equivalent(), equivalence=equivalence, **kwargs ) def convert_to_mks(self, equivalence=None, **kwargs): """ Convert the array and units to the equivalent mks units. Optionally, an equivalence can be specified to convert to an equivalent quantity which is not in the same dimensions. Parameters ---------- equivalence : string, optional The equivalence you wish to use. To see which equivalencies are supported for this object, try the ``list_equivalencies`` method. Default: None kwargs: optional Any additional keyword arguments are supplied to the equivalence Raises ------ If the provided unit does not have the same dimensions as the array this will raise a UnitConversionError Examples -------- >>> from unyt import dyne, erg >>> data = [1., 2., 3.]*erg >>> data unyt_array([1., 2., 3.], 'erg') >>> data.convert_to_mks() >>> data unyt_array([1.e-07, 2.e-07, 3.e-07], 'J') """ self.convert_to_units(self.units.get_mks_equivalent(), equivalence, **kwargs) def in_units(self, units, equivalence=None, **kwargs): """ Creates a copy of this array with the data converted to the supplied units, and returns it. Optionally, an equivalence can be specified to convert to an equivalent quantity which is not in the same dimensions. Parameters ---------- units : Unit object or string The units you want to get a new quantity in. equivalence : string, optional The equivalence you wish to use. To see which equivalencies are supported for this object, try the ``list_equivalencies`` method. Default: None kwargs: optional Any additional keyword arguments are supplied to the equivalence Raises ------ If the provided unit does not have the same dimensions as the array this will raise a UnitConversionError Examples -------- >>> from unyt import c, gram >>> m = 10*gram >>> E = m*c**2 >>> print(E.in_units('erg')) 8.987551787368176e+21 erg >>> print(E.in_units('J')) 898755178736817.6 J """ units = _sanitize_units_convert(units, self.units.registry) if equivalence is None: conv_data = _check_em_conversion( self.units, units, registry=self.units.registry ) if any(conv_data): new_units, (conversion_factor, offset) = _em_conversion( self.units, conv_data, units ) offset = 0 else: new_units = units (conversion_factor, offset) = self.units.get_conversion_factor( new_units, self.dtype ) if offset and ( str(self.units.expr).startswith("delta_") or str(new_units.expr).startswith("delta_") ): raise InvalidUnitOperation( "Interval temperature units cannot be converted to or " "from offset temperature units without a reference point." ) dsize = max(2, self.dtype.itemsize) if self.dtype.kind in ("u", "i"): large = LARGE_INPUT.get(dsize, 0) if large and np.any(np.abs(self.d) > large): warnings.warn( f"Overflow encountered while converting to units '{new_units}'", RuntimeWarning, stacklevel=2, ) new_dtypekind = "c" if self.dtype.kind == "c" else "f" new_dtype = np.dtype(new_dtypekind + str(dsize)) ret = np.asarray(self.ndview * conversion_factor, dtype=new_dtype) if offset: np.subtract(ret, offset, ret) try: new_array = type(self)( ret, new_units, bypass_validation=True, name=self.name ) except TypeError: # subclasses might not take name as a kwarg new_array = type(self)(ret, new_units, bypass_validation=True) return new_array else: return self.to_equivalent(units, equivalence, **kwargs) def to(self, units, equivalence=None, **kwargs): """ Creates a copy of this array with the data converted to the supplied units, and returns it. Optionally, an equivalence can be specified to convert to an equivalent quantity which is not in the same dimensions. .. note:: All additional keyword arguments are passed to the equivalency, which should be used if that particular equivalency requires them. Parameters ---------- units : Unit object or string The units you want to get a new quantity in. equivalence : string, optional The equivalence you wish to use. To see which equivalencies are supported for this unitful quantity, try the :meth:`list_equivalencies` method. Default: None kwargs: optional Any additional keyword arguments are supplied to the equivalence Raises ------ If the provided unit does not have the same dimensions as the array this will raise a UnitConversionError Examples -------- >>> from unyt import c, gram >>> m = 10*gram >>> E = m*c**2 >>> print(E.to('erg')) 8.987551787368176e+21 erg >>> print(E.to('J')) 898755178736817.6 J """ return self.in_units(units, equivalence=equivalence, **kwargs) def to_value(self, units=None, equivalence=None, **kwargs): """ Creates a copy of this array with the data in the supplied units, and returns it without units. Output is therefore a bare NumPy array. Optionally, an equivalence can be specified to convert to an equivalent quantity which is not in the same dimensions. .. note:: All additional keyword arguments are passed to the equivalency, which should be used if that particular equivalency requires them. Parameters ---------- units : Unit object or string, optional The units you want to get the bare quantity in. If not specified, the value will be returned in the current units. equivalence : string, optional The equivalence you wish to use. To see which equivalencies are supported for this unitful quantity, try the :meth:`list_equivalencies` method. Default: None Examples -------- >>> from unyt import km >>> a = [3, 4, 5]*km >>> print(a.to_value('cm')) [300000. 400000. 500000.] """ if units is None: v = self.value else: v = self.in_units(units, equivalence=equivalence, **kwargs).value if isinstance(self, unyt_quantity): return float(v) else: return v def in_base(self, unit_system=None): """ Creates a copy of this array with the data in the specified unit system, and returns it in that system's base units. Parameters ---------- unit_system : string, optional The unit system to be used in the conversion. If not specified, the configured default base units of are used (defaults to MKS). Examples -------- >>> from unyt import erg, s >>> E = 2.5*erg/s >>> print(E.in_base("mks")) 2.5e-07 W """ us = _sanitize_unit_system(unit_system, self) try: conv_data = _check_em_conversion( self.units, unit_system=us, registry=self.units.registry ) except MKSCGSConversionError: raise UnitsNotReducible(self.units, us) if any(conv_data): um = us.units_map u = self.units if u.dimensions in um and u.expr == um[self.units.dimensions]: return self.copy() to_units, (conv, offset) = _em_conversion(u, conv_data, unit_system=us) else: to_units = self.units.get_base_equivalent(unit_system) conv, offset = self.units.get_conversion_factor(to_units, self.dtype) ret = self.v * conv if offset: ret = ret - offset return type(self)(ret, to_units) def in_cgs(self): """ Creates a copy of this array with the data in the equivalent cgs units, and returns it. Returns ------- unyt_array object with data in this array converted to cgs units. Example ------- >>> from unyt import Newton, km >>> print((10*Newton/km).in_cgs()) 10.0 g/s**2 """ return self.in_base("cgs") def in_mks(self): """ Creates a copy of this array with the data in the equivalent mks units, and returns it. Returns ------- unyt_array object with data in this array converted to mks units. Example ------- >>> from unyt import mile >>> print((1.*mile).in_mks()) 1609.344 m """ return self.in_base("mks") def convert_to_equivalent(self, unit, equivalence, **kwargs): """ Convert the array in-place to the specified units, assuming the given equivalency. The dimensions of the specified units and the dimensions of the original array need not match so long as there is an appropriate conversion in the specified equivalency. Parameters ---------- unit : string The unit that you wish to convert to. equivalence : string The equivalence you wish to use. To see which equivalencies are supported for this unitful quantity, try the :meth:`list_equivalencies` method. Examples -------- >>> from unyt import K >>> a = [10, 20, 30]*(1e7*K) >>> a.convert_to_equivalent("keV", "thermal") >>> a unyt_array([ 8.6173324, 17.2346648, 25.8519972], 'keV') """ conv_unit = Unit(unit, registry=self.units.registry) if self.units.same_dimensions_as(conv_unit): self.convert_to_units(conv_unit) return this_equiv = equivalence_registry[equivalence](in_place=True) if self.has_equivalent(equivalence): this_equiv.convert(self, conv_unit.dimensions, **kwargs) self.convert_to_units(conv_unit) # set name to None since the semantic meaning has changed self.name = None else: raise InvalidUnitEquivalence(equivalence, self.units, conv_unit) def to_equivalent(self, unit, equivalence, **kwargs): """ Return a copy of the unyt_array in the units specified units, assuming the given equivalency. The dimensions of the specified units and the dimensions of the original array need not match so long as there is an appropriate conversion in the specified equivalency. Parameters ---------- unit : string The unit that you wish to convert to. equivalence : string The equivalence you wish to use. To see which equivalencies are supported for this unitful quantity, try the :meth:`list_equivalencies` method. Examples -------- >>> from unyt import K >>> a = 1.0e7*K >>> print(a.to_equivalent("keV", "thermal")) 0.8617332401096504 keV """ conv_unit = Unit(unit, registry=self.units.registry) if self.units.same_dimensions_as(conv_unit): return self.in_units(conv_unit) this_equiv = equivalence_registry[equivalence]() if self.has_equivalent(equivalence): new_arr = this_equiv.convert(self, conv_unit.dimensions, **kwargs) return new_arr.in_units(conv_unit) else: raise InvalidUnitEquivalence(equivalence, self.units, unit) def list_equivalencies(self): """ Lists the possible equivalencies associated with this unyt_array or unyt_quantity. Example ------- >>> from unyt import km >>> (1.0*km).list_equivalencies() spectral: length <-> spatial_frequency <-> frequency <-> energy schwarzschild: mass <-> length compton: mass <-> length """ self.units.list_equivalencies() def has_equivalent(self, equivalence): """ Check to see if this unyt_array or unyt_quantity has an equivalent unit in *equiv*. Example ------- >>> from unyt import km, keV >>> (1.0*km).has_equivalent('spectral') True >>> print((1*km).to_equivalent('MHz', equivalence='spectral')) 0.299792458 MHz >>> print((1*keV).to_equivalent('angstrom', equivalence='spectral')) 12.39841931521966 Ã… """ return self.units.has_equivalent(equivalence) def ndarray_view(self): """ Returns a view into the array as a numpy array Returns ------- View of this array's data. Example ------- >>> from unyt import km >>> a = [3, 4, 5]*km >>> a unyt_array([3, 4, 5], 'km') >>> a.ndarray_view() array([3, 4, 5]) This function returns a view that shares the same underlying memory as the original array. >>> b = a.ndarray_view() >>> b.base is a.base True >>> b[2] = 4 >>> b array([3, 4, 4]) >>> a unyt_array([3, 4, 4], 'km') """ return self.view(np.ndarray) def to_ndarray(self): """ Creates a copy of this array with the unit information stripped Example ------- >>> from unyt import km >>> a = [3, 4, 5]*km >>> a unyt_array([3, 4, 5], 'km') >>> b = a.to_ndarray() >>> b array([3, 4, 5]) The returned array will contain a copy of the data contained in the original array. >>> a.base is not b.base True """ return np.array(self) def argsort(self, axis=-1, kind="quicksort", order=None): """ Returns the indices that would sort the array. See the documentation of ndarray.argsort for details about the keyword arguments. Example ------- >>> from unyt import km >>> data = [3, 8, 7]*km >>> print(np.argsort(data)) [0 2 1] km >>> print(data.argsort()) [0 2 1] """ return self.view(np.ndarray).argsort(axis, kind, order) @classmethod def from_astropy(cls, arr, unit_registry=None): """ Convert an AstroPy "Quantity" to a unyt_array or unyt_quantity. Parameters ---------- arr : AstroPy Quantity The Quantity to convert from. unit_registry : unyt.UnitRegistry, optional A unyt unit registry to use in the conversion. If one is not supplied, the default one will be used. Example ------- >>> from astropy.units import km >>> unyt_quantity.from_astropy(km) unyt_quantity(1., 'km') >>> a = [1, 2, 3]*km >>> a >>> unyt_array.from_astropy(a) unyt_array([1., 2., 3.], 'km') """ # Converting from AstroPy Quantity try: u = arr.unit _arr = arr except AttributeError: u = arr _arr = 1.0 * u ap_units = [] for base, exponent in zip(u.bases, u.powers): unit_str = base.to_string() # we have to do this because AstroPy is silly and defines # hour as "h" if unit_str == "h": unit_str = "hr" ap_units.append(f"{unit_str}**({Rational(exponent)})") ap_units = "*".join(ap_units) if isinstance(_arr.value, np.ndarray) and _arr.shape != (): return unyt_array(_arr.value, ap_units, registry=unit_registry) else: return unyt_quantity(_arr.value, ap_units, registry=unit_registry) def to_astropy(self, **kwargs): """ Creates a new AstroPy quantity with the same unit information. Example ------- >>> from unyt import g, cm >>> data = [3, 4, 5]*g/cm**3 >>> data.to_astropy() """ if self.units.is_dimensionless: s_units = "" else: s_units = str(self.units) return self.value * _astropy.units.Unit(s_units, **kwargs) @classmethod def from_pint(cls, arr, unit_registry=None): """ Convert a Pint "Quantity" to a unyt_array or unyt_quantity. Parameters ---------- arr : Pint Quantity The Quantity to convert from. unit_registry : unyt.UnitRegistry, optional A unyt unit registry to use in the conversion. If one is not supplied, the default one will be used. Examples -------- >>> from pint import UnitRegistry >>> import numpy as np >>> ureg = UnitRegistry() >>> a = np.arange(4) >>> b = ureg.Quantity(a, "erg/cm**3") >>> b >>> c = unyt_array.from_pint(b) >>> c unyt_array([0, 1, 2, 3], 'erg/cm**3') """ p_units = [] for base, exponent in arr._units.items(): bs = convert_pint_units(base) p_units.append(f"{bs}**({Rational(exponent)})") p_units = "*".join(p_units) if isinstance(arr.magnitude, np.ndarray): return unyt_array(arr.magnitude, p_units, registry=unit_registry) else: return unyt_quantity(arr.magnitude, p_units, registry=unit_registry) def to_pint(self, unit_registry=None): """ Convert a unyt_array or unyt_quantity to a Pint Quantity. Parameters ---------- arr : unyt_array or unyt_quantity The unitful quantity to convert from. unit_registry : Pint UnitRegistry, optional The Pint UnitRegistry to use in the conversion. If one is not supplied, the default one will be used. NOTE: This is not the same as a unyt.UnitRegistry object. Examples -------- >>> from unyt import cm, s >>> a = 4*cm**2/s >>> print(a) 4 cm**2/s >>> a.to_pint() """ if unit_registry is None: unit_registry = _pint.UnitRegistry() powers_dict = self.units.expr.as_powers_dict() units = [] for unit, pow in powers_dict.items(): # we have to do this because Pint doesn't recognize # "yr" as "year" if str(unit).endswith("yr") and len(str(unit)) in [2, 3]: unit = str(unit).replace("yr", "year") units.append(f"{unit}**({Rational(pow)})") units = "*".join(units) return unit_registry.Quantity(self.value, units) @staticmethod def from_string(s, unit_registry=None): """ Parse a string to a unyt_quantity object. Parameters ---------- s: str A string representing a single quantity. unit_registry: unyt.UnitRegistry, optional A unyt unit registry to use in the conversion. If one is not supplied, the default one will be used. Examples -------- >>> from unyt import unyt_quantity >>> unyt_quantity.from_string("1cm") unyt_quantity(1, 'cm') >>> unyt_quantity.from_string("+1e3 Mearth") unyt_quantity(1000., 'Mearth') >>> unyt_quantity.from_string("-10. kg") unyt_quantity(-10., 'kg') >>> unyt_quantity.from_string(".66\tum") unyt_quantity(0.66, 'μm') >>> unyt_quantity.from_string("42") unyt_quantity(42, '(dimensionless)') >>> unyt_quantity.from_string("1.0 g/cm**3") unyt_quantity(1., 'g/cm**3') """ v = s.strip() if re.fullmatch(_NUMB_REGEXP, v): num = re.match(_NUMB_REGEXP, v).group() unit = Unit() elif re.fullmatch(_UNIT_REGEXP, v): num = 1 unit = Unit(re.match(_UNIT_REGEXP, v).group()) elif not re.fullmatch(_QUAN_REGEXP, v): raise ValueError(f"Received invalid quantity expression '{s}'.") else: res = re.search(_NUMB_REGEXP, v) num = res.group() res = re.search(_UNIT_REGEXP, v[res.span()[1] :]) unit = res.group().strip() if unit.startswith(("/", "*")): unit = f"1{unit}" try: num = int(num) except ValueError: num = float(num) return num * Unit(unit, registry=unit_registry) def to_string(self): # this is implemented purely for symmetry's sake return str(self) # # End unit conversion methods # def write_hdf5(self, filename, dataset_name=None, info=None, group_name=None): r"""Writes a unyt_array to hdf5 file. Parameters ---------- filename: string The filename to create and write a dataset to dataset_name: string The name of the dataset to create in the file. info: dictionary A dictionary of supplementary info to write to append as attributes to the dataset. group_name: string An optional group to write the arrays to. If not specified, the arrays are datasets at the top level by default. Examples -------- >>> from unyt import cm >>> a = [1,2,3]*cm >>> myinfo = {'field':'dinosaurs', 'type':'field_data'} >>> a.write_hdf5('test_array_data.h5', dataset_name='dinosaurs', ... info=myinfo) # doctest: +SKIP """ import pickle from unyt._on_demand_imports import _h5py as h5py if info is None: info = {} info["units"] = str(self.units) lut = {} for k, v in self.units.registry.lut.items(): if k not in default_unit_registry.lut: lut[k] = v info["unit_registry"] = np.void(pickle.dumps(lut)) if dataset_name is None: dataset_name = "array_data" f = h5py.File(filename, "a") if group_name is not None: if group_name in f: g = f[group_name] else: g = f.create_group(group_name) else: g = f if dataset_name in g.keys(): d = g[dataset_name] # Overwrite without deleting if we can get away with it. if d.shape == self.shape and d.dtype == self.dtype: d[...] = self for k in d.attrs.keys(): del d.attrs[k] else: del f[dataset_name] d = g.create_dataset(dataset_name, data=self) else: d = g.create_dataset(dataset_name, data=self) for k, v in info.items(): d.attrs[k] = v f.close() @classmethod def from_hdf5(cls, filename, dataset_name=None, group_name=None): r"""Attempts read in and convert a dataset in an hdf5 file into a unyt_array. Parameters ---------- filename: string The filename to of the hdf5 file. dataset_name: string The name of the dataset to read from. If the dataset has a units attribute, attempt to infer units as well. group_name: string An optional group to read the arrays from. If not specified, the arrays are datasets at the top level by default. """ import pickle from unyt._on_demand_imports import _h5py as h5py if dataset_name is None: dataset_name = "array_data" f = h5py.File(filename, "r") if group_name is not None: g = f[group_name] else: g = f dataset = g[dataset_name] data = dataset[...] units = dataset.attrs.get("units", "") unit_lut = default_unit_symbol_lut.copy() unit_lut_load = pickle.loads(dataset.attrs["unit_registry"].tobytes()) unit_lut.update(unit_lut_load) f.close() registry = UnitRegistry(lut=unit_lut, add_default_symbols=False) return cls(data, units, registry=registry) # # Start convenience methods # @property def value(self): """ Creates a copy of this array with the unit information stripped Example ------- >>> from unyt import km >>> a = [3, 4, 5]*km >>> a unyt_array([3, 4, 5], 'km') >>> b = a.value >>> b array([3, 4, 5]) The returned array will contain a copy of the data contained in the original array. >>> a.base is not b.base True """ return np.array(self) @property def v(self): """ Creates a copy of this array with the unit information stripped Example ------- >>> from unyt import km >>> a = [3, 4, 5]*km >>> a unyt_array([3, 4, 5], 'km') >>> b = a.v >>> b array([3, 4, 5]) The returned array will contain a copy of the data contained in the original array. >>> a.base is not b.base True """ return np.array(self) @property def ndview(self): """ Returns a view into the array as a numpy array Returns ------- View of this array's data. Example ------- >>> from unyt import km >>> a = [3, 4, 5]*km >>> a unyt_array([3, 4, 5], 'km') >>> a.ndview array([3, 4, 5]) This function returns a view that shares the same underlying memory as the original array. >>> b = a.ndview >>> b.base is a.base True >>> b[2] = 4 >>> b array([3, 4, 4]) >>> a unyt_array([3, 4, 4], 'km') """ return self.view(np.ndarray) @property def d(self): """ Returns a view into the array as a numpy array Returns ------- View of this array's data. Example ------- >>> from unyt import km >>> a = [3, 4, 5]*km >>> a unyt_array([3, 4, 5], 'km') >>> a.d array([3, 4, 5]) This function returns a view that shares the same underlying memory as the original array. >>> b = a.d >>> b.base is a.base True >>> b[2] = 4 >>> b array([3, 4, 4]) >>> a unyt_array([3, 4, 4], 'km') """ return self.view(np.ndarray) @property def unit_quantity(self): """ Return a quantity with a value of 1 and the same units as this array Example ------- >>> from unyt import km >>> a = [4, 5, 6]*km >>> a.unit_quantity unyt_quantity(1, 'km') >>> print(a + 7*a.unit_quantity) [11 12 13] km """ return unyt_quantity(1, self.units) @property def uq(self): """ Return a quantity with a value of 1 and the same units as this array Example ------- >>> from unyt import km >>> a = [4, 5, 6]*km >>> a.uq unyt_quantity(1, 'km') >>> print(a + 7*a.uq) [11 12 13] km """ return unyt_quantity(1, self.units) @property def unit_array(self): """ Return an array filled with ones with the same units as this array Example ------- >>> from unyt import km >>> a = [4, 5, 6]*km >>> a.unit_array unyt_array([1, 1, 1], 'km') >>> print(a + 7*a.unit_array) [11 12 13] km """ return np.ones_like(self) @property def ua(self): """ Return an array filled with ones with the same units as this array Example ------- >>> from unyt import km >>> a = [4, 5, 6]*km >>> a.unit_array unyt_array([1, 1, 1], 'km') >>> print(a + 7*a.unit_array) [11 12 13] km """ return np.ones_like(self) def __getitem__(self, item): ret = super().__getitem__(item) if getattr(ret, "shape", None) == (): ret = unyt_quantity(ret, bypass_validation=True, name=self.name) ret.units = self.units return ret def __setitem__(self, item, value): if hasattr(value, "units"): if value.units != self.units and value.units != NULL_UNIT: value = value.to(self.units) super().__setitem__(item, value) def __pow__(self, p, mod=None, /): """ Power function """ # see https://github.com/yt-project/unyt/issues/203 if np.isscalar(p) and p == 0.0: ret = self.unit_array ret.units = Unit("dimensionless") return ret else: return super().__pow__(p, mod) def __eq__(self, other): try: return super().__eq__(other) except (IterableUnitCoercionError, UnitOperationError, TypeError): return np.zeros(self.shape, dtype="bool") def __ne__(self, other): try: return super().__ne__(other) except (IterableUnitCoercionError, UnitOperationError, TypeError): return np.ones(self.shape, dtype="bool") # # Start operation methods # def __array_ufunc__(self, ufunc, method, *inputs, **kwargs): if type(self) in (unyt_array, unyt_quantity): for x in inputs: if isinstance(x, unyt_array) and type(x) not in ( unyt_array, unyt_quantity, ): # This object is a unyt array/quantity (not a subclass) but one of the # inputs is a subclass. We return NotImplemented to give subclasses # a chance to define the result. return NotImplemented if ufunc not in self._ufunc_registry: return NotImplemented func = getattr(ufunc, method) if "out" not in kwargs: if ufunc in multiple_output_operators: out = (None,) * multiple_output_operators[ufunc] out_func = out else: out = None out_func = None else: # we need to get both the actual "out" object and a view onto it # in case we need to do in-place operations out = kwargs.pop("out") if ufunc in multiple_output_operators: out_func = [] for arr in out: out_func.append(arr.view(np.ndarray)) out_func = tuple(out_func) else: out = out[0] if out.dtype.kind in ("u", "i"): _update_array_values_inplace(out, dtype=f"f{out.dtype.itemsize}") out_func = out.view(np.ndarray) if len(inputs) == 1: # Unary ufuncs inp = inputs[0] u = getattr(inp, "units", None) if u.dimensions is angle and ufunc in trigonometric_operators: # ensure np.sin(90*degrees) works as expected inp = inp.in_units("radian").v # evaluate the ufunc out_arr = func(np.asarray(inp), out=out_func, **kwargs) if ufunc in (multiply, divide) and method == "reduce": mul, unit = _apply_power_mapping(ufunc, u, inp.size, inp.shape, kwargs) else: # get unit of result mul, unit = self._ufunc_registry[ufunc](u) # use type(self) here so we can support user-defined # subclasses of unyt_array ret_class = type(self) elif len(inputs) == 2: # binary ufuncs i0 = inputs[0] i1 = inputs[1] if "dask" in sys.modules and isinstance(i1, _dask.array.core.Array): # need to short circuit all this to handle binary operations # like unyt_quantity(2,'m') / unyt_dask_array_instance # only need to check the second argument as if the first arg # is a unyt_dask_array, it won't end up here. return i1.__array_ufunc__(ufunc, method, *inputs, **kwargs) # coerce inputs to be ndarrays if they aren't already try: inp0 = _coerce_iterable_units(i0) inp1 = _coerce_iterable_units(i1) except IterableUnitCoercionError: return NotImplemented u0 = getattr(i0, "units", None) or getattr(inp0, "units", None) u1 = getattr(i1, "units", None) or getattr(inp1, "units", None) ret_class = _get_binary_op_return_class(type(i0), type(i1)) if ret_class is NotImplemented: return NotImplemented if u0 is None: u0 = Unit(registry=getattr(u1, "registry", None)) if u1 is None and ufunc is not power: u1 = Unit(registry=getattr(u0, "registry", None)) elif ufunc is power: u1 = inp1 if inp0.shape == () or inp1.shape == (): if isinstance(u1, unyt_array) and not u1.units.is_dimensionless: raise UnitOperationError(ufunc, u0, u1.units) if u1.shape == (): u1 = float(u1) else: u1 = 1.0 elif inp0.shape == inp1.shape: if isinstance(u1, unyt_array) and not u1.units.is_dimensionless: raise UnitOperationError(ufunc, u0, getattr(u1, "units", None)) if ( (isinstance(u0, Unit) and not u0.is_dimensionless) or isinstance(u0, unyt_array) and not u0.units.is_dimensionless ): # u0 has units if np.ptp(u1) != 0: raise UnitOperationError( ufunc, u0, getattr(u1, "units", None) ) first_element_slice = (0,) * u1.ndim u1 = float(u1[first_element_slice]) else: raise UnitOperationError(ufunc, u0, u1) unit_operator = self._ufunc_registry[ufunc] if ( unit_operator is _preserve_units and u0.dimensions is temperature and u1 is not None and u1.base_offset != 0.0 and u0.base_offset == 0.0 and str(u0.expr) in ["K", "R"] ): raise UnitOperationError(ufunc, u0, u1) if unit_operator in ( _preserve_units, _comparison_unit, _arctan2_unit, _difference_units, ): # check "is" equality first for speed if u0 is not u1 and u0 != u1: # we allow adding, multiplying, comparisons with # zero-filled arrays, lists, etc or scalar zero. We # do not allow zero-filled unyt_array instances for # performance reasons. If we did allow it, every # binary operation would need to scan over all the # elements of both arrays to check for arrays filled # with zeros if not isinstance(i0, unyt_array) or not isinstance(i1, unyt_array): any_nonzero = [np.count_nonzero(i0), np.count_nonzero(i1)] if any_nonzero[0] == 0: u0 = u1 elif any_nonzero[1] == 0: u1 = u0 if not u0.same_dimensions_as(u1): if unit_operator is _comparison_unit: # we allow comparisons between data with # units and dimensionless data if u0.is_dimensionless: u0 = u1 elif u1.is_dimensionless: u1 = u0 else: # comparison with different units, so need to check if # this is == and != which we allow and handle in a # special way using an early return from __array_ufunc__ if ufunc in (equal, not_equal): if ufunc is equal: func = np.zeros_like else: func = np.ones_like ret = func(np.asarray(inp1), dtype=bool) if out is not None: out[:] = ret[:] if isinstance(out, unyt_array): out.units = Unit( "", registry=self.units.registry ) if ret.shape == (): ret = bool(ret) return ret else: raise UnitOperationError(ufunc, u0, u1) else: raise UnitOperationError(ufunc, u0, u1) conv, offset = u1.get_conversion_factor(u0, inp1.dtype) new_dtype = np.dtype("f" + str(inp1.dtype.itemsize)) conv = new_dtype.type(conv) if ( offset is not None and u1.base_offset != 0.0 and not repr(u0).startswith("delta_") ): raise InvalidUnitOperation( "Quantities with units of Fahrenheit or Celsius " "cannot be multiplied, divided, subtracted or " "added with data that has different units." ) inp1 = np.asarray(inp1, dtype=new_dtype) * conv # get the unit of the result mul, unit = unit_operator(u0, u1) # A scalar quantity acts as a unit scale factor here, so it should # not change the precision chosen by the non-quantity operand. if unit_operator is _multiply_units: if ( isinstance(i0, unyt_quantity) and not isinstance(i1, unyt_quantity) and inp1.dtype.kind in ("f", "c") ): inp0 = inp0.astype(inp1.dtype) elif ( isinstance(i1, unyt_quantity) and not isinstance(i0, unyt_quantity) and inp0.dtype.kind in ("f", "c") ): inp1 = inp1.astype(inp0.dtype) # actually evaluate the ufunc out_arr = func( inp0.view(np.ndarray), inp1.view(np.ndarray), out=out_func, **kwargs ) if unit_operator in (_multiply_units, _divide_units): if unit.is_dimensionless and unit.base_value != 1.0: if not u0.is_dimensionless: if u0.dimensions == u1.dimensions: out_arr = np.multiply( out_arr.view(np.ndarray), unit.base_value, out=out_func ) unit = Unit(registry=unit.registry) if ( u0.base_offset and u0.dimensions is temperature or u1.base_offset and u1.dimensions is temperature ): raise InvalidUnitOperation( "Quantities with units of Fahrenheit or Celsius " "cannot be multiplied, divided, subtracted or added." ) else: if ufunc is clip: inp = [] for i in inputs: if isinstance(i, unyt_array): inp.append(i.to(inputs[0].units).view(np.ndarray)) else: inp.append(i) if out is not None: _out = out.view(np.ndarray) else: _out = None out_arr = ufunc(*inp, out=_out) unit = inputs[0].units ret_class = type(inputs[0]) mul = 1 else: raise RuntimeError( f"Support for the {ufunc} ufunc with {len(inputs)} " "inputs has not been added to unyt_array." ) if unit is None: out_arr = np.array(out_arr, copy=_COPY_IF_NEEDED) elif ufunc in (modf, divmod_): out_arr = tuple(ret_class(o, unit) for o in out_arr) elif out_arr.shape == (): out_arr = unyt_quantity(np.asarray(out_arr), unit) elif out_arr.size == 1: out_arr = unyt_array(np.asarray(out_arr), unit) else: if issubclass(ret_class, unyt_quantity): # This happens if you do ndarray * unyt_quantity. # Explicitly casting to unyt_array avoids creating a # unyt_quantity with size > 1 out_arr = unyt_array(out_arr, unit) else: out_arr = ret_class(out_arr, unit, bypass_validation=True) if out is not None: if ( unit is not None and hasattr(out, "units") and (mul, unit) == out.units.as_coeff_unit() ): return out if mul != 1: multiply(out, mul, out=out) if np.shares_memory(out_arr, out): mul = 1 if isinstance(out, unyt_array): try: out.units = out_arr.units except AttributeError: # out_arr is an ndarray out.units = Unit("", registry=self.units.registry) elif isinstance(out, tuple): for o, oa in zip(out, out_arr): if o is None: continue o.units = oa.units if mul == 1: return out_arr return mul * out_arr def __array_function__(self, func, types, args, kwargs): # Follow NEP 18 guidelines # https://numpy.org/neps/nep-0018-array-function-protocol.html from unyt._array_functions import _HANDLED_FUNCTIONS, _UNSUPPORTED_FUNCTIONS if func in _UNSUPPORTED_FUNCTIONS: # following NEP 18, return NotImplemented as a sentinel value # which will lead to raising a TypeError, while # leaving other arguments a chance to take the lead return NotImplemented if func not in _HANDLED_FUNCTIONS: # default to numpy's private implementation return func._implementation(*args, **kwargs) # Note: this allows subclasses that don't override # __array_function__ to handle unyt_array objects if not all(issubclass(t, unyt_array) or t is np.ndarray for t in types): return NotImplemented return _HANDLED_FUNCTIONS[func](*args, **kwargs) def copy(self, order="C"): """ Return a copy of the array. Parameters ---------- order : {'C', 'F', 'A', 'K'}, optional Controls the memory layout of the copy. 'C' means C-order, 'F' means F-order, 'A' means 'F' if `a` is Fortran contiguous, 'C' otherwise. 'K' means match the layout of `a` as closely as possible. (Note that this function and :func:`numpy.copy` are very similar, but have different default values for their order= arguments.) See also -------- numpy.copy numpy.copyto Examples -------- >>> from unyt import km >>> x = [[1,2,3],[4,5,6]] * km >>> y = x.copy() >>> x.fill(0) >>> print(x) [[0 0 0] [0 0 0]] km >>> print(y) [[1 2 3] [4 5 6]] km """ name = getattr(self, "name", None) try: return type(self)(np.copy(np.asarray(self)), self.units, name=name) except TypeError: # subclasses might not take name as a kwarg return type(self)(np.copy(np.asarray(self)), self.units) def __array_finalize__(self, obj): self.units = getattr(obj, "units", NULL_UNIT) self.name = getattr(obj, "name", None) def __pos__(self): """Posify the data.""" # this needs to be defined for all numpy versions, see # numpy issue #9081 return type(self)(super().__pos__(), self.units) def dot(self, b, out=None): """dot product of two arrays. Refer to `numpy.dot` for full documentation. See Also -------- numpy.dot : equivalent function Examples -------- >>> from unyt import km, s >>> a = np.eye(2)*km >>> b = (np.ones((2, 2)) * 2)*s >>> print(a.dot(b)) [[2. 2.] [2. 2.]] km*s This array method can be conveniently chained: >>> print(a.dot(b).dot(b)) [[8. 8.] [8. 8.]] km*s**2 """ res_units = self.units * getattr(b, "units", NULL_UNIT) ret = self.view(np.ndarray).dot(np.asarray(b), out=out) * res_units if out is not None: out.units = res_units return ret def take(self, indices, axis=None, out=None, mode="raise"): """method Return an array formed from the elements of `a` at the given indices. Refer to :func:`numpy.take` for full documentation. See also -------- numpy.take : equivalent function """ from ._array_functions import take return take(self, indices, axis=axis, out=out, mode=mode) def __reduce__(self): """Pickle reduction method See the documentation for the standard library pickle module: http://docs.python.org/2/library/pickle.html Unit metadata is encoded in the zeroth element of third element of the returned tuple, itself a tuple used to restore the state of the ndarray. This is always defined for numpy arrays. """ np_ret = super().__reduce__() obj_state = np_ret[2] unit_state = (((str(self.units), self.units.registry.lut),) + obj_state[:],) new_ret = np_ret[:2] + unit_state + np_ret[3:] return new_ret def __setstate__(self, state): """Pickle setstate method This is called inside pickle.read() and restores the unit data from the metadata extracted in __reduce__ and then serialized by pickle. """ super().__setstate__(state[1:]) unit, lut = state[0] lut = _correct_old_unit_registry(lut) registry = UnitRegistry(lut=lut, add_default_symbols=False) self.units = Unit(unit, registry=registry) def __deepcopy__(self, memodict=None): """copy.deepcopy implementation This is necessary for stdlib deepcopy of arrays and quantities. """ ret = super().__deepcopy__(memodict) try: return type(self)( ret, copy.deepcopy(self.units), name=self.name, bypass_validation=True ) except TypeError: # subclasses might not take name as a kwarg return type(self)(ret, copy.deepcopy(self.units), bypass_validation=True) def squeeze(self, axis=None): """method Remove axes of length one from `a`. Refer to :func:`numpy.squeeze` for full documentation. See also -------- numpy.squeeze : equivalent function """ ret = super().squeeze(axis=axis) if ret.ndim == 0: return ret.view(type=unyt_quantity) else: return ret class unyt_quantity(unyt_array): """ A scalar associated with a unit. Parameters ---------- input_scalar : an integer or floating point scalar The scalar to attach units to units : String unit specification, unit symbol object, or astropy units The units of the quantity. Powers must be specified using python syntax (cm**3, not cm^3). registry : A UnitRegistry object The registry to create units from. If units is already associated with a unit registry and this is specified, this will be used instead of the registry associated with the unit object. dtype : data-type The dtype of the array data. bypass_validation : boolean If True, all input validation is skipped. Using this option may produce corrupted, invalid units or array data, but can lead to significant speedups in the input validation logic adds significant overhead. If set, units *must* be a valid unit object. Defaults to False. name : string The name of the scalar. Defaults to None. This attribute does not propagate through mathematical operations, but is preserved under indexing and unit conversions. Examples -------- >>> a = unyt_quantity(3., 'cm') >>> b = unyt_quantity(2., 'm') >>> print(a + b) 203.0 cm >>> print(b + a) 2.03 m NumPy ufuncs will pass through units where appropriate. >>> import numpy as np >>> from unyt import g, cm >>> a = 12*g/cm**3 >>> print(np.abs(a)) 12 g/cm**3 and strip them when it would be annoying to deal with them. >>> print(np.log10(a)) 1.0791812460476249 """ def __new__( cls, input_scalar, units=None, registry=None, dtype=None, *, bypass_validation=False, name=None, ): input_units = units if not ( bypass_validation or isinstance(input_scalar, (numeric_type, np.number, np.ndarray)) ): raise RuntimeError("unyt_quantity values must be numeric") if input_units is None: units = getattr(input_scalar, "units", None) else: units = input_units ret = unyt_array.__new__( cls, np.asarray(input_scalar), units, registry, dtype=dtype, bypass_validation=bypass_validation, name=name, ) if ret.size > 1: raise RuntimeError("unyt_quantity instances must be scalars") return ret def __round__(self): return type(self)(round(float(self)), self.units) def reshape(self, *shape, order="C"): # this is necessary to support some numpy operations # natively, like numpy.meshgrid, which internally performs # reshaping, e.g., arr.reshape(1, -1), which doesn't affect the size, # but does change the object's internal representation to a >0D array # see https://github.com/yt-project/unyt/issues/224 if len(shape) == 1: shape = shape[0] if shape == () or shape is None: return super().reshape(shape, order=order) else: return unyt_array(self).reshape(shape, order=order) def _validate_numpy_wrapper_units(v, arrs): if not any(isinstance(a, unyt_array) for a in arrs): return v if not all(isinstance(a, unyt_array) for a in arrs): raise RuntimeError("Not all of your arrays are unyt_arrays.") a1 = arrs[0] if not all(a.units == a1.units for a in arrs[1:]): raise RuntimeError("Your arrays must have identical units.") v.units = a1.units return v def uconcatenate(arrs, axis=0): """Concatenate a sequence of arrays. This wrapper around numpy.concatenate preserves units. All input arrays must have the same units. See the documentation of numpy.concatenate for full details. Examples -------- >>> from unyt import cm >>> A = [1, 2, 3]*cm >>> B = [2, 3, 4]*cm >>> uconcatenate((A, B)) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): DeprecationWarning: ... unyt_array([1, 2, 3, 2, 3, 4], 'cm') """ warn_deprecated( "unyt.uconcatenate", replacement="use numpy.concatenate", since_version="3.0" ) v = np.concatenate._implementation(arrs, axis=axis) v = _validate_numpy_wrapper_units(v, arrs) return v def ucross(arr1, arr2, registry=None, axisa=-1, axisb=-1, axisc=-1, axis=None): """Applies the cross product to two YT arrays. This wrapper around numpy.cross preserves units. See the documentation of numpy.cross for full details. """ warn_deprecated( "unyt.ucross", replacement=( "use numpy.cross (note that the *registry* argument will not be ported)" ), since_version="3.0", ) v = np.cross._implementation( arr1, arr2, axisa=axisa, axisb=axisb, axisc=axisc, axis=axis ) units = arr1.units * arr2.units arr = unyt_array(v, units, registry=registry) return arr def uintersect1d(arr1, arr2, assume_unique=False): """Find the sorted unique elements of the two input arrays. A wrapper around numpy.intersect1d that preserves units. All input arrays must have the same units. See the documentation of numpy.intersect1d for full details. Examples -------- >>> from unyt import cm >>> A = [1, 2, 3]*cm >>> B = [2, 3, 4]*cm >>> uintersect1d(A, B) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): DeprecationWarning: ... unyt_array([2, 3], 'cm') """ warn_deprecated( "unyt.uintersect1d", replacement="use numpy.intersect1d", since_version="3.0" ) return np.intersect1d(arr1, arr2, assume_unique=assume_unique) def uunion1d(arr1, arr2): """Find the union of two arrays. A wrapper around numpy.intersect1d that preserves units. All input arrays must have the same units. See the documentation of numpy.intersect1d for full details. Examples -------- >>> from unyt import cm >>> A = [1, 2, 3]*cm >>> B = [2, 3, 4]*cm >>> uunion1d(A, B) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): DeprecationWarning: ... unyt_array([1, 2, 3, 4], 'cm') """ warn_deprecated( "unyt.uunion1d", replacement="use numpy.union1d", since_version="3.0" ) return np.union1d(arr1, arr2) def unorm(data, ord=None, axis=None, keepdims=False): """Matrix or vector norm that preserves units This is a wrapper around np.linalg.norm that preserves units. See the documentation for that function for descriptions of the keyword arguments. Examples -------- >>> from unyt import km >>> data = [1, 2, 3]*km >>> print(unorm(data)) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): DeprecationWarning: ... 3.7416573867739413 km """ warn_deprecated( "unyt.unorm", replacement="use numpy.linalg.norm", since_version="3.0" ) norm = np.linalg.norm._implementation(data, ord=ord, axis=axis, keepdims=keepdims) if norm.shape == (): return unyt_quantity(norm, data.units) return unyt_array(norm, data.units) def udot(op1, op2): """Matrix or vector dot product that preserves units This is a wrapper around np.dot that preserves units. Examples -------- >>> from unyt import km, s >>> a = np.eye(2)*km >>> b = (np.ones((2, 2)) * 2)*s >>> print(udot(a, b)) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): DeprecationWarning: ... [[2. 2.] [2. 2.]] km*s """ warn_deprecated("unyt.udot", replacement="use numpy.dot", since_version="3.0") dot = np.dot._implementation(op1.d, op2.d) units = op1.units * op2.units if dot.shape == (): return unyt_quantity(dot, units) return unyt_array(dot, units) def uvstack(arrs): """Stack arrays in sequence vertically (row wise) while preserving units This is a wrapper around np.vstack that preserves units. Examples -------- >>> from unyt import km >>> a = [1, 2, 3]*km >>> b = [2, 3, 4]*km >>> print(uvstack([a, b])) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): DeprecationWarning: ... [[1 2 3] [2 3 4]] km """ warn_deprecated("unyt.uvstack", replacement="use numpy.vstack", since_version="3.0") v = np.vstack._implementation(arrs) v = _validate_numpy_wrapper_units(v, arrs) return v def uhstack(arrs): """Stack arrays in sequence horizontally while preserving units This is a wrapper around np.hstack that preserves units. Examples -------- >>> from unyt import km >>> a = [1, 2, 3]*km >>> b = [2, 3, 4]*km >>> print(uhstack([a, b])) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): DeprecationWarning: ... [1 2 3 2 3 4] km >>> a = [[1],[2],[3]]*km >>> b = [[2],[3],[4]]*km >>> print(uhstack([a, b])) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): DeprecationWarning: ... [[1 2] [2 3] [3 4]] km """ warn_deprecated("unyt.uhstack", replacement="use numpy.hstack", since_version="3.0") v = np.hstack._implementation(arrs) v = _validate_numpy_wrapper_units(v, arrs) return v def ustack(arrs, axis=0): """Join a sequence of arrays along a new axis while preserving units The axis parameter specifies the index of the new axis in the dimensions of the result. For example, if ``axis=0`` it will be the first dimension and if ``axis=-1`` it will be the last dimension. This is a wrapper around np.stack that preserves units. See the documentation for np.stack for full details. Examples -------- >>> from unyt import km >>> a = [1, 2, 3]*km >>> b = [2, 3, 4]*km >>> print(ustack([a, b])) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): DeprecationWarning: ... [[1 2 3] [2 3 4]] km """ warn_deprecated("unyt.ustack", replacement="use numpy.stack", since_version="3.0") v = np.stack._implementation(arrs, axis=axis) v = _validate_numpy_wrapper_units(v, arrs) return v def _get_binary_op_return_class(cls1, cls2): if cls1 is cls2: return cls1 if cls1 in (Unit, np.ndarray, np.matrix, np.ma.masked_array) or issubclass( cls1, (numeric_type, np.number, list, tuple) ): return cls2 if cls2 in (Unit, np.ndarray, np.matrix, np.ma.masked_array) or issubclass( cls2, (numeric_type, np.number, list, tuple) ): return cls1 if issubclass(cls1, unyt_quantity): return cls2 if issubclass(cls2, unyt_quantity): return cls1 if issubclass(cls1, cls2): return cls1 if issubclass(cls2, cls1): return cls2 else: return NotImplemented def loadtxt(fname, dtype="float", delimiter="\t", usecols=None, comments="#"): r""" Load unyt_arrays with unit information from a text file. Each row in the text file must have the same number of values. Parameters ---------- fname : str Filename to read. dtype : data-type, optional Data-type of the resulting array; default: float. delimiter : str, optional The string used to separate values. By default, this is any whitespace. usecols : sequence, optional Which columns to read, with 0 being the first. For example, ``usecols = (1,4,5)`` will extract the 2nd, 5th and 6th columns. The default, None, results in all columns being read. comments : str, optional The character used to indicate the start of a comment; default: '#'. Examples -------- >>> temp, velx = loadtxt( ... "sphere.dat", usecols=(1,2), delimiter="\t") # doctest: +SKIP """ f = open(fname) next_one = False units = [] num_cols = -1 for line in f.readlines(): words = line.strip().split() if len(words) == 0: continue if line[0] == comments: if next_one: units = words[1:] if len(words) == 2 and words[1] == "Units": next_one = True else: # Here we catch the first line of numbers col_words = line.strip().split(delimiter) for word in col_words: # test that word can be converted to a number complex(word) num_cols = len(col_words) break f.close() if len(units) != num_cols: units = ["dimensionless"] * num_cols arrays = np.loadtxt( fname, dtype=dtype, comments=comments, delimiter=delimiter, converters=None, unpack=True, usecols=usecols, ndmin=0, ) if len(arrays.shape) < 2: arrays = [arrays] if usecols is not None: units = [units[col] for col in usecols] ret = tuple(unyt_array(arr, unit) for arr, unit in zip(arrays, units)) if len(ret) == 1: return ret[0] return ret def savetxt( fname, arrays, fmt="%.18e", delimiter="\t", header="", footer="", comments="#" ): r""" Write unyt_arrays with unit information to a text file. Parameters ---------- fname : str The file to write the unyt_arrays to. arrays : list of unyt_arrays or single unyt_array The array(s) to write to the file. fmt : str or sequence of strs, optional A single format (%10.5f), or a sequence of formats. delimiter : str, optional String or character separating columns. header : str, optional String that will be written at the beginning of the file, before the unit header. footer : str, optional String that will be written at the end of the file. comments : str, optional String that will be prepended to the ``header`` and ``footer`` strings, to mark them as comments. Default: '# ', as expected by e.g. ``unyt.loadtxt``. Examples -------- >>> import unyt as u >>> a = [1, 2, 3]*u.cm >>> b = [8, 10, 12]*u.cm/u.s >>> c = [2, 85, 9]*u.g >>> savetxt("sphere.dat", [a,b,c], header='My sphere stuff', ... delimiter="\t") # doctest: +SKIP """ if not isinstance(arrays, list): arrays = [arrays] units = [] for array in arrays: if hasattr(array, "units"): units.append(str(array.units)) else: units.append("dimensionless") if header != "" and not header.endswith("\n"): header += "\n" header += " Units\n " + "\t".join(units) np.savetxt( fname, np.transpose(arrays), header=header, fmt=fmt, delimiter=delimiter, footer=footer, newline="\n", comments=comments, ) def allclose_units(actual, desired, rtol=1e-7, atol=0, **kwargs): """Returns False if two objects are not equal up to desired tolerance This is a wrapper for :func:`numpy.allclose` that also verifies unit consistency Parameters ---------- actual : array-like Array obtained (possibly with attached units) desired : array-like Array to compare with (possibly with attached units) rtol : float, optional Relative tolerance, defaults to 1e-7 atol : float or quantity, optional Absolute tolerance. If units are attached, they must be consistent with the units of ``actual`` and ``desired``. If no units are attached, assumes the same units as ``desired``. Defaults to zero. Raises ------ RuntimeError If units of ``rtol`` are not dimensionless See Also -------- :func:`unyt.testing.assert_allclose_units` Notes ----- Also accepts additional keyword arguments accepted by :func:`numpy.allclose`, see the documentation of that function for details. Examples -------- >>> import unyt as u >>> actual = [1e-5, 1e-3, 1e-1]*u.m >>> desired = actual.to("cm") >>> allclose_units(actual, desired) True """ # Create a copy to ensure this function does not alter input arrays act = unyt_array(actual) des = unyt_array(desired) try: des = des.in_units(act.units) except (UnitOperationError, UnitConversionError): return False rt = unyt_array(rtol) if not rt.units.is_dimensionless: raise RuntimeError(f"Units of rtol ({rt.units}) are not dimensionless") if not isinstance(atol, unyt_array): at = unyt_quantity(atol, des.units) else: at = atol try: at = at.in_units(act.units) except (UnitOperationError, UnitConversionError): return False # units have been validated, so we strip units before calling numpy # to avoid spurious errors act = act.value des = des.value rt = rt.value at = at.value return np.allclose(act, des, rt, at, **kwargs) unyt-3.2.0/unyt/dask_array.py000066400000000000000000000537051526544257300162330ustar00rootroot00000000000000""" a dask array class (unyt_dask_array) and helper functions for unyt. """ import sys from functools import wraps import numpy as np import unyt.array as ua if "pytest" in sys.modules: # should only happen if pytest is installed *and* already imported, # so we can skip collecting doctests from this module when dask isn't installed # while avoiding making pytest itself a hard dependency to this module. # This check is constructed to work with direct invocation (pytest unyt) # as well as through python -m pytest import pytest pytest.importorskip("dask") del pytest from dask.array.core import Array as DaskArray, finalize as dask_finalize # noqa: E402 # the following attributes hang off of dask.array.core.Array and do not modify units _use_unary_decorator = { "min", "max", "sum", "mean", "std", "cumsum", "squeeze", "rechunk", "clip", "view", "swapaxes", "round", "copy", "repeat", "astype", "reshape", "topk", } def _unary_dask_decorator(dask_func, current_unyt_dask): """ a decorator for the simpler dask functions that can just copy over the current unit info after applying the dask function. this includes functions that return single values (e.g., min()) or functions that change the array in ways that do not affect units like reshaping or rounding. Parameters ---------- dask_func: func handle the dask function handle to call current_unyt_dask: unyt_dask_array the current instance of a unyt_dask_array Returns a new unyt_dask_array instance with appropriate units """ @wraps(dask_func) def wrapper(*args, **kwargs): da = dask_func(*args, **kwargs) # will return standard dask array return _create_with_quantity(da, current_unyt_dask._unyt_array) return wrapper # the following list are the unyt_quantity/array attributes that will also # be attributes of the unyt_dask_array. These methods are wrapped with a unit # conversion decorator. _unyt_funcs_to_track = {"to", "in_units", "in_cgs", "in_base", "in_mks"} # helper sanitizing functions for handling ufunc, array operations def _extract_unyt(obj): # returns the hidden _unyt_quantity if it exists in obj, otherwise return obj if _is_iterable(obj): return [_extract_unyt(ob) for ob in obj] return obj._unyt_array if isinstance(obj, unyt_dask_array) else obj def _extract_dask(obj): # returns a plain dask array if the obj is a unyt_dask_array, otherwise return obj if _is_iterable(obj): return [_extract_dask(ob) for ob in obj] return obj.to_dask() if isinstance(obj, unyt_dask_array) else obj def _extract_unyt_val(obj): # returns the value of a unyt_quantity if obj is a unyt_quantity if _is_iterable(obj): return [_extract_unyt_val(ob) for ob in obj] return obj.to_value() if isinstance(obj, ua.unyt_quantity) else obj def _check_unyt_inputs(ui_0, ui_1): # returns True if the args need to be converted to the same unit, based on # if the units have the same dimensions but different units. if hasattr(ui_0, "units") and hasattr(ui_1, "units"): un_0, un_1 = ui_0.units, ui_1.units return un_0 != un_1 and un_0.dimensions == un_1.dimensions return False def _is_iterable(obj): return type(obj) is tuple or type(obj) is list # noqa E721 def _sanitize_unit_args(*input): # returns sanitized inputs and unyt_inputs for calling the ufunc unyt_inputs = _extract_unyt(input) if len(unyt_inputs) > 1: # note 1: even though we rely on the ufunc applied to the unyt quantities # to get the final units of our unyt_dask_array after an operation, # we need to first ensure that if our arguments have the same dimensions # they are in the same units. This happens internally for unyt_quantities # but we also need to apply those internal unit conversions to our # dask_unyt_array objects, so we do those checks manually here. # note 2: we do NOT check for validity of the operation here. The subsequent # call to the ufunc with the unyt_inputs will enforce the unyt rules # (e.g., addition must have same dimensions). ui_0, ui_1 = unyt_inputs[0], unyt_inputs[1] if _check_unyt_inputs(ui_0, ui_1): # convert to the unit with the larger base input = list(input) if ui_0.units.base_value < ui_1.units.base_value: input[0] = input[0].to(ui_1.units) else: input[1] = input[1].to(ui_0.units) unyt_inputs = _extract_unyt(input) return input, unyt_inputs def _prep_ufunc(ufunc, *input, extract_dask=False, **kwargs): # this function: # (1) sanitizes inputs for calls to __array_func__, __array__ and _elementwise # (2) applies the function to the hidden unyt quantities # (3) (optional) makes inputs extra clean: converts unyt_dask_array args to # plain dask array objects # apply the operation to the hidden unyt_quantities input, unyt_inputs = _sanitize_unit_args(*input) unyt_result = ufunc(*unyt_inputs, **kwargs) if extract_dask: input = _extract_dask(input) input = _extract_unyt_val(input) return input, unyt_result def _post_ufunc(dask_superfunk, unyt_result): # a decorator to attach hidden unyt quantity to result of a ufunc, array or # elemwise calculation def wrapper(*args, **kwargs): dask_result = dask_superfunk(*args, **kwargs) if hasattr(unyt_result, "units"): return _create_with_quantity(dask_result, unyt_result) return dask_result return wrapper def _special_dec(the_func): # decorator for special operations like __mul__ , __truediv__, which will # bypass __getattribute__ def wrapper(self, *args, **kwargs): funcname = the_func.__name__ ufunc = getattr(ua.unyt_quantity, funcname) ufunc_args = (self,) + args args, unyt_result = _prep_ufunc(ufunc, *ufunc_args, extract_dask=True, **kwargs) # remove the first arg, cause we need to supply self as first arg _ = args.pop(0) daskresult = the_func(self, *args, **kwargs) if hasattr(unyt_result, "units"): return _create_with_quantity(daskresult, unyt_result) return daskresult # __lt__, __le__, etc. will hit this return wrapper class unyt_dask_array(DaskArray): """ a dask.array.core.Array subclass that tracks units. This class is only recommended for advanced usage, most cases should use the unyt_from_dask helper function to instantiate a new unyt_dask_array. Parameters ---------- The following parameters are those for a standard dask.array.core.Array: dask : dict Task dependency graph name : string Name of array in dask shape : tuple of ints Shape of the entire array chunks: iterable of tuples block sizes along each dimension dtype : str or dtype Typecode or data-type for the new Dask Array meta : empty ndarray empty ndarray created with same NumPy backend, ndim and dtype as the Dask Array being created (overrides dtype) The following keyword-only parameters are the same as for a standard unyt.unyt_array (check there for definitions): units registry bypass_validation unyt_name """ def __new__( cls, dask_graph, name, chunks, dtype=None, meta=None, shape=None, *, units=None, registry=None, bypass_validation=False, unyt_name=None, ): # get the base dask array obj = super().__new__( cls, dask_graph, name, chunks, dtype, meta, shape, ) # attach our unyt sidecar quantity dtype = obj.dtype obj._unyt_array = ua.unyt_array( [1.0], units, registry, dtype, bypass_validation=bypass_validation, name=unyt_name, ) obj.units = obj._unyt_array.units obj.unyt_name = obj._unyt_array.name # set the unit conversion attributes so they are discoverable. no name # conflicts for now, but this could be an issue if _unyt_funcs_to_track # is expanded. for attr in _unyt_funcs_to_track: setattr(obj, attr, getattr(obj._unyt_array, attr)) return obj def _elemwise(self, ufunc, *args, **kwargs): args, unyt_result = _prep_ufunc(ufunc, *args, **kwargs) return _post_ufunc(super()._elemwise, unyt_result)(ufunc, *args, **kwargs) def __array_ufunc__(self, numpy_ufunc, method, *inputs, **kwargs): if numpy_ufunc not in ua.unyt_array._ufunc_registry: return NotImplemented inputs, unyt_result = _prep_ufunc( numpy_ufunc, *inputs, extract_dask=True, **kwargs ) wrapped_func = _post_ufunc(super().__array_ufunc__, unyt_result) return wrapped_func(numpy_ufunc, method, *inputs, **kwargs) def __array_function__(self, func, types, args, kwargs): from unyt._array_functions import _UNSUPPORTED_FUNCTIONS if func in _UNSUPPORTED_FUNCTIONS: return NotImplemented args, unyt_result = _prep_ufunc(func, *args, extract_dask=True, **kwargs) types = [type(i) for i in args] wrapped_func = _post_ufunc(super().__array_function__, unyt_result) return wrapped_func(func, types, args, kwargs) def __getitem__(self, index): return _unary_dask_decorator(super().__getitem__, self)(index) def __setitem__(self, key, value): # requires dask >= 2021.4.1 super().__setitem__(key, value) def __repr__(self): disp_str = super().__repr__().replace("dask.array", "unyt_dask_array") units_str = f", units={self.units}>" return disp_str.replace(">", units_str) def _repr_html_(self): # controls jupyter notebook display of an array. called from _repr_html_ base_table = super()._repr_html_() table = base_table.split("\n") new_table = [] for row in table: if "" in row: u = self.units newrow = f" Units {u} {u} " new_table.append(newrow) new_table.append(row) return "\n".join(new_table) def to_dask(self): """ convert to a plain dask array Returns ------- dask.array object Examples -------- >>> from unyt import dask_array >>> import dask.array as da >>> x = da.random.random((10000, 10000), chunks=(1000, 1000)) >>> x_da = dask_array.unyt_from_dask(x, 'm') >>> x_da.to_dask() ... # doctest: +NORMALIZE_WHITESPACE dask.array """ (_, args) = super().__reduce__() return DaskArray(*args) def __reduce__(self): (_, args) = super().__reduce__() unyt_state = { "_unyt_array": self._unyt_array, "units": self.units, "unyt_name": self.unyt_name, } # reminder: the 3rd object returned by a __reduce__ tuple is the object # state. when there is no __setstate__, it must be a dict and it will be # added to the __dict__ attribute. return unyt_dask_array, args, unyt_state def __getattribute__(self, name): if name in _unyt_funcs_to_track: return self._track_conversion(name) result = super().__getattribute__(name) if name in _use_unary_decorator: return _unary_dask_decorator(result, self) return result def _track_conversion(self, unyt_func_name): """ a decorator to use with unyt functions that convert units Parameters ---------- unyt_func_name: str the name of the function to call from the sidecar _unyt_quantity. Must be an attribute of unyt.unyt_quantity. current_unyt_dask: unyt_dask_array the current instance of a unyt_dask_array Returns a new unyt_dask_array instance with appropriate units """ def wrapper(*args, **kwargs): # current value of sidecar quantity init_val = self._unyt_array.value # get the unyt function handle and call it the_func = getattr(self._unyt_array, unyt_func_name) new_unyt_quantity = the_func(*args, **kwargs) # calculate the conversion factor and pull out the new name and units # might be able to use _get_conversion_factor here too... factor = new_unyt_quantity.value / init_val # apply the factor, return new new_unyt_quantity[:] = 1 # reset sidecar value new_obj = _create_with_quantity(self * factor, new_unyt_quantity) return new_obj # functools wrap fails here because unyt_func_name is a string, copy manually: wrapper.__doc__ = getattr(self._unyt_array, unyt_func_name).__doc__ return wrapper def __dask_postcompute__(self): # a dask hook to catch after .compute(), see # https://docs.dask.org/en/latest/custom-collections.html#example-dask-collection return _finalize_unyt, ((self.units,)) def _set_unit_state(self, units, new_unyt_array, unyt_name): # sets just the unit state of the object self.units = units self._unyt_array = new_unyt_array self.unyt_name = unyt_name # These methods bypass __getattribute__ and numpy hooks, so they are defined # explicitly here (but are handled generically by the _special_dec decorator). @_special_dec def __abs__(self): return super().__abs__() @_special_dec def __pow__(self, other): return super().__pow__(other) @_special_dec def __mul__(self, other): return super().__mul__(other) @_special_dec def __rmul__(self, other): return super().__rmul__(other) @_special_dec def __truediv__(self, other): return super().__truediv__(other) @_special_dec def __rtruediv__(self, other): return super().__rtruediv__(other) @_special_dec def __add__(self, other): return super().__add__(other) @_special_dec def __sub__(self, other): return super().__sub__(other) @_special_dec def __lt__(self, other): return super().__lt__(other) @_special_dec def __le__(self, other): return super().__le__(other) @_special_dec def __gt__(self, other): return super().__gt__(other) @_special_dec def __ge__(self, other): return super().__ge__(other) @_special_dec def __eq__(self, other): return super().__eq__(other) @_special_dec def __ne__(self, other): return super().__ne__(other) def prod(self, *args, **kwargs): _, unit = ua._apply_power_mapping( np.multiply, self._unyt_array.units, self.size, self.shape, kwargs ) dask_result = super().prod(*args, **kwargs) return _create_with_quantity(dask_result, ua.unyt_array([1.0], unit)) def _finalize_unyt(results, unit_name): """ the function to call from the __dask_postcompute__ hook. Parameters ---------- results : the dask results object unit_name : the units of the result Returns ------- unyt_array or unyt_quantity """ # here, we first call the standard finalize function for a dask array # and then return a standard unyt_array from the now in-memory result if # the result is an array, otherwise return a unyt_quantity. result = dask_finalize(results) if type(result) is np.ndarray: return ua.unyt_array(result, unit_name) else: return ua.unyt_quantity(result, unit_name) def _create_with_quantity(dask_array, new_unyt_array): """ this function instantiates a new unyt_dask_array instance and then sets the unit state, including units. Used to wrap dask operations Parameters ---------- dask_array : a standard dask array or a unyt_dask_array new_unyt_array : a standard unyt array remaining arguments get passed to unyt.unyt_array, check there for a description. """ if isinstance(dask_array, unyt_dask_array): dask_array = dask_array.to_dask() out = unyt_from_dask(dask_array) # attach the unyt_array units = new_unyt_array.units unyt_name = new_unyt_array.name out._set_unit_state(units, new_unyt_array, unyt_name) return out def unyt_from_dask( dask_array, units=None, *, registry=None, bypass_validation=False, unyt_name=None, ): """ creates a unyt_dask_array from a standard dask array. This function will create a new copy of the dask graph associated with an array. Parameters ---------- dask_array : a standard dask array units : String unit name, unit symbol object, or astropy unit The units of the array. Powers must be specified using python syntax (cm**3, not cm^3). registry : :class:`unyt.unit_registry.UnitRegistry` The registry to create units from. If units is already associated with a unit registry and this is specified, this will be used instead of the registry associated with the unit object. bypass_validation : boolean If True, all input validation is skipped. Using this option may produce corrupted, invalid units or array data, but can lead to significant speedups in the input validation logic adds significant overhead. If set, units *must* be a valid unit object. Defaults to False. unyt_name : string The name of the array. Defaults to None. This attribute does not propagate through mathematical operations, but is preserved under indexing and unit conversions. Notes ----- All of the above parameters with the exception of the dask_array are the same as for a standard unyt.unyt_array. Examples -------- >>> from unyt import dask_array, unyt_quantity >>> import dask.array as da >>> x = da.ones((1000, 1000), chunks=(100, 100)) >>> x_da = dask_array.unyt_from_dask(x, 'm') >>> type(x_da) >>> x_da.units m >>> x_da.mean().units m >>> x_da.mean().compute() unyt_quantity(1., 'm') >>> x_da.to('cm').mean().compute() unyt_quantity(100., 'cm') >>> (x_da.to('cm')/unyt_quantity(10, 's')).mean().compute() unyt_quantity(10., 'cm/s') """ # reduce the dask array to pull out the arguments required for instantiating # a new dask.array.core.Array object and then initialize our new unyt_dask # array (cls, args) = dask_array.__reduce__() da = unyt_dask_array( *args, units=units, registry=registry, bypass_validation=bypass_validation, unyt_name=unyt_name, ) return da # note: the unyt_dask_array class has no way of catching daskified reductions. # operations like dask.array.min() get routed through dask.array.reductions.min() # and will return plain arrays or float/int values. # # When these operations exist as attributes, they can be called and will return # unyt objects. i.e., : # # import dask; import unyt # x_da = unyt_from_dask(dask.array.ones((10, 10), chunks=(2, 2)), unyt.m) # dask.array.min(x_da).compute() # returns a plain float # x_da.min().compute() # returns a unyt quantity # # but when the functions do not exist as attributes, like dask.array.nanmin(), # it is difficult to handle without manually wrapping all of those reductions # functions and exposing them here. The following function, reduce_with_units, # is a compromise: it is a simple helper function for calling # a general dask.array.reductions method on a unyt_dask array to correctly # handle units. # # check https://github.com/yt-project/unyt/issues/269 for further discussion _nan_ops = {"nansum", "nanmean", "nanmedian", "nanstd", "nanmax", "nanmin", "nancumsum"} _passthrough_reductions = {"diagonal", "median"} _allowed_funcs = _nan_ops.union(_passthrough_reductions, _use_unary_decorator) def reduce_with_units(dask_func, unyt_dask_in, *args, **kwargs): """ Call a dask.array.reduction function and preserve units. Parameters ---------- dask_func : function a function handle from dask.array.reduction (e.g., dask.array.min, dask.array.var, dask.array.nanstd) to call. unyt_dask_in : unyt_dask_array the unyt dask array, first argument to dask_func args: any arguments to the dask_func kwargs: any keyword arguments to the dask_func Returns ------- unyt_dask_array: the result of dask_func with units preserved Examples -------- >>> import dask.array >>> from unyt.dask_array import unyt_from_dask, reduce_with_units >>> a = dask.array.ones((10000,), chunks=(100,)) >>> a = unyt_from_dask(a, 'm') >>> b = reduce_with_units(dask.array.median, a, axis=0) >>> b.compute() unyt_quantity(1., 'm') """ if dask_func.__name__ in _allowed_funcs: # e.g., min, max, nanstd. functions that return the same units can # be called directly as the dask function will treat unyt_dask_in as # a standard dask array and then we copy over the initial units. return _unary_dask_decorator(dask_func, unyt_dask_in)( unyt_dask_in, *args, **kwargs ) else: # the operation may change the units npfunc = getattr(np, dask_func.__name__, None) if npfunc: newargs, unyt_result = _prep_ufunc( npfunc, unyt_dask_in, *args, extract_dask=True, **kwargs ) return _post_ufunc(dask_func, unyt_result)(*newargs) else: raise ValueError("could not deduce np equivalent of dask reduction") unyt-3.2.0/unyt/dimensions.py000066400000000000000000000244231526544257300162560ustar00rootroot00000000000000""" Dimensions of physical quantities """ from functools import wraps from itertools import chain from sympy import Rational, Symbol, sympify from unyt._deprecation import warn_deprecated #: mass mass = Symbol("(mass)", positive=True) #: length length = Symbol("(length)", positive=True) #: time time = Symbol("(time)", positive=True) #: temperature temperature = Symbol("(temperature)", positive=True) #: angle angle = Symbol("(angle)", positive=True) #: current_mks current_mks = Symbol("(current_mks)", positive=True) #: luminous_intensity luminous_intensity = Symbol("(luminous_intensity)", positive=True) #: dimensionless dimensionless = sympify(1) #: logarithmic logarithmic = Symbol("(logarithmic)", positive=True) #: A list of all of the base dimensions base_dimensions = [ mass, length, time, temperature, angle, current_mks, dimensionless, luminous_intensity, logarithmic, ] # # Derived dimensions # # rate rate = 1 / time # frequency (alias for rate) frequency = rate # angular frequency angular_frequency = angle * rate # spatial frequency spatial_frequency = 1 / length #: solid_angle solid_angle = angle * angle #: velocity velocity = length / time #: acceleration acceleration = length / time**2 #: jerk jerk = length / time**3 #: snap snap = length / time**4 #: crackle crackle = length / time**5 #: pop pop = length / time**6 #: area area = length * length #: volume volume = area * length #: momentum momentum = mass * velocity #: force force = mass * acceleration #: surface tension tension = force / length #: pressure pressure = force / area #: energy energy = force * length #: power power = energy / time #: flux flux = power / area #: specific_flux specific_flux = flux / rate #: number_density number_density = 1 / (length * length * length) #: density density = mass * number_density #: angular_momentum angular_momentum = mass * length * velocity #: specific_angular_momentum specific_angular_momentum = angular_momentum / mass #: specific_energy specific_energy = energy / mass #: count_flux count_flux = 1 / (area * time) #: count_intensity count_intensity = count_flux / solid_angle #: luminous_flux luminous_flux = luminous_intensity * solid_angle #: luminance luminance = luminous_intensity / area # Gaussian electromagnetic units #: charge_cgs charge_cgs = (energy * length) ** Rational(1, 2) # proper 1/2 power #: current_cgs current_cgs = charge_cgs / time #: electric_field_cgs electric_field_cgs = charge_cgs / length**2 #: magnetic_field_cgs magnetic_field_cgs = electric_field_cgs #: electric_potential_cgs electric_potential_cgs = energy / charge_cgs #: resistance_cgs resistance_cgs = electric_potential_cgs / current_cgs #: magnetic_flux_cgs magnetic_flux_cgs = magnetic_field_cgs * area # SI electromagnetic units #: charge charge = charge_mks = current_mks * time #: electric_field electric_field = electric_field_mks = force / charge_mks #: magnetic_field magnetic_field = magnetic_field_mks = electric_field_mks / velocity #: electric_potential electric_potential = electric_potential_mks = energy / charge_mks #: resistance resistance = resistance_mks = electric_potential_mks / current_mks #: capacitance capacitance = capacitance_mks = charge / electric_potential #: magnetic_flux magnetic_flux = magnetic_flux_mks = magnetic_field_mks * area #: inductance inductance = inductance_mks = magnetic_flux_mks / current_mks #: a list containing all derived_dimensions derived_dimensions = [ rate, velocity, acceleration, jerk, snap, crackle, pop, momentum, force, energy, power, charge_cgs, electric_field_cgs, magnetic_field_cgs, solid_angle, flux, specific_flux, volume, luminous_flux, area, current_cgs, charge_mks, electric_field_mks, magnetic_field_mks, electric_potential_cgs, electric_potential_mks, resistance_cgs, resistance_mks, magnetic_flux_mks, magnetic_flux_cgs, luminance, spatial_frequency, angular_frequency, ] #: a list containing all dimensions dimensions = base_dimensions + derived_dimensions #: a dict containing a bidirectional mapping from #: mks dimension to cgs dimension em_dimensions = { magnetic_field_mks: magnetic_field_cgs, magnetic_flux_mks: magnetic_flux_cgs, charge_mks: charge_cgs, current_mks: current_cgs, electric_potential_mks: electric_potential_cgs, resistance_mks: resistance_cgs, } for k, v in list(em_dimensions.items()): em_dimensions[v] = k def accepts(**arg_units): """Decorator for checking units of function arguments. Parameters ---------- arg_units: dict Mapping of function arguments to dimensions, of the form 'arg1'=dimension1 etc where ``'arg1'`` etc are the function arguments and ``dimension1`` etc are SI base units (or combination of units), eg. length/time. Notes ----- Keyword args are not dimensionally check, being directly passed to the decorated function. Function arguments that don't have attached units can be skipped can bypass dimensionality checking by not being passed to the decorator. See ``baz`` in the examples, where ``a`` has no units. Examples -------- >>> import unyt as u >>> from unyt.dimensions import length, time >>> @accepts(a=time, v=length/time) ... def foo(a, v): ... return a * v ... >>> res = foo(a= 2 * u.s, v = 3 * u.m/u.s) >>> print(res) 6 m >>> @accepts(a=length, v=length/time) ... def bar(a, v): ... return a * v ... >>> bar(a= 2 * u.s, v = 3 * u.m/u.s) Traceback (most recent call last): ... TypeError: arg 'a=2 s' does not match (length) >>> @accepts(v=length/time) ... def baz(a, v): ... return a * v ... >>> res = baz(a= 2, v = 3 * u.m/u.s) >>> print(res) 6 m/s """ def check_accepts(f): """Decorates original function. Parameters ---------- f : function Function being decorated. Returns ------- new_f: function Decorated function. """ names_of_args = f.__code__.co_varnames @wraps(f) def new_f(*args, **kwargs): """The new function being returned from the decorator. Check units of `args` and `kwargs`, then run original function. Raises ------ TypeError If the units do not match. """ for arg_name, arg_value in chain(zip(names_of_args, args), kwargs.items()): if arg_name in arg_units: # function argument needs to be checked dimension = arg_units[arg_name] if not _has_dimensions(arg_value, dimension): raise TypeError( f"arg '{arg_name}={arg_value}' does not match {dimension}" ) return f(*args, **kwargs) return new_f return check_accepts def returns(*r_units, r_unit=None): """Decorator for checking function return units. Parameters ---------- *r_units: :py:class:`sympy.core.symbol.Symbol` SI base unit (or combination of units), eg. length/time of the value(s) returned by the original function r_unit: :py:class:`sympy.core.symbol.Symbol` Deprecated version of `r_units` which supports only one named return value. Examples -------- >>> import unyt as u >>> from unyt.dimensions import length, time >>> @returns(length) ... def f(a, v): ... return a * v ... >>> res = f(a= 2 * u.s, v = 3 * u.m/u.s) >>> print(res) 6 m >>> @returns(length/time) ... def f(a, v): ... return a * v ... >>> f(a= 2 * u.s, v = 3 * u.m/u.s) Traceback (most recent call last): ... TypeError: result '6 m' does not match (length)/(time) >>> @returns(length, length/time**2) ... def f(a, v): ... return a * v, v / a ... >>> res = f(a= 2 * u.s, v = 3 * u.m/u.s) >>> print(*res) 6 m 1.5 m/s**2 """ # Convert deprecated arguments into current ones where possible. if r_unit is not None: if len(r_units) > 0: raise ValueError( "Cannot specify `r_unit` and other return values simultaneously" ) else: warn_deprecated( "@unyt.returns(r_unit=...)", replacement="use @unyt.returns(...)", since_version="3.0", ) r_units = (r_unit,) def check_returns(f): """Decorates original function. Parameters ---------- f : function Function being decorated. Returns ------- new_f: function Decorated function. """ @wraps(f) def new_f(*args, **kwargs): """The decorated function, which checks the return units. Raises ------ TypeError If the units do not match. """ results = f(*args, **kwargs) # Make results a tuple so we can treat single and multiple return values the # same way. if isinstance(results, tuple): result_tuple = results else: result_tuple = (results,) for result, dimension in zip(result_tuple, r_units): if not _has_dimensions(result, dimension): raise TypeError(f"result '{result}' does not match {dimension}") return results return new_f return check_returns def _has_dimensions(quant, dim): """Checks the argument has the right dimensionality. Parameters ---------- quant : :py:class:`unyt.array.unyt_quantity` Quantity whose dimensionality we want to check. dim : :py:class:`sympy.core.symbol.Symbol` SI base unit (or combination of units), eg. length/time Returns ------- bool True if check successful. Examples -------- >>> import unyt as u >>> from unyt.dimensions import length, time >>> _has_dimensions(3 * u.m/u.s, length/time) True >>> _has_dimensions(3, length) False """ try: arg_dim = quant.units.dimensions except AttributeError: arg_dim = dimensionless return arg_dim == dim unyt-3.2.0/unyt/equivalencies.py000066400000000000000000000355301526544257300167440ustar00rootroot00000000000000""" Equivalencies between different kinds of units """ from collections import OrderedDict import numpy as np from unyt.dimensions import ( density, dimensionless, energy, flux, length, mass, number_density, rate, spatial_frequency, temperature, velocity, ) from unyt.exceptions import InvalidUnitEquivalence equivalence_registry = OrderedDict() class _RegisteredEquivalence(type): def __init__(cls, name, b, d): type.__init__(cls, name, b, d) if hasattr(cls, "type_name"): equivalence_registry[cls.type_name] = cls class Equivalence(metaclass=_RegisteredEquivalence): def __init__(self, in_place=False): self.in_place = in_place def convert(self, x, new_dims, **kwargs): if x.units.dimensions in self._dims and new_dims in self._dims: return self._convert(x, new_dims, **kwargs) else: raise InvalidUnitEquivalence(self, x.units, new_dims) def _get_out(self, x): if self.in_place: return x return None class NumberDensityEquivalence(Equivalence): """Equivalence between mass and number density, given a mean molecular weight. Given a number density :math:`n`, the mass density :math:`\\rho` is: .. math:: \\rho = \\mu m_{\\rm H} n And similarly .. math:: n = \\rho (\\mu m_{\\rm H})^{-1} Parameters ---------- mu : float The mean molecular weight. Defaults to 0.6 which is valid for fully ionized gas with primordial composition. Example ------- >>> print(NumberDensityEquivalence()) number density: density <-> number density >>> from unyt import Msun, pc >>> rho = 3*Msun/pc**3 >>> rho.to_equivalent('cm**-3', 'number_density', mu=1.4) unyt_quantity(86.64869896, 'cm**(-3)') """ type_name = "number_density" _dims = (density, number_density) def _convert(self, x, new_dims, mu=0.6): from unyt import physical_constants as pc if new_dims == number_density: return np.true_divide(x, mu * pc.mh, out=self._get_out(x)) elif new_dims == density: return np.multiply(x, mu * pc.mh, out=self._get_out(x)) def __str__(self): return "number density: density <-> number density" class ThermalEquivalence(Equivalence): """Equivalence between temperature and energy via the Boltzmann constant Given a temperature :math:`T` in an absolute scale (e.g. Kelvin or Rankine), the equivalent thermal energy :math:`E` for that temperature is given by: .. math:: E = k_B T And .. math:: T = E/k_B Where :math:`k_B` is Boltzmann's constant. Example ------- >>> print(ThermalEquivalence()) thermal: temperature <-> energy >>> from unyt import Kelvin >>> temp = 1e6*Kelvin >>> temp.to_equivalent('keV', 'thermal') unyt_quantity(0.08617332, 'keV') """ type_name = "thermal" _dims = (temperature, energy) def _convert(self, x, new_dims): from unyt import physical_constants as pc if new_dims == energy: return np.multiply(x, pc.kboltz, out=self._get_out(x)) elif new_dims == temperature: return np.true_divide(x, pc.kboltz, out=self._get_out(x)) def __str__(self): return "thermal: temperature <-> energy" class MassEnergyEquivalence(Equivalence): """Equivalence between mass and energy in special relativity Given a body with mass :math:`m`, the self-energy :math:`E` of that mass is given by .. math:: E = m c^2 where :math:`c` is the speed of light. Example ------- >>> print(MassEnergyEquivalence()) mass_energy: mass <-> energy >>> from unyt import g >>> (3.5*g).to_equivalent('J', 'mass_energy') unyt_quantity(3.14564313e+14, 'J') """ type_name = "mass_energy" _dims = (mass, energy) def _convert(self, x, new_dims): from unyt import physical_constants as pc if new_dims == energy: return np.multiply(x, pc.clight * pc.clight, out=self._get_out(x)) elif new_dims == mass: return np.true_divide(x, pc.clight * pc.clight, out=self._get_out(x)) def __str__(self): return "mass_energy: mass <-> energy" class SpectralEquivalence(Equivalence): """Equivalence between wavelength, frequency, and energy of a photon. Given a photon with wavelength :math:`\\lambda`, spatial frequency :math:`\\bar\\nu`, frequency :math:`\\nu` and Energy :math:`E`, these quantities are related by the following forumlae: .. math:: E = h \\nu = h c / \\lambda = h c \\bar\\nu where :math:`h` is Planck's constant and :math:`c` is the speed of light. Example ------ >>> print(SpectralEquivalence()) spectral: length <-> spatial_frequency <-> frequency <-> energy >>> from unyt import angstrom, km >>> (3*angstrom).to_equivalent('keV', 'spectral') unyt_quantity(4.13280644, 'keV') >>> (1*km).to_equivalent('MHz', 'spectral') unyt_quantity(0.29979246, 'MHz') """ type_name = "spectral" _dims = (length, rate, energy, spatial_frequency) def _convert(self, x, new_dims): from unyt import physical_constants as pc if new_dims == energy: if x.units.dimensions == length: return np.true_divide(pc.clight * pc.h_mks, x, out=self._get_out(x)) elif x.units.dimensions == rate: return np.multiply(x, pc.h_mks, out=self._get_out(x)) elif x.units.dimensions == spatial_frequency: return np.multiply(x, pc.h_mks * pc.clight, out=self._get_out(x)) elif new_dims == length: if x.units.dimensions == rate: return np.true_divide(pc.clight, x, out=self._get_out(x)) elif x.units.dimensions == energy: return np.true_divide(pc.h_mks * pc.clight, x, out=self._get_out(x)) elif x.units.dimensions == spatial_frequency: return np.true_divide(1, x, out=self._get_out(x)) elif new_dims == rate: if x.units.dimensions == length: return np.true_divide(pc.clight, x, out=self._get_out(x)) elif x.units.dimensions == energy: return np.true_divide(x, pc.h_mks, out=self._get_out(x)) elif x.units.dimensions == spatial_frequency: return np.multiply(x, pc.clight, out=self._get_out(x)) elif new_dims == spatial_frequency: if x.units.dimensions == length: return np.true_divide(1, x, out=self._get_out(x)) elif x.units.dimensions == energy: return np.true_divide(x, pc.clight * pc.h_mks, out=self._get_out(x)) elif x.units.dimensions == rate: return np.true_divide(x, pc.clight, out=self._get_out(x)) def __str__(self): return "spectral: length <-> spatial_frequency <-> frequency " + "<-> energy" class SoundSpeedEquivalence(Equivalence): """Equivalence between the sound speed, temperature, and thermal energy of an ideal gas For an ideal gas with sound speed :math:`c_s`, temperature :math:`T`, and thermal energy :math:`E`, the following equalities will hold: .. math:: c_s = \\sqrt{\\frac{\\gamma k_B T}{\\mu m_{\\rm H}}} and .. math:: E = c_s^2 \\mu m_{\\rm H} / \\gamma = k_B T where :math:`k_B` is Boltzmann's constant, :math:`\\mu` is the mean molecular weight of the gas, and :math:`\\gamma` is the ratio of specific heats. Parameters ---------- gamma : float The ratio of specific heats. Defaults to 5/3, which is correct for monatomic species. mu : float The mean molecular weight. Defaults to 0.6, which is valid for fully ionized gas with primordial composition. Example ------- >>> print(SoundSpeedEquivalence()) sound_speed (ideal gas): velocity <-> temperature <-> energy >>> from unyt import Kelvin, km, s >>> hot = 1e6*Kelvin >>> hot.to_equivalent('km/s', 'sound_speed') unyt_quantity(151.37249927, 'km/s') >>> hot.to_equivalent('keV', 'sound_speed') unyt_quantity(0.08617332, 'keV') >>> cs = 100*km/s >>> cs.to_equivalent('K', 'sound_speed') unyt_quantity(436421.39881617, 'K') >>> cs.to_equivalent('keV', 'sound_speed') unyt_quantity(0.03760788, 'keV') """ type_name = "sound_speed" _dims = (velocity, temperature, energy) def _convert(self, x, new_dims, mu=0.6, gamma=5.0 / 3.0): from unyt import physical_constants as pc if new_dims == velocity: if x.units.dimensions == temperature: v2 = np.multiply( pc.kboltz * gamma / (mu * pc.mh), x, out=self._get_out(x) ) elif x.units.dimensions == energy: v2 = np.multiply(gamma / (mu * pc.mh), x, out=self._get_out(x)) return np.sqrt(v2, out=self._get_out(x)) elif new_dims == temperature: if x.units.dimensions == velocity: v2 = np.multiply(x, x, out=self._get_out(x)) kT = np.multiply(v2, mu * pc.mh / gamma, out=self._get_out(x)) return np.true_divide(kT, pc.kboltz, out=self._get_out(x)) else: return np.true_divide(x, pc.kboltz, out=self._get_out(x)) else: if x.units.dimensions == velocity: v2 = np.multiply(x, x, out=self._get_out(x)) return np.multiply(mu * pc.mh / gamma, v2, out=self._get_out(x)) else: return np.multiply(x, pc.kboltz, out=self._get_out(x)) def __str__(self): return "sound_speed (ideal gas): velocity <-> temperature <-> energy" class LorentzEquivalence(Equivalence): """Equivalence between velocity and the Lorentz gamma factor. For a body with velocity :math:`v`, the Lorentz gamma factor, :math:`\\gamma` is .. math:: \\gamma = \\frac{1}{\\sqrt{1 - v^2/c^2}} and similarly .. math:: v = \\frac{c}{\\sqrt{1 - \\gamma^2}} where :math:`c` is the speed of light. Example ------- >>> print(LorentzEquivalence()) lorentz: velocity <-> dimensionless >>> from unyt import c, dimensionless >>> v = 0.99*c >>> print(v.to_equivalent('', 'lorentz')) 7.088812050083393 dimensionless >>> fast = 99.9*dimensionless >>> fast.to_equivalent('c', 'lorentz') unyt_quantity(0.9999499, 'c') >>> fast.to_equivalent('km/s', 'lorentz') unyt_quantity(299777.43797656, 'km/s') """ type_name = "lorentz" _dims = (dimensionless, velocity) def _convert(self, x, new_dims): from unyt import physical_constants as pc if new_dims == dimensionless: beta = np.true_divide(x, pc.clight, out=self._get_out(x)) beta2 = np.multiply(beta, beta, out=self._get_out(x)) inv_gamma_2 = np.subtract(1, beta2, out=self._get_out(x)) inv_gamma = np.sqrt(inv_gamma_2, out=self._get_out(x)) gamma = np.true_divide(1.0, inv_gamma, out=self._get_out(x)) return gamma elif new_dims == velocity: gamma2 = np.multiply(x, x, out=self._get_out(x)) inv_gamma_2 = np.true_divide(1, gamma2, out=self._get_out(x)) beta2 = np.subtract(1, inv_gamma_2, out=self._get_out(x)) beta = np.sqrt(beta2, out=self._get_out(x)) return np.multiply(pc.clight, beta, out=self._get_out(x)) def __str__(self): return "lorentz: velocity <-> dimensionless" class SchwarzschildEquivalence(Equivalence): """Equivalence between the mass and radius of a Schwarzschild black hole A Schwarzschild black hole of mass :math:`M` has radius :math:`R` .. math:: R = \\frac{2 G M}{c^2} and similarly .. math:: M = \\frac{R c^2}{2 G} where :math:`G` is Newton's gravitational constant and :math:`c` is the speed of light. Example ------- >>> print(SchwarzschildEquivalence()) schwarzschild: mass <-> length >>> from unyt import Msun, AU >>> (10*Msun).to_equivalent('km', 'schwarzschild') unyt_quantity(29.53161626, 'km') >>> (1*AU).to_equivalent('Msun', 'schwarzschild') unyt_quantity(50656851.7815179, 'Msun') """ type_name = "schwarzschild" _dims = (mass, length) def _convert(self, x, new_dims): from unyt import physical_constants as pc if new_dims == length: return np.multiply( 2.0 * pc.G / (pc.clight * pc.clight), x, out=self._get_out(x) ) elif new_dims == mass: return np.multiply( 0.5 * pc.clight * pc.clight / pc.G, x, out=self._get_out(x) ) def __str__(self): return "schwarzschild: mass <-> length" class ComptonEquivalence(Equivalence): """Equivalence between the Compton wavelength of a particle and its mass. .. math:: \\lambda_c = h/mc Example ------- >>> print(ComptonEquivalence()) compton: mass <-> length >>> from unyt import me, fm >>> me.to_equivalent('angstrom', 'compton') unyt_quantity(0.0242631, 'Ã…') >>> (10*fm).to_equivalent('me', 'compton') unyt_quantity(242.63102371, 'me') """ type_name = "compton" _dims = (mass, length) def _convert(self, x, new_dims): from unyt import physical_constants as pc return np.true_divide(pc.h_mks / pc.clight, x, out=self._get_out(x)) def __str__(self): return "compton: mass <-> length" class EffectiveTemperatureEquivalence(Equivalence): """Equivalence between the emitted flux across all wavelengths and temperature of a blackbody For a blackbody emitter with Temperature :math:`T` emitting radiation with a flux :math:`F`, the following equality holds: .. math:: F = \\sigma T^4 where :math:`\\sigma` is the Stefan-Boltzmann constant. Example ------- >>> print(EffectiveTemperatureEquivalence()) effective_temperature: flux <-> temperature >>> from unyt import K, W, m >>> (5000.*K).to_equivalent('W/m**2', 'effective_temperature') unyt_quantity(35439828.89119583, 'W/m**2') >>> (100.*W/m**2).to_equivalent('K', 'effective_temperature') unyt_quantity(204.92601755, 'K') """ type_name = "effective_temperature" _dims = (flux, temperature) def _convert(self, x, new_dims): from unyt import physical_constants as pc if new_dims == flux: x4 = np.power(x, 4, out=self._get_out(x)) return np.multiply( pc.stefan_boltzmann_constant_mks, x4, out=self._get_out(x) ) elif new_dims == temperature: T4 = np.true_divide( x, pc.stefan_boltzmann_constant_mks, out=self._get_out(x) ) ret = np.power(T4, 0.25, out=self._get_out(x)) return ret def __str__(self): return "effective_temperature: flux <-> temperature" unyt-3.2.0/unyt/exceptions.py000066400000000000000000000231361526544257300162670ustar00rootroot00000000000000""" Exception classes defined by unyt """ class UnytError(Exception): """ A generic exception type that all unyt exceptions are derived from. It may be raised directly in rare situations that do not fit any existing exceptions and don't justify the creation of a new one. Since it serves as a base class for all unyt exceptions, it may be used as a catch-all exception type in dependent code. For instance >>> from unyt import cm, s >>> from unyt.exceptions import UnytError >>> a = 1 * cm >>> b = 1 / s >>> try: ... a + b ... except UnytError: ... pass However, it is generally recommended to only capture exceptions as specific as possible. """ pass class UnitOperationError(UnytError, ValueError): """An exception that is raised when unit operations are not allowed Example ------- >>> import unyt as u >>> 3*u.g + 4*u.m\ # doctest: +IGNORE_EXCEPTION_DETAIL +NORMALIZE_WHITESPACE Traceback (most recent call last): ... unyt.exceptions.UnitOperationError: The operator for unyt_arrays with units "g" (dimensions "(mass)") and "m" (dimensions "(length)") is not well defined. """ def __init__(self, operation, unit1, unit2=None): self.operation = operation self.unit1 = unit1 self.unit2 = unit2 super().__init__() def __str__(self): err = ( f"The {self.operation} operator for unyt_arrays with units " f"'{self.unit1}' (dimensions '{self.unit1.dimensions}') " ) if self.unit2 is not None: err += f"and '{self.unit2}' (dimensions '{self.unit2.dimensions}') " err += "is not well defined." return err class UnitInconsistencyError(UnitOperationError): """An error raised on forbidden numpy API expecting arrays with identical units. Example ------- >>> import unyt as u >>> import numpy as np >>> np.concatenate([[1, 2, 3] * u.cm, [4, 5, 6] * u.s])\ # doctest: +IGNORE_EXCEPTION_DETAIL +NORMALIZE_WHITESPACE Traceback (most recent call last): ... unyt.exceptions.UnitInconsistencyError: Expected all unyt_array arguments to have identical units. Received mixed units (cm, s) """ def __init__(self, *units): self.units = units def __str__(self): return ( "Expected all unyt_array arguments to have identical units. " f"Received mixed units ({', '.join(str(u) for u in self.units)})" ) class UnitConversionError(UnytError): """An error raised when converting to a unit with different dimensions. Example ------- >>> import unyt as u >>> data = 3*u.g >>> data.to('m') # doctest: +IGNORE_EXCEPTION_DETAIL +NORMALIZE_WHITESPACE Traceback (most recent call last): ... unyt.exceptions.UnitConversionError: Cannot convert between 'g' (dim '(mass)') and 'm' (dim '(length)'). """ def __init__(self, unit1, dimension1, unit2, dimension2): self.unit1 = unit1 self.unit2 = unit2 self.dimension1 = dimension1 self.dimension2 = dimension2 super().__init__() def __str__(self): err = ( f"Cannot convert between '{self.unit1}' (dim '{self.dimension1}') " f"and '{self.unit2}' (dim '{self.dimension2}')." ) return err class MissingMKSCurrent(UnytError): """Raised when querying a unit system for MKS current dimensions Since current is a base dimension for SI or SI-like unit systems but not in CGS or CGS-like unit systems, dimensions that include the MKS current dimension (the dimension of ampere) are not representable in CGS-like unit systems. When a CGS-like unit system is queried for such a dimension, this error is raised. Example ------- >>> from unyt.unit_systems import cgs_unit_system as us >>> from unyt import ampere >>> us[ampere.dimensions]\ # doctest: +IGNORE_EXCEPTION_DETAIL +NORMALIZE_WHITESPACE Traceback (most recent call last): ... unyt.exceptions.MissingMKSCurrent: The cgs unit system does not have a MKS current base unit """ def __init__(self, unit_system_name): self.unit_system_name = unit_system_name super().__init__() def __str__(self): return ( f"The {self.unit_system_name} unit system does not have " "a MKS current base unit" ) class MKSCGSConversionError(UnytError): """Raised when conversion between MKS and CGS units cannot be performed This error is raised and caught internally and will expose itself to the user as part of a chained exception leading to a UnitConversionError. """ pass class UnitsNotReducible(UnytError): """Raised when a unit cannot be safely represented in a unit system Example ------- >>> from unyt import A, cm >>> data = 12*A/cm >>> data.in_cgs()\ # doctest: +IGNORE_EXCEPTION_DETAIL +NORMALIZE_WHITESPACE Traceback (most recent call last): ... unyt.exceptions.UnitsNotReducible: The unit "A/cm" (dimensions "(current_mks)/(length)") cannot be reduced to an expression within the cgs system of units. """ def __init__(self, unit, units_base): self.unit = unit self.units_base = units_base super().__init__() def __str__(self): return ( f"The unit '{self.unit}' (dimensions '{self.unit.dimensions}') cannot be " f"reduced to an expression within the {self.units_base} system of units." ) class IterableUnitCoercionError(UnytError): """Raised when an iterable cannot be converted to a unyt_array Example ------- >>> from unyt import g, cm, unyt_array >>> data = [2*cm, 3*g] >>> unyt_array(data)\ # doctest: +IGNORE_EXCEPTION_DETAIL +NORMALIZE_WHITESPACE Traceback (most recent call last): ... unyt.exceptions.IterableUnitCoercionError: Received an input or operand that cannot be converted to a unyt_array with uniform units: [unyt_quantity(2., 'cm'), unyt_quantity(3., 'g')] """ def __init__(self, op): self.op = op super().__init__() def __str__(self): err = ( "Received an input or operand that cannot be converted " f"to a unyt_array with uniform units: {self.op}" ) return err class InvalidUnitEquivalence(UnytError): """Raised an equivalence does not apply to a unit conversion Example ------- >>> import unyt as u >>> data = 12*u.g >>> data.to('erg', equivalence='thermal')\ # doctest: +IGNORE_EXCEPTION_DETAIL +NORMALIZE_WHITESPACE Traceback (most recent call last): ... unyt.exceptions.InvalidUnitEquivalence: The unit equivalence 'thermal' does not exist for the units 'g' and 'erg'. """ def __init__(self, equiv, unit1, unit2): self.equiv = equiv self.unit1 = unit1 self.unit2 = unit2 super().__init__() def __str__(self): from unyt.unit_object import Unit if isinstance(self.unit2, Unit): msg = ( "The unit equivalence '%s' does not exist for the units '%s' and '%s'." ) else: msg = ( "The unit equivalence '%s' does not exist for units '%s' " "to convert to a new unit with dimensions '%s'." ) return msg % (self.equiv, self.unit1, self.unit2) class InvalidUnitOperation(UnytError): """Raised when an operation on a unit object is not allowed Example ------- >>> from unyt import cm, g >>> cm + g # doctest: +IGNORE_EXCEPTION_DETAIL +NORMALIZE_WHITESPACE Traceback (most recent call last): ... unyt.exceptions.InvalidUnitOperation: addition with unit objects is not allowed """ pass class SymbolNotFoundError(UnytError): """Raised when a unit name is not available in a unit registry Example ------- >>> from unyt.unit_registry import default_unit_registry >>> default_unit_registry['made_up_unit']\ # doctest: +IGNORE_EXCEPTION_DETAIL +NORMALIZE_WHITESPACE Traceback (most recent call last): ... unyt.exceptions.SymbolNotFoundError: The symbol 'made_up_unit' does not exist in this registry. """ pass class UnitParseError(UnytError): """Raised when a string unit name is not parseable as a valid unit Example ------- >>> from unyt import Unit >>> Unit('hello')\ # doctest: +IGNORE_EXCEPTION_DETAIL +NORMALIZE_WHITESPACE Traceback (most recent call last): ... unyt.exceptions.UnitParseError: Could not find unit symbol 'hello' in the provided symbols. """ pass class IllDefinedUnitSystem(UnytError): """Raised when the dimensions of the base units of a unit system are inconsistent. Example ------- >>> from unyt.unit_systems import UnitSystem >>> UnitSystem('atomic', 'nm', 'fs', 'nK', 'rad')\ # doctest: +IGNORE_EXCEPTION_DETAIL +NORMALIZE_WHITESPACE Traceback (most recent call last): ... unyt.exceptions.IllDefinedUnitSystem: Cannot create unit system with inconsistent mapping from dimensions to units. Received: OrderedDict([((length), nm), ((mass), fs), ((time), nK), ((temperature), rad), ((angle), rad), ((current_mks), A), ((luminous_intensity), cd)]) """ def __init__(self, units_map): self.units_map = units_map super().__init__() def __str__(self): return ( "Cannot create unit system with inconsistent mapping from " f"dimensions to units. Received:\n{self.units_map}" ) unyt-3.2.0/unyt/mpl_interface.py000066400000000000000000000045321526544257300167150ustar00rootroot00000000000000""" Matplotlib offers support for custom classes, such as unyt_array, allowing customization of axis information and unit conversion. In the case of unyt, the axis label is set based on the unyt_array.name and unyt_array.units attributes. It is also possible to convert the plotted units. This feature is optional and has to be enabled using the matplotlib_support context manager. """ from unyt.array import unyt_array, unyt_quantity from ._on_demand_imports import _matplotlib __all__ = ["matplotlib_support"] class matplotlib_support: """Context manager for enabling the feature When used in a with statement, the feature is enabled during the context and then disabled after it exits. Parameters ---------- label_style : str One of the following set, ``{'()', '[]', '/'}``. These choices correspond to the following unit labels: * ``'()'`` -> ``'(unit)'`` * ``'[]'`` -> ``'[unit]'`` * ``'/'`` -> ``'q_x / unit'`` """ @property def array_converter(self): from ._mpl_array_converter import unyt_arrayConverter unyt_arrayConverter._labelstyle = self.label_style return unyt_arrayConverter def __init__(self, label_style="()"): self._labelstyle = label_style self._enabled = False def __call__(self): self.__enter__() @property def label_style(self): """str: One of the following set, ``{'()', '[]', '/'}``. These choices correspond to the following unit labels: * ``'()'`` -> ``'(unit)'`` * ``'[]'`` -> ``'[unit]'`` * ``'/'`` -> ``'q_x / unit'`` """ return self._labelstyle @label_style.setter def label_style(self, label_style="()"): self._labelstyle = label_style self.array_converter._labelstyle = label_style def __enter__(self): _matplotlib.units.registry[unyt_array] = self.array_converter() _matplotlib.units.registry[unyt_quantity] = self.array_converter() self._enabled = True def __exit__(self, exc_type, exc_val, exc_tb): _matplotlib.units.registry.pop(unyt_array) _matplotlib.units.registry.pop(unyt_quantity) self._enabled = False def enable(self): self.__enter__() def disable(self): if self._enabled: self.__exit__(None, None, None) unyt-3.2.0/unyt/physical_constants.py000066400000000000000000000012331526544257300200100ustar00rootroot00000000000000""" Predefined useful physical constants Note that all of these names can be imported from the top-level unyt namespace. For example:: >>> from unyt.physical_constants import gravitational_constant, solar_mass >>> from unyt import AU >>> from math import pi >>> >>> period = 2 * pi * ((1 * AU)**3 / (gravitational_constant * solar_mass))**0.5 >>> period.in_units('day') unyt_quantity(365.26236846, 'day') .. show_all_constants:: """ from unyt.unit_registry import default_unit_registry as _default_unit_registry from unyt.unit_systems import add_constants as _add_constants _add_constants(globals(), registry=_default_unit_registry) unyt-3.2.0/unyt/testing.py000066400000000000000000000052421526544257300155610ustar00rootroot00000000000000""" Utilities for writing tests """ import warnings from unyt.array import NULL_UNIT, allclose_units def assert_allclose_units(actual, desired, rtol=1e-7, atol=0, **kwargs): """Raise an error if two objects are not equal up to desired tolerance This is a wrapper for :func:`numpy.testing.assert_allclose` that also verifies unit consistency Parameters ---------- actual : array-like Array obtained (possibly with attached units) desired : array-like Array to compare with (possibly with attached units) rtol : float, optional Relative tolerance, defaults to 1e-7 atol : float or quantity, optional Absolute tolerance. If units are attached, they must be consistent with the units of ``actual`` and ``desired``. If no units are attached, assumes the same units as ``desired``. Defaults to zero. See Also -------- :func:`unyt.array.allclose_units` Notes ----- Also accepts additional keyword arguments accepted by :func:`numpy.testing.assert_allclose`, see the documentation of that function for details. Examples -------- >>> import unyt as u >>> actual = [1e-5, 1e-3, 1e-1]*u.m >>> desired = actual.to("cm") >>> assert_allclose_units(actual, desired) """ if not allclose_units(actual, desired, rtol, atol, **kwargs): raise AssertionError def assert_array_equal_units(x, y, **kwargs): """A thin wrapper around :func:`numpy.testing.assert_array_equal` that also verifies unit consistency Arrays without units are considered dimensionless. Parameters ---------- x : array_like The actual object to check. y : array_like The desired, expected object. See Also -------- :func:`numpy.testing.assert_array_equal` Notes ----- Also accepts additional keyword arguments accepted by :func:`numpy.testing.assert_array_equel`, see the documentation of that function for details. """ # see https://github.com/yt-project/unyt/issues/281 from numpy.testing import assert_array_equal assert_array_equal(x, y, **kwargs) if not (xu := getattr(x, "units", NULL_UNIT)) == ( yu := getattr(y, "units", NULL_UNIT) ): raise AssertionError(f"Arguments' units do not match (got {xu} and {yu})") def _process_warning(op, message, warning_class, args=(), kwargs=None): if kwargs is None: kwargs = {} with warnings.catch_warnings(record=True) as w: warnings.simplefilter("always") op(*args, **kwargs) assert len(w) == 1 assert issubclass(w[0].category, warning_class) assert str(w[0].message) == message unyt-3.2.0/unyt/tests/000077500000000000000000000000001526544257300146715ustar00rootroot00000000000000unyt-3.2.0/unyt/tests/__init__.py000066400000000000000000000000001526544257300167700ustar00rootroot00000000000000unyt-3.2.0/unyt/tests/data/000077500000000000000000000000001526544257300156025ustar00rootroot00000000000000unyt-3.2.0/unyt/tests/data/__init__.py000066400000000000000000000000001526544257300177010ustar00rootroot00000000000000unyt-3.2.0/unyt/tests/data/old_json_registry.txt000066400000000000000000000312301526544257300221010ustar00rootroot00000000000000{"g": [1.0, "Symbol('(mass)', positive=True)", 0.0, "\\rm{g}"], "s": [1.0, "Symbol('(time)', positive=True)", 0.0, "\\rm{s}"], "K": [1.0, "Symbol('(temperature)', positive=True)", 0.0, "\\rm{K}"], "radian": [1.0, "Symbol('(angle)', positive=True)", 0.0, "\\rm{radian}"], "dyne": [1.0, "Mul(Symbol('(length)', positive=True), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{dyn}"], "erg": [1.0, "Mul(Pow(Symbol('(length)', positive=True), Integer(2)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{erg}"], "esu": [1.0, "Mul(Pow(Symbol('(length)', positive=True), Rational(3, 2)), Pow(Symbol('(mass)', positive=True), Rational(1, 2)), Pow(Symbol('(time)', positive=True), Integer(-1)))", 0.0, "\\rm{esu}"], "gauss": [1.0, "Mul(Pow(Symbol('(length)', positive=True), Rational(-1, 2)), Pow(Symbol('(mass)', positive=True), Rational(1, 2)), Pow(Symbol('(time)', positive=True), Integer(-1)))", 0.0, "\\rm{G}"], "degC": [1.0, "Symbol('(temperature)', positive=True)", -273.15, "^\\circ\\rm{C}"], "statA": [1.0, "Mul(Pow(Symbol('(length)', positive=True), Rational(3, 2)), Pow(Symbol('(mass)', positive=True), Rational(1, 2)), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{statA}"], "statV": [1.0, "Mul(Pow(Symbol('(length)', positive=True), Rational(1, 2)), Pow(Symbol('(mass)', positive=True), Rational(1, 2)), Pow(Symbol('(time)', positive=True), Integer(-1)))", 0.0, "\\rm{statV}"], "statohm": [1.0, "Mul(Pow(Symbol('(length)', positive=True), Integer(-1)), Symbol('(time)', positive=True))", 0.0, "\\rm{statohm}"], "m": [100.0, "Symbol('(length)', positive=True)", 0.0, "\\rm{m}"], "J": [10000000.0, "Mul(Pow(Symbol('(length)', positive=True), Integer(2)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{J}"], "W": [10000000.0, "Mul(Pow(Symbol('(length)', positive=True), Integer(2)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-3)))", 0.0, "\\rm{W}"], "Hz": [1.0, "Pow(Symbol('(time)', positive=True), Integer(-1))", 0.0, "\\rm{Hz}"], "N": [100000.0, "Mul(Symbol('(length)', positive=True), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{N}"], "C": [1.0, "Mul(Symbol('(current_mks)', positive=True), Symbol('(time)', positive=True))", 0.0, "\\rm{C}"], "A": [1.0, "Symbol('(current_mks)', positive=True)", 0.0, "\\rm{A}"], "T": [1000.0, "Mul(Pow(Symbol('(current_mks)', positive=True), Integer(-1)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{T}"], "Pa": [10.0, "Mul(Pow(Symbol('(length)', positive=True), Integer(-1)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{Pa}"], "V": [10000000.0, "Mul(Pow(Symbol('(current_mks)', positive=True), Integer(-1)), Pow(Symbol('(length)', positive=True), Integer(2)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-3)))", 0.0, "\\rm{V}"], "ohm": [10000000.0, "Mul(Pow(Symbol('(current_mks)', positive=True), Integer(-2)), Pow(Symbol('(length)', positive=True), Integer(2)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-3)))", 0.0, "\\Omega"], "ft": [30.48, "Symbol('(length)', positive=True)", 0.0, "\\rm{ft}"], "mile": [160934.4, "Symbol('(length)', positive=True)", 0.0, "\\rm{mile}"], "degF": [0.5555555555555556, "Symbol('(temperature)', positive=True)", -459.67, "^\\circ\\rm{F}"], "R": [0.5555555555555556, "Symbol('(temperature)', positive=True)", 0.0, "^\\circ\\rm{R}"], "lbf": [444822.16152605, "Mul(Symbol('(length)', positive=True), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{lbf}"], "lbm": [453.59237, "Symbol('(mass)', positive=True)", 0.0, "\\rm{lbm}"], "atm": [1013250.0, "Mul(Pow(Symbol('(length)', positive=True), Integer(-1)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{atm}"], "h": [0.702, "Integer(1)", 0.0, "h"], "dimensionless": [1.0, "Integer(1)", 0.0, ""], "min": [60.0, "Symbol('(time)', positive=True)", 0.0, "\\rm{min}"], "hr": [3600.0, "Symbol('(time)', positive=True)", 0.0, "\\rm{hr}"], "day": [86400.0, "Symbol('(time)', positive=True)", 0.0, "\\rm{d}"], "d": [86400.0, "Symbol('(time)', positive=True)", 0.0, "\\rm{d}"], "yr": [31557600.0, "Symbol('(time)', positive=True)", 0.0, "\\rm{yr}"], "c": [29979245800.0, "Mul(Symbol('(length)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-1)))", 0.0, "\\rm{c}"], "Msun": [1.98841586e+33, "Symbol('(mass)', positive=True)", 0.0, "\\rm{M}_\\odot"], "msun": [1.98841586e+33, "Symbol('(mass)', positive=True)", 0.0, "\\rm{M}_\\odot"], "Rsun": [69550001060.63751, "Symbol('(length)', positive=True)", 0.0, "\\rm{R}_\\odot"], "rsun": [69550001060.63751, "Symbol('(length)', positive=True)", 0.0, "\\rm{R}_\\odot"], "R_sun": [69550001060.63751, "Symbol('(length)', positive=True)", 0.0, "\\rm{R}_\\odot"], "r_sun": [69550001060.63751, "Symbol('(length)', positive=True)", 0.0, "\\rm{R}_\\odot"], "Lsun": [3.827e+33, "Mul(Pow(Symbol('(length)', positive=True), Integer(2)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-3)))", 0.0, "\\rm{L}_\\odot"], "Tsun": [5870.0, "Symbol('(temperature)', positive=True)", 0.0, "\\rm{T}_\\odot"], "Zsun": [0.01295, "Integer(1)", 0.0, "\\rm{Z}_\\odot"], "Mjup": [1.8985234333630655e+30, "Symbol('(mass)', positive=True)", 0.0, "\\rm{M}_{\\rm{Jup}}"], "Mearth": [6.045644495102106e+27, "Symbol('(mass)', positive=True)", 0.0, "\\rm{M}_\\oplus"], "AU": [14959787075076.674, "Symbol('(length)', positive=True)", 0.0, "\\rm{AU}"], "au": [14959787075076.674, "Symbol('(length)', positive=True)", 0.0, "\\rm{AU}"], "ly": [9.460528409678268e+17, "Symbol('(length)', positive=True)", 0.0, "\\rm{ly}"], "pc": [3.0856775809623245e+18, "Symbol('(length)', positive=True)", 0.0, "\\rm{pc}"], "degree": [0.017453292519943295, "Symbol('(angle)', positive=True)", 0.0, "^\\circ"], "arcmin": [0.0002908882086657216, "Symbol('(angle)', positive=True)", 0.0, "\\rm{arcmin}"], "arcsec": [4.84813681109536e-06, "Symbol('(angle)', positive=True)", 0.0, "\\rm{arcsec}"], "mas": [4.8481368110953594e-09, "Symbol('(angle)', positive=True)", 0.0, "\\rm{mas}"], "hourangle": [0.2617993877991494, "Symbol('(angle)', positive=True)", 0.0, "\\rm{HA}"], "steradian": [1.0, "Pow(Symbol('(angle)', positive=True), Integer(2))", 0.0, "\\rm{sr}"], "lat": [-0.017453292519943295, "Symbol('(angle)', positive=True)", 90.0, "\\rm{Latitude}"], "lon": [0.017453292519943295, "Symbol('(angle)', positive=True)", -180.0, "\\rm{Longitude}"], "eV": [1.602176562e-12, "Mul(Pow(Symbol('(length)', positive=True), Integer(2)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{eV}"], "amu": [1.660538921e-24, "Symbol('(mass)', positive=True)", 0.0, "\\rm{amu}"], "angstrom": [1e-08, "Symbol('(length)', positive=True)", 0.0, "\\AA"], "Jy": [1e-23, "Mul(Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{Jy}"], "counts": [1.0, "Integer(1)", 0.0, "\\rm{counts}"], "photons": [1.0, "Integer(1)", 0.0, "\\rm{photons}"], "me": [9.10938291e-28, "Symbol('(mass)', positive=True)", 0.0, "m_e"], "mp": [1.6737352238051868e-24, "Symbol('(mass)', positive=True)", 0.0, "m_p"], "mol": [6.02214129011674e+23, "Integer(1)", 0.0, "\\rm{mol}"], "Sv": [10000.0, "Mul(Pow(Symbol('(length)', positive=True), Integer(2)), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{Sv}"], "rayleigh": [79577.47154594767, "Mul(Pow(Symbol('(angle)', positive=True), Integer(-2)), Pow(Symbol('(length)', positive=True), Integer(-2)), Pow(Symbol('(time)', positive=True), Integer(-1)))", 0.0, "\\rm{R}"], "solMass": [1.98841586e+33, "Symbol('(mass)', positive=True)", 0.0, "\\rm{M}_\\odot"], "solRad": [69550001060.63751, "Symbol('(length)', positive=True)", 0.0, "\\rm{R}_\\odot"], "solLum": [3.827e+33, "Mul(Pow(Symbol('(length)', positive=True), Integer(2)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-3)))", 0.0, "\\rm{L}_\\odot"], "dyn": [1.0, "Mul(Symbol('(length)', positive=True), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{dyn}"], "sr": [1.0, "Pow(Symbol('(angle)', positive=True), Integer(2))", 0.0, "\\rm{sr}"], "rad": [1.0, "Symbol('(angle)', positive=True)", 0.0, "\\rm{rad}"], "deg": [0.017453292519943295, "Symbol('(angle)', positive=True)", 0.0, "^\\circ"], "Fr": [1.0, "Mul(Pow(Symbol('(length)', positive=True), Rational(3, 2)), Pow(Symbol('(mass)', positive=True), Rational(1, 2)), Pow(Symbol('(time)', positive=True), Integer(-1)))", 0.0, "\\rm{Fr}"], "G": [1.0, "Mul(Pow(Symbol('(length)', positive=True), Rational(-1, 2)), Pow(Symbol('(mass)', positive=True), Rational(1, 2)), Pow(Symbol('(time)', positive=True), Integer(-1)))", 0.0, "\\rm{G}"], "Angstrom": [1e-08, "Symbol('(length)', positive=True)", 0.0, "\\AA"], "statC": [1.0, "Mul(Pow(Symbol('(length)', positive=True), Rational(3, 2)), Pow(Symbol('(mass)', positive=True), Rational(1, 2)), Pow(Symbol('(time)', positive=True), Integer(-1)))", 0.0, "\\rm{statC}"], "m_pl": [2.1764701184435688e-05, "Symbol('(mass)', positive=True)", 0.0, "m_{\\rm{P}}"], "l_pl": [1.6162283157597786e-33, "Symbol('(length)', positive=True)", 0.0, "\\ell_{\\rm{P}}"], "t_pl": [5.391157357800438e-44, "Symbol('(time)', positive=True)", 0.0, "t_{\\rm{P}}"], "T_pl": [1.4168076561665009e+32, "Symbol('(temperature)', positive=True)", 0.0, "T_{\\rm{P}}"], "q_pl": [1.8755459562040954e-18, "Mul(Symbol('(current_mks)', positive=True), Symbol('(time)', positive=True))", 0.0, "q_{\\rm{P}}"], "E_pl": [1.9561137903170922e+16, "Mul(Pow(Symbol('(length)', positive=True), Integer(2)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "E_{\\rm{P}}"], "m_geom": [1.98841586e+33, "Symbol('(mass)', positive=True)", 0.0, "\\rm{M}_\\odot"], "l_geom": [147658.08127593446, "Symbol('(length)', positive=True)", 0.0, "\\rm{M}_\\odot"], "t_geom": [4.925343427950227e-06, "Symbol('(time)', positive=True)", 0.0, "\\rm{M}_\\odot"], "R_earth": [637100801.9550942, "Symbol('(length)', positive=True)", 0.0, "\\rm{R}_\\oplus"], "r_earth": [637100801.9550942, "Symbol('(length)', positive=True)", 0.0, "\\rm{R}_\\oplus"], "R_jup": [6991100000.006706, "Symbol('(length)', positive=True)", 0.0, "\\rm{R}_\\mathrm{Jup}"], "r_jup": [6991100000.006706, "Symbol('(length)', positive=True)", 0.0, "\\rm{R}_\\mathrm{Jup}"], "code_length": [1.4065766789943524e+26, "Symbol('(length)', positive=True)", 0.0, "\\rm{code\\ length}"], "code_mass": [7.032854288130045e+48, "Symbol('(mass)', positive=True)", 0.0, "\\rm{code\\ mass}"], "code_density": [2.527210293640965e-30, "Mul(Pow(Symbol('(length)', positive=True), Integer(-3)), Symbol('(mass)', positive=True))", 0.0, "\\rm{code\\ density}"], "code_specific_energy": [2.1385728000000008e+18, "Mul(Pow(Symbol('(length)', positive=True), Integer(2)), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{code\\ specific\\ energy}"], "code_time": [1885954521538155.5, "Symbol('(time)', positive=True)", 0.0, "\\rm{code\\ time}"], "code_magnetic": [8.24114664867782e-06, "Mul(Pow(Symbol('(length)', positive=True), Rational(-1, 2)), Pow(Symbol('(mass)', positive=True), Rational(1, 2)), Pow(Symbol('(time)', positive=True), Integer(-1)))", 0.0, "\\rm{code\\ magnetic}"], "code_temperature": [1.0, "Symbol('(temperature)', positive=True)", 0.0, "\\rm{code\\ temperature}"], "code_pressure": [1.4057425005421192e-08, "Mul(Pow(Symbol('(length)', positive=True), Integer(-1)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{code\\ pressure}"], "code_velocity": [1462385995.556577, "Mul(Symbol('(length)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-1)))", 0.0, "\\rm{code\\ velocity}"], "code_metallicity": [1.0, "Integer(1)", 0.0, "\\rm{code\\ metallicity}"], "a": [1.0000000027810865, "Integer(1)", 0.0, "\\rm{a}"], "mcm": [100.00000027810864, "Symbol('(length)', positive=True)", 0.0, "\\rm{m}/(1+z)"], "pccm": [3.08567758954386e+18, "Symbol('(length)', positive=True)", 0.0, "\\rm{pc}/(1+z)"], "AUcm": [14959787116681.133, "Symbol('(length)', positive=True)", 0.0, "\\rm{AU}/(1+z)"], "aucm": [14959787116681.133, "Symbol('(length)', positive=True)", 0.0, "\\rm{au}/(1+z)"], "Mpccm": [3.08567758954386e+24, "Symbol('(length)', positive=True)", 0.0, "\\rm{Mpc}/(1+z)"], "cm": [1.0, "Symbol('(length)', positive=True)", 0.0, "\\rm{cm}"], "unitary": [1.4065766789943524e+26, "Symbol('(length)', positive=True)", 0.0, "\\rm{unitary}"], "keV": [1.602176562e-09, "Mul(Pow(Symbol('(length)', positive=True), Integer(2)), Symbol('(mass)', positive=True), Pow(Symbol('(time)', positive=True), Integer(-2)))", 0.0, "\\rm{keV}"]} unyt-3.2.0/unyt/tests/sample_subclasses.py000066400000000000000000001304121526544257300207540ustar00rootroot00000000000000""" Tests for support of subclasses of unyt_array and unyt_quantity. """ import warnings from collections.abc import Callable, Collection, Iterable from importlib.metadata import version from numbers import Number as numeric_type import numpy as np from packaging.version import Version import unyt from unyt import unyt_array, unyt_quantity from unyt._array_functions import ( _trapezoid_func, allclose as unyt_allclose, around as unyt_around, array2string as unyt_array2string, array_equal as unyt_array_equal, array_equiv as unyt_array_equiv, array_repr as unyt_array_repr, block as unyt_block, choose as unyt_choose, clip as unyt_clip, column_stack as unyt_column_stack, concatenate as unyt_concatenate, convolve as unyt_convolve, copyto as unyt_copyto, correlate as unyt_correlate, cross as unyt_cross, diff as unyt_diff, dot as unyt_dot, dstack as unyt_dstack, ediff1d as unyt_ediff1d, einsum as unyt_einsum, fft_fft as unyt_fft_fft, fft_fft2 as unyt_fft_fft2, fft_fftn as unyt_fft_fftn, fft_fftshift as unyt_fft_fftshift, fft_hfft as unyt_fft_hfft, fft_ifft as unyt_fft_ifft, fft_ifft2 as unyt_fft_ifft2, fft_ifftn as unyt_fft_ifftn, fft_ifftshift as unyt_fft_ifftshift, fft_ihfft as unyt_fft_ihfft, fft_irfft as unyt_fft_irfft, fft_irfft2 as unyt_fft_irfft2, fft_irfftn as unyt_fft_irfftn, fft_rfft as unyt_fft_rfft, fft_rfft2 as unyt_fft_rfft2, fft_rfftn as unyt_fft_rfftn, fill_diagonal as unyt_fill_diagonal, geomspace as unyt_geomspace, histogram as unyt_histogram, histogram2d as unyt_histogram2d, histogram_bin_edges as unyt_histogram_bin_edges, histogramdd as unyt_histogramdd, hstack as unyt_hstack, inner as unyt_inner, insert as unyt_insert, interp as unyt_interp, intersect1d as unyt_intersect1d, isclose as unyt_isclose, isin as unyt_isin, kron as unyt_kron, linalg_det as unyt_linalg_det, linalg_eig as unyt_linalg_eig, linalg_eigh as unyt_linalg_eigh, linalg_eigvals as unyt_linalg_eigvals, linalg_eigvalsh as unyt_linalg_eigvalsh, linalg_inv as unyt_linalg_inv, linalg_lstsq as unyt_linalg_lstsq, linalg_pinv as unyt_linalg_pinv, linalg_solve as unyt_linalg_solve, linalg_svd as unyt_linalg_svd, linalg_tensorinv as unyt_linalg_tensorinv, linalg_tensorsolve as unyt_linalg_tensorsolve, linspace as unyt_linspace, logspace as unyt_logspace, nanpercentile as unyt_nanpercentile, nanquantile as unyt_nanquantile, norm as unyt_linalg_norm, # not linalg_norm, doesn't follow usual pattern outer as unyt_outer, pad as unyt_pad, percentile as unyt_percentile, place as unyt_place, prod as unyt_prod, ptp as unyt_ptp, put as unyt_put, put_along_axis as unyt_put_along_axis, putmask as unyt_putmask, quantile as unyt_quantile, savetxt as unyt_savetxt, searchsorted as unyt_searchsorted, select as unyt_select, setdiff1d as unyt_setdiff1d, sinc as unyt_sinc, sort_complex as unyt_sort_complex, stack as unyt_stack, take as unyt_take, tensordot as unyt_tensordot, trace as unyt_trace, trapezoid as unyt_trapezoid, tril as unyt_tril, triu as unyt_triu, union1d as unyt_union1d, unwrap as unyt_unwrap, var as unyt_var, vdot as unyt_vdot, vstack as unyt_vstack, where as unyt_where, ) from unyt.array import _iterable, multiple_output_operators NUMPY_VERSION = Version(version("numpy")) if NUMPY_VERSION >= Version("2.0.0dev0"): from unyt._array_functions import linalg_outer as unyt_linalg_outer if NUMPY_VERSION < Version("2.0.0dev0"): from unyt._array_functions import asfarray as unyt_asfarray _HANDLED_FUNCTIONS = {} class ExtraAttributeError(Exception): """ Raised when function arguments have incompatible ``extra_attr``. """ def __init__(self, message: str = "Tried to mix different extra_attr!") -> None: self.message = message # first we define helper functions to handle repetitive operations in wrapping unyt & # numpy functions (we will actually wrap the functions below): def _copy_extra_attr_if_present( from_obj: object, to_obj: object, copy_units=False ) -> object: """ Copy extra_attr across two objects. """ if not ( isinstance(to_obj, subclass_uarray) and isinstance(from_obj, subclass_uarray) ): return to_obj if copy_units: to_obj.units = from_obj.units if hasattr(from_obj, "extra_attr"): to_obj.extra_attr = from_obj.extra_attr return to_obj def _propagate_extra_attr_to_result(func: Callable) -> Callable: """ Wrapper that copies the extra attribute from first input argument to first output. Many functions take one input (or have a first input that has a close correspondence to the output) and one output. This helper copies the ``extra_attr`` attribute from the first input argument to the output. Can be used as a decorator on functions (the first argument is then the first argument of the function) or methods (the first argument is then ``self``). If the output is not a ``subclass_uarray`` it is not promoted (and then no attributes are copied). """ def wrapped(obj, *args, **kwargs): return _copy_extra_attr_if_present(obj, func(obj, *args, **kwargs)) return wrapped def _prepare_array_func_args(*args, _default_cm: bool = True, **kwargs) -> dict: """ For this minimalist class we check that the extra_attr matches and raise if not. """ args_extra_attrs = [ (hasattr(arg, "extra_attr"), getattr(arg, "extra_attr", None)) for arg in args ] kwarg_extra_attrs = { k: (hasattr(kwarg, "extra_attr"), getattr(kwarg, "extra_attr", None)) for k, kwarg in kwargs.items() } extra_attr_values_where_present = [ea[1] for ea in args_extra_attrs if ea[0]] + [ ea[1] for ea in kwarg_extra_attrs.values() if ea[0] ] # here we check that all of the extra_attr match (could be True, False or None): if not len(set(extra_attr_values_where_present)) <= 1: raise ExtraAttributeError # we could modify the args and kwargs before returning them here to "prepare" them return { "args": args, "kwargs": kwargs, "extra_attr": ( extra_attr_values_where_present[0] if len(extra_attr_values_where_present) > 0 else None ), } def _return_helper( res: np.ndarray, helper_result: dict, out: np.ndarray | None = None, ) -> "subclass_uarray": """ Helper function to attach our extra_attr to return values of wrapped functions. """ res = _promote_unyt_to_subclass(res) if isinstance(res, subclass_uarray): # also recognizes subclass_uquantity res.extra_attr = helper_result["extra_attr"] if isinstance(out, subclass_uarray): # also recognizes subclass_uquantity out.extra_attr = helper_result["extra_attr"] return res def _ensure_result_is_subclass_uarray_or_uquantity(func: Callable) -> Callable: """ Wrapper that converts any ``unyt_array`` or ``unyt_quantity`` instances in function output to subclass equivalents. If the wrapped function returns a ``tuple`` (as many numpy functions do) it is iterated over (but not recursively) and each element with a unyt class type is upgraded to its subclass equivalent. If anything but a ``tuple`` is returned, that object is promoted to the subclass equivalent if it is of a unyt class type. """ def wrapped(*args, **kwargs) -> object: # omit docstring so that sphinx picks up docstring of wrapped function result = func(*args, **kwargs) if isinstance(result, tuple): return tuple( _ensure_array_or_quantity_matches_shape(_promote_unyt_to_subclass(item)) for item in result ) else: return _ensure_array_or_quantity_matches_shape( _promote_unyt_to_subclass(result) ) return wrapped def _promote_unyt_to_subclass(input_object: object) -> object: """ Upgrades the input unyt instance to its subclass equivalent. """ if isinstance(input_object, unyt_quantity) and not isinstance( input_object, subclass_uquantity ): return input_object.view(subclass_uquantity) elif isinstance(input_object, unyt_array) and not isinstance( input_object, subclass_uarray ): return input_object.view(subclass_uarray) else: return input_object def _ensure_array_or_quantity_matches_shape(input_object: object) -> object: """ Convert scalars to ``subclass_uquantity`` and arrays to ``subclass_uarray``. """ if ( isinstance(input_object, subclass_uarray) and not isinstance(input_object, subclass_uquantity) and input_object.shape == () ): return input_object.view(subclass_uquantity) elif isinstance(input_object, subclass_uquantity) and input_object.shape != (): return input_object.view(subclass_uarray) else: return input_object def _default_unary_wrapper(unyt_func: Callable) -> Callable: """ Wrapper helper for unary functions with typical behaviour. Can be used as a decorator. """ def wrapper(*args, **kwargs): helper_result = _prepare_array_func_args(*args, **kwargs) res = unyt_func(*helper_result["args"], **helper_result["kwargs"]) if "out" in kwargs: return _return_helper(res, helper_result, out=kwargs["out"]) else: return _return_helper(res, helper_result) return wrapper def _default_binary_wrapper(unyt_func: Callable) -> Callable: """ Wrapper helper for binary functions with typical behaviour. Can be used as a decorator. """ def wrapper(*args, **kwargs): helper_result = _prepare_array_func_args(*args, **kwargs) res = unyt_func(*helper_result["args"], **helper_result["kwargs"]) if "out" in kwargs: return _return_helper(res, helper_result, out=kwargs["out"]) else: return _return_helper(res, helper_result) return wrapper # here an alias, but often comparisons have their own particular default logic: _default_comparison_wrapper = _default_binary_wrapper def _default_oplist_wrapper(unyt_func: Callable) -> Callable: """ Wrapper helper for functions accepting a list of operands with typical behaviour. Can be used as a decorator. """ def wrapper(*args, **kwargs): helper_result = _prepare_array_func_args(*args, **kwargs) helper_result_oplist = _prepare_array_func_args(*args[0]) res = unyt_func( helper_result_oplist["args"], *helper_result["args"][1:], **helper_result["kwargs"], ) return _return_helper(res, helper_result_oplist) return wrapper def implements(numpy_function: Callable) -> Callable: """ Register an __array_function__ implementation for subclass_uarray objects. Intended for use as a decorator. """ # See NEP 18 https://numpy.org/neps/nep-0018-array-function-protocol.html def decorator(func: Callable) -> Callable: """ Actually register the specified function. """ _HANDLED_FUNCTIONS[numpy_function] = func return func return decorator # Next we wrap functions from unyt and numpy. There's not much point in writing docstrings # or type hints for all of these. # Now we wrap functions that unyt handles explicitly (below that will be those not handled # explicitly): @implements(np.array2string) def array2string(a, *args, **kwargs): res = unyt_array2string(a, *args, **kwargs) return res + f" extra_attr={a.extra_attr}" implements(np.dot)(_default_binary_wrapper(unyt_dot)) implements(np.vdot)(_default_binary_wrapper(unyt_vdot)) implements(np.inner)(_default_binary_wrapper(unyt_inner)) implements(np.outer)(_default_binary_wrapper(unyt_outer)) implements(np.kron)(_default_binary_wrapper(unyt_kron)) implements(np.histogram_bin_edges)(_default_unary_wrapper(unyt_histogram_bin_edges)) implements(np.linalg.inv)(_default_unary_wrapper(unyt_linalg_inv)) implements(np.linalg.tensorinv)(_default_unary_wrapper(unyt_linalg_tensorinv)) implements(np.linalg.pinv)(_default_unary_wrapper(unyt_linalg_pinv)) implements(np.linalg.svd)(_default_unary_wrapper(unyt_linalg_svd)) def _histogram(a, bins=10, range=None, density=None, weights=None, normed=None): helper_result = _prepare_array_func_args( a, bins=bins, range=range, density=density, weights=weights, normed=normed ) kwargs = { "bins": helper_result["kwargs"]["bins"], "range": helper_result["kwargs"]["range"], "density": helper_result["kwargs"]["density"], "weights": helper_result["kwargs"]["weights"], } if NUMPY_VERSION < Version("1.24"): kwargs["normed"] = helper_result["kwargs"]["normed"] counts, bins = unyt_histogram(*helper_result["args"], **kwargs) counts = _promote_unyt_to_subclass(counts) if isinstance(counts, subclass_uarray): # also recognizes subclass_uquantity counts.extra_attr = helper_result["extra_attr"] return counts, _return_helper(bins, helper_result) if NUMPY_VERSION >= Version("1.24"): @implements(np.histogram) def histogram(a, bins=10, range=None, density=None, weights=None): return _histogram(a, bins=bins, range=range, density=density, weights=weights) else: @implements(np.histogram) def histogram(a, bins=10, range=None, normed=None, density=None, weights=None): return _histogram(a, bins=bins, range=range, density=density, weights=weights) def _histogram2d(x, y, *, bins=10, range=None, density=None, weights=None, normed=None): if range is not None: xrange, yrange = range else: xrange, yrange = None, None try: N = len(bins) except TypeError: N = 1 if N != 2: xbins = ybins = bins elif N == 2: xbins, ybins = bins helper_result_x = _prepare_array_func_args(x, bins=xbins, range=xrange) helper_result_y = _prepare_array_func_args(y, bins=ybins, range=yrange) if not density: helper_result_w = _prepare_array_func_args(weights=weights, normed=normed) if (helper_result_x["kwargs"]["range"] is None) and ( helper_result_y["kwargs"]["range"] is None ): safe_range = None else: safe_range = ( helper_result_x["kwargs"]["range"], helper_result_y["kwargs"]["range"], ) kwargs = { "bins": ( helper_result_x["kwargs"]["bins"], helper_result_y["kwargs"]["bins"], ), "range": safe_range, "density": density, "weights": helper_result_w["kwargs"]["weights"], } if NUMPY_VERSION < Version("1.24"): kwargs["normed"] = helper_result_w["kwargs"]["normed"] counts, xbins, ybins = unyt_histogram2d( helper_result_x["args"][0], helper_result_y["args"][0], **kwargs, ) if weights is not None: counts = _promote_unyt_to_subclass(counts) if isinstance( counts, subclass_uarray ): # also recognizes subclass_uquantity counts.extra_attr = helper_result_w["extra_attr"] else: # density=True # now x, y and weights must be compatible because they will combine # we unpack input to the helper to get everything checked for compatibility helper_result = _prepare_array_func_args( x, y, xbins=xbins, ybins=ybins, xrange=xrange, yrange=yrange, weights=weights, normed=normed, ) if (helper_result["kwargs"]["xrange"] is None) and ( helper_result["kwargs"]["yrange"] is None ): safe_range = None else: safe_range = ( helper_result["kwargs"]["xrange"], helper_result["kwargs"]["yrange"], ) kwargs = { "bins": ( helper_result["kwargs"]["xbins"], helper_result["kwargs"]["ybins"], ), "range": safe_range, "density": density, "weights": helper_result["kwargs"]["weights"], } if NUMPY_VERSION < Version("1.24"): kwargs["normed"] = helper_result["kwargs"]["normed"] counts, xbins, ybins = unyt_histogram2d( helper_result["args"][0], helper_result["args"][1], **kwargs ) counts = _promote_unyt_to_subclass(counts) if isinstance(counts, subclass_uarray): # also recognizes subclass_uquantity counts.extra_attr = helper_result["extra_attr"] return ( counts, _return_helper(xbins, helper_result_x), _return_helper(ybins, helper_result_y), ) if NUMPY_VERSION >= Version("1.24"): @implements(np.histogram2d) def histogram2d(x, y, bins=10, range=None, density=None, weights=None): return _histogram2d( x, y, bins=bins, range=range, density=density, weights=weights ) else: @implements(np.histogram2d) def histogram2d(x, y, bins=10, range=None, normed=None, weights=None, density=None): return _histogram2d( x, y, bins=bins, range=range, normed=normed, weights=weights, density=density, ) def _histogramdd(sample, bins=10, range=None, density=None, weights=None, normed=None): D = len(sample) if range is not None: ranges = range else: ranges = D * [None] if np.isscalar(bins): bins = D * [bins] helper_results = [ _prepare_array_func_args(s, bins=b, range=r) for s, b, r in zip(sample, bins, ranges) ] if not density: helper_result_w = _prepare_array_func_args(weights=weights) all_ranges = [ helper_result["kwargs"]["range"] for helper_result in helper_results ] if set(all_ranges) == {None}: safe_range = None else: safe_range = [ helper_result["kwargs"]["range"] for helper_result in helper_results ] kwargs = { "bins": [ helper_result["kwargs"]["bins"] for helper_result in helper_results ], "range": safe_range, "density": density, "weights": helper_result_w["kwargs"]["weights"], } if NUMPY_VERSION < Version("1.24"): kwargs["normed"] = normed counts, bins = unyt_histogramdd( [helper_result["args"][0] for helper_result in helper_results], **kwargs, ) if weights is not None: counts = _promote_unyt_to_subclass(counts) if isinstance(counts, subclass_uarray): counts.extra_attr = helper_result_w["extra_attr"] else: # density=True # now sample and weights must be compatible because they will combine # we unpack input to the helper to get everything checked for compatibility helper_result = _prepare_array_func_args( *sample, bins=bins, range=range, weights=weights ) kwargs = { "bins": helper_result["kwargs"]["bins"], "range": helper_result["kwargs"]["range"], "density": density, "weights": helper_result["kwargs"]["weights"], } if NUMPY_VERSION < Version("1.24"): kwargs["normed"] = normed counts, bins = unyt_histogramdd( helper_result["args"], **kwargs, ) counts = _promote_unyt_to_subclass(counts) if isinstance(counts, subclass_uarray): # also recognizes subclass_uquantity counts.extra_attr = helper_result["extra_attr"] return ( counts, tuple( _return_helper(b, helper_result) for b, helper_result in zip(bins, helper_results) ), ) if NUMPY_VERSION >= Version("1.24"): @implements(np.histogramdd) def histogramdd(sample, bins=10, range=None, density=None, weights=None): return _histogramdd( sample, bins=bins, range=range, density=density, weights=weights ) else: @implements(np.histogramdd) def histogramdd( sample, bins=10, range=None, normed=None, weights=None, density=None ): return _histogramdd( sample, bins=bins, range=range, normed=normed, weights=weights, density=density, ) implements(np.concatenate)(_default_oplist_wrapper(unyt_concatenate)) implements(np.cross)(_default_binary_wrapper(unyt_cross)) implements(np.intersect1d)(_default_binary_wrapper(unyt_intersect1d)) implements(np.union1d)(_default_binary_wrapper(unyt_union1d)) implements(np.linalg.norm)(_default_unary_wrapper(unyt_linalg_norm)) implements(np.vstack)(_default_oplist_wrapper(unyt_vstack)) implements(np.hstack)(_default_oplist_wrapper(unyt_hstack)) implements(np.dstack)(_default_oplist_wrapper(unyt_dstack)) implements(np.column_stack)(_default_oplist_wrapper(unyt_column_stack)) implements(np.stack)(_default_oplist_wrapper(unyt_stack)) implements(np.around)(_default_unary_wrapper(unyt_around)) def _prepare_array_block_args(lst, recursing=False): """ Block accepts only a nested list of array "blocks". We need to recurse on this. """ helper_results = [] if isinstance(lst, list): for item in lst: if isinstance(item, list): helper_results += _prepare_array_block_args(item, recursing=True) else: helper_results.append(_prepare_array_func_args(item)) if recursing: return helper_results eas = [hr["extra_attr"] for hr in helper_results] if set(eas) == {True}: ret_ea = True elif set(eas) == {None}: ret_ea = None elif set(eas) == {False}: ret_ea = False else: # mixed values raise ExtraAttributeError ret_lst = lst return { "args": ret_lst, "kwargs": {}, "extra_attr": ret_ea, } @implements(np.block) def block(arrays): # block is a special case since we need to recurse more than one level # down the list of arrays. helper_result_block = _prepare_array_block_args(arrays) res = unyt_block(helper_result_block["args"]) return _return_helper(res, helper_result_block) implements(np.fft.fft)(_default_unary_wrapper(unyt_fft_fft)) implements(np.fft.fft2)(_default_unary_wrapper(unyt_fft_fft2)) implements(np.fft.fftn)(_default_unary_wrapper(unyt_fft_fftn)) implements(np.fft.hfft)(_default_unary_wrapper(unyt_fft_hfft)) implements(np.fft.rfft)(_default_unary_wrapper(unyt_fft_rfft)) implements(np.fft.rfft2)(_default_unary_wrapper(unyt_fft_rfft2)) implements(np.fft.rfftn)(_default_unary_wrapper(unyt_fft_rfftn)) implements(np.fft.ifft)(_default_unary_wrapper(unyt_fft_ifft)) implements(np.fft.ifft2)(_default_unary_wrapper(unyt_fft_ifft2)) implements(np.fft.ifftn)(_default_unary_wrapper(unyt_fft_ifftn)) implements(np.fft.ihfft)(_default_unary_wrapper(unyt_fft_ihfft)) implements(np.fft.irfft)(_default_unary_wrapper(unyt_fft_irfft)) implements(np.fft.irfft2)(_default_unary_wrapper(unyt_fft_irfft2)) implements(np.fft.irfftn)(_default_unary_wrapper(unyt_fft_irfftn)) implements(np.fft.fftshift)(_default_unary_wrapper(unyt_fft_fftshift)) implements(np.fft.ifftshift)(_default_unary_wrapper(unyt_fft_ifftshift)) implements(np.sort_complex)(_default_unary_wrapper(unyt_sort_complex)) implements(np.isclose)(_default_comparison_wrapper(unyt_isclose)) implements(np.allclose)(_default_comparison_wrapper(unyt_allclose)) implements(np.array_equal)(_default_comparison_wrapper(unyt_array_equal)) implements(np.array_equiv)(_default_comparison_wrapper(unyt_array_equiv)) implements(np.linspace)(_default_binary_wrapper(unyt_linspace)) implements(np.logspace)(_default_binary_wrapper(unyt_logspace)) implements(np.geomspace)(_default_binary_wrapper(unyt_geomspace)) implements(np.copyto)(_default_binary_wrapper(unyt_copyto)) implements(np.prod)(_default_unary_wrapper(unyt_prod)) implements(np.var)(_default_unary_wrapper(unyt_var)) implements(np.trace)(_default_unary_wrapper(unyt_trace)) implements(np.percentile)(_default_unary_wrapper(unyt_percentile)) implements(np.quantile)(_default_unary_wrapper(unyt_quantile)) implements(np.nanpercentile)(_default_unary_wrapper(unyt_nanpercentile)) implements(np.nanquantile)(_default_unary_wrapper(unyt_nanquantile)) implements(np.linalg.det)(_default_unary_wrapper(unyt_linalg_det)) implements(np.diff)(_default_unary_wrapper(unyt_diff)) implements(np.ediff1d)(_default_unary_wrapper(unyt_ediff1d)) implements(np.ptp)(_default_unary_wrapper(unyt_ptp)) # implements(np.cumprod)(...) Omitted because unyt just raises if called. # implements(np.cumulative_prod)(...) Omitted because unyt just raises if called. implements(np.pad)(_default_unary_wrapper(unyt_pad)) implements(np.choose)(_default_binary_wrapper(unyt_choose)) implements(np.insert)(_default_unary_wrapper(unyt_insert)) @implements(np.linalg.lstsq) def linalg_lstsq(a, b, rcond=None): helper_result = _prepare_array_func_args(a, b, rcond=rcond) ress = unyt_linalg_lstsq(*helper_result["args"], **helper_result["kwargs"]) return ( _return_helper(ress[0], helper_result), _return_helper(ress[1], helper_result), ress[2], _return_helper(ress[3], helper_result), ) implements(np.linalg.solve)(_default_binary_wrapper(unyt_linalg_solve)) implements(np.linalg.tensorsolve)(_default_binary_wrapper(unyt_linalg_tensorsolve)) @implements(np.linalg.eig) def linalg_eig(a): helper_result = _prepare_array_func_args(a) ress = unyt_linalg_eig(*helper_result["args"], **helper_result["kwargs"]) return (_return_helper(ress[0], helper_result), ress[1]) @implements(np.linalg.eigh) def linalg_eigh(a, UPLO="L"): helper_result = _prepare_array_func_args(a, UPLO=UPLO) ress = unyt_linalg_eigh(*helper_result["args"], **helper_result["kwargs"]) return (_return_helper(ress[0], helper_result), ress[1]) implements(np.linalg.eigvals)(_default_unary_wrapper(unyt_linalg_eigvals)) implements(np.linalg.eigvalsh)(_default_unary_wrapper(unyt_linalg_eigvalsh)) @implements(np.savetxt) def savetxt( fname, X, fmt="%.18e", delimiter=" ", newline="\n", header="", footer="", comments="# ", encoding=None, ): warnings.warn( "numpy.savetxt does not preserve units or extra_attr information, " "and will only save the raw numerical data from the subclass_uarray object.\n" "If this is the intended behaviour, call `numpy.savetxt(file, arr.d)` " "to silence this warning.\n", stacklevel=4, ) helper_result = _prepare_array_func_args( fname, X, fmt=fmt, delimiter=delimiter, newline=newline, header=header, footer=footer, comments=comments, encoding=encoding, ) with warnings.catch_warnings(): warnings.filterwarnings( action="ignore", category=UserWarning, message="numpy.savetxt does not preserve units", ) unyt_savetxt(*helper_result["args"], **helper_result["kwargs"]) return @implements(np.apply_over_axes) def apply_over_axes(func, a, axes): res = func(a, axes[0]) if len(axes) > 1: # this function is recursive by nature, # here we intentionally do not call the base _implementation return np.apply_over_axes(func, res, axes[1:]) else: return res implements(np.fill_diagonal)(_default_binary_wrapper(unyt_fill_diagonal)) implements(np.isin)(_default_comparison_wrapper(unyt_isin)) implements(np.place)(_default_unary_wrapper(unyt_place)) implements(np.put)(_default_unary_wrapper(unyt_put)) implements(np.put_along_axis)(_default_unary_wrapper(unyt_put_along_axis)) implements(np.putmask)(_default_unary_wrapper(unyt_putmask)) implements(np.searchsorted)(_default_binary_wrapper(unyt_searchsorted)) @implements(np.select) def select(condlist, choicelist, default=0): helper_result = _prepare_array_func_args(condlist, choicelist, default=default) helper_result_choicelist = _prepare_array_func_args(*choicelist) res = unyt_select( helper_result["args"][0], helper_result_choicelist["args"], **helper_result["kwargs"], ) return _return_helper(res, helper_result) implements(np.setdiff1d)(_default_binary_wrapper(unyt_setdiff1d)) implements(np.sinc)(_default_unary_wrapper(unyt_sinc)) implements(np.clip)(_default_unary_wrapper(unyt_clip)) @implements(np.where) def where(condition, *args): helper_result = _prepare_array_func_args(condition, *args) if len(args) == 0: # just condition res = unyt_where(*helper_result["args"], **helper_result["kwargs"]) elif len(args) < 2: # pragma: no cover # error message borrowed from numpy 1.24.1 raise ValueError("either both or neither of x and y should be given") res = unyt_where(*helper_result["args"], **helper_result["kwargs"]) return _return_helper(res, helper_result) implements(np.triu)(_default_unary_wrapper(unyt_triu)) implements(np.tril)(_default_unary_wrapper(unyt_tril)) @implements(np.einsum) def einsum( subscripts, *operands, out=None, dtype=None, order="K", casting="safe", optimize=False, ): helper_result = _prepare_array_func_args( subscripts, operands, out=out, dtype=dtype, order=order, casting=casting, optimize=optimize, ) helper_result_operands = _prepare_array_func_args(*operands) res = unyt_einsum( helper_result["args"][0], *helper_result_operands["args"], **helper_result["kwargs"], ) return _return_helper(res, helper_result_operands, out=out) implements(np.convolve)(_default_binary_wrapper(unyt_convolve)) implements(np.correlate)(_default_binary_wrapper(unyt_correlate)) implements(np.tensordot)(_default_binary_wrapper(unyt_tensordot)) implements(np.unwrap)(_default_unary_wrapper(unyt_unwrap)) implements(np.interp)(_default_unary_wrapper(unyt_interp)) @implements(np.array_repr) def array_repr(arr, max_line_width=None, precision=None, suppress_small=None): helper_result = _prepare_array_func_args( arr, max_line_width=max_line_width, precision=precision, suppress_small=suppress_small, ) rep = unyt_array_repr(*helper_result["args"], **helper_result["kwargs"])[:-1] if hasattr(arr, "extra_attr"): rep += f", extra_attr='{arr.extra_attr}'" rep += ")" return rep if NUMPY_VERSION < Version("2.0.0dev0"): implements(np.asfarray)(_default_unary_wrapper(unyt_asfarray)) # NOQA: NPY201 if NUMPY_VERSION >= Version("2.0.0dev0"): implements(np.linalg.outer)(_default_binary_wrapper(unyt_linalg_outer)) implements(_trapezoid_func)(_default_binary_wrapper(unyt_trapezoid)) implements(np.isin)(_default_comparison_wrapper(unyt_isin)) implements(np.take)(_default_unary_wrapper(unyt_take)) # Now we wrap functions that unyt does not handle explicitly: implements(np.average)(_propagate_extra_attr_to_result(np.average._implementation)) implements(np.max)(_propagate_extra_attr_to_result(np.max._implementation)) implements(np.min)(_propagate_extra_attr_to_result(np.min._implementation)) implements(np.mean)(_propagate_extra_attr_to_result(np.mean._implementation)) implements(np.median)(_propagate_extra_attr_to_result(np.median._implementation)) implements(np.sort)(_propagate_extra_attr_to_result(np.sort._implementation)) implements(np.sum)(_propagate_extra_attr_to_result(np.sum._implementation)) implements(np.partition)(_propagate_extra_attr_to_result(np.partition._implementation)) if NUMPY_VERSION >= Version("2.0.0dev0"): implements(np.linalg.cross)( _default_binary_wrapper(np.linalg.cross._implementation) ) @implements(np.meshgrid) def meshgrid(*xi, **kwargs): # meshgrid is a unique case: arguments never interact with each other, so we don't # want to use our _prepare_array_func_args helper (that will try to enforce # consistency). # However we can't just use _propagate_extra_attr_to_result because we # need to iterate over arguments. res = np.meshgrid._implementation(*xi, **kwargs) ret_type = tuple if NUMPY_VERSION >= Version("2.0.0dev0") else list return ret_type(_copy_extra_attr_if_present(x, r) for (x, r) in zip(xi, res)) class subclass_uarray(unyt_array): """ Minimalist subclass of unyt_array. """ def __new__( cls, input_array: Iterable, units: str | unyt.unit_object.Unit = None, *, registry: unyt.unit_registry.UnitRegistry = None, dtype: np.dtype | str = None, bypass_validation: bool = False, name: str = None, extra_attr: bool = None, ) -> "subclass_uarray": """ Closely inspired by the :meth:`unyt.array.unyt_array.__new__` constructor. """ if bypass_validation is True: obj = super().__new__( cls, input_array, units=units, registry=registry, dtype=dtype, bypass_validation=bypass_validation, name=name, ) # dtype, units, registry & name are handled by unyt obj.extra_attr = extra_attr return obj if isinstance(input_array, subclass_uarray): if input_array.extra_attr != extra_attr: raise ValueError obj = input_array.view(cls) return obj elif isinstance(input_array, np.ndarray) and input_array.dtype != object: # Guard np.ndarray so it doesn't get caught by _iterable in next # case. ndarray with object dtype goes to next case to properly # handle e.g. ndarrays containing subclass_uquantity's pass elif _iterable(input_array) and input_array: # check compatibility: helper_result = _prepare_array_func_args(*input_array) input_array = helper_result["args"] extra_attr = ( helper_result["extra_attr"] if extra_attr is None else extra_attr ) obj = super().__new__( cls, input_array, units=units, registry=registry, dtype=dtype, bypass_validation=bypass_validation, name=name, ) if isinstance(obj, unyt_array) and not isinstance(obj, cls): obj = obj.view(cls) # attach our attribute: obj.extra_attr = extra_attr return obj def __array_finalize__(self, obj: "subclass_uarray") -> None: super().__array_finalize__(obj) if obj is None: return self.extra_attr = getattr(obj, "extra_attr", None) def __str__(self) -> str: # pragma: no cover return super().__str__() + f" {self.extra_attr}" def __repr__(self) -> str: # pragma: no cover return super().__repr__() + f" {self.extra_attr}" # Wrap functions that return copies of subclass_uarrays so that our # attribute gets passed through: astype = _propagate_extra_attr_to_result(unyt_array.astype) in_units = _propagate_extra_attr_to_result(unyt_array.in_units) byteswap = _propagate_extra_attr_to_result(unyt_array.byteswap) compress = _propagate_extra_attr_to_result(unyt_array.compress) diagonal = _propagate_extra_attr_to_result(unyt_array.diagonal) flatten = _propagate_extra_attr_to_result(unyt_array.flatten) ravel = _propagate_extra_attr_to_result(unyt_array.ravel) repeat = _propagate_extra_attr_to_result(unyt_array.repeat) swapaxes = _propagate_extra_attr_to_result(unyt_array.swapaxes) transpose = _propagate_extra_attr_to_result(unyt_array.transpose) view = _propagate_extra_attr_to_result(unyt_array.view) __copy__ = _propagate_extra_attr_to_result(unyt_array.__copy__) __deepcopy__ = _propagate_extra_attr_to_result(unyt_array.__deepcopy__) in_cgs = _propagate_extra_attr_to_result(unyt_array.in_cgs) take = _propagate_extra_attr_to_result( _ensure_result_is_subclass_uarray_or_uquantity(unyt_array.take) ) reshape = _propagate_extra_attr_to_result( _ensure_result_is_subclass_uarray_or_uquantity(unyt_array.reshape) ) __getitem__ = _propagate_extra_attr_to_result( _ensure_result_is_subclass_uarray_or_uquantity(unyt_array.__getitem__) ) dot = _default_binary_wrapper(unyt_array.dot) # Also wrap some array "properties": T = property(_propagate_extra_attr_to_result(unyt_array.transpose)) ua = property(_propagate_extra_attr_to_result(np.ones_like)) unit_array = property(_propagate_extra_attr_to_result(np.ones_like)) def __array_ufunc__( self, ufunc: np.ufunc, method: str, *inputs, **kwargs ) -> object: """ Handles :mod:`numpy` ufunc calls on ``subclass_uarray`` input. ``numpy`` facilitates wrapping array classes by handing off to this function when a function of :class:`numpy.ufunc` type is called with arguments from an inheriting array class. Since we inherit from ``unyt_array`, we let it handle what to do with the units and take care of processing the extra_attr via our helper functions. """ helper_result = _prepare_array_func_args(*inputs, **kwargs) result = _ensure_result_is_subclass_uarray_or_uquantity( super().__array_ufunc__ )(ufunc, method, *inputs, **kwargs) # if we get a tuple we have multiple return values to deal with if isinstance(result, tuple): for r in result: if isinstance(r, subclass_uarray): # also recognizes subclass_uquantity r.extra_attr = helper_result["extra_attr"] elif isinstance(result, subclass_uarray): # also recognizes subclass_uquantity result.extra_attr = helper_result["extra_attr"] if "out" in kwargs: out = kwargs.pop("out") assert ufunc not in multiple_output_operators out = out[0] if isinstance(out, subclass_uarray): # also recognizes subclass_uquantity out.extra_attr = helper_result["extra_attr"] return result def __array_function__( self, func: Callable, types: Collection, args: tuple, kwargs: dict ): """ Handles ``numpy`` function calls on ``subclass_uarray`` input. ``numpy`` facilitates wrapping array classes by handing off to this function when a numpy-defined function is called with arguments from an inheriting array class. Since we inherit from ``unyt_array``, we let it handle what to do with the units and take care of processing the extra_attr via our helper functions. """ # Follow NEP 18 guidelines # https://numpy.org/neps/nep-0018-array-function-protocol.html from unyt._array_functions import ( _HANDLED_FUNCTIONS as _UNYT_HANDLED_FUNCTIONS, _UNSUPPORTED_FUNCTIONS as _UNYT_UNSUPPORTED_FUNCTIONS, ) # Let's claim to support everything supported by unyt. # If we can't do this in future, follow their pattern of # defining out own _UNSUPPORTED_FUNCTIONS in a _array_functions.py file _UNSUPPORTED_FUNCTIONS = _UNYT_UNSUPPORTED_FUNCTIONS if func in _UNSUPPORTED_FUNCTIONS: # pragma: no cover # following NEP 18, return NotImplemented as a sentinel value # which will lead to raising a TypeError, while # leaving other arguments a chance to take the lead return NotImplemented if not all(issubclass(t, subclass_uarray) or t is np.ndarray for t in types): # Note: this allows subclasses that don't override # __array_function__ to handle subclass_uarray objects return NotImplemented if func in _HANDLED_FUNCTIONS: function_to_invoke = _HANDLED_FUNCTIONS[func] elif func in _UNYT_HANDLED_FUNCTIONS: function_to_invoke = _UNYT_HANDLED_FUNCTIONS[func] else: # default to numpy's private implementation function_to_invoke = func._implementation return function_to_invoke(*args, **kwargs) def __mul__( self, b: int | float | np.ndarray | unyt.unit_object.Unit ) -> "subclass_uarray": """ Multiply this ``subclass_uarray``. We delegate most cases to ``unyt_array``, but we need to handle the case where the second argument is a ``Unit``. """ if getattr(b, "is_Unit", False): return _copy_extra_attr_if_present( self, _ensure_result_is_subclass_uarray_or_uquantity(b.__mul__)( self.view(unyt_quantity) if self.shape == () else self.view(unyt_array) ), ) else: return super().__mul__(b) def __rmul__( self, b: int | float | np.ndarray | unyt.unit_object.Unit ) -> "subclass_uarray": """ Multiply this ``subclass_uarray`` (as the right argument). We delegate most cases to ``unyt_array``, but we need to handle the case where the second argument is a ``Unit``. """ if getattr(b, "is_Unit", False): return self.__mul__(b) else: return super().__rmul__(b) def __truediv__( self, b: int | float | np.ndarray | unyt.unit_object.Unit ) -> "subclass_uarray": """ Divide this ``subclass_uarray``. We delegate most cases to ``unyt_array``, but we need to handle the case where the second argument is a ``Unit``. """ if getattr(b, "is_Unit", False): return _copy_extra_attr_if_present( self, _ensure_result_is_subclass_uarray_or_uquantity((1 / b).__mul__)( self.view(unyt_quantity) if self.shape == () else self.view(unyt_array) ), ) else: return super().__truediv__(b) class subclass_uquantity(subclass_uarray, unyt_quantity): """ Minimalist subclass of unyt_quantity. """ def __new__( cls, input_scalar: numeric_type, units: str | unyt.unit_object.Unit | None = None, *, registry: unyt.unit_registry.UnitRegistry | None = None, dtype: np.dtype | str | None = None, bypass_validation: bool = False, name: str | None = None, extra_attr: bool | None = None, ) -> "subclass_uquantity": """ Closely inspired by the ``unyt_quantity.__new__`` constructor. """ if bypass_validation is True: result = super().__new__( cls, np.asarray(input_scalar), units=units, registry=registry, dtype=dtype, bypass_validation=bypass_validation, name=name, extra_attr=extra_attr, ) if not isinstance( input_scalar, (numeric_type, np.number, np.ndarray) ): # pragma: no cover raise RuntimeError("subclass_uquantity values must be numeric") # Use values from kwargs, if None use values from input_scalar units = getattr(input_scalar, "units", None) if units is None else units name = getattr(input_scalar, "name", None) if name is None else name if isinstance(input_scalar, subclass_uquantity): if input_scalar.extra_attr != extra_attr: raise ValueError extra_attr = ( getattr(input_scalar, "extra_attr", None) if extra_attr is None else extra_attr ) result = super().__new__( cls, np.asarray(input_scalar), units=units, registry=registry, dtype=dtype, bypass_validation=bypass_validation, name=name, extra_attr=extra_attr, ) if result.size > 1: # pragma: no cover raise RuntimeError("subclass_uquantity instances must be scalars") return result __round__ = _propagate_extra_attr_to_result( _ensure_result_is_subclass_uarray_or_uquantity(unyt_quantity.__round__) ) unyt-3.2.0/unyt/tests/test_array_functions.py000066400000000000000000002174131526544257300215200ustar00rootroot00000000000000# tests for NumPy __array_function__ support import inspect import re import warnings from importlib.metadata import version import numpy as np import pytest from numpy.testing import assert_allclose from packaging.version import Version from unyt import A, K, Msun, cm, degC, delta_degC, dimensionless, g, km, rad, s from unyt._array_functions import ( _HANDLED_FUNCTIONS as HANDLED_FUNCTIONS, _UNSUPPORTED_FUNCTIONS as UNSUPPORTED_FUNCTIONS, _sanitize_bins, _sanitize_range, ) from unyt.array import unyt_array, unyt_quantity from unyt.exceptions import ( UnitConversionError, UnitInconsistencyError, UnytError, ) from unyt.testing import assert_array_equal_units from unyt.unit_object import Unit from unyt.unit_registry import UnitRegistry NUMPY_VERSION = Version(version("numpy")) VAR_POSITIONAL = inspect.Parameter.VAR_POSITIONAL VAR_KEYWORD = inspect.Parameter.VAR_KEYWORD POSITIONAL_ONLY = inspect.Parameter.POSITIONAL_ONLY KEYWORD_ONLY = inspect.Parameter.KEYWORD_ONLY POSITIONAL_OR_KEYWORD = inspect.Parameter.POSITIONAL_OR_KEYWORD # this is a subset of NOT_HANDLED_FUNCTIONS for which there's nothing to do # because they don't apply to (real) numeric types # or they work as expected out of the box # This is not necessarily complete ! NOOP_FUNCTIONS = { np.all, # expects booleans np.amax, # works out of the box (tested) np.amin, # works out of the box (tested) np.angle, # expects complex numbers np.any, # works out of the box (tested) np.append, # we get it for free with np.concatenate (tested) np.apply_along_axis, # works out of the box (tested) np.argmax, # returns pure numbers np.argmin, # returns pure numbers np.argpartition, # returns pure numbers np.argsort, # returns pure numbers np.argwhere, # returns pure numbers np.array_str, # hooks into __str__ np.atleast_1d, # works out of the box (tested) np.atleast_2d, # works out of the box (tested) np.atleast_3d, # works out of the box (tested) np.can_cast, # works out of the box (tested) np.common_type, # works out of the box (tested) np.result_type, # works out of the box (tested) np.iscomplex, # works out of the box (tested) np.iscomplexobj, # works out of the box (tested) np.isreal, # works out of the box (tested) np.isrealobj, # works out of the box (tested) np.nan_to_num, # works out of the box (tested) np.nanargmax, # return pure numbers np.nanargmin, # return pure numbers np.nanmax, # works out of the box (tested) np.nanmean, # works out of the box (tested) np.nanmedian, # works out of the box (tested) np.nanmin, # works out of the box (tested) np.trim_zeros, # works out of the box (tested) np.max, # works out of the box (tested) np.mean, # works out of the box (tested) np.median, # works out of the box (tested) np.min, # works out of the box (tested) np.ndim, # return pure numbers np.shape, # returns pure numbers np.size, # returns pure numbers np.sort, # works out of the box (tested) np.sum, # works out of the box (tested) np.repeat, # works out of the box (tested) np.tile, # works out of the box (tested) np.shares_memory, # works out of the box (tested) np.nonzero, # works out of the box (tested) np.count_nonzero, # returns pure numbers np.flatnonzero, # works out of the box (tested) np.isneginf, # works out of the box (tested) np.isposinf, # works out of the box (tested) np.empty_like, # works out of the box (tested) np.full_like, # works out of the box (tested) np.ones_like, # works out of the box (tested) np.zeros_like, # works out of the box (tested) np.copy, # works out of the box (tested) np.meshgrid, # works out of the box (tested) np.transpose, # works out of the box (tested) np.reshape, # works out of the box (tested) np.resize, # works out of the box (tested) np.roll, # works out of the box (tested) np.rollaxis, # works out of the box (tested) np.rot90, # works out of the box (tested) np.expand_dims, # works out of the box (tested) np.squeeze, # works because ndarray.squeeze is handled np.flip, # works out of the box (tested) np.fliplr, # works out of the box (tested) np.flipud, # works out of the box (tested) np.delete, # works out of the box (tested) np.partition, # works out of the box (tested) np.broadcast_to, # works out of the box (tested) np.broadcast_arrays, # works out of the box (tested) np.split, # works out of the box (tested) np.array_split, # works out of the box (tested) np.dsplit, # works out of the box (tested) np.hsplit, # works out of the box (tested) np.vsplit, # works out of the box (tested) np.swapaxes, # works out of the box (tested) np.moveaxis, # works out of the box (tested) np.nansum, # works out of the box (tested) np.std, # works out of the box (tested) np.nanstd, # works out of the box (tested) np.nanvar, # works out of the box (tested) np.nanprod, # works out of the box (tested) np.diag, # works out of the box (tested) np.diag_indices_from, # returns pure numbers np.diagflat, # works out of the box (tested) np.diagonal, # works out of the box (tested) np.ravel, # returns pure numbers np.ravel_multi_index, # returns pure numbers np.unravel_index, # returns pure numbers np.fix, # works out of the box (tested) np.round, # is implemented via np.around np.may_share_memory, # returns pure numbers (booleans) np.linalg.matrix_power, # works out of the box (tested) np.linalg.cholesky, # works out of the box (tested) np.linalg.multi_dot, # works out of the box (tested) np.linalg.matrix_rank, # returns pure numbers np.linalg.qr, # works out of the box (tested) np.linalg.slogdet, # undefined units np.linalg.cond, # works out of the box (tested) np.gradient, # works out of the box (tested) np.cumsum, # works out of the box (tested) np.nancumsum, # works out of the box (tested) np.nancumprod, # we get it for free with np.cumprod (tested) np.bincount, # works out of the box (tested) np.unique, # works out of the box (tested) np.min_scalar_type, # returns dtypes np.extract, # works out of the box (tested) np.setxor1d, # we get it for free with previously implemented functions (tested) np.lexsort, # returns pure numbers np.tril_indices_from, # returns pure numbers np.triu_indices_from, # returns pure numbers np.imag, # works out of the box (tested) np.real, # works out of the box (tested) np.real_if_close, # works out of the box (tested) np.einsum_path, # returns pure numbers np.cov, # returns pure numbers np.corrcoef, # returns pure numbers np.compress, # works out of the box (tested) np.take_along_axis, # works out of the box (tested) } if NUMPY_VERSION >= Version("2.0.0dev0"): # the following all work out of the box (tested) NOOP_FUNCTIONS |= { np.linalg.cross, np.linalg.diagonal, np.linalg.matmul, np.linalg.matrix_norm, np.linalg.matrix_transpose, np.linalg.svdvals, np.linalg.tensordot, np.linalg.trace, np.linalg.vecdot, np.linalg.vector_norm, np.astype, np.matrix_transpose, np.unique_all, np.unique_counts, np.unique_inverse, np.unique_values, } if NUMPY_VERSION >= Version("2.1.0dev0"): NOOP_FUNCTIONS |= { np.unstack, np.cumulative_sum, } if NUMPY_VERSION >= Version("2.4.1"): NOOP_FUNCTIONS |= {np.average} # Functions for which behaviour is intentionally left to default IGNORED_FUNCTIONS = { np.i0, # IO functions (no way to add units) np.save, np.savez, np.savez_compressed, } # map subsets of deprecated functions to the version they were removed # so that we can drop the ones that are not present in any version we support DEPRECATED_FUNCTIONS = { Version("1.20"): { "fv", "ipmt", "irr", "mirr", "nper", "npv", "pmt", "ppmt", "pv", "rate", }, Version("1.22"): { "alen", "asscalar", }, Version("2.0.0b1"): { "msort", "product", "cumproduct", "round_", "sometrue", "alltrue", }, # functions that are deprecated but not yet removed in any known version # should be added here Version("999.999.999"): set(), } NOT_HANDLED_FUNCTIONS = NOOP_FUNCTIONS | UNSUPPORTED_FUNCTIONS | IGNORED_FUNCTIONS with warnings.catch_warnings(): warnings.simplefilter("ignore", DeprecationWarning) for removal_version, functions in DEPRECATED_FUNCTIONS.items(): if NUMPY_VERSION >= removal_version: continue for func in functions: NOT_HANDLED_FUNCTIONS.add(getattr(np, func)) def get_decorators(func): # adapted from # https://stackoverflow.com/questions/3232024/introspection-to-get-decorator-names-on-a-method import ast import inspect target = func decorators = {} def visit_FunctionDef(node): decorators[node.name] = [] for n in node.decorator_list: name = "" if isinstance(n, ast.Call): name = n.func.attr if isinstance(n.func, ast.Attribute) else n.func.id else: name = n.attr if isinstance(n, ast.Attribute) else n.id decorators[node.name].append(name) node_iter = ast.NodeVisitor() node_iter.visit_FunctionDef = visit_FunctionDef try: node_iter.visit(ast.parse(inspect.getsource(target))) return decorators[func.__name__] except TypeError: # may be raised if inspecting a C compiled function # in which case, we return with empty hands return [] def get_wrapped_functions(*modules): """get functions that support __array_function__ in modules This was adapted from astropy's tests """ wrapped_functions = {} for mod in modules: for name, f in mod.__dict__.items(): if callable(f) and hasattr(f, "__wrapped__"): if ( f is np.printoptions or f.__name__.startswith("_") or "deprecate" in get_decorators(f) ): continue wrapped_functions[mod.__name__ + "." + name] = f return dict(sorted(wrapped_functions.items())) def test_wrapping_completeness(): """Ensure we wrap all numpy functions that support __array_function__""" handled_numpy_functions = set(HANDLED_FUNCTIONS.keys()) # ensure no functions appear in both NOT_HANDLED_FUNCTIONS and HANDLED_FUNCTIONS assert NOT_HANDLED_FUNCTIONS.isdisjoint(handled_numpy_functions), ( NOT_HANDLED_FUNCTIONS.intersection(handled_numpy_functions) ) # get list of functions that support wrapping by introspection on numpy module wrappable_functions = get_wrapped_functions(np, np.fft, np.linalg) for function in HANDLED_FUNCTIONS: # ensure we only have wrappers for functions that support wrapping assert function in wrappable_functions.values() all_funcs = NOT_HANDLED_FUNCTIONS.union(handled_numpy_functions) # ensure all functions in numpy that support wrapping either have wrappers # or are explicitly whitelisted for function in wrappable_functions.values(): assert function in all_funcs def test_unsupported_array_function_returns_notimplemented(): x = unyt_array([1, 2, 3], "cm") for func in UNSUPPORTED_FUNCTIONS: assert x.__array_function__(func, (unyt_array,), (x,), {}) is NotImplemented with pytest.raises(TypeError, match="no implementation found"): np.packbits(x) @pytest.mark.parametrize( "arrays", [ [np.array([1]), [2] * Unit()], [np.array([1]), [2] * Unit(registry=UnitRegistry())], [[1], [2] * Unit()], ], ) def test_unit_validation(arrays): # see https://github.com/yt-project/unyt/issues/462 # numpy.concatenate isn't essential to this test # what we're really testing is the unit consistency validation # underneath, but we do so using public API res = np.concatenate(arrays) assert res.units.is_dimensionless def test_unit_validation_dimensionless_factors(): # see https://github.com/yt-project/unyt/issues/477 # numpy.concatenate isn't essential to this test # what we're really testing is the unit consistency validation # underneath, but we do so using public API res = np.concatenate([[1] * cm, unyt_array([1], "cm*dimensionless")]) assert res.units is cm def test_array_repr(): arr = [1, 2, 3] * cm assert re.fullmatch(r"unyt_array\(\[1, 2, 3\], (units=)?'cm'\)", np.array_repr(arr)) def test_dot_vectors(): a = [1, 2, 3] * cm b = [1, 2, 3] * s res = np.dot(a, b) assert res.units == cm * s assert res.d == 14 # NOTE: explicitly setting the dtype of out arrays as `dtype=np.int_` is the # cross-platform way to guarantee that their dtype matches that of np.arange(x) # (on POSIX system it's int64, while on windows it's int32) @pytest.mark.parametrize( "out", [ None, np.empty((3, 3), dtype=np.int_), np.empty((3, 3), dtype=np.int_, order="C") * cm * s, np.empty((3, 3), dtype=np.int_, order="C") * km * s, ], ids=[ "None", "pure ndarray", "same units", "convertible units", ], ) def test_dot_matrices(out): a = np.reshape(np.arange(9), (3, 3)) * cm b = np.reshape(np.arange(9), (3, 3)) * s res = np.dot(a, b, out=out) if out is not None: np.testing.assert_array_equal(res, out) assert np.shares_memory(res, out) assert isinstance(res, unyt_array) assert isinstance(out, np.ndarray) if isinstance(out, unyt_array): # check that the result can be converted to predictable units res.in_units("cm * s") assert out.units == res.units def test_dot_mixed_ndarray_unyt_array(): a = np.ones((3, 3)) b = np.ones((3, 3)) * cm res = np.dot(a, b) assert isinstance(res, unyt_array) assert res.units == cm out = np.zeros((3, 3)) res = np.dot(a, b, out=out) assert isinstance(res, unyt_array) assert type(out) is np.ndarray assert np.shares_memory(out, res) np.testing.assert_array_equal(out, res) out = np.zeros((3, 3)) * km res = np.dot(a, b, out=out) assert isinstance(res, unyt_array) assert isinstance(out, unyt_array) assert res.units == out.units == cm assert np.shares_memory(res, out) # check this works with an ndarray as the first operand out = np.zeros((3, 3)) * km res = np.dot(b, a, out=out) assert isinstance(res, unyt_array) assert isinstance(out, unyt_array) assert res.units == out.units == cm assert np.shares_memory(res, out) def test_invalid_dot_matrices(): a = np.reshape(np.arange(9), (3, 3)) * cm b = np.reshape(np.arange(9), (3, 3)) * s out = np.empty((3, 3), dtype=np.int_, order="C") * s**2 res = np.dot(a, b, out=out) np.testing.assert_array_equal(res, out) assert out.units == res.units == cm * s def test_vdot(): a = np.arange(9) * cm b = np.arange(9) * s res = np.vdot(a, b) assert res.units == cm * s def test_inner(): a = np.array([1, 2, 3]) * cm b = np.array([0, 1, 0]) * s res = np.inner(a, b) assert res.d == 2 assert res.units == cm * s def test_outer(): a = np.array([1, 2, 3]) * cm b = np.array([0, 1, 0]) * s res = np.outer(a, b) expected = np.array([[0, 1, 0], [0, 2, 0], [0, 3, 0]]) np.testing.assert_array_equal(res.ndview, expected) assert res.units == cm * s def test_kron(): a = np.eye(2) * cm b = np.ones((2, 2)) * s res = np.kron(a, b) assert res.units == cm * s def test_linalg_inv(): rng = np.random.default_rng(0) arr = rng.random((3, 3)) * cm iarr = np.linalg.inv(arr) assert 1 * iarr.units == 1 / cm def test_linalg_tensorinv(): a = np.reshape(np.eye(4 * 6), (4, 6, 8, 3)) * cm ia = np.linalg.tensorinv(a) assert 1 * ia.units == 1 / cm def test_linalg_pinv(): rng = np.random.default_rng(0) a = rng.standard_normal(size=(9, 6)) * cm B = np.linalg.pinv(a) assert 1 * B.units == 1 / cm np.testing.assert_allclose(a, np.dot(a, np.dot(B, a))) np.testing.assert_allclose(B, np.dot(B, np.dot(a, B))) # see https://github.com/numpy/numpy/issues/22444 @pytest.mark.xfail( reason=( "as of numpy 1.21.2, the __array_function__ protocol doesn't let " "us overload np.linalg.pinv for stacks of matrices" ) ) def test_matrix_stack_linalg_pinv(): stack = [np.eye(4) * g for _ in range(3)] B = np.linalg.pinv(stack) assert 1 * B.units == 1 / g # see https://github.com/numpy/numpy/issues/22444 @pytest.mark.xfail( reason=( "as of numpy 1.21.2, the __array_function__ protocol doesn't let " "us overload np.linalg.pinv for stacks of matrices" ) ) def test_invalid_matrix_stack_linalg_pinv(): stack = [np.eye(4) * g, np.eye(4) * s] with pytest.raises( TypeError, match=re.escape( "numpy.linalg.pinv cannot operate on a stack " "of matrices with different units." ), ): np.linalg.pinv(stack) @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="linalg.diagonal is new in numpy 2.0" ) def test_linalg_diagonal(): a = np.eye(3) * cm b = np.linalg.diagonal(a) assert type(b) is unyt_array assert b.units == a.units @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="linalg.trace is new in numpy 2.0" ) def test_linalg_trace(): a = np.eye(3) * cm b = np.linalg.trace(a) assert type(b) is unyt_quantity assert b.units == a.units @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="linalg.outer is new in numpy 2.0" ) def test_linalg_outer(): a = np.arange(10) * cm assert_array_equal_units(np.linalg.outer(a, a), np.outer(a, a)) @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="linalg.cross is new in numpy 2.0" ) def test_linalg_cross(): a = np.arange(3) * cm assert_array_equal_units(np.linalg.cross(a, a), np.cross(a, a)) @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="linalg.matmul is new in numpy 2.0" ) def test_linalg_matmul(): a = np.eye(3) * cm assert_array_equal_units(np.linalg.matmul(a, a), np.matmul(a, a)) @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="linalg.matrix_norm is new in numpy 2.0", ) def test_linalg_matrix_norm(): a = np.eye(3) * cm assert_array_equal_units(np.linalg.matrix_norm(a), np.linalg.norm(a)) @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="matrix_transpose is new in numpy 2.0" ) @pytest.mark.parametrize("namespace", [None, "linalg"]) def test_matrix_transpose(namespace): if namespace is None: func = np.matrix_transpose else: func = getattr(np, namespace).matrix_transpose a = np.arange(0, 9).reshape(3, 3) assert_array_equal_units(func(a), np.transpose(a)) @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="linalg.vecdot is new in numpy 2.0" ) def test_linalg_vecdot(): a = np.arange(0, 9) assert_array_equal_units(np.linalg.vecdot(a, a), np.vdot(a, a)) @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="linalg.vector_norm is new in numpy 2.0", ) def test_linalg_vector_norm(): a = np.arange(0, 9) assert_array_equal_units(np.linalg.vector_norm(a), np.linalg.norm(a)) def test_linalg_svd(): rng = np.random.default_rng(0) a = (rng.standard_normal(size=(9, 6)) + 1j * rng.standard_normal(size=(9, 6))) * cm u, s, vh = np.linalg.svd(a) assert type(u) is np.ndarray assert type(vh) is np.ndarray assert type(s) is unyt_array assert s.units == cm s = np.linalg.svd(a, compute_uv=False) assert type(s) is unyt_array assert s.units == cm @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="linalg.svdvals is new in numpy 2.0" ) def test_linalg_svdvals(): q = np.arange(9).reshape(3, 3) * cm _, ref, _ = np.linalg.svd(q) res = np.linalg.svdvals(q) assert type(res) is unyt_array assert_allclose(res, ref, rtol=5e-16) @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="linalg.tensordot is new in numpy 2.0" ) def test_linalg_tensordot(): q = np.arange(9).reshape(3, 3) * cm ref = np.tensordot(q, q) res = np.linalg.tensordot(q, q) assert_array_equal_units(res, ref) class TestHistograms: def test_sanitize_range_on_None(self): assert _sanitize_range(None, [cm]) is None def test_sanitize_range_units_match(self): input_range = (1 * cm, 2 * cm) expected_range = (1 * cm, 2 * cm) assert_array_equal_units(_sanitize_range(input_range, [cm]), expected_range) def test_sanitize_range_units_mismatch(self): input_range = (1 * cm, 2) with pytest.raises( TypeError, match="Elements of range must both have a 'units' attribute." ): _sanitize_range(input_range, [cm, g]) def test_sanitize_range_pure_scalars(self): input_range = (1, 2) expected_range = (1 * cm, 2 * cm) assert_array_equal_units(_sanitize_range(input_range, [cm]), expected_range) def test_sanitize_bins_integer(self): a = np.arange(10) * cm bins = 10 assert _sanitize_bins(a, bins) == bins def test_sanitize_bins_convertible(self): a = np.arange(10) * cm bins = np.array([0, 1, 2]) * km np.testing.assert_array_equal(_sanitize_bins(a, bins), bins.to_value(a.units)) def test_sanitize_bins_missing_units_but_dimensionless(self): a = np.arange(10) * dimensionless bins = np.array([0, 1, 2]) np.testing.assert_array_equal(_sanitize_bins(a, bins), bins) def test_sanitize_bins_without_units(self): a = np.arange(10) bins = np.array([0, 1, 2]) np.testing.assert_array_equal(_sanitize_bins(a, bins), bins) def test_histogram(self): rng = np.random.default_rng(0) arr = rng.normal(size=1000) * cm counts, bins = np.histogram(arr, bins=10, range=(arr.min(), arr.max())) assert type(counts) is np.ndarray assert bins.units == arr.units def test_histogram_implicit_units(self): # see https://github.com/yt-project/unyt/issues/465 rng = np.random.default_rng(0) arr = rng.normal(size=1000) * cm counts, bins = np.histogram( arr, bins=10, range=(arr.min().value, arr.max().value) ) assert type(counts) is np.ndarray assert bins.units == arr.units def test_histogram_with_density(self): rng = np.random.default_rng(0) arr = rng.normal(size=1000) * cm density, bins = np.histogram( arr, bins=10, range=(arr.min(), arr.max()), density=True ) assert type(density) is unyt_array assert density.units == arr.units**-1 assert bins.units == arr.units def test_histogram_with_weights(self): rng = np.random.default_rng(0) arr = rng.normal(size=1000) * cm w = rng.uniform(size=1000) * g wcounts, wbins = np.histogram( arr, bins=10, range=(arr.min(), arr.max()), weights=w ) assert type(wcounts) is unyt_array assert wcounts.units == w.units assert wbins.units == arr.units def test_histogram_with_weights_and_density(self): rng = np.random.default_rng(0) arr = rng.normal(size=1000) * cm w = rng.uniform(size=1000) * g wdensity, wdbins = np.histogram( arr, bins=10, range=(arr.min(), arr.max()), density=True, weights=w ) assert type(wdensity) is unyt_array assert wdensity.units == w.units / arr.units assert wdbins.units == arr.units def test_histogram_with_weights_and_dimless_arr(self): rng = np.random.default_rng(0) arr = rng.normal(size=1000) * cm w = rng.uniform(size=1000) * g wcounts2, wbins2 = np.histogram(arr.to_value(arr.units), weights=w) assert type(wcounts2) is unyt_array assert wcounts2.units == w.units assert not hasattr(wbins2, "units") def test_histogram2d(self): rng = np.random.default_rng(0) x = rng.normal(size=100) * cm y = rng.normal(loc=10, size=100) * s counts, xbins, ybins = np.histogram2d(x, y) assert counts.ndim == 2 assert xbins.units == x.units assert ybins.units == y.units def test_histogram2d_with_density(self): rng = np.random.default_rng(0) x = rng.normal(size=100) * cm y = rng.normal(loc=10, size=100) * s density, xbins, ybins = np.histogram2d(x, y, density=True) assert density.ndim == 2 assert type(density) is unyt_array assert density.units == (x.units * y.units) ** -1 assert xbins.units == x.units assert ybins.units == y.units def test_histogram2d_with_weights(self): rng = np.random.default_rng(0) x = rng.normal(size=100) * cm y = rng.normal(loc=10, size=100) * s w = rng.uniform(size=100) * g wcounts, xwbins, ywbins = np.histogram2d(x, y, weights=w) assert wcounts.ndim == 2 assert type(wcounts) is unyt_array assert wcounts.units == w.units assert xwbins.units == x.units assert ywbins.units == y.units def test_histogram2d_with_weights_and_density(self): rng = np.random.default_rng(0) x = rng.normal(size=100) * cm y = rng.normal(loc=10, size=100) * s w = rng.uniform(size=100) * g wdensity, xwdbins, ywdbins = np.histogram2d(x, y, weights=w, density=True) assert wdensity.ndim == 2 assert type(wdensity) is unyt_array assert wdensity.units == w.units / (x.units * y.units) assert xwdbins.units == x.units assert ywdbins.units == y.units def test_histogram2d_with_weights_and_dimless_arr(self): rng = np.random.default_rng(0) x = rng.normal(size=100) * cm y = rng.normal(loc=10, size=100) * s w = rng.uniform(size=100) * g wcounts2, xwbins2, ywbins2 = np.histogram2d( x.to_value(x.units), y.to_value(y.units), weights=w ) assert type(wcounts2) is unyt_array assert wcounts2.units == w.units assert not hasattr(xwbins2, "units") assert not hasattr(ywbins2, "units") def test_histogramdd(self): rng = np.random.default_rng(0) x = rng.normal(size=100) * cm y = rng.normal(size=100) * s z = rng.normal(size=100) * g counts, (xbins, ybins, zbins) = np.histogramdd((x, y, z)) assert counts.ndim == 3 assert xbins.units == x.units assert ybins.units == y.units assert zbins.units == z.units def test_histogramdd_with_density(self): rng = np.random.default_rng(0) x = rng.normal(size=100) * cm y = rng.normal(loc=10, size=100) * s z = rng.normal(size=100) * g density, (xbins, ybins, zbins) = np.histogramdd((x, y, z), density=True) assert density.ndim == 3 assert type(density) is unyt_array assert density.units == (x.units * y.units * z.units) ** -1 assert xbins.units == x.units assert ybins.units == y.units assert zbins.units == z.units def test_histogramdd_with_weights(self): rng = np.random.default_rng(0) x = rng.normal(size=100) * cm y = rng.normal(loc=10, size=100) * s z = rng.normal(size=100) * g w = rng.uniform(size=100) * K wcounts, (xwbins, ywbins, zwbins) = np.histogramdd((x, y, z), weights=w) assert wcounts.ndim == 3 assert type(wcounts) is unyt_array assert wcounts.units == w.units assert xwbins.units == x.units assert ywbins.units == y.units assert zwbins.units == z.units def test_histogramdd_with_weights_and_density(self): rng = np.random.default_rng(0) x = rng.normal(size=100) * cm y = rng.normal(loc=10, size=100) * s z = rng.normal(size=100) * g w = rng.uniform(size=100) * K wdensity, (xwdbins, ywdbins, zwdbins) = np.histogramdd( (x, y, z), weights=w, density=True ) assert wdensity.ndim == 3 assert type(wdensity) is unyt_array assert wdensity.units == w.units / (x.units * y.units * z.units) assert xwdbins.units == x.units assert ywdbins.units == y.units assert zwdbins.units == z.units def test_histogramdd_with_weights_and_dimless_arr(self): rng = np.random.default_rng(0) x = rng.normal(size=100) * cm y = rng.normal(loc=10, size=100) * s z = rng.normal(size=100) * g w = rng.uniform(size=100) * K wcounts2, (xwbins2, ywbins2, zwbins2) = np.histogramdd( (x.to_value(x.units), y.to_value(y.units), z.to_value(z.units)), weights=w ) assert type(wcounts2) is unyt_array assert wcounts2.units == w.units assert not hasattr(xwbins2, "units") assert not hasattr(ywbins2, "units") assert not hasattr(zwbins2, "units") @pytest.mark.parametrize("weights", [None, [0, 1, 2], [0, 1, 2] * cm]) def test_histogramdd_recursion(self, weights): # regression test for https://github.com/yt-project/unyt/issues/540 sample = [unyt_array(np.arange(3), Msun)] np.histogramdd(sample, density=True, weights=weights) def test_histogramdd_with_density_and_non_unyt_samples(self): rng = np.random.default_rng(0) x = rng.normal(size=100) * cm y = rng.normal(loc=10, size=100) z = rng.normal(size=100) * g counts, (xbins, ybins, zbins) = np.histogramdd((x, y, z), density=True) assert counts.units == (x.units * z.units) ** -1 def test_histogram_bin_edges(self): rng = np.random.default_rng(0) arr = rng.normal(size=1000) * cm bins = np.histogram_bin_edges(arr) assert type(bins) is unyt_array assert bins.units == arr.units def test_histogram_input_and_bin_units_mismatch(self): # regression test for https://github.com/yt-project/unyt/issues/609 rng = np.random.default_rng(0) arr = rng.uniform(size=10) * cm bins = np.linspace(0, 1, 10) * km hist, resulting_bins = np.histogram(arr, bins=bins) assert np.all(bins == resulting_bins) def test_histogram_input_and_bin_dimensions_mismatch(self): # regression test for https://github.com/yt-project/unyt/issues/609 rng = np.random.default_rng(0) arr = rng.uniform(size=10) * cm bins = np.linspace(0, 1, 10) * s with pytest.raises(UnitConversionError): np.histogram(arr, bins=bins) def test_concatenate(): rng = np.random.default_rng(0) x1 = rng.normal(size=100) * cm x2 = rng.normal(size=100) * cm res = np.concatenate((x1, x2)) assert res.units == cm assert res.shape == (200,) def test_concatenate_different_units(): rng = np.random.default_rng(0) x1 = rng.normal(size=100) * cm x2 = rng.normal(size=100) * s with pytest.raises( UnitInconsistencyError, match=( r"Expected all unyt_array arguments to have identical units\. " r"Received mixed units \(cm, s\)" ), ): np.concatenate((x1, x2)) def test_cross(): x1 = [1, 2, 3] * cm x2 = [4, 5, 6] * s res = np.cross(x1, x2) assert res.units == cm * s def test_intersect1d(): x1 = [1, 2, 3, 4, 5, 6, 7, 8] * cm x2 = [0, 2, 4, 6, 8] * cm res = np.intersect1d(x1, x2) assert res.units == cm np.testing.assert_array_equal(res, [2, 4, 6, 8]) def test_intersect1d_return_indices(): x1 = [1, 2, 3, 4, 5, 6, 7, 8] * cm x2 = [0, 2, 4, 6, 8] * cm ures = np.intersect1d(x1, x2, return_indices=True) rres = np.intersect1d(x1.d, x2.d, return_indices=True) np.testing.assert_array_equal(ures, rres) def test_union1d(): x1 = [-1, 0, 1] * cm x2 = [-2, -1, -3] * cm res = np.union1d(x1, x2) assert res.units == cm np.testing.assert_array_equal(res, [-3, -2, -1, 0, 1]) def test_linalg_norm(): x = [1, 1, 1] * s res = np.linalg.norm(x) assert res.units == s assert res == pytest.approx(np.sqrt(3)) @pytest.mark.parametrize("func", [np.vstack, np.hstack, np.dstack, np.column_stack]) def test_xstack(func): x1 = [0, 1, 2] * cm x2 = [3, 4, 5] * cm res = func((x1, x2)) assert type(res) is unyt_array assert res.units == cm @pytest.mark.parametrize( "axis, expected", [(0, [[0, 1, 2], [3, 4, 5]]), (1, [[0, 3], [1, 4], [2, 5]])] ) def test_stack(axis, expected): x1 = [0, 1, 2] * cm x2 = [3, 4, 5] * cm res = np.stack((x1, x2), axis=axis) assert res.units == cm np.testing.assert_array_equal(res, expected) def test_amax(): x1 = [[0.0, 1.0, 2.0], [3.0, 4.0, 5.0]] * cm res = np.amax(x1) assert type(res) is unyt_quantity res = np.amax(x1, axis=1) assert type(res) is unyt_array def test_amin(): x1 = [[0.0, 1.0, 2.0], [3.0, 4.0, 5.0]] * cm res = np.amin(x1) assert type(res) is unyt_quantity res = np.amin(x1, axis=1) assert type(res) is unyt_array def test_around(): x1 = [[1, 2, 3], [1, 2, 3], [1, 2, 3.0]] * g res = np.around(x1, 2) assert type(res) is unyt_array assert res.units == g def test_atleast_nd(): x0 = 1.0 * cm x1 = np.atleast_1d(x0) assert type(x1) is unyt_array assert x1.ndim == 1 assert x1.units == cm x2 = np.atleast_2d(x0) assert type(x2) is unyt_array assert x2.ndim == 2 assert x2.units == cm x3 = np.atleast_3d(x0) assert type(x3) is unyt_array assert x3.ndim == 3 assert x3.units == cm def test_average(): x1 = [0.0, 1.0, 2.0] * cm res = np.average(x1) assert type(res) is unyt_quantity assert res == 1 * cm def test_average_with_returned(): # regression test for https://github.com/yt-project/unyt/issues/608 x = [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]] * cm w = [1.0, 2.0, 3.0] * g avg, wsum = np.average(x, weights=w, axis=0, returned=True) assert type(wsum) is unyt_array assert wsum.units == g def test_trim_zeros(): x1 = [0, 1, 2, 3, 0] * cm res = np.trim_zeros(x1) assert type(res) is unyt_array def test_any(): assert not np.any([0, 0, 0] * cm) assert np.any([1, 0, 0] * cm) x = [1, 2, 3] * cm assert np.any(x >= 3) assert np.any(x >= 3 * cm) assert not np.any(x >= 3 * km) def test_append(): a = [0, 1, 2, 3] * cm b = np.append(a, [4, 5, 6] * cm) assert type(b) is unyt_array assert b.units == cm def test_append_inconsistent_units(): a = [0, 1, 2, 3] * cm with pytest.raises( UnitInconsistencyError, match=re.escape( r"Expected all unyt_array arguments to have identical units. " r"Received mixed units (cm, dimensionless)" ), ): np.append(a, [4, 5, 6]) @pytest.mark.skipif( NUMPY_VERSION >= Version("2.0.0dev0"), reason="np.asfarray is removed in numpy 2.0" ) def test_asfarray(): x1 = np.eye(3, dtype="int64") * cm x2 = np.asfarray(x1) # noqa: NPY201 assert type(x2) is unyt_array assert x2.units == cm assert x2.dtype == "float64" def test_block(): x1 = 1 * np.ones((3, 3)) * cm x2 = 2 * np.ones((3, 1)) * cm res = np.block([[x1, x2]]) assert type(res) is unyt_array assert res.units == cm def test_block_units_inconsistency(): # check that unit inconsistency is correctly detected # for nested lists x1 = 1 * np.ones((3, 3)) * cm x2 = [3 * cm, 3 * cm, 3 * km] with pytest.raises(UnitInconsistencyError): np.block([[x1, x2]]) def test_can_cast(): a = [0, 1, 2] * cm assert np.can_cast(a, "float64") assert np.can_cast(a, "int64") assert not np.can_cast(a, "float16") def test_isreal_like(): a = [1, 2, 3] * cm assert np.all(np.isreal(a)) assert np.isrealobj(a) assert not np.any(np.iscomplex(a)) assert not np.iscomplexobj(a) b = [1j, 2j, 3j] * cm assert not np.any(np.isreal(b)) assert not np.isrealobj(b) assert np.all(np.iscomplex(b)) assert np.iscomplexobj(b) @pytest.mark.parametrize( "func", [ np.fft.fft, np.fft.hfft, np.fft.rfft, np.fft.ifft, np.fft.ihfft, np.fft.irfft, ], ) def test_fft_1D(func): x1 = [0, 1, 2] * cm res = func(x1) assert type(res) is unyt_array assert res.units == (1 * cm).units @pytest.mark.parametrize( "func", [ np.fft.fft2, np.fft.fftn, np.fft.rfft2, np.fft.rfftn, np.fft.ifft2, np.fft.ifftn, np.fft.irfft2, np.fft.irfftn, ], ) def test_fft_ND(func): x1 = [[0, 1, 2], [0, 1, 2], [0, 1, 2]] * cm res = func(x1) assert type(res) is unyt_array assert res.units == (1 * cm).units @pytest.mark.parametrize("func", [np.fft.fftshift, np.fft.ifftshift]) def test_fft_shift(func): x1 = [[0, 1, 2], [0, 1, 2], [0, 1, 2]] * cm res = func(x1) assert type(res) is unyt_array assert res.units == cm if NUMPY_VERSION >= Version("2.0.0dev0"): _trapezoid_func = np.trapezoid else: _trapezoid_func = np.trapz # noqa: NPY201 def test_trapezoid_no_x(): y = [0, 1, 2, 3] * cm res = _trapezoid_func(y) assert type(res) is unyt_quantity assert res.units == cm def test_trapezoid_with_raw_x(): y = [0, 1, 2, 3] * cm x = [0, 1, 2, 3] res = _trapezoid_func(y, x) assert type(res) is unyt_quantity assert res.units == cm def test_trapezoid_with_unit_x(): y = [0, 1, 2, 3] * cm x = [0, 1, 2, 3] * s res = _trapezoid_func(y, x) assert type(res) is unyt_quantity assert res.units == cm * s def test_trapezoid_with_raw_dx(): y = [0, 1, 2, 3] * cm dx = 2.0 res = _trapezoid_func(y, dx=dx) assert type(res) is unyt_quantity assert res.units == cm def test_trapezoid_with_unit_dx(): y = [0, 1, 2, 3] * cm dx = 2.0 * s res = _trapezoid_func(y, dx=dx) assert type(res) is unyt_quantity assert res.units == cm * s @pytest.mark.parametrize( "op", ["min", "max", "mean", "median", "sum", "nanmin", "nanmax", "nanmean", "nanmedian"], ) def test_scalar_reduction(op): x = [0, 1, 2] * cm res = getattr(np, op)(x) assert type(res) is unyt_quantity assert res.units == cm @pytest.mark.parametrize("op", ["sort", "sort_complex"]) def test_sort(op): x = [2, 0, 1] * cm res = getattr(np, op)(x) assert type(res) is unyt_array assert res.units == cm def test_repeat(): x = [2, 0, 1] * cm res = np.repeat(x, 2) assert type(res) is unyt_array assert res.units == cm def test_tile(): x = [2, 0, 1] * cm res = np.tile(x, (2, 3)) assert type(res) is unyt_array assert res.units == cm def test_shares_memory(): x = [1, 2, 3] * cm assert np.shares_memory(x, x.view(np.ndarray)) def test_nonzero(): x = [1, 2, 0] * cm res = np.nonzero(x) assert len(res) == 1 np.testing.assert_array_equal(res[0], [0, 1]) res2 = np.flatnonzero(x) np.testing.assert_array_equal(res[0], res2) def test_isinf(): x = [1, float("inf"), float("-inf")] * cm res = np.isneginf(x) np.testing.assert_array_equal(res, [False, False, True]) res = np.isposinf(x) np.testing.assert_array_equal(res, [False, True, False]) def test_allclose(): x = [1, 2, 3] * cm y = [1, 2, 3] * km assert not np.allclose(x, y) @pytest.mark.parametrize( "a, b, expected", [ ([1, 2, 3] * cm, [1, 2, 3] * km, [False] * 3), ([1, 2, 3] * cm, [1, 2, 3], [True] * 3), ([1, 2, 3] * K, [-272.15, -271.15, -270.15] * degC, [True] * 3), ], ) def test_isclose(a, b, expected): res = np.isclose(a, b) np.testing.assert_array_equal(res, expected) def test_isclose_error(): x = [1, 2, 3] * cm y = [1, 2, 3] * g with pytest.raises(UnitConversionError): np.isclose(x, y) def test_linspace(): res = np.linspace(1 * cm, 11 * cm, 10) assert type(res) is unyt_array assert res.units == cm def test_linspace_with_retstep(): res, step = np.linspace(1 * cm, 11 * cm, 10, retstep=True) assert type(res) is unyt_array assert res.units == cm assert type(step) is unyt_quantity assert step.units == cm def test_logspace_with_units_raises(): with pytest.raises( TypeError, match="The first two arguments to numpy.logspace must be dimensionless", ): np.logspace(1 * cm, 2 * cm) def test_logspace_with_base(): res = np.logspace(1, 2, base=10 * cm) assert type(res) is unyt_array assert res.units == cm def test_logspace_with_dimless_input(): res = np.logspace(1 * dimensionless, 2 * dimensionless) assert type(res) is unyt_array assert res.units == dimensionless def test_geomspace(): res = np.geomspace(1 * cm, 11 * cm, 10) assert type(res) is unyt_array assert res.units == cm def test_full_like(): x = [1, 2, 3] * cm res = np.full_like(x, 6 * cm) assert type(res) is unyt_array assert res.units == cm @pytest.mark.parametrize( "func", [ np.empty_like, np.zeros_like, np.ones_like, ], ) def test_x_like(func): x = unyt_array([1, 2, 3], cm, dtype="float32") res = func(x) assert type(res) is unyt_array assert res.units == x.units assert res.shape == x.shape assert res.dtype == x.dtype def test_copy(): x = [1, 2, 3] * cm y = np.copy(x) # by default, subok=False, so we shouldn't # expect a unyt_array without switching this arg assert type(y) is np.ndarray def test_copy_subok(): x = [1, 2, 3] * cm y = np.copy(x, subok=True) assert type(y) is unyt_array assert y.units == cm def test_copyto(): x = [1, 2, 3] * cm y = np.empty_like(x) np.copyto(y, x) assert type(y) is unyt_array assert y.units == cm np.testing.assert_array_equal(x, y) def test_copyto_edge_cases(): x = [1, 2, 3] * cm y = [1, 2, 3] * g # copying to an array with a different unit is supported # to be in line with how we treat the 'out' param in most # numpy operations np.copyto(y, x) assert type(y) is unyt_array assert y.units == cm y = np.empty_like(x.view(np.ndarray)) np.copyto(y, x) assert type(y) is np.ndarray @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="astype is new in numpy 2.0" ) def test_astype(): x = np.array([1, 2, 3], dtype="int64") * cm res = np.astype(x, "int32") assert type(res) is unyt_array assert res.units == cm def test_meshgrid(): x = [1, 2, 3] * cm y = [1, 2, 3] * s x2d, y2d = np.meshgrid(x, y) assert type(x2d) is unyt_array assert type(y2d) is unyt_array assert x2d.units == cm assert y2d.units == s @pytest.mark.parametrize( "func, args, kwargs", [ (np.transpose, (), {}), (np.reshape, ((9, 2),), {}), (np.resize, ((3, 6),), {}), (np.expand_dims, (0,), {}), (np.squeeze, (), {}), (np.swapaxes, (0, 1), {}), (np.moveaxis, (0, 2), {}), (np.rot90, (), {}), (np.roll, (3,), {}), (np.rollaxis, (2,), {}), (np.flip, (), {}), (np.fliplr, (), {}), (np.flipud, (), {}), (np.broadcast_to, ((1, 1, 2, 3, 3),), {"subok": True}), (np.delete, (0, 1), {}), (np.partition, (2,), {}), ], ) def test_reshaper(func, args, kwargs): x = [ [ [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ], [ [10, 11, 12], [13, 14, 15], [16, 17, 18], ], ] ] * cm y = func(x, *args, **kwargs) assert type(y) is unyt_array assert y.units == cm def test_broadcast_arrays(): x = [1, 2, 3] * cm y = [ 4, ] * g res = np.broadcast_arrays(x, y, subok=True) assert all(type(_) is unyt_array for _ in res) @pytest.mark.parametrize( "func_name, args", [ ("split", (3, 2)), ("dsplit", (3,)), ("hsplit", (2,)), ("vsplit", (1,)), ("array_split", (3,)), pytest.param( "unstack", (), marks=pytest.mark.skipif( NUMPY_VERSION < Version("2.1.0dev0"), reason="np.unstack is new in NumPy 2.1", ), ), ], ) def test_xsplit(func_name, args): func = getattr(np, func_name) x = [ [ [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ], [ [10, 11, 12], [13, 14, 15], [16, 17, 18], ], ] ] * cm y = func(x, *args) assert all(type(_) is unyt_array for _ in y) assert all(_.units == cm for _ in y) @pytest.mark.parametrize( "func, expected_units", [ (np.prod, cm**9), (np.var, cm**2), (np.std, cm), (np.nanprod, cm**9), (np.nansum, cm), (np.nanvar, cm**2), (np.nanstd, cm), (np.trace, cm), ], ) def test_scalar_reducer(func, expected_units): x = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ] * cm y = func(x) assert type(y) is unyt_quantity assert y.units == expected_units @pytest.mark.parametrize("func", [np.prod, np.nanprod]) def test_prod_with_axis(func): x = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ] * cm y = func(x, axis=0) assert type(y) is unyt_array assert y.units == cm**3 @pytest.mark.parametrize( "func", [ np.percentile, np.quantile, np.nanpercentile, np.nanquantile, ], ) def test_percentile(func): x = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ] * cm y = func(x, 1) assert type(y) is unyt_quantity assert y.units == cm @pytest.mark.parametrize( "func", [ np.diag, np.diagflat, np.diagonal, ], ) def test_diagx(func): x = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ] * cm y = func(x) assert type(y) is unyt_array assert y.units == cm @pytest.mark.filterwarnings("ignore:numpy.fix is deprecated:DeprecationWarning") def test_fix(): y = np.fix(1.2 * cm) assert y == 1.0 * cm def test_linalg_matrix_power(): x = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ] * cm y = np.linalg.matrix_power(x, 2) assert type(y) is unyt_array assert y.units == cm**2 def test_linalg_det(): x = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ] * cm y = np.linalg.det(x) assert type(y) is unyt_quantity assert y.units == cm ** (len(x)) def test_linalg_cholesky(): x = np.eye(3) * cm y = np.linalg.cholesky(x) assert type(y) is unyt_array assert y.units == cm def test_linalg_lstsq(): a = np.eye(3) * cm b = np.ones(3).T * g # setting rcond explicitly to avoid a FutureWarning # see https://numpy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html x, residuals, rank, s = np.linalg.lstsq(a, b, rcond=-1) assert type(x) is unyt_array assert x.units == g / cm assert type(residuals) is unyt_array assert residuals.units == g / cm assert type(s) is unyt_array assert s.units == cm def test_linalg_multi_dot(): a = np.eye(3) * cm b = np.eye(3) * g c = np.eye(3) * s res = np.linalg.multi_dot([a, b, c]) assert type(res) is unyt_array assert res.units == cm * g * s def test_linalg_qr(): x = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ] * cm q, r = np.linalg.qr(x) assert type(q) is unyt_array assert q.units == cm assert type(r) is unyt_array assert r.units == cm @pytest.mark.parametrize("func", [np.linalg.solve, np.linalg.tensorsolve]) def test_linalg_solve(func): a = np.eye(3) * cm b = np.ones(3).T * g x = func(a, b) assert type(x) is unyt_array assert x.units == g / cm def is_any_dimless(x) -> bool: return (not hasattr(x, "units")) or x.units.is_dimensionles def test_linalg_cond(): a = np.eye(3) * cm res = np.linalg.cond(a) assert is_any_dimless(res) @pytest.mark.parametrize("func", [np.linalg.eig, np.linalg.eigh]) def test_eig(func): a = np.eye(3) * cm w, v = func(a) assert type(w) is unyt_array assert w.units == cm assert is_any_dimless(v) @pytest.mark.parametrize("func", [np.linalg.eigvals, np.linalg.eigvalsh]) def test_eigvals(func): a = np.eye(3) * cm w = func(a) assert type(w) is unyt_array assert w.units == cm def test_savetxt(tmp_path): a = [1, 2, 3] * cm with pytest.warns( UserWarning, match=re.escape( "numpy.savetxt does not preserve units, " "and will only save the raw numerical data from the unyt_array object.\n" "If this is the intended behaviour, call `numpy.savetxt(file, arr.d)` " "to silence this warning.\n" "If you want to preserve units, use `unyt.savetxt` " "(and `unyt.loadtxt`) instead." ), ): np.savetxt(tmp_path / "savefile.npy", a) # check that doing what the warning says doesn't trigger any other warning np.savetxt(tmp_path / "savefile.npy", a.d) def test_apply_along_axis(): a = np.eye(3) * cm ret = np.apply_along_axis(lambda x: x * cm, 0, a) assert type(ret) is unyt_array assert ret.units == cm**2 @pytest.mark.parametrize("axes, expected_units", [((0, 1), cm**4), ((0,), cm**2)]) def test_apply_over_axes(axes, expected_units): # the user-supplied function must be trusted to treat units # sensibly (mainly that it doesn't give a mix of units across # the resulting array), but we can check that units are # propagated correctly for well-behaved functions. a = np.eye(3) * cm ret = np.apply_over_axes(lambda x, axis: x[axis] ** 2, a, axes) assert isinstance(ret, unyt_array) # could be unyt_quantity assert ret.units == expected_units def test_array_equal(): a = [1, 2, 3] * cm b = [1, 2, 3] * cm c = [1, 2, 3] * km assert np.array_equal(a, b) assert not np.array_equal(a, c) def test_array_equiv(): a = [1, 2, 3] * cm b = [1, 2, 3] * cm c = [1, 2, 3] * km d = [[1, 2, 3]] * cm assert np.array_equiv(a, b) assert np.array_equiv(a, d) assert not np.array_equiv(a, c) def test_common_type(): a = np.array([1, 2, 3], dtype="float32") * cm b = np.array([1, 2, 3], dtype="float64") * cm dtype = np.common_type(a, b) assert dtype == np.dtype("float64") def test_result_type(): scalar = 3 * cm array = np.arange(7, dtype="i1") if NUMPY_VERSION >= Version("2.0.0dev0"): # promotion rules vary under NEP 50. The default behaviour is different # in numpy 2.0 VS numpy 1.x # see https://github.com/numpy/numpy/pull/23912 # see https://numpy.org/neps/nep-0050-scalar-promotion.html expected_dtype = scalar.dtype else: expected_dtype = array.dtype assert np.result_type(scalar, array) == expected_dtype @pytest.mark.parametrize( "func", [ np.diff, np.ediff1d, np.gradient, np.ptp, ], ) @pytest.mark.parametrize("input_units, output_units", [(cm, cm), (K, delta_degC)]) def test_deltas(func, input_units, output_units): x = np.arange(0, 4) * input_units res = func(x) assert isinstance(res, unyt_array) assert res.units == output_units @pytest.mark.parametrize( "func_name", [ "cumsum", "nancumsum", pytest.param( "cumulative_sum", marks=pytest.mark.skipif( NUMPY_VERSION < Version("2.1.0dev0"), reason="np.cumulative_sum is new in NumPy 2.1", ), ), ], ) def test_cumsum(func_name): a = [1, 2, 3] * cm func = getattr(np, func_name) res = func(a) assert type(res) is unyt_array assert res.units == cm @pytest.mark.parametrize( "func_name", [ "cumprod", "nancumprod", pytest.param( "cumulative_prod", marks=pytest.mark.skipif( NUMPY_VERSION < Version("2.1.0dev0"), reason="np.cumulative_prod is new in NumPy 2.1", ), ), ], ) def test_cumprod(func_name): a = [1, 2, 3] * cm func = getattr(np, func_name) with pytest.raises( UnytError, match=re.escape( r"numpy.cumprod (and other cumulative product function) cannot be used " r"with a unyt_array as all return elements should (but cannot) " r"have different units." ), ): func(a) def test_bincount(): a = [1, 2, 3] * cm res = np.bincount(a) assert type(res) is np.ndarray def test_unique(): a = [1, 2, 3] * cm res = np.unique(a) assert type(res) is unyt_array assert res.units == cm @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="unique_all is new in numpy 2.0" ) def test_unique_all(): q = np.arange(9).reshape(3, 3) * cm values, indices, inverse_indices, counts = np.unique( q, return_index=True, return_inverse=True, return_counts=True, equal_nan=False, ) res = np.unique_all(q) assert len(res) == 4 assert_array_equal_units(res.values, values) assert_array_equal_units(res.indices, indices) assert_array_equal_units(res.inverse_indices, inverse_indices) assert_array_equal_units(res.counts, counts) @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="unique_counts is new in numpy 2.0" ) def test_unique_counts(): q = np.arange(9).reshape(3, 3) * cm values, counts = np.unique( q, return_counts=True, equal_nan=False, ) res = np.unique_counts(q) assert len(res) == 2 assert_array_equal_units(res.values, values) assert_array_equal_units(res.counts, counts) @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="unique_inverse is new in numpy 2.0" ) def test_unique_inverse(): q = np.arange(9).reshape(3, 3) * cm values, inverse_indices = np.unique( q, return_inverse=True, equal_nan=False, ) res = np.unique_inverse(q) assert len(res) == 2 assert_array_equal_units(res.values, values) assert_array_equal_units(res.inverse_indices, inverse_indices) @pytest.mark.skipif( NUMPY_VERSION < Version("2.0.0dev0"), reason="unique_values is new in numpy 2.0" ) def test_unique_values(): q = np.arange(9).reshape(3, 3) * cm values = np.unique(q, equal_nan=False) res = np.unique_values(q) # np.unique_values' output is not guaranteed to be sorted, # so exact results may differ. # see https://github.com/numpy/numpy/issues/28493#issuecomment-2721303048 res.sort() assert_array_equal_units(res, values) @pytest.mark.parametrize("indices", [[0, 1], 0]) def test_take(indices): a = [1, 2, 3] * cm res = np.take(a, indices) if res.ndim == 0: assert type(res) is unyt_quantity else: assert type(res) is unyt_array assert res.units == cm @pytest.mark.parametrize("indices", [[0, 1], 0]) def test_ndarray_take(indices): a = [1, 2, 3] * cm res = a.take(indices) if res.ndim == 0: assert type(res) is unyt_quantity else: assert type(res) is unyt_array assert res.units == cm def test_pad(): a = [1, 2, 3] * cm res = np.pad(a, [0, 1]) assert type(res) is unyt_array assert res.units == cm def test_sinc(): a = [1, 2, 3] * cm res = np.sinc(a) # we *want* this one to ignore units assert type(res) is np.ndarray def test_choose_mixed_units(): choices = [[1, 2, 3] * cm, [4, 5, 6] * km] with pytest.raises(UnitInconsistencyError): np.choose([1, 0, 1], choices=choices) def test_choose(): choices = [[1, 2, 3] * cm, [4, 5, 6] * cm] res = np.choose([1, 0, 1], choices=choices) assert type(res) is unyt_array assert res.units == cm def test_extract(): a = [1, 2, 3] * cm res = np.extract(a > 1 * cm, a) assert type(res) is unyt_array assert res.units == cm def test_fill_diagonal_mixed_units(): a = np.zeros(9).reshape((3, 3)) * cm with pytest.raises(UnitInconsistencyError): np.fill_diagonal(a, 1 * km) @pytest.mark.parametrize("val", [1 * cm, 1]) def test_fill_diagonal(val): a = np.zeros(9).reshape((3, 3)) * cm np.fill_diagonal(a, val) assert type(a) is unyt_array assert a.units == cm def test_insert_mixed_units(): a = [1, 2, 3] * cm with pytest.raises(UnitInconsistencyError): np.insert(a, 1, 42 * km) @pytest.mark.parametrize("val", [42, 42 * cm]) def test_insert(val): a = [1, 2, 3] * cm res = np.insert(a, 1, val) assert type(res) is unyt_array assert res.units == cm def test_isin_mixed_units(): a = [1, 2, 3] * cm with pytest.raises(UnitInconsistencyError): np.isin(1, a) def test_isin(): a = [1, 2, 3] * cm assert np.isin(1 * cm, a) @pytest.mark.skipif( NUMPY_VERSION >= Version("2.4.0.dev0"), reason="in1d is removed in numpy 2.4" ) @pytest.mark.filterwarnings("ignore:`in1d` is deprecated. Use `np.isin` instead.") def test_in1d_mixed_units(): a = [1, 2, 3] * cm with pytest.raises(UnitInconsistencyError): np.in1d([1, 2], a) # noqa: NPY201 @pytest.mark.skipif( NUMPY_VERSION >= Version("2.4.0.dev0"), reason="in1d is removed in numpy 2.4" ) @pytest.mark.filterwarnings("ignore:`in1d` is deprecated. Use `np.isin` instead.") def test_in1d(): a = [1, 2, 3] * cm b = [1, 2] * cm assert np.all(np.in1d(b, a)) # noqa: NPY201 def test_place_mixed_units(): arr = np.arange(6).reshape(2, 3) * cm with pytest.raises(UnitInconsistencyError): np.place(arr, arr > 2, [44, 55]) def test_place(): arr = np.arange(6).reshape(2, 3) * cm np.place(arr, arr > 2, [44, 55] * cm) assert type(arr) is unyt_array assert arr.units == cm def test_put_mixed_units(): arr = np.arange(6).reshape(2, 3) * cm with pytest.raises(UnitInconsistencyError): np.put(arr, [1, 2], [44, 55]) def test_put(): arr = np.arange(6).reshape(2, 3) * cm np.put(arr, [1, 2], [44, 55] * cm) assert type(arr) is unyt_array assert arr.units == cm def test_put_along_axis_mixed_units(): arr = np.arange(6).reshape(2, 3) * cm with pytest.raises(UnitInconsistencyError): np.put_along_axis(arr, np.array([[1, 2], [0, 1]]), [44, 55], 1) def test_put_along_axis(): arr = np.arange(6).reshape(2, 3) * cm np.put_along_axis(arr, np.array([[1, 2], [0, 1]]), [44, 55] * cm, 1) assert type(arr) is unyt_array assert arr.units == cm def test_putmask_mixed_units(): arr = np.arange(6, dtype=np.int_).reshape(2, 3) * cm with pytest.raises(UnitInconsistencyError): np.putmask(arr, arr > 2 * cm, np.zeros_like(arr.d)) def test_putmask(): arr = np.arange(6, dtype=np.int_).reshape(2, 3) * cm np.putmask(arr, arr > 2 * cm, np.zeros_like(arr)) assert type(arr) is unyt_array assert arr.units == cm def test_searchsorted_mixed_units(): with pytest.raises(UnitInconsistencyError): np.searchsorted([1, 2, 3, 4, 5] * cm, 3 * km) @pytest.mark.parametrize("val", [3 * cm, 3]) def test_searchsorted(val): res = np.searchsorted([1, 2, 3, 4, 5] * cm, val) assert res == 2 def test_digitize_converts_bins(): # bins in different (but compatible) units must be converted to the data's # units before binning: 1, 2, 3 cm are all far below 1 km, so they all land # in the first bin (see #633) res = np.digitize([1, 2, 3] * cm, [0, 1, 2, 3] * km) assert_array_equal_units(res, np.array([1, 1, 1])) def test_digitize_right(): res = np.digitize([1, 2, 3] * cm, [0, 1, 2, 3] * km, right=True) assert_array_equal_units(res, np.array([1, 1, 1])) def test_digitize_dimensionless_plain_bins(): # a dimensionless array with plain (unit-less) bins must still work res = np.digitize([1, 2, 3] * dimensionless, [0, 1, 2, 3]) assert_array_equal_units(res, np.array([2, 3, 4])) def test_digitize_mixed_units(): with pytest.raises(UnitConversionError): np.digitize([1, 2, 3] * g, [0, 1, 2, 3] * s) @pytest.mark.parametrize( "choicelist_gen, default", [ ([lambda x: x**3, lambda x: x**2], 34 * cm), # invalid choicelist ([lambda x: x, lambda x: x + 3 * x.units], 34), # invalid default ], ) def test_select_mixed_units(choicelist_gen, default): a = [1, 2, 3, 4, 5, 6] * cm with pytest.raises(UnitInconsistencyError): np.select( [a > 3 * cm, a < 3 * cm], [f(a) for f in choicelist_gen], default=default ) def test_select(): a = [1, 2, 3, 4, 5, 6] * cm res = np.select([a > 3 * cm, a < 3 * cm], [a, a + 3 * cm], default=34 * cm) assert_array_equal_units(res, [4, 5, 34, 4, 5, 6] * cm) def test_setdiff1d_mixed_units(): a = [1, 2, 3] * cm b = [0, 1, 2] with pytest.raises(UnitInconsistencyError): np.setdiff1d(a, b) def test_setdiff1d(): a = [1, 2, 3] * cm b = [0, 1, 2] * cm res = np.setdiff1d(a, b) assert_array_equal_units(res, [3] * cm) def test_setxor1d_mixed_units(): a = [1, 2, 3] * cm b = [0, 1, 2] with pytest.raises(UnitInconsistencyError): np.setxor1d(a, b) def test_setxor1d(): a = [1, 2, 3] * cm b = [0, 1, 2] * cm res = np.setxor1d(a, b) assert_array_equal_units(res, [0, 3] * cm) def test_clip_mixed_units(): a = [1, 2, 3, 4, 5, 6] * cm with pytest.raises(UnitInconsistencyError): np.clip(a, 3 * cm, 4) @pytest.mark.parametrize("vmin,vmax", [(3 * cm, 4 * cm), (3, 4)]) def test_clip(vmin, vmax): a = [1, 2, 3, 4, 5, 6] * cm res = np.clip(a, vmin, vmax) assert_array_equal_units(res, [3, 3, 3, 4, 4, 4] * cm) def test_where_mixed_units(): x = [-1, 2, -3] * cm y = [0, 0, 0] with pytest.raises(UnitInconsistencyError): np.where(x > y, x, y) def test_where_single_arg(): x = [0, 2, -1, 0, 1] * cm res = np.where(x) assert isinstance(res, tuple) assert len(res) == 1 assert type(res[0]) is np.ndarray np.testing.assert_array_equal(res[0], [1, 2, 4]) def test_where_xy(): x = [-1, 2, -3] * cm y = [0, 0, 0] * cm res = np.where(x > y, x, y) assert type(res) is unyt_array assert res.units == cm @pytest.mark.parametrize( "func", [ np.imag, np.real, np.real_if_close, ], ) def test_complex_reductions(func): a = [1 + 1j for _ in range(3)] * A res = func(a) assert type(res) is unyt_array assert res.units == A @pytest.mark.parametrize( "func", [np.tril, np.triu], ) def test_triangles(func): a = np.eye(4) * cm res = func(a) assert type(res) is unyt_array assert res.units == cm def test_einsum(): a = np.eye(4) * cm # extract diagonal res = np.einsum("ii->i", a) assert type(res) is unyt_array assert res.units == cm # sum diagonal elements, the result should be a scalar res = np.einsum("ii", a) assert type(res) is unyt_quantity assert res.units == cm def test_convolve(): a = [1, 2, 3] * cm v = [4, 5, 6] * s res = np.convolve(a, v) assert type(res) is unyt_array assert res.units == cm * s def test_correlate(): a = [1, 2, 3] * cm v = [4, 5, 6] * s res = np.correlate(a, v) assert type(res) is unyt_array assert res.units == cm * s def test_tensordot(): a = np.arange(60.0).reshape(3, 4, 5) * cm b = np.arange(24.0).reshape(4, 3, 2) * s res = np.tensordot(a, b, axes=([1, 0], [0, 1])) assert type(res) is unyt_array assert res.units == cm * s def test_compress(): a = [1, 2, 3] * cm res = np.compress(a > 1, a) assert type(res) is unyt_array assert res.units == cm np.compress(a > 1, a, out=res) assert type(res) is unyt_array assert res.units == cm np.compress(a > 1, a, out=res.view(np.ndarray)) assert type(res) is unyt_array assert res.units == cm def test_take_along_axis(): a = np.array([[10, 30, 20], [60, 40, 50]]) * cm ai = np.argsort(a, axis=1) res = np.take_along_axis(a, ai, axis=1) assert type(res) is unyt_array assert res.units == cm def test_unwrap(): phase = np.linspace(0, np.pi, num=5) * rad phase[3:] += np.pi * rad res = np.unwrap(phase) assert type(res) is unyt_array assert res.units == rad def test_interp(): _x = np.array([1.1, 2.2, 3.3]) _xp = np.array([1, 2, 3]) _fp = np.array([4, 8, 12]) # any of the three input array-like might be unitful # let's test all relevant combinations # return type should match fp's with pytest.raises(UnitInconsistencyError): np.interp(_x * cm, _xp, _fp) with pytest.raises(UnitInconsistencyError): res = np.interp(_x, _xp * cm, _fp) res = np.interp(_x * cm, _xp * cm, _fp) assert type(res) is np.ndarray res = np.interp(_x, _xp, _fp * K) assert type(res) is unyt_array assert res.units == K res = np.interp(_x * cm, _xp * cm, _fp * K) assert type(res) is unyt_array assert res.units == K @pytest.mark.parametrize( "target, helper", sorted( HANDLED_FUNCTIONS.items(), key=lambda items: items[0].__name__, ), ids=lambda func: func.__name__, ) class TestFunctionHelpersSignatureCompatibility: """ Check that a helper function's signature is *at least* as flexible as the helped (target) function's. E.g., any argument that is allowed positionally, or as keyword, by the target must be re-exposed *somehow* by the helper. We explicitly allow helper's signature to be *more* flexible than the target signature by allowing *args and **kwargs catch-all arguments, which we use to limit code duplication, and also help with forward and backward compatibility. See https://github.com/astropy/astropy/issues/15703 """ # this test class is adapted from astropy.units @staticmethod def have_catchall_argument(parameters, kind) -> bool: return any(p.kind is kind for p in parameters.values()) @staticmethod def get_param_group(parameters, kinds: list) -> list[str]: return [name for name, p in parameters.items() if p.kind in kinds] def test_all_arguments_reexposed(self, target, helper): try: sig_target = inspect.signature(target) except ValueError: pytest.skip("Non Python function cannot be inspected at runtime") params_target = sig_target.parameters sig_helper = inspect.signature(helper) params_helper = sig_helper.parameters have_args_helper = self.have_catchall_argument(params_helper, VAR_POSITIONAL) have_kwargs_helper = self.have_catchall_argument(params_helper, VAR_KEYWORD) args_helper = list(params_helper.items()) pos_helper = 0 for nt, pt in params_target.items(): kt = pt.kind if kt in (POSITIONAL_ONLY, POSITIONAL_OR_KEYWORD): assert pos_helper < len(args_helper), ( "helper's signature is too short; " "some arguments are not properly re-exposed" ) nh, ph = args_helper[pos_helper] if (kh := ph.kind) is not VAR_POSITIONAL: assert nh == nt, f"argument {nt!r} isn't re-exposed as positional" assert kh is kt, ( f"helper is not re-exposing argument {nt!r} properly: " f"expected {kt}, got {kh}" ) pos_helper += 1 continue if kt in (KEYWORD_ONLY, POSITIONAL_OR_KEYWORD): if nt in params_helper: kh = params_helper[nt].kind assert kh is kt, ( f"helper is not re-exposing argument {nt!r} properly: " f"expected {kt}, got {kh}" ) elif kt is KEYWORD_ONLY: assert have_kwargs_helper, ( f"argument {nt!r} is not re-exposed as keyword" ) elif kt is POSITIONAL_OR_KEYWORD: assert have_args_helper and have_kwargs_helper, ( f"argument {nt!r} is not re-exposed as positional-or-keyword" ) elif kt is VAR_POSITIONAL: assert have_args_helper, "helper is missing a catch-all *args argument" elif kt is VAR_KEYWORD: assert have_kwargs_helper, ( "helper is missing a catch-all **kwargs argument" ) def test_known_arguments(self, target, helper): # validate that all exposed arguments map to something in the target try: sig_target = inspect.signature(target) except ValueError: pytest.skip("Non Python function cannot be inspected at runtime") params_target = sig_target.parameters sig_helper = inspect.signature(helper) params_helper = sig_helper.parameters for kind in (POSITIONAL_ONLY, POSITIONAL_OR_KEYWORD): args_target = self.get_param_group(params_helper, [kind]) args_helper = self.get_param_group(params_helper, [kind]) if (nhelper := len(args_helper)) > ( ntarget := len(args_target) ): # pragma: no cover unknown: list[str] = args_helper[ntarget:] raise AssertionError( f"Found unknown {kind} parameter(s) " "in helper's signature: " f"{unknown}, at position(s) {list(range(ntarget, nhelper))}" ) # keyword-allowed keyword_allowed_target = set( self.get_param_group(params_target, [KEYWORD_ONLY, POSITIONAL_OR_KEYWORD]) ) keyword_allowed_helper = set( self.get_param_group(params_helper, [KEYWORD_ONLY, POSITIONAL_OR_KEYWORD]) ) # additional private keyword-only argument are allowed because # they are only intended for testing purposes. # For instance, quantile has such a parameter '_q_unit' keyword_allowed_helper = { name for name in keyword_allowed_helper if not name.startswith("_") } diff = keyword_allowed_helper - keyword_allowed_target assert not diff, ( "Found some keyword-allowed parameters in helper " f"that are unknown to target: {diff}" ) # finally, check that default values are correctly replicated for name, ph in params_helper.items(): if name not in params_target: # In a few cases, the helper defines names that are not in # the target (e.g., a private name like _q_unit in quantile, # or a *args, **kwargs that captures further arguments # that do not matter. We let such cases slip by. continue pt = params_target[name] assert ph.default == pt.default, ( f"Default value mismatch for argument {name!r}. " f"Helper has {ph.default!r}, target has {pt.default!r}" ) def test_squeeze_array(): """Check that squeeze returns the correct type for the shape of the result.""" arr = np.ones((3, 1)) * cm arr_squeezed = np.squeeze(arr) assert arr_squeezed.ndim > 0 assert type(arr_squeezed) is unyt_array def test_squeeze_scalar(): """Check that squeeze returns the correct type for the shape of the result.""" arr = np.ones(1) * cm arr_squeezed = np.squeeze(arr) assert arr_squeezed.ndim == 0 assert type(arr_squeezed) is unyt_quantity def test_squeeze_with_axis(): """Check that squeeze obeys axis kwarg.""" arr = np.ones((1, 1)) * cm squeeze_axis = (1,) arr_squeezed = np.squeeze(arr, axis=1) assert arr_squeezed.ndim == arr.ndim - len(squeeze_axis) unyt-3.2.0/unyt/tests/test_dask_arrays.py000066400000000000000000000310041526544257300206030ustar00rootroot00000000000000import pickle from collections import defaultdict import numpy as np import pytest from numpy.testing import assert_array_equal from unyt import unyt_array, unyt_quantity from unyt._array_functions import _UNSUPPORTED_FUNCTIONS from unyt._on_demand_imports import _dask as dask if not dask.__is_available__: pytest.skip("dask isn't installed", allow_module_level=True) from unyt.dask_array import ( _create_with_quantity, _use_unary_decorator, reduce_with_units, unyt_dask_array, unyt_from_dask, ) from unyt.exceptions import UnitOperationError from unyt.unit_symbols import cm, g, m def test_unyt_dask_creation(): x = dask.array.ones((10, 10), chunks=(2, 2)) x_da = unyt_from_dask(x, m) assert type(x_da) is unyt_dask_array assert x_da.units == m assert type(x_da.compute()) is unyt_array x_da = _create_with_quantity(x, unyt_quantity(1, m)) assert type(x_da) is unyt_dask_array assert x_da.units == m assert type(x_da.compute()) is unyt_array x_dask = x_da.to_dask() assert_array_equal(x.compute(), x_dask.compute()) def test_unyt_dask_slice(): # tests __getitem__ x = dask.array.ones((10, 10), chunks=(2, 2)) x_da = unyt_from_dask(x, m) slc = x_da[:, 0] assert slc.units == m assert slc.compute().units == m assert type(slc.compute()) is unyt_array def test_unyt_set(): # tests __setitem__ x = dask.array.ones((10, 10), chunks=(2, 2)) x_da = unyt_from_dask(x, m) x_da[:, 0] = 3.0 assert (x_da[:, 0].compute() == 3.0).sum() == 10 def test_unit_conversions(): x = dask.array.ones((10, 10), chunks=(2, 2)) x_da = unyt_from_dask(x, m) x_da = x_da.to(cm) assert type(x_da) is unyt_dask_array assert x_da.units == cm assert x_da.compute().units == cm assert x_da[0, 0].compute().value == 100 x_da_2 = unyt_from_dask(x, m) result = x_da + x_da_2 assert type(result) is unyt_dask_array assert result.units == m assert result.compute().units == m x_da_2 = unyt_from_dask(x, "g") with pytest.raises(UnitOperationError): x_da + x_da_2 def test_conversion_to_dask(): x = dask.array.ones((10, 10), chunks=(2, 2)) x_da = unyt_from_dask(x, m) x_again = x_da.to_dask() assert_array_equal(x.compute(), x_again.compute()) assert type(x_again) is type(x) result = np.isfinite(x_da) # should return plain dask array assert type(result) is dask.array.core.Array def unary_test(the_func, unyt_dask_obj, unyt_array_in, *args, **kwargs): # the_func can be a numpy ufunc or dask.array numpy ufunc implementation result_delay = the_func(unyt_dask_obj, *args, **kwargs) correct_unyt = the_func(unyt_array_in, *args, **kwargs) assert result_delay.units == correct_unyt.units # units should already match unary_result_test(result_delay, correct_unyt) def unary_result_test(dask_unyt_delayed, correct_unyt): # computes a delayed dask_unyt_array and compares resulting units and values result = dask_unyt_delayed.compute() assert result.units == correct_unyt.units assert type(result) is type(correct_unyt) # value comparison: if type(result) is unyt_array: assert_array_equal(result, correct_unyt) else: assert result == correct_unyt def test_unary(): x = dask.array.ones((10, 10), chunks=(2, 2)) x_da = unyt_from_dask(x, m) x_unyt = unyt_array(np.ones((10, 10)), m) for unary_op in [np.sqrt, dask.array.sqrt]: unary_test(unary_op, x_da, x_unyt) # some of the daskified ufunc attributes need to be called directly unary_result_test(x_da.sum(), x_unyt.sum()) unary_result_test(x_da.min(), x_unyt.min()) unary_result_test(x_da.max(), x_unyt.max()) unary_result_test(x_da.mean(), x_unyt.mean()) unary_result_test(x_da.std(), x_unyt.std()) unary_result_test(x_da.cumsum(0), x_unyt.cumsum(0)) unary_result_test(abs(x_da), abs(x_unyt)) # __abs__ @pytest.mark.parametrize( "logical_op", ["__lt__", "__le__", "__gt__", "__ge__", "__eq__", "__ne__"] ) @pytest.mark.parametrize("other", [None, unyt_quantity(2, m)]) def test_logical(logical_op, other): def check_operator(arg1, arg2): # comparisons should return plain dask arrays func = getattr(arg1, logical_op) result = func(arg2) assert type(result) is dask.array.Array x = dask.array.ones((10, 10), chunks=(2, 2)) x_da = unyt_from_dask(x, m) if other is None: other = 2 * x_da # test another unyt-dask array check_operator(x_da, other) check_operator(other, x_da) def test_binary(): x = dask.array.ones((10, 10), chunks=(2, 2)) x2 = dask.array.full((10, 10), 2, chunks=(2, 2)) x_da = unyt_from_dask(x, m) x_da_2 = unyt_from_dask(x2, g) # multiplications result = x_da * x_da_2 assert result.units == m * g result = x_da_2 * x_da assert result.units == m * g result = x_da_2 * 2 assert result.units == g result = 2 * x_da_2 assert result.units == g result = x_da_2 * unyt_quantity(2, "m") assert result.units == m * g result = unyt_quantity(2, "m") * x_da_2 assert result.units == m * g # divisions result = x_da_2 / x_da assert result.units == g / m result = x_da / x_da_2 assert result.units == m / g result = x_da_2 / 2 assert result.units == g result = 2 / x_da_2 # __rtruediv__ assert result.units == g**-1 result = x_da_2 / unyt_quantity(2, "m") assert result.units == g / m result = unyt_quantity(2, "m") / x_da_2 assert result.units == m / g result = x_da**2 assert result.units == m * m def test_addition(): x = dask.array.ones((10, 10), chunks=(2, 2)) x2 = dask.array.full((10, 10), 2, chunks=(2, 2)) x_da = unyt_from_dask(x, m) # two unyt_dask_array objects, any order, any units with same dimension x_da_2 = unyt_from_dask(x2, m) result = x_da + x_da_2 assert result.units == m result = x_da_2 + x_da assert result.units == m x_da_3 = unyt_from_dask(x2, "cm") result = x_da + x_da_3 assert result.units == m result = x_da_3 + x_da assert result.units == m # one unyt_dask_array, one unyt_quantity, any order, any units with same dim result = x_da + unyt_quantity(1, "m") assert result.units == m result = unyt_quantity(1, "m") + x_da assert result.units == m result = unyt_quantity(100, "cm") + x_da # test same dimensions assert result.units == m assert result.max().compute() == unyt_quantity(2, "m") result = x_da + unyt_quantity(100, "cm") # test same dimensions assert result.units == m assert result.max().compute() == unyt_quantity(200, "cm") def test_subtraction(): x = dask.array.ones((10, 10), chunks=(2, 2)) x2 = dask.array.full((10, 10), 2, chunks=(2, 2)) x_da = unyt_from_dask(x, m) # two unyt_dask_array objects, any order, any units with same dimension x_da_2 = unyt_from_dask(x2, m) result = x_da - x_da_2 assert result.units == m result = x_da_2 - x_da assert result.units == m x_da_3 = unyt_from_dask(x2, "cm") result = x_da - x_da_3 assert result.units == m result = x_da_3 - x_da assert result.units == m # one unyt_dask_array, one unyt_quantity, any order, any units with same dim result = x_da - unyt_quantity(1, "m") assert result.units == m result = unyt_quantity(1, "m") - x_da assert result.units == m result = unyt_quantity(100, "cm") - x_da # test same dimensions assert result.units == m assert result.max().compute() == unyt_quantity(0, "m") result = x_da - unyt_quantity(100, "cm") # test same dimensions assert result.units == m assert result.max().compute() == unyt_quantity(0, "cm") def test_unyt_type_result(): # test that the return type of a compute is unyt_array or unyt_quantity when # appropriate x = dask.array.ones((10, 10), chunks=(2, 2)) x_da = unyt_from_dask(x, m) x_unyt = unyt_array(np.ones((10, 10)), m) result = x_da.compute() assert type(result) is unyt_array assert_array_equal(result, x_unyt) result = x_da.min().compute() assert type(result) is unyt_quantity assert result == unyt_quantity(1, m) _func_args = defaultdict(lambda: ()) _func_args["reshape"] = ((100, 1),) _func_args["rechunk"] = ((5, 5),) _func_args["cumsum"] = (0,) _func_args["clip"] = (0, 2) _func_args["swapaxes"] = (0, 1) _func_args["repeat"] = (1, 0) _func_args["astype"] = (int,) _func_args["topk"] = (1,) @pytest.mark.parametrize( ("da_func", "args"), [(f, _func_args[f]) for f in _use_unary_decorator] ) def test_dask_passthroughs(da_func, args): # tests the array class functions that do not modify units x = dask.array.ones((10, 10), chunks=(2, 2)) x_da = unyt_from_dask(x, m) assert getattr(x_da, da_func)(*args).units == m def test_repr(): x = dask.array.ones((10, 10), chunks=(2, 2)) x_da = unyt_from_dask(x, m) assert "unyt_dask_array" in x_da.__repr__() table_str = x_da._repr_html_() assert "Units" in table_str @pytest.mark.parametrize( ("dask_func_str", "actual", "axis", "check_nan"), [ ("mean", unyt_quantity(1.0, "m"), None, True), ("min", unyt_quantity(1.0, "m"), None, True), ("max", unyt_quantity(1.0, "m"), None, True), ("std", unyt_quantity(0.0, "m"), None, True), ( "median", unyt_quantity(1.0, "m"), 1, True, ), # median requires an axis for dask ("var", unyt_quantity(0.0, "m**2"), None, True), ("sum", unyt_quantity(100.0, "m"), None, True), ( "cumsum", unyt_array(np.ones((10, 10)), "m").cumsum(axis=1), 1, True, ), ("average", unyt_quantity(1.0, "m"), None, False), ("diagonal", unyt_array(np.ones((10,)), "m"), None, False), ("unique", unyt_array([1.0], "m"), None, False), ], ) def test_dask_array_reductions(dask_func_str, actual, axis, check_nan): extra_kwargs = {} if axis is not None: extra_kwargs["axis"] = axis func_strs = [ dask_func_str, ] if check_nan: func_strs.append("nan" + dask_func_str) for func_str in func_strs: dask_func = getattr(dask.array, func_str) x_da = unyt_from_dask(dask.array.ones((10, 10), chunks=(2, 2)), m) result = reduce_with_units(dask_func, x_da, **extra_kwargs).compute() assert_array_equal(result, actual) def test_bad_dask_array_reductions(): x_da = unyt_from_dask(dask.array.ones((10, 10), chunks=(2, 2)), m) with pytest.raises( ValueError, match="could not deduce np equivalent of dask reduction" ): reduce_with_units(lambda: None, x_da).compute() def test_prod(): x_da = unyt_from_dask(dask.array.ones((10, 10), chunks=(2, 2)), m) assert x_da.prod().units == m**100 def test_pickle(): x_da = unyt_from_dask(dask.array.ones((10, 10), chunks=(2, 2)), m) x_da2 = pickle.loads(pickle.dumps(x_da)) assert_array_equal(x_da, x_da2) assert x_da.units == x_da2.units def test_np_array_funcs(): # test some numpy array functions to catch __array_function__ x_da = unyt_from_dask(dask.array.ones((10, 10), chunks=(2, 2)), m) actual = np.sum(x_da).compute() assert actual == unyt_quantity(100, m) plain_dask = dask.array.arange(100, chunks=(20,)) x_da = unyt_from_dask(plain_dask, m) actual = np.mean(x_da).compute() expected = unyt_quantity(np.mean(plain_dask).compute(), m) assert actual == expected actual = np.std(x_da[x_da > 10.0]).compute() expected = unyt_quantity(np.std(plain_dask[plain_dask > 10]).compute(), m) assert actual == expected actual = np.max(np.power(x_da, 2)).compute() expected = unyt_quantity(np.max(np.power(plain_dask, 2)).compute(), m * m) assert actual == expected def test_unsupported_ufunc_returns_notimplemented(): # a user-defined ufunc is guaranteed not to be in unyt_array._ufunc_registry ufunc = np.frompyfunc(lambda x: x, 1, 1) x_da = unyt_from_dask(dask.array.ones((10, 10), chunks=(2, 2)), m) assert x_da.__array_ufunc__(ufunc, "__call__", x_da) is NotImplemented with pytest.raises(TypeError, match="all returned NotImplemented"): ufunc(x_da) def test_unsupported_array_function_returns_notimplemented(): x_da = unyt_from_dask(dask.array.ones((10, 10), chunks=(2, 2)), m) types = (unyt_dask_array,) for func in _UNSUPPORTED_FUNCTIONS: assert x_da.__array_function__(func, types, (x_da,), {}) is NotImplemented with pytest.raises(TypeError, match="no implementation found"): np.packbits(x_da) unyt-3.2.0/unyt/tests/test_define_unit.py000066400000000000000000000023331526544257300205740ustar00rootroot00000000000000import pytest from unyt.array import unyt_quantity from unyt.unit_object import define_unit from unyt.unit_registry import UnitRegistry def test_define_unit(): define_unit("kph", (1.0, "km/hr")) a = unyt_quantity(2.0, "kph") b = unyt_quantity(1.0, "km") c = unyt_quantity(1.0, "hr") assert a == 2.0 * b / c d = unyt_quantity(1000.0, "cm**3") define_unit("Baz", d, prefixable=True) e = unyt_quantity(1.0, "mBaz") f = unyt_quantity(1.0, "cm**3") assert e == f define_unit("Foo", (1.0, "V/sqrt(s)")) g = unyt_quantity(1.0, "Foo") volt = unyt_quantity(1.0, "V") second = unyt_quantity(1.0, "s") assert g == volt / second ** (0.5) # Test custom registry reg = UnitRegistry() define_unit("Foo", (1, "m"), registry=reg) define_unit("Baz", (1, "Foo**2"), registry=reg) h = unyt_quantity(1, "Baz", registry=reg) i = unyt_quantity(1, "m**2", registry=reg) assert h == i def test_define_unit_error(): from unyt import define_unit with pytest.raises(RuntimeError): define_unit("foobar", "baz") with pytest.raises(RuntimeError): define_unit("foobar", 12) with pytest.raises(RuntimeError): define_unit("C", (1.0, "A*s")) unyt-3.2.0/unyt/tests/test_mpl_interface.py000066400000000000000000000162361526544257300211220ustar00rootroot00000000000000"""Test Matplotlib ConversionInterface""" import numpy as np import pytest from unyt import K, m, matplotlib_support, s, unyt_array, unyt_quantity from unyt._on_demand_imports import NotAModule, _matplotlib try: from unyt._mpl_array_converter import unyt_arrayConverter except ImportError: pass check_matplotlib = pytest.mark.skipif( isinstance(_matplotlib.pyplot, NotAModule), reason="matplotlib not installed" ) @pytest.fixture def ax(): _matplotlib.use("agg") matplotlib_support.enable() matplotlib_support.label_style = "()" fig, ax = _matplotlib.pyplot.subplots() yield ax _matplotlib.pyplot.close() matplotlib_support.disable() @check_matplotlib def test_label(ax): x = [0, 1, 2] * s y = [3, 4, 5] * K matplotlib_support.label_style = "()" ax.plot(x, y) expected_xlabel = "$\\left(\\rm{s}\\right)$" assert ax.xaxis.get_label().get_text() == expected_xlabel expected_ylabel = "$\\left(\\rm{K}\\right)$" assert ax.yaxis.get_label().get_text() == expected_ylabel _matplotlib.pyplot.close() @check_matplotlib def test_convert_unit(ax): x = [0, 1, 2] * s y = [1000, 2000, 3000] * K ax.plot(x, y, yunits="Celsius") expected = y.to("Celsius") line = ax.lines[0] original_y_array = line.get_data()[1] converted_y_array = line.convert_yunits(original_y_array) results = converted_y_array == expected assert results.all() @check_matplotlib def test_convert_equivalency(ax): x = [0, 1, 2] * s y = [1000, 2000, 3000] * K ax.clear() ax.plot(x, y, yunits=("J", "thermal")) expected = y.to("J", "thermal") line = ax.lines[0] original_y_array = line.get_data()[1] converted_y_array = line.convert_yunits(original_y_array) results = converted_y_array == expected assert results.all() @check_matplotlib def test_dimensionless(ax): x = [0, 1, 2] * s y = [3, 4, 5] * K / K ax.plot(x, y) expected_ylabel = "" assert ax.yaxis.get_label().get_text() == expected_ylabel @check_matplotlib def test_conversionerror(ax): x = [0, 1, 2] * s y = [3, 4, 5] * K ax.plot(x, y) ax.xaxis.callbacks.exception_handler = None with pytest.raises(_matplotlib.units.ConversionError): ax.xaxis.set_units("V") @check_matplotlib def test_ndarray_label(ax): x = [0, 1, 2] * s y = np.arange(3, 6) matplotlib_support.label_style = "()" ax.plot(x, y) expected_xlabel = "$\\left(\\rm{s}\\right)$" assert ax.xaxis.get_label().get_text() == expected_xlabel expected_ylabel = "" assert ax.yaxis.get_label().get_text() == expected_ylabel @check_matplotlib def test_list_label(ax): x = [0, 1, 2] * s y = [3, 4, 5] matplotlib_support.label_style = "()" ax.plot(x, y) expected_xlabel = "$\\left(\\rm{s}\\right)$" assert ax.xaxis.get_label().get_text() == expected_xlabel expected_ylabel = "" assert ax.yaxis.get_label().get_text() == expected_ylabel @check_matplotlib def test_errorbar(ax): x = unyt_array([8, 9, 10], "cm") y = unyt_array([8, 9, 10], "kg") y_scatter = [unyt_array([0.1, 0.2, 0.3], "kg"), unyt_array([0.1, 0.2, 0.3], "kg")] x_lims = (unyt_quantity(5, "cm"), unyt_quantity(12, "cm")) y_lims = (unyt_quantity(5, "kg"), unyt_quantity(12, "kg")) ax.errorbar(x, y, yerr=y_scatter) x_lims = (unyt_quantity(5, "cm"), unyt_quantity(12, "cm")) y_lims = (unyt_quantity(5, "kg"), unyt_quantity(12, "kg")) ax.set_xlim(*x_lims) ax.set_ylim(*y_lims) @check_matplotlib def test_hist2d(ax): rng = np.random.default_rng() x = rng.normal(size=50000) * s y = 3 * x + rng.normal(size=50000) * s ax.hist2d(x, y, bins=(50, 50)) @check_matplotlib def test_imshow(ax): rng = np.random.default_rng() data = np.reshape(rng.normal(size=10000), (100, 100)) ax.imshow(data, vmin=data.min(), vmax=data.max()) @check_matplotlib def test_hist(ax): rng = np.random.default_rng() data = rng.normal(size=10000) * s bin_edges = np.linspace(data.min(), data.max(), 50) ax.hist(data, bins=bin_edges) @check_matplotlib def test_matplotlib_support(): with pytest.raises(KeyError): _matplotlib.units.registry[unyt_array] matplotlib_support.enable() assert isinstance(_matplotlib.units.registry[unyt_array], unyt_arrayConverter) matplotlib_support.disable() assert unyt_array not in _matplotlib.units.registry.keys() assert unyt_quantity not in _matplotlib.units.registry.keys() # test as a callable matplotlib_support() assert isinstance(_matplotlib.units.registry[unyt_array], unyt_arrayConverter) @check_matplotlib def test_labelstyle(): x = [0, 1, 2] * s y = [3, 4, 5] * K matplotlib_support.label_style = "[]" assert matplotlib_support.label_style == "[]" matplotlib_support.enable() assert unyt_arrayConverter._labelstyle == "[]" fig, ax = _matplotlib.pyplot.subplots() ax.plot(x, y) expected_xlabel = "$\\left[\\rm{s}\\right]$" assert ax.xaxis.get_label().get_text() == expected_xlabel expected_ylabel = "$\\left[\\rm{K}\\right]$" assert ax.yaxis.get_label().get_text() == expected_ylabel matplotlib_support.label_style = "/" ax.clear() x.name = "$t$" ax.plot(x, y) expected_xlabel = "$t$ $\\;/\\;\\rm{s}$" assert ax.xaxis.get_label().get_text() == expected_xlabel expected_ylabel = "$q_{\\rmy}$$\\;/\\;\\rm{K}$" assert ax.yaxis.get_label().get_text() == expected_ylabel x = [0, 1, 2] * m / s ax.clear() ax.plot(x, y) expected_xlabel = "$q_{\\rmx}$$\\;/\\;\\left(\\rm{m} / \\rm{s}\\right)$" assert ax.xaxis.get_label().get_text() == expected_xlabel _matplotlib.pyplot.close() matplotlib_support.disable() @check_matplotlib def test_name(ax): x = unyt_array([0, 1, 2], "s", name="time") assert x.name == "time" y = unyt_array([3, 4, 5], "m", name="distance") ax.plot(x, y) expected_xlabel = "time $\\left(\\rm{s}\\right)$" assert ax.xaxis.get_label().get_text() == expected_xlabel expected_ylabel = "distance $\\left(\\rm{m}\\right)$" assert ax.yaxis.get_label().get_text() == expected_ylabel ax.clear() ax.plot(x, y, xunits="ms") expected_xlabel = "time $\\left(\\rm{ms}\\right)$" @check_matplotlib def test_multiple_subplots(): x1 = unyt_array([0, 1, 2], "s", name="time") y1 = unyt_array([6, 7, 8], "m", name="distance") x2 = unyt_array([3, 4, 5], "V", name="voltage") y2 = unyt_array([9, 10, 11], "A", name="current") matplotlib_support.enable() fig, ax = _matplotlib.pyplot.subplots(nrows=1, ncols=2) ax[0].plot(x1, y1) ax[1].plot(x2, y2) expected_labels = [ "time $\\left(\\rm{s}\\right)$", "distance $\\left(\\rm{m}\\right)$", "voltage $\\left(\\rm{V}\\right)$", "current $\\left(\\rm{A}\\right)$", ] generated_labels = [] for subplot in ax: xlabel = subplot.xaxis.get_label().get_text() ylabel = subplot.yaxis.get_label().get_text() generated_labels.extend((xlabel, ylabel)) assert generated_labels == expected_labels _matplotlib.pyplot.close() matplotlib_support.disable() @check_matplotlib def test_empty_plot(ax): ax.set_xlim(*unyt_array([0, 1], "s")) _matplotlib.pyplot.close() unyt-3.2.0/unyt/tests/test_no_duplicates.py000066400000000000000000000007221526544257300211340ustar00rootroot00000000000000def test_no_duplicates(): import unyt from unyt import physical_constants, unit_symbols from unyt.array import unyt_quantity symbol_names = {key for key in unit_symbols.__dict__ if not key.startswith("_")} constant_names = { key for key in physical_constants.__dict__ if not key.startswith("_") } dups = symbol_names.intersection(constant_names) for dup in dups: assert isinstance(getattr(unyt, dup), unyt_quantity) unyt-3.2.0/unyt/tests/test_subclass.py000066400000000000000000001167511526544257300201340ustar00rootroot00000000000000import os import warnings from copy import copy, deepcopy from importlib.metadata import version import numpy as np import pytest from packaging.version import Version import unyt as u from .sample_subclasses import ExtraAttributeError, subclass_uarray, subclass_uquantity NUMPY_VERSION = Version(version("numpy")) trapezoid_fname = "trapz" if NUMPY_VERSION < Version("2.0.0dev0") else "trapezoid" savetxt_file = "saved_array.txt" def getfunc(fname): """ Helper for our tests: get the function handle from a name (possibly with attribute access). """ func = np for attr in fname.split("."): func = getattr(func, attr) return func def sub_arr(x, unit=u.Mpc): """ Helper for our tests: turn an array into a subclass_uarray. """ return subclass_uarray(x, unit, extra_attr=True) def sub_q(x, unit=u.Mpc): """ Helper for our tests: turn a scalar into a subclass_uquantity. """ return subclass_uquantity(x, unit, extra_attr=True) def arg_to_ua(arg): """ Helper for our tests: recursively convert subclass_* in an argument (possibly an iterable) to their unyt_* equivalents. """ if type(arg) in (list, tuple): return type(arg)([arg_to_ua(a) for a in arg]) else: return to_ua(arg) def to_ua(x): """ Helper for our tests: turn a subclass_* object into its unyt_* equivalent. """ return u.unyt_array(x) if hasattr(x, "extra_attr") else x def check_result(x_s, x_u, ignore_values=False): """ Helper for our tests: check that a result with subclass input matches what we expected based on the result with unyt input. We check: - that the type of the result makes sense, recursing if needed. - that the value of the result matches (unless ignore_values=False). - that the units match. """ if x_u is None: assert x_s is None return if isinstance(x_u, str): assert isinstance(x_s, str) return if isinstance(x_u, type) or isinstance(x_u, np.dtype): assert x_u == x_s return if type(x_u) in (list, tuple): assert type(x_u) is type(x_s) assert len(x_u) == len(x_s) for x_c_i, x_u_i in zip(x_s, x_u): check_result(x_c_i, x_u_i) return # careful, unyt_quantity is a subclass of unyt_array: if isinstance(x_u, u.unyt_quantity): assert isinstance(x_s, subclass_uquantity) elif isinstance(x_u, u.unyt_array): assert isinstance(x_s, subclass_uarray) and not isinstance( x_s, subclass_uquantity ) else: assert not isinstance(x_s, subclass_uarray) if not ignore_values: assert np.allclose(x_s, x_u) return assert x_s.units == x_u.units if not ignore_values: assert np.allclose(x_s.to_value(x_s.units), x_u.to_value(x_u.units)) if isinstance(x_s, subclass_uarray): # includes subclass_uquantity assert x_s.extra_attr is True return class TestSubclassArrayInit: """ Test different ways of initializing a subclass_uarray. """ def test_init_from_ndarray(self): """ Check initializing from a bare numpy array. """ arr = subclass_uarray(np.ones(5), units=u.Mpc, extra_attr=True) assert hasattr(arr, "extra_attr") assert isinstance(arr, subclass_uarray) def test_init_from_list(self): """ Check initializing from a list of values. """ arr = subclass_uarray( [1, 1, 1, 1, 1], units=u.Mpc, extra_attr=True, ) assert hasattr(arr, "extra_attr") assert isinstance(arr, subclass_uarray) def test_init_from_unyt_array(self): """ Check initializing from a unyt_array. """ arr = subclass_uarray( u.unyt_array(np.ones(5), units=u.Mpc), extra_attr=False, ) assert hasattr(arr, "extra_attr") assert isinstance(arr, subclass_uarray) def test_init_from_list_of_unyt_arrays(self): """ Check initializing from a list of unyt_array's. Note that unyt won't recurse deeper than one level on inputs, so we don't test deeper than one level of lists. """ arr = subclass_uarray( [u.unyt_array(1, units=u.Mpc) for _ in range(5)], extra_attr=True, ) assert hasattr(arr, "extra_attr") assert isinstance(arr, subclass_uarray) def test_init_from_list_of_subclass_arrays(self): """ Check initializing from a list of subclass_uarray's. Note that unyt won't recurse deeper than one level on inputs, so we don't test deeper than one level of lists. """ arr = subclass_uarray( [ subclass_uarray( [1], units=u.Mpc, extra_attr=True, ) for _ in range(5) ] ) assert isinstance(arr, subclass_uarray) assert hasattr(arr, "extra_attr") and arr.extra_attr is True def test_expected_init_failures(self): # we refuse mixed extra_attr: with pytest.raises(ExtraAttributeError): subclass_uarray( [ subclass_uquantity(1, u.Mpc, extra_attr=True), subclass_uquantity(1, u.Mpc, extra_attr=False), ] ) for cls, inp in ((subclass_uarray, [1]), (subclass_uquantity, 1)): # we refuse overriding an input subclass_uarray's information: with pytest.raises(ValueError): cls( cls(inp, units=u.Mpc, extra_attr=False), units=u.Mpc, extra_attr=True, ) # unless it matches, that's fine: cls( cls( inp, units=u.Mpc, extra_attr=True, ), units=u.Mpc, extra_attr=True, ) class TestNumpyFunctions: """ Check that numpy functions recognize our subclasses as input and handle them correctly. """ def test_explicitly_handled_funcs(self): """ Make sure we at least handle everything that unyt does, and anything that 'just worked' for unyt but that we need to handle by hand. We don't try to be exhaustive here, but at give some basic input to every function that we expect to be able to take subclass input. We then use our helpers defined above to convert the inputs to unyt equivalents and call the numpy function on both subclass and unyt input. Then we use our helpers to check the results for consistency. For instance, if with unyt input we got back a unyt_array, we should expect a subclass_uarray. We are not currently explicitly testing that the results of any specific function are numerically what we expected them to be (seems like overkill), nor that the extra_attr's make sense given the input. The latter would be a useful addition, but I can't think of a sensible way to implement this besides writing in the expectation for every output value of every function by hand. As long as no functions outright crash, the test will report the list of functions that we should have covered that we didn't cover in tests, and/or the list of functions whose output values were not what we expected based on running them with unyt input. Otherwise we just get a stack trace of the first function that crashed. """ from unyt._array_functions import _HANDLED_FUNCTIONS from unyt.tests.test_array_functions import NOOP_FUNCTIONS functions_to_check = { # FUNCTIONS UNYT HANDLES EXPLICITLY: "array2string": (sub_arr(np.arange(3)),), "dot": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "vdot": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "inner": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "outer": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "kron": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "histogram_bin_edges": (sub_arr(np.arange(3)),), "linalg.inv": (sub_arr(np.eye(3)),), "linalg.tensorinv": (sub_arr(np.eye(9).reshape((3, 3, 3, 3))),), "linalg.pinv": (sub_arr(np.eye(3)),), "linalg.svd": (sub_arr(np.eye(3)),), "histogram": (sub_arr(np.arange(3)),), "histogram2d": ( sub_arr(np.arange(3)), sub_arr(np.arange(3)), ), "histogramdd": (sub_arr(np.arange(3)).reshape((1, 3)),), "concatenate": (sub_arr(np.eye(3)),), "cross": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "intersect1d": ( sub_arr(np.arange(3)), sub_arr(np.arange(3)), ), "union1d": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "linalg.norm": (sub_arr(np.arange(3)),), "vstack": (sub_arr(np.arange(3)),), "hstack": (sub_arr(np.arange(3)),), "dstack": (sub_arr(np.arange(3)),), "column_stack": (sub_arr(np.arange(3)),), "stack": (sub_arr(np.arange(3)),), "around": (sub_arr(np.arange(3)),), "block": ([[sub_arr(np.arange(3))], [sub_arr(np.arange(3))]],), "fft.fft": (sub_arr(np.arange(3)),), "fft.fft2": (sub_arr(np.eye(3)),), "fft.fftn": (sub_arr(np.arange(3)),), "fft.hfft": (sub_arr(np.arange(3)),), "fft.rfft": (sub_arr(np.arange(3)),), "fft.rfft2": (sub_arr(np.eye(3)),), "fft.rfftn": (sub_arr(np.arange(3)),), "fft.ifft": (sub_arr(np.arange(3)),), "fft.ifft2": (sub_arr(np.eye(3)),), "fft.ifftn": (sub_arr(np.arange(3)),), "fft.ihfft": (sub_arr(np.arange(3)),), "fft.irfft": (sub_arr(np.arange(3)),), "fft.irfft2": (sub_arr(np.eye(3)),), "fft.irfftn": (sub_arr(np.arange(3)),), "fft.fftshift": (sub_arr(np.arange(3)),), "fft.ifftshift": (sub_arr(np.arange(3)),), "sort_complex": (sub_arr(np.arange(3)),), "isclose": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "allclose": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "array_equal": ( sub_arr(np.arange(3)), sub_arr(np.arange(3)), ), "array_equiv": ( sub_arr(np.arange(3)), sub_arr(np.arange(3)), ), "linspace": (sub_q(1), sub_q(2)), "logspace": ( sub_q(1, unit=u.dimensionless), sub_q(2, unit=u.dimensionless), ), "geomspace": (sub_q(1), sub_q(1)), "copyto": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "prod": (sub_arr(np.arange(3)),), "var": (sub_arr(np.arange(3)),), "trace": (sub_arr(np.eye(3)),), "percentile": (sub_arr(np.arange(3)), 30), "quantile": (sub_arr(np.arange(3)), 0.3), "nanpercentile": (sub_arr(np.arange(3)), 30), "nanquantile": (sub_arr(np.arange(3)), 0.3), "linalg.det": (sub_arr(np.eye(3)),), "diff": (sub_arr(np.arange(3)),), "ediff1d": (sub_arr(np.arange(3)),), "ptp": (sub_arr(np.arange(3)),), "cumprod": (sub_arr(np.arange(3)),), "pad": (sub_arr(np.arange(3)), 3), "choose": (np.arange(3), sub_arr(np.eye(3))), "insert": (sub_arr(np.arange(3)), 1, sub_q(1)), "linalg.lstsq": (sub_arr(np.eye(3)), sub_arr(np.eye(3))), "linalg.solve": (sub_arr(np.eye(3)), sub_arr(np.eye(3))), "linalg.tensorsolve": ( sub_arr(np.eye(24).reshape((6, 4, 2, 3, 4))), sub_arr(np.ones((6, 4))), ), "linalg.eig": (sub_arr(np.eye(3)),), "linalg.eigh": (sub_arr(np.eye(3)),), "linalg.eigvals": (sub_arr(np.eye(3)),), "linalg.eigvalsh": (sub_arr(np.eye(3)),), "savetxt": (savetxt_file, sub_arr(np.arange(3))), "fill_diagonal": ( sub_arr(np.eye(3)), sub_arr(np.arange(3)), ), "apply_over_axes": (lambda x, axis: x, sub_arr(np.eye(3)), (0, 1)), "isin": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "place": ( sub_arr(np.arange(3)), np.arange(3) > 0, sub_arr(np.arange(3)), ), "put": ( sub_arr(np.arange(3)), np.arange(3), sub_arr(np.arange(3)), ), "put_along_axis": ( sub_arr(np.arange(3)), np.arange(3), sub_arr(np.arange(3)), 0, ), "putmask": ( sub_arr(np.arange(3)), np.arange(3), sub_arr(np.arange(3)), ), "searchsorted": ( sub_arr(np.arange(3)), sub_arr(np.arange(3)), ), "select": ( [np.arange(3) < 1, np.arange(3) > 1], [sub_arr(np.arange(3)), sub_arr(np.arange(3))], sub_q(1), ), "setdiff1d": ( sub_arr(np.arange(3)), sub_arr(np.arange(3, 6)), ), "sinc": (sub_arr(np.arange(3)),), "clip": (sub_arr(np.arange(3)), sub_q(1), sub_q(2)), "where": ( sub_arr(np.arange(3)), sub_arr(np.arange(3)), sub_arr(np.arange(3)), ), "triu": (sub_arr(np.ones((3, 3))),), "tril": (sub_arr(np.ones((3, 3))),), "einsum": ("ii->i", sub_arr(np.eye(3))), "convolve": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "correlate": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "unwrap": (sub_arr(np.arange(3)),), "interp": ( sub_arr(np.arange(3)), sub_arr(np.arange(3)), sub_arr(np.arange(3)), ), "array_repr": (sub_arr(np.arange(3)),), trapezoid_fname: (sub_arr(np.arange(3)),), "take": (sub_arr(np.arange(3)), np.arange(3)), # FUNCTIONS THAT UNYT DOESN'T HANDLE EXPLICITLY (THEY "JUST WORK"): "all": (sub_arr(np.arange(3)),), "amax": (sub_arr(np.arange(3)),), # implemented via max "amin": (sub_arr(np.arange(3)),), # implemented via min "angle": (sub_q(complex(1, 1)),), "any": (sub_arr(np.arange(3)),), "append": (sub_arr(np.arange(3)), sub_q(1)), "apply_along_axis": (lambda x: x, 0, sub_arr(np.eye(3))), "argmax": (sub_arr(np.arange(3)),), # implemented via max "argmin": (sub_arr(np.arange(3)),), # implemented via min "argpartition": ( sub_arr(np.arange(3)), 1, ), # implemented via partition "argsort": (sub_arr(np.arange(3)),), # implemented via sort "argwhere": (sub_arr(np.arange(3)),), "array_str": (sub_arr(np.arange(3)),), "atleast_1d": (sub_arr(np.arange(3)),), "atleast_2d": (sub_arr(np.arange(3)),), "atleast_3d": (sub_arr(np.arange(3)),), "average": (sub_arr(np.arange(3)),), "can_cast": (sub_arr(np.arange(3)), np.float64), "common_type": ( sub_arr(np.arange(3)), sub_arr(np.arange(3)), ), "result_type": (sub_arr(np.ones(3)), sub_arr(np.ones(3))), "iscomplex": (sub_arr(np.arange(3)),), "iscomplexobj": (sub_arr(np.arange(3)),), "isreal": (sub_arr(np.arange(3)),), "isrealobj": (sub_arr(np.arange(3)),), "nan_to_num": (sub_arr(np.arange(3)),), "nanargmax": (sub_arr(np.arange(3)),), # implemented via max "nanargmin": (sub_arr(np.arange(3)),), # implemented via min "nanmax": (sub_arr(np.arange(3)),), # implemented via max "nanmean": (sub_arr(np.arange(3)),), # implemented via mean "nanmedian": (sub_arr(np.arange(3)),), # implemented via median "nanmin": (sub_arr(np.arange(3)),), # implemented via min "trim_zeros": (sub_arr(np.arange(3)),), "max": (sub_arr(np.arange(3)),), "mean": (sub_arr(np.arange(3)),), "median": (sub_arr(np.arange(3)),), "min": (sub_arr(np.arange(3)),), "ndim": (sub_arr(np.arange(3)),), "shape": (sub_arr(np.arange(3)),), "size": (sub_arr(np.arange(3)),), "sort": (sub_arr(np.arange(3)),), "sum": (sub_arr(np.arange(3)),), "repeat": (sub_arr(np.arange(3)), 2), "tile": (sub_arr(np.arange(3)), 2), "shares_memory": ( sub_arr(np.arange(3)), sub_arr(np.arange(3)), ), "nonzero": (sub_arr(np.arange(3)),), "count_nonzero": (sub_arr(np.arange(3)),), "flatnonzero": (sub_arr(np.arange(3)),), "isneginf": (sub_arr(np.arange(3)),), "isposinf": (sub_arr(np.arange(3)),), "empty_like": (sub_arr(np.arange(3)),), "full_like": (sub_arr(np.arange(3)), sub_q(1)), "ones_like": (sub_arr(np.arange(3)),), "zeros_like": (sub_arr(np.arange(3)),), "copy": (sub_arr(np.arange(3)),), "meshgrid": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "transpose": (sub_arr(np.eye(3)),), "reshape": (sub_arr(np.arange(3)), (3,)), "resize": (sub_arr(np.arange(3)), 6), "roll": (sub_arr(np.arange(3)), 1), "rollaxis": (sub_arr(np.arange(3)), 0), "rot90": (sub_arr(np.eye(3)),), "expand_dims": (sub_arr(np.arange(3)), 0), "squeeze": (sub_arr(np.arange(3)),), "flip": (sub_arr(np.eye(3)),), "fliplr": (sub_arr(np.eye(3)),), "flipud": (sub_arr(np.eye(3)),), "delete": (sub_arr(np.arange(3)), 0), "partition": (sub_arr(np.arange(3)), 1), "broadcast_to": (sub_arr(np.arange(3)), 3), "broadcast_arrays": (sub_arr(np.arange(3)),), "split": (sub_arr(np.arange(3)), 1), "array_split": (sub_arr(np.arange(3)), 1), "dsplit": (sub_arr(np.arange(27)).reshape(3, 3, 3), 1), "hsplit": (sub_arr(np.arange(3)), 1), "vsplit": (sub_arr(np.eye(3)), 1), "swapaxes": (sub_arr(np.eye(3)), 0, 1), "moveaxis": (sub_arr(np.eye(3)), 0, 1), "nansum": (sub_arr(np.arange(3)),), # implemented via sum "std": (sub_arr(np.arange(3)),), "nanstd": (sub_arr(np.arange(3)),), "nanvar": (sub_arr(np.arange(3)),), "nanprod": (sub_arr(np.arange(3)),), "diag": (sub_arr(np.eye(3)),), "diag_indices_from": (sub_arr(np.eye(3)),), "diagflat": (sub_arr(np.eye(3)),), "diagonal": (sub_arr(np.eye(3)),), "ravel": (sub_arr(np.arange(3)),), "ravel_multi_index": (np.eye(2, dtype=int), (2, 2)), "unravel_index": (np.arange(3), (3,)), "fix": (sub_arr(np.arange(3)),), "round": (sub_arr(np.arange(3)),), # implemented via around "may_share_memory": ( sub_arr(np.arange(3)), sub_arr(np.arange(3)), ), "linalg.matrix_power": (sub_arr(np.eye(3)), 2), "linalg.cholesky": (sub_arr(np.eye(3)),), "linalg.multi_dot": ((sub_arr(np.eye(3)), sub_arr(np.eye(3))),), "linalg.matrix_rank": (sub_arr(np.eye(3)),), "linalg.qr": (sub_arr(np.eye(3)),), "linalg.slogdet": (sub_arr(np.eye(3)),), "linalg.cond": (sub_arr(np.eye(3)),), "tensordot": (sub_arr(np.eye(3)), sub_arr(np.eye(3))), "gradient": (sub_arr(np.arange(3)),), "cumsum": (sub_arr(np.arange(3)),), "nancumsum": (sub_arr(np.arange(3)),), "nancumprod": (sub_arr(np.arange(3)),), "bincount": (sub_arr(np.arange(3)),), "unique": (sub_arr(np.arange(3)),), "min_scalar_type": (sub_arr(np.arange(3)),), "extract": (0, sub_arr(np.arange(3))), "setxor1d": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "lexsort": (sub_arr(np.arange(3)),), "digitize": (sub_arr(np.arange(3)), sub_arr(np.arange(3))), "tril_indices_from": (sub_arr(np.eye(3)),), "triu_indices_from": (sub_arr(np.eye(3)),), "imag": (sub_arr(np.arange(3)),), "real": (sub_arr(np.arange(3)),), "real_if_close": (sub_arr(np.arange(3)),), "einsum_path": ( "ij,jk->ik", sub_arr(np.eye(3)), sub_arr(np.eye(3)), ), "cov": (sub_arr(np.arange(3)),), "corrcoef": (sub_arr(np.arange(3)),), "compress": (np.zeros(3), sub_arr(np.arange(3))), "take_along_axis": ( sub_arr(np.arange(3)), np.ones(3, dtype=int), 0, ), } if NUMPY_VERSION >= Version("2.0.0dev0"): functions_to_check["linalg.cross"] = ( sub_arr(np.arange(3)), sub_arr(np.arange(3)), ) functions_to_check["linalg.diagonal"] = (sub_arr(np.eye(3)),) functions_to_check["linalg.matmul"] = ( sub_arr(np.eye(3)), sub_arr(np.eye(3)), ) functions_to_check["linalg.matrix_norm"] = (sub_arr(np.eye(3)),) functions_to_check["linalg.matrix_transpose"] = (sub_arr(np.eye(3)),) functions_to_check["linalg.tensordot"] = ( sub_arr(np.eye(3)), sub_arr(np.eye(3)), ) functions_to_check["linalg.outer"] = ( sub_arr(np.arange(3)), sub_arr(np.arange(3)), ) functions_to_check["linalg.svdvals"] = (sub_arr(np.eye(3)),) functions_to_check["linalg.trace"] = (sub_arr(np.eye(3)),) functions_to_check["linalg.vecdot"] = ( sub_arr(np.arange(3)), sub_arr(np.arange(3)), ) functions_to_check["linalg.vector_norm"] = (sub_arr(np.arange(3)),) functions_to_check["astype"] = (sub_arr(np.arange(3)), float) functions_to_check["matrix_transpose"] = (sub_arr(np.eye(3)),) functions_to_check["unique_all"] = (sub_arr(np.arange(3)),) functions_to_check["unique_counts"] = (sub_arr(np.arange(3)),) functions_to_check["unique_inverse"] = (sub_arr(np.arange(3)),) functions_to_check["unique_values"] = (sub_arr(np.arange(3)),) functions_to_check["cumulative_sum"] = (sub_arr(np.arange(3)),) functions_to_check["cumulative_prod"] = (sub_arr(np.arange(3)),) functions_to_check["unstack"] = (sub_arr(np.arange(3)),) else: functions_to_check["asfarray"] = (sub_arr(np.arange(3)),) if NUMPY_VERSION < Version("2.4.0.dev0"): functions_to_check["in1d"] = (sub_arr(np.arange(3)), sub_arr(np.arange(3))) functions_checked = [] bad_funcs = {} for fname, args in functions_to_check.items(): ua_args = [] for arg in args: ua_args.append(arg_to_ua(arg)) func = getfunc(fname) try: with warnings.catch_warnings(): warnings.filterwarnings( action="ignore", category=FutureWarning, ) if "savetxt" in fname: warnings.filterwarnings( action="ignore", category=UserWarning, message="numpy.savetxt does not preserve units", ) if fname == "fix": warnings.filterwarnings( action="ignore", category=DeprecationWarning, message="numpy.fix is deprecated", ) try: ua_result = func(*ua_args) except: print(f"Crashed in {fname} with unyt input.") raise except u.exceptions.UnytError: raises_unyt_error = True else: raises_unyt_error = False if "savetxt" in fname and os.path.isfile(savetxt_file): os.remove(savetxt_file) functions_checked.append(func) if raises_unyt_error: with pytest.raises(u.exceptions.UnytError): result = func(*args) continue with warnings.catch_warnings(): warnings.filterwarnings( action="ignore", category=FutureWarning, ) if "savetxt" in fname: warnings.filterwarnings( action="ignore", category=UserWarning, message="numpy.savetxt does not preserve units or extra_attr", ) if fname == "fix": warnings.filterwarnings( action="ignore", category=DeprecationWarning, message="numpy.fix is deprecated", ) try: result = func(*args) except: # pragma: no cover print(f"Crashed in {fname} with subclass input.") raise if fname.split(".")[-1] in ( "fill_diagonal", "copyto", "place", "put", "put_along_axis", "putmask", ): # treat inplace modified values for relevant functions as result result = args[0] ua_result = ua_args[0] if "savetxt" in fname and os.path.isfile(savetxt_file): os.remove(savetxt_file) ignore_values = fname in {"empty_like"} # empty_like has arbitrary data try: check_result(result, ua_result, ignore_values=ignore_values) except AssertionError: # pragma: no cover bad_funcs["np." + fname] = result, ua_result if len(bad_funcs) > 0: # pragma: no cover raise AssertionError( "Some functions did not return expected types " "(obtained, obtained with unyt input): " + str(bad_funcs) ) unchecked_functions = [ f for f in set(_HANDLED_FUNCTIONS) | NOOP_FUNCTIONS if f not in functions_checked ] try: assert len(unchecked_functions) == 0 except AssertionError: # pragma: no cover raise AssertionError( "Did not check functions", [ (".".join((f.__module__, f.__name__)).replace("numpy", "np")) for f in unchecked_functions ], ) @pytest.mark.parametrize( "func_args", ( ( np.histogram, ( subclass_uarray( [1, 2, 3], u.m, extra_attr=True, ), ), ), ( np.histogram2d, ( subclass_uarray( [1, 2, 3], u.m, extra_attr=True, ), subclass_uarray( [1, 2, 3], u.K, extra_attr=True, ), ), ), ( np.histogramdd, ( [ subclass_uarray( [1, 2, 3], u.m, extra_attr=True, ), subclass_uarray( [1, 2, 3], u.K, extra_attr=True, ), subclass_uarray( [1, 2, 3], u.kg, extra_attr=True, ), ], ), ), ), ) @pytest.mark.parametrize( "weights", ( None, subclass_uarray([1, 2, 3], u.s, extra_attr=True), np.array([1, 2, 3]), ), ) @pytest.mark.parametrize("bins_type", ("int", "sub_arr")) @pytest.mark.parametrize("density", (None, True)) def test_histograms(self, func_args, weights, bins_type, density): """ Test that histograms give sensible output. Histograms are tricky with possible density and weights arguments, and the way that attributes need validation and propagation between the bins and values. They are also commonly used. They therefore need a bespoke test. """ func, args = func_args bins = { "int": 10, "sub_arr": [ subclass_uarray( np.linspace(0, 5, 11), u.kpc, extra_attr=True, ), subclass_uarray( np.linspace(0, 5, 11), u.K, extra_attr=True, ), subclass_uarray( np.linspace(0, 5, 11), u.Msun, extra_attr=True, ), ], }[bins_type] bins = ( bins[ { np.histogram: np.s_[0], np.histogram2d: np.s_[:2], np.histogramdd: np.s_[:], }[func] ] if bins_type == "sub_arr" else bins ) result = func(*args, bins=bins, density=density, weights=weights) ua_args = tuple( ( to_ua(arg) if not isinstance(arg, tuple) else tuple(to_ua(item) for item in arg) ) for arg in args ) ua_bins = ( to_ua(bins) if not isinstance(bins, tuple) else tuple(to_ua(item) for item in bins) ) ua_result = func( *ua_args, bins=ua_bins, density=density, weights=to_ua(weights) ) assert isinstance(ua_result, tuple) assert isinstance(result, tuple) assert len(result) == len(ua_result) for r, ua_r in zip(result, ua_result): check_result(r, ua_r) if not density and not isinstance(weights, subclass_uarray): assert not isinstance(result[0], subclass_uarray) else: assert result[0].extra_attr is True if density and not isinstance(weights, subclass_uarray): pass elif density and isinstance(weights, subclass_uarray): assert result[0].extra_attr is True elif not density and isinstance(weights, subclass_uarray): assert result[0].extra_attr is True ret_bins = { np.histogram: [result[1]], np.histogram2d: result[1:], np.histogramdd: result[1], }[func] for b in ret_bins: assert b.extra_attr is True def test_getitem(self): """ Make sure that we don't degrade to an ndarray on slicing. """ assert isinstance(sub_arr(np.arange(3))[0], subclass_uquantity) def test_reshape_to_scalar(self): """ Make sure that we convert to a subclass_uquantity when we reshape to a scalar. """ assert isinstance(sub_arr(np.ones(1)).reshape(()), subclass_uquantity) def test_iter(self): """ Make sure that we get subclass_uquantity's when iterating over a subclass_uarray. """ for sub_q in sub_arr(np.arange(3)): assert isinstance(sub_q, subclass_uquantity) def test_dot(self): """ Make sure that we get a subclass_uarray when we use array attribute dot. """ res = sub_arr(np.arange(3)).dot(sub_arr(np.arange(3))) assert isinstance(res, subclass_uquantity) assert res.extra_attr is True class TestSubclassQuantity: """ Test that the subclass_uquantity class works as desired, mostly around issues converting back and forth with subclass_uarray. """ @pytest.mark.parametrize( "func, args", [ ("astype", (float,)), ("in_units", (u.m,)), ("byteswap", ()), ("compress", ([True],)), ("flatten", ()), ("ravel", ()), ("repeat", (1,)), ("reshape", (1,)), ("take", ([0],)), ("transpose", ()), ("view", ()), ], ) def test_propagation_func(self, func, args): """ Test that functions that are supposed to propagate our attribute do so. """ sub_q = subclass_uquantity( 1, u.m, extra_attr=True, ) res = getattr(sub_q, func)(*args) assert res.extra_attr is True def test_round(self): """ Test that attributes propagate through the round builtin. """ sub_q = subclass_uquantity( 1.03, u.m, extra_attr=True, ) res = round(sub_q) assert res.value == 1.0 assert res.extra_attr is True def test_scalar_return_func(self): """ Make sure that default-wrapped functions that take a subclass_uarray and return a scalar convert to a subclass_uquantity. """ sub_arr = subclass_uarray( np.arange(3), u.m, extra_attr=True, ) res = np.min(sub_arr) assert isinstance(res, subclass_uquantity) @pytest.mark.parametrize("prop", ["T", "ua", "unit_array"]) def test_propagation_props(self, prop): """ Test that properties propagate our attributes as intended. """ sub_q = subclass_uquantity( 1, u.m, extra_attr=True, ) res = getattr(sub_q, prop) assert res.extra_attr is True def test_multiply_quantities(self): """ Test multiplying two quantities. """ sub_q = subclass_uquantity( 2, u.m, extra_attr=True, ) multiplied = sub_q * sub_q assert type(multiplied) is subclass_uquantity assert multiplied.extra_attr is True assert multiplied.to_value(u.m**2) == 4 class TestCosmoArrayCopy: """ Tests of explicit (deep)copying of subclass_uarray. """ def test_copy(self): """ Check that when we copy a subclass_uarray it preserves its values and attributes. """ units = u.Mpc arr = subclass_uarray( u.unyt_array(np.ones(5), units=units), extra_attr=True, ) copy_arr = copy(arr) assert np.allclose(arr.to_value(units), copy_arr.to_value(units)) assert arr.units == copy_arr.units assert arr.extra_attr == copy_arr.extra_attr def test_deepcopy(self): """ Check that when we deepcopy a subclass_uarray it preserves its values and attribute """ units = u.Mpc arr = subclass_uarray( u.unyt_array(np.ones(5), units=units), extra_attr=True, ) copy_arr = deepcopy(arr) assert np.allclose(arr.to_value(units), copy_arr.to_value(units)) assert arr.units == copy_arr.units assert arr.extra_attr == copy_arr.extra_attr def test_to_cgs(self): """ Check that using to_cgs properly preserves attributes. """ units = u.Mpc arr = subclass_uarray( u.unyt_array(np.ones(5), units=units), extra_attr=True, ) cgs_arr = arr.in_cgs() assert np.allclose(arr.to_value(u.cm), cgs_arr.to_value(u.cm)) assert cgs_arr.units == u.cm assert cgs_arr.extra_attr == arr.extra_attr class TestMultiplicationByUnyt: @pytest.mark.parametrize( "sub_arr", [ subclass_uarray( np.ones(3), u.Mpc, extra_attr=True, ), subclass_uquantity( np.ones(1), u.Mpc, extra_attr=True, ), ], ) def test_multiplication_by_unyt(self, sub_arr): """ We desire consistent behaviour for example for `subclass_uarray(...) * (1 * u.Mpc)` as for `subclass_uarray(...) * u.Mpc`. """ lmultiplied_by_quantity = sub_arr * ( 1 * u.Mpc ) # parentheses very important here lmultiplied_by_unyt = sub_arr * u.Mpc assert isinstance(lmultiplied_by_quantity, subclass_uarray) assert isinstance(lmultiplied_by_unyt, subclass_uarray) assert lmultiplied_by_unyt.extra_attr == lmultiplied_by_quantity.extra_attr assert np.allclose( lmultiplied_by_unyt.to_value(lmultiplied_by_quantity.units), lmultiplied_by_quantity.to_value(lmultiplied_by_quantity.units), ) ldivided_by_quantity = sub_arr / (1 * u.Mpc) # parentheses very important here ldivided_by_unyt = sub_arr / u.Mpc assert isinstance(ldivided_by_quantity, subclass_uarray) assert isinstance(ldivided_by_unyt, subclass_uarray) assert ldivided_by_unyt.extra_attr == ldivided_by_quantity.extra_attr assert np.allclose( ldivided_by_unyt.to_value(ldivided_by_quantity.units), ldivided_by_quantity.to_value(ldivided_by_quantity.units), ) rmultiplied_by_quantity = ( 1 * u.Mpc ) * sub_arr # parentheses very important here assert rmultiplied_by_quantity.extra_attr rmultiplied_by_unyt = u.Mpc * sub_arr assert isinstance(rmultiplied_by_quantity, subclass_uarray) assert isinstance(rmultiplied_by_unyt, subclass_uarray) assert rmultiplied_by_unyt.extra_attr == rmultiplied_by_quantity.extra_attr assert np.allclose( rmultiplied_by_unyt.to_value(rmultiplied_by_quantity.units), rmultiplied_by_quantity.to_value(rmultiplied_by_quantity.units), ) rdivided_by_quantity = (1 * u.Mpc) / sub_arr # parentheses very important here rdivided_by_unyt = u.Mpc / sub_arr assert isinstance(rdivided_by_quantity, subclass_uarray) assert isinstance(rdivided_by_unyt, subclass_uarray) assert rdivided_by_unyt.extra_attr == rdivided_by_quantity.extra_attr assert np.allclose( rdivided_by_unyt.to_value(rdivided_by_quantity.units), rdivided_by_quantity.to_value(rdivided_by_quantity.units), ) unyt-3.2.0/unyt/tests/test_temperature_interval_offset.py000066400000000000000000000012621526544257300241120ustar00rootroot00000000000000import pytest from unyt import K, degC, degF, delta_degC, delta_degF from unyt.exceptions import InvalidUnitOperation def test_interval_to_offset_raises(): with pytest.raises(InvalidUnitOperation): (3 * delta_degC).to(degC) with pytest.raises(InvalidUnitOperation): (3 * degC).to(delta_degC) with pytest.raises(InvalidUnitOperation): (3 * delta_degF).to(degF) with pytest.raises(InvalidUnitOperation): (3 * degF).to(delta_degF) def test_kelvin_celsius_affine_stays(): assert (0 * degC).to(K) == 273.15 * K assert (273.15 * K).to(degC) == 0 * degC def test_interval_to_kelvin_stays(): assert (3 * delta_degC).to(K) == 3 * K unyt-3.2.0/unyt/tests/test_unit_registry.py000066400000000000000000000132601526544257300212130ustar00rootroot00000000000000""" Test unit lookup tables and registry """ import os import pytest from numpy.testing import assert_allclose from unyt.dimensions import energy, length, mass, temperature, time from unyt.exceptions import SymbolNotFoundError, UnitParseError from unyt.unit_object import Unit from unyt.unit_registry import UnitRegistry from unyt.unit_systems import UnitSystem def test_add_modify_error(): from unyt import m ureg = UnitRegistry() with pytest.raises(UnitParseError): ureg.add("tayne", 1, length) with pytest.raises(UnitParseError): ureg.add("tayne", "blah", length) with pytest.raises(UnitParseError): ureg.add("tayne", 1.0, length, offset=1) with pytest.raises(UnitParseError): ureg.add("tayne", 1.0, length, offset="blah") ureg.add("tayne", 1.1, length) with pytest.raises(SymbolNotFoundError): ureg.remove("tayn") with pytest.raises(SymbolNotFoundError): ureg.modify("tayn", 1.2) ureg.modify("tayne", 1.0 * m) assert ureg["tayne"][:3] == ureg["m"][:3] def test_modify_symbol_from_default_unit_registry(): # see https://github.com/yt-project/unyt/issues/473 from unyt import km from unyt.unit_object import default_unit_registry with pytest.raises(TypeError): default_unit_registry.modify("cm", 10 * km) with pytest.raises(TypeError): default_unit_registry.remove("cm") def test_modify_cache_clear(): # see https://github.com/yt-project/unyt/issues/473 ureg = UnitRegistry() ureg.add("celery", 1.0, length) u0 = Unit("m", registry=ureg) u1 = Unit("celery", registry=ureg) assert u1 == u0 ureg.modify("celery", 0.5) # check that this equality still holds post registry modification assert u1 == u0 u2 = Unit("celery", registry=ureg) assert u2 != u1 assert 1.0 * u2 == 0.5 * u0 def test_remove_unit(): ureg = UnitRegistry() ureg.add("celery", 1.0, length) ureg.remove("celery") with pytest.raises(UnitParseError): Unit("celery", registry=ureg) def test_keys(): ureg = UnitRegistry() assert sorted(ureg.keys()) == sorted(ureg.lut.keys()) def test_prefixable_units(): ureg = UnitRegistry() pu = ureg.prefixable_units assert "m" in pu assert "pc" in pu assert "mol" in pu ureg.add("foobar", 1.0, length, prefixable=True) assert "foobar" in ureg.prefixable_units mfoobar = Unit("mfoobar", registry=ureg) foobar = Unit("foobar", registry=ureg) assert (1 * foobar) / (1 * mfoobar) == 1000 def test_registry_contains(): ureg = UnitRegistry() assert "m" in ureg assert "cm" in ureg assert "erg" in ureg assert "Merg" in ureg assert "foobar" not in ureg assert Unit("m", registry=ureg) in ureg def test_registry_json(): reg = UnitRegistry() reg.add("tayne", 1.0, length) json_reg = reg.to_json() unserialized_reg = UnitRegistry.from_json(json_reg) assert reg.lut == unserialized_reg.lut assert reg.lut["m"][1] is length assert reg.lut["erg"][1] is energy assert reg.lut["tayne"][1] is length OLD_JSON_PATH = os.sep.join([os.path.dirname(__file__), "data/old_json_registry.txt"]) def test_old_registry_multiple_load(): # See Issue #157 for details reg1 = UnitRegistry() reg1.add("code_length", 1.0, length) reg1.add("code_mass", 1.0, mass) reg1.add("code_time", 1.0, time) reg1.add("code_temperature", 1.0, temperature) UnitSystem( reg1.unit_system_id, "code_length", "code_mass", "code_time", "code_temperature", registry=reg1, ) cm = Unit("code_mass", registry=reg1) cl = Unit("code_length", registry=reg1) (cm / cl).latex_representation() with open(OLD_JSON_PATH) as f: json_data = f.read() reg2 = UnitRegistry.from_json(json_data) UnitSystem( reg2.unit_system_id, "code_length", "code_mass", "code_time", "code_temperature", registry=reg2, ) def test_old_registry_json(): with open(OLD_JSON_PATH) as f: json_text = f.read() reg = UnitRegistry.from_json(json_text) default_reg = UnitRegistry() loaded_keys = reg.keys() for k in default_reg.keys(): assert k in loaded_keys loaded_val = reg[k] val = default_reg[k] assert_allclose(loaded_val[0], val[0]) assert loaded_val[1:] == val[1:] def test_unit_system_id_under_fips(monkeypatch): # On FIPS-enabled systems, hashlib.md5() raises unless it is told the # digest is not used for security. unit_system_id only uses MD5 as a # fingerprint, so it must pass usedforsecurity=False; otherwise simply # importing unyt crashes on such systems (#580). import hashlib import unyt.unit_registry as unit_registry real_md5 = hashlib.md5 def fips_md5(*args, **kwargs): # Mimic a FIPS build: refuse to construct an MD5 hasher that is # flagged as being used for security. if kwargs.get("usedforsecurity", True): raise ValueError("[digital envelope routines] unsupported") return real_md5(*args, **kwargs) monkeypatch.setattr(unit_registry, "md5", fips_md5) reg = UnitRegistry() reg._unit_system_id = None # force recomputation through the patched md5 unit_system_id = reg.unit_system_id assert isinstance(unit_system_id, str) # The fingerprint must match the value computed with a regular md5. assert unit_system_id == real_md5(_hash_data_for(reg)).hexdigest() def _hash_data_for(reg): hash_data = bytearray() for k, v in sorted(reg.lut.items()): hash_data.extend(k.encode("utf8")) hash_data.extend(repr(v).encode("utf8")) return bytes(hash_data) unyt-3.2.0/unyt/tests/test_unit_systems.py000066400000000000000000000076131526544257300210570ustar00rootroot00000000000000""" Test unit systems. """ import pytest import unyt.unit_symbols as us from unyt import dimensions from unyt.exceptions import IllDefinedUnitSystem, MissingMKSCurrent from unyt.unit_object import Unit from unyt.unit_registry import UnitRegistry from unyt.unit_systems import ( UnitSystem, cgs_unit_system, mks_unit_system, unit_system_registry, ) def test_unit_systems(): goofy_unit_system = UnitSystem( "goofy", "ly", "lbm", "hr", temperature_unit="R", angle_unit="arcsec", current_mks_unit="mA", luminous_intensity_unit="cd", ) assert goofy_unit_system["temperature"] == Unit("R") assert goofy_unit_system[dimensions.solid_angle] == Unit("arcsec**2") assert goofy_unit_system["energy"] == Unit("lbm*ly**2/hr**2") goofy_unit_system["energy"] = "eV" assert goofy_unit_system["energy"] == Unit("eV") assert goofy_unit_system["magnetic_field_mks"] == Unit("lbm/(hr**2*mA)") assert "goofy" in unit_system_registry def test_unit_system_id(): reg1 = UnitRegistry() reg2 = UnitRegistry() assert reg1.unit_system_id == reg2.unit_system_id reg1.modify("g", 2.0) assert reg1.unit_system_id != reg2.unit_system_id reg1 = UnitRegistry() reg1.add("dinosaurs", 12.0, dimensions.length) assert reg1.unit_system_id != reg2.unit_system_id reg1 = UnitRegistry() reg1.remove("g") assert reg1.unit_system_id != reg2.unit_system_id reg1.add("g", 1.0e-3, dimensions.mass, prefixable=True) assert reg1.unit_system_id == reg2.unit_system_id def test_bad_unit_system(): with pytest.raises(IllDefinedUnitSystem): UnitSystem("atomic", "nm", "fs", "nK", "rad") with pytest.raises(IllDefinedUnitSystem): UnitSystem("atomic", "nm", "fs", "nK", "rad", registry=UnitRegistry()) with pytest.raises(IllDefinedUnitSystem): UnitSystem("atomic", us.nm, us.fs, us.nK, us.rad) with pytest.raises(IllDefinedUnitSystem): UnitSystem("atomic", us.nm, us.fs, us.nK, us.rad, registry=UnitRegistry()) def test_code_unit_system(): ureg = UnitRegistry() ureg.add("code_length", 2.0, dimensions.length) ureg.add("code_mass", 3.0, dimensions.mass) ureg.add("code_time", 4.0, dimensions.time) ureg.add("code_temperature", 5.0, dimensions.temperature) code_unit_system = UnitSystem( "my_unit_system", "code_length", "code_mass", "code_time", "code_temperature", registry=ureg, ) assert code_unit_system["length"] == Unit("code_length", registry=ureg) assert code_unit_system["length"].base_value == 2 assert code_unit_system["mass"] == Unit("code_mass", registry=ureg) assert code_unit_system["mass"].base_value == 3 assert code_unit_system["time"] == Unit("code_time", registry=ureg) assert code_unit_system["time"].base_value == 4 assert code_unit_system["temperature"] == Unit("code_temperature", registry=ureg) assert code_unit_system["temperature"].base_value == 5 def test_mks_current(): with pytest.raises(MissingMKSCurrent): cgs_unit_system[dimensions.current_mks] with pytest.raises(MissingMKSCurrent): cgs_unit_system[dimensions.magnetic_field] with pytest.raises(MissingMKSCurrent): cgs_unit_system[dimensions.current_mks] = "foo" with pytest.raises(MissingMKSCurrent): cgs_unit_system[dimensions.magnetic_field] = "bar" assert cgs_unit_system.has_current_mks is False assert mks_unit_system.has_current_mks is True def test_create_unit_system_from_unit_objects(): s = UnitSystem("test_units", us.Mpc, us.Msun, us.s) assert s["length"] == us.Mpc assert s["mass"] == us.Msun assert s["time"] == us.s def test_create_unit_system_from_quantity(): s = UnitSystem("test_units", us.Mpc, 3 * us.Msun, us.s) assert s["length"] == us.Mpc assert s["mass"] == Unit("3*Msun") assert s["time"] == us.s unyt-3.2.0/unyt/tests/test_units.py000066400000000000000000000672651526544257300174640ustar00rootroot00000000000000""" Test symbolic unit handling. """ import operator import pickle import numpy as np import pytest from numpy.testing import ( assert_allclose, assert_almost_equal, assert_array_almost_equal_nulp, assert_equal, ) from sympy import Symbol import unyt.unit_symbols as unit_symbols from unyt._physical_ratios import ( m_per_km, m_per_mpc, m_per_pc, mass_sun_kg, sec_per_year, ) from unyt._unit_lookup_table import ( default_unit_symbol_lut, name_alternatives, unit_prefixes, ) from unyt.array import unyt_quantity from unyt.dimensions import ( energy, length, magnetic_field_cgs, magnetic_field_mks, mass, power, rate, temperature, time, ) from unyt.exceptions import InvalidUnitOperation, UnitConversionError, UnitsNotReducible from unyt.testing import assert_allclose_units from unyt.unit_object import Unit, UnitParseError, default_unit_registry from unyt.unit_registry import UnitRegistry from unyt.unit_systems import UnitSystem, cgs_unit_system @pytest.mark.parametrize("symbol", ["nmi", "nautical_mile"]) def test_nautical_mile_conversion(symbol): assert_equal(unyt_quantity(1, symbol).to_value("m"), 1852.0) @pytest.mark.parametrize("symbol", ["kt", "knot"]) def test_knot_conversion(symbol): assert_allclose( unyt_quantity(1, symbol).to_value("m/s"), 1852.0 / 3600.0, rtol=1e-14, ) assert_allclose(unyt_quantity(1, symbol).to_value("nmi/hr"), 1.0) def test_no_conflicting_symbols(): """ Check unit symbol definitions for conflicts. """ full_set = set(default_unit_symbol_lut.keys()) # go through all possible prefix combos for symbol in default_unit_symbol_lut.keys(): if default_unit_symbol_lut[symbol][4]: keys = unit_prefixes.keys() else: keys = [symbol] for prefix in keys: new_symbol = f"{prefix}{symbol}" # test if we have seen this symbol assert new_symbol not in full_set, f"Duplicate symbol: {new_symbol}" full_set.add(new_symbol) def test_dimensionless(): """ Create dimensionless unit and check attributes. """ u1 = Unit() assert u1.is_dimensionless assert u1.expr == 1 assert u1.base_value == 1 assert u1.dimensions == 1 assert u1 != "hello!" assert (u1 == "hello") is False u2 = Unit("") assert u2.is_dimensionless assert u2.expr == 1 assert u2.base_value == 1 assert u2.dimensions == 1 assert_equal(u1.latex_repr, "") assert_equal(u2.latex_repr, "") def test_create_from_string(): """ Create units with strings and check attributes. """ u1 = Unit("kg * m**2 * s**-2") assert u1.dimensions == energy assert u1.base_value == 1.0 # make sure order doesn't matter u2 = Unit("m**2 * s**-2 * kg") assert u2.dimensions == energy assert u2.base_value == 1.0 # Test rationals u3 = Unit("kg**0.5 * m**-0.5 * s**-1") assert u3.dimensions == magnetic_field_cgs assert u3.base_value == 1.0 # sqrt functions u4 = Unit("sqrt(kg)/sqrt(m)/s") assert u4.dimensions == magnetic_field_cgs assert u4.base_value == 1.0 # commutative sqrt function u5 = Unit("sqrt(kg/m)/s") assert u5.dimensions == magnetic_field_cgs assert u5.base_value == 1.0 # nonzero CGS conversion factor u6 = Unit("Msun/pc**3") assert u6.dimensions == mass / length**3 assert_array_almost_equal_nulp( np.array([u6.base_value]), np.array([mass_sun_kg / m_per_pc**3]) ) with pytest.raises(UnitParseError): Unit("m**m") with pytest.raises(UnitParseError): Unit("m**g") with pytest.raises(UnitParseError): Unit("m+g") with pytest.raises(UnitParseError): Unit("m-g") with pytest.raises(UnitParseError): Unit("hello!") with pytest.raises(UnitParseError): Unit("True") with pytest.raises(UnitParseError): Unit("else") with pytest.raises(UnitParseError): Unit("hello(37)") with pytest.raises(UnitParseError): Unit("hello(foo=37)") cm = Unit("cm") data = 1 * cm assert Unit(data) == cm assert Unit(b"cm") == cm def test_create_from_expr(): """ Create units from sympy Exprs and check attributes. """ pc_mks = m_per_pc yr_mks = sec_per_year # Symbol expr s1 = Symbol("pc", positive=True) s2 = Symbol("yr", positive=True) # Mul expr s3 = s1 * s2 # Pow expr s4 = s1**2 * s2 ** (-1) u1 = Unit(s1) u2 = Unit(s2) u3 = Unit(s3) u4 = Unit(s4) assert u1.expr == s1 assert u2.expr == s2 assert u3.expr == s3 assert u4.expr == s4 assert_allclose_units(u1.base_value, pc_mks, 1e-12) assert_allclose_units(u2.base_value, yr_mks, 1e-12) assert_allclose_units(u3.base_value, pc_mks * yr_mks, 1e-12) assert_allclose_units(u4.base_value, pc_mks**2 / yr_mks, 1e-12) assert u1.dimensions == length assert u2.dimensions == time assert u3.dimensions == length * time assert u4.dimensions == length**2 / time def test_create_with_duplicate_dimensions(): """ Create units with overlapping dimensions. Ex: km/Mpc. """ u1 = Unit("J * s**-1") u2 = Unit("km/s/Mpc") km_mks = m_per_km Mpc_mks = m_per_mpc assert u1.base_value == 1 assert u1.dimensions == power assert_allclose_units(u2.base_value, km_mks / Mpc_mks, 1e-12) assert u2.dimensions == rate def test_create_new_symbol(): """ Create unit with unknown symbol. """ u1 = Unit("abc", base_value=42, dimensions=(mass / time)) assert u1.expr == Symbol("abc", positive=True) assert u1.base_value == 42 assert u1.dimensions == mass / time u1 = Unit("abc", base_value=42, dimensions=length**3) assert u1.expr == Symbol("abc", positive=True) assert u1.base_value == 42 assert u1.dimensions == length**3 u1 = Unit("abc", base_value=42, dimensions=length * (mass * length)) assert u1.expr == Symbol("abc", positive=True) assert u1.base_value == 42 assert u1.dimensions == length**2 * mass with pytest.raises(UnitParseError): Unit("abc", base_value=42, dimensions=length**length) with pytest.raises(UnitParseError): Unit("abc", base_value=42, dimensions=length ** (length * length)) with pytest.raises(UnitParseError): Unit("abc", base_value=42, dimensions=length - mass) with pytest.raises(UnitParseError): Unit("abc", base_value=42, dimensions=length + mass) def test_create_fail_on_unknown_symbol(): """ Fail to create unit with unknown symbol, without base_value and dimensions. """ with pytest.raises(UnitParseError): Unit(Symbol("jigawatts")) def test_create_fail_on_bad_symbol_type(): """ Fail to create unit with bad symbol type. """ with pytest.raises(UnitParseError): Unit([1]) # something other than Expr and str def test_create_fail_on_bad_dimensions_type(): """ Fail to create unit with bad dimensions type. """ with pytest.raises(UnitParseError): Unit("a", base_value=1, dimensions="(mass)") def test_create_fail_on_dimensions_content(): """ Fail to create unit with bad dimensions expr. """ a = Symbol("a") with pytest.raises(UnitParseError): Unit("a", base_value=1, dimensions=a) def test_create_fail_on_base_value_type(): """ Fail to create unit with bad base_value type. """ with pytest.raises(UnitParseError): Unit("a", base_value="a", dimensions=(mass / time)) def test_string_representation(): """ Check unit string representation. """ pc = Unit("pc") Myr = Unit("Myr") speed = pc / Myr dimensionless = Unit() assert str(pc) == "pc" assert str(Myr) == "Myr" assert str(speed) == "pc/Myr" assert repr(speed) == "pc/Myr" assert str(dimensionless) == "dimensionless" assert repr(dimensionless) == "(dimensionless)" def test_multiplication(): """ Multiply two units. """ msun_mks = mass_sun_kg pc_mks = m_per_pc # Create symbols msun_sym = Symbol("Msun", positive=True) pc_sym = Symbol("pc", positive=True) s_sym = Symbol("s", positive=True) # Create units u1 = Unit("Msun") u2 = Unit("pc") # Mul operation u3 = u1 * u2 assert u3.expr == msun_sym * pc_sym assert_allclose_units(u3.base_value, msun_mks * pc_mks, 1e-12) assert u3.dimensions == mass * length # Pow and Mul operations u4 = Unit("pc**2") u5 = Unit("Msun * s") u6 = u4 * u5 assert u6.expr == pc_sym**2 * msun_sym * s_sym assert_allclose_units(u6.base_value, pc_mks**2 * msun_mks, 1e-12) assert u6.dimensions == length**2 * mass * time def test_division(): """ Divide two units. """ pc_mks = m_per_pc km_mks = m_per_km # Create symbols pc_sym = Symbol("pc", positive=True) km_sym = Symbol("km", positive=True) s_sym = Symbol("s", positive=True) # Create units u1 = Unit("pc") u2 = Unit("km * s") u3 = u1 / u2 assert u3.expr == pc_sym / (km_sym * s_sym) assert_allclose_units(u3.base_value, pc_mks / km_mks, 1e-12) assert u3.dimensions == 1 / time def test_power(): """ Take units to some power. """ from sympy import nsimplify from unyt import dimensionless pc_mks = m_per_pc mK_mks = 1e-3 u1_dims = mass * length**2 * time**-3 * temperature**4 u1 = Unit("kg * pc**2 * s**-3 * mK**4") u2 = u1**2 assert u2.dimensions == u1_dims**2 assert_allclose_units(u2.base_value, (pc_mks**2 * mK_mks**4) ** 2, 1e-12) u3 = u1 ** (-1.0 / 3) assert u3.dimensions == nsimplify(u1_dims ** (-1.0 / 3)) assert_allclose_units(u3.base_value, (pc_mks**2 * mK_mks**4) ** (-1.0 / 3), 1e-12) assert u1**0.0 == dimensionless def test_equality(): """ Check unit equality with different symbols, but same dimensions and base_value. """ u1 = Unit("km * s**-1") u2 = Unit("m * ms**-1") assert u1 == u2 assert u1.copy() == u2 def test_invalid_operations(): u1 = Unit("cm") u2 = Unit("m") with pytest.raises(InvalidUnitOperation): u1 + u2 with pytest.raises(InvalidUnitOperation): u1 += u2 with pytest.raises(InvalidUnitOperation): 1 + u1 with pytest.raises(InvalidUnitOperation): u1 + 1 with pytest.raises(InvalidUnitOperation): u1 - u2 with pytest.raises(InvalidUnitOperation): u1 -= u2 with pytest.raises(InvalidUnitOperation): 1 - u1 with pytest.raises(InvalidUnitOperation): u1 - 1 with pytest.raises(InvalidUnitOperation): u1 *= u2 with pytest.raises(TypeError): u1 * "hello!" with pytest.raises(InvalidUnitOperation): u1 /= u2 with pytest.raises(TypeError): u1 / "hello!" with pytest.raises(InvalidUnitOperation): Unit("B") * Unit("V") with pytest.raises(InvalidUnitOperation): Unit("V") * Unit("B") with pytest.raises(InvalidUnitOperation): Unit("V") / Unit("Np") with pytest.raises(InvalidUnitOperation): Unit("dB") / Unit("dB") with pytest.raises(InvalidUnitOperation): Unit("B") ** 2 def test_base_equivalent(): """ Check base equivalent of a unit. """ Msun_mks = mass_sun_kg Mpc_mks = m_per_mpc u1 = Unit("Msun * Mpc**-3") u2 = Unit("kg * m**-3") u3 = u1.get_base_equivalent() assert u2.expr == u3.expr assert u2 == u3 assert_allclose_units(u1.base_value, Msun_mks / Mpc_mks**3, 1e-12) assert u2.base_value == 1 assert u3.base_value == 1 mass_density = mass / length**3 assert u1.dimensions == mass_density assert u2.dimensions == mass_density assert u3.dimensions == mass_density assert_allclose_units(u1.get_conversion_factor(u3)[0], Msun_mks / Mpc_mks**3, 1e-12) with pytest.raises(UnitConversionError): u1.get_conversion_factor(Unit("m")) with pytest.raises(UnitConversionError): u1.get_conversion_factor(Unit("degF")) reg = UnitRegistry(unit_system=cgs_unit_system) u = Unit("kg", registry=reg) assert u.get_base_equivalent() == Unit("g") u = Unit("kg") assert u.get_base_equivalent() == Unit("kg") u = Unit("A") assert u.get_base_equivalent(unit_system="mks") == Unit("A") @pytest.mark.parametrize( ("u1", "u2"), [ (Unit("degC"), Unit("degF")), (Unit("degC"), Unit("K")), (Unit("degF"), Unit("K")), ], ) def test_temperature_offsets(u1, u2): with pytest.raises(InvalidUnitOperation): operator.mul(u1, u2) with pytest.raises(InvalidUnitOperation): operator.truediv(u1, u2) assert u1 != u2 assert u2 != u1 assert not u1 == u2 assert not u2 == u1 def test_latex_repr(): registry = UnitRegistry() # create a fake comoving unit registry.add( "pccm", registry.lut["pc"][0] / (1 + 2), length, "\\rm{pc}/(1+z)", prefixable=True, ) test_unit = Unit("Mpccm", registry=registry) assert_almost_equal(test_unit.base_value, m_per_mpc / 3) assert_equal(test_unit.latex_repr, r"\rm{Mpc}/(1+z)") test_unit = Unit("cm**-3", base_value=1.0, registry=registry) assert_equal(test_unit.latex_repr, "\\frac{1}{\\rm{cm}^{3}}") test_unit = Unit("m_geom/l_geom**3") assert_equal(test_unit.latex_repr, "\\frac{1}{\\rm{M}_\\odot^{2}}") test_unit = Unit("1e9*cm") assert_equal(test_unit.latex_repr, "1.0 \\times 10^{9}\\ \\rm{cm}") test_unit = Unit("1.0*cm") assert_equal(test_unit.latex_repr, "\\rm{cm}") def test_latitude_longitude(): lat = unit_symbols.lat lon = unit_symbols.lon deg = unit_symbols.deg assert_equal(lat.units.base_offset, 90.0) assert_equal((deg * 90.0).in_units("lat").value, 0.0) assert_equal((deg * 180).in_units("lat").value, -90.0) assert_equal((lat * 0.0).in_units("deg"), deg * 90.0) assert_equal((lat * -90).in_units("deg"), deg * 180) assert_equal(lon.units.base_offset, -180.0) assert_equal((deg * 0.0).in_units("lon").value, -180.0) assert_equal((deg * 90.0).in_units("lon").value, -90.0) assert_equal((deg * 180).in_units("lon").value, 0.0) assert_equal((deg * 360).in_units("lon").value, 180.0) assert_equal((lon * -180.0).in_units("deg"), deg * 0.0) assert_equal((lon * -90.0).in_units("deg"), deg * 90.0) assert_equal((lon * 0.0).in_units("deg"), deg * 180.0) assert_equal((lon * 180.0).in_units("deg"), deg * 360) def test_creation_from_unyt_array(): from unyt import electrostatic_unit, elementary_charge_cgs u1 = Unit(electrostatic_unit) assert_equal(str(u1), "statC") assert_equal(u1, Unit("esu")) assert_equal(u1, electrostatic_unit.units) u2 = Unit(elementary_charge_cgs) assert_equal(str(u2), "4.80320467299766e-10*statC") assert_equal(u2, Unit("4.80320467299766e-10*statC")) assert_equal(u1, elementary_charge_cgs.units) assert_allclose((u1 / u2).base_value, electrostatic_unit / elementary_charge_cgs) with pytest.raises(UnitParseError): Unit([1, 2, 3] * elementary_charge_cgs) def test_list_same_dimensions(): from unyt import m reg = default_unit_registry for equiv in reg.list_same_dimensions(m): assert Unit(equiv).dimensions is length def test_decagram(): dag = Unit("dag") g = Unit("g") assert dag.get_conversion_factor(g) == (10.0, None) def test_conversion_factor_dtype(): # the documented dtype argument should control the precision of the # returned conversion factor (and offset), see GH issue #579 km = Unit("km") m = Unit("m") factor, offset = km.get_conversion_factor(m, dtype=np.dtype("float32")) assert isinstance(factor, np.float32) assert factor == np.float32(1000.0) assert offset is None # offset case: a conversion with a non-zero offset should return both the # factor and the offset with the requested precision degC = Unit("degC") degF = Unit("degF") factor, offset = degC.get_conversion_factor(degF, dtype=np.float32) assert isinstance(factor, np.float32) assert isinstance(offset, np.float32) # a narrower request is widened to a minimum of 2 bytes, mirroring the # behaviour used internally in unyt.array factor, _ = km.get_conversion_factor(m, dtype=np.int8) assert isinstance(factor, np.float16) # a complex request uses the width of its real part; taking the whole item # size would name a float128 that does not exist on every platform factor, _ = km.get_conversion_factor(m, dtype=np.complex128) assert isinstance(factor, np.float64) factor, _ = km.get_conversion_factor(m, dtype=np.complex64) assert isinstance(factor, np.float32) # regression: without a dtype the result is unchanged (plain Python floats) factor, offset = km.get_conversion_factor(m) assert type(factor) is float assert offset is None factor, offset = degC.get_conversion_factor(degF) assert type(factor) is float assert type(offset) is float def test_pickle(): cm = Unit("cm") assert cm == pickle.loads(pickle.dumps(cm)) def test_preserve_offset(): from unyt import degF, dimensionless new_unit = degF * dimensionless assert new_unit is not degF assert new_unit == degF assert new_unit.base_offset == degF.base_offset new_unit = degF / dimensionless assert new_unit is not degF assert new_unit == degF assert new_unit.base_offset == degF.base_offset with pytest.raises(InvalidUnitOperation): dimensionless / degF def test_code_unit(): from unyt import UnitRegistry ureg = UnitRegistry() ureg.add("code_length", 10.0, length) ureg.add("code_magnetic_field", 2.0, magnetic_field_mks) u = Unit("code_length", registry=ureg) assert u.is_code_unit is True assert u.get_base_equivalent() == Unit("m") u = Unit("cm") assert u.is_code_unit is False u = Unit("code_magnetic_field", registry=ureg) assert u.get_base_equivalent("mks") == Unit("T") with pytest.raises(UnitsNotReducible): assert u.get_base_equivalent("cgs") # see issue #60 u = Unit("s/m") assert u.get_mks_equivalent() == Unit("s/m") assert u.get_mks_equivalent() != Unit("ohm") assert u.get_cgs_equivalent() == Unit("s/cm") u = Unit("kC") assert u.get_cgs_equivalent() == Unit("kesu") assert u.get_cgs_equivalent().get_mks_equivalent() == u UnitSystem(ureg.unit_system_id, "code_length", "kg", "s", registry=ureg) u = Unit("cm", registry=ureg) ue = u.get_base_equivalent("code") assert str(ue) == "code_length" assert ue.base_value == 10 assert ue.dimensions is length class FakeDataset: unit_registry = ureg ds = FakeDataset() UnitSystem(ds, "code_length", "kg", "s", registry=ureg) u = Unit("cm", registry=ureg) ue = u.get_base_equivalent(ds) assert str(ue) == "code_length" assert ue.base_value == 10 assert ue.dimensions is length with pytest.raises(UnitParseError): Unit("code_length") def test_bad_equivalence(): from unyt import cm with pytest.raises(KeyError): cm.has_equivalent("dne") def test_em_unit_base_equivalent(): from unyt import A, cm with pytest.raises(UnitsNotReducible): (A / cm).get_base_equivalent("cgs") def test_symbol_lut_length(): for v in default_unit_symbol_lut.values(): assert len(v) == 5 def test_simplify(): import unyt as u answers = { u.Hz * u.s: "dimensionless", u.kg / u.g: "1000", u.Hz * u.s * u.km: "km", u.kHz * u.s: "1000", u.kHz * u.s * u.km: "1000*km", u.kHz * u.s**2: "1000*s", u.kHz * u.s**2 * u.km: "1000*km*s", u.Hz**-1 * u.s: "s/Hz", u.Hz**-1 * u.s * u.km: "km*s/Hz", u.Hz**1.5 * u.s**1.7: "sqrt(Hz)*s**(7/10)", u.Hz**1.5 * u.s**1.7 * u.km: "sqrt(Hz)*km*s**(7/10)", u.m**2 / u.cm**2: "10000", } for unit, answer in answers.items(): assert str(unit.simplify()) == answer def test_micro_prefix(): import unyt as u # both versions of unicode mu work correctly assert u.um == u.µm assert u.um == u.μm # parsing both versions works as well assert u.ug == u.Unit("µg") assert u.ug == u.Unit("μg") def test_name_alternatives(): import unyt from unyt._unit_lookup_table import ( default_unit_name_alternatives, inv_name_alternatives, name_alternatives, ) # concatenated list of all alternative unit names allowed_names = sum(name_alternatives.values(), []) # ensure the values are all tuples and not e.g. strings for val in default_unit_name_alternatives.values(): assert isinstance(val, tuple) # all names are unique assert len(set(allowed_names)) == len(allowed_names) # each allowed name has a key in the inverse dict assert len(inv_name_alternatives.keys()) == len(allowed_names) assert set(inv_name_alternatives.keys()) == set(allowed_names) for name in allowed_names: assert hasattr(unyt, name) assert hasattr(unyt.unit_symbols, name) def test_solar_unit_name_alternatives(): import unyt from unyt import Unit # check that m_sun, m_Sun, M_sun, M_Sun, msun, and Msun all work for lower_name_prefix in "mrltz": base_name = lower_name_prefix + "sun" for name_prefix in [lower_name_prefix, lower_name_prefix.upper()]: alternative_names = [name_prefix + suf for suf in ["sun", "_sun", "_Sun"]] for name in alternative_names: assert Unit(name) == Unit(base_name) assert hasattr(unyt, name) # only solar mass units are in physical constants if lower_name_prefix == "m": assert hasattr(unyt.physical_constants, name) def test_attosecond(): from unyt import Unit, attosecond, second assert Unit("as") == attosecond assert str(Unit("as")) == "as" assert Unit("as/s") == attosecond / second def test_micro(): from unyt import Unit assert str(Unit("um")) == "μm" assert str(Unit("us")) == "μs" def test_show_all_units_doc_table_ops(): for name in set(name_alternatives.keys()): u = Unit(name) (1 * u).in_mks() try: (1 * u).in_cgs() except UnitsNotReducible: pass def test_hPa_mbar(): assert Unit("hPa").dimensions == Unit("bar").dimensions assert (5 * Unit("hPa") == 5 * Unit("mbar")).all() assert (5 * Unit("hPa") != 1 * Unit("bar")).all() def test_percent(): a = 300 * Unit("percent") b = 3.0 * Unit("dimensionless") c = 300.0 * Unit("%") d = 300.0 * Unit("V*%/V") assert a == b assert str(a) == "300 %" assert repr(a) == "unyt_quantity(300, '%')" assert a == c assert c == d def test_equal_has_same_hash(): a = Unit("m") b = Unit("m") c = Unit("m*s/s") assert a == b assert b == c assert hash(a) == hash(b) assert hash(b) == hash(c) def test_bel_neper(): assert Unit("B").dimensions == Unit("Np").dimensions a = 1 * Unit("B") / (np.log(10) / 2) assert_allclose_units(a.to("Np"), 1 * Unit("Np")) a = 2 * Unit("B") b = 20 * Unit("decibel") assert (a == b).all() c = 2 * Unit("Np") d = 20 * Unit("decineper") assert (c == d).all() assert Unit("dB") ** 1 == Unit("dB") def test_henry(): assert (Unit("H") / Unit("Ω")).dimensions == time def test_degC(): assert Unit("degree_celsius") == Unit("degC") assert Unit("degree_Celsius") == Unit("degC") assert Unit("Celsius") == Unit("degC") assert Unit("°C") == Unit("degC") a = 1 * Unit("degC") assert str(a) == "1 °C" def test_degC_with_SIprefixes(): assert_allclose_units(1 * Unit("mdegC"), 0.001 * Unit("degC")) assert_allclose_units(1 * Unit("degC"), 1000 * Unit("mdegC")) assert_allclose_units(73 * Unit("degF"), 22777.779 * Unit("mdegC")) assert_allclose_units(22777.779 * Unit("mdegC"), 73 * Unit("degF")) assert_allclose_units(22777.779 * Unit("mdegC"), 532.67 * Unit("R")) assert_allclose_units(1 * Unit("mK"), -273149.0 * Unit("mdegC")) assert_allclose_units(1 * Unit("mdegC"), 273151.0 * Unit("mK")) def test_delta_degC(): a = 1 * Unit("delta_degC") assert str(a) == "1 Δ°C" def test_degF(): assert Unit("degree_fahrenheit") == Unit("degF") assert Unit("degree_Fahrenheit") == Unit("degF") assert Unit("Fahrenheit") == Unit("degF") assert Unit("°F") == Unit("degF") a = 1 * Unit("degF") assert str(a) == "1 °F" def test_delta_degF(): a = 1 * Unit("delta_degF") assert str(a) == "1 Δ°F" def test_mixed_registry_operations(): reg = UnitRegistry(unit_system="cgs") reg.add("fake_length", 0.001, length) a = unyt_quantity(1, units="fake_length", registry=reg) b = unyt_quantity(1, "cm") assert_almost_equal(a + b, b + a) assert_almost_equal(a - b, -(b - a)) assert_almost_equal(a * b, b * a) assert_almost_equal(b / a, b / a.in_units("km")) assert_almost_equal(a / b, a / b.in_units("km")) def test_other_argument_can_handle_multiplication_and_division(): class MyClass: def __init__(self, x): self.x = x def __mul__(self, other): return self.x * other def __rmul__(self, other): return self.__mul__(other) def __truediv__(self, other): return self.x / other def __rtruediv__(self, other): return other / self.x u = Unit("m") x = 5 mc = MyClass(x=x) assert_almost_equal(x * u, mc * u) # handled by MyClass.__mul__ assert_almost_equal(x * u, u * mc) # handled by MyClass.__mul__ assert_almost_equal(x / u, mc / u) # handled by MyClass.__truediv__ assert_almost_equal(u / x, u / mc) # handled by MyClass.__rtruediv__ def test_other_argument_typeerror_on_multiplication_or_division(): class MyClass: def __init__(self): return def __mul__(self, other): return other * None # always raises TypeError def __rtruediv__(self, other): return other / None # always raises TypeError u = Unit("m") mc = MyClass() mul_msg = r"unsupported operand type\(s\) for \*" div_msg = r"unsupported operand type\(s\) for \/" # only test for case when MyClass is right argument, when left it's its own problem with pytest.raises(TypeError, match=mul_msg): u * mc with pytest.raises(TypeError, match=div_msg): u / mc def test_other_argument_cannot_handle_multiplication_and_division(): class MyClass: def __init__(self, x): self.x = x u = Unit("m") x = 5 mc = MyClass(x=x) mul_msg = r"unsupported operand type\(s\) for \*" div_msg = r"unsupported operand type\(s\) for \/" with pytest.raises(TypeError, match=mul_msg): mc * u with pytest.raises(TypeError, match=mul_msg): u * mc with pytest.raises(TypeError, match=mul_msg): mc / u # handled as multiplication by inverse so expect mul_msg with pytest.raises(TypeError, match=div_msg): u / mc def test_other_argument_explicitly_cannot_handle_multiplication_and_division(): class MyClass: def __init__(self, x): self.x = x def __mul__(self, x): return NotImplemented def __rtruediv__(self, x): return NotImplemented u = Unit("m") x = 5 mc = MyClass(x=x) mul_msg = r"unsupported operand type\(s\) for \*" div_msg = r"unsupported operand type\(s\) for \/" with pytest.raises(TypeError, match=mul_msg): mc * u with pytest.raises(TypeError, match=mul_msg): u * mc with pytest.raises(TypeError, match=mul_msg): mc / u # handled as multiplication by inverse so expect mul_msg with pytest.raises(TypeError, match=div_msg): u / mc unyt-3.2.0/unyt/tests/test_unyt_array.py000066400000000000000000003061701526544257300205060ustar00rootroot00000000000000""" Test ndarray subclass that handles symbolic units. """ import copy import itertools import math import operator import os import pickle import re import shutil import tempfile from importlib.metadata import version import numpy as np import pytest from numpy import array from numpy.testing import ( assert_almost_equal, assert_array_almost_equal, assert_array_equal, assert_equal, ) from packaging.version import Version from unyt import K, Msun, R, Unit, degC, degF, delta_degC, delta_degF, dimensions from unyt._on_demand_imports import _astropy, _h5py, _pint from unyt._physical_ratios import metallicity_sun, speed_of_light_cm_per_s from unyt.array import ( binary_operators, loadtxt, savetxt, uconcatenate, ucross, udot, uintersect1d, unary_operators, unorm, unyt_array, unyt_quantity, ustack, uunion1d, uvstack, ) from unyt.exceptions import ( InvalidUnitEquivalence, InvalidUnitOperation, IterableUnitCoercionError, UnitConversionError, UnitOperationError, UnitParseError, UnitsNotReducible, ) from unyt.testing import ( _process_warning, assert_allclose_units, assert_array_equal_units, ) from unyt.unit_registry import UnitRegistry from unyt.unit_symbols import cm, degree, g, m NUMPY_VERSION = Version(version("numpy")) def operate_and_compare(a, b, op, answer): # Test generator for unyt_arrays tests assert_array_almost_equal(op(a, b), answer) def assert_isinstance(a, type): assert isinstance(a, type) def test_addition(): """ Test addition of two unyt_arrays """ # Same units a1 = unyt_array([1, 2, 3], "cm") a2 = unyt_array([4, 5, 6], "cm") a3 = [4 * cm, 5 * cm, 6 * cm] answer = unyt_array([5, 7, 9], "cm") operate_and_compare(a1, a2, operator.add, answer) operate_and_compare(a2, a1, operator.add, answer) operate_and_compare(a1, a3, operator.add, answer) operate_and_compare(a3, a1, operator.add, answer) operate_and_compare(a2, a1, np.add, answer) operate_and_compare(a1, a2, np.add, answer) operate_and_compare(a1, a3, np.add, answer) operate_and_compare(a3, a1, np.add, answer) # different units a1 = unyt_array([1, 2, 3], "cm") a2 = unyt_array([4, 5, 6], "m") a3 = [4 * m, 5 * m, 6 * m] answer1 = unyt_array([401, 502, 603], "cm") answer2 = unyt_array([4.01, 5.02, 6.03], "m") operate_and_compare(a1, a2, operator.add, answer1) operate_and_compare(a2, a1, operator.add, answer2) operate_and_compare(a1, a3, operator.add, answer1) operate_and_compare(a3, a1, operator.add, answer2) operate_and_compare(a1, a2, np.add, answer1) operate_and_compare(a2, a1, np.add, answer2) operate_and_compare(a1, a3, np.add, answer1) operate_and_compare(a3, a1, np.add, answer2) # Test dimensionless quantities a1 = unyt_array([1, 2, 3]) a2 = array([4, 5, 6]) a3 = [4, 5, 6] answer = unyt_array([5, 7, 9]) operate_and_compare(a1, a2, operator.add, answer) operate_and_compare(a2, a1, operator.add, answer) operate_and_compare(a1, a3, operator.add, answer) operate_and_compare(a3, a1, operator.add, answer) operate_and_compare(a1, a2, np.add, answer) operate_and_compare(a2, a1, np.add, answer) operate_and_compare(a1, a3, np.add, answer) operate_and_compare(a3, a1, np.add, answer) # Catch the different dimensions error a1 = unyt_array([1, 2, 3], "m") a2 = unyt_array([4, 5, 6], "kg") a3 = [7, 8, 9] a4 = unyt_array([10, 11, 12], "") with pytest.raises(UnitOperationError): operator.add(a1, a2) with pytest.raises(UnitOperationError): operator.iadd(a1, a2) with pytest.raises(UnitOperationError): operator.add(a1, a3) with pytest.raises(UnitOperationError): operator.iadd(a1, a3) with pytest.raises(UnitOperationError): operator.add(a3, a1) with pytest.raises(UnitOperationError): operator.iadd(a3, a1) with pytest.raises(UnitOperationError): operator.add(a1, a4) with pytest.raises(UnitOperationError): operator.iadd(a1, a4) with pytest.raises(UnitOperationError): operator.add(a4, a1) with pytest.raises(UnitOperationError): operator.iadd(a4, a1) # adding with zero is allowed irrespective of the units zeros = np.zeros(3) zeros_yta_dimless = unyt_array(zeros, "dimensionless") zeros_yta_length = unyt_array(zeros, "m") zeros_yta_mass = unyt_array(zeros, "kg") operands = [0, zeros, zeros_yta_length] for op in [operator.add, np.add]: for operand in operands: operate_and_compare(a1, operand, op, a1) operate_and_compare(operand, a1, op, a1) operate_and_compare(4 * m, operand, op, 4 * m) operate_and_compare(operand, 4 * m, op, 4 * m) operands = [ unyt_quantity(0), unyt_quantity(0, "kg"), zeros_yta_dimless, zeros_yta_mass, ] for op in [operator.add, np.add]: for operand in operands: with pytest.raises(UnitOperationError): operate_and_compare(a1, operand, op, a1) with pytest.raises(UnitOperationError): operate_and_compare(operand, a1, op, a1) with pytest.raises(UnitOperationError): operate_and_compare(4 * m, operand, op, 4 * m) with pytest.raises(UnitOperationError): operate_and_compare(operand, 4 * m, op, 4 * m) def test_subtraction(): """ Test subtraction of two unyt_arrays """ # Same units a1 = unyt_array([1, 2, 3], "cm") a2 = unyt_array([4, 5, 6], "cm") a3 = [4 * cm, 5 * cm, 6 * cm] answer1 = unyt_array([-3, -3, -3], "cm") answer2 = unyt_array([3, 3, 3], "cm") operate_and_compare(a1, a2, operator.sub, answer1) operate_and_compare(a2, a1, operator.sub, answer2) operate_and_compare(a1, a3, operator.sub, answer1) operate_and_compare(a3, a1, operator.sub, answer2) operate_and_compare(a1, a2, np.subtract, answer1) operate_and_compare(a2, a1, np.subtract, answer2) operate_and_compare(a1, a3, np.subtract, answer1) operate_and_compare(a3, a1, np.subtract, answer2) # different units a1 = unyt_array([1, 2, 3], "cm") a2 = unyt_array([4, 5, 6], "m") a3 = [4 * m, 5 * m, 6 * m] answer1 = unyt_array([-399, -498, -597], "cm") answer2 = unyt_array([3.99, 4.98, 5.97], "m") answer3 = unyt_array([399, 498, 597], "cm") operate_and_compare(a1, a2, operator.sub, answer1) operate_and_compare(a2, a1, operator.sub, answer2) operate_and_compare(a1, a3, operator.sub, answer1) operate_and_compare(a3, a1, operator.sub, answer3) operate_and_compare(a1, a2, np.subtract, answer1) operate_and_compare(a2, a1, np.subtract, answer2) operate_and_compare(a1, a3, np.subtract, answer1) operate_and_compare(a3, a1, np.subtract, answer3) # Test dimensionless quantities a1 = unyt_array([1, 2, 3]) a2 = array([4, 5, 6]) a3 = [4, 5, 6] answer1 = unyt_array([-3, -3, -3]) answer2 = unyt_array([3, 3, 3]) operate_and_compare(a1, a2, operator.sub, answer1) operate_and_compare(a2, a1, operator.sub, answer2) operate_and_compare(a1, a3, operator.sub, answer1) operate_and_compare(a3, a1, operator.sub, answer2) operate_and_compare(a1, a2, np.subtract, answer1) operate_and_compare(a2, a1, np.subtract, answer2) operate_and_compare(a1, a3, np.subtract, answer1) operate_and_compare(a3, a1, np.subtract, answer2) # Catch the different dimensions error a1 = unyt_array([1, 2, 3], "m") a2 = unyt_array([4, 5, 6], "kg") a3 = [7, 8, 9] a4 = unyt_array([10, 11, 12], "") with pytest.raises(UnitOperationError): operator.sub(a1, a2) with pytest.raises(UnitOperationError): operator.isub(a1, a2) with pytest.raises(UnitOperationError): operator.sub(a1, a3) with pytest.raises(UnitOperationError): operator.isub(a1, a3) with pytest.raises(UnitOperationError): operator.sub(a3, a1) with pytest.raises(UnitOperationError): operator.isub(a3, a1) with pytest.raises(UnitOperationError): operator.sub(a1, a4) with pytest.raises(UnitOperationError): operator.isub(a1, a4) with pytest.raises(UnitOperationError): operator.sub(a4, a1) with pytest.raises(UnitOperationError): operator.isub(a4, a1) # subtracting with zero is allowed irrespective of the units zeros = np.zeros(3) zeros_yta_dimless = unyt_array(zeros, "dimensionless") zeros_yta_length = unyt_array(zeros, "m") zeros_yta_mass = unyt_array(zeros, "kg") operands = [0, zeros, zeros_yta_length] for op in [operator.sub, np.subtract]: for operand in operands: operate_and_compare(a1, operand, op, a1) operate_and_compare(operand, a1, op, -a1) operate_and_compare(4 * m, operand, op, 4 * m) operate_and_compare(operand, 4 * m, op, -4 * m) operands = [ unyt_quantity(0), unyt_quantity(0, "kg"), zeros_yta_dimless, zeros_yta_mass, ] for op in [operator.sub, np.subtract]: for operand in operands: with pytest.raises(UnitOperationError): operate_and_compare(a1, operand, op, a1) with pytest.raises(UnitOperationError): operate_and_compare(operand, a1, op, -a1) with pytest.raises(UnitOperationError): operate_and_compare(4 * m, operand, op, 4 * m) with pytest.raises(UnitOperationError): operate_and_compare(operand, 4 * m, op, -4 * m) def test_multiplication(): """ Test multiplication of two unyt_arrays """ # Same units a1 = unyt_array([1, 2, 3], "cm") a2 = unyt_array([4, 5, 6], "cm") a3 = [4 * cm, 5 * cm, 6 * cm] answer = unyt_array([4, 10, 18], "cm**2") operate_and_compare(a1, a2, operator.mul, answer) operate_and_compare(a2, a1, operator.mul, answer) operate_and_compare(a1, a3, operator.mul, answer) operate_and_compare(a3, a1, operator.mul, answer) operate_and_compare(a1, a2, np.multiply, answer) operate_and_compare(a2, a1, np.multiply, answer) operate_and_compare(a1, a3, np.multiply, answer) operate_and_compare(a3, a1, np.multiply, answer) # different units, same dimension a1 = unyt_array([1, 2, 3], "cm") a2 = unyt_array([4, 5, 6], "m") a3 = [4 * m, 5 * m, 6 * m] answer1 = unyt_array([400, 1000, 1800], "cm**2") answer2 = unyt_array([0.04, 0.10, 0.18], "m**2") answer3 = unyt_array([4, 10, 18], "cm*m") operate_and_compare(a1, a2, operator.mul, answer1) operate_and_compare(a2, a1, operator.mul, answer2) operate_and_compare(a1, a3, operator.mul, answer1) operate_and_compare(a3, a1, operator.mul, answer2) operate_and_compare(a1, a2, np.multiply, answer3) operate_and_compare(a2, a1, np.multiply, answer3) operate_and_compare(a1, a3, np.multiply, answer3) operate_and_compare(a3, a1, np.multiply, answer3) # different dimensions a1 = unyt_array([1, 2, 3], "cm") a2 = unyt_array([4, 5, 6], "g") a3 = [4 * g, 5 * g, 6 * g] answer = unyt_array([4, 10, 18], "cm*g") operate_and_compare(a1, a2, operator.mul, answer) operate_and_compare(a2, a1, operator.mul, answer) operate_and_compare(a1, a3, operator.mul, answer) operate_and_compare(a3, a1, operator.mul, answer) operate_and_compare(a1, a2, np.multiply, answer) operate_and_compare(a2, a1, np.multiply, answer) operate_and_compare(a1, a3, np.multiply, answer) operate_and_compare(a3, a1, np.multiply, answer) # One dimensionless, one unitful a1 = unyt_array([1, 2, 3], "cm") a2 = array([4, 5, 6]) a3 = [4, 5, 6] answer = unyt_array([4, 10, 18], "cm") operate_and_compare(a1, a2, operator.mul, answer) operate_and_compare(a2, a1, operator.mul, answer) operate_and_compare(a1, a3, operator.mul, answer) operate_and_compare(a3, a1, operator.mul, answer) operate_and_compare(a1, a2, np.multiply, answer) operate_and_compare(a2, a1, np.multiply, answer) operate_and_compare(a1, a3, np.multiply, answer) operate_and_compare(a3, a1, np.multiply, answer) # Both dimensionless quantities a1 = unyt_array([1, 2, 3]) a2 = array([4, 5, 6]) a3 = [4, 5, 6] answer = unyt_array([4, 10, 18]) operate_and_compare(a1, a2, operator.mul, answer) operate_and_compare(a2, a1, operator.mul, answer) operate_and_compare(a1, a3, operator.mul, answer) operate_and_compare(a3, a1, operator.mul, answer) operate_and_compare(a1, a2, np.multiply, answer) operate_and_compare(a2, a1, np.multiply, answer) operate_and_compare(a1, a3, np.multiply, answer) operate_and_compare(a3, a1, np.multiply, answer) # With np.multiply.reduce a = unyt_array([1.0, 2.0, 3.0], "cm") answer = unyt_quantity(6.0, "cm**3") assert_equal(np.multiply.reduce(a), answer) a = unyt_array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]], "cm") answer = unyt_array([6.0, 120.0], "cm**3") assert_equal(np.multiply.reduce(a, axis=1), answer) def test_multiplication_by_msun_preserves_precision(): values_to_test = ( np.float32(1), np.array([1, 2], dtype=np.float32), unyt_array([1, 2], "m", dtype=np.float32), ) value = unyt_quantity(np.float32(1), "m") for mass in (Msun, Msun.in_base("galactic")): for values in values_to_test: assert (values * mass).dtype == values.dtype assert (mass * values).dtype == values.dtype left = value * mass right = mass * value assert_equal(left, right) # With two quantities, neither operand is unit metadata, so normal NumPy # promotion applies. assert left.dtype == right.dtype == np.result_type(value.dtype, mass.dtype) def test_division(): """ Test division of two unyt_arrays """ # Same units a1 = unyt_array([1.0, 2.0, 3.0], "cm") a2 = unyt_array([4.0, 5.0, 6.0], "cm") a3 = [4 * cm, 5 * cm, 6 * cm] answer1 = unyt_array([0.25, 0.4, 0.5]) answer2 = unyt_array([4, 2.5, 2]) op = operator.truediv operate_and_compare(a1, a2, op, answer1) operate_and_compare(a2, a1, op, answer2) operate_and_compare(a1, a3, op, answer1) operate_and_compare(a3, a1, op, answer2) operate_and_compare(a1, a2, np.divide, answer1) operate_and_compare(a2, a1, np.divide, answer2) operate_and_compare(a1, a3, np.divide, answer1) operate_and_compare(a3, a1, np.divide, answer2) # different units, same dimension a1 = unyt_array([1.0, 2.0, 3.0], "cm") a2 = unyt_array([4.0, 5.0, 6.0], "m") a3 = [4 * m, 5 * m, 6 * m] answer1 = unyt_array([0.0025, 0.004, 0.005]) answer2 = unyt_array([400, 250, 200]) operate_and_compare(a1, a2, op, answer1) operate_and_compare(a2, a1, op, answer2) operate_and_compare(a1, a3, op, answer1) operate_and_compare(a3, a1, op, answer2) operate_and_compare(a1, a2, np.divide, answer1) operate_and_compare(a2, a1, np.divide, answer2) operate_and_compare(a1, a3, np.divide, answer1) operate_and_compare(a3, a1, np.divide, answer2) # different dimensions a1 = unyt_array([1.0, 2.0, 3.0], "cm") a2 = unyt_array([4.0, 5.0, 6.0], "g") a3 = [4 * g, 5 * g, 6 * g] answer1 = unyt_array([0.25, 0.4, 0.5], "cm/g") answer2 = unyt_array([4, 2.5, 2], "g/cm") operate_and_compare(a1, a2, op, answer1) operate_and_compare(a2, a1, op, answer2) operate_and_compare(a1, a3, op, answer1) operate_and_compare(a3, a1, op, answer2) operate_and_compare(a1, a2, np.divide, answer1) operate_and_compare(a2, a1, np.divide, answer2) operate_and_compare(a1, a3, np.divide, answer1) operate_and_compare(a3, a1, np.divide, answer2) # One dimensionless, one unitful a1 = unyt_array([1.0, 2.0, 3.0], "cm") a2 = array([4.0, 5.0, 6.0]) a3 = [4, 5, 6] answer1 = unyt_array([0.25, 0.4, 0.5], "cm") answer2 = unyt_array([4, 2.5, 2], "1/cm") operate_and_compare(a1, a2, op, answer1) operate_and_compare(a2, a1, op, answer2) operate_and_compare(a1, a3, op, answer1) operate_and_compare(a3, a1, op, answer2) operate_and_compare(a1, a2, np.divide, answer1) operate_and_compare(a2, a1, np.divide, answer2) operate_and_compare(a1, a3, np.divide, answer1) operate_and_compare(a3, a1, np.divide, answer2) # Both dimensionless quantities a1 = unyt_array([1.0, 2.0, 3.0]) a2 = array([4.0, 5.0, 6.0]) a3 = [4, 5, 6] answer1 = unyt_array([0.25, 0.4, 0.5]) answer2 = unyt_array([4, 2.5, 2]) operate_and_compare(a1, a2, op, answer1) operate_and_compare(a2, a1, op, answer2) operate_and_compare(a1, a3, op, answer1) operate_and_compare(a3, a1, op, answer2) operate_and_compare(a1, a3, np.divide, answer1) operate_and_compare(a3, a1, np.divide, answer2) operate_and_compare(a1, a3, np.divide, answer1) operate_and_compare(a3, a1, np.divide, answer2) # With np.multiply.reduce a = unyt_array([3.0, 2.0, 1.0], "cm") answer = unyt_quantity(1.5, "cm**-1") assert_equal(np.divide.reduce(a), answer) a = unyt_array([[3.0, 2.0, 1.0], [6.0, 5.0, 4.0]], "cm") answer = unyt_array([1.5, 0.3], "cm**-1") assert_equal(np.divide.reduce(a, axis=1), answer) def test_power(): """ Test power operator ensure units are correct. """ from unyt import cm cm_arr = np.array([1.0, 1.0]) * cm cm_quant = 1.0 * cm assert_equal((1 * cm) ** 3, unyt_quantity(1, "cm**3")) assert_equal(np.power((1 * cm), 3), unyt_quantity(1, "cm**3")) assert_equal((1 * cm) ** unyt_quantity(3), unyt_quantity(1, "cm**3")) with pytest.raises(UnitOperationError): np.power((1 * cm), unyt_quantity(3, "g")) with pytest.raises(InvalidUnitOperation): np.power(cm, cm) assert_equal(cm_arr**3, unyt_array([1, 1], "cm**3")) assert_equal(np.power(cm_arr, 3), unyt_array([1, 1], "cm**3")) assert_equal(cm_arr ** unyt_quantity(3), unyt_array([1, 1], "cm**3")) with pytest.raises(UnitOperationError): np.power(cm_arr, unyt_quantity(3, "g")) try: np.power(cm_arr, unyt_quantity(3, "g")) except UnitOperationError as err: assert isinstance(err.unit1, Unit) assert isinstance(err.unit2, Unit) # when the power is 0.0 numpy short-circuits via ones_like so we # need to test the special handling for that case assert_array_equal_units(cm_quant**0, unyt_quantity(1.0, "dimensionless")) assert_array_equal_units(cm_arr**0, unyt_quantity(1.0, "dimensionless")) @pytest.mark.parametrize( "p", [ pytest.param(unyt_array(0), id="scalar power 0"), pytest.param(unyt_array(1), id="scalar power 1"), pytest.param(unyt_array([0, 0, 0, 0]), id="uniform power 0"), pytest.param(unyt_array([1, 1, 1, 1]), id="uniform power 1"), pytest.param(unyt_array([0, 1, 2, 3]), id="non-uniform power"), ], ) def test_dimensionless_array_power(p): # see https://github.com/yt-project/unyt/issues/522 a = unyt_array([1, 2, 3, 4]) expected = a.value**p.value assert_array_equal(expected, (a**p).value) @pytest.mark.parametrize( "a, p", [ pytest.param( unyt_array([0, 1, 2, 3], "cm"), unyt_array([0, 1, 2, 3]), id="non-uniform power with arr non dimensionless", ), pytest.param( unyt_array([0, 1, 2, 3]), unyt_array([0, 0, 0, 0], "cm"), id="non dimensionless power", ), ], ) def test_invalid_array_power(a, p): # see https://github.com/yt-project/unyt/issues/522 with pytest.raises(UnitOperationError): a**p def test_comparisons(): """ Test numpy ufunc comparison operators for unit consistency. """ from unyt.array import unyt_array a1 = unyt_array([1, 2, 3], "cm") a2 = unyt_array([2, 1, 3], "cm") a3 = unyt_array([0.02, 0.01, 0.03], "m") a4 = unyt_array([1, 2, 3], "g") dimless = np.array([2, 1, 3]) ops = (np.less, np.less_equal, np.greater, np.greater_equal, np.equal, np.not_equal) answers = ( [True, False, False], [True, False, True], [False, True, False], [False, True, True], [False, False, True], [True, True, False], ) for op, answer in zip(ops, answers): operate_and_compare(a1, a2, op, answer) for op, answer in zip(ops, answers): operate_and_compare(a1, dimless, op, answer) for op, answer in zip(ops, answers): operate_and_compare(a1, a3, op, answer) for op, answer in zip(ops, answers): operate_and_compare(a1, a3.in_units("cm"), op, answer) # Check that comparisons with dimensionless quantities work in both # directions. operate_and_compare(a3, dimless, np.less, [True, True, True]) operate_and_compare(dimless, a3, np.less, [False, False, False]) assert_equal(a1 < 2, [True, False, False]) assert_equal(a1 < 2, np.less(a1, 2)) assert_equal(2 < a1, [False, False, True]) assert_equal(2 < a1, np.less(2, a1)) # Check that comparisons with arrays that have different units with # different dimensions work properly operate_and_compare(a1, a4, np.equal, [False, False, False]) operate_and_compare(a1, a4, np.not_equal, [True, True, True]) # check that comparing quantities returns bools and not 0-D arrays el1, el4 = a1[0], a4[0] assert (el1 == el4) is False assert (el1 != el4) is True # comparisons that aren't == and != with pytest.raises(UnitOperationError): np.greater(a1, a4) with pytest.raises(UnitOperationError): a1 > a4 # noqa: B015 with pytest.raises(UnitOperationError): np.greater(el1, el4) with pytest.raises(UnitOperationError): el1 > el4 # noqa: B015 def test_unit_conversions(): """ Test operations that convert to different units or cast to ndarray """ from unyt.array import unyt_quantity from unyt.unit_object import Unit km = unyt_quantity(1.0, "km", dtype="float64") km_in_cm = km.in_units("cm") cm_unit = Unit("cm") kpc_unit = Unit("kpc") assert_equal(km_in_cm, km) assert_equal(km_in_cm.in_cgs(), 1e5) assert_equal(km_in_cm.in_mks(), 1e3) assert_equal(km_in_cm.units, cm_unit) km_view = km.ndarray_view() km.convert_to_units("cm") assert km_view.base is km.base assert_equal(km, unyt_quantity(1, "km")) assert_equal(km.in_cgs(), 1e5) assert_equal(km.in_mks(), 1e3) assert_equal(km.units, cm_unit) km.convert_to_units("kpc") assert km_view.base is km.base assert_array_almost_equal(km, unyt_quantity(1, "km")) assert_array_almost_equal(km.in_cgs(), unyt_quantity(1e5, "cm")) assert_array_almost_equal(km.in_mks(), unyt_quantity(1e3, "m")) assert_equal(km.units, kpc_unit) assert_isinstance(km.to_ndarray(), np.ndarray) assert_isinstance(km.ndarray_view(), np.ndarray) dyne = unyt_quantity(1.0, "dyne") assert_equal(dyne.in_cgs(), dyne) assert_equal(dyne.in_cgs(), 1.0) assert_equal(dyne.in_mks(), dyne) assert_equal(dyne.in_mks(), 1e-5) assert_equal(str(dyne.in_mks().units), "N") assert_equal(str(dyne.in_cgs().units), "dyn") em3 = unyt_quantity(1.0, "erg/m**3") assert_equal(em3.in_cgs(), em3) assert_equal(em3.in_cgs(), 1e-6) assert_equal(em3.in_mks(), em3) assert_equal(em3.in_mks(), 1e-7) assert_equal(str(em3.in_mks().units), "Pa") assert_equal(str(em3.in_cgs().units), "dyn/cm**2") em3_converted = unyt_quantity(1545436840.386756, "Msun/(Myr**2*kpc)") assert_equal(em3.in_base(unit_system="galactic"), em3) assert_array_almost_equal(em3.in_base(unit_system="galactic"), em3_converted) assert_equal(str(em3.in_base(unit_system="galactic").units), "Msun/(Myr**2*kpc)") dimless = unyt_quantity(1.0, "") assert_equal(dimless.in_cgs(), dimless) assert_equal(dimless.in_cgs(), 1.0) assert_equal(dimless.in_mks(), dimless) assert_equal(dimless.in_mks(), 1.0) assert_equal(str(dimless.in_cgs().units), "dimensionless") kg = unyt_quantity(1.0, "kg") assert kg.to(g).v == 1000 assert kg.in_units(g).v == 1000 kg.convert_to_units(g) assert kg.v == 1000 ten_grams = 10 * g assert kg.to(ten_grams).v == 100 assert kg.in_units(ten_grams).v == 100 kg.convert_to_units(ten_grams) assert kg.v == 100 with pytest.raises(UnitParseError): kg.to([1, 2] * g) with pytest.raises(UnitParseError): kg.in_units([1, 2] * g) with pytest.raises(UnitParseError): kg.convert_to_units([1, 2] * g) def test_temperature_conversions(): """ Test conversions between various supported temperatue scales. Also ensure we only allow compound units with temperature scales that have a proper zero point. """ from unyt.unit_object import InvalidUnitOperation km = unyt_quantity(1, "km", dtype="float64") balmy = unyt_quantity(300, "K", dtype="float64") balmy_F = unyt_quantity(80.33, "degF") balmy_C = unyt_quantity(26.85, "degC") balmy_R = unyt_quantity(540, "R") assert_array_almost_equal(balmy.in_units("degF").d, balmy_F.d) assert balmy.in_units("degF").units, balmy_F.units assert_array_almost_equal(balmy.in_units("degC").d, balmy_C.d) assert balmy.in_units("degC").units, balmy_C.units assert_array_almost_equal(balmy.in_units("R").d, balmy_R.d) assert balmy.in_units("R").units == balmy_R.units balmy_view = balmy.ndarray_view() balmy.convert_to_units("degF") assert balmy_view.base is balmy.base assert_array_almost_equal(np.array(balmy), np.array(balmy_F)) balmy.convert_to_units("degC") assert balmy_view.base is balmy.base assert_array_almost_equal(np.array(balmy), np.array(balmy_C)) balmy.convert_to_units("R") assert balmy_view.base is balmy.base assert_array_almost_equal(np.array(balmy), np.array(balmy_R)) balmy.convert_to_units("degF") assert balmy_view.base is balmy.base assert_array_almost_equal(np.array(balmy), np.array(balmy_F)) with pytest.raises(InvalidUnitOperation): np.multiply(balmy, km) with pytest.raises(InvalidUnitOperation): np.multiply(balmy, balmy) with pytest.raises(InvalidUnitOperation): np.multiply(balmy_F, balmy_F) with pytest.raises(InvalidUnitOperation): np.multiply(balmy_F, balmy_C) with pytest.raises(InvalidUnitOperation): np.divide(balmy, balmy) with pytest.raises(InvalidUnitOperation): np.divide(balmy_F, balmy_F) with pytest.raises(InvalidUnitOperation): np.divide(balmy_F, balmy_C) with pytest.raises(InvalidUnitOperation): balmy * km with pytest.raises(InvalidUnitOperation): balmy * balmy with pytest.raises(InvalidUnitOperation): balmy_F * balmy_F with pytest.raises(InvalidUnitOperation): balmy_F * balmy_C with pytest.raises(InvalidUnitOperation): 2 * balmy_F with pytest.raises(InvalidUnitOperation): balmy / balmy with pytest.raises(InvalidUnitOperation): balmy_F / balmy_F with pytest.raises(InvalidUnitOperation): balmy_F / balmy_C assert np.add(balmy_F, balmy_F) == unyt_quantity(80.33 * 2, "degF") with pytest.raises(InvalidUnitOperation): np.add(balmy_F, balmy_C) with pytest.raises(InvalidUnitOperation): balmy_F + balmy_C assert_equal(np.subtract(balmy_C, balmy_C), unyt_quantity(0, "degC")) with pytest.raises(InvalidUnitOperation): np.subtract(balmy_F, balmy_C) with pytest.raises(InvalidUnitOperation): balmy_F - balmy_C # Does CGS conversion from F to K work? assert_array_almost_equal(balmy.in_cgs(), unyt_quantity(300, "K")) def test_unyt_array_unyt_quantity_ops(): """ Test operations that combine unyt_array and unyt_quantity """ a = unyt_array(range(10, 1), "cm") b = unyt_quantity(5, "g") assert_isinstance(a * b, unyt_array) assert_isinstance(b * a, unyt_array) assert_isinstance(a / b, unyt_array) assert_isinstance(b / a, unyt_array) assert_isinstance(a * a, unyt_array) assert_isinstance(a / a, unyt_array) assert_isinstance(b * b, unyt_quantity) assert_isinstance(b / b, unyt_quantity) def test_selecting(): """ Test slicing of two unyt_arrays """ a = unyt_array(range(10), "cm") a_slice = a[:3] a_fancy_index = a[[1, 1, 3, 5]] a_array_fancy_index = a[array([[1, 1], [3, 5]])] a_boolean_index = a[a > 5] a_selection = a[0] assert_array_equal(a_slice, unyt_array([0, 1, 2], "cm")) assert_equal(a_slice.units, a.units) assert_array_equal(a_fancy_index, unyt_array([1, 1, 3, 5], "cm")) assert_equal(a_fancy_index.units, a.units) assert_array_equal(a_array_fancy_index, unyt_array([[1, 1], [3, 5]], "cm")) assert_equal(a_array_fancy_index.units, a.units) assert_array_equal(a_boolean_index, unyt_array([6, 7, 8, 9], "cm")) assert_equal(a_boolean_index.units, a.units) assert_isinstance(a_selection, unyt_quantity) assert_equal(a_selection.units, a.units) # .base points to the original array for a numpy view. If it is not a # view, .base is None. assert a_slice.base is a def test_iteration(): """ Test that iterating over a unyt_array returns a sequence of unyt_quantity instances """ a = np.arange(3) b = unyt_array(np.arange(3), "cm") for ia, ib in zip(a, b): assert_equal(ia, ib.value) assert_equal(ib.units, b.units) def test_unyt_array_pickle(): test_data = [unyt_quantity(12.0, "cm"), unyt_array([1, 2, 3], "km")] for data in test_data: tempf = tempfile.NamedTemporaryFile(delete=False) pickle.dump(data, tempf) tempf.close() with open(tempf.name, "rb") as fname: loaded_data = pickle.load(fname) os.unlink(tempf.name) assert_array_equal(data, loaded_data) assert_equal(data.units, loaded_data.units) assert_array_equal(array(data.in_cgs()), array(loaded_data.in_cgs())) assert_equal(float(data.units.base_value), float(loaded_data.units.base_value)) SYMPY_VERSION = Version(version("sympy")) def test_copy(): quan = unyt_quantity(1, "g") arr = unyt_array([1, 2, 3], "cm") assert_equal(copy.copy(quan), quan) assert_array_equal(copy.copy(arr), arr) assert_equal(copy.deepcopy(quan), quan) assert_array_equal(copy.deepcopy(arr), arr) memo = {} assert_equal(copy.deepcopy(quan, memo), quan) assert_array_equal(copy.deepcopy(arr), arr) assert_equal(quan.copy(), quan) assert_array_equal(arr.copy(), arr) assert_equal(np.copy(quan), quan) assert_array_equal(np.copy(arr), arr) # needed so the tests function on older numpy versions that have # different sets of ufuncs def yield_np_ufuncs(ufunc_list): for u in ufunc_list: ufunc = getattr(np, u, None) if ufunc is not None: yield ufunc def unary_ufunc_comparison(ufunc, a): out = a.copy() a_array = a.to_ndarray() if ufunc in (np.isreal, np.iscomplex): # According to the numpy docs, these two explicitly do not do # in-place copies. ret = ufunc(a) assert not hasattr(ret, "units") assert_array_equal(ret, ufunc(a)) elif ufunc in yield_np_ufuncs( [ "exp", "exp2", "log", "log2", "log10", "expm1", "log1p", "sin", "cos", "tan", "arcsin", "arccos", "arctan", "sinh", "cosh", "tanh", "arccosh", "arcsinh", "arctanh", "deg2rad", "rad2deg", "isfinite", "isinf", "isnan", "signbit", "sign", "rint", "logical_not", ] ): # These operations should return identical results compared to numpy. with np.errstate(invalid="ignore"): ret = ufunc(a, out=out) assert_array_equal(ret, out) assert_array_equal(ret, ufunc(a_array)) # In-place copies do not drop units. assert hasattr(out, "units") assert not hasattr(ret, "units") elif ufunc in yield_np_ufuncs( [ "absolute", "fabs", "conjugate", "floor", "ceil", "trunc", "negative", "spacing", "positive", ] ): ret = ufunc(a, out=out) assert_array_equal(ret, out) assert_array_equal(ret.to_ndarray(), ufunc(a_array)) assert ret.units == out.units elif ufunc in yield_np_ufuncs( ["ones_like", "square", "sqrt", "cbrt", "reciprocal"] ): if ufunc is np.ones_like: ret = ufunc(a) else: with np.errstate(invalid="ignore"): ret = ufunc(a, out=out) assert_array_equal(ret, out) with np.errstate(invalid="ignore"): assert_array_equal(ret.to_ndarray(), ufunc(a_array)) if ufunc is np.square: assert out.units == a.units**2 assert ret.units == a.units**2 elif ufunc is np.sqrt: assert out.units == a.units**0.5 assert ret.units == a.units**0.5 elif ufunc is np.cbrt: assert out.units == a.units ** (1.0 / 3.0) assert ret.units == a.units ** (1.0 / 3.0) elif ufunc is np.reciprocal: assert out.units == a.units**-1 assert ret.units == a.units**-1 elif ufunc is np.modf: ret1, ret2 = ufunc(a) npret1, npret2 = ufunc(a_array) assert_array_equal(ret1.to_ndarray(), npret1) assert_array_equal(ret2.to_ndarray(), npret2) elif ufunc is np.frexp: ret1, ret2 = ufunc(a) npret1, npret2 = ufunc(a_array) assert_array_equal(ret1, npret1) assert_array_equal(ret2, npret2) elif ufunc is np.invert: with pytest.raises(TypeError): ufunc(a.astype("int64")) elif hasattr(np, "isnat") and ufunc is np.isnat: # numpy 1.13 raises ValueError, numpy 1.14 and newer raise TypeError with pytest.raises((TypeError, ValueError)): ufunc(a) # no untested ufuncs assert ufunc in yield_np_ufuncs( [ "isreal", "iscomplex", "exp", "exp2", "log", "log2", "log10", "expm1", "log1p", "sin", "cos", "tan", "arcsin", "arccos", "arctan", "sinh", "cosh", "tanh", "arccosh", "arcsinh", "arctanh", "deg2rad", "rad2deg", "isfinite", "isinf", "isnan", "signbit", "sign", "rint", "logical_not", "absolute", "fabs", "conjugate", "floor", "ceil", "trunc", "negative", "spacing", "positive", "ones_like", "square", "sqrt", "cbrt", "reciprocal", "invert", "isnat", "modf", "frexp", ] ) def binary_ufunc_comparison(ufunc, a, b): if ufunc in [np.divmod]: out = (b.copy(), b.copy()) else: out = b.copy() if ufunc in yield_np_ufuncs( [ "add", "subtract", "remainder", "fmod", "mod", "arctan2", "hypot", "greater", "greater_equal", "less", "less_equal", "logical_and", "logical_or", "logical_xor", "maximum", "minimum", "fmax", "fmin", "nextafter", "heaviside", ] ): if a.units != b.units and a.units.dimensions != b.units.dimensions: with pytest.raises(UnitOperationError): ufunc(a, b) return if ufunc in yield_np_ufuncs( [ "bitwise_and", "bitwise_or", "bitwise_xor", "left_shift", "right_shift", "ldexp", ] ): with pytest.raises(TypeError): ufunc(a, b) return ret = ufunc(a, b, out=out) ret = ufunc(a, b) if ufunc is np.multiply: assert ret.units == (a.units * b.units).simplify().as_coeff_unit()[1] elif ufunc in (np.divide, np.true_divide, np.arctan2): assert ret.units.dimensions == (a.units / b.units).dimensions elif ufunc in ( np.greater, np.greater_equal, np.less, np.less_equal, np.not_equal, np.equal, np.logical_and, np.logical_or, np.logical_xor, ): assert not isinstance(ret, unyt_array) and isinstance(ret, np.ndarray) if isinstance(ret, tuple): assert isinstance(out, tuple) assert len(out) == len(ret) for o, r in zip(out, ret): assert_array_equal(r, o) else: assert_array_equal(ret, out) if ufunc in (np.divide, np.true_divide, np.arctan2) and ( a.units.dimensions == b.units.dimensions ): assert_array_almost_equal( np.array(ret), ufunc(np.array(a.in_cgs()), np.array(b.in_cgs())) ) def test_ufuncs(): for ufunc in unary_operators: unary_ufunc_comparison( ufunc, unyt_array([0.3, 0.4, 0.5], "cm", dtype="float64") ) unary_ufunc_comparison(ufunc, unyt_array([12, 23, 47], "g", dtype="float64")) unary_ufunc_comparison( ufunc, unyt_array([2, 4, -6], "erg/m**3", dtype="float64") ) for ufunc in binary_operators: # arr**arr is undefined for arrays with units because # each element of the result would have different units. if ufunc is np.power: a = unyt_array([0.3, 0.4, 0.5], "cm") b = unyt_array([0.1, 0.2, 0.3], "dimensionless") c = np.array(b) d = unyt_array([1.0, 2.0, 3.0], "g") with pytest.raises(UnitOperationError): ufunc(a, b) with pytest.raises(UnitOperationError): ufunc(a, c) with pytest.raises(UnitOperationError): ufunc(a, d) binary_ufunc_comparison(ufunc, np.array(2.0), b) continue a = unyt_array([0.3, 0.4, 0.5], "cm") b = unyt_array([0.1, 0.2, 0.3], "cm") c = unyt_array([0.1, 0.2, 0.3], "m") d = unyt_array([0.1, 0.2, 0.3], "g") e = unyt_array([0.1, 0.2, 0.3], "erg/m**3") for pair in itertools.product([a, b, c, d, e], repeat=2): binary_ufunc_comparison(ufunc, pair[0], pair[1]) def test_dot_matmul(): arr = unyt_array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]], "cm") ev_result = arr.dot(unyt_array([1.0, 2.0, 3.0], "kg")) matmul_result = arr @ unyt_array([1.0, 2.0, 3.0], "kg") res = unyt_array([14.0, 32.0], "cm*kg") assert_equal(ev_result, res) assert_equal(ev_result.units, res.units) assert_isinstance(ev_result, unyt_array) assert_equal(matmul_result, res) assert_equal(matmul_result.units, res.units) assert_isinstance(matmul_result, unyt_array) ev_result = arr.dot(np.array([1.0, 2.0, 3.0])) matmul_result = arr @ np.array([1.0, 2.0, 3.0]) res = unyt_array([14.0, 32.0], "cm") assert_equal(ev_result, res) assert_equal(ev_result.units, res.units) assert_isinstance(ev_result, unyt_array) assert_equal(matmul_result, res) assert_equal(matmul_result.units, res.units) assert_isinstance(matmul_result, unyt_array) ev_result = arr.dot(arr.T) matmul_result = arr @ arr.T res = unyt_array([[14.0, 32.0], [32.0, 77.0]], "cm**2") assert_equal(ev_result, res) assert_equal(ev_result.units, res.units) assert_isinstance(ev_result, unyt_array) assert_equal(matmul_result, res) assert_equal(matmul_result.units, res.units) assert_isinstance(matmul_result, unyt_array) ev_result = arr.v.dot(arr.T) matmul_result = arr.v @ arr.T res = unyt_array([[14.0, 32.0], [32.0, 77.0]], "cm") assert_equal(ev_result, res) assert_equal(ev_result.units, res.units) assert_isinstance(ev_result, unyt_array) assert_equal(matmul_result, res) assert_equal(matmul_result.units, res.units) assert_isinstance(matmul_result, unyt_array) ev_result = arr.dot(arr.T.v) matmul_result = arr @ arr.T.v res = unyt_array([[14.0, 32.0], [32.0, 77.0]], "cm") assert_equal(ev_result, res) assert_equal(ev_result.units, res.units) assert_isinstance(ev_result, unyt_array) assert_equal(matmul_result, res) assert_equal(matmul_result.units, res.units) assert_isinstance(matmul_result, unyt_array) arr = unyt_array([[1.0, 2.0], [3.0, 4.0]], "kg") arr.dot(arr.T, out=arr) res = unyt_array([[5.0, 11.0], [11.0, 25.0]], "kg**2") assert_equal(arr, res) assert_equal(arr.units, res.units) assert_isinstance(arr, unyt_array) qv = unyt_array([1, 2, 3], "cm").dot(unyt_array([1, 2, 3], "cm")) mv = unyt_array([1, 2, 3], "cm") @ unyt_array([1, 2, 3], "cm") qa = unyt_quantity(14, "cm**2") assert qv == qa assert qv.units == qa.units assert_isinstance(qv, unyt_quantity) assert mv == qa assert mv.units == qa.units assert_isinstance(mv, unyt_quantity) qv = unyt_array([1, 2, 3], "cm").dot(np.array([1, 2, 3])) mv = unyt_array([1, 2, 3], "cm") @ np.array([1, 2, 3]) qa = unyt_quantity(14, "cm") assert qv == qa assert qv.units == qa.units assert_isinstance(qv, unyt_quantity) assert mv == qa assert mv.units == qa.units assert_isinstance(mv, unyt_quantity) def test_reductions(): arr = unyt_array([[1, 2, 3], [4, 5, 6]], "cm") answers = { "prod": ( unyt_quantity(720, "cm**6"), unyt_array([4, 10, 18], "cm**2"), unyt_array([6, 120], "cm**3"), ), "sum": ( unyt_quantity(21, "cm"), unyt_array([5.0, 7.0, 9.0], "cm"), unyt_array([6, 15], "cm"), ), "mean": ( unyt_quantity(3.5, "cm"), unyt_array([2.5, 3.5, 4.5], "cm"), unyt_array([2, 5], "cm"), ), "std": ( unyt_quantity(1.707825127659933, "cm"), unyt_array([1.5, 1.5, 1.5], "cm"), unyt_array([0.81649658, 0.81649658], "cm"), ), } for op, (result1, result2, result3) in answers.items(): ev_result = getattr(arr, op)() assert_almost_equal(ev_result, result1) assert_equal(ev_result.units, result1.units) assert_isinstance(ev_result, unyt_quantity) for axis, result in [(0, result2), (1, result3), (-1, result3)]: ev_result = getattr(arr, op)(axis=axis) assert_almost_equal(ev_result, result) assert_equal(ev_result.units, result.units) assert_isinstance(ev_result, unyt_array) def test_convenience(): for orig in [ [1.0, 2.0, 3.0], (1.0, 2.0, 3.0), np.array([1.0, 2.0, 3.0]), [[1.0], [2.0], [3.0]], np.array([[1.0], [2.0], [3.0]]), [[1.0, 2.0, 3.0]], np.array([[1.0, 2.0, 3.0]]), ]: arr = unyt_array(orig, "cm") arrou = unyt_array(orig, "1/cm") uoarr = unyt_array(1.0 / np.array(orig), "cm") assert_equal(arr.unit_quantity, unyt_quantity(1, "cm")) assert_equal(arr.uq, unyt_quantity(1, "cm")) assert_isinstance(arr.unit_quantity, unyt_quantity) assert_isinstance(arr.uq, unyt_quantity) assert_array_equal(arr.unit_array, unyt_array(np.ones_like(arr), "cm")) assert_array_equal(arr.ua, unyt_array(np.ones_like(arr), "cm")) assert_isinstance(arr.unit_array, unyt_array) assert_isinstance(arr.ua, unyt_array) for u in [arr.units, arr.unit_quantity, arr.unit_array, arr.uq, arr.ua]: assert_array_equal(u * orig, arr) assert_array_equal(orig * u, arr) assert_array_equal(orig / u, arrou) assert_array_equal(u / orig, uoarr) assert_array_equal(arr.ndview, arr.view(np.ndarray)) assert_array_equal(arr.d, arr.view(np.ndarray)) assert arr.ndview.base is arr.base assert arr.d.base is arr.base assert_array_equal(arr.value, np.array(arr)) assert_array_equal(arr.v, np.array(arr)) def test_registry_association(): reg = UnitRegistry() a = unyt_quantity(3, "cm", registry=reg) b = unyt_quantity(4, "m") c = unyt_quantity(6, "", registry=reg) d = 5 assert_equal(id(a.units.registry), id(reg)) def binary_op_registry_comparison(op): e = op(a, b) f = op(b, a) g = op(c, d) h = op(d, c) assert_equal(id(e.units.registry), id(reg)) assert_equal(id(f.units.registry), id(b.units.registry)) assert_equal(id(g.units.registry), id(h.units.registry)) assert_equal(id(g.units.registry), id(reg)) def unary_op_registry_comparison(op): c = op(a) d = op(b) assert_equal(id(c.units.registry), id(reg)) assert_equal(id(d.units.registry), id(b.units.registry)) binary_ops = [operator.add, operator.sub, operator.mul, operator.truediv] for op in binary_ops: binary_op_registry_comparison(op) for op in [operator.abs, operator.neg, operator.pos]: unary_op_registry_comparison(op) def test_to_value(): a = unyt_array([1.0, 2.0, 3.0], "kpc") assert_equal(a.to_value(), np.array([1.0, 2.0, 3.0])) assert_equal(a.to_value(), a.value) assert_equal(a.to_value("km"), a.in_units("km").value) b = unyt_quantity(5.5, "Msun") assert_equal(b.to_value(), 5.5) assert_equal(b.to_value("g"), b.in_units("g").value) def test_astropy(): pytest.importorskip("astropy") ap_arr = np.arange(10) * _astropy.units.km / _astropy.units.hr un_arr = unyt_array(np.arange(10), "km/hr") un_arr2 = unyt_array.from_astropy(ap_arr) ap_quan = 10.0 * _astropy.units.Msun**0.5 / (_astropy.units.kpc**3) un_quan = unyt_quantity(10.0, "sqrt(Msun)/kpc**3") un_quan2 = unyt_quantity.from_astropy(ap_quan) assert_array_equal(ap_arr, un_arr.to_astropy()) assert_array_equal(un_arr, unyt_array.from_astropy(ap_arr)) assert_array_equal(un_arr, un_arr2) assert_equal(ap_quan, un_quan.to_astropy()) assert_equal(un_quan, unyt_quantity.from_astropy(ap_quan)) assert_equal(un_quan, un_quan2) assert_array_equal(un_arr, unyt_array.from_astropy(un_arr.to_astropy())) assert_equal(un_quan, unyt_quantity.from_astropy(un_quan.to_astropy())) def test_astropy_dimensionless(): # see https://github.com/yt-project/unyt/issues/436 pytest.importorskip("astropy") arr = unyt_array([1, 2, 3], "") ap_arr = np.array([1, 2, 3]) * _astropy.units.Unit("") assert_array_equal(ap_arr, arr.to_astropy()) assert_array_equal(arr, unyt_array.from_astropy(ap_arr)) def test_pint(): pytest.importorskip("pint") def assert_pint_array_equal(arr1, arr2): assert_array_equal(arr1.magnitude, arr2.magnitude) assert str(arr1.units) == str(arr2.units) ureg = _pint.UnitRegistry() p_arr = np.arange(10) * ureg.km / ureg.year un_arr = unyt_array(np.arange(10), "km/yr") un_arr2 = unyt_array.from_pint(p_arr) p_quan = 10.0 * ureg.g**0.5 / (ureg.mm**3) un_quan = unyt_quantity(10.0, "sqrt(g)/mm**3") un_quan2 = unyt_quantity.from_pint(p_quan) assert_pint_array_equal(p_arr, un_arr.to_pint()) assert_array_equal(un_arr, unyt_array.from_pint(p_arr)) assert_array_equal(un_arr, un_arr2) assert_pint_array_equal(p_quan, un_quan.to_pint()) assert_equal(un_quan, unyt_quantity.from_pint(p_quan)) assert_equal(un_quan, un_quan2) assert_array_equal(un_arr, unyt_array.from_pint(un_arr.to_pint())) assert_equal(un_quan, unyt_quantity.from_pint(un_quan.to_pint())) def test_subclass(): class unyt_a_subclass(unyt_array): def __new__( cls, input_array, units=None, registry=None, bypass_validation=None ): return super().__new__( cls, input_array, units, registry=registry, bypass_validation=bypass_validation, ) a = unyt_a_subclass([4, 5, 6], "g") b = unyt_a_subclass([7, 8, 9], "kg") nu = unyt_a_subclass([10, 11, 12], "") nda = np.array([3, 4, 5]) yta = unyt_array([6, 7, 8], "mg") loq = [unyt_quantity(6, "mg"), unyt_quantity(7, "mg"), unyt_quantity(8, "mg")] ytq = unyt_quantity(4, "cm") ndf = np.float64(3) def op_comparison(op, inst1, inst2, compare_class): assert_isinstance(op(inst1, inst2), compare_class) assert_isinstance(op(inst2, inst1), compare_class) ops = [operator.mul, operator.truediv] for op in ops: for inst in (b, ytq, ndf, yta, nda, loq): op_comparison(op, a, inst, unyt_a_subclass) op_comparison(op, ytq, nda, unyt_array) op_comparison(op, ytq, yta, unyt_array) for op in (operator.add, operator.sub): op_comparison(op, nu, nda, unyt_a_subclass) op_comparison(op, a, b, unyt_a_subclass) op_comparison(op, a, yta, unyt_a_subclass) op_comparison(op, a, loq, unyt_a_subclass) assert_isinstance(a[0], unyt_quantity) assert_isinstance(a[:], unyt_a_subclass) assert_isinstance(a[:2], unyt_a_subclass) assert_isinstance(unyt_a_subclass(yta), unyt_a_subclass) assert_isinstance(a.to("kg"), unyt_a_subclass) assert_isinstance(a.copy(), unyt_a_subclass) assert_isinstance(copy.deepcopy(a), unyt_a_subclass) def test_string_operations_raise_errors(): a = unyt_array([1, 2, 3], "g") with pytest.raises(TypeError): a + "hello" with pytest.raises(TypeError): a * "hello" with pytest.raises(TypeError): a ** "hello" def test_string_ne(): a = unyt_array([1, 2, 3], "g") if NUMPY_VERSION >= Version("1.25.0.dev0"): ctx = pytest.raises(ValueError) else: ctx = pytest.warns(FutureWarning) with ctx: assert a != "hello" def test_string_operations_raise_errors_quantity(): q = 2 * g with pytest.raises(TypeError): q + "hello" with pytest.raises(TypeError): q * "hello" with pytest.raises(TypeError): q ** "hello" assert q != "hello" def test_h5_io(): pytest.importorskip("h5py") tmpdir = tempfile.mkdtemp() curdir = os.getcwd() os.chdir(tmpdir) reg = UnitRegistry() reg.add("code_length", 10.0, dimensions.length) rng = np.random.default_rng() warr = unyt_array(rng.random((256, 256)), "code_length", registry=reg) warr.write_hdf5("test.h5") iarr = unyt_array.from_hdf5("test.h5") assert_equal(warr, iarr) assert_equal(warr.units.registry["code_length"], iarr.units.registry["code_length"]) # test code to overwrite existing dataset warr.write_hdf5("test.h5") giarr = unyt_array.from_hdf5("test.h5") assert_equal(warr, giarr) # test code to overwrite existing dataset with data that has a different # shape rng = np.random.default_rng() warr = unyt_array(rng.random((255, 255)), "code_length", registry=reg) warr.write_hdf5("test.h5") giarr = unyt_array.from_hdf5("test.h5") assert_equal(warr, giarr) os.remove("test.h5") # write to a group that doesn't exist warr.write_hdf5( "test.h5", dataset_name="test_dset", group_name="/arrays/test_group" ) giarr = unyt_array.from_hdf5( "test.h5", dataset_name="test_dset", group_name="/arrays/test_group" ) assert_equal(warr, giarr) os.remove("test.h5") # write to a group that does exist with _h5py.File("test.h5", "a") as f: f.create_group("/arrays/test_group") warr.write_hdf5( "test.h5", dataset_name="test_dset", group_name="/arrays/test_group" ) giarr = unyt_array.from_hdf5( "test.h5", dataset_name="test_dset", group_name="/arrays/test_group" ) assert_equal(warr, giarr) os.remove("test.h5") os.chdir(curdir) shutil.rmtree(tmpdir) def test_h5_quantity_roundtrip(tmp_path): # regression test for https://github.com/yt-project/unyt/issues/559 pytest.importorskip("h5py") q1 = 5 * cm savefile = tmp_path / "savefile.hdf5" q1.write_hdf5( savefile, dataset_name="test_ds", group_name="test_group", ) q2 = unyt_quantity.from_hdf5( savefile, dataset_name="test_ds", group_name="test_group", ) assert_array_equal_units(q2, q1) def test_equivalencies(): import unyt as u # equivalence is ignored if the conversion doesn't need one data = 12.0 * u.g data.convert_to_equivalent("kg", None) assert data.value == 0.012 assert data.units == u.kg data = 12.0 * u.g data = data.to_equivalent("kg", None) assert data.value == 0.012 assert data.units == u.kg # incorrect usage of an equivalence raises errors with pytest.raises(InvalidUnitEquivalence): data.convert_to_equivalent("erg", "thermal") with pytest.raises(InvalidUnitEquivalence) as excinfo: data.convert_to_equivalent("m", "mass_energy") assert ( str(excinfo.value) == "The unit equivalence 'mass_energy: mass <-> energy' does not " "exist for units 'kg' to convert to a new unit with dimensions " "'(length)'." ) with pytest.raises(InvalidUnitEquivalence): data.to_equivalent("erg", "thermal") with pytest.raises(InvalidUnitEquivalence): data.to_equivalent("m", "mass_energy") # Mass-energy mp = u.mp.copy() mp.convert_to_units("keV", "mass_energy") assert_allclose_units(u.mp.in_units("keV", "mass_energy"), mp) assert_allclose_units(mp, u.mp * u.clight * u.clight) assert_allclose_units(u.mp, mp.in_units("g", "mass_energy")) mp.convert_to_units("g", "mass_energy") assert_allclose_units(u.mp, mp) # Thermal T = 1e8 * u.K E = T.in_units("W*hr", "thermal") assert_allclose_units(E, (u.kboltz * T).in_units("W*hr")) assert_allclose_units(T, E.in_units("K", "thermal")) T.convert_to_units("W*hr", "thermal") assert_allclose_units(E, T) T.convert_to_units("K", "thermal") assert_allclose_units(T, 1e8 * u.K) # Spectral # wavelength to frequency lam = 4000 * u.angstrom nu = lam.in_units("Hz", "spectral") assert_allclose_units(nu, u.clight / lam) lam.convert_to_units("MHz", "spectral") assert_allclose_units(lam, nu) assert lam.units == u.MHz.units assert nu.units == u.Hz.units # wavelength to photon energy lam = 4000 * u.angstrom hnu = lam.in_units("erg", "spectral") assert_allclose_units(hnu, u.h_mks * u.clight / lam) lam.convert_to_units("eV", "spectral") assert_allclose_units(lam, hnu) assert lam.units == u.eV.units assert hnu.units == u.erg.units # wavelength to spatial frequency lam = 4000 * u.angstrom nubar = lam.in_units("1/angstrom", "spectral") assert_allclose_units(nubar, 1 / lam) lam.convert_to_units("1/cm", "spectral") assert_allclose_units(lam, nubar) assert lam.units == (1 / u.cm).units assert nubar.units == (1 / u.angstrom).units # frequency to wavelength nu = 1.0 * u.MHz lam = nu.to("km", "spectral") assert_allclose_units(lam, u.clight / nu) nu.convert_to_units("m", "spectral") assert_allclose_units(lam, nu) assert lam.units == u.km.units assert nu.units == u.m.units # frequency to spatial frequency nu = 1.0 * u.MHz nubar = nu.to("1/km", "spectral") assert_allclose_units(nubar, nu / u.clight) nu.convert_to_units("1/m", "spectral") assert_allclose_units(nubar, nu) assert nubar.units == (1 / u.km).units assert nu.units == (1 / u.m).units # frequency to photon energy nu = 1.0 * u.MHz E = nu.to("erg", "spectral") assert_allclose_units(E, u.h_mks * nu) nu.convert_to_units("J", "spectral") assert_allclose_units(nu, E) assert nu.units == u.J.units assert E.units == u.erg.units # photon energy to frequency E = 13.6 * u.eV nu = E.to("Hz", "spectral") assert_allclose_units(nu, E / u.h_mks) E.convert_to_units("MHz", "spectral") assert_allclose_units(nu, E) assert E.units == u.MHz.units assert nu.units == u.Hz.units # photon energy to wavelength E = 13.6 * u.eV lam = E.to("nm", "spectral") assert_allclose_units(lam, u.h_mks * u.clight / E) E.convert_to_units("angstrom", "spectral") assert_allclose_units(E, lam) assert E.units == u.angstrom.units assert lam.units == u.nm.units # photon energy to spatial frequency E = 13.6 * u.eV nubar = E.to("1/nm", "spectral") assert_allclose_units(nubar, E / (u.h_mks * u.clight)) E.convert_to_units("1/angstrom", "spectral") assert_allclose_units(E, nubar) assert E.units == (1 / u.angstrom).units assert nubar.units == (1 / u.nm).units # spatial frequency to frequency nubar = 1500.0 / u.cm nu = nubar.to("Hz", "spectral") assert_allclose_units(nu, nubar * u.clight) nubar.convert_to_units("MHz", "spectral") assert_allclose_units(nu, nubar) assert nubar.units == u.MHz.units assert nu.units == u.Hz.units # spatial frequency to wavelength nubar = 1500.0 / u.cm lam = nubar.to("nm", "spectral") assert_allclose_units(lam, 1 / nubar) nubar.convert_to_units("angstrom", "spectral") assert_allclose_units(nubar, lam) assert nubar.units == u.angstrom.units assert lam.units == u.nm.units # spatial frequency to photon energy nubar = 1500.0 / u.cm E = nubar.to("erg", "spectral") assert_allclose_units(E, u.h_mks * u.clight * nubar) nubar.convert_to_units("J", "spectral") assert_allclose_units(nubar, E) assert nubar.units == u.J.units assert E.units == u.erg.units # Sound-speed # tempearature <-> velocity mu = 0.6 gg = 5.0 / 3.0 T = 1e8 * u.K c_s = T.in_units("km/s", equivalence="sound_speed") assert_allclose_units(c_s, np.sqrt(gg * u.kboltz * T / (mu * u.mh))) assert_allclose_units(T, c_s.in_units("K", "sound_speed")) T.convert_to_units("m/s", "sound_speed") assert_allclose_units(c_s, T) assert T.units == u.m.units / u.s.units assert c_s.units == u.km.units / u.s.units mu = 0.5 gg = 4.0 / 3.0 T = 1e8 * u.K c_s = T.in_units("km/s", "sound_speed", mu=mu, gamma=gg) assert_allclose_units(c_s, np.sqrt(gg * u.kboltz * T / (mu * u.mh))) assert_allclose_units(T, c_s.in_units("K", "sound_speed", mu=mu, gamma=gg)) T.convert_to_units("m/s", "sound_speed", mu=mu, gamma=gg) assert_allclose_units(c_s, T) assert T.units == u.m.units / u.s.units assert c_s.units == u.km.units / u.s.units # temperature <-> energy mu = 0.5 gg = 4.0 / 3.0 T = 1e8 * u.K kT = T.in_units("eV", "sound_speed", mu=mu, gamma=gg) assert_allclose_units(kT, u.kboltz * T) T.convert_to_units("erg", "sound_speed", mu=mu, gamma=gg) assert_allclose_units(T, kT) assert T.units == u.erg.units assert kT.units == u.eV.units assert_allclose_units(T.in_units("K", "sound_speed", mu=mu, gamma=gg), 1e8 * u.K) kT.convert_to_units("K", "sound_speed", mu=mu, gamma=gg) assert_allclose_units(kT, 1e8 * u.K) # velocity <-> energy c_s = 300 * u.m / u.s kT = c_s.in_units("erg", "sound_speed", mu=mu, gamma=gg) assert_allclose_units(kT, c_s**2 * mu * u.mh / gg) c_s.convert_to_units("J", "sound_speed", mu=mu, gamma=gg) assert_allclose_units(c_s, kT) assert c_s.units == u.J.units assert kT.units == u.erg.units assert_allclose_units( kT.in_units("m/s", "sound_speed", mu=mu, gamma=gg), 300 * u.m / u.s ) c_s.convert_to_units("m/s", "sound_speed", mu=mu, gamma=gg) assert_allclose_units(c_s, 300 * u.m / u.s) # Lorentz v = 0.8 * u.clight g = v.in_units("dimensionless", "lorentz") g2 = unyt_quantity(1.0 / np.sqrt(1.0 - 0.8 * 0.8), "dimensionless") assert_allclose_units(g, g2) v.convert_to_units("", "lorentz") assert_allclose_units(v, g2) v.convert_to_units("c", "lorentz") v2 = g2.in_units("mile/hr", "lorentz") assert_allclose_units(v2, v.in_units("mile/hr")) # Schwarzschild msun = 1.0 * u.unit_symbols.Msun msun.convert_to_equivalent("km", "schwarzschild") R = u.mass_sun_mks.in_units("kpc", "schwarzschild") assert_allclose_units(msun, R) assert_allclose_units(R.in_mks(), 2 * u.G * u.mass_sun_mks / (u.clight**2)) assert_allclose_units(u.mass_sun_mks, R.in_units("kg", "schwarzschild")) R.convert_to_units("Msun", "schwarzschild") assert_allclose_units(u.mass_sun_mks, R) assert R.units == u.unit_symbols.Msun.units assert msun.units == u.km.units # Compton me = 1.0 * u.me me.convert_to_units("nm", "compton") length = u.me.in_units("angstrom", "compton") assert_allclose_units(length, me) assert_allclose_units(length, u.h_mks / (u.me * u.clight)) assert_allclose_units(u.me, length.in_units("g", "compton")) assert me.units == u.nm.units assert length.units == u.angstrom.units me.convert_to_units("me", "compton") assert_almost_equal(me.value, 1.0) # Number density rho = u.mp / u.m**3 n = rho.in_units("m**-3", "number_density") assert_allclose_units(n, rho / (u.mh * 0.6)) assert_allclose_units(rho, n.in_units("kg/m**3", "number_density")) rho.convert_to_units("cm**-3", "number_density") assert rho.units == (1 / u.cm**3).units assert n.units == (1 / u.m**3).units assert_allclose_units(n, rho) rho.convert_to_units("kg/m**3", "number_density") assert_allclose_units(u.mp / u.m**3, rho) assert rho.units == (u.kg / u.m**3).units rho = u.mp / u.m**3 n = rho.in_units("m**-3", equivalence="number_density", mu=0.75) assert_allclose_units(n, rho / (u.mh * 0.75)) assert_allclose_units( rho, n.in_units("kg/m**3", equivalence="number_density", mu=0.75) ) rho.convert_to_units("cm**-3", "number_density", mu=0.75) assert rho.units == (1 / u.cm**3).units assert n.units == (1 / u.m**3).units assert_allclose_units(n, rho) rho.convert_to_units("kg/m**3", "number_density", mu=0.75) assert_allclose_units(u.mp / u.m**3, rho) assert rho.units == (u.kg / u.m**3).units # Effective temperature T = 1e4 * u.K F = T.in_units("W/m**2", equivalence="effective_temperature") assert_allclose_units(F, u.stefan_boltzmann_constant * T**4) assert_allclose_units(T, F.in_units("K", equivalence="effective_temperature")) T.convert_to_units("erg/s/cm**2", "effective_temperature") assert_allclose_units(T, F) assert T.units == u.Unit("erg/cm**2/s") assert F.units == u.W / u.m**2 assert_almost_equal(T.in_units("K", "effective_temperature").value, 1e4) T.convert_to_units("K", "effective_temperature") assert_almost_equal(T.value, 1e4) assert T.units == u.K # to_value test assert_allclose_units( F.value, T.to_value("W/m**2", equivalence="effective_temperature") ) assert_allclose_units( n.value, rho.to_value("m**-3", equivalence="number_density", mu=0.75) ) def test_electromagnetic(): import unyt as u # Various tests of SI and CGS electromagnetic units t = 1.0 * u.Tesla g = 1.0 * u.gauss assert t.to("gauss") == 1e4 * u.gauss assert g.to("T") == 1e-4 * u.Tesla assert t.in_mks() == t assert g.in_cgs() == g t.convert_to_mks() assert t == 1.0 * u.Tesla g.convert_to_cgs() assert g == 1.0 * u.gauss qp_mks = u.qp_cgs.in_units("C") assert_equal(qp_mks.units.dimensions, dimensions.charge_mks) assert_almost_equal(qp_mks.v, 10.0 * u.qp.v / speed_of_light_cm_per_s) qp = 1.0 * u.qp_cgs assert_equal(qp, u.qp_cgs.in_units("esu")) qp.convert_to_units("C") assert_equal(qp.units.dimensions, dimensions.charge_mks) assert_almost_equal(qp.v, 10 * u.qp.v / u.clight.v) qp_cgs = u.qp.in_units("esu") assert_array_almost_equal(qp_cgs, u.qp_cgs) assert_equal(qp_cgs.units.dimensions, u.qp_cgs.units.dimensions) qp = u.qp.copy() qp.convert_to_units("esu") assert_almost_equal(qp_cgs, qp_cgs) assert qp.units == u.esu.units qp.convert_to_units("C") assert_almost_equal(u.qp, qp) assert qp.units == u.C.units qp_mks_k = u.qp_cgs.in_units("kC") assert_array_almost_equal(qp_mks_k.v, 1.0e-2 * u.qp_cgs.v / speed_of_light_cm_per_s) qp = 1.0 * u.qp_cgs qp.convert_to_units("kC") assert_almost_equal(qp, qp_mks_k) B = 1.0 * u.T B_cgs = B.in_units("gauss") assert_equal(B.units.dimensions, dimensions.magnetic_field_mks) assert_equal(B_cgs.units.dimensions, dimensions.magnetic_field_cgs) assert_array_almost_equal(B_cgs, unyt_quantity(1.0e4, "gauss")) B_cgs = B.in_cgs() assert_equal(B.units.dimensions, dimensions.magnetic_field_mks) assert_equal(B_cgs.units.dimensions, dimensions.magnetic_field_cgs) assert_array_almost_equal(B_cgs, unyt_quantity(1.0e4, "gauss")) B_cgs = B.in_base("cgs") assert_equal(B.units.dimensions, dimensions.magnetic_field_mks) assert_equal(B_cgs.units.dimensions, dimensions.magnetic_field_cgs) assert_array_almost_equal(B_cgs, unyt_quantity(1.0e4, "gauss")) B.convert_to_cgs() assert_almost_equal(B, B_cgs) B.convert_to_mks() B_cgs2 = B.to("gauss") assert_almost_equal(B_cgs, B_cgs2) B_mks2 = B_cgs2.to("T") assert_almost_equal(B, B_mks2) B = 1.0 * u.T u_mks = B * B / (2 * u.mu_0) assert_equal(u_mks.units.dimensions, dimensions.pressure) u_cgs = B_cgs * B_cgs / (8 * np.pi) assert_equal(u_mks, u_cgs.to(u_mks.units)) assert_equal(u_mks.to(u_cgs.units), u_cgs) assert_equal(u_mks.in_cgs(), u_cgs) assert_equal(u_cgs.in_mks(), u_mks) current = 1.0 * u.A I_cgs = current.in_units("statA") assert_array_almost_equal( I_cgs, unyt_quantity(0.1 * speed_of_light_cm_per_s, "statA") ) assert_array_almost_equal(I_cgs.in_units("mA"), current.in_units("mA")) assert_equal(I_cgs.units.dimensions, dimensions.current_cgs) current.convert_to_units("statA") assert current.units == u.statA.units current.convert_to_units("A") assert current.units == u.A.units I_cgs2 = current.to("statA") assert I_cgs2.units == u.statA.units assert_array_almost_equal( I_cgs2, unyt_quantity(0.1 * speed_of_light_cm_per_s, "statA") ) current = 1.0 * u.A R = unyt_quantity(1.0, "ohm") R_cgs = R.in_units("statohm") P_mks = current * current * R P_cgs = I_cgs * I_cgs * R_cgs assert_equal(P_mks.units.dimensions, dimensions.power) assert_equal(P_cgs.units.dimensions, dimensions.power) assert_almost_equal(P_cgs.in_cgs(), P_cgs) assert_almost_equal(P_mks.in_cgs(), P_cgs) assert_almost_equal(P_cgs.in_mks(), P_mks) assert_almost_equal(P_mks.in_mks(), P_mks) V = unyt_quantity(1.0, "statV") V_mks = V.in_units("V") assert_array_almost_equal(V_mks.v, 1.0e8 * V.v / speed_of_light_cm_per_s) data = 1.0 * u.C * u.T * u.V with pytest.raises(UnitConversionError): data.to("statC*G*statV") with pytest.raises(UnitConversionError): data.convert_to_units("statC*G*statV") with pytest.raises(UnitsNotReducible): data.in_cgs() data = 1.0 * u.statC * u.G * u.statV with pytest.raises(UnitConversionError): data.to("C*T*V") with pytest.raises(UnitConversionError): data.convert_to_units("C*T*V") assert_almost_equal(data.in_mks(), 6.67408e-18 * u.m**5 / u.s**4) mu_0 = 4.0e-7 * math.pi * u.N / u.A**2 eps_0 = 8.85418781782e-12 * u.m**-3 / u.kg * u.s**4 * u.A**2 assert_almost_equal((1.0 / (u.clight**2 * mu_0)).in_units(eps_0.units), eps_0) def test_unyt_array_coercion(): a = unyt_array([1, 2, 3], "cm") q = unyt_quantity(3, "cm") na = np.array([1, 2, 3]) assert_isinstance(a * q, unyt_array) assert_isinstance(q * na, unyt_array) assert_isinstance(q * 3, unyt_quantity) assert_isinstance(q * np.float64(3), unyt_quantity) assert_isinstance(q * np.array(3), unyt_quantity) def test_unyt_array_dtype_coercion(): a = unyt_array([1, 2, 3], "cm", dtype=np.float32) b = unyt_array(a, dtype=np.float64) assert b.dtype == np.float64 assert_array_equal(b, a) assert b.units == a.units def test_numpy_wrappers(): a1 = unyt_array([1, 2, 3], "cm") a2 = unyt_array([2, 3, 4, 5, 6], "cm") a3 = unyt_array([[1, 2, 3], [4, 5, 6]], "cm") a4 = unyt_array([7, 8, 9, 10, 11], "cm") catenate_answer = [1, 2, 3, 2, 3, 4, 5, 6] intersect_answer = [2, 3] union_answer = [1, 2, 3, 4, 5, 6] vstack_answer = [[2, 3, 4, 5, 6], [7, 8, 9, 10, 11]] vstack_answer_last_axis = [[2, 7], [3, 8], [4, 9], [5, 10], [6, 11]] cross_answer = [-2, 4, -2] norm_answer = np.sqrt(1**2 + 2**2 + 3**2) arr_norm_answer = [norm_answer, np.sqrt(4**2 + 5**2 + 6**2)] dot_answer = 14 with pytest.warns(DeprecationWarning): assert_array_equal(unyt_array(catenate_answer, "cm"), uconcatenate((a1, a2))) assert_array_equal(catenate_answer, np.concatenate((a1, a2))) with pytest.warns(DeprecationWarning): assert_array_equal(unyt_array(intersect_answer, "cm"), uintersect1d(a1, a2)) assert_array_equal(intersect_answer, np.intersect1d(a1, a2)) with pytest.warns(DeprecationWarning): assert_array_equal(unyt_array(union_answer, "cm"), uunion1d(a1, a2)) assert_array_equal(union_answer, np.union1d(a1, a2)) with pytest.warns(DeprecationWarning): assert_array_equal( unyt_array(cross_answer, "cm**2"), ucross(a1, a1 + (2 * a1.units)) ) assert_array_equal(cross_answer, np.cross(a1.v, a1.v + 2)) with pytest.warns(DeprecationWarning): assert_array_equal(unorm(a1), unyt_quantity(norm_answer, "cm")) assert_array_equal(np.linalg.norm(a1), norm_answer) with pytest.warns(DeprecationWarning): assert_array_equal(unorm(a3, axis=1), unyt_array(arr_norm_answer, "cm")) assert_array_equal(np.linalg.norm(a3, axis=1), arr_norm_answer) with pytest.warns(DeprecationWarning): assert_array_equal(udot(a1, a1), unyt_quantity(dot_answer, "cm**2")) with pytest.warns(DeprecationWarning): assert_array_equal(np.array(catenate_answer), uconcatenate((a1.v, a2.v))) with pytest.raises(RuntimeError): with pytest.warns(DeprecationWarning): uconcatenate((a1, a2.v)) with pytest.raises(RuntimeError): with pytest.warns(DeprecationWarning): uconcatenate((a1.to("m"), a2)) with pytest.warns(DeprecationWarning): assert_array_equal(unyt_array(vstack_answer, "cm"), uvstack([a2, a4])) assert_array_equal(vstack_answer, np.vstack([a2, a4])) with pytest.warns(DeprecationWarning): assert_array_equal(unyt_array(vstack_answer, "cm"), ustack([a2, a4])) assert_array_equal(vstack_answer, np.stack([a2, a4])) with pytest.warns(DeprecationWarning): assert_array_equal( unyt_array(vstack_answer_last_axis, "cm"), ustack([a2, a4], axis=-1) ) assert_array_equal(vstack_answer_last_axis, np.stack([a2, a4], axis=-1)) def test_dimensionless_conversion(): a = unyt_quantity(1, "Zsun") b = a.in_units("Zsun") a.convert_to_units("Zsun") assert a.units.base_value == metallicity_sun assert b.units.base_value == metallicity_sun def test_modified_unit_division(): reg1 = UnitRegistry() reg2 = UnitRegistry() reg1.modify("g", 50) a = unyt_quantity(3, "g", registry=reg1) b = unyt_quantity(3, "g", registry=reg2) ret = a / b assert ret == 50000.0 assert ret.units.is_dimensionless assert ret.units.base_value == 1.0 def test_loadtxt_and_savetxt(): tmpdir = tempfile.mkdtemp() curdir = os.getcwd() os.chdir(tmpdir) rng = np.random.default_rng() a = unyt_array(rng.random(10), "kpc") b = unyt_array(rng.random(10), "Msun") c = unyt_array(rng.random(10), "km/s") savetxt("arrays.dat", [a, b, c], delimiter=",") d, e = loadtxt("arrays.dat", usecols=(1, 2), delimiter=",") assert_array_equal(b, d) assert_array_equal(c, e) # adding newlines to the file doesn't matter savetxt("arrays.dat", [a, b, c], delimiter=",") with open("arrays.dat", "r+") as f: content = f.read() f.seek(0, 0) f.write("\n" + content) d, e = loadtxt("arrays.dat", usecols=(1, 2), delimiter=",") assert_array_equal(b, d) assert_array_equal(c, e) # data saved by numpy savetxt are loaded without units np.savetxt("arrays.dat", np.squeeze(np.transpose([a.v, b.v, c.v])), delimiter=",") d, e = loadtxt("arrays.dat", usecols=(1, 2), delimiter=",") assert_array_equal(b.v, d) assert_array_equal(c.v, e) # save a single array savetxt("arrays.dat", a) d = loadtxt("arrays.dat") assert_array_equal(a, d) # save an array with no units and an array with units with a header savetxt("arrays.dat", [a.v, b], header="this is a header!") d, e = loadtxt("arrays.dat") assert_array_equal(a.v, d) assert_array_equal(b, e) os.chdir(curdir) shutil.rmtree(tmpdir) def test_trig_ufunc_degrees(): rng = np.random.default_rng() for ufunc in (np.sin, np.cos, np.tan): degree_values = rng.random(10) * degree radian_values = degree_values.in_units("radian") assert_array_equal(ufunc(degree_values), ufunc(radian_values)) def test_builtin_sum(): from unyt import km arr = [1, 2, 3] * km assert_equal(sum(arr), 6 * km) def test_initialization_different_registries(): reg1 = UnitRegistry() reg2 = UnitRegistry() reg1.add("code_length", 1.0, dimensions.length) reg2.add("code_length", 3.0, dimensions.length) l1 = unyt_quantity(1.0, "code_length", registry=reg1) l2 = unyt_quantity(1.0, "code_length", registry=reg2) assert_almost_equal(float(l1.in_mks()), 1.0) assert_almost_equal(float(l2.in_mks()), 3.0) def test_ones_and_zeros_like(): data = unyt_array([1, 2, 3], "cm") zd = np.zeros_like(data) od = np.ones_like(data) assert_equal(zd, unyt_array([0, 0, 0], "cm")) assert_equal(zd.units, data.units) assert_equal(od, unyt_array([1, 1, 1], "cm")) assert_equal(od.units, data.units) def test_coerce_iterable(): from unyt import cm, g, m a = unyt_array([1, 2, 3], "cm") b = [1 * cm, 2 * m, 3 * cm] c = [1 * g, 2 * m, 3 * cm] assert_equal(a + b, unyt_array([2, 202, 6], "cm")) assert_equal(b + a, unyt_array([2, 202, 6], "cm")) with pytest.raises(TypeError): a + c with pytest.raises(TypeError): c + a assert_equal(unyt_array(b), unyt_array([1, 200, 3], "cm")) with pytest.raises(IterableUnitCoercionError): unyt_array(c) def test_bypass_validation(): from unyt import UnitRegistry, cm, unyt_array obj = unyt_array(np.array([1.0, 2.0, 3.0]), cm, bypass_validation=True) assert obj.units is cm reg = UnitRegistry() obj = unyt_array( np.array([1.0, 2.0, 3.0]), cm, registry=reg, bypass_validation=True ) assert obj.units == cm assert obj.units.registry is reg def test_creation(): from unyt import UnitRegistry, cm data = [1, 2, 3] * cm new_data = unyt_array(data) assert new_data.units is cm assert_array_equal(new_data.v, np.array([1, 2, 3], dtype="float64")) reg = UnitRegistry() new_data = unyt_array(data, registry=reg) assert_array_equal(new_data.v, np.array([1, 2, 3], dtype="float64")) assert new_data.units is not cm assert new_data.units == cm assert new_data.units.registry is reg new_data = unyt_array([1, 2, 3], cm) assert_array_equal(new_data.v, np.array([1, 2, 3], dtype="float64")) assert new_data.units is cm new_data = unyt_array([1, 2, 3], cm, registry=reg) assert_array_equal(new_data.v, np.array([1, 2, 3], dtype="float64")) assert new_data.units is not cm assert new_data.units == cm assert new_data.units.registry is reg with pytest.raises(RuntimeError): unyt_quantity("hello", "cm") with pytest.raises(RuntimeError): unyt_quantity(np.array([1, 2, 3]), "cm") def test_round(): from unyt import km assert_equal(round(3.3 * km), 3.0) assert_equal(round(3.5 * km), 4.0) assert_equal(round(3 * km), 3) assert_equal(round(3.7 * km), 4) with pytest.raises(TypeError): round([1, 2, 3] * km) @pytest.mark.parametrize("itemsize", (8, 16, 32, 64)) def test_conversion_from_int_types(itemsize): a = unyt_array([1], "cm", dtype=f"int{itemsize}") # check copy conversion a.in_units("m") # check in place conversion if itemsize == 8: with pytest.raises( ValueError, match=re.escape( "Can't convert memory buffer in place. " "Input dtype (int8) has a smaller itemsize than the " "smallest floating point representation possible." ), ): a.convert_to_units("m") else: a.convert_to_units("m") assert a.dtype == f"float{itemsize}" def test_integer_arrays(): from unyt import km, m, mile, ms, s def integer_semantics(inp): arr = inp * km assert arr.dtype == np.int_ arr = np.array(inp, dtype="int32") * km assert arr.dtype.name == "int32" ret = arr.in_units("mile") assert arr.dtype.name == "int32" answer = (inp * km).astype("int32").to("mile") assert_array_equal(ret, answer) assert ret.dtype.name == "float32" ret = arr.in_units("m") assert arr.dtype != ret.dtype assert ret.dtype.name == "float32" arr.convert_to_units("m") assert arr.dtype.name == "float32" arr = inp * km arr.convert_to_units("mile") assert arr.dtype.name == "float" + str(np.int_().dtype.itemsize * 8) for foo in [[1, 2, 3], 12, -8, 0, [1, -2, 3]]: integer_semantics(foo) arr1 = [1, 2, 3] * km arr2 = [4, 5, 6] * mile assert (arr1 + arr2).dtype.name == "float64" assert (arr1 * arr2).dtype == np.int_ assert (arr1 / arr2).dtype.name == "float64" arr1 = [1, 2, 3] * km arr2 = [4, 5, 6] * m assert (arr1 + arr2).dtype.name == "float64" assert (arr1 * arr2).dtype == np.int_ assert (arr1 / arr2).dtype.name == "float64" arr1 = [1, 2, 3] * km arr2 = [4, 5, 6] * km assert (arr1 + arr2).dtype == np.int_ assert (arr1 * arr2).dtype == np.int_ assert (arr1 / arr2).dtype.name == "float64" # see issue #118 for details assert 1000 * ms == 1 * s assert 1 * s == 1000 * ms def test_overflow_warnings(): from unyt import km data = [2**53, 2**54] * km message = "Overflow encountered while converting to units 'mile'" _process_warning(data.to, message, RuntimeWarning, ("mile",)) _process_warning(data.in_units, message, RuntimeWarning, ("mile",)) _process_warning(data.convert_to_units, message, RuntimeWarning, ("mile",)) def test_clip(): from unyt import km data = [1, 2, 3, 4, 5, 6] * km answer = [2, 2, 3, 4, 4, 4] * km ret = np.clip(data, 2, 4) assert_array_equal(ret, answer) assert ret.units == answer.units np.clip(data, 2, 4, out=data) assert_array_equal(data, answer) assert data.units == answer.units left_edge = [0.0, 0.0, 0.0] * km right_edge = [1.0, 1.0, 1.0] * km positions = [[0.0, 0.0, 0.0], [1.0, 1.0, -0.1], [1.5, 1.0, 0.9]] * km np.clip(positions, left_edge, right_edge, positions) assert positions.units == left_edge.units assert positions.max() == 1.0 * km assert positions.min() == 0.0 * km def test_name_attribute(): a = unyt_array([0, 1, 2], "s") assert a.name is None a.name = "time" assert a.name == "time" assert a[0].name == "time" a.convert_to_units("ms") assert a.name == "time" b = unyt_quantity(1, "m", name="distance") assert b.name == "distance" c = b.copy() assert c.name == "distance" c_1 = copy.deepcopy(b) assert c_1.name == "distance" d = b.in_units("mm") assert d.name == "distance" e = b.to("mm") assert e.name == "distance" f = unyt_array([3, 4, 5], "K", name="temperature") g = f.in_units("J", equivalence="thermal") assert g.name is None g_1 = f.to_equivalent("J", equivalence="thermal") assert g_1.name is None f.convert_to_equivalent("J", equivalence="thermal") assert f.name is None h = f.to("J", equivalence="thermal") assert h.name is None def test_neper_bel(): assert 0 * Unit("dB") + 20 * Unit("dB") == unyt_quantity(20, "dB") with pytest.raises(InvalidUnitOperation): unyt_array([1, 10], "V") * Unit("dB") with pytest.raises(InvalidUnitOperation): Unit("Np") * unyt_array([1, 10], "s") with pytest.raises(InvalidUnitOperation): unyt_array([0, 20], "dB") ** 2 with pytest.raises(InvalidUnitOperation): np.power(unyt_array([0, 20], "dB"), -2) def test_delta_degC(): t1 = 10 * degC t2 = 1 * K assert t1 + t2 == 11 * degC with pytest.raises(UnitOperationError): t2 + t1 t3 = 1 * delta_degC assert t1 + t3 == 11 * degC assert t3 + t1 == 11 * degC assert 1 * delta_degC + 2 * delta_degC == 3 * delta_degC assert 2 * delta_degC == unyt_quantity(2, "delta_degC") def test_delta_degF(): t1 = 10 * degF t2 = 1 * R assert t1 + t2 == 11 * degF with pytest.raises(UnitOperationError): t2 + t1 t3 = 1 * delta_degF assert t1 + t3 == 11 * degF assert t3 + t1 == 11 * degF assert 1 * delta_degF + 2 * delta_degF == 3 * delta_degF assert 2 * delta_degF == unyt_quantity(2, "delta_degF") @pytest.mark.parametrize( ("u0", "u1", "uout"), [ (K, K, K), (R, R, R), (degC, degC, delta_degC), (degF, degF, delta_degF), (degC, delta_degC, degC), (delta_degC, degC, degC), (degF, delta_degF, degF), (delta_degF, degF, degF), ], ) def test_delta_temperature_diff(u0, u1, uout): # using repr comparison because # 1) we don't care that Unit instances might not be the same # 2) some temperature units will compare as equal even when they are not identical (e.g. K and delta_degC) assert repr((2 * u0 - 1 * u1).units) == repr(uout) def test_mil(): assert_allclose_units(unyt_quantity(1, "mil"), unyt_quantity(0.001, "inch")) def test_kip(): assert_allclose_units(unyt_quantity(1, "lbf"), unyt_quantity(0.001, "kip")) def test_ksi(): assert_allclose_units(unyt_quantity(1, "lbf/inch**2"), unyt_quantity(0.001, "ksi")) def test_masked_array(): data = unyt_array([1, 2, 3], "s") mask = [False, False, True] marr = np.ma.MaskedArray(data, mask) assert_array_equal(marr.data, data) assert all(marr.mask == mask) assert marr.sum() == unyt_quantity(3, "s") assert np.ma.notmasked_contiguous(marr) == [slice(0, 2, None)] assert marr.argmax() == 1 assert marr.max() == unyt_quantity(2, "s") data = unyt_array([1, 2, np.inf], "s") marr = np.ma.MaskedArray(data) marr_masked = np.ma.masked_invalid(marr) assert all(marr_masked.mask == [False, False, True]) marr_masked.set_fill_value(unyt_quantity(3, "s")) assert_array_equal(marr_masked.filled(), unyt_array([1, 2, 3], "s")) marr_fixed = np.ma.fix_invalid(marr) assert_array_equal(marr_fixed.data, unyt_array([1, 2, 1e20], "s")) assert_array_equal(np.ma.filled(marr, unyt_quantity(3, "s")), data) assert_array_equal(np.ma.compressed(marr_masked), unyt_array([1, 2], "s")) # executing the repr should not raise an exception marr.__repr__() def test_complexvalued(tmp_path): freq = unyt_array([1j, 1j * 10], "Hz") arr = 1 / (Unit("F") * Unit("Ω") * freq) arr = arr.to("dimensionless") assert arr.units.is_dimensionless assert np.all(arr.v == np.asarray([-1j, -1j * 0.1])) arr = unyt_array([1j, 1j * 10], "mJ") arr.convert_to_base() assert_allclose_units(arr, unyt_array([1j * 0.001, 1j * 0.01], "J")) arr.convert_to_units("mJ") assert_allclose_units(arr, unyt_array([1j, 1j * 10], "mJ")) arr.convert_to_mks() assert_allclose_units(arr, unyt_array([1j * 0.001, 1j * 0.01], "J")) arr.convert_to_cgs() assert_allclose_units(arr, unyt_array([1j * 10000, 1j * 100000], "erg")) arr.convert_to_equivalent("K", "thermal") assert_allclose_units( arr, unyt_array([1j * 7.24297157e19, 1j * 7.24297157e20], "K") ) arr = arr.to_equivalent("J", "thermal") assert_allclose_units(arr, unyt_array([1j * 0.001, 1j * 0.01], "J")) assert_allclose_units(arr.to_ndarray(), np.asarray([1j * 0.001, 1j * 0.01])) assert_allclose_units(arr.to_value(), np.asarray([1j * 0.001, 1j * 0.01])) assert arr.tolist() == [1j * 0.001, 1j * 0.01] assert_allclose_units(arr.in_units("mJ"), unyt_array([1j, 1j * 10], "mJ")) assert_allclose_units(arr.in_base(), unyt_array([1j * 0.001, 1j * 0.01], "J")) assert_allclose_units(arr.in_cgs(), unyt_array([1j * 10000, 1j * 100000], "erg")) assert_allclose_units(arr.in_mks(), unyt_array([1j * 0.001, 1j * 0.01], "J")) fname = tmp_path / "testcomplexvalued.txt" savetxt(fname, arr) farr = loadtxt(fname, dtype=np.complex128) assert_allclose_units(farr, unyt_array([1j * 0.001, 1j * 0.01], "J")) def test_string_formatting(): d = unyt_array((1, 2, 3), "Msun") expected = "[1 2 3] Msun" assert f"{d}" == expected assert f"{d}" == expected @pytest.mark.parametrize( "s, expected, normalized", [ ("+1cm", 1.0 * Unit("cm"), "1 cm"), ("1cm", 1.0 * Unit("cm"), "1 cm"), ("1.cm", 1.0 * Unit("cm"), "1.0 cm"), ("1.0 cm", 1.0 * Unit("cm"), "1.0 cm"), ("1.0\tcm", 1.0 * Unit("cm"), "1.0 cm"), ("1.0\t cm", 1.0 * Unit("cm"), "1.0 cm"), ("1.0 cm", 1.0 * Unit("cm"), "1.0 cm"), ("1.0\t\tcm", 1.0 * Unit("cm"), "1.0 cm"), ("10e-1cm", 1.0 * Unit("cm"), "1.0 cm"), ("10E-1cm", 1.0 * Unit("cm"), "1.0 cm"), ("+1cm", 1.0 * Unit("cm"), "1 cm"), ("1um", 1.0 * Unit("μm"), "1 μm"), ("1μm", 1.0 * Unit("μm"), "1 μm"), ("-5 Msun", -5.0 * Unit("Msun"), "-5 Msun"), ("1e3km", 1e3 * Unit("km"), "1000.0 km"), ("-1e3 km", -1e3 * Unit("km"), "-1000.0 km"), ("1.0 g/cm**3", 1.0 * Unit("g/cm**3"), "1.0 g/cm**3"), ("1 g*cm**-3", 1.0 * Unit("g/cm**3"), "1 g/cm**3"), ("1.0 g*cm", 1.0 * Unit("g*cm"), "1.0 cm*g"), ("nan g", float("nan") * Unit("g"), "nan g"), ("-nan g", float("nan") * Unit("g"), "nan g"), ("inf g", float("inf") * Unit("g"), "inf g"), ("+inf g", float("inf") * Unit("g"), "inf g"), ("-inf g", -float("inf") * Unit("g"), "-inf g"), ("1", 1.0 * Unit(), "1 dimensionless"), ("g", 1.0 * Unit("g"), "1 g"), # from https://github.com/yt-project/unyt/issues/361 ("1 g**2/cm**2", 1.0 * Unit("g") ** 2 / Unit("cm") ** 2, "1 g**2/cm**2"), ("g**2/cm**2", 1.0 * Unit("g") ** 2 / Unit("cm") ** 2, "1 g**2/cm**2"), ("1*cm**2", 1.0 * Unit("cm") ** 2, "1 cm**2"), ("1/cm**2", 1.0 / Unit("cm") ** 2, "1 cm**(-2)"), ("1 / cm**2", 1.0 / Unit("cm") ** 2, "1 cm**(-2)"), ( "1e-3 g**2 / cm**2", 1e-3 * Unit("g") ** 2 / Unit("cm") ** 2, "0.001 g**2/cm**2", ), ], ) def test_valid_quantity_from_string(s, expected, normalized): actual = unyt_quantity.from_string(s) assert actual.to_string() == normalized roundtrip = unyt_quantity.from_string(actual.to_string()) if "nan" not in s: assert actual == expected assert roundtrip == expected assert actual.to_string() == normalized assert roundtrip.to_string() == normalized @pytest.mark.parametrize( "s", [ "++1cm", "--1cm", "cm10", "cm 10.", ".cm", "1cm**(-1", "1cm**/2", "1cm**3 hello", ], ) def test_invalid_expression_quantity_from_string(s): with pytest.raises(ValueError, match=r"^(Received invalid quantity expression )"): unyt_quantity.from_string(s) @pytest.mark.parametrize( "s", [ "10 cmmmm", "50. Km", ".6 MSUN", "infcm", # space sep is required here ], ) def test_invalid_unit_quantity_from_string(s): # using a lazy solution here # this test would need to be refactored if we want to add other cases # without a space separator between number and unit. un_str = s.split()[-1] with pytest.raises( UnitParseError, match=f"Could not find unit symbol '{un_str}' in the provided symbols.", ): unyt_quantity.from_string(s) def test_constant_type(): # see https://github.com/yt-project/unyt/issues/224 a = [1] * cm assert type(a) is unyt_array b = 2 * a assert type(b) is unyt_array def test_composite_meshgrid(): # see https://github.com/yt-project/unyt/issues/224 a = np.array(1) # pure numpy call to illustrate that the problem # is only with units np.meshgrid(np.array([1, 2]), a) np.meshgrid(np.array([1, 2]), a * m) @pytest.mark.parametrize( "shape, expected_output_shape", [ (1, (1,)), ((1,), (1,)), ((1, 1), (1, 1)), ((1, -1), (1, 1)), ], ) def test_reshape_quantity_to_array(shape, expected_output_shape): a = unyt_quantity(1, "m") b = a.reshape(shape) assert b.shape == expected_output_shape assert type(b) is unyt_array @pytest.mark.parametrize("shape", ((), None)) def test_reshape_quantity_noop(shape): a = unyt_quantity(1, "m") b = a.reshape(shape) assert b.shape == a.shape == () assert type(b) is unyt_quantity def test_reshape_quantity_via_shape_tuple(): # this is necessary to support np.tile a = unyt_quantity(1, "m") b = a.reshape(-1, 1) assert b.shape == (1, 1) assert type(b) is unyt_array def test_string_comparison(): # exercise comparison between a unyt_quantity object and a string # see regression https://github.com/numpy/numpy/issues/22744 a = 1 * cm assert not (a == "hello") assert a != "hello" def test_int8_comparison(): # see regression https://github.com/yt-project/unyt/issues/369 a = unyt_array(np.zeros(5, dtype=np.int8)) assert all(e == 0 for e in a) def test_setitem(): # see https://github.com/yt-project/unyt/issues/373 a = [1, 2, 3] * cm a[1] = 2 * m assert a[1].value == 200 assert a[1].units == cm with pytest.raises(UnitConversionError): a[1] = 2 * g a[1] = 2 assert a[1].value == 2 assert a[1].units == cm a[1] = unyt_quantity(2) assert a[1].value == 2 assert a[1].units == cm def test_division_by_float_recursion(): # regression test for https://github.com/yt-project/unyt/issues/588 # see also https://github.com/yt-project/unyt/issues/540 # this case previously caused infinite recursion: out_in_place = unyt_array([2, 4, 6], 10 * m) result_in_place = np.true_divide(out_in_place, 2.0, out=out_in_place) assert_array_equal_units( out_in_place, unyt_array([1, 2, 3], 10 * m), ) assert_array_equal_units( result_in_place, unyt_array([1, 2, 3], 10 * m), ) def test_division_by_ndarray_recursion(): # regression test for https://github.com/yt-project/unyt/issues/588 # see also https://github.com/yt-project/unyt/issues/540 a = unyt_array([2, 4, 6], 10 * m) out_ndarray = np.zeros(3) result_ndarray = np.true_divide(a, 2.0, out=out_ndarray) assert_array_equal_units( out_ndarray, np.array([10, 20, 30]), ) assert_array_equal_units( result_ndarray, unyt_array([10, 20, 30], m), ) def test_division_with_unyt_array_out_recursion(): # regression test for https://github.com/yt-project/unyt/issues/588 # see also https://github.com/yt-project/unyt/issues/540 a = unyt_array([2, 4, 6], 10 * m) out_unyt_array_m = unyt_array([0, 0, 0], m) result_unyt_array_m = np.true_divide(a, 2.0, out=out_unyt_array_m) assert_array_equal_units( out_unyt_array_m, unyt_array([10, 20, 30], m), ) assert_array_equal_units( result_unyt_array_m, unyt_array([10, 20, 30], m), ) def test_division_with_unyt_array_quantity_units_out_recursion(): # regression test for https://github.com/yt-project/unyt/issues/588 # see also https://github.com/yt-project/unyt/issues/540 a = unyt_array([2, 4, 6], 10 * m) # this case previously caused infinite recursion: out_unyt_array_10m = unyt_array([0, 0, 0], 10 * m) result_unyt_array_10m = np.true_divide(a, 2.0, out=out_unyt_array_10m) assert_array_equal_units( out_unyt_array_10m, unyt_array([1, 2, 3], 10 * m), ) assert_array_equal_units( result_unyt_array_10m, unyt_array([1, 2, 3], 10 * m), # QUERY: should this be [10, 20, 30], m? ) def test_division_with_unyt_array_different_units_out_recursion(): # regression test for https://github.com/yt-project/unyt/issues/588 # see also https://github.com/yt-project/unyt/issues/540 a = unyt_array([2, 4, 6], 10 * m) out_unyt_array_cm = unyt_array([0, 0, 0], cm) result_unyt_array_cm = np.true_divide(a, 2.0, out=out_unyt_array_cm) assert_array_equal_units( out_unyt_array_cm, unyt_array([10, 20, 30], m), ) assert_array_equal_units( result_unyt_array_cm, unyt_array([10, 20, 30], m), ) def test_division_by_ndarray_with_inplace_out_recursion(): # regression test for https://github.com/yt-project/unyt/issues/588 # see also https://github.com/yt-project/unyt/issues/540 # this case previously caused infinite recursion: out_div_ndarray = unyt_array([2, 4, 6], 10 * m) result_div_ndarray = np.true_divide( out_div_ndarray, np.array([2, 2, 2]), out=out_div_ndarray ) assert_array_equal_units( out_div_ndarray, unyt_array([1, 2, 3], 10 * m), ) assert_array_equal_units( result_div_ndarray, unyt_array([1, 2, 3], 10 * m), # QUERY: should this be [10, 20, 30], m? ) def test_division_by_unyt_array_with_inplace_out_recursion(): # regression test for https://github.com/yt-project/unyt/issues/588 # see also https://github.com/yt-project/unyt/issues/540 # this case previously caused infinite recursion: out_div_unyt_array = unyt_array([2, 4, 6], 10 * m) result_div_unyt_array = np.true_divide( out_div_unyt_array, unyt_array([2, 2, 2], 10 * m), out=out_div_unyt_array ) assert_array_equal_units( out_div_unyt_array, unyt_array([1, 2, 3], "dimensionless"), ) assert_array_equal_units( result_div_unyt_array, unyt_array([1, 2, 3], "dimensionless"), ) def test_division_by_unyt_array_unyt_quantity_units_with_inplace_out_recursion(): # regression test for https://github.com/yt-project/unyt/issues/588 # see also https://github.com/yt-project/unyt/issues/540 # this case previously caused infinite recursion: out_div_unyt_quantity = unyt_array([2, 4, 6], 10 * m) result_div_unyt_quantity = np.true_divide( out_div_unyt_quantity, unyt_quantity(2, 10 * m), out=out_div_unyt_quantity ) assert_array_equal_units( out_div_unyt_quantity, unyt_array([1, 2, 3], "dimensionless"), ) assert_array_equal_units( result_div_unyt_quantity, unyt_array([1, 2, 3], "dimensionless"), ) def test_multiplication_by_one_recursion(): # regression test for https://github.com/yt-project/unyt/issues/588 # see also https://github.com/yt-project/unyt/issues/540 out_mul_one = unyt_array([1, 2, 3], 10 * m) result_mul_one = np.multiply(out_mul_one, 1, out=out_mul_one) assert_array_equal_units( out_mul_one, unyt_array([1, 2, 3], 10 * m), ) assert_array_equal_units( result_mul_one, unyt_array([1, 2, 3], 10 * m), ) def test_mean_recursion(): # regression test for https://github.com/yt-project/unyt/issues/588 # see also https://github.com/yt-project/unyt/issues/540 a = unyt_array([2, 4, 6], 10 * m) # previously caused infinite recursion: assert_array_equal_units( a.mean(), unyt_quantity(4.0, 10 * m), ) def test_std_recursion(): # regression test for https://github.com/yt-project/unyt/issues/588 # see also https://github.com/yt-project/unyt/issues/540 a = unyt_array([1, 1, 5, 5], 10 * m) if NUMPY_VERSION >= Version("2.4.0"): # https://github.com/yt-project/unyt/issues/603 # https://github.com/numpy/numpy/pull/29951 expected = unyt_quantity(2.0, 10 * m) else: expected = unyt_quantity(20.0, m) # previously caused infinite recursion: assert_array_equal_units(a.std(), expected) def test_custom_unit_multiplication_with_out_kwarg(): # regression test for https://github.com/yt-project/unyt/issues/599 reg = UnitRegistry() reg.add( "code_length", base_value=10.0, dimensions=dimensions.length, ) u = Unit("code_length", registry=reg) data = 0 * u # previously crashed with: # UnitParseError: Could not find unit symbol 'code_length' in the provided symbols. np.multiply(data, data, out=data) def test_squeeze_method_array(): """Check that squeeze returns the correct type for the shape of the result.""" arr = np.ones((3, 1)) * cm arr_squeezed = arr.squeeze() assert arr_squeezed.ndim > 0 assert type(arr_squeezed) is unyt_array def test_squeeze_method_scalar(): """Check that squeeze returns the correct type for the shape of the result.""" arr = np.ones(1) * cm arr_squeezed = arr.squeeze() assert arr_squeezed.ndim == 0 assert type(arr_squeezed) is unyt_quantity def test_squeeze_method_with_axis(): """Check that squeeze obeys axis kwarg.""" arr = np.ones((1, 1)) * cm squeeze_axis = (1,) arr_squeezed = arr.squeeze(axis=1) assert arr_squeezed.ndim == arr.ndim - len(squeeze_axis) def test_other_argument_can_handle_binary_ufunc(): class MyClass: __array_ufunc__ = None def __init__(self, x: int): self.x = x def __mul__(self, b): return self.x * b def __rmul__(self, b): return self.x * b def __truediv__(self, b): return self.x / b def __rtruediv__(self, b): return b / self.x x = 5 mc = MyClass(x=x) uq = unyt_quantity(2, "m") ua = unyt_array([2], "m") for u in ua, uq: assert_almost_equal(x * u, mc * u) assert_almost_equal(x * u, u * mc) assert_almost_equal(x / u, mc / u) assert_almost_equal(u / x, u / mc) def test_other_argument_cannot_handle_binary_ufunc(): class MyClass: def __init__(self, x: int): self.x = x x = 5 mc = MyClass(x=x) uq = unyt_quantity(2, "m") ua = unyt_array([2], "m") for u in ua, uq: with pytest.raises(TypeError): mc * u with pytest.raises(TypeError): u * mc with pytest.raises(TypeError): mc / u with pytest.raises(TypeError): u / mc @pytest.mark.parametrize("n_inputs", [1, 2]) def test_unsupported_ufunc_returns_notimplemented(n_inputs): # a user-defined ufunc is guaranteed not to be in unyt_array._ufunc_registry ufunc = np.frompyfunc(lambda *args: args[0], n_inputs, 1) ua = unyt_array([1, 2, 3], "cm") uq = unyt_quantity(1, "cm") for u in ua, uq: inputs = (u,) * n_inputs assert u.__array_ufunc__(ufunc, "__call__", *inputs) is NotImplemented with pytest.raises(TypeError, match="all returned NotImplemented"): ufunc(*inputs) unyt-3.2.0/unyt/tests/test_unyt_testing.py000066400000000000000000000060161526544257300210410ustar00rootroot00000000000000""" Test unyt.testing module that contains utilities for writing tests. """ import pytest from unyt import accepts, meter, returns, second from unyt.array import unyt_array, unyt_quantity from unyt.dimensions import length, time from unyt.testing import assert_allclose_units def test_equality(): a1 = unyt_array([1.0, 2.0, 3.0], "cm") a2 = unyt_array([1.0, 2.0, 3.0], "cm") assert_allclose_units(a1, a2) def test_unequal_error(): a1 = unyt_array([1.0, 2.0, 3.0], "cm") a2 = unyt_array([4.0, 5.0, 6.0], "cm") with pytest.raises(AssertionError): assert_allclose_units(a1, a2) def test_conversion_error(): a1 = unyt_array([1.0, 2.0, 3.0], "cm") a2 = unyt_array([1.0, 2.0, 3.0], "kg") with pytest.raises(AssertionError): assert_allclose_units(a1, a2) def test_runtime_error(): a1 = unyt_array([1.0, 2.0, 3.0], "cm") a2 = unyt_array([1.0, 2.0, 3.0], "cm") with pytest.raises(RuntimeError): assert_allclose_units(a1, a2, rtol=unyt_quantity(1e-7, "cm")) def test_atol_conversion_error(): a1 = unyt_array([1.0, 2.0, 3.0], "cm") a2 = unyt_array([1.0, 2.0, 3.0], "cm") with pytest.raises(AssertionError): assert_allclose_units(a1, a2, atol=unyt_quantity(0.0, "kg")) def test_accepts(): @accepts(a=time, v=length / time) def foo(a, v): return a * v foo(a=2 * second, v=3 * meter / second) with pytest.raises(TypeError): foo(a=2 * meter, v=3 * meter / second) with pytest.raises(TypeError): foo(a=2 * second, v=3 * meter) def test_accepts_partial(): @accepts(a=time) def bar(a, v): return a * v bar(a=2 * second, v=3 * meter / second) bar(a=2 * second, v=3 * meter) with pytest.raises(TypeError): bar(a=2 * meter, v=3 * meter / second) @accepts(v=length / time) def baz(a, v): return a * v baz(a=2 * second, v=3 * meter / second) baz(a=2 * meter, v=3 * meter / second) with pytest.raises(TypeError): baz(a=2 * second, v=3 * meter) def test_returns(): @returns(length) def foo(a, v): return a * v # This usage is deprecated, but we still want to support it for now. with pytest.deprecated_call(): @returns(r_unit=length) def bar(a, v): return a * v for func in [foo, bar]: func(a=2 * second, v=3 * meter / second) with pytest.raises(TypeError): func(a=2 * meter, v=3 * meter / second) with pytest.raises(TypeError): func(a=2 * second, v=3 * meter) # We don't support a mixture of the two usage styles. with pytest.raises(ValueError): @returns(length, r_unit=time) def _(a, v): # pragma: no cover return a, v def test_returns_multiple(): @returns(time, length / time) def baz(a, v): return a, v baz(a=2 * second, v=3 * meter / second) with pytest.raises(TypeError): baz(a=2 * meter, v=3 * meter / second) with pytest.raises(TypeError): baz(a=2 * second, v=3 * meter) unyt-3.2.0/unyt/tests/test_version.py000066400000000000000000000002211526544257300177620ustar00rootroot00000000000000from importlib.metadata import version import unyt def test_version(): expected = version("unyt") assert unyt.__version__ == expected unyt-3.2.0/unyt/unit_object.py000066400000000000000000001103721526544257300164120ustar00rootroot00000000000000""" A class that represents a unit symbol. """ import copy import itertools import math from functools import lru_cache from numbers import Number as numeric_type import numpy as np from sympy import ( Add, Basic, Expr, Float, Mod, Mul, Number, Pow, Rational, Symbol, floor, latex, sympify, ) from sympy.core.numbers import One import unyt.dimensions as dims from unyt._parsing import parse_unyt_expr from unyt._physical_ratios import speed_of_light_cm_per_s from unyt.dimensions import ( angle, base_dimensions, current_mks, dimensionless, logarithmic, temperature, ) from unyt.equivalencies import equivalence_registry from unyt.exceptions import ( InvalidUnitOperation, MissingMKSCurrent, MKSCGSConversionError, UnitConversionError, UnitParseError, UnitsNotReducible, ) from unyt.unit_registry import _lookup_unit_symbol, default_unit_registry from unyt.unit_systems import _split_prefix sympy_one = sympify(1) def _get_latex_representation(expr, registry): symbol_table = {} for ex in expr.free_symbols: try: symbol_table[ex] = registry.lut[str(ex)][3] except KeyError: symbol_table[ex] = r"\rm{" + str(ex).replace("_", r"\ ") + "}" # invert the symbol table dict to look for keys with identical values invert_symbols = {} for key, value in symbol_table.items(): if value not in invert_symbols: invert_symbols[value] = [key] else: invert_symbols[value].append(key) # if there are any units with identical latex representations, substitute # units to avoid uncanceled terms in the final latex expression. for val in invert_symbols: symbols = invert_symbols[val] for i in range(1, len(symbols)): expr = expr.subs(symbols[i], symbols[0]) prefix = None l_expr = expr if isinstance(expr, Mul): coeffs = expr.as_coeff_Mul() if coeffs[0] == 1 or not isinstance(coeffs[0], Number): l_expr = coeffs[1] else: l_expr = coeffs[1] prefix = Float(coeffs[0], 2) latex_repr = latex( l_expr, symbol_names=symbol_table, mul_symbol="dot", fold_frac_powers=True, fold_short_frac=True, ) if prefix is not None: latex_repr = latex(prefix, mul_symbol="times") + "\\ " + latex_repr if latex_repr == "1": return "" else: return latex_repr class _ImportCache: __slots__ = ["_ua", "_uq"] def __init__(self): self._ua = None self._uq = None @property def ua(self): if self._ua is None: from unyt.array import unyt_array self._ua = unyt_array return self._ua @property def uq(self): if self._uq is None: from unyt.array import unyt_quantity self._uq = unyt_quantity return self._uq _import_cache_singleton = _ImportCache() class Unit: """ A symbolic unit, using sympy functionality. We only add "dimensions" so that sympy understands relations between different units. """ __slots__ = [ "expr", "is_atomic", "base_value", "base_offset", "dimensions", "_latex_repr", "registry", "is_Unit", ] # Set some assumptions for sympy. is_positive = True # make sqrt(m**2) --> m is_commutative = True is_number = False __array_priority__ = 3.0 def __new__( cls, unit_expr=sympy_one, base_value=None, base_offset=0.0, dimensions=None, registry=None, latex_repr=None, ): """ Create a new unit. May be an atomic unit (like a gram) or combinations of atomic units (like g / cm**3). Parameters ---------- unit_expr : Unit object, sympy.core.expr.Expr object, or str The symbolic unit expression. base_value : float The unit's value in yt's base units. base_offset : float The offset necessary to normalize temperature units to a common zero point. dimensions : sympy.core.expr.Expr A sympy expression representing the dimensionality of this unit. It must contain only mass, length, time, temperature and angle symbols. registry : UnitRegistry object The unit registry we use to interpret unit symbols. latex_repr : string A string to render the unit as LaTeX """ unit_cache_key = None # Simplest case. If user passes a Unit object, just use the expr. if hasattr(unit_expr, "is_Unit"): # grab the unit object's sympy expression. unit_expr = unit_expr.expr elif hasattr(unit_expr, "units") and hasattr(unit_expr, "value"): # something that looks like a unyt_array, grab the unit and value if unit_expr.shape != (): raise UnitParseError( "Cannot create a unit from a non-scalar unyt_array, " f"received: {unit_expr}" ) value = unit_expr.value if value == 1: unit_expr = unit_expr.units.expr else: unit_expr = unit_expr.value * unit_expr.units.expr # Parse a text unit representation using sympy's parser elif isinstance(unit_expr, (str, bytes)): if isinstance(unit_expr, bytes): unit_expr = unit_expr.decode("utf-8") # this cache substantially speeds up unit conversions if registry and unit_expr in registry._unit_object_cache: return registry._unit_object_cache[unit_expr] unit_cache_key = unit_expr unit_expr = parse_unyt_expr(unit_expr) # Make sure we have an Expr at this point. if not isinstance(unit_expr, Expr): raise UnitParseError( "Unit representation must be a string or " f"sympy Expr. '{unit_expr}' has type '{type(unit_expr)}'." ) if dimensions is None and unit_expr is sympy_one: dimensions = dimensionless if registry is None: # Caller did not set the registry, so use the default. registry = default_unit_registry # done with argument checking... # see if the unit is atomic. is_atomic = False if isinstance(unit_expr, Symbol): is_atomic = True # # check base_value and dimensions # if base_value is not None: # check that base_value is a float or can be converted to one try: base_value = float(base_value) except ValueError: raise UnitParseError( "Could not use base_value as a float. " f"base_value is '{base_value}' (type {type(base_value)})." ) # check that dimensions is valid if dimensions is not None: _validate_dimensions(dimensions) else: # lookup the unit symbols unit_data = _get_unit_data_from_expr(unit_expr, registry.lut) base_value = unit_data[0] dimensions = unit_data[1] if len(unit_data) > 2: base_offset = unit_data[2] latex_repr = unit_data[3] else: base_offset = 0.0 # Create obj with superclass construct. obj = super().__new__(cls) # Attach attributes to obj. obj.expr = unit_expr obj.is_atomic = is_atomic obj.base_value = base_value obj.base_offset = base_offset obj.dimensions = dimensions obj._latex_repr = latex_repr obj.registry = registry # lets us avoid isinstance calls obj.is_Unit = True # if we parsed a string unit expression, cache the result # for faster lookup later if unit_cache_key is not None: registry._unit_object_cache[unit_cache_key] = obj # Return `obj` so __init__ can handle it. return obj @property def latex_repr(self): """A LaTeX representation for the unit Examples -------- >>> from unyt import g, cm >>> (g/cm**3).units.latex_repr '\\\\frac{\\\\rm{g}}{\\\\rm{cm}^{3}}' """ if self._latex_repr is not None: return self._latex_repr if self.expr.is_Atom: expr = self.expr else: expr = self.expr.copy() self._latex_repr = _get_latex_representation(expr, self.registry) return self._latex_repr @property def units(self): return self def __hash__(self): return int(self.registry.unit_system_id, 16) ^ hash(self.expr) # end sympy conventions def __repr__(self): if self.expr == sympy_one: return "(dimensionless)" # @todo: don't use dunder method? return self.expr.__repr__() def __str__(self): if self.expr == sympy_one: return "dimensionless" unit_str = self.expr.__str__() if unit_str == "degC": return "°C" if unit_str == "delta_degC": return "Δ°C" if unit_str == "degF": return "°F" if unit_str == "delta_degF": return "Δ°F" # @todo: don't use dunder method? return unit_str # # Start unit operations # def __add__(self, u): raise InvalidUnitOperation("addition with unit objects is not allowed") def __radd__(self, u): raise InvalidUnitOperation("addition with unit objects is not allowed") def __sub__(self, u): raise InvalidUnitOperation("subtraction with unit objects is not allowed") def __rsub__(self, u): raise InvalidUnitOperation("subtraction with unit objects is not allowed") def __iadd__(self, u): raise InvalidUnitOperation( "in-place operations with unit objects are not allowed" ) def __isub__(self, u): raise InvalidUnitOperation( "in-place operations with unit objects are not allowed" ) def __imul__(self, u): raise InvalidUnitOperation( "in-place operations with unit objects are not allowed" ) def __itruediv__(self, u): raise InvalidUnitOperation( "in-place operations with unit objects are not allowed" ) def __rmul__(self, u): if not getattr(u, "is_Unit", False): data = np.array(u, subok=True) data_type = type(data) if ( issubclass(data_type, _import_cache_singleton.ua) and data_type is not _import_cache_singleton.ua and data_type is not _import_cache_singleton.uq ): return data.__mul__(self) return self.__mul__(u) def __mul__(self, u): """Multiply Unit with u (Unit object).""" if not getattr(u, "is_Unit", False): data = np.array(u, subok=True) if ( issubclass(data.__class__, _import_cache_singleton.ua) and type(data) is not _import_cache_singleton.ua and type(data) is not _import_cache_singleton.uq ): return data.__rmul__(self) unit = getattr(u, "units", None) if unit is not None: if self.dimensions is logarithmic: raise InvalidUnitOperation( f"Tried to multiply '{self}' and '{unit}'." ) units = unit * self else: units = self if data.dtype.kind not in ("f", "u", "i", "c"): # we don't know how to handle this, but the other argument might return NotImplemented if data.shape == (): return _import_cache_singleton.uq(data, units, bypass_validation=True) return _import_cache_singleton.ua(data, units, bypass_validation=True) elif self.dimensions is logarithmic and not u.is_dimensionless: raise InvalidUnitOperation(f"Tried to multiply '{self}' and '{u}'.") elif u.dimensions is logarithmic and not self.is_dimensionless: raise InvalidUnitOperation(f"Tried to multiply '{self}' and '{u}'.") base_offset = 0.0 if self.base_offset or u.base_offset: if u.dimensions in (temperature, angle) and self.is_dimensionless: base_offset = u.base_offset elif self.dimensions in (temperature, angle) and u.is_dimensionless: base_offset = self.base_offset else: raise InvalidUnitOperation( "Quantities with dimensions of angle or units of " "Fahrenheit or Celsius cannot be multiplied." ) return Unit( self.expr * u.expr, base_value=(self.base_value * u.base_value), base_offset=base_offset, dimensions=(self.dimensions * u.dimensions), registry=self.registry, ) def __truediv__(self, u): """Divide Unit by u (Unit object).""" if not isinstance(u, Unit): if isinstance(u, (numeric_type, list, tuple, np.ndarray)): from unyt.array import unyt_quantity return unyt_quantity(1.0, self) / u else: # we don't know how to handle this, but the other argument might return NotImplemented elif self.dimensions is logarithmic and not u.is_dimensionless: raise InvalidUnitOperation(f"Tried to divide '{self}' and '{u}'.") elif u.dimensions is logarithmic and not self.is_dimensionless: raise InvalidUnitOperation(f"Tried to divide '{self}' and '{u}'.") base_offset = 0.0 if self.base_offset or u.base_offset: if self.dimensions in (temperature, angle) and u.is_dimensionless: base_offset = self.base_offset else: raise InvalidUnitOperation( "Quantities with units of Farhenheit and Celsius cannot be divided." ) return Unit( self.expr / u.expr, base_value=(self.base_value / u.base_value), base_offset=base_offset, dimensions=(self.dimensions / u.dimensions), registry=self.registry, ) def __rtruediv__(self, u): return u * self**-1 def __pow__(self, p): """Take Unit to power p (float).""" try: p = Rational(str(p)).limit_denominator() except (ValueError, TypeError): raise InvalidUnitOperation( f"Tried to take a Unit object to the power '{p}' (type {type(p)}). " "Failed to cast it to a float." ) if self.dimensions is logarithmic and p != 1: raise InvalidUnitOperation(f"Tried to raise '{self}' to power '{p}'") return Unit( self.expr**p, base_value=(self.base_value**p), dimensions=(self.dimensions**p), registry=self.registry, ) def __eq__(self, u): """Test unit equality.""" return ( isinstance(u, Unit) and math.isclose(self.base_value, u.base_value) and math.isclose(self.base_offset, u.base_offset) and ( # use 'is' comparison dimensions to avoid expensive sympy operation self.dimensions is u.dimensions # fall back to expensive sympy comparison or self.dimensions == u.dimensions ) ) def copy(self, *, deep=False): expr = str(self.expr) base_value = copy.deepcopy(self.base_value) base_offset = copy.deepcopy(self.base_offset) dimensions = copy.deepcopy(self.dimensions) if deep: registry = copy.deepcopy(self.registry) else: registry = copy.copy(self.registry) return Unit(expr, base_value, base_offset, dimensions, registry) def __deepcopy__(self, memodict=None): return self.copy(deep=True) # # End unit operations # def same_dimensions_as(self, other_unit): """Test if the dimensions of *other_unit* are the same as this unit Examples -------- >>> from unyt import Msun, kg, mile >>> Msun.units.same_dimensions_as(kg.units) True >>> Msun.units.same_dimensions_as(mile.units) False """ # test first for 'is' equality to avoid expensive sympy operation if self.dimensions is other_unit.dimensions: return True return (self.dimensions / other_unit.dimensions) == sympy_one @property def is_dimensionless(self): """Is this a dimensionless unit? Returns ------- True for a dimensionless unit, False otherwise Examples -------- >>> from unyt import count, kg >>> count.units.is_dimensionless True >>> kg.units.is_dimensionless False """ return self.dimensions is sympy_one @property def is_code_unit(self): """Is this a "code" unit? Returns ------- True if the unit consists of atom units that being with "code". False otherwise """ for atom in self.expr.atoms(): if not (str(atom).startswith("code") or atom.is_Number): return False return True def list_equivalencies(self): """Lists the possible equivalencies associated with this unit object Examples -------- >>> from unyt import km >>> km.units.list_equivalencies() spectral: length <-> spatial_frequency <-> frequency <-> energy schwarzschild: mass <-> length compton: mass <-> length """ from unyt.equivalencies import equivalence_registry for k, v in equivalence_registry.items(): if self.has_equivalent(k): print(v()) def has_equivalent(self, equiv): """ Check to see if this unit object as an equivalent unit in *equiv*. Example ------- >>> from unyt import km >>> km.has_equivalent('spectral') True >>> km.has_equivalent('mass_energy') False """ try: this_equiv = equivalence_registry[equiv]() except KeyError: raise KeyError(f'No such equivalence "{equiv}".') old_dims = self.dimensions return old_dims in this_equiv._dims def get_base_equivalent(self, unit_system=None): """Create and return dimensionally-equivalent units in a specified base. >>> from unyt import g, cm >>> (g/cm**3).get_base_equivalent('mks') kg/m**3 >>> (g/cm**3).get_base_equivalent('solar') Mearth/AU**3 """ from unyt.unit_registry import _sanitize_unit_system unit_system = _sanitize_unit_system(unit_system, self) try: conv_data = _check_em_conversion( self.units, registry=self.registry, unit_system=unit_system ) um = unit_system.units_map if self.dimensions in um and self.expr == um[self.dimensions]: return self.copy() except MKSCGSConversionError: raise UnitsNotReducible(self.units, unit_system) if any(conv_data): new_units, _ = _em_conversion(self, conv_data, unit_system=unit_system) else: try: new_units = unit_system[self.dimensions] except MissingMKSCurrent: raise UnitsNotReducible(self.units, unit_system) return Unit(new_units, registry=self.registry) def get_cgs_equivalent(self): """Create and return dimensionally-equivalent cgs units. Example ------- >>> from unyt import kg, m >>> (kg/m**3).get_cgs_equivalent() g/cm**3 """ return self.get_base_equivalent(unit_system="cgs") def get_mks_equivalent(self): """Create and return dimensionally-equivalent mks units. Example ------- >>> from unyt import g, cm >>> (g/cm**3).get_mks_equivalent() kg/m**3 """ return self.get_base_equivalent(unit_system="mks") def get_conversion_factor(self, other_units, dtype=None): """Get the conversion factor and offset (if any) from one unit to another Parameters ---------- other_units: unit object The units we want the conversion factor for dtype: numpy dtype The dtype to return the conversion factor as Returns ------- conversion_factor : float old_units / new_units offset : float or None Offset between this unit and the other unit. None if there is no offset. Examples -------- >>> from unyt import km, cm, degree_fahrenheit, degree_celsius >>> km.get_conversion_factor(cm) (100000.0, None) >>> degree_celsius.get_conversion_factor(degree_fahrenheit) (1.7999999999999998, -31.999999999999886) """ return _get_conversion_factor(self, other_units, dtype) def latex_representation(self): """A LaTeX representation for the unit Examples -------- >>> from unyt import g, cm >>> (g/cm**3).latex_representation() '\\\\frac{\\\\rm{g}}{\\\\rm{cm}^{3}}' """ return self.latex_repr def as_coeff_unit(self): """Factor the coefficient multiplying a unit For units that are multiplied by a constant dimensionless coefficient, returns a tuple containing the coefficient and a new unit object for the unmultiplied unit. Example ------- >>> import unyt as u >>> unit = (u.m**2/u.cm).simplify() >>> unit 100*m >>> unit.as_coeff_unit() (100.0, m) """ coeff, mul = self.expr.as_coeff_Mul() coeff = float(coeff) ret = Unit( mul, self.base_value / coeff, self.base_offset, self.dimensions, self.registry, ) return coeff, ret def simplify(self): """Return a new equivalent unit object with a simplified unit expression >>> import unyt as u >>> unit = (u.m**2/u.cm).simplify() >>> unit 100*m """ expr = self.expr self.expr = _cancel_mul(expr, self.registry) return self def _factor_pairs(expr): factors = expr.as_ordered_factors() expanded_factors = [] for f in factors: if f.is_Number: continue base, exp = f.as_base_exp() if exp.q != 1: expanded_factors.append(base ** Mod(exp, 1)) exp = floor(exp) if exp >= 0: f = (base,) * exp else: f = (1 / base,) * abs(exp) expanded_factors.extend(f) return list(itertools.combinations(expanded_factors, 2)) def _create_unit_from_factor(factor, registry): base, exp = factor.as_base_exp() f = registry[str(base)] return Unit(base, f[0], f[2], f[1], registry, f[3]) ** exp def _cancel_mul(expr, registry): pairs_to_consider = _factor_pairs(expr) uncancelable_pairs = set() while len(pairs_to_consider): pair = pairs_to_consider.pop() if pair in uncancelable_pairs: continue u1 = _create_unit_from_factor(pair[0], registry) u2 = _create_unit_from_factor(pair[1], registry) prod = u1 * u2 if prod.dimensions == 1: expr = expr / pair[0] expr = expr / pair[1] value = prod.base_value if value != 1: if value.is_integer(): value = int(value) expr *= value else: uncancelable_pairs.add(pair) pairs_to_consider = _factor_pairs(expr) return expr # # Unit manipulation functions # # map from dimensions in one unit system to dimensions in other system, # canonical unit to convert to in that system, and floating point # conversion factor em_conversions = { ("C", dims.charge_mks): (dims.charge_cgs, "statC", 0.1 * speed_of_light_cm_per_s), ("statC", dims.charge_cgs): (dims.charge_mks, "C", 10.0 / speed_of_light_cm_per_s), ("T", dims.magnetic_field_mks): (dims.magnetic_field_cgs, "G", 1.0e4), ("G", dims.magnetic_field_cgs): (dims.magnetic_field_mks, "T", 1.0e-4), ("A", dims.current_mks): (dims.current_cgs, "statA", 0.1 * speed_of_light_cm_per_s), ("statA", dims.current_cgs): ( dims.current_mks, "A", 10.0 / speed_of_light_cm_per_s, ), ("V", dims.electric_potential_mks): ( dims.electric_potential_cgs, "statV", 1.0e-8 * speed_of_light_cm_per_s, ), ("statV", dims.electric_potential_cgs): ( dims.electric_potential_mks, "V", 1.0e8 / speed_of_light_cm_per_s, ), ("Ω", dims.resistance_mks): ( dims.resistance_cgs, "statohm", 1.0e9 / (speed_of_light_cm_per_s**2), ), ("statohm", dims.resistance_cgs): ( dims.resistance_mks, "Ω", 1.0e-9 * speed_of_light_cm_per_s**2, ), } em_conversion_dims = [k[1] for k in em_conversions.keys()] def _em_conversion(orig_units, conv_data, to_units=None, unit_system=None): """Convert between E&M & MKS base units. If orig_units is a CGS (or MKS) E&M unit, conv_data contains the corresponding MKS (or CGS) unit and scale factor converting between them. This must be done by replacing the expression of the original unit with the new one in the unit expression and multiplying by the scale factor. """ conv_unit, canonical_unit, scale = conv_data if conv_unit is None: conv_unit = canonical_unit new_expr = scale * canonical_unit.expr if unit_system is not None: # we don't know the to_units, so we get it directly from the # conv_data to_units = Unit(conv_unit.expr, registry=orig_units.registry) new_units = Unit(new_expr, registry=orig_units.registry) conv = new_units.get_conversion_factor(to_units) return to_units, conv @lru_cache(maxsize=128, typed=False) def _check_em_conversion(unit, to_unit=None, unit_system=None, registry=None): """Check to see if the units contain E&M units This function supports unyt's ability to convert data to and from E&M electromagnetic units. However, this support is limited and only very simple unit expressions can be readily converted. This function tries to see if the unit is an atomic base unit that is present in the em_conversions dict. If it does not contain E&M units, the function returns an empty tuple. If it does contain an atomic E&M unit in the em_conversions dict, it returns a tuple containing the unit to convert to and scale factor. If it contains a more complicated E&M unit and we are trying to convert between CGS & MKS E&M units, it raises an error. """ em_map = () if unit == to_unit or unit.dimensions not in em_conversion_dims: return em_map if unit.is_atomic: prefix, unit_wo_prefix = _split_prefix(str(unit), unit.registry.lut) else: prefix, unit_wo_prefix = "", str(unit) if (unit_wo_prefix, unit.dimensions) in em_conversions: em_info = em_conversions[unit_wo_prefix, unit.dimensions] em_unit = Unit(prefix + em_info[1], registry=registry) if to_unit is None: cmks_in_unit = current_mks in unit.dimensions.atoms() cmks_in_unit_system = unit_system.units_map[current_mks] cmks_in_unit_system = cmks_in_unit_system is not None if cmks_in_unit and cmks_in_unit_system: em_map = (unit_system[unit.dimensions], unit, 1.0) else: em_map = (None, em_unit, em_info[2]) elif to_unit.dimensions == em_unit.dimensions: em_map = (to_unit, em_unit, em_info[2]) if em_map: return em_map if unit_system is None: from unyt.unit_systems import unit_system_registry unit_system = unit_system_registry["mks"] for unit_atom in unit.expr.atoms(): if unit_atom.is_Number: continue bu = str(unit_atom) budims = Unit(bu, registry=registry).dimensions try: if str(unit_system[budims]) == bu: continue except MissingMKSCurrent: raise MKSCGSConversionError(unit) return em_map def _get_conversion_factor(old_units, new_units, dtype): """ Get the conversion factor between two units of equivalent dimensions. This is the number you multiply data by to convert from values in `old_units` to values in `new_units`. Parameters ---------- old_units: str or Unit object The current units. new_units : str or Unit object The units we want. dtype: NumPy dtype The dtype of the conversion factor Returns ------- conversion_factor : float `old_units / new_units` offset : float or None Offset between the old unit and new unit. """ if old_units.dimensions != new_units.dimensions: raise UnitConversionError( old_units, old_units.dimensions, new_units, new_units.dimensions ) old_basevalue = old_units.base_value old_baseoffset = old_units.base_offset new_basevalue = new_units.base_value new_baseoffset = new_units.base_offset ratio = old_basevalue / new_basevalue if dtype is not None: # Return the conversion factor (and offset, below) with the requested # precision, as documented. Internal call sites in array.py used to # re-cast the result manually because this argument was ignored; the # cast belongs here. A minimum width of 2 bytes mirrors the pattern # used in unyt/array.py, since 1-byte types have no float equivalent. requested = np.dtype(dtype) # A complex type stores two reals, so its matching real width is half # the item size; asking for f16 on a 16-byte complex would name a # float128 that does not exist on Windows or macOS. width = ( requested.itemsize // 2 if requested.kind == "c" else max(2, requested.itemsize) ) float_dtype = np.dtype(f"f{width}") ratio = float_dtype.type(ratio) if old_baseoffset == 0 and new_baseoffset == 0: return (ratio, None) else: # the dimensions are either temperature or angle (lat, lon) if old_units.dimensions == temperature: # for degree Celsius, back out the SI prefix scaling from # offset scaling for degree Fahrenheit old_prefix, _ = _split_prefix(str(old_units), old_units.registry.lut) if old_prefix != "": old_baseoffset /= old_basevalue new_prefix, _ = _split_prefix(str(new_units), new_units.registry.lut) if new_prefix != "": new_baseoffset /= new_basevalue offset = ratio * old_baseoffset - new_baseoffset if dtype is not None: offset = float_dtype.type(offset) return ratio, offset # # Helper functions # def _get_unit_data_from_expr(unit_expr, unit_symbol_lut): """ Grabs the total base_value and dimensions from a valid unit expression. Parameters ---------- unit_expr: Unit object, or sympy Expr object The expression containing unit symbols. unit_symbol_lut: dict Provides the unit data for each valid unit symbol. """ # Now for the sympy possibilities if isinstance(unit_expr, Number): if unit_expr is sympy_one: return (1.0, sympy_one) return (float(unit_expr), sympy_one) if isinstance(unit_expr, Symbol): return _lookup_unit_symbol(unit_expr.name, unit_symbol_lut) if isinstance(unit_expr, Pow): unit_data = _get_unit_data_from_expr(unit_expr.args[0], unit_symbol_lut) power = unit_expr.args[1] if isinstance(power, Symbol): raise UnitParseError(f"Invalid unit expression '{unit_expr}'.") conv = float(unit_data[0] ** power) unit = unit_data[1] ** power return (conv, unit) if isinstance(unit_expr, Mul): base_value = 1.0 dimensions = 1 for expr in unit_expr.args: unit_data = _get_unit_data_from_expr(expr, unit_symbol_lut) base_value *= unit_data[0] dimensions *= unit_data[1] return (float(base_value), dimensions) raise UnitParseError( f"Cannot parse for unit data from {str(unit_expr)!r}. Please supply " "an expression of only Unit, Symbol, Pow, and Mul objects." ) def _validate_dimensions(dimensions): if isinstance(dimensions, Mul): for dim in dimensions.args: _validate_dimensions(dim) elif isinstance(dimensions, Symbol): if dimensions not in base_dimensions: raise UnitParseError( f"Dimensionality expression contains an unknown symbol '{dimensions}'." ) elif isinstance(dimensions, Pow): if not isinstance(dimensions.args[1], Number): raise UnitParseError( f"Dimensionality expression '{dimensions}' contains a " "unit symbol as a power." ) elif isinstance(dimensions, (Add, Number)): if not isinstance(dimensions, One): raise UnitParseError( "Only dimensions that are instances of Pow, " "Mul, or symbols in the base dimensions are " f"allowed. Got dimensions '{dimensions}'" ) elif not isinstance(dimensions, Basic): raise UnitParseError(f"Bad dimensionality expression '{dimensions}'.") def define_unit( symbol, value, tex_repr=None, offset=None, prefixable=False, registry=None ): """ Define a new unit and add it to the specified unit registry. Parameters ---------- symbol : string The symbol for the new unit. value : tuple or :class:`unyt.array.unyt_quantity` The definition of the new unit in terms of some other units. For example, one would define a new "mph" unit with ``(1.0, "mile/hr")`` or with ``1.0*unyt.mile/unyt.hr`` tex_repr : string, optional The LaTeX representation of the new unit. If one is not supplied, it will be generated automatically based on the symbol string. offset : float, optional The default offset for the unit. If not set, an offset of 0 is assumed. prefixable : boolean, optional Whether or not the new unit can use SI prefixes. Default: False registry : :class:`unyt.unit_registry.UnitRegistry` or None The unit registry to add the unit to. If None, then defaults to the global default unit registry. If registry is set to None then the unit object will be added as an attribute to the top-level :mod:`unyt` namespace to ease working with the newly defined unit. See the example below. Examples -------- >>> from unyt import day >>> two_weeks = 14.0*day >>> one_day = 1.0*day >>> define_unit("two_weeks", two_weeks) >>> from unyt import two_weeks >>> print((3*two_weeks)/one_day) 42.0 dimensionless """ import unyt from unyt.array import _iterable, unyt_quantity if registry is None: registry = default_unit_registry if symbol in registry: raise RuntimeError( f"Unit symbol '{symbol}' already exists in the provided registry" ) if not isinstance(value, unyt_quantity): if _iterable(value) and len(value) == 2: value = unyt_quantity(value[0], value[1], registry=registry) else: raise RuntimeError('"value" needs to be a quantity or (value, unit) tuple!') base_value = float(value.in_base(unit_system="mks")) dimensions = value.units.dimensions registry.add( symbol, base_value, dimensions, prefixable=prefixable, tex_repr=tex_repr, offset=offset, ) if registry is default_unit_registry: u = Unit(symbol, registry=registry) setattr(unyt, symbol, u) NULL_UNIT = Unit() unyt-3.2.0/unyt/unit_registry.py000066400000000000000000000305551526544257300170200ustar00rootroot00000000000000""" A registry for units that can be added to and modified. """ import copy import json from functools import lru_cache from hashlib import md5 from sympy import sympify from unyt import dimensions as unyt_dims from unyt._unit_lookup_table import default_unit_symbol_lut, unit_prefixes from unyt.exceptions import SymbolNotFoundError, UnitParseError from unyt.unit_systems import _split_prefix, mks_unit_system, unit_system_registry def _sanitize_unit_system(unit_system, obj): if unit_system is None: try: unit_system = obj.units.registry.unit_system except AttributeError: unit_system = mks_unit_system if hasattr(unit_system, "name"): return unit_system_registry[unit_system.name] elif hasattr(unit_system, "unit_registry"): unit_system = unit_system.unit_registry.unit_system_id elif unit_system == "code": unit_system = obj.units.registry.unit_system_id return unit_system_registry[str(unit_system)] @lru_cache(maxsize=128, typed=False) def cached_sympify(u): """ Successive loads of unit systems produce the same calls to sympify in UnitRegistry.from_json. Even within a single load, this is a net improvement because there will often be a few cache hits """ return sympify(u, locals=vars(unyt_dims)) class UnitRegistry: """A registry for unit symbols""" _unit_system_id = None def __init__(self, add_default_symbols=True, lut=None, unit_system=None): self._unit_object_cache = {} if lut: self.lut = lut else: self.lut = {} self.unit_system = _sanitize_unit_system(unit_system, None) if add_default_symbols: self.lut.update(default_unit_symbol_lut) def __getitem__(self, key): try: ret = self.lut[str(key)] except KeyError: try: _lookup_unit_symbol(str(key), self.lut) ret = self.lut[str(key)] except UnitParseError: raise SymbolNotFoundError( f"The symbol '{key}' does not exist in this registry." ) return ret def __contains__(self, item): if str(item) in self.lut: return True try: _lookup_unit_symbol(str(item), self.lut) return True except UnitParseError: return False @property def unit_system_id(self): """ This is a unique identifier for the unit registry created from a FNV hash. It is needed to register a dataset's code unit system in the unit system registry. """ if self._unit_system_id is None: hash_data = bytearray() for k, v in sorted(self.lut.items()): hash_data.extend(k.encode("utf8")) hash_data.extend(repr(v).encode("utf8")) # This hash is only a fingerprint used to identify a unit # registry, never for security, so flag it accordingly. Without # usedforsecurity=False, importing unyt crashes on FIPS-enabled # systems where MD5 is disabled for security purposes (#580). m = md5(usedforsecurity=False) m.update(hash_data) self._unit_system_id = str(m.hexdigest()) return self._unit_system_id @property def prefixable_units(self): return [u for u in self.lut if self.lut[u][4]] def add( self, symbol, base_value, dimensions, tex_repr=None, offset=None, prefixable=False, ): """ Add a symbol to this registry. Parameters ---------- symbol : str The name of the unit base_value : float The scaling from the units value to the equivalent SI unit with the same dimensions dimensions : expr The dimensions of the unit tex_repr : str, optional The LaTeX representation of the unit. If not provided a LaTeX representation is automatically generated from the name of the unit. offset : float, optional If set, the zero-point offset to apply to the unit to convert to SI. This is mostly used for units like Farhenheit and Celsius that are not defined on an absolute scale. prefixable : bool If True, then SI-prefix versions of the unit will be created along with the unit itself. """ from unyt.unit_object import _validate_dimensions self._unit_system_id = None # Validate if not isinstance(base_value, float): raise UnitParseError( f"base_value ({base_value}) must be a float, got a {type(base_value)}." ) if offset is not None: if not isinstance(offset, float): raise UnitParseError( f"offset value ({offset}) must be a float, got a {type(offset)}." ) else: offset = 0.0 _validate_dimensions(dimensions) if tex_repr is None: # make educated guess that will look nice in most cases tex_repr = r"\rm{" + symbol.replace("_", r"\ ") + "}" # Add to lut self.lut[symbol] = (base_value, dimensions, offset, tex_repr, prefixable) def remove(self, symbol): """ Remove the entry for the unit matching `symbol`. Parameters ---------- symbol : str The name of the unit symbol to remove from the registry. """ self._unit_system_id = None if symbol not in self.lut: raise SymbolNotFoundError( r"Tried to remove the symbol {symbol!r}, but it does not exist " "in this registry." ) del self.lut[symbol] if symbol in self._unit_object_cache: del self._unit_object_cache[symbol] def modify(self, symbol, base_value): """ Change the base value of a unit symbol. Useful for adjusting code units after parsing parameters. Parameters ---------- symbol : str The name of the symbol to modify base_value : float The new base_value for the symbol. """ self._unit_system_id = None if symbol not in self.lut: raise SymbolNotFoundError( f"Tried to modify the symbol {symbol!r}, but it does not exist " "in this registry." ) if hasattr(base_value, "in_base"): new_dimensions = base_value.units.dimensions base_value = base_value.in_base("mks") base_value = base_value.value else: new_dimensions = self.lut[symbol][1] self.lut[symbol] = (float(base_value), new_dimensions) + self.lut[symbol][2:] if symbol in self._unit_object_cache: del self._unit_object_cache[symbol] def keys(self): """ Print out the units contained in the lookup table. """ return self.lut.keys() def to_json(self): """ Returns a json-serialized version of the unit registry """ sanitized_lut = {} for k, v in self.lut.items(): san_v = list(v) repr_dims = str(v[1]) san_v[1] = repr_dims sanitized_lut[k] = tuple(san_v) return json.dumps(sanitized_lut) @classmethod def from_json(cls, json_text): """ Returns a UnitRegistry object from a json-serialized unit registry Parameters ---------- json_text : str A string containing a json representation of a UnitRegistry """ data = json.loads(json_text) lut = _correct_old_unit_registry(data, sympify=True) return cls(lut=lut, add_default_symbols=False) def list_same_dimensions(self, unit_object): """ Return a list of base unit names that this registry knows about that are of equivalent dimensions to *unit_object*. """ equiv = [k for k, v in self.lut.items() if v[1] is unit_object.dimensions] equiv = sorted(set(equiv)) return equiv def __deepcopy__(self, memodict=None): lut = copy.deepcopy(self.lut) return type(self)(lut=lut) class _NonModifiableUnitRegistry(UnitRegistry): """The class of the default unit registry""" def modify(self, symbol, base_value): raise TypeError("Units from unyt's default registry cannot be modified.") def remove(self, symbol): raise TypeError("Units from unyt's default registry cannot be removed.") #: The default unit registry default_unit_registry = _NonModifiableUnitRegistry() def _lookup_unit_symbol(symbol_str, unit_symbol_lut): """ Searches for the unit data tuple corresponding to the given symbol. Parameters ---------- symbol_str : str The unit symbol to look up. unit_symbol_lut : dict Dictionary with symbols as keys and unit data tuples as values. """ if symbol_str in unit_symbol_lut: # lookup successful, return the tuple directly return unit_symbol_lut[symbol_str] # could still be a known symbol with a prefix prefix, symbol_wo_prefix = _split_prefix(symbol_str, unit_symbol_lut) if prefix: # lookup successful, it's a symbol with a prefix unit_data = unit_symbol_lut[symbol_wo_prefix] prefix_value = unit_prefixes[prefix][0] # Need to add some special handling for comoving units # this is fine for now, but it wouldn't work for a general # unit that has an arbitrary LaTeX representation if symbol_wo_prefix != "cm" and symbol_wo_prefix.endswith("cm"): sub_symbol_wo_prefix = symbol_wo_prefix[:-2] sub_symbol_str = symbol_str[:-2] else: sub_symbol_wo_prefix = symbol_wo_prefix sub_symbol_str = symbol_str latex_repr = unit_data[3].replace( "{" + sub_symbol_wo_prefix + "}", "{" + sub_symbol_str + "}" ) # Leave offset and dimensions the same, but adjust scale factor and # LaTeX representation ret = ( unit_data[0] * prefix_value, unit_data[1], unit_data[2], latex_repr, False, ) unit_symbol_lut[symbol_str] = ret return ret # no dice raise UnitParseError( f"Could not find unit symbol '{symbol_str}' in the provided symbols." ) def _correct_old_unit_registry(data, sympify=False): lut = {} for k, v in data.items(): unsan_v = list(v) if sympify: unsan_v[1] = cached_sympify(v[1]) if len(unsan_v) == 4: # old unit registry so we need to add SI-prefixability to the registry # entry, correct the base_value to be in MKS units, and swap dimensions to # use unyt's dimension singletons # add SI-prefixability to LUT entry if k in default_unit_symbol_lut: unsan_v.append(default_unit_symbol_lut[k][4]) else: unsan_v.append(False) dims = unsan_v[1] for dim_factor in dims.as_ordered_factors(): dim, power = dim_factor.as_base_exp() # Swap dimensions in the LUT entry to use unyt's dimension singletons for base_dim in unyt_dims.base_dimensions: # If they're *equal* but not *identical*, swap them if base_dim == dim and base_dim is not dim: if power != 1: unsan_v[1] /= dim**power unsan_v[1] *= base_dim**power else: # need a special case for power == 1 because id(symbol ** 1) # is not necessarily the same as id(symbol) unsan_v[1] /= dim unsan_v[1] *= base_dim break # correct base value to be in MKS units if dim == unyt_dims.mass: unsan_v[0] /= 1000 ** float(power) if dim == unyt_dims.length: unsan_v[0] /= 100 ** float(power) lut[k] = tuple(unsan_v) for k in default_unit_symbol_lut: if k not in lut: lut[k] = default_unit_symbol_lut[k] return lut unyt-3.2.0/unyt/unit_symbols.py000066400000000000000000000012211526544257300166240ustar00rootroot00000000000000""" Predefined useful aliases to physical units Note that all of these names can be imported from the top-level unyt namespace. For example:: >>> from unyt import cm, g, s >>> data = [3, 4, 5]*g*cm/s >>> print(data) [3 4 5] cm*g/s .. show_all_units:: """ from unyt._unit_lookup_table import name_alternatives as _name_alternatives from unyt.unit_object import Unit as _Unit from unyt.unit_registry import default_unit_registry as _registry _namespace = globals() for _canonical_name, _alt_names in _name_alternatives.items(): for _alt_name in _alt_names: _namespace[_alt_name] = _Unit(_canonical_name, registry=_registry) unyt-3.2.0/unyt/unit_systems.py000066400000000000000000000276351526544257300166640ustar00rootroot00000000000000""" Unit system class. """ from collections import OrderedDict from unyt import dimensions from unyt._parsing import parse_unyt_expr from unyt._unit_lookup_table import ( default_unit_symbol_lut as default_lut, inv_name_alternatives, physical_constants, unit_prefixes, ) from unyt.exceptions import IllDefinedUnitSystem, MissingMKSCurrent, UnitsNotReducible def add_symbols(namespace, registry): """Adds the unit symbols from :mod:`unyt.unit_symbols` to a namespace Parameters ---------- namespace : dict The dict to insert unit symbols into. The keys will be string unit names and values will be the corresponding unit objects. registry : :class:`unyt.unit_registry.UnitRegistry` The registry to create units from. Note that if you would like to use a custom unit system, ensure your registry was created using that unit system. Example ------- >>> from unyt.unit_registry import UnitRegistry >>> class MyClass(): ... def __init__(self): ... self.reg = UnitRegistry() ... add_symbols(vars(self), self.reg) >>> foo = MyClass() >>> foo.kilometer km >>> foo.joule J """ import unyt.unit_symbols as us from unyt.unit_object import Unit for name, unit in vars(us).items(): if name.startswith("_"): continue namespace[name] = Unit(unit.expr, registry=registry) for name in [k for k in registry.keys() if k not in namespace]: namespace[name] = Unit(name, registry=registry) def add_constants(namespace, registry): """Adds the quantities from :mod:`unyt.physical_constants` to a namespace Parameters ---------- namespace : dict The dict to insert quantities into. The keys will be string names and values will be the corresponding quantities. registry : :class:`unyt.unit_registry.UnitRegistry` The registry to create units from. Note that if you would like to use a custom unit system, ensure your registry was created using that unit system. Example ------- >>> from unyt.unit_registry import UnitRegistry >>> class MyClass(): ... def __init__(self): ... self.reg = UnitRegistry(unit_system='cgs') ... add_constants(vars(self), self.reg) >>> foo = MyClass() >>> foo.gravitational_constant unyt_quantity(6.67408e-08, 'cm**3/(g*s**2)') >>> foo.speed_of_light unyt_quantity(2.99792458e+10, 'cm/s') """ from unyt.array import unyt_quantity for constant_name in physical_constants: value, unit_name, alternate_names = physical_constants[constant_name] for name in alternate_names + [constant_name]: quan = unyt_quantity(value, unit_name, registry=registry) try: namespace[name] = quan.in_base(unit_system=registry.unit_system) except UnitsNotReducible: namespace[name] = quan namespace[name + "_mks"] = unyt_quantity( value, unit_name, registry=registry ) try: namespace[name + "_cgs"] = quan.in_cgs() except UnitsNotReducible: pass if name == "h": # backward compatibility for unyt 1.0, which defined hmks namespace["hmks"] = namespace["h_mks"].copy() namespace["hcgs"] = namespace["h_cgs"].copy() def _split_prefix(symbol_str, unit_symbol_lut): possible_prefix = symbol_str[0] if symbol_str[:2] == "da": possible_prefix = "da" if possible_prefix in unit_prefixes: # the first character could be a prefix, check the rest of the symbol symbol_wo_pref = symbol_str[1:] # deca is the only prefix with length 2 if symbol_str[:2] == "da": symbol_wo_pref = symbol_str[2:] possible_prefix = "da" entry = unit_symbol_lut.get(symbol_wo_pref, None) if entry and entry[4]: return possible_prefix, symbol_wo_pref return "", symbol_str def _get_system_unit_string(dims, base_units): # The dimensions of a unit object is the product of the base dimensions. # Use sympy to factor the dimensions into base CGS unit symbols. units = [] my_dims = dims.expand() if my_dims is dimensions.dimensionless: return "" for factor in my_dims.as_ordered_factors(): dim = list(factor.free_symbols)[0] unit_string = str(base_units[dim]) if factor.is_Pow: power_string = f"**({factor.as_base_exp()[1]})" else: power_string = "" units.append(f"({unit_string}){power_string}") return " * ".join(units) unit_system_registry = {} cmks = dimensions.current_mks class UnitSystem: """ Create a UnitSystem for facilitating conversions to a default set of units. Parameters ---------- name : string The name of the unit system. Will be used as the key in the *unit_system_registry* dict to reference the unit system by. length_unit : string or :class:`unyt.unit_object.Unit` The base length unit of this unit system. mass_unit : string or :class:`unyt.unit_object.Unit` The base mass unit of this unit system. time_unit : string or :class:`unyt.unit_object.Unit` The base time unit of this unit system. temperature_unit : string or :class:`unyt.unit_object.Unit`, optional The base temperature unit of this unit system. Defaults to "K". angle_unit : string or :class:`unyt.unit_object.Unit`, optional The base angle unit of this unit system. Defaults to "rad". mks_system: boolean, optional Whether or not this unit system has SI-specific units. Default: False current_mks_unit : string or :class:`unyt.unit_object.Unit`, optional The base current unit of this unit system. Defaults to "A". luminous_intensity_unit : string or :class:`unyt.unit_object.Unit`, optional The base luminous intensity unit of this unit system. Defaults to "cd". registry : :class:`unyt.unit_registry.UnitRegistry` object The unit registry associated with this unit system. Only useful for defining unit systems based on code units. """ def __init__( self, name, length_unit, mass_unit, time_unit, temperature_unit="K", angle_unit="rad", current_mks_unit="A", luminous_intensity_unit="cd", logarithmic_unit="Np", registry=None, ): self.registry = registry self.units_map = OrderedDict( [ (dimensions.length, length_unit), (dimensions.mass, mass_unit), (dimensions.time, time_unit), (dimensions.temperature, temperature_unit), (dimensions.angle, angle_unit), (dimensions.current_mks, current_mks_unit), (dimensions.luminous_intensity, luminous_intensity_unit), (dimensions.logarithmic, logarithmic_unit), ] ) for k, v in self.units_map.items(): if v is not None: if hasattr(v, "value") and hasattr(v, "units"): self.units_map[k] = v.value * v.units.expr else: self.units_map[k] = parse_unyt_expr(str(v)) for dimension, unit in self.units_map.items(): # CGS sets the current_mks unit to none, so catch it here if unit is None and dimension is dimensions.current_mks: continue if unit.is_Mul: unit = unit.as_coeff_Mul()[1] if ( self.registry is not None and self.registry[str(unit)][1] is not dimension ): raise IllDefinedUnitSystem(self.units_map) elif self.registry is None: bu = _split_prefix(str(unit), default_lut)[1] inferred_dimension = default_lut[inv_name_alternatives[bu]][1] if inferred_dimension is not dimension: raise IllDefinedUnitSystem(self.units_map) self._dims = [ "length", "mass", "time", "temperature", "angle", "current_mks", "luminous_intensity", "logarithmic", ] self.registry = registry self.base_units = self.units_map.copy() unit_system_registry[name] = self self.name = name def __getitem__(self, key): from unyt.unit_object import Unit if isinstance(key, str): key = getattr(dimensions, key) um = self.units_map if key not in um or um[key] is None: if cmks in key.free_symbols and self.units_map[cmks] is None: raise MissingMKSCurrent(self.name) units = _get_system_unit_string(key, self.units_map) self.units_map[key] = parse_unyt_expr(units) return Unit(units, registry=self.registry) return Unit(self.units_map[key], registry=self.registry) def __setitem__(self, key, value): if isinstance(key, str): if key not in self._dims: self._dims.append(key) key = getattr(dimensions, key) if self.units_map[cmks] is None and cmks in key.free_symbols: raise MissingMKSCurrent(self.name) self.units_map[key] = parse_unyt_expr(str(value)) def __str__(self): return self.name def __repr__(self): repr = f"{self.name} Unit System\n" repr += " Base Units:\n" for dim in self.base_units: if self.base_units[dim] is not None: repr += f" {str(dim).strip('()')}: {self.base_units[dim]}\n" repr += " Other Units:\n" for key in self._dims: dim = getattr(dimensions, key) if dim not in self.base_units: repr += f" {key}: {self.units_map[dim]}\n" return repr[:-1] @property def has_current_mks(self): """Does this unit system have an MKS current dimension?""" return self.units_map[cmks] is not None #: The CGS unit system cgs_unit_system = UnitSystem("cgs", "cm", "g", "s", current_mks_unit=None) cgs_unit_system["energy"] = "erg" cgs_unit_system["specific_energy"] = "erg/g" cgs_unit_system["pressure"] = "dyne/cm**2" cgs_unit_system["force"] = "dyne" cgs_unit_system["magnetic_field_cgs"] = "gauss" cgs_unit_system["charge_cgs"] = "esu" cgs_unit_system["current_cgs"] = "statA" cgs_unit_system["power"] = "erg/s" #: The MKS unit system mks_unit_system = UnitSystem("mks", "m", "kg", "s") mks_unit_system["energy"] = "J" mks_unit_system["specific_energy"] = "J/kg" mks_unit_system["pressure"] = "Pa" mks_unit_system["force"] = "N" mks_unit_system["magnetic_field"] = "T" mks_unit_system["charge"] = "C" mks_unit_system["frequency"] = "Hz" mks_unit_system["power"] = "W" mks_unit_system["electric_potential"] = "V" mks_unit_system["capacitance"] = "F" mks_unit_system["inductance"] = "H" mks_unit_system["resistance"] = "ohm" mks_unit_system["magnetic_flux"] = "Wb" mks_unit_system["luminous_flux"] = "lm" #: The imperial unit system imperial_unit_system = UnitSystem("imperial", "ft", "lb", "s", temperature_unit="R") imperial_unit_system["force"] = "lbf" imperial_unit_system["energy"] = "ft*lbf" imperial_unit_system["pressure"] = "lbf/ft**2" imperial_unit_system["power"] = "hp" #: The galactic unit system galactic_unit_system = UnitSystem("galactic", "kpc", "Msun", "Myr") galactic_unit_system["energy"] = "keV" galactic_unit_system["magnetic_field_cgs"] = "uG" #: The solar unit system solar_unit_system = UnitSystem("solar", "AU", "Mearth", "yr") #: Geometrized unit system geometrized_unit_system = UnitSystem("geometrized", "l_geom", "m_geom", "t_geom") #: Planck unit system planck_unit_system = UnitSystem( "planck", "l_pl", "m_pl", "t_pl", temperature_unit="T_pl" ) planck_unit_system["energy"] = "E_pl" planck_unit_system["charge_mks"] = "q_pl" unyt-3.2.0/uv.lock000066400000000000000000011541071526544257300140450ustar00rootroot00000000000000version = 1 revision = 3 requires-python = ">=3.11" resolution-markers = [ "python_full_version >= '3.12'", "python_full_version < '3.12'", ] required-markers = [ "platform_machine == 'arm64' and sys_platform == 'darwin'", ] [manifest] constraints = [ { name = "mpmath", specifier = ">=1.2.1" }, { name = "pyparsing", specifier = ">=3.1.0" }, { name = "toolz", specifier = ">=1.0.0" }, ] [[package]] name = "alabaster" version = "1.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/a6/f8/d9c74d0daf3f742840fd818d69cfae176fa332022fd44e3469487d5a9420/alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e", size = 24210, upload-time = "2024-07-26T18:15:03.762Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b", size = 13929, upload-time = "2024-07-26T18:15:02.05Z" }, ] [[package]] name = "astropy" version = "7.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "astropy-iers-data" }, { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, { name = "numpy", version = "2.5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "packaging" }, { name = "pyerfa" }, { name = "pyyaml" }, ] sdist = { url = "https://files.pythonhosted.org/packages/7b/92/2dce2d48347efc3346d08ca7995b152d242ebd170c571f7c9346468d8427/astropy-7.2.0.tar.gz", hash = "sha256:ae48bc26b1feaeb603cd94bd1fa1aa39137a115fe931b7f13787ab420e8c3070", size = 7057774, upload-time = "2025-11-25T22:36:41.916Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b4/6d/6330a844bad8dfc4875e0f2fa1db1fee87837ba9805aa8a8d048c071363a/astropy-7.2.0-cp311-abi3-macosx_10_9_x86_64.whl", hash = "sha256:efac04df4cc488efe630c2fff1992d6516dfb16a06e197fb68bc9e8e3b85def1", size = 6442332, upload-time = "2025-11-25T22:36:23.6Z" }, { url = "https://files.pythonhosted.org/packages/a6/ba/3418133ba144dfcd1530bca5a6b695f4cdd21a8abaaa2ac4e5450d11b028/astropy-7.2.0-cp311-abi3-macosx_11_0_arm64.whl", hash = "sha256:52e9a7d9c86b21f1af911a2930cd0c4a275fb302d455c89e11eedaffef6f2ad0", size = 6413656, upload-time = "2025-11-25T22:36:26.548Z" }, { url = "https://files.pythonhosted.org/packages/be/ba/05e43b5a7d738316a097fa78524d3eaaff5986294b4a052d4adb3c45e7c0/astropy-7.2.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97c370421b9bb13d4c762c7af06d172bad7c01bd5bcf88314f6913c3c235b770", size = 9758867, upload-time = "2025-11-25T22:36:28.661Z" }, { url = "https://files.pythonhosted.org/packages/c3/1c/f06ad85180e7dd9855aa5ede901bfc2be858d7bee17d4e978a14c0ecec14/astropy-7.2.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2f39ce2c80211fbceb005d377a5478cd0d66c42aa1498d252f2239fe5a025c24", size = 9789007, upload-time = "2025-11-25T22:36:31.063Z" }, { url = "https://files.pythonhosted.org/packages/f8/fb/e4d35194a5009d7a73333079481a4ef1380a255d67b9c1db578151a5fb50/astropy-7.2.0-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ad4d71db994d45f046a1a5449000cf0f88ab6367cb67658500654a0586d6ab19", size = 9748547, upload-time = "2025-11-25T22:36:33.154Z" }, { url = "https://files.pythonhosted.org/packages/36/ea/f990730978ae0a7a34705f885d2f3806928c5f0bc22eefd6a1a23539cc32/astropy-7.2.0-cp311-abi3-win32.whl", hash = "sha256:95161f26602433176483e8bde8ab1a8ca09148f5b4bf5190569a26d381091598", size = 6237228, upload-time = "2025-11-25T22:36:35.236Z" }, { url = "https://files.pythonhosted.org/packages/ec/bc/f4378f586dd63902c37d16f68f35f7d555b3b32e08ac6b1d633eb0a48805/astropy-7.2.0-cp311-abi3-win_amd64.whl", hash = "sha256:dc7c340ba1713e55c93071b32033f3153470a0f663a4d539c03a7c9b44020790", size = 6362868, upload-time = "2025-11-25T22:36:37.784Z" }, { url = "https://files.pythonhosted.org/packages/77/79/b6d4bf01913cfd4ce0cd4c1be5916beccdb92b2970bab8c827984231eae6/astropy-7.2.0-cp311-abi3-win_arm64.whl", hash = "sha256:0c428735a3f15b05c2095bc6ccb5f98a64bc99fb7015866af19ff8492420ddaf", size = 6221756, upload-time = "2025-11-25T22:36:39.852Z" }, ] [[package]] name = "astropy-iers-data" version = "0.2026.4.1.15.5.49" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/25/af/c4dc0106b7bc003c4e16db575a48d7d16912ea29cfe59c857d433c79d17d/astropy_iers_data-0.2026.4.1.15.5.49.tar.gz", hash = "sha256:0f76474e6a0d6a7cecf086d08dc4c00d0540518fc6e0133a24e13cf7fcae8a53", size = 1929573, upload-time = "2026-04-01T15:06:31.015Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/21/14/125eb772fc1e8985d4cdc46a7e81a61009eae02492ef62488c53245c9d9f/astropy_iers_data-0.2026.4.1.15.5.49-py3-none-any.whl", hash = "sha256:ca90106817015638234cfeb41a6543d51149d64ab0b495b76863d33411846f25", size = 1986539, upload-time = "2026-04-01T15:06:29.332Z" }, ] [[package]] name = "babel" version = "2.18.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" }, ] [[package]] name = "bokeh" version = "3.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "contourpy" }, { name = "jinja2" }, { name = "narwhals" }, { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, { name = "numpy", version = "2.5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "packaging" }, { name = "pillow" }, { name = "pyyaml" }, { name = "tornado", marker = "sys_platform != 'emscripten'" }, { name = "xyzservices" }, ] sdist = { url = "https://files.pythonhosted.org/packages/bf/0d/fabb70707646217e4b0e3943e05730eab8c1f7b7e7485145f8594b52e606/bokeh-3.9.0.tar.gz", hash = "sha256:775219714a8496973ddbae16b1861606ba19fe670a421e4d43267b41148e07a3", size = 5740345, upload-time = "2026-03-11T17:58:34.062Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/47/0b/bdf449df87be3f07b23091ceafee8c3ef569cf6d2fb7edec6e3b12b3faa4/bokeh-3.9.0-py3-none-any.whl", hash = "sha256:b252bfb16a505f0e0c57d532d0df308ae1667235bafc622aa9441fe9e7c5ce4a", size = 6396068, upload-time = "2026-03-11T17:58:31.645Z" }, ] [[package]] name = "certifi" version = "2026.2.25" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, ] [[package]] name = "charset-normalizer" version = "3.4.7" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/e7/a1/67fe25fac3c7642725500a3f6cfe5821ad557c3abb11c9d20d12c7008d3e/charset_normalizer-3.4.7.tar.gz", hash = "sha256:ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5", size = 144271, upload-time = "2026-04-02T09:28:39.342Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/c2/d7/b5b7020a0565c2e9fa8c09f4b5fa6232feb326b8c20081ccded47ea368fd/charset_normalizer-3.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7641bb8895e77f921102f72833904dcd9901df5d6d72a2ab8f31d04b7e51e4e7", size = 309705, upload-time = "2026-04-02T09:26:02.191Z" }, { url = "https://files.pythonhosted.org/packages/5a/53/58c29116c340e5456724ecd2fff4196d236b98f3da97b404bc5e51ac3493/charset_normalizer-3.4.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:202389074300232baeb53ae2569a60901f7efadd4245cf3a3bf0617d60b439d7", size = 206419, upload-time = "2026-04-02T09:26:03.583Z" }, { url = "https://files.pythonhosted.org/packages/b2/02/e8146dc6591a37a00e5144c63f29fb7c97a734ea8a111190783c0e60ab63/charset_normalizer-3.4.7-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:30b8d1d8c52a48c2c5690e152c169b673487a2a58de1ec7393196753063fcd5e", size = 227901, upload-time = "2026-04-02T09:26:04.738Z" }, { url = "https://files.pythonhosted.org/packages/fb/73/77486c4cd58f1267bf17db420e930c9afa1b3be3fe8c8b8ebbebc9624359/charset_normalizer-3.4.7-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:532bc9bf33a68613fd7d65e4b1c71a6a38d7d42604ecf239c77392e9b4e8998c", size = 222742, upload-time = "2026-04-02T09:26:06.36Z" }, { url = "https://files.pythonhosted.org/packages/a1/fa/f74eb381a7d94ded44739e9d94de18dc5edc9c17fb8c11f0a6890696c0a9/charset_normalizer-3.4.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2fe249cb4651fd12605b7288b24751d8bfd46d35f12a20b1ba33dea122e690df", size = 214061, upload-time = "2026-04-02T09:26:08.347Z" }, { url = "https://files.pythonhosted.org/packages/dc/92/42bd3cefcf7687253fb86694b45f37b733c97f59af3724f356fa92b8c344/charset_normalizer-3.4.7-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:65bcd23054beab4d166035cabbc868a09c1a49d1efe458fe8e4361215df40265", size = 199239, upload-time = "2026-04-02T09:26:09.823Z" }, { url = "https://files.pythonhosted.org/packages/4c/3d/069e7184e2aa3b3cddc700e3dd267413dc259854adc3380421c805c6a17d/charset_normalizer-3.4.7-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:08e721811161356f97b4059a9ba7bafb23ea5ee2255402c42881c214e173c6b4", size = 210173, upload-time = "2026-04-02T09:26:10.953Z" }, { url = "https://files.pythonhosted.org/packages/62/51/9d56feb5f2e7074c46f93e0ebdbe61f0848ee246e2f0d89f8e20b89ebb8f/charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e060d01aec0a910bdccb8be71faf34e7799ce36950f8294c8bf612cba65a2c9e", size = 209841, upload-time = "2026-04-02T09:26:12.142Z" }, { url = "https://files.pythonhosted.org/packages/d2/59/893d8f99cc4c837dda1fe2f1139079703deb9f321aabcb032355de13b6c7/charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:38c0109396c4cfc574d502df99742a45c72c08eff0a36158b6f04000043dbf38", size = 200304, upload-time = "2026-04-02T09:26:13.711Z" }, { url = "https://files.pythonhosted.org/packages/7d/1d/ee6f3be3464247578d1ed5c46de545ccc3d3ff933695395c402c21fa6b77/charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:1c2a768fdd44ee4a9339a9b0b130049139b8ce3c01d2ce09f67f5a68048d477c", size = 229455, upload-time = "2026-04-02T09:26:14.941Z" }, { url = "https://files.pythonhosted.org/packages/54/bb/8fb0a946296ea96a488928bdce8ef99023998c48e4713af533e9bb98ef07/charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:1a87ca9d5df6fe460483d9a5bbf2b18f620cbed41b432e2bddb686228282d10b", size = 210036, upload-time = "2026-04-02T09:26:16.478Z" }, { url = "https://files.pythonhosted.org/packages/9a/bc/015b2387f913749f82afd4fcba07846d05b6d784dd16123cb66860e0237d/charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:d635aab80466bc95771bb78d5370e74d36d1fe31467b6b29b8b57b2a3cd7d22c", size = 224739, upload-time = "2026-04-02T09:26:17.751Z" }, { url = "https://files.pythonhosted.org/packages/17/ab/63133691f56baae417493cba6b7c641571a2130eb7bceba6773367ab9ec5/charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ae196f021b5e7c78e918242d217db021ed2a6ace2bc6ae94c0fc596221c7f58d", size = 216277, upload-time = "2026-04-02T09:26:18.981Z" }, { url = "https://files.pythonhosted.org/packages/06/6d/3be70e827977f20db77c12a97e6a9f973631a45b8d186c084527e53e77a4/charset_normalizer-3.4.7-cp311-cp311-win32.whl", hash = "sha256:adb2597b428735679446b46c8badf467b4ca5f5056aae4d51a19f9570301b1ad", size = 147819, upload-time = "2026-04-02T09:26:20.295Z" }, { url = "https://files.pythonhosted.org/packages/20/d9/5f67790f06b735d7c7637171bbfd89882ad67201891b7275e51116ed8207/charset_normalizer-3.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:8e385e4267ab76874ae30db04c627faaaf0b509e1ccc11a95b3fc3e83f855c00", size = 159281, upload-time = "2026-04-02T09:26:21.74Z" }, { url = "https://files.pythonhosted.org/packages/ca/83/6413f36c5a34afead88ce6f66684d943d91f233d76dd083798f9602b75ae/charset_normalizer-3.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:d4a48e5b3c2a489fae013b7589308a40146ee081f6f509e047e0e096084ceca1", size = 147843, upload-time = "2026-04-02T09:26:22.901Z" }, { url = "https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eca9705049ad3c7345d574e3510665cb2cf844c2f2dcfe675332677f081cbd46", size = 311328, upload-time = "2026-04-02T09:26:24.331Z" }, { url = "https://files.pythonhosted.org/packages/f8/e3/0fadc706008ac9d7b9b5be6dc767c05f9d3e5df51744ce4cc9605de7b9f4/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6178f72c5508bfc5fd446a5905e698c6212932f25bcdd4b47a757a50605a90e2", size = 208061, upload-time = "2026-04-02T09:26:25.568Z" }, { url = "https://files.pythonhosted.org/packages/42/f0/3dd1045c47f4a4604df85ec18ad093912ae1344ac706993aff91d38773a2/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e1421b502d83040e6d7fb2fb18dff63957f720da3d77b2fbd3187ceb63755d7b", size = 229031, upload-time = "2026-04-02T09:26:26.865Z" }, { url = "https://files.pythonhosted.org/packages/dc/67/675a46eb016118a2fbde5a277a5d15f4f69d5f3f5f338e5ee2f8948fcf43/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:edac0f1ab77644605be2cbba52e6b7f630731fc42b34cb0f634be1a6eface56a", size = 225239, upload-time = "2026-04-02T09:26:28.044Z" }, { url = "https://files.pythonhosted.org/packages/4b/f8/d0118a2f5f23b02cd166fa385c60f9b0d4f9194f574e2b31cef350ad7223/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5649fd1c7bade02f320a462fdefd0b4bd3ce036065836d4f42e0de958038e116", size = 216589, upload-time = "2026-04-02T09:26:29.239Z" }, { url = "https://files.pythonhosted.org/packages/b1/f1/6d2b0b261b6c4ceef0fcb0d17a01cc5bc53586c2d4796fa04b5c540bc13d/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:203104ed3e428044fd943bc4bf45fa73c0730391f9621e37fe39ecf477b128cb", size = 202733, upload-time = "2026-04-02T09:26:30.5Z" }, { url = "https://files.pythonhosted.org/packages/6f/c0/7b1f943f7e87cc3db9626ba17807d042c38645f0a1d4415c7a14afb5591f/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:298930cec56029e05497a76988377cbd7457ba864beeea92ad7e844fe74cd1f1", size = 212652, upload-time = "2026-04-02T09:26:31.709Z" }, { url = "https://files.pythonhosted.org/packages/38/dd/5a9ab159fe45c6e72079398f277b7d2b523e7f716acc489726115a910097/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:708838739abf24b2ceb208d0e22403dd018faeef86ddac04319a62ae884c4f15", size = 211229, upload-time = "2026-04-02T09:26:33.282Z" }, { url = "https://files.pythonhosted.org/packages/d5/ff/531a1cad5ca855d1c1a8b69cb71abfd6d85c0291580146fda7c82857caa1/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:0f7eb884681e3938906ed0434f20c63046eacd0111c4ba96f27b76084cd679f5", size = 203552, upload-time = "2026-04-02T09:26:34.845Z" }, { url = "https://files.pythonhosted.org/packages/c1/4c/a5fb52d528a8ca41f7598cb619409ece30a169fbdf9cdce592e53b46c3a6/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4dc1e73c36828f982bfe79fadf5919923f8a6f4df2860804db9a98c48824ce8d", size = 230806, upload-time = "2026-04-02T09:26:36.152Z" }, { url = "https://files.pythonhosted.org/packages/59/7a/071feed8124111a32b316b33ae4de83d36923039ef8cf48120266844285b/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:aed52fea0513bac0ccde438c188c8a471c4e0f457c2dd20cdbf6ea7a450046c7", size = 212316, upload-time = "2026-04-02T09:26:37.672Z" }, { url = "https://files.pythonhosted.org/packages/fd/35/f7dba3994312d7ba508e041eaac39a36b120f32d4c8662b8814dab876431/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464", size = 227274, upload-time = "2026-04-02T09:26:38.93Z" }, { url = "https://files.pythonhosted.org/packages/8a/2d/a572df5c9204ab7688ec1edc895a73ebded3b023bb07364710b05dd1c9be/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb6d88045545b26da47aa879dd4a89a71d1dce0f0e549b1abcb31dfe4a8eac49", size = 218468, upload-time = "2026-04-02T09:26:40.17Z" }, { url = "https://files.pythonhosted.org/packages/86/eb/890922a8b03a568ca2f336c36585a4713c55d4d67bf0f0c78924be6315ca/charset_normalizer-3.4.7-cp312-cp312-win32.whl", hash = "sha256:2257141f39fe65a3fdf38aeccae4b953e5f3b3324f4ff0daf9f15b8518666a2c", size = 148460, upload-time = "2026-04-02T09:26:41.416Z" }, { url = "https://files.pythonhosted.org/packages/35/d9/0e7dffa06c5ab081f75b1b786f0aefc88365825dfcd0ac544bdb7b2b6853/charset_normalizer-3.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:5ed6ab538499c8644b8a3e18debabcd7ce684f3fa91cf867521a7a0279cab2d6", size = 159330, upload-time = "2026-04-02T09:26:42.554Z" }, { url = "https://files.pythonhosted.org/packages/9e/5d/481bcc2a7c88ea6b0878c299547843b2521ccbc40980cb406267088bc701/charset_normalizer-3.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:56be790f86bfb2c98fb742ce566dfb4816e5a83384616ab59c49e0604d49c51d", size = 147828, upload-time = "2026-04-02T09:26:44.075Z" }, { url = "https://files.pythonhosted.org/packages/c1/3b/66777e39d3ae1ddc77ee606be4ec6d8cbd4c801f65e5a1b6f2b11b8346dd/charset_normalizer-3.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f496c9c3cc02230093d8330875c4c3cdfc3b73612a5fd921c65d39cbcef08063", size = 309627, upload-time = "2026-04-02T09:26:45.198Z" }, { url = "https://files.pythonhosted.org/packages/2e/4e/b7f84e617b4854ade48a1b7915c8ccfadeba444d2a18c291f696e37f0d3b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ea948db76d31190bf08bd371623927ee1339d5f2a0b4b1b4a4439a65298703c", size = 207008, upload-time = "2026-04-02T09:26:46.824Z" }, { url = "https://files.pythonhosted.org/packages/c4/bb/ec73c0257c9e11b268f018f068f5d00aa0ef8c8b09f7753ebd5f2880e248/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a277ab8928b9f299723bc1a2dabb1265911b1a76341f90a510368ca44ad9ab66", size = 228303, upload-time = "2026-04-02T09:26:48.397Z" }, { url = "https://files.pythonhosted.org/packages/85/fb/32d1f5033484494619f701e719429c69b766bfc4dbc61aa9e9c8c166528b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3bec022aec2c514d9cf199522a802bd007cd588ab17ab2525f20f9c34d067c18", size = 224282, upload-time = "2026-04-02T09:26:49.684Z" }, { url = "https://files.pythonhosted.org/packages/fa/07/330e3a0dda4c404d6da83b327270906e9654a24f6c546dc886a0eb0ffb23/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e044c39e41b92c845bc815e5ae4230804e8e7bc29e399b0437d64222d92809dd", size = 215595, upload-time = "2026-04-02T09:26:50.915Z" }, { url = "https://files.pythonhosted.org/packages/e3/7c/fc890655786e423f02556e0216d4b8c6bcb6bdfa890160dc66bf52dee468/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:f495a1652cf3fbab2eb0639776dad966c2fb874d79d87ca07f9d5f059b8bd215", size = 201986, upload-time = "2026-04-02T09:26:52.197Z" }, { url = "https://files.pythonhosted.org/packages/d8/97/bfb18b3db2aed3b90cf54dc292ad79fdd5ad65c4eae454099475cbeadd0d/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e712b419df8ba5e42b226c510472b37bd57b38e897d3eca5e8cfd410a29fa859", size = 211711, upload-time = "2026-04-02T09:26:53.49Z" }, { url = "https://files.pythonhosted.org/packages/6f/a5/a581c13798546a7fd557c82614a5c65a13df2157e9ad6373166d2a3e645d/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7804338df6fcc08105c7745f1502ba68d900f45fd770d5bdd5288ddccb8a42d8", size = 210036, upload-time = "2026-04-02T09:26:54.975Z" }, { url = "https://files.pythonhosted.org/packages/8c/bf/b3ab5bcb478e4193d517644b0fb2bf5497fbceeaa7a1bc0f4d5b50953861/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:481551899c856c704d58119b5025793fa6730adda3571971af568f66d2424bb5", size = 202998, upload-time = "2026-04-02T09:26:56.303Z" }, { url = "https://files.pythonhosted.org/packages/e7/4e/23efd79b65d314fa320ec6017b4b5834d5c12a58ba4610aa353af2e2f577/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f59099f9b66f0d7145115e6f80dd8b1d847176df89b234a5a6b3f00437aa0832", size = 230056, upload-time = "2026-04-02T09:26:57.554Z" }, { url = "https://files.pythonhosted.org/packages/b9/9f/1e1941bc3f0e01df116e68dc37a55c4d249df5e6fa77f008841aef68264f/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:f59ad4c0e8f6bba240a9bb85504faa1ab438237199d4cce5f622761507b8f6a6", size = 211537, upload-time = "2026-04-02T09:26:58.843Z" }, { url = "https://files.pythonhosted.org/packages/80/0f/088cbb3020d44428964a6c97fe1edfb1b9550396bf6d278330281e8b709c/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:3dedcc22d73ec993f42055eff4fcfed9318d1eeb9a6606c55892a26964964e48", size = 226176, upload-time = "2026-04-02T09:27:00.437Z" }, { url = "https://files.pythonhosted.org/packages/6a/9f/130394f9bbe06f4f63e22641d32fc9b202b7e251c9aef4db044324dac493/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:64f02c6841d7d83f832cd97ccf8eb8a906d06eb95d5276069175c696b024b60a", size = 217723, upload-time = "2026-04-02T09:27:02.021Z" }, { url = "https://files.pythonhosted.org/packages/73/55/c469897448a06e49f8fa03f6caae97074fde823f432a98f979cc42b90e69/charset_normalizer-3.4.7-cp313-cp313-win32.whl", hash = "sha256:4042d5c8f957e15221d423ba781e85d553722fc4113f523f2feb7b188cc34c5e", size = 148085, upload-time = "2026-04-02T09:27:03.192Z" }, { url = "https://files.pythonhosted.org/packages/5d/78/1b74c5bbb3f99b77a1715c91b3e0b5bdb6fe302d95ace4f5b1bec37b0167/charset_normalizer-3.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:3946fa46a0cf3e4c8cb1cc52f56bb536310d34f25f01ca9b6c16afa767dab110", size = 158819, upload-time = "2026-04-02T09:27:04.454Z" }, { url = "https://files.pythonhosted.org/packages/68/86/46bd42279d323deb8687c4a5a811fd548cb7d1de10cf6535d099877a9a9f/charset_normalizer-3.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:80d04837f55fc81da168b98de4f4b797ef007fc8a79ab71c6ec9bc4dd662b15b", size = 147915, upload-time = "2026-04-02T09:27:05.971Z" }, { url = "https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0", size = 309234, upload-time = "2026-04-02T09:27:07.194Z" }, { url = "https://files.pythonhosted.org/packages/99/85/c091fdee33f20de70d6c8b522743b6f831a2f1cd3ff86de4c6a827c48a76/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c2aed2e5e41f24ea8ef1590b8e848a79b56f3a5564a65ceec43c9d692dc7d8a", size = 208042, upload-time = "2026-04-02T09:27:08.749Z" }, { url = "https://files.pythonhosted.org/packages/87/1c/ab2ce611b984d2fd5d86a5a8a19c1ae26acac6bad967da4967562c75114d/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:54523e136b8948060c0fa0bc7b1b50c32c186f2fceee897a495406bb6e311d2b", size = 228706, upload-time = "2026-04-02T09:27:09.951Z" }, { url = "https://files.pythonhosted.org/packages/a8/29/2b1d2cb00bf085f59d29eb773ce58ec2d325430f8c216804a0a5cd83cbca/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:715479b9a2802ecac752a3b0efa2b0b60285cf962ee38414211abdfccc233b41", size = 224727, upload-time = "2026-04-02T09:27:11.175Z" }, { url = "https://files.pythonhosted.org/packages/47/5c/032c2d5a07fe4d4855fea851209cca2b6f03ebeb6d4e3afdb3358386a684/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bd6c2a1c7573c64738d716488d2cdd3c00e340e4835707d8fdb8dc1a66ef164e", size = 215882, upload-time = "2026-04-02T09:27:12.446Z" }, { url = "https://files.pythonhosted.org/packages/2c/c2/356065d5a8b78ed04499cae5f339f091946a6a74f91e03476c33f0ab7100/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:c45e9440fb78f8ddabcf714b68f936737a121355bf59f3907f4e17721b9d1aae", size = 200860, upload-time = "2026-04-02T09:27:13.721Z" }, { url = "https://files.pythonhosted.org/packages/0c/cd/a32a84217ced5039f53b29f460962abb2d4420def55afabe45b1c3c7483d/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3534e7dcbdcf757da6b85a0bbf5b6868786d5982dd959b065e65481644817a18", size = 211564, upload-time = "2026-04-02T09:27:15.272Z" }, { url = "https://files.pythonhosted.org/packages/44/86/58e6f13ce26cc3b8f4a36b94a0f22ae2f00a72534520f4ae6857c4b81f89/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e8ac484bf18ce6975760921bb6148041faa8fef0547200386ea0b52b5d27bf7b", size = 211276, upload-time = "2026-04-02T09:27:16.834Z" }, { url = "https://files.pythonhosted.org/packages/8f/fe/d17c32dc72e17e155e06883efa84514ca375f8a528ba2546bee73fc4df81/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a5fe03b42827c13cdccd08e6c0247b6a6d4b5e3cdc53fd1749f5896adcdc2356", size = 201238, upload-time = "2026-04-02T09:27:18.229Z" }, { url = "https://files.pythonhosted.org/packages/6a/29/f33daa50b06525a237451cdb6c69da366c381a3dadcd833fa5676bc468b3/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2d6eb928e13016cea4f1f21d1e10c1cebd5a421bc57ddf5b1142ae3f86824fab", size = 230189, upload-time = "2026-04-02T09:27:19.445Z" }, { url = "https://files.pythonhosted.org/packages/b6/6e/52c84015394a6a0bdcd435210a7e944c5f94ea1055f5cc5d56c5fe368e7b/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e74327fb75de8986940def6e8dee4f127cc9752bee7355bb323cc5b2659b6d46", size = 211352, upload-time = "2026-04-02T09:27:20.79Z" }, { url = "https://files.pythonhosted.org/packages/8c/d7/4353be581b373033fb9198bf1da3cf8f09c1082561e8e922aa7b39bf9fe8/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d6038d37043bced98a66e68d3aa2b6a35505dc01328cd65217cefe82f25def44", size = 227024, upload-time = "2026-04-02T09:27:22.063Z" }, { url = "https://files.pythonhosted.org/packages/30/45/99d18aa925bd1740098ccd3060e238e21115fffbfdcb8f3ece837d0ace6c/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7579e913a5339fb8fa133f6bbcfd8e6749696206cf05acdbdca71a1b436d8e72", size = 217869, upload-time = "2026-04-02T09:27:23.486Z" }, { url = "https://files.pythonhosted.org/packages/5c/05/5ee478aa53f4bb7996482153d4bfe1b89e0f087f0ab6b294fcf92d595873/charset_normalizer-3.4.7-cp314-cp314-win32.whl", hash = "sha256:5b77459df20e08151cd6f8b9ef8ef1f961ef73d85c21a555c7eed5b79410ec10", size = 148541, upload-time = "2026-04-02T09:27:25.146Z" }, { url = "https://files.pythonhosted.org/packages/48/77/72dcb0921b2ce86420b2d79d454c7022bf5be40202a2a07906b9f2a35c97/charset_normalizer-3.4.7-cp314-cp314-win_amd64.whl", hash = "sha256:92a0a01ead5e668468e952e4238cccd7c537364eb7d851ab144ab6627dbbe12f", size = 159634, upload-time = "2026-04-02T09:27:26.642Z" }, { url = "https://files.pythonhosted.org/packages/c6/a3/c2369911cd72f02386e4e340770f6e158c7980267da16af8f668217abaa0/charset_normalizer-3.4.7-cp314-cp314-win_arm64.whl", hash = "sha256:67f6279d125ca0046a7fd386d01b311c6363844deac3e5b069b514ba3e63c246", size = 148384, upload-time = "2026-04-02T09:27:28.271Z" }, { url = "https://files.pythonhosted.org/packages/94/09/7e8a7f73d24dba1f0035fbbf014d2c36828fc1bf9c88f84093e57d315935/charset_normalizer-3.4.7-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:effc3f449787117233702311a1b7d8f59cba9ced946ba727bdc329ec69028e24", size = 330133, upload-time = "2026-04-02T09:27:29.474Z" }, { url = "https://files.pythonhosted.org/packages/8d/da/96975ddb11f8e977f706f45cddd8540fd8242f71ecdb5d18a80723dcf62c/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79", size = 216257, upload-time = "2026-04-02T09:27:30.793Z" }, { url = "https://files.pythonhosted.org/packages/e5/e8/1d63bf8ef2d388e95c64b2098f45f84758f6d102a087552da1485912637b/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:733784b6d6def852c814bce5f318d25da2ee65dd4839a0718641c696e09a2960", size = 234851, upload-time = "2026-04-02T09:27:32.44Z" }, { url = "https://files.pythonhosted.org/packages/9b/40/e5ff04233e70da2681fa43969ad6f66ca5611d7e669be0246c4c7aaf6dc8/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a89c23ef8d2c6b27fd200a42aa4ac72786e7c60d40efdc76e6011260b6e949c4", size = 233393, upload-time = "2026-04-02T09:27:34.03Z" }, { url = "https://files.pythonhosted.org/packages/be/c1/06c6c49d5a5450f76899992f1ee40b41d076aee9279b49cf9974d2f313d5/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c114670c45346afedc0d947faf3c7f701051d2518b943679c8ff88befe14f8e", size = 223251, upload-time = "2026-04-02T09:27:35.369Z" }, { url = "https://files.pythonhosted.org/packages/2b/9f/f2ff16fb050946169e3e1f82134d107e5d4ae72647ec8a1b1446c148480f/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:a180c5e59792af262bf263b21a3c49353f25945d8d9f70628e73de370d55e1e1", size = 206609, upload-time = "2026-04-02T09:27:36.661Z" }, { url = "https://files.pythonhosted.org/packages/69/d5/a527c0cd8d64d2eab7459784fb4169a0ac76e5a6fc5237337982fd61347e/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3c9a494bc5ec77d43cea229c4f6db1e4d8fe7e1bbffa8b6f0f0032430ff8ab44", size = 220014, upload-time = "2026-04-02T09:27:38.019Z" }, { url = "https://files.pythonhosted.org/packages/7e/80/8a7b8104a3e203074dc9aa2c613d4b726c0e136bad1cc734594b02867972/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8d828b6667a32a728a1ad1d93957cdf37489c57b97ae6c4de2860fa749b8fc1e", size = 218979, upload-time = "2026-04-02T09:27:39.37Z" }, { url = "https://files.pythonhosted.org/packages/02/9a/b759b503d507f375b2b5c153e4d2ee0a75aa215b7f2489cf314f4541f2c0/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cf1493cd8607bec4d8a7b9b004e699fcf8f9103a9284cc94962cb73d20f9d4a3", size = 209238, upload-time = "2026-04-02T09:27:40.722Z" }, { url = "https://files.pythonhosted.org/packages/c2/4e/0f3f5d47b86bdb79256e7290b26ac847a2832d9a4033f7eb2cd4bcf4bb5b/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0c96c3b819b5c3e9e165495db84d41914d6894d55181d2d108cc1a69bfc9cce0", size = 236110, upload-time = "2026-04-02T09:27:42.33Z" }, { url = "https://files.pythonhosted.org/packages/96/23/bce28734eb3ed2c91dcf93abeb8a5cf393a7b2749725030bb630e554fdd8/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:752a45dc4a6934060b3b0dab47e04edc3326575f82be64bc4fc293914566503e", size = 219824, upload-time = "2026-04-02T09:27:43.924Z" }, { url = "https://files.pythonhosted.org/packages/2c/6f/6e897c6984cc4d41af319b077f2f600fc8214eb2fe2d6bcb79141b882400/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:8778f0c7a52e56f75d12dae53ae320fae900a8b9b4164b981b9c5ce059cd1fcb", size = 233103, upload-time = "2026-04-02T09:27:45.348Z" }, { url = "https://files.pythonhosted.org/packages/76/22/ef7bd0fe480a0ae9b656189ec00744b60933f68b4f42a7bb06589f6f576a/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ce3412fbe1e31eb81ea42f4169ed94861c56e643189e1e75f0041f3fe7020abe", size = 225194, upload-time = "2026-04-02T09:27:46.706Z" }, { url = "https://files.pythonhosted.org/packages/c5/a7/0e0ab3e0b5bc1219bd80a6a0d4d72ca74d9250cb2382b7c699c147e06017/charset_normalizer-3.4.7-cp314-cp314t-win32.whl", hash = "sha256:c03a41a8784091e67a39648f70c5f97b5b6a37f216896d44d2cdcb82615339a0", size = 159827, upload-time = "2026-04-02T09:27:48.053Z" }, { url = "https://files.pythonhosted.org/packages/7a/1d/29d32e0fb40864b1f878c7f5a0b343ae676c6e2b271a2d55cc3a152391da/charset_normalizer-3.4.7-cp314-cp314t-win_amd64.whl", hash = "sha256:03853ed82eeebbce3c2abfdbc98c96dc205f32a79627688ac9a27370ea61a49c", size = 174168, upload-time = "2026-04-02T09:27:49.795Z" }, { url = "https://files.pythonhosted.org/packages/de/32/d92444ad05c7a6e41fb2036749777c163baf7a0301a040cb672d6b2b1ae9/charset_normalizer-3.4.7-cp314-cp314t-win_arm64.whl", hash = "sha256:c35abb8bfff0185efac5878da64c45dafd2b37fb0383add1be155a763c1f083d", size = 153018, upload-time = "2026-04-02T09:27:51.116Z" }, { url = "https://files.pythonhosted.org/packages/db/8f/61959034484a4a7c527811f4721e75d02d653a35afb0b6054474d8185d4c/charset_normalizer-3.4.7-py3-none-any.whl", hash = "sha256:3dce51d0f5e7951f8bb4900c257dad282f49190fdbebecd4ba99bcc41fef404d", size = 61958, upload-time = "2026-04-02T09:28:37.794Z" }, ] [[package]] name = "click" version = "8.3.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/57/75/31212c6bf2503fdf920d87fee5d7a86a2e3bcf444984126f13d8e4016804/click-8.3.2.tar.gz", hash = "sha256:14162b8b3b3550a7d479eafa77dfd3c38d9dc8951f6f69c78913a8f9a7540fd5", size = 302856, upload-time = "2026-04-03T19:14:45.118Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/e4/20/71885d8b97d4f3dde17b1fdb92dbd4908b00541c5a3379787137285f602e/click-8.3.2-py3-none-any.whl", hash = "sha256:1924d2c27c5653561cd2cae4548d1406039cb79b858b747cfea24924bbc1616d", size = 108379, upload-time = "2026-04-03T19:14:43.505Z" }, ] [[package]] name = "cloudpickle" version = "3.1.2" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/27/fb/576f067976d320f5f0114a8d9fa1215425441bb35627b1993e5afd8111e5/cloudpickle-3.1.2.tar.gz", hash = "sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414", size = 22330, upload-time = "2025-11-03T09:25:26.604Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl", hash = "sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a", size = 22228, upload-time = "2025-11-03T09:25:25.534Z" }, ] [[package]] name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] [[package]] name = "contourpy" version = "1.3.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, { name = "numpy", version = "2.5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/91/2e/c4390a31919d8a78b90e8ecf87cd4b4c4f05a5b48d05ec17db8e5404c6f4/contourpy-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:709a48ef9a690e1343202916450bc48b9e51c049b089c7f79a267b46cffcdaa1", size = 288773, upload-time = "2025-07-26T12:01:02.277Z" }, { url = "https://files.pythonhosted.org/packages/0d/44/c4b0b6095fef4dc9c420e041799591e3b63e9619e3044f7f4f6c21c0ab24/contourpy-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:23416f38bfd74d5d28ab8429cc4d63fa67d5068bd711a85edb1c3fb0c3e2f381", size = 270149, upload-time = "2025-07-26T12:01:04.072Z" }, { url = "https://files.pythonhosted.org/packages/30/2e/dd4ced42fefac8470661d7cb7e264808425e6c5d56d175291e93890cce09/contourpy-1.3.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:929ddf8c4c7f348e4c0a5a3a714b5c8542ffaa8c22954862a46ca1813b667ee7", size = 329222, upload-time = "2025-07-26T12:01:05.688Z" }, { url = "https://files.pythonhosted.org/packages/f2/74/cc6ec2548e3d276c71389ea4802a774b7aa3558223b7bade3f25787fafc2/contourpy-1.3.3-cp311-cp311-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9e999574eddae35f1312c2b4b717b7885d4edd6cb46700e04f7f02db454e67c1", size = 377234, upload-time = "2025-07-26T12:01:07.054Z" }, { url = "https://files.pythonhosted.org/packages/03/b3/64ef723029f917410f75c09da54254c5f9ea90ef89b143ccadb09df14c15/contourpy-1.3.3-cp311-cp311-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf67e0e3f482cb69779dd3061b534eb35ac9b17f163d851e2a547d56dba0a3a", size = 380555, upload-time = "2025-07-26T12:01:08.801Z" }, { url = "https://files.pythonhosted.org/packages/5f/4b/6157f24ca425b89fe2eb7e7be642375711ab671135be21e6faa100f7448c/contourpy-1.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51e79c1f7470158e838808d4a996fa9bac72c498e93d8ebe5119bc1e6becb0db", size = 355238, upload-time = "2025-07-26T12:01:10.319Z" }, { url = "https://files.pythonhosted.org/packages/98/56/f914f0dd678480708a04cfd2206e7c382533249bc5001eb9f58aa693e200/contourpy-1.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:598c3aaece21c503615fd59c92a3598b428b2f01bfb4b8ca9c4edeecc2438620", size = 1326218, upload-time = "2025-07-26T12:01:12.659Z" }, { url = "https://files.pythonhosted.org/packages/fb/d7/4a972334a0c971acd5172389671113ae82aa7527073980c38d5868ff1161/contourpy-1.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:322ab1c99b008dad206d406bb61d014cf0174df491ae9d9d0fac6a6fda4f977f", size = 1392867, upload-time = "2025-07-26T12:01:15.533Z" }, { url = "https://files.pythonhosted.org/packages/75/3e/f2cc6cd56dc8cff46b1a56232eabc6feea52720083ea71ab15523daab796/contourpy-1.3.3-cp311-cp311-win32.whl", hash = "sha256:fd907ae12cd483cd83e414b12941c632a969171bf90fc937d0c9f268a31cafff", size = 183677, upload-time = "2025-07-26T12:01:17.088Z" }, { url = "https://files.pythonhosted.org/packages/98/4b/9bd370b004b5c9d8045c6c33cf65bae018b27aca550a3f657cdc99acdbd8/contourpy-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:3519428f6be58431c56581f1694ba8e50626f2dd550af225f82fb5f5814d2a42", size = 225234, upload-time = "2025-07-26T12:01:18.256Z" }, { url = "https://files.pythonhosted.org/packages/d9/b6/71771e02c2e004450c12b1120a5f488cad2e4d5b590b1af8bad060360fe4/contourpy-1.3.3-cp311-cp311-win_arm64.whl", hash = "sha256:15ff10bfada4bf92ec8b31c62bf7c1834c244019b4a33095a68000d7075df470", size = 193123, upload-time = "2025-07-26T12:01:19.848Z" }, { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419, upload-time = "2025-07-26T12:01:21.16Z" }, { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979, upload-time = "2025-07-26T12:01:22.448Z" }, { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653, upload-time = "2025-07-26T12:01:24.155Z" }, { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536, upload-time = "2025-07-26T12:01:25.91Z" }, { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397, upload-time = "2025-07-26T12:01:27.152Z" }, { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601, upload-time = "2025-07-26T12:01:28.808Z" }, { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288, upload-time = "2025-07-26T12:01:31.198Z" }, { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386, upload-time = "2025-07-26T12:01:33.947Z" }, { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018, upload-time = "2025-07-26T12:01:35.64Z" }, { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567, upload-time = "2025-07-26T12:01:36.804Z" }, { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655, upload-time = "2025-07-26T12:01:37.999Z" }, { url = "https://files.pythonhosted.org/packages/68/35/0167aad910bbdb9599272bd96d01a9ec6852f36b9455cf2ca67bd4cc2d23/contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5", size = 293257, upload-time = "2025-07-26T12:01:39.367Z" }, { url = "https://files.pythonhosted.org/packages/96/e4/7adcd9c8362745b2210728f209bfbcf7d91ba868a2c5f40d8b58f54c509b/contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1", size = 274034, upload-time = "2025-07-26T12:01:40.645Z" }, { url = "https://files.pythonhosted.org/packages/73/23/90e31ceeed1de63058a02cb04b12f2de4b40e3bef5e082a7c18d9c8ae281/contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286", size = 334672, upload-time = "2025-07-26T12:01:41.942Z" }, { url = "https://files.pythonhosted.org/packages/ed/93/b43d8acbe67392e659e1d984700e79eb67e2acb2bd7f62012b583a7f1b55/contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5", size = 381234, upload-time = "2025-07-26T12:01:43.499Z" }, { url = "https://files.pythonhosted.org/packages/46/3b/bec82a3ea06f66711520f75a40c8fc0b113b2a75edb36aa633eb11c4f50f/contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67", size = 385169, upload-time = "2025-07-26T12:01:45.219Z" }, { url = "https://files.pythonhosted.org/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9", size = 362859, upload-time = "2025-07-26T12:01:46.519Z" }, { url = "https://files.pythonhosted.org/packages/33/71/e2a7945b7de4e58af42d708a219f3b2f4cff7386e6b6ab0a0fa0033c49a9/contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659", size = 1332062, upload-time = "2025-07-26T12:01:48.964Z" }, { url = "https://files.pythonhosted.org/packages/12/fc/4e87ac754220ccc0e807284f88e943d6d43b43843614f0a8afa469801db0/contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7", size = 1403932, upload-time = "2025-07-26T12:01:51.979Z" }, { url = "https://files.pythonhosted.org/packages/a6/2e/adc197a37443f934594112222ac1aa7dc9a98faf9c3842884df9a9d8751d/contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d", size = 185024, upload-time = "2025-07-26T12:01:53.245Z" }, { url = "https://files.pythonhosted.org/packages/18/0b/0098c214843213759692cc638fce7de5c289200a830e5035d1791d7a2338/contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263", size = 226578, upload-time = "2025-07-26T12:01:54.422Z" }, { url = "https://files.pythonhosted.org/packages/8a/9a/2f6024a0c5995243cd63afdeb3651c984f0d2bc727fd98066d40e141ad73/contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9", size = 193524, upload-time = "2025-07-26T12:01:55.73Z" }, { url = "https://files.pythonhosted.org/packages/c0/b3/f8a1a86bd3298513f500e5b1f5fd92b69896449f6cab6a146a5d52715479/contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d", size = 306730, upload-time = "2025-07-26T12:01:57.051Z" }, { url = "https://files.pythonhosted.org/packages/3f/11/4780db94ae62fc0c2053909b65dc3246bd7cecfc4f8a20d957ad43aa4ad8/contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216", size = 287897, upload-time = "2025-07-26T12:01:58.663Z" }, { url = "https://files.pythonhosted.org/packages/ae/15/e59f5f3ffdd6f3d4daa3e47114c53daabcb18574a26c21f03dc9e4e42ff0/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae", size = 326751, upload-time = "2025-07-26T12:02:00.343Z" }, { url = "https://files.pythonhosted.org/packages/0f/81/03b45cfad088e4770b1dcf72ea78d3802d04200009fb364d18a493857210/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20", size = 375486, upload-time = "2025-07-26T12:02:02.128Z" }, { url = "https://files.pythonhosted.org/packages/0c/ba/49923366492ffbdd4486e970d421b289a670ae8cf539c1ea9a09822b371a/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99", size = 388106, upload-time = "2025-07-26T12:02:03.615Z" }, { url = "https://files.pythonhosted.org/packages/9f/52/5b00ea89525f8f143651f9f03a0df371d3cbd2fccd21ca9b768c7a6500c2/contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b", size = 352548, upload-time = "2025-07-26T12:02:05.165Z" }, { url = "https://files.pythonhosted.org/packages/32/1d/a209ec1a3a3452d490f6b14dd92e72280c99ae3d1e73da74f8277d4ee08f/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a", size = 1322297, upload-time = "2025-07-26T12:02:07.379Z" }, { url = "https://files.pythonhosted.org/packages/bc/9e/46f0e8ebdd884ca0e8877e46a3f4e633f6c9c8c4f3f6e72be3fe075994aa/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e", size = 1391023, upload-time = "2025-07-26T12:02:10.171Z" }, { url = "https://files.pythonhosted.org/packages/b9/70/f308384a3ae9cd2209e0849f33c913f658d3326900d0ff5d378d6a1422d2/contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3", size = 196157, upload-time = "2025-07-26T12:02:11.488Z" }, { url = "https://files.pythonhosted.org/packages/b2/dd/880f890a6663b84d9e34a6f88cded89d78f0091e0045a284427cb6b18521/contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8", size = 240570, upload-time = "2025-07-26T12:02:12.754Z" }, { url = "https://files.pythonhosted.org/packages/80/99/2adc7d8ffead633234817ef8e9a87115c8a11927a94478f6bb3d3f4d4f7d/contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301", size = 199713, upload-time = "2025-07-26T12:02:14.4Z" }, { url = "https://files.pythonhosted.org/packages/72/8b/4546f3ab60f78c514ffb7d01a0bd743f90de36f0019d1be84d0a708a580a/contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a", size = 292189, upload-time = "2025-07-26T12:02:16.095Z" }, { url = "https://files.pythonhosted.org/packages/fd/e1/3542a9cb596cadd76fcef413f19c79216e002623158befe6daa03dbfa88c/contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77", size = 273251, upload-time = "2025-07-26T12:02:17.524Z" }, { url = "https://files.pythonhosted.org/packages/b1/71/f93e1e9471d189f79d0ce2497007731c1e6bf9ef6d1d61b911430c3db4e5/contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5", size = 335810, upload-time = "2025-07-26T12:02:18.9Z" }, { url = "https://files.pythonhosted.org/packages/91/f9/e35f4c1c93f9275d4e38681a80506b5510e9327350c51f8d4a5a724d178c/contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4", size = 382871, upload-time = "2025-07-26T12:02:20.418Z" }, { url = "https://files.pythonhosted.org/packages/b5/71/47b512f936f66a0a900d81c396a7e60d73419868fba959c61efed7a8ab46/contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36", size = 386264, upload-time = "2025-07-26T12:02:21.916Z" }, { url = "https://files.pythonhosted.org/packages/04/5f/9ff93450ba96b09c7c2b3f81c94de31c89f92292f1380261bd7195bea4ea/contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3", size = 363819, upload-time = "2025-07-26T12:02:23.759Z" }, { url = "https://files.pythonhosted.org/packages/3e/a6/0b185d4cc480ee494945cde102cb0149ae830b5fa17bf855b95f2e70ad13/contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b", size = 1333650, upload-time = "2025-07-26T12:02:26.181Z" }, { url = "https://files.pythonhosted.org/packages/43/d7/afdc95580ca56f30fbcd3060250f66cedbde69b4547028863abd8aa3b47e/contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36", size = 1404833, upload-time = "2025-07-26T12:02:28.782Z" }, { url = "https://files.pythonhosted.org/packages/e2/e2/366af18a6d386f41132a48f033cbd2102e9b0cf6345d35ff0826cd984566/contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d", size = 189692, upload-time = "2025-07-26T12:02:30.128Z" }, { url = "https://files.pythonhosted.org/packages/7d/c2/57f54b03d0f22d4044b8afb9ca0e184f8b1afd57b4f735c2fa70883dc601/contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd", size = 232424, upload-time = "2025-07-26T12:02:31.395Z" }, { url = "https://files.pythonhosted.org/packages/18/79/a9416650df9b525737ab521aa181ccc42d56016d2123ddcb7b58e926a42c/contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339", size = 198300, upload-time = "2025-07-26T12:02:32.956Z" }, { url = "https://files.pythonhosted.org/packages/1f/42/38c159a7d0f2b7b9c04c64ab317042bb6952b713ba875c1681529a2932fe/contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772", size = 306769, upload-time = "2025-07-26T12:02:34.2Z" }, { url = "https://files.pythonhosted.org/packages/c3/6c/26a8205f24bca10974e77460de68d3d7c63e282e23782f1239f226fcae6f/contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77", size = 287892, upload-time = "2025-07-26T12:02:35.807Z" }, { url = "https://files.pythonhosted.org/packages/66/06/8a475c8ab718ebfd7925661747dbb3c3ee9c82ac834ccb3570be49d129f4/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13", size = 326748, upload-time = "2025-07-26T12:02:37.193Z" }, { url = "https://files.pythonhosted.org/packages/b4/a3/c5ca9f010a44c223f098fccd8b158bb1cb287378a31ac141f04730dc49be/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe", size = 375554, upload-time = "2025-07-26T12:02:38.894Z" }, { url = "https://files.pythonhosted.org/packages/80/5b/68bd33ae63fac658a4145088c1e894405e07584a316738710b636c6d0333/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f", size = 388118, upload-time = "2025-07-26T12:02:40.642Z" }, { url = "https://files.pythonhosted.org/packages/40/52/4c285a6435940ae25d7410a6c36bda5145839bc3f0beb20c707cda18b9d2/contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0", size = 352555, upload-time = "2025-07-26T12:02:42.25Z" }, { url = "https://files.pythonhosted.org/packages/24/ee/3e81e1dd174f5c7fefe50e85d0892de05ca4e26ef1c9a59c2a57e43b865a/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4", size = 1322295, upload-time = "2025-07-26T12:02:44.668Z" }, { url = "https://files.pythonhosted.org/packages/3c/b2/6d913d4d04e14379de429057cd169e5e00f6c2af3bb13e1710bcbdb5da12/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f", size = 1391027, upload-time = "2025-07-26T12:02:47.09Z" }, { url = "https://files.pythonhosted.org/packages/93/8a/68a4ec5c55a2971213d29a9374913f7e9f18581945a7a31d1a39b5d2dfe5/contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae", size = 202428, upload-time = "2025-07-26T12:02:48.691Z" }, { url = "https://files.pythonhosted.org/packages/fa/96/fd9f641ffedc4fa3ace923af73b9d07e869496c9cc7a459103e6e978992f/contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc", size = 250331, upload-time = "2025-07-26T12:02:50.137Z" }, { url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" }, { url = "https://files.pythonhosted.org/packages/a5/29/8dcfe16f0107943fa92388c23f6e05cff0ba58058c4c95b00280d4c75a14/contourpy-1.3.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cd5dfcaeb10f7b7f9dc8941717c6c2ade08f587be2226222c12b25f0483ed497", size = 278809, upload-time = "2025-07-26T12:02:52.74Z" }, { url = "https://files.pythonhosted.org/packages/85/a9/8b37ef4f7dafeb335daee3c8254645ef5725be4d9c6aa70b50ec46ef2f7e/contourpy-1.3.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:0c1fc238306b35f246d61a1d416a627348b5cf0648648a031e14bb8705fcdfe8", size = 261593, upload-time = "2025-07-26T12:02:54.037Z" }, { url = "https://files.pythonhosted.org/packages/0a/59/ebfb8c677c75605cc27f7122c90313fd2f375ff3c8d19a1694bda74aaa63/contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:70f9aad7de812d6541d29d2bbf8feb22ff7e1c299523db288004e3157ff4674e", size = 302202, upload-time = "2025-07-26T12:02:55.947Z" }, { url = "https://files.pythonhosted.org/packages/3c/37/21972a15834d90bfbfb009b9d004779bd5a07a0ec0234e5ba8f64d5736f4/contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ed3657edf08512fc3fe81b510e35c2012fbd3081d2e26160f27ca28affec989", size = 329207, upload-time = "2025-07-26T12:02:57.468Z" }, { url = "https://files.pythonhosted.org/packages/0c/58/bd257695f39d05594ca4ad60df5bcb7e32247f9951fd09a9b8edb82d1daa/contourpy-1.3.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:3d1a3799d62d45c18bafd41c5fa05120b96a28079f2393af559b843d1a966a77", size = 225315, upload-time = "2025-07-26T12:02:58.801Z" }, ] [[package]] name = "coverage" version = "7.16.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/65/2d/c738872f477f5687152acae68635790387425d407ae37dd3d3a8a6692307/coverage-7.16.1.tar.gz", hash = "sha256:f83981779bcf9dfa06fa0a8d4cb43e0faec1706328ce07aa3e7b665b4ac0f210", size = 969651, upload-time = "2026-09-13T19:12:21.422Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/af/3a/d09495dfd5191b5593852bbe2f037afae768157443378d066d9ecea69a49/coverage-7.16.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:72e013665e25cf9d44779f01f340af26319756f9a76822b7c94ce6b1d93813da", size = 223307, upload-time = "2026-09-13T19:08:44.914Z" }, { url = "https://files.pythonhosted.org/packages/a3/34/310196a80258e28ebf6e5aa814a5a6ffbb18c03cf3c0c0c04191ed893e88/coverage-7.16.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cb05c0ff98b56ba6969adf35556bc43bcb8d094df8bc9cb403acff53460c4e07", size = 223817, upload-time = "2026-09-13T19:08:46.738Z" }, { url = "https://files.pythonhosted.org/packages/73/29/ed0fda1fcd440cdfc07e72a07f3c9c3b43f65a6b3d53bff2cba9b9de50e8/coverage-7.16.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0d0ececb32090e3fbb03e0d352b973a0485879b4de6c58daf47227b9988b99e5", size = 254222, upload-time = "2026-09-13T19:08:48.358Z" }, { url = "https://files.pythonhosted.org/packages/ac/4e/5e2507fbd71ec1047620978f39568b0d2ed6c4468d08495a0c24f5677f65/coverage-7.16.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f0ba3892d81aacf36996c52f16bca04e39af31a6c5de930b7688ab617f4a6475", size = 256134, upload-time = "2026-09-13T19:08:49.926Z" }, { url = "https://files.pythonhosted.org/packages/7e/b1/a9f97846554bc240473656f9c3874591105f29c08eccf4282daadc6bc281/coverage-7.16.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a6410b75fe07d5271eaa95fc24bd0a9177ed588d9d1c10c0cf67829adb8f0567", size = 258240, upload-time = "2026-09-13T19:08:51.584Z" }, { url = "https://files.pythonhosted.org/packages/a0/c3/2b1ab208d06719394851cdd7dc322157870a93b178410b1bda6cac7755f9/coverage-7.16.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d1039cb2de093225d597109342ce1675626bd127565e80b3044f4eca07c15b2e", size = 260202, upload-time = "2026-09-13T19:08:53.204Z" }, { url = "https://files.pythonhosted.org/packages/af/14/ff4db31d6e3126d5b72aab1e868d35ec94e1b71dee46f5c3b54cb1b2438e/coverage-7.16.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cf047bc39fde5425be2628666d0f435ed8817859111c3aacc84b32d858069f5d", size = 254305, upload-time = "2026-09-13T19:08:54.833Z" }, { url = "https://files.pythonhosted.org/packages/ce/27/c28faa4818f61c49ca3bfb4a77e1c191e79a40447504b89af0bd859cd6fc/coverage-7.16.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2c05913d0d5badf7ac83200f35dcf9514cce5df16a7cc89e7d1d7fff0461813b", size = 255935, upload-time = "2026-09-13T19:08:56.453Z" }, { url = "https://files.pythonhosted.org/packages/46/5a/42e64e5b716048cae33e2e15f8c6fe04a927467056c533b8e88900da895e/coverage-7.16.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4027bf6d7bc0a16df058ce913b69f10c5687f8e1ca668f08caa659ce101744bf", size = 253995, upload-time = "2026-09-13T19:08:58.159Z" }, { url = "https://files.pythonhosted.org/packages/84/e5/860287acd5a1e29acd337f302b476b54148203590091b1a1555b2e914b50/coverage-7.16.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4f48b345f831eaf4402ab6333c2dc3e2e2b5bc7b9c1b8fe12680dee3f0538f01", size = 257767, upload-time = "2026-09-13T19:08:59.958Z" }, { url = "https://files.pythonhosted.org/packages/a5/c5/4b68006da567b4b413352f891776c35776b3557a0479a28187ab57c21659/coverage-7.16.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:8643baeb590726c558b2faed6cd59b0917480f9367fcc692026f1a86d824fd08", size = 253715, upload-time = "2026-09-13T19:09:01.778Z" }, { url = "https://files.pythonhosted.org/packages/a1/0e/b2d0c47cfbf11770e197f1d0f11a92864eb29fd7eaca45bc9915573d9725/coverage-7.16.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d06dcc420b570bf683cdb647cc8fe62b672d9e429ef711c3cbbb7a6880ca1572", size = 254624, upload-time = "2026-09-13T19:09:03.376Z" }, { url = "https://files.pythonhosted.org/packages/2e/14/3bab8821b2b942155578fc34e88e21b0670d922f039ab23651f6035ba7f7/coverage-7.16.1-cp311-cp311-win32.whl", hash = "sha256:946f58aa59b08bcd6afcc6a7bd0ff54ed5eee844f32ad69fe6814836d15856a2", size = 225404, upload-time = "2026-09-13T19:09:05.174Z" }, { url = "https://files.pythonhosted.org/packages/9b/ce/4f4ce667a97d1c538b46a79b89161395ad2beffc248b6c782afc9f521927/coverage-7.16.1-cp311-cp311-win_amd64.whl", hash = "sha256:684c7ee9b4c04358fe6ac8b517ab51ec35fcd79d08ff0f105dd8bcd96885bbb7", size = 225879, upload-time = "2026-09-13T19:09:06.81Z" }, { url = "https://files.pythonhosted.org/packages/26/17/f3dce5e47351ab34522dd037fd64b111742958e24861bdd2820971bc1a26/coverage-7.16.1-cp311-cp311-win_arm64.whl", hash = "sha256:1b24f79e25bcf6c73931aeca7a3dfc7595c0cb5e9364aba3fdf387a3de4b1c22", size = 225428, upload-time = "2026-09-13T19:09:08.502Z" }, { url = "https://files.pythonhosted.org/packages/1a/f7/7cd4c9f2a3b7574414222ec425d5eee21cc690d867a013315e3be8ba185c/coverage-7.16.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b7f2c26ce6ce0b1e0ca0d5fae96ea510e3a2e78b7207f06e76b7f2c87fa3d0af", size = 223475, upload-time = "2026-09-13T19:09:10.145Z" }, { url = "https://files.pythonhosted.org/packages/3e/f2/9ac65f9cedd43f91e2d3657c11f13aef82aebae89b2243dc9e44fe58a740/coverage-7.16.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070acb9da788dff743a4d36fc015feee12d68f0349959017542017c79f59c21c", size = 223845, upload-time = "2026-09-13T19:09:11.988Z" }, { url = "https://files.pythonhosted.org/packages/62/4d/f13db452d4367fe1122abfd98ae330596f65a3b40498f8e1a5811f68f123/coverage-7.16.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e366587b370bc9b8b51b7b7272c610c56db5d5b4795b9e4a29d28ff2f440f809", size = 255341, upload-time = "2026-09-13T19:09:13.708Z" }, { url = "https://files.pythonhosted.org/packages/5d/6b/85ed86e82835a96ddfbe7705c387c28ce1cbbecd1b6d606f5ddfeeb712df/coverage-7.16.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e82e10b9d290f60b63459cfb245a841aec347603997206296b93881463a93dcf", size = 258078, upload-time = "2026-09-13T19:09:15.368Z" }, { url = "https://files.pythonhosted.org/packages/cd/d2/f66945853d850b9c05f4e012e37396f1f31d0cd40d062394b229c22e7b56/coverage-7.16.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d73bb1f85c4150ac208fb0755beb04b2e44897bad81414de9380f98dd74729f", size = 259191, upload-time = "2026-09-13T19:09:17.046Z" }, { url = "https://files.pythonhosted.org/packages/77/a1/7b907abe62461f289035c7ac60ab3e6334efb8c425151aac4abfa0c97820/coverage-7.16.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3397b9032553d281ad6a9253b12675b65e0cc8cd7a3b0633cf48872c9eb13360", size = 261452, upload-time = "2026-09-13T19:09:18.756Z" }, { url = "https://files.pythonhosted.org/packages/51/e6/e26f4d6b1069a2a2fee3238a132f85c5b4c1dc25aebd88e015451ff0bd68/coverage-7.16.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:77890395cf37026a5907d3ad32376aa51f41c0f163b7477fdbd4f94966cc1d08", size = 255698, upload-time = "2026-09-13T19:09:20.786Z" }, { url = "https://files.pythonhosted.org/packages/7f/ec/99db7450e813050ebce300e31bbd4f997c76a8c6e3a6d168c5dffc104109/coverage-7.16.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b0944dc3bee3091039bf970d73caaf930c906013128a421bdc132e797494d941", size = 257111, upload-time = "2026-09-13T19:09:22.693Z" }, { url = "https://files.pythonhosted.org/packages/2e/9d/500df9d3cd8c541ac84b5e0bcab00646be75654e05aa34e8410ec851282d/coverage-7.16.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b89d22a89d5bc05dd95b64e08295b8394aa96dc88e08f8ba210c9ebfebbe0489", size = 255258, upload-time = "2026-09-13T19:09:24.429Z" }, { url = "https://files.pythonhosted.org/packages/c0/24/53318d96da332bb4946f8ac646fa19fd37fecbd0c49144735c716ac69bf0/coverage-7.16.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:550a2a1faf7559f13d5344f12d1eb886ad87955155d7dfab2a3fe5c8ec8fe776", size = 259326, upload-time = "2026-09-13T19:09:26.32Z" }, { url = "https://files.pythonhosted.org/packages/c5/ce/abc0462b2e6ae96ae22197d2bc30fe33b6b4e52937e782745436ceb2a761/coverage-7.16.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:55eb268e5b81aefac759766c9162625b06c1bedb7b77d936225bafc4f038a6f6", size = 254827, upload-time = "2026-09-13T19:09:28.191Z" }, { url = "https://files.pythonhosted.org/packages/8b/e1/0a04eedaaf19196b51f0180968134228c7646e469ed29914e48690a7cf3e/coverage-7.16.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:65a8fc80898c9ce59f04349fe8b4849b1f9787f14e52ead990e5f849ff4727a0", size = 256698, upload-time = "2026-09-13T19:09:29.922Z" }, { url = "https://files.pythonhosted.org/packages/de/1d/d441a55cf22ce9d8e9e34814806c47441ab844bd534e0f4b64e1c6ae8bd1/coverage-7.16.1-cp312-cp312-win32.whl", hash = "sha256:528a61be40977c340cf201d23b69bd6a6bab507da60e9dbda85f8b30e935d70d", size = 225541, upload-time = "2026-09-13T19:09:31.752Z" }, { url = "https://files.pythonhosted.org/packages/73/27/ec3d032375735dd331477caa051419678079ff90fcb53d0284a6c2bfb757/coverage-7.16.1-cp312-cp312-win_amd64.whl", hash = "sha256:d0f02c633630e2b74522108ee95a84ad6e1204a8016a6cca5297f335ea27147e", size = 226075, upload-time = "2026-09-13T19:09:33.556Z" }, { url = "https://files.pythonhosted.org/packages/94/00/90e9f5c4434878494306b9c0ee8068ebbd829483737d8cefccc58884d728/coverage-7.16.1-cp312-cp312-win_arm64.whl", hash = "sha256:2959978f9d1d20a2c0c15d0a68baaeccf615ac1aa214cf4a05a10d6f568926c8", size = 225461, upload-time = "2026-09-13T19:09:35.48Z" }, { url = "https://files.pythonhosted.org/packages/aa/74/c08c0c4dc9fa6bcd1d90728a63660aa1b17b488a806948598456c48f75d1/coverage-7.16.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ee5465db6e9152a7d09f3215309326878c6aa3ac509195a369f9d264ff4bfbd9", size = 223501, upload-time = "2026-09-13T19:09:37.276Z" }, { url = "https://files.pythonhosted.org/packages/5b/c8/784986d326663285258a8e39835c46fb730cc85284f0dbcd82078586dd22/coverage-7.16.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2b8256f8b525ba233d2e4cdcdce0d6673c66fc9bf70df1fd5e67c54a74e2d245", size = 223876, upload-time = "2026-09-13T19:09:39.385Z" }, { url = "https://files.pythonhosted.org/packages/15/76/73fb792928872bbb07e553f920ff55c65ee962c469265feb5d1d4ae5f97a/coverage-7.16.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d57cc400275b9a2892e905fc893f732b21ddb95271bf96406c88e2f6367848b5", size = 254863, upload-time = "2026-09-13T19:09:41.326Z" }, { url = "https://files.pythonhosted.org/packages/ca/8d/1fd78899513244b065ccecdd1cfc6aa8b8f1bdee796d8c4f2aa8e8e5397d/coverage-7.16.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6b3fd0f3435ebb7a7183b32a6062a8b755f08242ced1f3f22761d30b56b3c2a5", size = 257460, upload-time = "2026-09-13T19:09:43.086Z" }, { url = "https://files.pythonhosted.org/packages/47/1c/b23ddfcb7ef9bd7b3fdb7be9a5dccf9925ae88e556df7aa5b655283c78f2/coverage-7.16.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e5eb1762e7eb5fad34ef913e8107c7788a66f19d328e598ce95bf7217f9e5c8f", size = 258697, upload-time = "2026-09-13T19:09:45.161Z" }, { url = "https://files.pythonhosted.org/packages/1c/c9/19d0c6ca35778a7e9415c30c46a0c64c9d4374219d004a35563132296896/coverage-7.16.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:46cd3a73e9140410de62cceb66214bce0e08fb3922b9176fbfc1522fec151b41", size = 260827, upload-time = "2026-09-13T19:09:47.061Z" }, { url = "https://files.pythonhosted.org/packages/97/fc/5862f7344382c62b85df43d483e579168cc062e007f54d895dfa51fe3e7d/coverage-7.16.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d1ba5142d68dd2cb775cbd0ac8601819298152047803c8efe4eec6d7d7aa7878", size = 255038, upload-time = "2026-09-13T19:09:48.945Z" }, { url = "https://files.pythonhosted.org/packages/2e/9f/5c26583199a68df8d15124b4590520903f8eb7cef17db293fea712bb0783/coverage-7.16.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c389c6f9d1d518e1249ddcb8a7f158135644ce2c508fa6cc17b680777dad5bf2", size = 256827, upload-time = "2026-09-13T19:09:50.738Z" }, { url = "https://files.pythonhosted.org/packages/95/13/605198bff079b107336710f28a797312ab132587168600d70a290e7ecd2e/coverage-7.16.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cdc57746c7ac0ea063351b4d651c3bb4dd4fd35e64dbb8e90c10e14eb03c4080", size = 254794, upload-time = "2026-09-13T19:09:52.577Z" }, { url = "https://files.pythonhosted.org/packages/43/b7/0bbb32dc5ccdac766a13763fdfbffd7d73fc80349a69230c46c6b71e7508/coverage-7.16.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5597180ed7670cc94c04c65347418a467d3a43d5f0cf52fcac647f5425f42037", size = 258947, upload-time = "2026-09-13T19:09:54.372Z" }, { url = "https://files.pythonhosted.org/packages/13/bd/65c31ddd43ff4e61b63721b3dad17cca412dba6e2ce89f92abdf75734339/coverage-7.16.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:a9647a0ac46255b8fef59a433a2161f03e5483f3a35e1cbd9dfe4600baff0c6b", size = 254613, upload-time = "2026-09-13T19:09:56.198Z" }, { url = "https://files.pythonhosted.org/packages/25/20/d278115f2ba522b3e3128c6852be265f4e0df7202b2effca4db96cf0217d/coverage-7.16.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e306e98186b9cd109121f3583aeb7978797ad21d948f22944c5c08845cd554d0", size = 256388, upload-time = "2026-09-13T19:09:58.095Z" }, { url = "https://files.pythonhosted.org/packages/e1/ca/d43aa396fb3a2f71c9411b99d926475f5acaf5c124f605c592865c80c8d5/coverage-7.16.1-cp313-cp313-win32.whl", hash = "sha256:48a78a66fcce49d7f6156524bf979c0ac633d584199717c68c6ffa949fc14e6a", size = 225550, upload-time = "2026-09-13T19:09:59.998Z" }, { url = "https://files.pythonhosted.org/packages/0e/30/df2f6114f6a17cffe94721bd1d298f77f86aad493717fa5bc03cb291a1a6/coverage-7.16.1-cp313-cp313-win_amd64.whl", hash = "sha256:7af03247d598a353bbbbe1b925deb735276e4d845e7197c4073dc89352b236fa", size = 226091, upload-time = "2026-09-13T19:10:02.331Z" }, { url = "https://files.pythonhosted.org/packages/ee/31/6f90d8aab72a112492bd50e3b5485b53b772b1f5fa70da0a620e723caae6/coverage-7.16.1-cp313-cp313-win_arm64.whl", hash = "sha256:166adae25b05b04c9a84135912066d9c97482115af38df1a419a38aacc6b6f5d", size = 225481, upload-time = "2026-09-13T19:10:04.151Z" }, { url = "https://files.pythonhosted.org/packages/8e/b4/2a7c793965bae9f067aabab793a44d7a2f3ee7fb16b01ce1976bbd4a0218/coverage-7.16.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:cc0b37fe6f5ce5f1ccc62ad4fa9b1ad201d8e9b6027fd5e0170877beee4b2d15", size = 223546, upload-time = "2026-09-13T19:10:06.019Z" }, { url = "https://files.pythonhosted.org/packages/ef/e2/633469076a2dbbea036cc15a268a3a5d6b2c7dd5d9a9567b2553dfc5ad61/coverage-7.16.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6618f481053b63fc6121faf8fc676bd9b7163c2a19d9e984a2e850002c28ab57", size = 223881, upload-time = "2026-09-13T19:10:08.246Z" }, { url = "https://files.pythonhosted.org/packages/de/c3/f06150c13284569d53273b909f31222874276a595637b7852571dfeb2c18/coverage-7.16.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:fa02d561eb1d8d2f8ba43ba6e3cef4c6c402a3b632a9460fa329fcadcd5df6a3", size = 254919, upload-time = "2026-09-13T19:10:10.254Z" }, { url = "https://files.pythonhosted.org/packages/d5/40/47e25b215ae18a29010c8e29be8782a6e04d18ba6224be2bf6cebfce6427/coverage-7.16.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:bc5354a124799f1f87b7637bbe6f18cd4bc66a1f37f6aa2b5db40f9adad531dc", size = 257428, upload-time = "2026-09-13T19:10:12.124Z" }, { url = "https://files.pythonhosted.org/packages/27/4b/1e2a4267d14cbd12a8489364a9d40020233e6be836d929b363f0e77209e2/coverage-7.16.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:34bafe9f4094315248573e6223e11af0ec1b25f9cbca43bf0e9a26a189ba2751", size = 258771, upload-time = "2026-09-13T19:10:14.031Z" }, { url = "https://files.pythonhosted.org/packages/be/2e/9aa6146cea929fab9185bb2642ffef7f47520a6e5efe407f75f9b12f4cf0/coverage-7.16.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:29c4d3e32a3b5efa420a3dc627c7e570deb80ef997def52c7686a474f5edc7ab", size = 261086, upload-time = "2026-09-13T19:10:16.213Z" }, { url = "https://files.pythonhosted.org/packages/13/3c/f9ad8bcd4fb3d21c9d20a16d6d6c6f999eee8f4498ed7659a3dbd2f4b74a/coverage-7.16.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f2066c447fdd0bca39a9633a082d8ce67bf9a539a203b85059a364a405dc9fe9", size = 254895, upload-time = "2026-09-13T19:10:18.602Z" }, { url = "https://files.pythonhosted.org/packages/b7/d1/47eda9fd1eaeea39fa7b5b13a63b2bed92ab901841fb120b3f9f5e1dc30c/coverage-7.16.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fd8ac10cd2458b3c6343aac082fb9bd0e3fa806cb2c4975f2280153474b88412", size = 256783, upload-time = "2026-09-13T19:10:20.778Z" }, { url = "https://files.pythonhosted.org/packages/38/c3/565edf044877cb8cd3373c56885347ffc38f0edfd1f1679a487b208c19a8/coverage-7.16.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:9d8c54ec32e5c102b9241f75d88ae26538b53662868ca491736611db448d9c7a", size = 254742, upload-time = "2026-09-13T19:10:22.733Z" }, { url = "https://files.pythonhosted.org/packages/fd/88/87d2b2aeaba719192b2089ff1c2cf89a06cf73a6d2e9f1f145626617700c/coverage-7.16.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:6dd8dda3402a01a1a8fe8b753a282466f615128574a5590a9108acd07b1f8540", size = 259016, upload-time = "2026-09-13T19:10:24.769Z" }, { url = "https://files.pythonhosted.org/packages/fc/1b/70813185b125768abdcf7899fec4d37edc2e5fc9b60c7045c8f4271ec757/coverage-7.16.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:79afa9726438912e5cddd1fe541815cea9763c92935f594835e4c432565b68a9", size = 254559, upload-time = "2026-09-13T19:10:26.781Z" }, { url = "https://files.pythonhosted.org/packages/d8/fa/e7aa5af279aafda633a1ede8bfd7d6916b0c8b2082be86759e0b52e73a61/coverage-7.16.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3db3978211c3cead5437a80136ca0556bab8bc7828de15a762884b0598c41361", size = 256215, upload-time = "2026-09-13T19:10:28.714Z" }, { url = "https://files.pythonhosted.org/packages/38/87/7a894fa4f8c6662d2b6a87a3436950e15b1fa56e01765c9d6634fb2cbeb8/coverage-7.16.1-cp314-cp314-win32.whl", hash = "sha256:49c39c7068a494f8eb427155f5682f44feee43f9b3107fd54b1e52465379c54b", size = 225719, upload-time = "2026-09-13T19:10:30.743Z" }, { url = "https://files.pythonhosted.org/packages/8b/01/fa7193c8005fb85488f02b0e1cc3c05a233cf2640206dd978af447aeecbf/coverage-7.16.1-cp314-cp314-win_amd64.whl", hash = "sha256:c510dad19552d912058e4c3e3cbec3fb155dbe8d0ce0ceb7e7dbf5c5822bae0b", size = 226208, upload-time = "2026-09-13T19:10:32.698Z" }, { url = "https://files.pythonhosted.org/packages/da/5c/a08634c714924c3eaef811bb3576c044128aa5e7dfa86c75e52f0761849e/coverage-7.16.1-cp314-cp314-win_arm64.whl", hash = "sha256:b7d4d7e6dcaf33e85f1919f03346403bdcc27437c420a78835f3805bca0ab71f", size = 225633, upload-time = "2026-09-13T19:10:34.79Z" }, { url = "https://files.pythonhosted.org/packages/43/df/ddb8a4c664046b1a0ee29c9c2d25b993e5dbc8fbde715df3694a64532781/coverage-7.16.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:3d0a3681c12d3e0bcdea3d9414b04087828d6c1a482802d6f7f42c37ed530152", size = 224281, upload-time = "2026-09-13T19:10:36.853Z" }, { url = "https://files.pythonhosted.org/packages/e2/d0/9076e0c762d8afd91182e60a520fa5c92c4a334785eeb9fd6b8ef8fe7e3c/coverage-7.16.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3f3b4469d3da3ecced775d1a8c9c5d9fc80f259e30b7b89f9fed0700d6035ecb", size = 224547, upload-time = "2026-09-13T19:10:39.359Z" }, { url = "https://files.pythonhosted.org/packages/03/e5/9c59e64b6161704f35fe91549bb19b2bb355e95caf596c26a2065564807c/coverage-7.16.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c08ae35c1be2fe1ce4b4c628df5c6fc0dc9a87f8e5fe8e20238d249678984741", size = 265906, upload-time = "2026-09-13T19:10:41.434Z" }, { url = "https://files.pythonhosted.org/packages/57/5a/13ccaffb77f766101bf6f38be9dba9e468b02cc92da4552a57877dbf1c1f/coverage-7.16.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8ee71a38c54bb2676bbe762b8b0943a79ccb1c2fd6a52054f66e63eda392f8c1", size = 268023, upload-time = "2026-09-13T19:10:43.533Z" }, { url = "https://files.pythonhosted.org/packages/ad/a1/05cfcf01d3c7c922832698ad46e51d3441d820ce87a943014bb5cf5710dd/coverage-7.16.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:76491917771f179f9772efe218c5ccc65950dbdb35f4439298d8a8dfc6ec1f72", size = 270442, upload-time = "2026-09-13T19:10:45.895Z" }, { url = "https://files.pythonhosted.org/packages/72/15/a2f1544b8e3835d7b769f7dabcc9ac0283e0b646ef3344703ff8f18d83e6/coverage-7.16.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f4aa0b0a6f81fa3deb211e643f6954e78b4376b62b9c218271236cfa757664e8", size = 271565, upload-time = "2026-09-13T19:10:48.123Z" }, { url = "https://files.pythonhosted.org/packages/df/5b/963c2993a82bd313f298d663afe03e164b96ace4d9d4c7561740a559e13d/coverage-7.16.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:756ba2d96d073c5a2a55d67fa22784763710fadbe22c41adde2d9cfa4dd78a8c", size = 264959, upload-time = "2026-09-13T19:10:50.195Z" }, { url = "https://files.pythonhosted.org/packages/12/59/5eba06d1943735d7cd61d46d8c8a20ffe8ddd2da06b3c94366078dadeb9b/coverage-7.16.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:99bf9ea435cefcefd220f8687c3ddbbf78dc2de0bd11b57c3ae9fbbdf8d5561a", size = 267897, upload-time = "2026-09-13T19:10:52.252Z" }, { url = "https://files.pythonhosted.org/packages/bd/48/af6c30f6ea431bb9b83f9070d268a9cc4fc97490abd32080164177ea999f/coverage-7.16.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:35cbc81f937fc402971df45c897d2df2bfb2014efcd990360032aa0a651635da", size = 265504, upload-time = "2026-09-13T19:10:54.432Z" }, { url = "https://files.pythonhosted.org/packages/80/f2/6e13852a8656d05fa83284567dd5a5b1e6d89bef79fe3effca2787159eab/coverage-7.16.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:8fae08e85b334ac6ac886002b5041396a31bcf805225bbe19847627203da99e2", size = 269235, upload-time = "2026-09-13T19:10:56.563Z" }, { url = "https://files.pythonhosted.org/packages/c2/32/b4fe465daa64ece674f83a750dfa4ba0fa3c5c74d6ef5dbb8dfce892cf0d/coverage-7.16.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:83362b64e215ef00b0ba33fcf13655ace6c9fdd144d5ad2ab59ac86c2daf166e", size = 264347, upload-time = "2026-09-13T19:10:58.634Z" }, { url = "https://files.pythonhosted.org/packages/54/f3/88b5c0e4ca3994c6d5feb7b1bf4c9a62cee205553159184968426930a7b1/coverage-7.16.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:33300f2e140ccf26af3d8152e62bff71993f9310cfc63ba7a20940b0d246a0ae", size = 266660, upload-time = "2026-09-13T19:11:00.746Z" }, { url = "https://files.pythonhosted.org/packages/97/72/6eff5456d7ba7f1c4678af531c33f9d957cae3201bd229b056fd13a204a3/coverage-7.16.1-cp314-cp314t-win32.whl", hash = "sha256:5539304fdbb2cc144df684d35a33b81145334d23e1c2367b5a923d25107f70b2", size = 226026, upload-time = "2026-09-13T19:11:02.846Z" }, { url = "https://files.pythonhosted.org/packages/8e/c8/6e5ae3d8d4d0f2c0078985bf4db55fafd90e8107b1bf91ee3547a13f5694/coverage-7.16.1-cp314-cp314t-win_amd64.whl", hash = "sha256:715dcb72c3280c428c3a20134b87e42c29acec9669136e899ab2de69ca86218d", size = 226862, upload-time = "2026-09-13T19:11:04.921Z" }, { url = "https://files.pythonhosted.org/packages/be/c7/68f9f0734afc904a92b974b489545b6a15700f3b1c4bd36eae764561e661/coverage-7.16.1-cp314-cp314t-win_arm64.whl", hash = "sha256:dac8b84c03e6029d272b8249c77018db83de59ca009a9adef7c144b4a62ee5e6", size = 226171, upload-time = "2026-09-13T19:11:06.969Z" }, { url = "https://files.pythonhosted.org/packages/ae/16/e11addf5322d98e86307da9e00c94644b97cb72c534c74cda89705bebeef/coverage-7.16.1-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:a337dc2d54c74430cd2febb8ee04f7c508ba8b3b412bf0463f077a66cfc73743", size = 223544, upload-time = "2026-09-13T19:11:09.108Z" }, { url = "https://files.pythonhosted.org/packages/92/d9/7ccd6484f615961d94b09c75904f87d86375109596069ae3a495a205dbbe/coverage-7.16.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:3acd1d78397dead78dd1b011b5fc19cc823c190349acd549e63856dff649c80e", size = 223882, upload-time = "2026-09-13T19:11:11.132Z" }, { url = "https://files.pythonhosted.org/packages/59/37/2fd78152a557df4a7e4ad78d6851ede90c211838d526e4916c6016f45144/coverage-7.16.1-cp315-cp315-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:73a32694603a34ad01d7e51a481a4023410d8099e1d0757e067945695c10f0ae", size = 254987, upload-time = "2026-09-13T19:11:13.735Z" }, { url = "https://files.pythonhosted.org/packages/7a/4a/58e2f9b8b13cc422aa7f474a498945ec7f446ef473b5b6bae18d2981f2a9/coverage-7.16.1-cp315-cp315-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fbbe8265736659a6be2e6042b6a35be13545d14b243cc1d7ecf65f90d788a370", size = 257902, upload-time = "2026-09-13T19:11:16.025Z" }, { url = "https://files.pythonhosted.org/packages/3c/74/63f8f6a67c03b86455c726be273b2aa5b57fd1122f22350d141bbb142e91/coverage-7.16.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4b0359eb4c62f9993e176bc8f50450fc736a6b90dbcc05bb8584e948812699ae", size = 259522, upload-time = "2026-09-13T19:11:18.206Z" }, { url = "https://files.pythonhosted.org/packages/e2/3b/1f2261da7483e345fe55de11e41ffc16a543511e37c0912134c0dccc4f6c/coverage-7.16.1-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:da506e669a8a851b59e122b4b219ea70996a6296f44f3a9348a852526ff961de", size = 261723, upload-time = "2026-09-13T19:11:20.628Z" }, { url = "https://files.pythonhosted.org/packages/a7/8a/7eb1a361e044b7293f49c921a974b532627ed37f3bef5e7e9f58bcd0d5a2/coverage-7.16.1-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:64a2a5985d81810ed605ff0dc4ccd6555efcb5700353825532a9a0aea65826e1", size = 255462, upload-time = "2026-09-13T19:11:22.733Z" }, { url = "https://files.pythonhosted.org/packages/67/66/6d94f7ea87e99c519def5cfa5d4a1ab20247d6b403eb6e6b5b63d6aa5985/coverage-7.16.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:66d70132b69b861805dc1ca46cdd733e54c416890e8f1371d2fd103f70b59c9c", size = 257617, upload-time = "2026-09-13T19:11:24.933Z" }, { url = "https://files.pythonhosted.org/packages/3d/52/c3de0a3868589a1463a4f1cb0222eca0e5fa9f91da865ccf20d2e19ec19c/coverage-7.16.1-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:db651a9cf325a542bc2b7b8cc8f1b2bdc6492739bae3103731b2f1c85b96cff6", size = 255495, upload-time = "2026-09-13T19:11:27.158Z" }, { url = "https://files.pythonhosted.org/packages/9e/a3/ea10e75f20fc1e7be10b166a494826a965d19b1dc9c8a81c511a01153311/coverage-7.16.1-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:4184e78a4465dcda359fb403172b8951dd220929cb0984c02fabca1742fff06f", size = 259728, upload-time = "2026-09-13T19:11:29.33Z" }, { url = "https://files.pythonhosted.org/packages/0e/96/9d8020d97de46f0390739beda196322586cdd87e1fc357223e6a28bc4135/coverage-7.16.1-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:bc53c3f3adaa939b7a063533ffe0ae1259e7073393c618043a99a6970a87e3df", size = 254904, upload-time = "2026-09-13T19:11:31.86Z" }, { url = "https://files.pythonhosted.org/packages/5b/21/2ff8867d4560f4f639a82d8fcf13c27eea88a96193daba096027c48bb929/coverage-7.16.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:b44308854ef210b9b78df9cdfd4e159513382a859f5ef8464306d14a54c2a040", size = 256828, upload-time = "2026-09-13T19:11:34.078Z" }, { url = "https://files.pythonhosted.org/packages/6a/4b/feacad51cb5163e3baa13281f8a3098f15d7934cc1f28cfe656557eb4e46/coverage-7.16.1-cp315-cp315-win32.whl", hash = "sha256:dccc142614d3419ed71857deb43f1d757829a4c7fce9994464b71e7e38309827", size = 225722, upload-time = "2026-09-13T19:11:36.314Z" }, { url = "https://files.pythonhosted.org/packages/39/34/66bbc6ffd3c51fa67604c566920e772c5e3baa57f88dcf7b109c7f18b2cb/coverage-7.16.1-cp315-cp315-win_amd64.whl", hash = "sha256:961fc424e9d5229a99f8f1189942d8e7f4e1519147c3af64842f944aca03914d", size = 226195, upload-time = "2026-09-13T19:11:38.493Z" }, { url = "https://files.pythonhosted.org/packages/f7/96/4bad920d4caed127c37c136a64b0730fa495517d2eb58809e0d81e6e7dff/coverage-7.16.1-cp315-cp315-win_arm64.whl", hash = "sha256:681a9488c5a234397c4f013da065aa9e53eb7af4c78f1f80c6f15e7208acb855", size = 225625, upload-time = "2026-09-13T19:11:40.664Z" }, { url = "https://files.pythonhosted.org/packages/f5/2b/a88c7906eeb7da4394e932060d7008e153b3a2cd8d11782d82faa03bb7a3/coverage-7.16.1-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:8bb09a2d19b04db1fa0e087a7ca4f12458f7e0e7364cfcd838441d86fb1c61f6", size = 224271, upload-time = "2026-09-13T19:11:42.876Z" }, { url = "https://files.pythonhosted.org/packages/1f/1f/98db59c595680d16f553890deac6d72610e04f192c1964ec9b69cbe790ab/coverage-7.16.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:2270a794600b635ca9452ce4c32e2fe81a35f9caa17ffac0eba99f14f275bd4d", size = 224564, upload-time = "2026-09-13T19:11:45.071Z" }, { url = "https://files.pythonhosted.org/packages/b5/e8/699e236d4cb97ec282b0655afc85acf12349e71a02fff0f1a7d0fb643079/coverage-7.16.1-cp315-cp315t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a4eff405b545dfcf79cf0d9d3ff750e5c5a887aa066114175193a81d249c5ee6", size = 265423, upload-time = "2026-09-13T19:11:47.666Z" }, { url = "https://files.pythonhosted.org/packages/96/1b/6eaa21912863b3e3bf23cfe605fb62929bb1a41dc33d2bfa8e92000232bd/coverage-7.16.1-cp315-cp315t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ee1d5fc9e3bd6a217906929cc97880239a91d20dae7746f538eb0eefee705ab1", size = 268503, upload-time = "2026-09-13T19:11:50.12Z" }, { url = "https://files.pythonhosted.org/packages/9f/ac/4eb46bffa98c28a80559a58c12f17e19308d52b31174af1bd49decf76606/coverage-7.16.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4ec944947de098ad5a1738413f9364689a57067ecbc328e9de37218aa1e5cc1", size = 271059, upload-time = "2026-09-13T19:11:52.363Z" }, { url = "https://files.pythonhosted.org/packages/ed/d4/17a51ef1f6a084c9abbead522cfbee0fe9d29a593128781e724b7a0795b3/coverage-7.16.1-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3f73ee3956fde2d461c9e2955dd48166e4821fc8587d135e8780fb84da2a098b", size = 272039, upload-time = "2026-09-13T19:11:54.935Z" }, { url = "https://files.pythonhosted.org/packages/4a/ff/9fdeba8b8aa0848030f45f869ddedc306795a8c6e53e901b8553afbf5415/coverage-7.16.1-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1ec9a4ee989c0d06ad95add0dbfdbb72b00ef53f43431ca0b612384e7878e5de", size = 265869, upload-time = "2026-09-13T19:11:57.423Z" }, { url = "https://files.pythonhosted.org/packages/95/eb/ab3eb506b2e4dd278440fbbbc7ed18424a86d8a981db0b90fdba66f5d34d/coverage-7.16.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:7e5727b2508f817f3126d6c33327dda32fe69d15514badfcd61db8bc4209ecef", size = 268883, upload-time = "2026-09-13T19:11:59.71Z" }, { url = "https://files.pythonhosted.org/packages/d5/0c/f4edefdce33f01954a74237df5ee83ccef5dcd1165e04abf0adf47543fca/coverage-7.16.1-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:19a3ea2f364012ef06678118fffdc92442a16bef4a5c8ad4f4019dd8f9ac8876", size = 265359, upload-time = "2026-09-13T19:12:01.953Z" }, { url = "https://files.pythonhosted.org/packages/df/86/ce5ed885fc7ce2adc9a5971134ace257d0f84f19c3d117da89c179b9662e/coverage-7.16.1-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:996c2b891b441ec2b39725ee3e8386e2f11b4894b92be225fdfd54a3eeada2c8", size = 270056, upload-time = "2026-09-13T19:12:04.46Z" }, { url = "https://files.pythonhosted.org/packages/48/a1/5dbd5f95070cece25c6df9e6ea4ded2a87dc695ce82a49bcb2116452b342/coverage-7.16.1-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:a125fac1f6b1e88488d208a86b578e1790e3c4937f2e1568d23356141d236220", size = 265498, upload-time = "2026-09-13T19:12:06.811Z" }, { url = "https://files.pythonhosted.org/packages/8e/ff/254b26f3300f87c7c53ac97da41ae75f0e2ac066aa964bc073c0f3750b38/coverage-7.16.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:b10095528b866d322d33d6bf1709b7f8cbf959f12e8cb2ba22fc59c8717866b0", size = 267459, upload-time = "2026-09-13T19:12:09.479Z" }, { url = "https://files.pythonhosted.org/packages/61/20/bf9958f8ddbbf6a2d39da3d4009f33e0fcf19c2d2fd99715c6494cdc8e8c/coverage-7.16.1-cp315-cp315t-win32.whl", hash = "sha256:531d9be377fdcc05593b974656872eb82e808ebeb42a72515e3aaeb8bb7166f5", size = 226021, upload-time = "2026-09-13T19:12:11.933Z" }, { url = "https://files.pythonhosted.org/packages/35/8f/12d46948704d9e437c8dca2718e5d54ecc2f85396b64b500c29d8dbe10db/coverage-7.16.1-cp315-cp315t-win_amd64.whl", hash = "sha256:46a88f51770df7c9bc376bd57d3f86cdc7624b8e16ac4b585a655c22b7a1b4db", size = 226853, upload-time = "2026-09-13T19:12:14.254Z" }, { url = "https://files.pythonhosted.org/packages/a5/7f/1ca5fd0601054fce5a3539375b997e67683646e2bf62f60c41e70b529fcc/coverage-7.16.1-cp315-cp315t-win_arm64.whl", hash = "sha256:7580432cbe1e8b762660ae5806f04f869e1c02e519836a43f8094437e561e9f0", size = 226163, upload-time = "2026-09-13T19:12:16.589Z" }, { url = "https://files.pythonhosted.org/packages/96/1a/d6d16babd0a5fe4c3fae40702158c570351694e74516d8d81b86c5637448/coverage-7.16.1-py3-none-any.whl", hash = "sha256:3d8bd4e58b6a5c2018d808f297905393c6c61da466a48c3f0596a76a4900ebe4", size = 215264, upload-time = "2026-09-13T19:12:18.895Z" }, ] [[package]] name = "cycler" version = "0.12.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, ] [[package]] name = "dask" version = "2026.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, { name = "cloudpickle" }, { name = "fsspec" }, { name = "importlib-metadata", marker = "python_full_version < '3.12'" }, { name = "packaging" }, { name = "partd" }, { name = "pyyaml" }, { name = "toolz" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d7/2a/5d8cc1579590af86576dde890254440e478c7174b93a02095ecfc2e6ba38/dask-2026.3.0.tar.gz", hash = "sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85", size = 11000710, upload-time = "2026-03-18T07:10:14.945Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl", hash = "sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d", size = 1485630, upload-time = "2026-03-18T07:10:12.832Z" }, ] [package.optional-dependencies] array = [ { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, { name = "numpy", version = "2.5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] diagnostics = [ { name = "bokeh" }, { name = "jinja2" }, ] [[package]] name = "docutils" version = "0.22.4" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/ae/b6/03bb70946330e88ffec97aefd3ea75ba575cb2e762061e0e62a213befee8/docutils-0.22.4.tar.gz", hash = "sha256:4db53b1fde9abecbb74d91230d32ab626d94f6badfc575d6db9194a49df29968", size = 2291750, upload-time = "2025-12-18T19:00:26.443Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/02/10/5da547df7a391dcde17f59520a231527b8571e6f46fc8efb02ccb370ab12/docutils-0.22.4-py3-none-any.whl", hash = "sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de", size = 633196, upload-time = "2025-12-18T19:00:18.077Z" }, ] [[package]] name = "flexcache" version = "0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/55/b0/8a21e330561c65653d010ef112bf38f60890051d244ede197ddaa08e50c1/flexcache-0.3.tar.gz", hash = "sha256:18743bd5a0621bfe2cf8d519e4c3bfdf57a269c15d1ced3fb4b64e0ff4600656", size = 15816, upload-time = "2024-03-09T03:21:07.555Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/27/cd/c883e1a7c447479d6e13985565080e3fea88ab5a107c21684c813dba1875/flexcache-0.3-py3-none-any.whl", hash = "sha256:d43c9fea82336af6e0115e308d9d33a185390b8346a017564611f1466dcd2e32", size = 13263, upload-time = "2024-03-09T03:21:05.635Z" }, ] [[package]] name = "flexparser" version = "0.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/82/99/b4de7e39e8eaf8207ba1a8fa2241dd98b2ba72ae6e16960d8351736d8702/flexparser-0.4.tar.gz", hash = "sha256:266d98905595be2ccc5da964fe0a2c3526fbbffdc45b65b3146d75db992ef6b2", size = 31799, upload-time = "2024-11-07T02:00:56.249Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/fe/5e/3be305568fe5f34448807976dc82fc151d76c3e0e03958f34770286278c1/flexparser-0.4-py3-none-any.whl", hash = "sha256:3738b456192dcb3e15620f324c447721023c0293f6af9955b481e91d00179846", size = 27625, upload-time = "2024-11-07T02:00:54.523Z" }, ] [[package]] name = "fonttools" version = "4.62.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/9a/08/7012b00a9a5874311b639c3920270c36ee0c445b69d9989a85e5c92ebcb0/fonttools-4.62.1.tar.gz", hash = "sha256:e54c75fd6041f1122476776880f7c3c3295ffa31962dc6ebe2543c00dca58b5d", size = 3580737, upload-time = "2026-03-13T13:54:25.52Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/88/39/23ff32561ec8d45a4d48578b4d241369d9270dc50926c017570e60893701/fonttools-4.62.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:40975849bac44fb0b9253d77420c6d8b523ac4dcdcefeff6e4d706838a5b80f7", size = 2871039, upload-time = "2026-03-13T13:52:33.127Z" }, { url = "https://files.pythonhosted.org/packages/24/7f/66d3f8a9338a9b67fe6e1739f47e1cd5cee78bd3bc1206ef9b0b982289a5/fonttools-4.62.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9dde91633f77fa576879a0c76b1d89de373cae751a98ddf0109d54e173b40f14", size = 2416346, upload-time = "2026-03-13T13:52:35.676Z" }, { url = "https://files.pythonhosted.org/packages/aa/53/5276ceba7bff95da7793a07c5284e1da901cf00341ce5e2f3273056c0cca/fonttools-4.62.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6acb4109f8bee00fec985c8c7afb02299e35e9c94b57287f3ea542f28bd0b0a7", size = 5100897, upload-time = "2026-03-13T13:52:38.102Z" }, { url = "https://files.pythonhosted.org/packages/cc/a1/40a5c4d8e28b0851d53a8eeeb46fbd73c325a2a9a165f290a5ed90e6c597/fonttools-4.62.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1c5c25671ce8805e0d080e2ffdeca7f1e86778c5cbfbeae86d7f866d8830517b", size = 5071078, upload-time = "2026-03-13T13:52:41.305Z" }, { url = "https://files.pythonhosted.org/packages/e3/be/d378fca4c65ea1956fee6d90ace6e861776809cbbc5af22388a090c3c092/fonttools-4.62.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a5d8825e1140f04e6c99bb7d37a9e31c172f3bc208afbe02175339e699c710e1", size = 5076908, upload-time = "2026-03-13T13:52:44.122Z" }, { url = "https://files.pythonhosted.org/packages/f8/d9/ae6a1d0693a4185a84605679c8a1f719a55df87b9c6e8e817bfdd9ef5936/fonttools-4.62.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:268abb1cb221e66c014acc234e872b7870d8b5d4657a83a8f4205094c32d2416", size = 5202275, upload-time = "2026-03-13T13:52:46.591Z" }, { url = "https://files.pythonhosted.org/packages/54/6c/af95d9c4efb15cabff22642b608342f2bd67137eea6107202d91b5b03184/fonttools-4.62.1-cp311-cp311-win32.whl", hash = "sha256:942b03094d7edbb99bdf1ae7e9090898cad7bf9030b3d21f33d7072dbcb51a53", size = 2293075, upload-time = "2026-03-13T13:52:48.711Z" }, { url = "https://files.pythonhosted.org/packages/d3/97/bf54c5b3f2be34e1f143e6db838dfdc54f2ffa3e68c738934c82f3b2a08d/fonttools-4.62.1-cp311-cp311-win_amd64.whl", hash = "sha256:e8514f4924375f77084e81467e63238b095abda5107620f49421c368a6017ed2", size = 2344593, upload-time = "2026-03-13T13:52:50.725Z" }, { url = "https://files.pythonhosted.org/packages/47/d4/dbacced3953544b9a93088cc10ef2b596d348c983d5c67a404fa41ec51ba/fonttools-4.62.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:90365821debbd7db678809c7491ca4acd1e0779b9624cdc6ddaf1f31992bf974", size = 2870219, upload-time = "2026-03-13T13:52:53.664Z" }, { url = "https://files.pythonhosted.org/packages/66/9e/a769c8e99b81e5a87ab7e5e7236684de4e96246aae17274e5347d11ebd78/fonttools-4.62.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:12859ff0b47dd20f110804c3e0d0970f7b832f561630cd879969011541a464a9", size = 2414891, upload-time = "2026-03-13T13:52:56.493Z" }, { url = "https://files.pythonhosted.org/packages/69/64/f19a9e3911968c37e1e620e14dfc5778299e1474f72f4e57c5ec771d9489/fonttools-4.62.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c125ffa00c3d9003cdaaf7f2c79e6e535628093e14b5de1dccb08859b680936", size = 5033197, upload-time = "2026-03-13T13:52:59.179Z" }, { url = "https://files.pythonhosted.org/packages/9b/8a/99c8b3c3888c5c474c08dbfd7c8899786de9604b727fcefb055b42c84bba/fonttools-4.62.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:149f7d84afca659d1a97e39a4778794a2f83bf344c5ee5134e09995086cc2392", size = 4988768, upload-time = "2026-03-13T13:53:02.761Z" }, { url = "https://files.pythonhosted.org/packages/d1/c6/0f904540d3e6ab463c1243a0d803504826a11604c72dd58c2949796a1762/fonttools-4.62.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0aa72c43a601cfa9273bb1ae0518f1acadc01ee181a6fc60cd758d7fdadffc04", size = 4971512, upload-time = "2026-03-13T13:53:05.678Z" }, { url = "https://files.pythonhosted.org/packages/29/0b/5cbef6588dc9bd6b5c9ad6a4d5a8ca384d0cea089da31711bbeb4f9654a6/fonttools-4.62.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:19177c8d96c7c36359266e571c5173bcee9157b59cfc8cb0153c5673dc5a3a7d", size = 5122723, upload-time = "2026-03-13T13:53:08.662Z" }, { url = "https://files.pythonhosted.org/packages/4a/47/b3a5342d381595ef439adec67848bed561ab7fdb1019fa522e82101b7d9c/fonttools-4.62.1-cp312-cp312-win32.whl", hash = "sha256:a24decd24d60744ee8b4679d38e88b8303d86772053afc29b19d23bb8207803c", size = 2281278, upload-time = "2026-03-13T13:53:10.998Z" }, { url = "https://files.pythonhosted.org/packages/28/b1/0c2ab56a16f409c6c8a68816e6af707827ad5d629634691ff60a52879792/fonttools-4.62.1-cp312-cp312-win_amd64.whl", hash = "sha256:9e7863e10b3de72376280b515d35b14f5eeed639d1aa7824f4cf06779ec65e42", size = 2331414, upload-time = "2026-03-13T13:53:13.992Z" }, { url = "https://files.pythonhosted.org/packages/3b/56/6f389de21c49555553d6a5aeed5ac9767631497ac836c4f076273d15bd72/fonttools-4.62.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c22b1014017111c401469e3acc5433e6acf6ebcc6aa9efb538a533c800971c79", size = 2865155, upload-time = "2026-03-13T13:53:16.132Z" }, { url = "https://files.pythonhosted.org/packages/03/c5/0e3966edd5ec668d41dfe418787726752bc07e2f5fd8c8f208615e61fa89/fonttools-4.62.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:68959f5fc58ed4599b44aad161c2837477d7f35f5f79402d97439974faebfebe", size = 2412802, upload-time = "2026-03-13T13:53:18.878Z" }, { url = "https://files.pythonhosted.org/packages/52/94/e6ac4b44026de7786fe46e3bfa0c87e51d5d70a841054065d49cd62bb909/fonttools-4.62.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef46db46c9447103b8f3ff91e8ba009d5fe181b1920a83757a5762551e32bb68", size = 5013926, upload-time = "2026-03-13T13:53:21.379Z" }, { url = "https://files.pythonhosted.org/packages/e2/98/8b1e801939839d405f1f122e7d175cebe9aeb4e114f95bfc45e3152af9a7/fonttools-4.62.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6706d1cb1d5e6251a97ad3c1b9347505c5615c112e66047abbef0f8545fa30d1", size = 4964575, upload-time = "2026-03-13T13:53:23.857Z" }, { url = "https://files.pythonhosted.org/packages/46/76/7d051671e938b1881670528fec69cc4044315edd71a229c7fd712eaa5119/fonttools-4.62.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2e7abd2b1e11736f58c1de27819e1955a53267c21732e78243fa2fa2e5c1e069", size = 4953693, upload-time = "2026-03-13T13:53:26.569Z" }, { url = "https://files.pythonhosted.org/packages/1f/ae/b41f8628ec0be3c1b934fc12b84f4576a5c646119db4d3bdd76a217c90b5/fonttools-4.62.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:403d28ce06ebfc547fbcb0cb8b7f7cc2f7a2d3e1a67ba9a34b14632df9e080f9", size = 5094920, upload-time = "2026-03-13T13:53:29.329Z" }, { url = "https://files.pythonhosted.org/packages/f2/f6/53a1e9469331a23dcc400970a27a4caa3d9f6edbf5baab0260285238b884/fonttools-4.62.1-cp313-cp313-win32.whl", hash = "sha256:93c316e0f5301b2adbe6a5f658634307c096fd5aae60a5b3412e4f3e1728ab24", size = 2279928, upload-time = "2026-03-13T13:53:32.352Z" }, { url = "https://files.pythonhosted.org/packages/38/60/35186529de1db3c01f5ad625bde07c1f576305eab6d86bbda4c58445f721/fonttools-4.62.1-cp313-cp313-win_amd64.whl", hash = "sha256:7aa21ff53e28a9c2157acbc44e5b401149d3c9178107130e82d74ceb500e5056", size = 2330514, upload-time = "2026-03-13T13:53:34.991Z" }, { url = "https://files.pythonhosted.org/packages/36/f0/2888cdac391807d68d90dcb16ef858ddc1b5309bfc6966195a459dd326e2/fonttools-4.62.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fa1d16210b6b10a826d71bed68dd9ec24a9e218d5a5e2797f37c573e7ec215ca", size = 2864442, upload-time = "2026-03-13T13:53:37.509Z" }, { url = "https://files.pythonhosted.org/packages/4b/b2/e521803081f8dc35990816b82da6360fa668a21b44da4b53fc9e77efcd62/fonttools-4.62.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:aa69d10ed420d8121118e628ad47d86e4caa79ba37f968597b958f6cceab7eca", size = 2410901, upload-time = "2026-03-13T13:53:40.55Z" }, { url = "https://files.pythonhosted.org/packages/00/a4/8c3511ff06e53110039358dbbdc1a65d72157a054638387aa2ada300a8b8/fonttools-4.62.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd13b7999d59c5eb1c2b442eb2d0c427cb517a0b7a1f5798fc5c9e003f5ff782", size = 4999608, upload-time = "2026-03-13T13:53:42.798Z" }, { url = "https://files.pythonhosted.org/packages/28/63/cd0c3b26afe60995a5295f37c246a93d454023726c3261cfbb3559969bb9/fonttools-4.62.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8d337fdd49a79b0d51c4da87bc38169d21c3abbf0c1aa9367eff5c6656fb6dae", size = 4912726, upload-time = "2026-03-13T13:53:45.405Z" }, { url = "https://files.pythonhosted.org/packages/70/b9/ac677cb07c24c685cf34f64e140617d58789d67a3dd524164b63648c6114/fonttools-4.62.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d241cdc4a67b5431c6d7f115fdf63335222414995e3a1df1a41e1182acd4bcc7", size = 4951422, upload-time = "2026-03-13T13:53:48.326Z" }, { url = "https://files.pythonhosted.org/packages/e6/10/11c08419a14b85b7ca9a9faca321accccc8842dd9e0b1c8a72908de05945/fonttools-4.62.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c05557a78f8fa514da0f869556eeda40887a8abc77c76ee3f74cf241778afd5a", size = 5060979, upload-time = "2026-03-13T13:53:51.366Z" }, { url = "https://files.pythonhosted.org/packages/4e/3c/12eea4a4cf054e7ab058ed5ceada43b46809fce2bf319017c4d63ae55bb4/fonttools-4.62.1-cp314-cp314-win32.whl", hash = "sha256:49a445d2f544ce4a69338694cad575ba97b9a75fff02720da0882d1a73f12800", size = 2283733, upload-time = "2026-03-13T13:53:53.606Z" }, { url = "https://files.pythonhosted.org/packages/6b/67/74b070029043186b5dd13462c958cb7c7f811be0d2e634309d9a1ffb1505/fonttools-4.62.1-cp314-cp314-win_amd64.whl", hash = "sha256:1eecc128c86c552fb963fe846ca4e011b1be053728f798185a1687502f6d398e", size = 2335663, upload-time = "2026-03-13T13:53:56.23Z" }, { url = "https://files.pythonhosted.org/packages/42/c5/4d2ed3ca6e33617fc5624467da353337f06e7f637707478903c785bd8e20/fonttools-4.62.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1596aeaddf7f78e21e68293c011316a25267b3effdaccaf4d59bc9159d681b82", size = 2947288, upload-time = "2026-03-13T13:53:59.397Z" }, { url = "https://files.pythonhosted.org/packages/1f/e9/7ab11ddfda48ed0f89b13380e5595ba572619c27077be0b2c447a63ff351/fonttools-4.62.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:8f8fca95d3bb3208f59626a4b0ea6e526ee51f5a8ad5d91821c165903e8d9260", size = 2449023, upload-time = "2026-03-13T13:54:01.642Z" }, { url = "https://files.pythonhosted.org/packages/b2/10/a800fa090b5e8819942e54e19b55fc7c21fe14a08757c3aa3ca8db358939/fonttools-4.62.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee91628c08e76f77b533d65feb3fbe6d9dad699f95be51cf0d022db94089cdc4", size = 5137599, upload-time = "2026-03-13T13:54:04.495Z" }, { url = "https://files.pythonhosted.org/packages/37/dc/8ccd45033fffd74deb6912fa1ca524643f584b94c87a16036855b498a1ed/fonttools-4.62.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5f37df1cac61d906e7b836abe356bc2f34c99d4477467755c216b72aa3dc748b", size = 4920933, upload-time = "2026-03-13T13:54:07.557Z" }, { url = "https://files.pythonhosted.org/packages/99/eb/e618adefb839598d25ac8136cd577925d6c513dc0d931d93b8af956210f0/fonttools-4.62.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:92bb00a947e666169c99b43753c4305fc95a890a60ef3aeb2a6963e07902cc87", size = 5016232, upload-time = "2026-03-13T13:54:10.611Z" }, { url = "https://files.pythonhosted.org/packages/d9/5f/9b5c9bfaa8ec82def8d8168c4f13615990d6ce5996fe52bd49bfb5e05134/fonttools-4.62.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:bdfe592802ef939a0e33106ea4a318eeb17822c7ee168c290273cbd5fabd746c", size = 5042987, upload-time = "2026-03-13T13:54:13.569Z" }, { url = "https://files.pythonhosted.org/packages/90/aa/dfbbe24c6a6afc5c203d90cc0343e24bcbb09e76d67c4d6eef8c2558d7ba/fonttools-4.62.1-cp314-cp314t-win32.whl", hash = "sha256:b820fcb92d4655513d8402d5b219f94481c4443d825b4372c75a2072aa4b357a", size = 2348021, upload-time = "2026-03-13T13:54:16.98Z" }, { url = "https://files.pythonhosted.org/packages/13/6f/ae9c4e4dd417948407b680855c2c7790efb52add6009aaecff1e3bc50e8e/fonttools-4.62.1-cp314-cp314t-win_amd64.whl", hash = "sha256:59b372b4f0e113d3746b88985f1c796e7bf830dd54b28374cd85c2b8acd7583e", size = 2414147, upload-time = "2026-03-13T13:54:19.416Z" }, { url = "https://files.pythonhosted.org/packages/fd/ba/56147c165442cc5ba7e82ecf301c9a68353cede498185869e6e02b4c264f/fonttools-4.62.1-py3-none-any.whl", hash = "sha256:7487782e2113861f4ddcc07c3436450659e3caa5e470b27dc2177cade2d8e7fd", size = 1152647, upload-time = "2026-03-13T13:54:22.735Z" }, ] [[package]] name = "fsspec" version = "2026.6.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/10/a1/ae4e3e5003468d6391d2c77b6fa1cd73bd5d13511d81c642d7b28ac90ed4/fsspec-2026.6.0.tar.gz", hash = "sha256:f5bac145310fe30e16e1471bd6840b2d990d609e872251d7e674241822abf01a", size = 313646, upload-time = "2026-06-16T01:57:28.105Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/e5/22/4222d7ddf3da30f363edaa98e329c2bce6c65497c9cb2810931c8b2c0fbc/fsspec-2026.6.0-py3-none-any.whl", hash = "sha256:02e0b71817df9b2169dc30a16832045764def1191b43dcff5bb85bdee212d2a1", size = 203949, upload-time = "2026-06-16T01:57:26.358Z" }, ] [[package]] name = "h5py" version = "3.16.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, { name = "numpy", version = "2.5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/db/33/acd0ce6863b6c0d7735007df01815403f5589a21ff8c2e1ee2587a38f548/h5py-3.16.0.tar.gz", hash = "sha256:a0dbaad796840ccaa67a4c144a0d0c8080073c34c76d5a6941d6818678ef2738", size = 446526, upload-time = "2026-03-06T13:49:08.07Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/ba/95/a825894f3e45cbac7554c4e97314ce886b233a20033787eda755ca8fecc7/h5py-3.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:719439d14b83f74eeb080e9650a6c7aa6d0d9ea0ca7f804347b05fac6fbf18af", size = 3721663, upload-time = "2026-03-06T13:47:49.599Z" }, { url = "https://files.pythonhosted.org/packages/bf/3b/38ff88b347c3e346cda1d3fc1b65a7aa75d40632228d8b8a5d7b58508c24/h5py-3.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c3f0a0e136f2e95dd0b67146abb6668af4f1a69c81ef8651a2d316e8e01de447", size = 3087630, upload-time = "2026-03-06T13:47:51.249Z" }, { url = "https://files.pythonhosted.org/packages/98/a8/2594cef906aee761601eff842c7dc598bea2b394a3e1c00966832b8eeb7c/h5py-3.16.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:a6fbc5367d4046801f9b7db9191b31895f22f1c6df1f9987d667854cac493538", size = 4823472, upload-time = "2026-03-06T13:47:53.085Z" }, { url = "https://files.pythonhosted.org/packages/52/a0/c1f604538ff6db22a0690be2dc44ab59178e115f63c917794e529356ab23/h5py-3.16.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:fb1720028d99040792bb2fb31facb8da44a6f29df7697e0b84f0d79aff2e9bd3", size = 5027150, upload-time = "2026-03-06T13:47:55.043Z" }, { url = "https://files.pythonhosted.org/packages/2e/fd/301739083c2fc4fd89950f9bcfce75d6e14b40b0ca3d40e48a8993d1722c/h5py-3.16.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:314b6054fe0b1051c2b0cb2df5cbdab15622fb05e80f202e3b6a5eee0d6fe365", size = 4814544, upload-time = "2026-03-06T13:47:56.893Z" }, { url = "https://files.pythonhosted.org/packages/4c/42/2193ed41ccee78baba8fcc0cff2c925b8b9ee3793305b23e1f22c20bf4c7/h5py-3.16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ffbab2fedd6581f6aa31cf1639ca2cb86e02779de525667892ebf4cc9fd26434", size = 5034013, upload-time = "2026-03-06T13:47:59.01Z" }, { url = "https://files.pythonhosted.org/packages/f7/20/e6c0ff62ca2ad1a396a34f4380bafccaaf8791ff8fccf3d995a1fc12d417/h5py-3.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:17d1f1630f92ad74494a9a7392ab25982ce2b469fc62da6074c0ce48366a2999", size = 3191673, upload-time = "2026-03-06T13:48:00.626Z" }, { url = "https://files.pythonhosted.org/packages/f2/48/239cbe352ac4f2b8243a8e620fa1a2034635f633731493a7ff1ed71e8658/h5py-3.16.0-cp311-cp311-win_arm64.whl", hash = "sha256:85b9c49dd58dc44cf70af944784e2c2038b6f799665d0dcbbc812a26e0faa859", size = 2673834, upload-time = "2026-03-06T13:48:02.579Z" }, { url = "https://files.pythonhosted.org/packages/c8/c0/5d4119dba94093bbafede500d3defd2f5eab7897732998c04b54021e530b/h5py-3.16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c5313566f4643121a78503a473f0fb1e6dcc541d5115c44f05e037609c565c4d", size = 3685604, upload-time = "2026-03-06T13:48:04.198Z" }, { url = "https://files.pythonhosted.org/packages/b0/42/c84efcc1d4caebafb1ecd8be4643f39c85c47a80fe254d92b8b43b1eadaf/h5py-3.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:42b012933a83e1a558c673176676a10ce2fd3759976a0fedee1e672d1e04fc9d", size = 3061940, upload-time = "2026-03-06T13:48:05.783Z" }, { url = "https://files.pythonhosted.org/packages/89/84/06281c82d4d1686fde1ac6b0f307c50918f1c0151062445ab3b6fa5a921d/h5py-3.16.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:ff24039e2573297787c3063df64b60aab0591980ac898329a08b0320e0cf2527", size = 5198852, upload-time = "2026-03-06T13:48:07.482Z" }, { url = "https://files.pythonhosted.org/packages/9e/e9/1a19e42cd43cc1365e127db6aae85e1c671da1d9a5d746f4d34a50edb577/h5py-3.16.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:dfc21898ff025f1e8e67e194965a95a8d4754f452f83454538f98f8a3fcb207e", size = 5405250, upload-time = "2026-03-06T13:48:09.628Z" }, { url = "https://files.pythonhosted.org/packages/b7/8e/9790c1655eabeb85b92b1ecab7d7e62a2069e53baefd58c98f0909c7a948/h5py-3.16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:698dd69291272642ffda44a0ecd6cd3bda5faf9621452d255f57ce91487b9794", size = 5190108, upload-time = "2026-03-06T13:48:11.26Z" }, { url = "https://files.pythonhosted.org/packages/51/d7/ab693274f1bd7e8c5f9fdd6c7003a88d59bedeaf8752716a55f532924fbb/h5py-3.16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2b2c02b0a160faed5fb33f1ba8a264a37ee240b22e049ecc827345d0d9043074", size = 5419216, upload-time = "2026-03-06T13:48:13.322Z" }, { url = "https://files.pythonhosted.org/packages/03/c1/0976b235cf29ead553e22f2fb6385a8252b533715e00d0ae52ed7b900582/h5py-3.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:96b422019a1c8975c2d5dadcf61d4ba6f01c31f92bbde6e4649607885fe502d6", size = 3182868, upload-time = "2026-03-06T13:48:15.759Z" }, { url = "https://files.pythonhosted.org/packages/14/d9/866b7e570b39070f92d47b0ff1800f0f8239b6f9e45f02363d7112336c1f/h5py-3.16.0-cp312-cp312-win_arm64.whl", hash = "sha256:39c2838fb1e8d97bcf1755e60ad1f3dd76a7b2a475928dc321672752678b96db", size = 2653286, upload-time = "2026-03-06T13:48:17.279Z" }, { url = "https://files.pythonhosted.org/packages/0f/9e/6142ebfda0cb6e9349c091eae73c2e01a770b7659255248d637bec54a88b/h5py-3.16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:370a845f432c2c9619db8eed334d1e610c6015796122b0e57aa46312c22617d9", size = 3671808, upload-time = "2026-03-06T13:48:19.737Z" }, { url = "https://files.pythonhosted.org/packages/b0/65/5e088a45d0f43cd814bc5bec521c051d42005a472e804b1a36c48dada09b/h5py-3.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:42108e93326c50c2810025aade9eac9d6827524cdccc7d4b75a546e5ab308edb", size = 3045837, upload-time = "2026-03-06T13:48:21.854Z" }, { url = "https://files.pythonhosted.org/packages/da/1e/6172269e18cc5a484e2913ced33339aad588e02ba407fafd00d369e22ef3/h5py-3.16.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:099f2525c9dcf28de366970a5fb34879aab20491589fa89ce2863a84218bb524", size = 5193860, upload-time = "2026-03-06T13:48:24.071Z" }, { url = "https://files.pythonhosted.org/packages/bd/98/ef2b6fe2903e377cbe870c3b2800d62552f1e3dbe81ce49e1923c53d1c5c/h5py-3.16.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:9300ad32dea9dfc5171f94d5f6948e159ed93e4701280b0f508773b3f582f402", size = 5400417, upload-time = "2026-03-06T13:48:25.728Z" }, { url = "https://files.pythonhosted.org/packages/bc/81/5b62d760039eed64348c98129d17061fdfc7839fc9c04eaaad6dee1004e4/h5py-3.16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:171038f23bccddfc23f344cadabdfc9917ff554db6a0d417180d2747fe4c75a7", size = 5185214, upload-time = "2026-03-06T13:48:27.436Z" }, { url = "https://files.pythonhosted.org/packages/28/c4/532123bcd9080e250696779c927f2cb906c8bf3447df98f5ceb8dcded539/h5py-3.16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7e420b539fb6023a259a1b14d4c9f6df8cf50d7268f48e161169987a57b737ff", size = 5414598, upload-time = "2026-03-06T13:48:29.49Z" }, { url = "https://files.pythonhosted.org/packages/c3/d9/a27997f84341fc0dfcdd1fe4179b6ba6c32a7aa880fdb8c514d4dad6fba3/h5py-3.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:18f2bbcd545e6991412253b98727374c356d67caa920e68dc79eab36bf5fedad", size = 3175509, upload-time = "2026-03-06T13:48:31.131Z" }, { url = "https://files.pythonhosted.org/packages/a5/23/bb8647521d4fd770c30a76cfc6cb6a2f5495868904054e92f2394c5a78ff/h5py-3.16.0-cp313-cp313-win_arm64.whl", hash = "sha256:656f00e4d903199a1d58df06b711cf3ca632b874b4207b7dbec86185b5c8c7d4", size = 2647362, upload-time = "2026-03-06T13:48:33.411Z" }, { url = "https://files.pythonhosted.org/packages/48/3c/7fcd9b4c9eed82e91fb15568992561019ae7a829d1f696b2c844355d95dd/h5py-3.16.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:9c9d307c0ef862d1cd5714f72ecfafe0a5d7529c44845afa8de9f46e5ba8bd65", size = 3678608, upload-time = "2026-03-06T13:48:35.183Z" }, { url = "https://files.pythonhosted.org/packages/6a/b7/9366ed44ced9b7ef357ab48c94205280276db9d7f064aa3012a97227e966/h5py-3.16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8c1eff849cdd53cbc73c214c30ebdb6f1bb8b64790b4b4fc36acdb5e43570210", size = 3054773, upload-time = "2026-03-06T13:48:37.139Z" }, { url = "https://files.pythonhosted.org/packages/58/a5/4964bc0e91e86340c2bbda83420225b2f770dcf1eb8a39464871ad769436/h5py-3.16.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:e2c04d129f180019e216ee5f9c40b78a418634091c8782e1f723a6ca3658b965", size = 5198886, upload-time = "2026-03-06T13:48:38.879Z" }, { url = "https://files.pythonhosted.org/packages/f1/16/d905e7f53e661ce2c24686c38048d8e2b750ffc4350009d41c4e6c6c9826/h5py-3.16.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:e4360f15875a532bc7b98196c7592ed4fc92672a57c0a621355961cafb17a6dd", size = 5404883, upload-time = "2026-03-06T13:48:41.324Z" }, { url = "https://files.pythonhosted.org/packages/4b/f2/58f34cb74af46d39f4cd18ea20909a8514960c5a3e5b92fd06a28161e0a8/h5py-3.16.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:3fae9197390c325e62e0a1aa977f2f62d994aa87aab182abbea85479b791197c", size = 5192039, upload-time = "2026-03-06T13:48:43.117Z" }, { url = "https://files.pythonhosted.org/packages/ce/ca/934a39c24ce2e2db017268c08da0537c20fa0be7e1549be3e977313fc8f5/h5py-3.16.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:43259303989ac8adacc9986695b31e35dba6fd1e297ff9c6a04b7da5542139cc", size = 5421526, upload-time = "2026-03-06T13:48:44.838Z" }, { url = "https://files.pythonhosted.org/packages/3e/14/615a450205e1b56d16c6783f5ccd116cde05550faad70ae077c955654a75/h5py-3.16.0-cp314-cp314-win_amd64.whl", hash = "sha256:fa48993a0b799737ba7fd21e2350fa0a60701e58180fae9f2de834bc39a147ab", size = 3183263, upload-time = "2026-03-06T13:48:47.117Z" }, { url = "https://files.pythonhosted.org/packages/7b/48/a6faef5ed632cae0c65ac6b214a6614a0b510c3183532c521bdb0055e117/h5py-3.16.0-cp314-cp314-win_arm64.whl", hash = "sha256:1897a771a7f40d05c262fc8f37376ec37873218544b70216872876c627640f63", size = 2663450, upload-time = "2026-03-06T13:48:48.707Z" }, { url = "https://files.pythonhosted.org/packages/5d/32/0c8bb8aedb62c772cf7c1d427c7d1951477e8c2835f872bc0a13d1f85f86/h5py-3.16.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:15922e485844f77c0b9d275396d435db3baa58292a9c2176a386e072e0cf2491", size = 3760693, upload-time = "2026-03-06T13:48:50.453Z" }, { url = "https://files.pythonhosted.org/packages/1d/1f/fcc5977d32d6387c5c9a694afee716a5e20658ac08b3ff24fdec79fb05f2/h5py-3.16.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:df02dd29bd247f98674634dfe41f89fd7c16ba3d7de8695ec958f58404a4e618", size = 3181305, upload-time = "2026-03-06T13:48:52.221Z" }, { url = "https://files.pythonhosted.org/packages/f5/a1/af87f64b9f986889884243643621ebbd4ac72472ba8ec8cec891ac8e2ca1/h5py-3.16.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:0f456f556e4e2cebeebd9d66adf8dc321770a42593494a0b6f0af54a7567b242", size = 5074061, upload-time = "2026-03-06T13:48:54.089Z" }, { url = "https://files.pythonhosted.org/packages/cc/d0/146f5eaff3dc246a9c7f6e5e4f42bd45cc613bce16693bcd4d1f7c958bf5/h5py-3.16.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:3e6cb3387c756de6a9492d601553dffea3fe11b5f22b443aac708c69f3f55e16", size = 5279216, upload-time = "2026-03-06T13:48:56.75Z" }, { url = "https://files.pythonhosted.org/packages/a1/9d/12a13424f1e604fc7df9497b73c0356fb78c2fb206abd7465ce47226e8fd/h5py-3.16.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8389e13a1fd745ad2856873e8187fd10268b2d9677877bb667b41aebd771d8b7", size = 5070068, upload-time = "2026-03-06T13:48:59.169Z" }, { url = "https://files.pythonhosted.org/packages/41/8c/bbe98f813722b4873818a8db3e15aa3e625b59278566905ac439725e8070/h5py-3.16.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:346df559a0f7dcb31cf8e44805319e2ab24b8957c45e7708ce503b2ec79ba725", size = 5300253, upload-time = "2026-03-06T13:49:02.033Z" }, { url = "https://files.pythonhosted.org/packages/32/9e/87e6705b4d6890e7cecdf876e2a7d3e40654a2ae37482d79a6f1b87f7b92/h5py-3.16.0-cp314-cp314t-win_amd64.whl", hash = "sha256:4c6ab014ab704b4feaa719ae783b86522ed0bf1f82184704ed3c9e4e3228796e", size = 3381671, upload-time = "2026-03-06T13:49:04.351Z" }, { url = "https://files.pythonhosted.org/packages/96/91/9fad90cfc5f9b2489c7c26ad897157bce82f0e9534a986a221b99760b23b/h5py-3.16.0-cp314-cp314t-win_arm64.whl", hash = "sha256:faca8fb4e4319c09d83337adc80b2ca7d5c5a343c2d6f1b6388f32cfecca13c1", size = 2740706, upload-time = "2026-03-06T13:49:06.347Z" }, ] [[package]] name = "idna" version = "3.15" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/82/77/7b3966d0b9d1d31a36ddf1746926a11dface89a83409bf1483f0237aa758/idna-3.15.tar.gz", hash = "sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc", size = 199245, upload-time = "2026-05-12T22:45:57.011Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl", hash = "sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8", size = 72340, upload-time = "2026-05-12T22:45:55.733Z" }, ] [[package]] name = "imagesize" version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/6c/e6/7bf14eeb8f8b7251141944835abd42eb20a658d89084b7e1f3e5fe394090/imagesize-2.0.0.tar.gz", hash = "sha256:8e8358c4a05c304f1fccf7ff96f036e7243a189e9e42e90851993c558cfe9ee3", size = 1773045, upload-time = "2026-03-03T14:18:29.941Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/5f/53/fb7122b71361a0d121b669dcf3d31244ef75badbbb724af388948de543e2/imagesize-2.0.0-py2.py3-none-any.whl", hash = "sha256:5667c5bbb57ab3f1fa4bc366f4fbc971db3d5ed011fd2715fd8001f782718d96", size = 9441, upload-time = "2026-03-03T14:18:27.892Z" }, ] [[package]] name = "importlib-metadata" version = "9.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "zipp" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a9/01/15bb152d77b21318514a96f43af312635eb2500c96b55398d020c93d86ea/importlib_metadata-9.0.0.tar.gz", hash = "sha256:a4f57ab599e6a2e3016d7595cfd72eb4661a5106e787a95bcc90c7105b831efc", size = 56405, upload-time = "2026-03-20T06:42:56.999Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl", hash = "sha256:2d21d1cc5a017bd0559e36150c21c830ab1dc304dedd1b7ea85d20f45ef3edd7", size = 27789, upload-time = "2026-03-20T06:42:55.665Z" }, ] [[package]] name = "iniconfig" version = "2.3.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, ] [[package]] name = "jinja2" version = "3.1.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, ] [[package]] name = "kiwisolver" version = "1.5.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d0/67/9c61eccb13f0bdca9307614e782fec49ffdde0f7a2314935d489fa93cd9c/kiwisolver-1.5.0.tar.gz", hash = "sha256:d4193f3d9dc3f6f79aaed0e5637f45d98850ebf01f7ca20e69457f3e8946b66a", size = 103482, upload-time = "2026-03-09T13:15:53.382Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/12/dd/a495a9c104be1c476f0386e714252caf2b7eca883915422a64c50b88c6f5/kiwisolver-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9eed0f7edbb274413b6ee781cca50541c8c0facd3d6fd289779e494340a2b85c", size = 122798, upload-time = "2026-03-09T13:12:58.963Z" }, { url = "https://files.pythonhosted.org/packages/11/60/37b4047a2af0cf5ef6d8b4b26e91829ae6fc6a2d1f74524bcb0e7cd28a32/kiwisolver-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c4923e404d6bcd91b6779c009542e5647fef32e4a5d75e115e3bbac6f2335eb", size = 66216, upload-time = "2026-03-09T13:13:00.155Z" }, { url = "https://files.pythonhosted.org/packages/0a/aa/510dc933d87767584abfe03efa445889996c70c2990f6f87c3ebaa0a18c5/kiwisolver-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0df54df7e686afa55e6f21fb86195224a6d9beb71d637e8d7920c95cf0f89aac", size = 63911, upload-time = "2026-03-09T13:13:01.671Z" }, { url = "https://files.pythonhosted.org/packages/80/46/bddc13df6c2a40741e0cc7865bb1c9ed4796b6760bd04ce5fae3928ef917/kiwisolver-1.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2517e24d7315eb51c10664cdb865195df38ab74456c677df67bb47f12d088a27", size = 1438209, upload-time = "2026-03-09T13:13:03.385Z" }, { url = "https://files.pythonhosted.org/packages/fd/d6/76621246f5165e5372f02f5e6f3f48ea336a8f9e96e43997d45b240ed8cd/kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff710414307fefa903e0d9bdf300972f892c23477829f49504e59834f4195398", size = 1248888, upload-time = "2026-03-09T13:13:05.231Z" }, { url = "https://files.pythonhosted.org/packages/b2/c1/31559ec6fb39a5b48035ce29bb63ade628f321785f38c384dee3e2c08bc1/kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6176c1811d9d5a04fa391c490cc44f451e240697a16977f11c6f722efb9041db", size = 1266304, upload-time = "2026-03-09T13:13:06.743Z" }, { url = "https://files.pythonhosted.org/packages/5e/ef/1cb8276f2d29cc6a41e0a042f27946ca347d3a4a75acf85d0a16aa6dcc82/kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50847dca5d197fcbd389c805aa1a1cf32f25d2e7273dc47ab181a517666b68cc", size = 1319650, upload-time = "2026-03-09T13:13:08.607Z" }, { url = "https://files.pythonhosted.org/packages/4c/e4/5ba3cecd7ce6236ae4a80f67e5d5531287337d0e1f076ca87a5abe4cd5d0/kiwisolver-1.5.0-cp311-cp311-manylinux_2_39_riscv64.whl", hash = "sha256:01808c6d15f4c3e8559595d6d1fe6411c68e4a3822b4b9972b44473b24f4e679", size = 970949, upload-time = "2026-03-09T13:13:10.299Z" }, { url = "https://files.pythonhosted.org/packages/5a/69/dc61f7ae9a2f071f26004ced87f078235b5507ab6e5acd78f40365655034/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f1f9f4121ec58628c96baa3de1a55a4e3a333c5102c8e94b64e23bf7b2083309", size = 2199125, upload-time = "2026-03-09T13:13:11.841Z" }, { url = "https://files.pythonhosted.org/packages/e5/7b/abbe0f1b5afa85f8d084b73e90e5f801c0939eba16ac2e49af7c61a6c28d/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b7d335370ae48a780c6e6a6bbfa97342f563744c39c35562f3f367665f5c1de2", size = 2293783, upload-time = "2026-03-09T13:13:14.399Z" }, { url = "https://files.pythonhosted.org/packages/8a/80/5908ae149d96d81580d604c7f8aefd0e98f4fd728cf172f477e9f2a81744/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:800ee55980c18545af444d93fdd60c56b580db5cc54867d8cbf8a1dc0829938c", size = 1960726, upload-time = "2026-03-09T13:13:16.047Z" }, { url = "https://files.pythonhosted.org/packages/84/08/a78cb776f8c085b7143142ce479859cfec086bd09ee638a317040b6ef420/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c438f6ca858697c9ab67eb28246c92508af972e114cac34e57a6d4ba17a3ac08", size = 2464738, upload-time = "2026-03-09T13:13:17.897Z" }, { url = "https://files.pythonhosted.org/packages/b1/e1/65584da5356ed6cb12c63791a10b208860ac40a83de165cb6a6751a686e3/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8c63c91f95173f9c2a67c7c526b2cea976828a0e7fced9cdcead2802dc10f8a4", size = 2270718, upload-time = "2026-03-09T13:13:19.421Z" }, { url = "https://files.pythonhosted.org/packages/be/6c/28f17390b62b8f2f520e2915095b3c94d88681ecf0041e75389d9667f202/kiwisolver-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:beb7f344487cdcb9e1efe4b7a29681b74d34c08f0043a327a74da852a6749e7b", size = 73480, upload-time = "2026-03-09T13:13:20.818Z" }, { url = "https://files.pythonhosted.org/packages/d8/0e/2ee5debc4f77a625778fec5501ff3e8036fe361b7ee28ae402a485bb9694/kiwisolver-1.5.0-cp311-cp311-win_arm64.whl", hash = "sha256:ad4ae4ffd1ee9cd11357b4c66b612da9888f4f4daf2f36995eda64bd45370cac", size = 64930, upload-time = "2026-03-09T13:13:21.997Z" }, { url = "https://files.pythonhosted.org/packages/4d/b2/818b74ebea34dabe6d0c51cb1c572e046730e64844da6ed646d5298c40ce/kiwisolver-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4e9750bc21b886308024f8a54ccb9a2cc38ac9fa813bf4348434e3d54f337ff9", size = 123158, upload-time = "2026-03-09T13:13:23.127Z" }, { url = "https://files.pythonhosted.org/packages/bf/d9/405320f8077e8e1c5c4bd6adc45e1e6edf6d727b6da7f2e2533cf58bff71/kiwisolver-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:72ec46b7eba5b395e0a7b63025490d3214c11013f4aacb4f5e8d6c3041829588", size = 66388, upload-time = "2026-03-09T13:13:24.765Z" }, { url = "https://files.pythonhosted.org/packages/99/9f/795fedf35634f746151ca8839d05681ceb6287fbed6cc1c9bf235f7887c2/kiwisolver-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ed3a984b31da7481b103f68776f7128a89ef26ed40f4dc41a2223cda7fb24819", size = 64068, upload-time = "2026-03-09T13:13:25.878Z" }, { url = "https://files.pythonhosted.org/packages/c4/13/680c54afe3e65767bed7ec1a15571e1a2f1257128733851ade24abcefbcc/kiwisolver-1.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb5136fb5352d3f422df33f0c879a1b0c204004324150cc3b5e3c4f310c9049f", size = 1477934, upload-time = "2026-03-09T13:13:27.166Z" }, { url = "https://files.pythonhosted.org/packages/c8/2f/cebfcdb60fd6a9b0f6b47a9337198bcbad6fbe15e68189b7011fd914911f/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2af221f268f5af85e776a73d62b0845fc8baf8ef0abfae79d29c77d0e776aaf", size = 1278537, upload-time = "2026-03-09T13:13:28.707Z" }, { url = "https://files.pythonhosted.org/packages/f2/0d/9b782923aada3fafb1d6b84e13121954515c669b18af0c26e7d21f579855/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b0f172dc8ffaccb8522d7c5d899de00133f2f1ca7b0a49b7da98e901de87bf2d", size = 1296685, upload-time = "2026-03-09T13:13:30.528Z" }, { url = "https://files.pythonhosted.org/packages/27/70/83241b6634b04fe44e892688d5208332bde130f38e610c0418f9ede47ded/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6ab8ba9152203feec73758dad83af9a0bbe05001eb4639e547207c40cfb52083", size = 1346024, upload-time = "2026-03-09T13:13:32.818Z" }, { url = "https://files.pythonhosted.org/packages/e4/db/30ed226fb271ae1a6431fc0fe0edffb2efe23cadb01e798caeb9f2ceae8f/kiwisolver-1.5.0-cp312-cp312-manylinux_2_39_riscv64.whl", hash = "sha256:cdee07c4d7f6d72008d3f73b9bf027f4e11550224c7c50d8df1ae4a37c1402a6", size = 987241, upload-time = "2026-03-09T13:13:34.435Z" }, { url = "https://files.pythonhosted.org/packages/ec/bd/c314595208e4c9587652d50959ead9e461995389664e490f4dce7ff0f782/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7c60d3c9b06fb23bd9c6139281ccbdc384297579ae037f08ae90c69f6845c0b1", size = 2227742, upload-time = "2026-03-09T13:13:36.4Z" }, { url = "https://files.pythonhosted.org/packages/c1/43/0499cec932d935229b5543d073c2b87c9c22846aab48881e9d8d6e742a2d/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e315e5ec90d88e140f57696ff85b484ff68bb311e36f2c414aa4286293e6dee0", size = 2323966, upload-time = "2026-03-09T13:13:38.204Z" }, { url = "https://files.pythonhosted.org/packages/3d/6f/79b0d760907965acfd9d61826a3d41f8f093c538f55cd2633d3f0db269f6/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:1465387ac63576c3e125e5337a6892b9e99e0627d52317f3ca79e6930d889d15", size = 1977417, upload-time = "2026-03-09T13:13:39.966Z" }, { url = "https://files.pythonhosted.org/packages/ab/31/01d0537c41cb75a551a438c3c7a80d0c60d60b81f694dac83dd436aec0d0/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:530a3fd64c87cffa844d4b6b9768774763d9caa299e9b75d8eca6a4423b31314", size = 2491238, upload-time = "2026-03-09T13:13:41.698Z" }, { url = "https://files.pythonhosted.org/packages/e4/34/8aefdd0be9cfd00a44509251ba864f5caf2991e36772e61c408007e7f417/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1d9daea4ea6b9be74fe2f01f7fbade8d6ffab263e781274cffca0dba9be9eec9", size = 2294947, upload-time = "2026-03-09T13:13:43.343Z" }, { url = "https://files.pythonhosted.org/packages/ad/cf/0348374369ca588f8fe9c338fae49fa4e16eeb10ffb3d012f23a54578a9e/kiwisolver-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:f18c2d9782259a6dc132fdc7a63c168cbc74b35284b6d75c673958982a378384", size = 73569, upload-time = "2026-03-09T13:13:45.792Z" }, { url = "https://files.pythonhosted.org/packages/28/26/192b26196e2316e2bd29deef67e37cdf9870d9af8e085e521afff0fed526/kiwisolver-1.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:f7c7553b13f69c1b29a5bde08ddc6d9d0c8bfb84f9ed01c30db25944aeb852a7", size = 64997, upload-time = "2026-03-09T13:13:46.878Z" }, { url = "https://files.pythonhosted.org/packages/9d/69/024d6711d5ba575aa65d5538042e99964104e97fa153a9f10bc369182bc2/kiwisolver-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fd40bb9cd0891c4c3cb1ddf83f8bbfa15731a248fdc8162669405451e2724b09", size = 123166, upload-time = "2026-03-09T13:13:48.032Z" }, { url = "https://files.pythonhosted.org/packages/ce/48/adbb40df306f587054a348831220812b9b1d787aff714cfbc8556e38fccd/kiwisolver-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c0e1403fd7c26d77c1f03e096dc58a5c726503fa0db0456678b8668f76f521e3", size = 66395, upload-time = "2026-03-09T13:13:49.365Z" }, { url = "https://files.pythonhosted.org/packages/a8/3a/d0a972b34e1c63e2409413104216cd1caa02c5a37cb668d1687d466c1c45/kiwisolver-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dda366d548e89a90d88a86c692377d18d8bd64b39c1fb2b92cb31370e2896bbd", size = 64065, upload-time = "2026-03-09T13:13:50.562Z" }, { url = "https://files.pythonhosted.org/packages/2b/0a/7b98e1e119878a27ba8618ca1e18b14f992ff1eda40f47bccccf4de44121/kiwisolver-1.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:332b4f0145c30b5f5ad9374881133e5aa64320428a57c2c2b61e9d891a51c2f3", size = 1477903, upload-time = "2026-03-09T13:13:52.084Z" }, { url = "https://files.pythonhosted.org/packages/18/d8/55638d89ffd27799d5cc3d8aa28e12f4ce7a64d67b285114dbedc8ea4136/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c50b89ffd3e1a911c69a1dd3de7173c0cd10b130f56222e57898683841e4f96", size = 1278751, upload-time = "2026-03-09T13:13:54.673Z" }, { url = "https://files.pythonhosted.org/packages/b8/97/b4c8d0d18421ecceba20ad8701358453b88e32414e6f6950b5a4bad54e65/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4db576bb8c3ef9365f8b40fe0f671644de6736ae2c27a2c62d7d8a1b4329f099", size = 1296793, upload-time = "2026-03-09T13:13:56.287Z" }, { url = "https://files.pythonhosted.org/packages/c4/10/f862f94b6389d8957448ec9df59450b81bec4abb318805375c401a1e6892/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0b85aad90cea8ac6797a53b5d5f2e967334fa4d1149f031c4537569972596cb8", size = 1346041, upload-time = "2026-03-09T13:13:58.269Z" }, { url = "https://files.pythonhosted.org/packages/a3/6a/f1650af35821eaf09de398ec0bc2aefc8f211f0cda50204c9f1673741ba9/kiwisolver-1.5.0-cp313-cp313-manylinux_2_39_riscv64.whl", hash = "sha256:d36ca54cb4c6c4686f7cbb7b817f66f5911c12ddb519450bbe86707155028f87", size = 987292, upload-time = "2026-03-09T13:13:59.871Z" }, { url = "https://files.pythonhosted.org/packages/de/19/d7fb82984b9238115fe629c915007be608ebd23dc8629703d917dbfaffd4/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:38f4a703656f493b0ad185211ccfca7f0386120f022066b018eb5296d8613e23", size = 2227865, upload-time = "2026-03-09T13:14:01.401Z" }, { url = "https://files.pythonhosted.org/packages/7f/b9/46b7f386589fd222dac9e9de9c956ce5bcefe2ee73b4e79891381dda8654/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3ac2360e93cb41be81121755c6462cff3beaa9967188c866e5fce5cf13170859", size = 2324369, upload-time = "2026-03-09T13:14:02.972Z" }, { url = "https://files.pythonhosted.org/packages/92/8b/95e237cf3d9c642960153c769ddcbe278f182c8affb20cecc1cc983e7cc5/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c95cab08d1965db3d84a121f1c7ce7479bdd4072c9b3dafd8fecce48a2e6b902", size = 1977989, upload-time = "2026-03-09T13:14:04.503Z" }, { url = "https://files.pythonhosted.org/packages/1b/95/980c9df53501892784997820136c01f62bc1865e31b82b9560f980c0e649/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc20894c3d21194d8041a28b65622d5b86db786da6e3cfe73f0c762951a61167", size = 2491645, upload-time = "2026-03-09T13:14:06.106Z" }, { url = "https://files.pythonhosted.org/packages/cb/32/900647fd0840abebe1561792c6b31e6a7c0e278fc3973d30572a965ca14c/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7a32f72973f0f950c1920475d5c5ea3d971b81b6f0ec53b8d0a956cc965f22e0", size = 2295237, upload-time = "2026-03-09T13:14:08.891Z" }, { url = "https://files.pythonhosted.org/packages/be/8a/be60e3bbcf513cc5a50f4a3e88e1dcecebb79c1ad607a7222877becaa101/kiwisolver-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bf3acf1419fa93064a4c2189ac0b58e3be7872bf6ee6177b0d4c63dc4cea276", size = 73573, upload-time = "2026-03-09T13:14:12.327Z" }, { url = "https://files.pythonhosted.org/packages/4d/d2/64be2e429eb4fca7f7e1c52a91b12663aeaf25de3895e5cca0f47ef2a8d0/kiwisolver-1.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:fa8eb9ecdb7efb0b226acec134e0d709e87a909fa4971a54c0c4f6e88635484c", size = 64998, upload-time = "2026-03-09T13:14:13.469Z" }, { url = "https://files.pythonhosted.org/packages/b0/69/ce68dd0c85755ae2de490bf015b62f2cea5f6b14ff00a463f9d0774449ff/kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:db485b3847d182b908b483b2ed133c66d88d49cacf98fd278fadafe11b4478d1", size = 125700, upload-time = "2026-03-09T13:14:14.636Z" }, { url = "https://files.pythonhosted.org/packages/74/aa/937aac021cf9d4349990d47eb319309a51355ed1dbdc9c077cdc9224cb11/kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:be12f931839a3bdfe28b584db0e640a65a8bcbc24560ae3fdb025a449b3d754e", size = 67537, upload-time = "2026-03-09T13:14:15.808Z" }, { url = "https://files.pythonhosted.org/packages/ee/20/3a87fbece2c40ad0f6f0aefa93542559159c5f99831d596050e8afae7a9f/kiwisolver-1.5.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:16b85d37c2cbb3253226d26e64663f755d88a03439a9c47df6246b35defbdfb7", size = 65514, upload-time = "2026-03-09T13:14:18.035Z" }, { url = "https://files.pythonhosted.org/packages/f0/7f/f943879cda9007c45e1f7dba216d705c3a18d6b35830e488b6c6a4e7cdf0/kiwisolver-1.5.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4432b835675f0ea7414aab3d37d119f7226d24869b7a829caeab49ebda407b0c", size = 1584848, upload-time = "2026-03-09T13:14:19.745Z" }, { url = "https://files.pythonhosted.org/packages/37/f8/4d4f85cc1870c127c88d950913370dd76138482161cd07eabbc450deff01/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b0feb50971481a2cc44d94e88bdb02cdd497618252ae226b8eb1201b957e368", size = 1391542, upload-time = "2026-03-09T13:14:21.54Z" }, { url = "https://files.pythonhosted.org/packages/04/0b/65dd2916c84d252b244bd405303220f729e7c17c9d7d33dca6feeff9ffc4/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56fa888f10d0f367155e76ce849fa1166fc9730d13bd2d65a2aa13b6f5424489", size = 1404447, upload-time = "2026-03-09T13:14:23.205Z" }, { url = "https://files.pythonhosted.org/packages/39/5c/2606a373247babce9b1d056c03a04b65f3cf5290a8eac5d7bdead0a17e21/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:940dda65d5e764406b9fb92761cbf462e4e63f712ab60ed98f70552e496f3bf1", size = 1455918, upload-time = "2026-03-09T13:14:24.74Z" }, { url = "https://files.pythonhosted.org/packages/d5/d1/c6078b5756670658e9192a2ef11e939c92918833d2745f85cd14a6004bdf/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_39_riscv64.whl", hash = "sha256:89fc958c702ee9a745e4700378f5d23fddbc46ff89e8fdbf5395c24d5c1452a3", size = 1072856, upload-time = "2026-03-09T13:14:26.597Z" }, { url = "https://files.pythonhosted.org/packages/cb/c8/7def6ddf16eb2b3741d8b172bdaa9af882b03c78e9b0772975408801fa63/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9027d773c4ff81487181a925945743413f6069634d0b122d0b37684ccf4f1e18", size = 2333580, upload-time = "2026-03-09T13:14:28.237Z" }, { url = "https://files.pythonhosted.org/packages/9e/87/2ac1fce0eb1e616fcd3c35caa23e665e9b1948bb984f4764790924594128/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:5b233ea3e165e43e35dba1d2b8ecc21cf070b45b65ae17dd2747d2713d942021", size = 2423018, upload-time = "2026-03-09T13:14:30.018Z" }, { url = "https://files.pythonhosted.org/packages/67/13/c6700ccc6cc218716bfcda4935e4b2997039869b4ad8a94f364c5a3b8e63/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:ce9bf03dad3b46408c08649c6fbd6ca28a9fce0eb32fdfffa6775a13103b5310", size = 2062804, upload-time = "2026-03-09T13:14:32.888Z" }, { url = "https://files.pythonhosted.org/packages/1b/bd/877056304626943ff0f1f44c08f584300c199b887cb3176cd7e34f1515f1/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:fc4d3f1fb9ca0ae9f97b095963bc6326f1dbfd3779d6679a1e016b9baaa153d3", size = 2597482, upload-time = "2026-03-09T13:14:34.971Z" }, { url = "https://files.pythonhosted.org/packages/75/19/c60626c47bf0f8ac5dcf72c6c98e266d714f2fbbfd50cf6dab5ede3aaa50/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f443b4825c50a51ee68585522ab4a1d1257fac65896f282b4c6763337ac9f5d2", size = 2394328, upload-time = "2026-03-09T13:14:36.816Z" }, { url = "https://files.pythonhosted.org/packages/47/84/6a6d5e5bb8273756c27b7d810d47f7ef2f1f9b9fd23c9ee9a3f8c75c9cef/kiwisolver-1.5.0-cp313-cp313t-win_arm64.whl", hash = "sha256:893ff3a711d1b515ba9da14ee090519bad4610ed1962fbe298a434e8c5f8db53", size = 68410, upload-time = "2026-03-09T13:14:38.695Z" }, { url = "https://files.pythonhosted.org/packages/e4/d7/060f45052f2a01ad5762c8fdecd6d7a752b43400dc29ff75cd47225a40fd/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8df31fe574b8b3993cc61764f40941111b25c2d9fea13d3ce24a49907cd2d615", size = 123231, upload-time = "2026-03-09T13:14:41.323Z" }, { url = "https://files.pythonhosted.org/packages/c2/a7/78da680eadd06ff35edef6ef68a1ad273bad3e2a0936c9a885103230aece/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1d49a49ac4cbfb7c1375301cd1ec90169dfeae55ff84710d782260ce77a75a02", size = 66489, upload-time = "2026-03-09T13:14:42.534Z" }, { url = "https://files.pythonhosted.org/packages/49/b2/97980f3ad4fae37dd7fe31626e2bf75fbf8bdf5d303950ec1fab39a12da8/kiwisolver-1.5.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0cbe94b69b819209a62cb27bdfa5dc2a8977d8de2f89dfd97ba4f53ed3af754e", size = 64063, upload-time = "2026-03-09T13:14:44.759Z" }, { url = "https://files.pythonhosted.org/packages/e7/f9/b06c934a6aa8bc91f566bd2a214fd04c30506c2d9e2b6b171953216a65b6/kiwisolver-1.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:80aa065ffd378ff784822a6d7c3212f2d5f5e9c3589614b5c228b311fd3063ac", size = 1475913, upload-time = "2026-03-09T13:14:46.247Z" }, { url = "https://files.pythonhosted.org/packages/6b/f0/f768ae564a710135630672981231320bc403cf9152b5596ec5289de0f106/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e7f886f47ab881692f278ae901039a234e4025a68e6dfab514263a0b1c4ae05", size = 1282782, upload-time = "2026-03-09T13:14:48.458Z" }, { url = "https://files.pythonhosted.org/packages/e2/9f/1de7aad00697325f05238a5f2eafbd487fb637cc27a558b5367a5f37fb7f/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5060731cc3ed12ca3a8b57acd4aeca5bbc2f49216dd0bec1650a1acd89486bcd", size = 1300815, upload-time = "2026-03-09T13:14:50.721Z" }, { url = "https://files.pythonhosted.org/packages/5a/c2/297f25141d2e468e0ce7f7a7b92e0cf8918143a0cbd3422c1ad627e85a06/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a4aa69609f40fce3cbc3f87b2061f042eee32f94b8f11db707b66a26461591a", size = 1347925, upload-time = "2026-03-09T13:14:52.304Z" }, { url = "https://files.pythonhosted.org/packages/b9/d3/f4c73a02eb41520c47610207b21afa8cdd18fdbf64ffd94674ae21c4812d/kiwisolver-1.5.0-cp314-cp314-manylinux_2_39_riscv64.whl", hash = "sha256:d168fda2dbff7b9b5f38e693182d792a938c31db4dac3a80a4888de603c99554", size = 991322, upload-time = "2026-03-09T13:14:54.637Z" }, { url = "https://files.pythonhosted.org/packages/7b/46/d3f2efef7732fcda98d22bf4ad5d3d71d545167a852ca710a494f4c15343/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:413b820229730d358efd838ecbab79902fe97094565fdc80ddb6b0a18c18a581", size = 2232857, upload-time = "2026-03-09T13:14:56.471Z" }, { url = "https://files.pythonhosted.org/packages/3f/ec/2d9756bf2b6d26ae4349b8d3662fb3993f16d80c1f971c179ce862b9dbae/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5124d1ea754509b09e53738ec185584cc609aae4a3b510aaf4ed6aa047ef9303", size = 2329376, upload-time = "2026-03-09T13:14:58.072Z" }, { url = "https://files.pythonhosted.org/packages/8f/9f/876a0a0f2260f1bde92e002b3019a5fabc35e0939c7d945e0fa66185eb20/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e4415a8db000bf49a6dd1c478bf70062eaacff0f462b92b0ba68791a905861f9", size = 1982549, upload-time = "2026-03-09T13:14:59.668Z" }, { url = "https://files.pythonhosted.org/packages/6c/4f/ba3624dfac23a64d54ac4179832860cb537c1b0af06024936e82ca4154a0/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d618fd27420381a4f6044faa71f46d8bfd911bd077c555f7138ed88729bfbe79", size = 2494680, upload-time = "2026-03-09T13:15:01.364Z" }, { url = "https://files.pythonhosted.org/packages/39/b7/97716b190ab98911b20d10bf92eca469121ec483b8ce0edd314f51bc85af/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5092eb5b1172947f57d6ea7d89b2f29650414e4293c47707eb499ec07a0ac796", size = 2297905, upload-time = "2026-03-09T13:15:03.925Z" }, { url = "https://files.pythonhosted.org/packages/a3/36/4e551e8aa55c9188bca9abb5096805edbf7431072b76e2298e34fd3a3008/kiwisolver-1.5.0-cp314-cp314-win_amd64.whl", hash = "sha256:d76e2d8c75051d58177e762164d2e9ab92886534e3a12e795f103524f221dd8e", size = 75086, upload-time = "2026-03-09T13:15:07.775Z" }, { url = "https://files.pythonhosted.org/packages/70/15/9b90f7df0e31a003c71649cf66ef61c3c1b862f48c81007fa2383c8bd8d7/kiwisolver-1.5.0-cp314-cp314-win_arm64.whl", hash = "sha256:fa6248cd194edff41d7ea9425ced8ca3a6f838bfb295f6f1d6e6bb694a8518df", size = 66577, upload-time = "2026-03-09T13:15:09.139Z" }, { url = "https://files.pythonhosted.org/packages/17/01/7dc8c5443ff42b38e72731643ed7cf1ed9bf01691ae5cdca98501999ed83/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d1ffeb80b5676463d7a7d56acbe8e37a20ce725570e09549fe738e02ca6b7e1e", size = 125794, upload-time = "2026-03-09T13:15:10.525Z" }, { url = "https://files.pythonhosted.org/packages/46/8a/b4ebe46ebaac6a303417fab10c2e165c557ddaff558f9699d302b256bc53/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc4d8e252f532ab46a1de9349e2d27b91fce46736a9eedaa37beaca66f574ed4", size = 67646, upload-time = "2026-03-09T13:15:12.016Z" }, { url = "https://files.pythonhosted.org/packages/60/35/10a844afc5f19d6f567359bf4789e26661755a2f36200d5d1ed8ad0126e5/kiwisolver-1.5.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6783e069732715ad0c3ce96dbf21dbc2235ab0593f2baf6338101f70371f4028", size = 65511, upload-time = "2026-03-09T13:15:13.311Z" }, { url = "https://files.pythonhosted.org/packages/f8/8a/685b297052dd041dcebce8e8787b58923b6e78acc6115a0dc9189011c44b/kiwisolver-1.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e7c4c09a490dc4d4a7f8cbee56c606a320f9dc28cf92a7157a39d1ce7676a657", size = 1584858, upload-time = "2026-03-09T13:15:15.103Z" }, { url = "https://files.pythonhosted.org/packages/9e/80/04865e3d4638ac5bddec28908916df4a3075b8c6cc101786a96803188b96/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a075bd7bd19c70cf67c8badfa36cf7c5d8de3c9ddb8420c51e10d9c50e94920", size = 1392539, upload-time = "2026-03-09T13:15:16.661Z" }, { url = "https://files.pythonhosted.org/packages/ba/01/77a19cacc0893fa13fafa46d1bba06fb4dc2360b3292baf4b56d8e067b24/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bdd3e53429ff02aa319ba59dfe4ceeec345bf46cf180ec2cf6fd5b942e7975e9", size = 1405310, upload-time = "2026-03-09T13:15:18.229Z" }, { url = "https://files.pythonhosted.org/packages/53/39/bcaf5d0cca50e604cfa9b4e3ae1d64b50ca1ae5b754122396084599ef903/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cdcb35dc9d807259c981a85531048ede628eabcffb3239adf3d17463518992d", size = 1456244, upload-time = "2026-03-09T13:15:20.444Z" }, { url = "https://files.pythonhosted.org/packages/d0/7a/72c187abc6975f6978c3e39b7cf67aeb8b3c0a8f9790aa7fd412855e9e1f/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_39_riscv64.whl", hash = "sha256:70d593af6a6ca332d1df73d519fddb5148edb15cd90d5f0155e3746a6d4fcc65", size = 1073154, upload-time = "2026-03-09T13:15:22.039Z" }, { url = "https://files.pythonhosted.org/packages/c7/ca/cf5b25783ebbd59143b4371ed0c8428a278abe68d6d0104b01865b1bbd0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:377815a8616074cabbf3f53354e1d040c35815a134e01d7614b7692e4bf8acfa", size = 2334377, upload-time = "2026-03-09T13:15:23.741Z" }, { url = "https://files.pythonhosted.org/packages/4a/e5/b1f492adc516796e88751282276745340e2a72dcd0d36cf7173e0daf3210/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0255a027391d52944eae1dbb5d4cc5903f57092f3674e8e544cdd2622826b3f0", size = 2425288, upload-time = "2026-03-09T13:15:25.789Z" }, { url = "https://files.pythonhosted.org/packages/e6/e5/9b21fbe91a61b8f409d74a26498706e97a48008bfcd1864373d32a6ba31c/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:012b1eb16e28718fa782b5e61dc6f2da1f0792ca73bd05d54de6cb9561665fc9", size = 2063158, upload-time = "2026-03-09T13:15:27.63Z" }, { url = "https://files.pythonhosted.org/packages/b1/02/83f47986138310f95ea95531f851b2a62227c11cbc3e690ae1374fe49f0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0e3aafb33aed7479377e5e9a82e9d4bf87063741fc99fc7ae48b0f16e32bdd6f", size = 2597260, upload-time = "2026-03-09T13:15:29.421Z" }, { url = "https://files.pythonhosted.org/packages/07/18/43a5f24608d8c313dd189cf838c8e68d75b115567c6279de7796197cfb6a/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e7a116ae737f0000343218c4edf5bd45893bfeaff0993c0b215d7124c9f77646", size = 2394403, upload-time = "2026-03-09T13:15:31.517Z" }, { url = "https://files.pythonhosted.org/packages/3b/b5/98222136d839b8afabcaa943b09bd05888c2d36355b7e448550211d1fca4/kiwisolver-1.5.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1dd9b0b119a350976a6d781e7278ec7aca0b201e1a9e2d23d9804afecb6ca681", size = 79687, upload-time = "2026-03-09T13:15:33.204Z" }, { url = "https://files.pythonhosted.org/packages/99/a2/ca7dc962848040befed12732dff6acae7fb3c4f6fc4272b3f6c9a30b8713/kiwisolver-1.5.0-cp314-cp314t-win_arm64.whl", hash = "sha256:58f812017cd2985c21fbffb4864d59174d4903dd66fa23815e74bbc7a0e2dd57", size = 70032, upload-time = "2026-03-09T13:15:34.411Z" }, { url = "https://files.pythonhosted.org/packages/1c/fa/2910df836372d8761bb6eff7d8bdcb1613b5c2e03f260efe7abe34d388a7/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_10_13_x86_64.whl", hash = "sha256:5ae8e62c147495b01a0f4765c878e9bfdf843412446a247e28df59936e99e797", size = 130262, upload-time = "2026-03-09T13:15:35.629Z" }, { url = "https://files.pythonhosted.org/packages/0f/41/c5f71f9f00aabcc71fee8b7475e3f64747282580c2fe748961ba29b18385/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:f6764a4ccab3078db14a632420930f6186058750df066b8ea2a7106df91d3203", size = 138036, upload-time = "2026-03-09T13:15:36.894Z" }, { url = "https://files.pythonhosted.org/packages/fa/06/7399a607f434119c6e1fdc8ec89a8d51ccccadf3341dee4ead6bd14caaf5/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c31c13da98624f957b0fb1b5bae5383b2333c2c3f6793d9825dd5ce79b525cb7", size = 194295, upload-time = "2026-03-09T13:15:38.22Z" }, { url = "https://files.pythonhosted.org/packages/b5/91/53255615acd2a1eaca307ede3c90eb550bae9c94581f8c00081b6b1c8f44/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-win_amd64.whl", hash = "sha256:1f1489f769582498610e015a8ef2d36f28f505ab3096d0e16b4858a9ec214f57", size = 75987, upload-time = "2026-03-09T13:15:39.65Z" }, { url = "https://files.pythonhosted.org/packages/e9/eb/5fcbbbf9a0e2c3a35effb88831a483345326bbc3a030a3b5b69aee647f84/kiwisolver-1.5.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ec4c85dc4b687c7f7f15f553ff26a98bfe8c58f5f7f0ac8905f0ba4c7be60232", size = 59532, upload-time = "2026-03-09T13:15:47.047Z" }, { url = "https://files.pythonhosted.org/packages/c3/9b/e17104555bb4db148fd52327feea1e96be4b88e8e008b029002c281a21ab/kiwisolver-1.5.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:12e91c215a96e39f57989c8912ae761286ac5a9584d04030ceb3368a357f017a", size = 57420, upload-time = "2026-03-09T13:15:48.199Z" }, { url = "https://files.pythonhosted.org/packages/48/44/2b5b95b7aa39fb2d8d9d956e0f3d5d45aef2ae1d942d4c3ffac2f9cfed1a/kiwisolver-1.5.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:be4a51a55833dc29ab5d7503e7bcb3b3af3402d266018137127450005cdfe737", size = 79892, upload-time = "2026-03-09T13:15:49.694Z" }, { url = "https://files.pythonhosted.org/packages/52/7d/7157f9bba6b455cfb4632ed411e199fc8b8977642c2b12082e1bd9e6d173/kiwisolver-1.5.0-pp311-pypy311_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:daae526907e262de627d8f70058a0f64acc9e2641c164c99c8f594b34a799a16", size = 77603, upload-time = "2026-03-09T13:15:50.945Z" }, { url = "https://files.pythonhosted.org/packages/0a/dd/8050c947d435c8d4bc94e3252f4d8bb8a76cfb424f043a8680be637a57f1/kiwisolver-1.5.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:59cd8683f575d96df5bb48f6add94afc055012c29e28124fcae2b63661b9efb1", size = 73558, upload-time = "2026-03-09T13:15:52.112Z" }, ] [[package]] name = "locket" version = "1.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/2f/83/97b29fe05cb6ae28d2dbd30b81e2e402a3eed5f460c26e9eaa5895ceacf5/locket-1.0.0.tar.gz", hash = "sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632", size = 4350, upload-time = "2022-04-20T22:04:44.312Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl", hash = "sha256:b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3", size = 4398, upload-time = "2022-04-20T22:04:42.23Z" }, ] [[package]] name = "markupsafe" version = "3.0.3" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, ] [[package]] name = "matplotlib" version = "3.10.9" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "contourpy" }, { name = "cycler" }, { name = "fonttools" }, { name = "kiwisolver" }, { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, { name = "numpy", version = "2.5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "packaging" }, { name = "pillow" }, { name = "pyparsing" }, { name = "python-dateutil" }, ] sdist = { url = "https://files.pythonhosted.org/packages/63/1b/4be5be87d43d327a0cf4de1a56e86f7f84c89312452406cf122efe2839e6/matplotlib-3.10.9.tar.gz", hash = "sha256:fd66508e8c6877d98e586654b608a0456db8d7e8a546eb1e2600efd957302358", size = 34811233, upload-time = "2026-04-24T00:14:13.539Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/4c/8c/290f021104741fea63769c31494f5324c0cd249bf536a65a4350767b1f22/matplotlib-3.10.9-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:68cfdcede415f7c8f5577b03303dd94526cdb6d11036cecdc205e08733b2d2bb", size = 8306860, upload-time = "2026-04-24T00:12:01.207Z" }, { url = "https://files.pythonhosted.org/packages/51/18/325cd32ece1120d1da51cc4e4294c6580190699490183fc2fe8cb6d61ec5/matplotlib-3.10.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfca0129678bd56379db26c52b5d77ed7de314c047492fbdc763aa7501710cfb", size = 8199254, upload-time = "2026-04-24T00:12:04.239Z" }, { url = "https://files.pythonhosted.org/packages/79/db/e28c1b83e3680740aa78925f5fb2ae4d16207207419ad75ea9fe604f8676/matplotlib-3.10.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8e436d155fa8a3399dc62683f8f5d0e2e50d25d0144a73edd73f82eec8f4abfb", size = 8777092, upload-time = "2026-04-24T00:12:06.793Z" }, { url = "https://files.pythonhosted.org/packages/55/fa/3ce7adfe9ba101748f465211660d9c6374c876b671bdb8c2bb6d347e8b94/matplotlib-3.10.9-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:56fc0bd271b00025c6edfdc7c2dcd247372c8e1544971d62e1dc7c17367e8bf9", size = 9595691, upload-time = "2026-04-24T00:12:09.706Z" }, { url = "https://files.pythonhosted.org/packages/36/c4/6960a76686ed668f2c60f84e9799ba4c0d56abdb36b1577b60c1d061d1ec/matplotlib-3.10.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a5a6104ed666402ba5106d7f36e0e0cdca4e8d7fa4d39708ca88019e2835a2eb", size = 9659771, upload-time = "2026-04-24T00:12:12.766Z" }, { url = "https://files.pythonhosted.org/packages/7e/0d/271aace3342157c64700c9ff4c59c7b392f3dbab393692e8db6fbe7ab96c/matplotlib-3.10.9-cp311-cp311-win_amd64.whl", hash = "sha256:d730e984eddf56974c3e72b6129c7ca462ac38dc624338f4b0b23eb23ecba00f", size = 8205112, upload-time = "2026-04-24T00:12:15.773Z" }, { url = "https://files.pythonhosted.org/packages/e2/ee/cb57ad4754f3e7b9174ce6ce66d9205fb827067e48a9f58ac09d7e7d6b77/matplotlib-3.10.9-cp311-cp311-win_arm64.whl", hash = "sha256:51bf0ddbdc598e060d46c16b5590708f81a1624cefbaaf62f6a81bf9285b8c80", size = 8132310, upload-time = "2026-04-24T00:12:18.645Z" }, { url = "https://files.pythonhosted.org/packages/35/c6/5581e26c72233ebb2a2a6fed2d24fb7c66b4700120b813f51b0555acf0b6/matplotlib-3.10.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f0c3c28d9fbcc1fe7a03be236d73430cf6409c41fb2383a7ac52fe932b072cb1", size = 8319908, upload-time = "2026-04-24T00:12:21.323Z" }, { url = "https://files.pythonhosted.org/packages/b7/18/4880dd762e40cd360c1bf06e890c5a97b997e91cb324602b1a19950ad5ce/matplotlib-3.10.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41cb28c2bd769aa3e98322c6ab09854cbcc52ab69d2759d681bba3e327b2b320", size = 8216016, upload-time = "2026-04-24T00:12:23.4Z" }, { url = "https://files.pythonhosted.org/packages/32/91/d024616abdba99e83120e07a20658976f6a343646710760c4a51df126029/matplotlib-3.10.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ae20801130378b82d647ff5047c07316295b68dc054ca6b3c13519d0ea624285", size = 8789336, upload-time = "2026-04-24T00:12:26.096Z" }, { url = "https://files.pythonhosted.org/packages/5c/04/030a2f61ef2158f5e4c259487a92ac877732499fb33d871585d89e03c42d/matplotlib-3.10.9-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c63ebcd8b4b169eb2f5c200552ae6b8be8999a005b6b507ed76fb8d7d674fe2", size = 9604602, upload-time = "2026-04-24T00:12:29.052Z" }, { url = "https://files.pythonhosted.org/packages/fc/c2/541e4d09d87bb6b5830fc28b4c887a9a8cf4e1c6cee698a8c05552ae2003/matplotlib-3.10.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d75d11c949914165976c621b2324f9ef162af7ebf4b057ddf95dd1dba7e5edcf", size = 9670966, upload-time = "2026-04-24T00:12:32.131Z" }, { url = "https://files.pythonhosted.org/packages/04/a1/4571fc46e7702de8d0c2dc54ad1b2f8e29328dea3ee90831181f7353d93c/matplotlib-3.10.9-cp312-cp312-win_amd64.whl", hash = "sha256:d091f9d758b34aaaaa6331d13574bf01891d903b3dec59bfff458ef7551de5d6", size = 8217462, upload-time = "2026-04-24T00:12:35.226Z" }, { url = "https://files.pythonhosted.org/packages/4b/d0/2269edb12aa30c13c8bcc9382892e39943ce1d28aab4ec296e0381798e81/matplotlib-3.10.9-cp312-cp312-win_arm64.whl", hash = "sha256:10cc5ce06d10231c36f40e875f3c7e8050362a4ee8f0ee5d29a6b3277d57bb42", size = 8136688, upload-time = "2026-04-24T00:12:37.442Z" }, { url = "https://files.pythonhosted.org/packages/aa/d3/8d4f6afbecb49fc04e060a57c0fce39ea51cc163a6bd87303ccd698e4fa6/matplotlib-3.10.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b580440f1ff81a0e34122051a3dfabb7e4b7f9e380629929bde0eff9af72165f", size = 8320331, upload-time = "2026-04-24T00:12:39.688Z" }, { url = "https://files.pythonhosted.org/packages/63/d9/9e14bc7564bf92d5ffa801ae5fac819ce74b925dfb55e3ebde61a3bbad3e/matplotlib-3.10.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b1b745c489cd1a77a0dc1120a05dc87af9798faebc913601feb8c73d89bf2d1e", size = 8216461, upload-time = "2026-04-24T00:12:42.494Z" }, { url = "https://files.pythonhosted.org/packages/8a/17/4402d0d14ccf1dfc70932600b68097fbbf9c898a4871d2cbbe79c7801a32/matplotlib-3.10.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8f3bcac1ca5ed000a6f4337d47ba67dfddf37ed6a46c15fd7f014997f7bf865f", size = 8790091, upload-time = "2026-04-24T00:12:44.789Z" }, { url = "https://files.pythonhosted.org/packages/3e/0b/322aeec06dd9b91411f92028b37d447342770a24392aa4813e317064dad5/matplotlib-3.10.9-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a8d66a55def891c33147ba3ba9bfcabf0b526a43764c818acbb4525e5ed0838", size = 9605027, upload-time = "2026-04-24T00:12:47.583Z" }, { url = "https://files.pythonhosted.org/packages/74/88/5f13482f55e7b00bcfc09838b093c2456e1379978d2a146844aae05350ad/matplotlib-3.10.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d843374407c4017a6403b59c6c81606773d136f3259d5b6da3131bc814542cc2", size = 9671269, upload-time = "2026-04-24T00:12:50.878Z" }, { url = "https://files.pythonhosted.org/packages/c5/e0/0840fd2f93da988ec660b8ad1984abe9f25d2aed22a5e394ff1c68c88307/matplotlib-3.10.9-cp313-cp313-win_amd64.whl", hash = "sha256:f4399f64b3e94cd500195490972ae1ee81170df1636fa15364d157d5bdd7b921", size = 8217588, upload-time = "2026-04-24T00:12:53.784Z" }, { url = "https://files.pythonhosted.org/packages/47/b9/d706d06dd605c49b9f83a2aed8c13e3e5db70697d7a80b7e3d7915de6b17/matplotlib-3.10.9-cp313-cp313-win_arm64.whl", hash = "sha256:ba7b3b8ef09eab7df0e86e9ae086faa433efbfbdb46afcb3aa16aabf779469a8", size = 8136913, upload-time = "2026-04-24T00:12:56.501Z" }, { url = "https://files.pythonhosted.org/packages/9b/45/6e32d96978264c8ca8c4b1010adb955a1a49cfaf314e212bbc8908f04a61/matplotlib-3.10.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:09218df8a93712bd6ea133e83a153c755448cf7868316c531cffcc43f69d1cc9", size = 8368019, upload-time = "2026-04-24T00:12:58.896Z" }, { url = "https://files.pythonhosted.org/packages/86/0a/c8e3d3bba245f0f7fc424937f8ff7ef77291a36af3edb97ccd78aa93d84f/matplotlib-3.10.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:82368699727bfb7b0182e1aa13082e3c08e092fa1a25d3e1fd92405bff96f6d4", size = 8264645, upload-time = "2026-04-24T00:13:01.406Z" }, { url = "https://files.pythonhosted.org/packages/3d/aa/5bf5a14fe4fed73a4209a155606f8096ff797aad89c6c35179026571133e/matplotlib-3.10.9-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3225f4e1edcb8c86c884ddf79ebe20ecd0a67d30188f279897554ccd8fded4dc", size = 8802194, upload-time = "2026-04-24T00:13:03.702Z" }, { url = "https://files.pythonhosted.org/packages/dd/5e/b4be852d6bba6fd15893fadf91ff26ae49cb91aac789e95dde9d342e664f/matplotlib-3.10.9-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de2445a0c6690d21b7eb6ce071cebad6d40a2e9bdf10d039074a96ba19797b99", size = 9622684, upload-time = "2026-04-24T00:13:06.647Z" }, { url = "https://files.pythonhosted.org/packages/4c/3d/ed428c971139112ef730f62770654d609467346d09d4b62617e1afd68a5a/matplotlib-3.10.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:b2b9516251cb89ff618d757daec0e2ed1bf21248013844a853d87ef85ab3081d", size = 9680790, upload-time = "2026-04-24T00:13:10.009Z" }, { url = "https://files.pythonhosted.org/packages/e7/09/052e884aaf2b985c63cb79f715f1d5b6a3eaa7de78f6a52b9dbc077d5b53/matplotlib-3.10.9-cp313-cp313t-win_amd64.whl", hash = "sha256:e9fae004b941b23ff2edcf1567a857ed77bafc8086ffa258190462328434faf8", size = 8287571, upload-time = "2026-04-24T00:13:13.087Z" }, { url = "https://files.pythonhosted.org/packages/f4/38/ae27288e788c35a4250491422f3db7750366fc8c97d6f36fbdecfc1f5518/matplotlib-3.10.9-cp313-cp313t-win_arm64.whl", hash = "sha256:6b63d9c7c769b88ab81e10dc86e4e0607cf56817b9f9e6cf24b2a5f1693b8e38", size = 8188292, upload-time = "2026-04-24T00:13:15.546Z" }, { url = "https://files.pythonhosted.org/packages/d6/e6/3bd8afd04949f02eabc1c17115ea5255e19cacd4d06fc5abdde4eeb0052c/matplotlib-3.10.9-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:172db52c9e683f5d12eaf57f0f54834190e12581fe1cc2a19595a8f5acb4e77d", size = 8321276, upload-time = "2026-04-24T00:13:18.318Z" }, { url = "https://files.pythonhosted.org/packages/41/86/86231232fff41c9f8e4a1a7d7a597d349a02527109c3af7d618366122139/matplotlib-3.10.9-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:97e35e8d39ccc85859095e01a53847432ba9a53ddf7986f7a54a11b73d0e143f", size = 8218218, upload-time = "2026-04-24T00:13:20.974Z" }, { url = "https://files.pythonhosted.org/packages/85/8f/becc9722cafc64f5d2eb0b7c1bf5f585271c618a45dbd8fabeb021f898b6/matplotlib-3.10.9-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aba1615dabe83188e19d4f75a253c6a08423e04c1425e64039f800050a69de6b", size = 9608145, upload-time = "2026-04-24T00:13:23.228Z" }, { url = "https://files.pythonhosted.org/packages/32/5d/f7e914f7d9325abff4057cee62c0fa70263683189f774473cbfb534cd13b/matplotlib-3.10.9-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34cf8167e023ad956c15f36302911d5406bd99a9862c1a8499ea6f7c0e015dc2", size = 9885085, upload-time = "2026-04-24T00:13:25.849Z" }, { url = "https://files.pythonhosted.org/packages/a5/fd/fa69f2221534e80cc5772ac2b7d222011a2acafc2ec7216d5dd174c864ae/matplotlib-3.10.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:59476c6d29d612b8e9bb6ce8c5b631be6ba8f9e3a2421f22a02b192c7dd28716", size = 9672358, upload-time = "2026-04-24T00:13:28.906Z" }, { url = "https://files.pythonhosted.org/packages/ab/1a/5a4f747a8b271cbb024946d2dd3c913ab5032ba430626f8c3528ada96b4b/matplotlib-3.10.9-cp314-cp314-win_amd64.whl", hash = "sha256:336b9acc64d309063126edcdaca00db9373af3c476bb94388fe9c5a53ad13e6f", size = 8349970, upload-time = "2026-04-24T00:13:31.904Z" }, { url = "https://files.pythonhosted.org/packages/64/dc/95d60ecaefe30680a154b52ea96ab4b0dab547f1fd6aa12f5fb655e89cae/matplotlib-3.10.9-cp314-cp314-win_arm64.whl", hash = "sha256:2dc9477819ffd78ad12a20df1d9d6a6bd4fec6aaa9072681465fddca052f1456", size = 8272785, upload-time = "2026-04-24T00:13:34.511Z" }, { url = "https://files.pythonhosted.org/packages/70/a0/005d68bc8b8418300ce6591f18586910a8526806e2ab663933d9f20a41e9/matplotlib-3.10.9-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:da4e09638420548f31c354032a6250e473c68e5a4e96899b4844cf39ddea23fe", size = 8367999, upload-time = "2026-04-24T00:13:36.962Z" }, { url = "https://files.pythonhosted.org/packages/22/05/1236cc9290be70b2498af20ca348add76e3fffe7f67b477db5133a84f3ea/matplotlib-3.10.9-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:345f6f68ecc8da0ca56fad2ea08fde1a115eda530079eca185d50a7bc3e146c6", size = 8264543, upload-time = "2026-04-24T00:13:39.851Z" }, { url = "https://files.pythonhosted.org/packages/cd/c2/071f5a5ff6c5bd63aaaf2f45c811d9bf2ced94bde188d9e1a519e21d0cba/matplotlib-3.10.9-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4edcfbd8565339aa62f1cd4012f7180926fdbe71850f7b0d3c379c175cd6b66c", size = 9622800, upload-time = "2026-04-24T00:13:42.296Z" }, { url = "https://files.pythonhosted.org/packages/95/57/da7d1f10a85624b9e7db68e069dd94e58dc41dbf9463c5921632ecbe3661/matplotlib-3.10.9-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6be157fe17fc37cb95ac1d7374cf717ce9259616edec911a78d9d26dae8522d4", size = 9888561, upload-time = "2026-04-24T00:13:45.026Z" }, { url = "https://files.pythonhosted.org/packages/67/b2/ef8d6bb59b0edb6c16c968b70f548aa13b54348972def5aa6ac85df67145/matplotlib-3.10.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4e42042d54db34fda4e95a7bd3e5789c2a995d2dad3eb8850232ee534092fbbf", size = 9680884, upload-time = "2026-04-24T00:13:48.066Z" }, { url = "https://files.pythonhosted.org/packages/61/1c/d21bfeb9931881ebe96bcfcff27c7ae4b160ae0ec291a714c42641a56d75/matplotlib-3.10.9-cp314-cp314t-win_amd64.whl", hash = "sha256:c27df8b3848f32a83d1767566595e43cfaa4460380974da06f4279a7ec143c39", size = 8432333, upload-time = "2026-04-24T00:13:51.008Z" }, { url = "https://files.pythonhosted.org/packages/78/23/92493c3e6e1b635ccfff146f7b99e674808787915420373ac399283764c2/matplotlib-3.10.9-cp314-cp314t-win_arm64.whl", hash = "sha256:a49f1eadc84ca85fd72fa4e89e70e61bf86452df6f971af04b12c60761a0772c", size = 8324785, upload-time = "2026-04-24T00:13:53.633Z" }, { url = "https://files.pythonhosted.org/packages/63/e2/9f66ca6a651a52abfe0d4964ce01439ed34f3f1e119de10ff3a07f403043/matplotlib-3.10.9-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:42fb814efabe95c06c1994d8ab5a8385f43a249e23badd3ba931d4308e5bca20", size = 8304420, upload-time = "2026-04-24T00:14:04.57Z" }, { url = "https://files.pythonhosted.org/packages/e8/e8/467c03568218792906aa87b5e7bb379b605e056ed0c74fe00c051786d925/matplotlib-3.10.9-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f76e640a5268850bfda54b5131b1b1941cc685e42c5fa98ed9f2d64038308cba", size = 8197981, upload-time = "2026-04-24T00:14:07.233Z" }, { url = "https://files.pythonhosted.org/packages/6f/87/afead29192170917537934c6aff4b008c805fff7b1ccea0c79120d96beda/matplotlib-3.10.9-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3fc0364dfbe1d07f6d15c5ebd0c5bf89e126916e5a8667dd4a7a6e84c36653d4", size = 8774002, upload-time = "2026-04-24T00:14:09.816Z" }, ] [[package]] name = "mpmath" version = "1.3.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, ] [[package]] name = "narwhals" version = "2.18.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/59/96/45218c2fdec4c9f22178f905086e85ef1a6d63862dcc3cd68eb60f1867f5/narwhals-2.18.1.tar.gz", hash = "sha256:652a1fcc9d432bbf114846688884c215f17eb118aa640b7419295d2f910d2a8b", size = 620578, upload-time = "2026-03-24T15:11:25.456Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/3f/c3/06490e98393dcb4d6ce2bf331a39335375c300afaef526897881fbeae6ab/narwhals-2.18.1-py3-none-any.whl", hash = "sha256:a0a8bb80205323851338888ba3a12b4f65d352362c8a94be591244faf36504ad", size = 444952, upload-time = "2026-03-24T15:11:23.801Z" }, ] [[package]] name = "numpy" version = "2.4.6" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version < '3.12'", ] sdist = { url = "https://files.pythonhosted.org/packages/d0/ad/fed0499ce6a338d2a03ebae59cd15093910c8875328855781952abf6c2fe/numpy-2.4.6.tar.gz", hash = "sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda", size = 20735807, upload-time = "2026-05-18T23:37:14.07Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b3/49/ec46835a70be8fa6446c495126ac84fdb28cb2558e1620ffb87a10c8b64c/numpy-2.4.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4", size = 16969194, upload-time = "2026-05-18T23:33:13.503Z" }, { url = "https://files.pythonhosted.org/packages/0e/0d/f5957185c0ee2f3e12f78715aa9e3b353fd83633316c8532b38faa37e3f6/numpy-2.4.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d", size = 14964111, upload-time = "2026-05-18T23:33:17.795Z" }, { url = "https://files.pythonhosted.org/packages/ad/40/40a40ee0ddf7ceb782c49af278894b686e586d65d8c1889c8b5da01a3d7d/numpy-2.4.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8", size = 5469159, upload-time = "2026-05-18T23:33:20.654Z" }, { url = "https://files.pythonhosted.org/packages/63/13/f9a8046535cb21deae82f8d03de9617e08882d274fad2539630761888228/numpy-2.4.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538", size = 6798936, upload-time = "2026-05-18T23:33:22.987Z" }, { url = "https://files.pythonhosted.org/packages/33/a8/6fa8c1a345a8c85dbb21932c447bee07c30a2c2a3f31e369c0a84b300147/numpy-2.4.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47", size = 15966692, upload-time = "2026-05-18T23:33:26.62Z" }, { url = "https://files.pythonhosted.org/packages/02/03/74fe2a4cb3817d94d86402f2506554130a2f01414e299b5a843e5a8a957f/numpy-2.4.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93", size = 16918164, upload-time = "2026-05-18T23:33:29.955Z" }, { url = "https://files.pythonhosted.org/packages/c5/80/3615be3313f7e7696609bc194b9f0101da809df79e859bdb84e0cd043f46/numpy-2.4.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8", size = 17322877, upload-time = "2026-05-18T23:33:34.724Z" }, { url = "https://files.pythonhosted.org/packages/ca/ac/a691e0fe2675e370d0e08ff905adc49a1c8830e8cae03efe4477e92cd55d/numpy-2.4.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6", size = 18651487, upload-time = "2026-05-18T23:33:38.217Z" }, { url = "https://files.pythonhosted.org/packages/15/a7/9bc1cd626d7bf6869bfedf27b91b6ab5dd607758bf8e959d6fa80c6a59cb/numpy-2.4.6-cp311-cp311-win32.whl", hash = "sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8", size = 6233945, upload-time = "2026-05-18T23:33:41.331Z" }, { url = "https://files.pythonhosted.org/packages/c5/31/7fc6239c12bce7e931463251cca4426c465e1876ba3cc785402ef4dd8f4e/numpy-2.4.6-cp311-cp311-win_amd64.whl", hash = "sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147", size = 12608406, upload-time = "2026-05-18T23:33:44.131Z" }, { url = "https://files.pythonhosted.org/packages/27/83/140f85a466595a16382996a1bf06b2b54bcd597488921b0c9daaeeda72af/numpy-2.4.6-cp311-cp311-win_arm64.whl", hash = "sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577", size = 10479528, upload-time = "2026-05-18T23:33:50.725Z" }, { url = "https://files.pythonhosted.org/packages/95/2a/3d7b5ac8aac24feaf9ad7ed58f45b0bbc06d37e4338ae84c9f2298b570f9/numpy-2.4.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1", size = 16689119, upload-time = "2026-05-18T23:33:54.065Z" }, { url = "https://files.pythonhosted.org/packages/ea/12/92c4c131527599e8288d6918e888d88726f84d805d784b771f32408aeaef/numpy-2.4.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb", size = 14699246, upload-time = "2026-05-18T23:33:57.621Z" }, { url = "https://files.pythonhosted.org/packages/ad/fe/c0a6b7b2ca128a8fb228575147073b660656734b8ebe4d76c8fd748dcc79/numpy-2.4.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41", size = 5204410, upload-time = "2026-05-18T23:34:00.302Z" }, { url = "https://files.pythonhosted.org/packages/f3/d4/9770d14ba719432bb90a421bfd443872ed0f70f7264b64bec12ea363d5fd/numpy-2.4.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698", size = 6551240, upload-time = "2026-05-18T23:34:02.852Z" }, { url = "https://files.pythonhosted.org/packages/c9/c6/50a46a6205feba2343f1d6d17438107c5dc491ed1c736e6ea68689fd906b/numpy-2.4.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f", size = 15671012, upload-time = "2026-05-18T23:34:05.485Z" }, { url = "https://files.pythonhosted.org/packages/99/60/14115e6364fa676c5397c2ad3004e527e9aa487abf5d0706ec81bbd08529/numpy-2.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853", size = 16645538, upload-time = "2026-05-18T23:34:09.265Z" }, { url = "https://files.pythonhosted.org/packages/ae/c5/693cbe59e57db94d2231fa519ca3978dc9e19da5a8f088588f5c6e947ff2/numpy-2.4.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a", size = 17020706, upload-time = "2026-05-18T23:34:13.053Z" }, { url = "https://files.pythonhosted.org/packages/ef/fc/85b7c4eff9b4966ade25c2273cf7e7012e92366c032058653934b37de044/numpy-2.4.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2", size = 18368541, upload-time = "2026-05-18T23:34:17.024Z" }, { url = "https://files.pythonhosted.org/packages/f6/81/e1b27545deedce7f4a0b348618c6b62d74e36a4dc9ccd42f3eb2f85eee32/numpy-2.4.6-cp312-cp312-win32.whl", hash = "sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45", size = 5962825, upload-time = "2026-05-18T23:34:20.3Z" }, { url = "https://files.pythonhosted.org/packages/ab/ca/feab00bd44aa5fe1ad2c18f08b4d3bb92e26484b0b1d1443897809ed528c/numpy-2.4.6-cp312-cp312-win_amd64.whl", hash = "sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751", size = 12321687, upload-time = "2026-05-18T23:34:23.095Z" }, { url = "https://files.pythonhosted.org/packages/63/cf/5a6d34850a39d1093558564f77ee8e8e0bee5061151b8f05a55711001ec7/numpy-2.4.6-cp312-cp312-win_arm64.whl", hash = "sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8", size = 10221482, upload-time = "2026-05-18T23:34:25.876Z" }, { url = "https://files.pythonhosted.org/packages/fb/82/bdab26d7438c6791ca31b7c024ca37c1eab8b726ba236129005cd4a06e45/numpy-2.4.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0", size = 16684648, upload-time = "2026-05-18T23:34:29.41Z" }, { url = "https://files.pythonhosted.org/packages/1b/30/a80189bcc7f5e4258b3fbc3968d909d1756f54d023299ecc39ad6fdb9ef8/numpy-2.4.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb", size = 14693902, upload-time = "2026-05-18T23:34:33.013Z" }, { url = "https://files.pythonhosted.org/packages/97/12/70b5d0d7c15e1ebb8a6a84a8caa1d19e181d84fb58bb6d70aca29099dec1/numpy-2.4.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f", size = 5198992, upload-time = "2026-05-18T23:34:36.132Z" }, { url = "https://files.pythonhosted.org/packages/ba/8c/ebd2a8f8a83541f8d38cc5667e8c2b69cecfd30da6e45693e8158857d44b/numpy-2.4.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3", size = 6546944, upload-time = "2026-05-18T23:34:38.484Z" }, { url = "https://files.pythonhosted.org/packages/bb/c5/7b863a97a91671a0338f4253bd3b5a3d3852f0692dae91711c9f4a10e787/numpy-2.4.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b", size = 15669392, upload-time = "2026-05-18T23:34:41.257Z" }, { url = "https://files.pythonhosted.org/packages/a5/9d/3584b9984ca4c047aea75214ce1a4c4c73d849bd71b604264b7f5653f8a8/numpy-2.4.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089", size = 16633220, upload-time = "2026-05-18T23:34:45.075Z" }, { url = "https://files.pythonhosted.org/packages/05/ae/7c67fba23bd98caec7c99261f3a16072ade14813486b0282cb29846de832/numpy-2.4.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a", size = 17020800, upload-time = "2026-05-18T23:34:49.065Z" }, { url = "https://files.pythonhosted.org/packages/d9/5d/3b6725cb31d983c5e66916f5d36f6d7e5521129e4c4404d64f918292a5b6/numpy-2.4.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605", size = 18357600, upload-time = "2026-05-18T23:34:52.709Z" }, { url = "https://files.pythonhosted.org/packages/f7/da/2ccc6c2fe8898dee01d90c75c5f5f914a23daf99e3e0f59516a08760c8b5/numpy-2.4.6-cp313-cp313-win32.whl", hash = "sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91", size = 5961134, upload-time = "2026-05-18T23:34:55.618Z" }, { url = "https://files.pythonhosted.org/packages/b5/cd/9cc4dc876fb065d5c220aae4d5e14826b2715331bb7618ce1fb07a679d99/numpy-2.4.6-cp313-cp313-win_amd64.whl", hash = "sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359", size = 12318598, upload-time = "2026-05-18T23:34:58.928Z" }, { url = "https://files.pythonhosted.org/packages/39/1e/c0bcba1f8694116485fe28fd1be698c278fcda4141c5b0e53a2aed8b12a8/numpy-2.4.6-cp313-cp313-win_arm64.whl", hash = "sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778", size = 10222272, upload-time = "2026-05-18T23:35:02.167Z" }, { url = "https://files.pythonhosted.org/packages/63/6d/cc5619247c8f4204e507f5883528372e4ac4bb189e579fb859a12e480b1f/numpy-2.4.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1", size = 14821197, upload-time = "2026-05-18T23:35:05.468Z" }, { url = "https://files.pythonhosted.org/packages/00/58/f1c39161c87d9e9bed660f1ed4bafc0e403d5ec9650b6dd77aead07d489b/numpy-2.4.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe", size = 5326287, upload-time = "2026-05-18T23:35:08.693Z" }, { url = "https://files.pythonhosted.org/packages/af/57/3917ab0fd97f271a8694513581b8a36c655f111c446852c302f04ccdb6fc/numpy-2.4.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997", size = 6646763, upload-time = "2026-05-18T23:35:11.459Z" }, { url = "https://files.pythonhosted.org/packages/eb/0f/037e64c494b67581ae18193d770adef354c41f3f2c8ebf865602d949bf8f/numpy-2.4.6-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20", size = 15728070, upload-time = "2026-05-18T23:35:14.79Z" }, { url = "https://files.pythonhosted.org/packages/21/a6/5d2bae9c9542eb4df16dc9c46dc79c186e9bad53805dfa5399a6023c6db0/numpy-2.4.6-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d", size = 16681752, upload-time = "2026-05-18T23:35:18.836Z" }, { url = "https://files.pythonhosted.org/packages/92/14/23d1dfb410ae362cd59ce53e936b1513d545eb40db3949ced632e19a459e/numpy-2.4.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67", size = 17086024, upload-time = "2026-05-18T23:35:22.52Z" }, { url = "https://files.pythonhosted.org/packages/4b/6e/23595a2c642cdf3bc567877064bdd7f91c8b0038a4453cf2daf7248eafe9/numpy-2.4.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd", size = 18403398, upload-time = "2026-05-18T23:35:26.398Z" }, { url = "https://files.pythonhosted.org/packages/8a/90/0ac3bc947217e66dec77e7cbc6a1979d1af70b6461b82f620d3bccd5e4c8/numpy-2.4.6-cp313-cp313t-win32.whl", hash = "sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab", size = 6084971, upload-time = "2026-05-18T23:35:29.387Z" }, { url = "https://files.pythonhosted.org/packages/77/71/5673e351671a1d2bd6063b91b44f70c0affea7d1516fa7a6572941ba4aa1/numpy-2.4.6-cp313-cp313t-win_amd64.whl", hash = "sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75", size = 12458532, upload-time = "2026-05-18T23:35:32.175Z" }, { url = "https://files.pythonhosted.org/packages/3f/88/19d3503c5046e688f049274b27a3ef3d771152fa80d3ba3d01a3dff61abe/numpy-2.4.6-cp313-cp313t-win_arm64.whl", hash = "sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd", size = 10291881, upload-time = "2026-05-18T23:35:35.465Z" }, { url = "https://files.pythonhosted.org/packages/f8/91/3ab2044d05fd16d343c5ac2e69b127f1b2854040dd20b193257c78028bd3/numpy-2.4.6-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079", size = 16683458, upload-time = "2026-05-18T23:35:38.353Z" }, { url = "https://files.pythonhosted.org/packages/8e/62/764ce66fa4147ae6d73071a3abf804ffe606f174618697c571acdf26a7c9/numpy-2.4.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7", size = 14704559, upload-time = "2026-05-18T23:35:42.14Z" }, { url = "https://files.pythonhosted.org/packages/60/61/23f27c172f022e04025b7dc2367f4d63c1a398120607ec896228649a6f48/numpy-2.4.6-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5", size = 5209716, upload-time = "2026-05-18T23:35:45.377Z" }, { url = "https://files.pythonhosted.org/packages/03/71/21cf70dc6ea3e3acb95fc53a265b2fc248b981f0194ceb5b475271b8809d/numpy-2.4.6-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096", size = 6543947, upload-time = "2026-05-18T23:35:47.926Z" }, { url = "https://files.pythonhosted.org/packages/d5/91/64288395ee1799bd2e0b04a305dce9666da90c961e1f3fe982a05ee1c036/numpy-2.4.6-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b", size = 15685197, upload-time = "2026-05-18T23:35:50.863Z" }, { url = "https://files.pythonhosted.org/packages/f3/eb/ebffaa97dc55502df69584a8f0dcf07f69a3e0b3e2323670a2722db9aa39/numpy-2.4.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8", size = 16638245, upload-time = "2026-05-18T23:35:54.752Z" }, { url = "https://files.pythonhosted.org/packages/b8/0b/54f9da33128d7e350fab89c7455902eeae70349ee52bddb448dc4a576f45/numpy-2.4.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402", size = 17036587, upload-time = "2026-05-18T23:35:58.355Z" }, { url = "https://files.pythonhosted.org/packages/b6/f0/fdebc1052db1cc37c64beb22072d67cd6d1c71adca1299f53dec2b5e20d3/numpy-2.4.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb", size = 18363226, upload-time = "2026-05-18T23:36:02.845Z" }, { url = "https://files.pythonhosted.org/packages/aa/b4/298628d98c72b57e57f7165ae6a481a1deaf6f3c28262a6e4c739c275930/numpy-2.4.6-cp314-cp314-win32.whl", hash = "sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1", size = 6010196, upload-time = "2026-05-18T23:36:05.92Z" }, { url = "https://files.pythonhosted.org/packages/df/ac/46de6dda46478f7942f839e094970be2d4a861e005c4b3bf07c92e291a09/numpy-2.4.6-cp314-cp314-win_amd64.whl", hash = "sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261", size = 12450334, upload-time = "2026-05-18T23:36:09.107Z" }, { url = "https://files.pythonhosted.org/packages/78/92/b8b798ac784102c0da830d2257d59358e3d3d90d1e2b3f2575dad976c5cf/numpy-2.4.6-cp314-cp314-win_arm64.whl", hash = "sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6", size = 10495678, upload-time = "2026-05-18T23:36:12.766Z" }, { url = "https://files.pythonhosted.org/packages/30/34/ec28d1aa8115971537c01469ab2011ee96827930f0a124de1000cc2a7ed7/numpy-2.4.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a", size = 14823672, upload-time = "2026-05-18T23:36:16.473Z" }, { url = "https://files.pythonhosted.org/packages/16/bd/f6d1fede4e54e8042a7ff97bb495510f3c220f94bcd9e8b228e87c92cc0d/numpy-2.4.6-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e", size = 5328731, upload-time = "2026-05-18T23:36:19.767Z" }, { url = "https://files.pythonhosted.org/packages/f4/f0/e105b9e2fd728a9910103884decd6951d9dd73896b914a98d9a231de02ee/numpy-2.4.6-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e", size = 6649805, upload-time = "2026-05-18T23:36:22.266Z" }, { url = "https://files.pythonhosted.org/packages/82/dd/1206a7ca6ab15e3f02069707ca96222e202af681bb73756da7527f3cb837/numpy-2.4.6-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43", size = 15730496, upload-time = "2026-05-18T23:36:25.713Z" }, { url = "https://files.pythonhosted.org/packages/51/e7/38d3ea825dcab85a591734decb2f6c67caa7c8367d374df1a1c3842f9b07/numpy-2.4.6-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e", size = 16679616, upload-time = "2026-05-18T23:36:29.652Z" }, { url = "https://files.pythonhosted.org/packages/93/b7/caabfdf53edf663e0b4eb74d7d405d83baef09eb5e83bcd32d601d72b93e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895", size = 17085145, upload-time = "2026-05-18T23:36:33.449Z" }, { url = "https://files.pythonhosted.org/packages/f9/45/68d7c33a6bcf3e5aa3bdbd57a367e6f615286dfd6482f97e8ffeb734306e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4", size = 18403813, upload-time = "2026-05-18T23:36:37.369Z" }, { url = "https://files.pythonhosted.org/packages/9c/50/0753655aa844c99cd9e018aacf76f130f1bd81d881bb74bc0aef5d73a8ba/numpy-2.4.6-cp314-cp314t-win32.whl", hash = "sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063", size = 6156982, upload-time = "2026-05-18T23:36:40.817Z" }, { url = "https://files.pythonhosted.org/packages/b2/d4/7c67becf668f973cb490cec3e98dfd799d866f9c989a54d355672cfa0db6/numpy-2.4.6-cp314-cp314t-win_amd64.whl", hash = "sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627", size = 12638908, upload-time = "2026-05-18T23:36:43.996Z" }, { url = "https://files.pythonhosted.org/packages/43/bb/e1c71a4295b1b1d1393d50dbb4f2a36283c6859d9d3892e84f00ec5a91d5/numpy-2.4.6-cp314-cp314t-win_arm64.whl", hash = "sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66", size = 10565867, upload-time = "2026-05-18T23:36:47.114Z" }, { url = "https://files.pythonhosted.org/packages/de/12/b422cc84439adc0d00de605bf4a308890ae5c26f2c71fbd73e5d08fbb0dd/numpy-2.4.6-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662", size = 16847511, upload-time = "2026-05-18T23:36:50.673Z" }, { url = "https://files.pythonhosted.org/packages/44/53/f481bef68011740f8849418d82db07230e825013f31f4eef5ba5b805316a/numpy-2.4.6-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7", size = 14889064, upload-time = "2026-05-18T23:36:53.879Z" }, { url = "https://files.pythonhosted.org/packages/7f/57/42ed575c10ced8af951d426bc4e1f8aff16fd851db33f067036215a7f860/numpy-2.4.6-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f", size = 5394157, upload-time = "2026-05-18T23:36:57.194Z" }, { url = "https://files.pythonhosted.org/packages/6a/ef/f66cc724fcc36c1e364c67f51ae9146090b8b584f27d58b97fdae3edd737/numpy-2.4.6-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c", size = 6708728, upload-time = "2026-05-18T23:36:59.575Z" }, { url = "https://files.pythonhosted.org/packages/1a/9c/c531f2293b91265d8b48e9b329f54fdd7ffae73cb4134ea10cca4237e9cc/numpy-2.4.6-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0", size = 15798374, upload-time = "2026-05-18T23:37:02.674Z" }, { url = "https://files.pythonhosted.org/packages/1a/b0/413077f6b1153ed3cba361401c6783bbad6114804a000cc22eb71c13e190/numpy-2.4.6-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02", size = 16747286, upload-time = "2026-05-18T23:37:06.327Z" }, { url = "https://files.pythonhosted.org/packages/15/ce/e5ec180bc41812edcd8daeb8639d205622c0e8c02259d8ab25a0201b3c2a/numpy-2.4.6-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73", size = 12504263, upload-time = "2026-05-18T23:37:09.715Z" }, ] [[package]] name = "numpy" version = "2.5.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.12'", ] sdist = { url = "https://files.pythonhosted.org/packages/9a/80/db0b4559e57ec36362bedbb05530a87fafbcb6067708c946967a41d449e7/numpy-2.5.2.tar.gz", hash = "sha256:d482d171c406ae88c5b19cad3b6a1c4c5209f886ab74bc44c2c865c23f52d860", size = 20773161, upload-time = "2026-08-09T13:48:27.962Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/69/72/dccb0aaf40972777283303919f613964227266d0c13adebb79ac124f1c3e/numpy-2.5.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:14e373cfc6387177e8409dac3c7159be8eb05cd77096cd7c950268b86f62831c", size = 16891693, upload-time = "2026-08-09T13:44:51.702Z" }, { url = "https://files.pythonhosted.org/packages/60/2e/b5aee50a1f74ac815cf8331812cb8251e29024025de462e0c047641c614c/numpy-2.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4bbd96c833ecc8cc069ce518078fc8c60cb9cbfb0fea5b7a803ad65035596d03", size = 11903109, upload-time = "2026-08-09T13:44:55.501Z" }, { url = "https://files.pythonhosted.org/packages/f3/f4/29e78102a80601cf034d4e9767022cffeca2c3b4c926e1754572ca95593d/numpy-2.5.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:6e8172ddfcf5cf74b811d372b570b83c60bd2de87a6fbfbebdadb4a9bd9c6cbb", size = 5350202, upload-time = "2026-08-09T13:44:58.401Z" }, { url = "https://files.pythonhosted.org/packages/11/4b/dcd3b7eadaf4035d2c7a4289d232523a6964f602598ef7674e4bd7291f93/numpy-2.5.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:65f188481f1669e26f62b701e8205d19e460fa4a9b52a1414ba382330e4a3414", size = 6687736, upload-time = "2026-08-09T13:45:00.813Z" }, { url = "https://files.pythonhosted.org/packages/e5/21/4947e0e9d6c9fc2e2ff15b8949049ee44f63adb9cacc729ab8793f97e712/numpy-2.5.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8ee9c4eeb8454b3660a8b53493563c3e121c2fc94fbd72b848ef814ed7b676a9", size = 15612696, upload-time = "2026-08-09T13:45:04.151Z" }, { url = "https://files.pythonhosted.org/packages/3a/5f/62d28cf019460c7f1394105b4d49d9911a9c444cb77ab0bd95a204c5a6de/numpy-2.5.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3cdec01fa790a186d430433fdd4d4ffb70eed6f0eeb4bf05c8dbe2dce0a9bcb8", size = 16722264, upload-time = "2026-08-09T13:45:07.714Z" }, { url = "https://files.pythonhosted.org/packages/14/25/3f0be4c1b9fdf5dd5e708a6806978564d7c46a055c000496309ff2a2f8af/numpy-2.5.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7999d4ddb0c4025018373fd787510d46e04c769467af22869707b3c1cfd459ab", size = 16974396, upload-time = "2026-08-09T13:45:11.316Z" }, { url = "https://files.pythonhosted.org/packages/22/72/6262cbdeeb45da9d971e40715f579d791603ba8ec0b5e2db1ac55454421d/numpy-2.5.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c1f017dc0875c9209d219f97feceb7d54c2661bb243deb4114478e1295808af7", size = 18476044, upload-time = "2026-08-09T13:45:14.869Z" }, { url = "https://files.pythonhosted.org/packages/36/33/29208b8b075bde62d26a81d14b358c42b0f69b6cabd98d4ff97f37f22b05/numpy-2.5.2-cp312-cp312-win32.whl", hash = "sha256:d6a48072864e3324e194a8fbb3c657bcc5b5c869dbc64c9537b1d5c862572c0a", size = 6072817, upload-time = "2026-08-09T13:45:17.867Z" }, { url = "https://files.pythonhosted.org/packages/7f/b9/87fea2769fe1c47c1b5b01d8310772c9d1a85d485de7cf386ef7a3332b02/numpy-2.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:28ac63476ec7651484215ee7fa15a1f78b57c14621f01e392afe17b9a1390ce4", size = 12464674, upload-time = "2026-08-09T13:45:20.734Z" }, { url = "https://files.pythonhosted.org/packages/14/52/032b97e00461ab0809bbe4c588b035620e5a14b8cdee47ecddefc7b17d33/numpy-2.5.2-cp312-cp312-win_arm64.whl", hash = "sha256:27650bb0e7140fa3d37b9923b4803645e0b125d190f326eecfd3f4dad8e8ade1", size = 10397131, upload-time = "2026-08-09T13:45:23.73Z" }, { url = "https://files.pythonhosted.org/packages/f5/d2/6b24738a0ef4557d189b150046cd07823c50e4273e8aebd651222e24306f/numpy-2.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8e4cb9a754c8a0c62eaa88273a5fba3391f4a610d1dee893c0755da31c083f15", size = 16886595, upload-time = "2026-08-09T13:45:27.323Z" }, { url = "https://files.pythonhosted.org/packages/65/60/f2d208d366f263f39c6e69ed309290717aab41078b6d04c9be2a84fa2a07/numpy-2.5.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:52c808f96484f5571a5cc863775ce50247c17dfb3b0361f8ed6b4b0456f80080", size = 11896845, upload-time = "2026-08-09T13:45:31.638Z" }, { url = "https://files.pythonhosted.org/packages/3c/79/81e0bf24f4d020a2b1d5cd297a9f60c3f24eeb116f9bba5870443f7b6a4a/numpy-2.5.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:29d81e97f668489cba8ebfd796b9bdd453525d35dd9e162e2daec94bf3fc7740", size = 5343880, upload-time = "2026-08-09T13:45:34.373Z" }, { url = "https://files.pythonhosted.org/packages/ba/cc/e3141cf06d1a8a2c7e107543fe1269c1d1af760d4d683c0794a4ee1127c2/numpy-2.5.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:afb3f0632d6b2e3ba04dbce8d1e48d321b369138b73830b5ca371a0e8d479d56", size = 6682264, upload-time = "2026-08-09T13:45:36.7Z" }, { url = "https://files.pythonhosted.org/packages/29/f1/2a64a307d92c5d98f5255a4014eb43bb6103ee477087b61ecae44a3aa9b9/numpy-2.5.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0aadf13b60048d501e05fa699efaf7734e2494f3498a4c2a5521d822640324f3", size = 15609566, upload-time = "2026-08-09T13:45:39.518Z" }, { url = "https://files.pythonhosted.org/packages/7b/44/59a1eb68e773c4098d107ef34a0dbdeca501d72ffcfbff9a7707343921ce/numpy-2.5.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:29b86ff8a6cc556b47ec6b64b194815cc80e6bf5eedcc6cddfd65318cb0b4eee", size = 16709995, upload-time = "2026-08-09T13:45:43.661Z" }, { url = "https://files.pythonhosted.org/packages/8a/4c/3e54d4ddbc359a1295f8b633e8106bcd4d7d4a206e82df051bdfb3058755/numpy-2.5.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6950c4b7dd562453090548ba7f5da7e59f57f85663f15d5dcc60e249192f7e59", size = 16972511, upload-time = "2026-08-09T13:45:47.094Z" }, { url = "https://files.pythonhosted.org/packages/f2/9f/02e371638ebf19b66d46231e4be52999e87f32d1961b113bc45656608b22/numpy-2.5.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9727f472d2f3888053b8a75ab0cb94745a9de224bb5846dbadc0092101bc71d", size = 18465609, upload-time = "2026-08-09T13:45:50.808Z" }, { url = "https://files.pythonhosted.org/packages/eb/ae/ad6645abc7a3510fe48e8ea1ab4598166f500057ef4ebf38bfad4f1577de/numpy-2.5.2-cp313-cp313-win32.whl", hash = "sha256:4f9744f9fbdcea0bc552e8f19e1f141f811a3f9bc2be2cc6e86d982cab23e3f4", size = 6070204, upload-time = "2026-08-09T13:45:54.111Z" }, { url = "https://files.pythonhosted.org/packages/15/20/f3489f86d81ea460b2bcdceaed094142ca6579f6be0ec527b781d39afe68/numpy-2.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:85aaccb24182c25df891ad0ec333585967e115269d5f1b17f2c9ae005bc96657", size = 12460532, upload-time = "2026-08-09T13:45:57.167Z" }, { url = "https://files.pythonhosted.org/packages/d5/21/35b31dde1b283b79de828b80f876afd8c94e28fe1e9c375f89e261cc4c0d/numpy-2.5.2-cp313-cp313-win_arm64.whl", hash = "sha256:bd68ece1553d2023c09a4226d9e41c586ad2d20594d1a456186c33513d2cb3f2", size = 10396725, upload-time = "2026-08-09T13:46:00.478Z" }, { url = "https://files.pythonhosted.org/packages/ac/f8/c3b222bf075b50afd8e949a07a15c4b312a4a84bd8102a332bcd953cbbb4/numpy-2.5.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d787cf769c3baeb5f6235e778edb52c08dfa923789b5958f28e6450f96107cb1", size = 16885180, upload-time = "2026-08-09T13:46:03.939Z" }, { url = "https://files.pythonhosted.org/packages/17/e1/2c1d4b1987795a92b5bbf7c24fe249ab96aa2573ab0d7604802c189d7b86/numpy-2.5.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:24b9dc2e3d84aa58523798805194e23e736f3f6ce2d1a5b92583ae734e6dbda8", size = 11907878, upload-time = "2026-08-09T13:46:07.045Z" }, { url = "https://files.pythonhosted.org/packages/b9/ee/d08226fc858044355983a6e5b94f08ff6f3969e0a2b160a4a89f0ddb3445/numpy-2.5.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:9e9413326d726c2545bfa65d2c0876871e8d8386e77f992c1d426e180bbd4323", size = 5354922, upload-time = "2026-08-09T13:46:10.04Z" }, { url = "https://files.pythonhosted.org/packages/94/f0/6d3d933056440ebbc5e6bad92065fc6c26a48a84a36b1208580e94eea76c/numpy-2.5.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:60e902ac295855348a5ca2ea4c89108989a9f5fddfad3dfc0a8f36b10358567e", size = 6679168, upload-time = "2026-08-09T13:46:12.275Z" }, { url = "https://files.pythonhosted.org/packages/c4/3b/ecd49dd90033cceb2704d88ca905d4d7d89b0e8c739608754ffd325fa820/numpy-2.5.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50e500dc868e9313530ce12ba470fe50ff3afe3d62993ed6eff652dacd555b65", size = 15624501, upload-time = "2026-08-09T13:46:15.322Z" }, { url = "https://files.pythonhosted.org/packages/c7/99/461bd36dbdfac6c1c53efa370bd55a83227542d0d118f1677dbf1a3dacd5/numpy-2.5.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318b9a4c845dbea06708a29c84ee429cc3065048db34cdb799047643492050ee", size = 16713701, upload-time = "2026-08-09T13:46:18.949Z" }, { url = "https://files.pythonhosted.org/packages/f9/9c/2b251df9e8a5d647b62b0cbc1b90a91850c1cf4859ecb532fd0b4eacff6c/numpy-2.5.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:34c319e2963be042673fb46570501b2f06c41924e17e3563d58646b4380dfb68", size = 16986065, upload-time = "2026-08-09T13:46:23.006Z" }, { url = "https://files.pythonhosted.org/packages/8f/25/20de43f53ff1390534a124475055a19f01fe10c920a0fd11b8e18d6d6052/numpy-2.5.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f06571a052127dc1b4e8b83029b4d1b20daa2b64a31cdd181fc6bc774e9000eb", size = 18470031, upload-time = "2026-08-09T13:46:27.102Z" }, { url = "https://files.pythonhosted.org/packages/56/5e/0c577ca308d6da5eb79b546ba10bbe5b60148192194e2da060913b1de4f1/numpy-2.5.2-cp314-cp314-win32.whl", hash = "sha256:2cc779226e476d1e1f08c74068c419e60f41a9e0e069c92f6671d31d5c985e98", size = 6121028, upload-time = "2026-08-09T13:46:30.046Z" }, { url = "https://files.pythonhosted.org/packages/15/5c/7bcbd5b11f94199073320410cddcbb80cee62415bfeb540874b265c2d922/numpy-2.5.2-cp314-cp314-win_amd64.whl", hash = "sha256:7587f53dfbd5edc0f7b87c6217b4c6d2d1f2ef9c3da70bc1315e7db5f8d7ec9d", size = 12597627, upload-time = "2026-08-09T13:46:32.886Z" }, { url = "https://files.pythonhosted.org/packages/87/bc/4d0b06fba0da90ccc75af62823cb9dcedb6c9ea0cffa058cb2c9ee773a77/numpy-2.5.2-cp314-cp314-win_arm64.whl", hash = "sha256:3e4c367352d3747784248a227fbec218e193b56f7e6692e3b64fc805478ecfdf", size = 10680414, upload-time = "2026-08-09T13:46:36.036Z" }, { url = "https://files.pythonhosted.org/packages/cd/17/f429aac9dc08833a0d0f188eba38c532a751b1a1f2ca6018a37b455cb321/numpy-2.5.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b879fb674276e331513fb136b78dbc6bd3c848309e0d841cfd63be3896c4cfc1", size = 12026967, upload-time = "2026-08-09T13:46:39.084Z" }, { url = "https://files.pythonhosted.org/packages/ca/9f/d0849de96a2a4ceaa16662f18ee13eaa9c0aa418269fdc8c4857c56b11da/numpy-2.5.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:fd0d703772bba096843785bd38371e31bb4a0c1151497ad5739d182114a73f7f", size = 5473874, upload-time = "2026-08-09T13:46:42.075Z" }, { url = "https://files.pythonhosted.org/packages/89/3c/8df216d4a4a5422a3de045301cf7df8ea47286d76f5cb7160b0128ac26b7/numpy-2.5.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:3a2f061cebd9e3d23bdcfaaded5e2293a4c6a5b60fa42df85d410a725ce621bf", size = 6789276, upload-time = "2026-08-09T13:46:44.387Z" }, { url = "https://files.pythonhosted.org/packages/e6/3a/20d7e9891c4ddfadd6ff8d95bf4b29f353d8e1770553de2099880551dfb9/numpy-2.5.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6df895598c0edcb41030126c89e0f353b07d93238116143b7405e937359736c4", size = 15659154, upload-time = "2026-08-09T13:46:47.538Z" }, { url = "https://files.pythonhosted.org/packages/aa/d6/f3aa3d2688bf501b858835c6bd087ae9b51a56ae6fca8e2b0990abd177af/numpy-2.5.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1ab3d4a901f844ea836c3e80bf463c6a27d7f3c14e8e292fcf28d348b25b9bce", size = 16748909, upload-time = "2026-08-09T13:46:51.442Z" }, { url = "https://files.pythonhosted.org/packages/7d/8f/1c5cae8d2baf86ab802ae97a00be55bc7e21ebc11b12bbc33376c5f05342/numpy-2.5.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:cebc2d6dbb605a7703d59751dea4bd6b0ab127a5a4338a6f432df1936fef8b26", size = 17027685, upload-time = "2026-08-09T13:46:55.095Z" }, { url = "https://files.pythonhosted.org/packages/5c/27/71d3467404aedc1c24ce79610f91b52b0b0f466c43a701aa56fc75c145ab/numpy-2.5.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:eaca7ff36f0f52e2111ec71f169d8fd3e889e7ddc0d2592e0d703fd8d3ce8fac", size = 18501181, upload-time = "2026-08-09T13:46:59.09Z" }, { url = "https://files.pythonhosted.org/packages/14/2f/42921d27c40aea7e077f4a423ae509fd9220b028cd787bafefd8ab2b3a5f/numpy-2.5.2-cp314-cp314t-win32.whl", hash = "sha256:ddf47472af2e4280d79bac82304f5e80150211f1b9e614b760061d5fdfbb6eba", size = 6271085, upload-time = "2026-08-09T13:47:01.903Z" }, { url = "https://files.pythonhosted.org/packages/75/e6/bad5f5d56de9b1971bac959963dda276d35c40f1854475005434bbe08692/numpy-2.5.2-cp314-cp314t-win_amd64.whl", hash = "sha256:44ef9675d908e65f9953063837c3277730f3f4437615a4cdab67b366cabaf884", size = 12787971, upload-time = "2026-08-09T13:47:04.963Z" }, { url = "https://files.pythonhosted.org/packages/df/05/f608795cb34391acd67e38d94a3c36abd8d8576293a3a80727d7595c372c/numpy-2.5.2-cp314-cp314t-win_arm64.whl", hash = "sha256:eaa088384c46f519dacb93b7ec483a6d6b19a4a2085ae4f25ab9b1c43d387d1e", size = 10750306, upload-time = "2026-08-09T13:47:07.976Z" }, { url = "https://files.pythonhosted.org/packages/33/c6/28de0191c5f82b7d42a0a51390ba98587048aa93a39fafb05bdbe6e8d00c/numpy-2.5.2-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:078f9b027b478c9379b9677babbf0f8b8f1ecfada27636d7b9a93990c638739f", size = 16885274, upload-time = "2026-08-09T13:47:11.439Z" }, { url = "https://files.pythonhosted.org/packages/dd/d1/973ca116000d244897e468ea1aff30b589e5022e3c8744b71706fe33bd57/numpy-2.5.2-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:50a68f4bacd8a2b33d8da3d2269d0d78500f86ea582e4786dc10f5ef2c2c6842", size = 11907846, upload-time = "2026-08-09T13:47:15.128Z" }, { url = "https://files.pythonhosted.org/packages/78/d9/8c4b3937ef204cb2fd88d389ccd0f265a2ffb11f35a01d2064cf46714bd6/numpy-2.5.2-cp315-cp315-macosx_14_0_arm64.whl", hash = "sha256:e79aba74ffaf5f78a050d777c184cddf8fdffabab38acf5f3ef1fecbc17895d6", size = 5354892, upload-time = "2026-08-09T13:47:18.07Z" }, { url = "https://files.pythonhosted.org/packages/74/9b/b6ee65ea2999fdb7023935e108e6fb776ee4082aa15f159acfa857e578c8/numpy-2.5.2-cp315-cp315-macosx_14_0_x86_64.whl", hash = "sha256:9a0731745a72a184490a582fb4af2533512bd071ace67785b5fdffc0ae58dce8", size = 6679309, upload-time = "2026-08-09T13:47:20.456Z" }, { url = "https://files.pythonhosted.org/packages/43/f3/acb18d8b137a393c8e7803a8c994c9e64bde3930692a69d826993113a159/numpy-2.5.2-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4ec954036759bcee3aa484f8603bd9c14f3e776293b85578b8734c2d72777c69", size = 15625850, upload-time = "2026-08-09T13:47:24.365Z" }, { url = "https://files.pythonhosted.org/packages/a9/bf/a8e9bb0db815a0e265b5744ebedd3af0bd5faad8604e5b50a1cd012f3c91/numpy-2.5.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dc649493697006bc90614a5f0bbc8cb3cb1866715c474e473694968d7e6b99ab", size = 16713664, upload-time = "2026-08-09T13:47:27.965Z" }, { url = "https://files.pythonhosted.org/packages/0c/c3/6e913736b3dd6582344af32418b5fb9dab34282e8a8174ae1d54ceb0fc13/numpy-2.5.2-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:cf7de32f486e4ac9e2d93b810f9e9ac72a728dd46a32a0bb403222f27f653514", size = 16986749, upload-time = "2026-08-09T13:47:31.541Z" }, { url = "https://files.pythonhosted.org/packages/80/09/7d3b23eff5c7428ef6c01e6f7052bb60d504c4d33e317b36b8959c24ad97/numpy-2.5.2-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:2ffa7bacab3e2ee1b19ed31766bb60bb380b68c23f051e199c5cc598afd68710", size = 18470495, upload-time = "2026-08-09T13:47:35.364Z" }, { url = "https://files.pythonhosted.org/packages/a5/a4/68a321d825374f6eb677ffe8ef8c6b9a328304e6fd2e39d9530822776607/numpy-2.5.2-cp315-cp315-win32.whl", hash = "sha256:6b588cc8f902d6bff201c19fd00c43ab8545671e3554d014e12e14139e5e8617", size = 6120696, upload-time = "2026-08-09T13:47:38.561Z" }, { url = "https://files.pythonhosted.org/packages/c8/23/deafbb1700f79fae9cd1e91220f133d124cc267de1b584da3fbf6db2f6cd/numpy-2.5.2-cp315-cp315-win_amd64.whl", hash = "sha256:07d4e89f3a9ab0a9ba24264ccdb642b3dd951b2281e8883a5481a4aa79cc31a7", size = 12597324, upload-time = "2026-08-09T13:47:41.401Z" }, { url = "https://files.pythonhosted.org/packages/33/cd/3272ba105e3bbbdaeb11357eda31e7a6825ffe159e8171665660299a948f/numpy-2.5.2-cp315-cp315-win_arm64.whl", hash = "sha256:a610dc7e3c52edd39c2bc2375ff9c3fd59cb3ad00e4472d36f83bc1457145788", size = 10680466, upload-time = "2026-08-09T13:47:44.873Z" }, { url = "https://files.pythonhosted.org/packages/0e/0e/58370637b1bb70a5c9ce2b43f4b521ccb224e36ccb76a6596b17ae4b447c/numpy-2.5.2-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:40f4d451aed46a8046a1aae41c4e55fb3612273df9c502480135e1501576a34b", size = 16993947, upload-time = "2026-08-09T13:47:48.97Z" }, { url = "https://files.pythonhosted.org/packages/10/93/2abcb807712b289d6d60fe4cf30532f98974a8396d885650f3ba5a13026e/numpy-2.5.2-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:c081cbe16ba1ab53078e5ff29013621e33c509eedab055775d956427712c236e", size = 12025331, upload-time = "2026-08-09T13:47:52.646Z" }, { url = "https://files.pythonhosted.org/packages/8b/3a/2898e003a5fbaf87e76c039b4ee1f5eb390471b4ffe74887c1f34c4e791e/numpy-2.5.2-cp315-cp315t-macosx_14_0_arm64.whl", hash = "sha256:0090ccdd57ec2703e9b49d0bf554767370581c1dd0a6b2bb2b2d9def317d042a", size = 5472336, upload-time = "2026-08-09T13:47:55.403Z" }, { url = "https://files.pythonhosted.org/packages/61/a5/23f69d07c544597b29758b31b55c27dc9d541012a2c1496189fef702aec2/numpy-2.5.2-cp315-cp315t-macosx_14_0_x86_64.whl", hash = "sha256:6a9bb119fb8dd21ba30b3f0e555b7e2b081bd9883af21ec9c1c633d161cda3a8", size = 6788387, upload-time = "2026-08-09T13:47:58.192Z" }, { url = "https://files.pythonhosted.org/packages/15/ea/c0dbdbcf22f43782510a3e492dd3da73c6112b69cac8929d16d127536fc4/numpy-2.5.2-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a839318485284a6fb31be4f8f2c91c8f2cb22f4543c4a8903f12b0671ffe07cc", size = 15667096, upload-time = "2026-08-09T13:48:01.562Z" }, { url = "https://files.pythonhosted.org/packages/fc/5e/29c73c31748cdb0f7566642125ba17fd5b56780cddf891b085dab27e4466/numpy-2.5.2-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba0a474801b8dc67b66bf465548abc90e82b44d2611b5770f33008dcabffe8ec", size = 16751730, upload-time = "2026-08-09T13:48:05.706Z" }, { url = "https://files.pythonhosted.org/packages/47/95/02501e8454796bb58dadf7a99d3181e0b464bf264e1003039572f9779fac/numpy-2.5.2-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:0a4035ae1129ff8777f08bfbd44f1e5d8e9c049ce0c2dd78fc0d92c13e7251c0", size = 17038686, upload-time = "2026-08-09T13:48:09.627Z" }, { url = "https://files.pythonhosted.org/packages/0e/b5/53a681d91b5c82687067d8ea5035e02d917b5509d6f334cb06484a954714/numpy-2.5.2-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:77843ca236b777e67f8d6b3660ea116e499612703a0ecd7093f316201eb9d8e2", size = 18507727, upload-time = "2026-08-09T13:48:13.744Z" }, { url = "https://files.pythonhosted.org/packages/42/06/6e11443f7b64ee376c860506091103bf68f92d2cab9e8d96d4501babf07c/numpy-2.5.2-cp315-cp315t-win32.whl", hash = "sha256:7354826bc6f8f69402e9b7fe28d15fcd34feebd74f856f111585c5b0c9fb0251", size = 6269775, upload-time = "2026-08-09T13:48:17.543Z" }, { url = "https://files.pythonhosted.org/packages/f1/18/195d6b86cd72dbbc501edfa778005fa6b87afd34c153e46028cd3a0938f4/numpy-2.5.2-cp315-cp315t-win_amd64.whl", hash = "sha256:e5651f3f87add730ee6608d915009e19c911fba0cb000c7e3ea994b7d768eb12", size = 12782559, upload-time = "2026-08-09T13:48:21.023Z" }, { url = "https://files.pythonhosted.org/packages/b4/07/458c344f0f0c178f4481dad5cca790626ffe4c34eabf9467069d06ee4999/numpy-2.5.2-cp315-cp315t-win_arm64.whl", hash = "sha256:5f8e00be2ec6f45f4e8a41a527f68d44a7d96fee92a650e4d8b1326f77f61e6e", size = 10748103, upload-time = "2026-08-09T13:48:24.21Z" }, ] [[package]] name = "packaging" version = "26.3" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/7d/fa/3944b40b07da9ce895c0e6303a5ab7d53da063554f534556b134a54d6093/packaging-26.3.tar.gz", hash = "sha256:94edc256424af38762eb31306eed28beb9f0efc50a8837492c9d6fd6004aed79", size = 313412, upload-time = "2026-08-04T18:15:28.737Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/63/34/ba1c580383c9eada3711951fef0795c80b829a078d72188184bcab9dd527/packaging-26.3-py3-none-any.whl", hash = "sha256:d7193f7c8e4e93f444fde0262bf90af30e16fa0ad0ad44cb553c87339b23cd1c", size = 129956, upload-time = "2026-08-04T18:15:27.159Z" }, ] [[package]] name = "partd" version = "1.4.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "locket" }, { name = "toolz" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b2/3a/3f06f34820a31257ddcabdfafc2672c5816be79c7e353b02c1f318daa7d4/partd-1.4.2.tar.gz", hash = "sha256:d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c", size = 21029, upload-time = "2024-05-06T19:51:41.945Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl", hash = "sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f", size = 18905, upload-time = "2024-05-06T19:51:39.271Z" }, ] [[package]] name = "pillow" version = "12.3.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/1c/3d/bb7fca845737cf9d7dbde16ed1843984665ff2e0a518f5db43e77ec540b9/pillow-12.3.0.tar.gz", hash = "sha256:3b8182a766685eaa002637e28b4ec8d6b18819a0c71f579bf0dbaa5830297cce", size = 47025035, upload-time = "2026-07-01T11:56:38.965Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/fb/c8/0a78b0e02d7ac54bc03e5321c9220da52f0c2ea83b21f7c40e7f3169c502/pillow-12.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:00808c5e14ef63ac5161091d242999076604ff74b883423a11e5d7bbb38bf756", size = 5392415, upload-time = "2026-07-01T11:53:47.162Z" }, { url = "https://files.pythonhosted.org/packages/b2/5b/a02d30018abd97ced9f5a6c63d28597694a00d066516b9c1c6de45859fc9/pillow-12.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37d6d0a00072fd2948eb22bce7e1475f34569d90c87c59f7a2ec59541b77f7a6", size = 4785266, upload-time = "2026-07-01T11:53:49.079Z" }, { url = "https://files.pythonhosted.org/packages/c8/98/766667a4be768150a202836acd9fad19c06824ca86c4286d3cf6b274964e/pillow-12.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bcb46e2f9feff8d06323983bd83ed00c201fdcab3d74973e7072a889b3979fcd", size = 6263814, upload-time = "2026-07-01T11:53:51.32Z" }, { url = "https://files.pythonhosted.org/packages/3b/2d/ede717bc1144f63886c21fd349bb95860b0d1a21149ff16f2bb362b612b6/pillow-12.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23d27a3e0307ec2244cc51e7287b919aa68d097504ebe19df4e76a98a3eea5bd", size = 6934408, upload-time = "2026-07-01T11:53:53.487Z" }, { url = "https://files.pythonhosted.org/packages/a3/48/9c58b685e69d49c31af6c8eb9012055fab7e665785165c84796e2c73ce72/pillow-12.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4f883547d4b7f0495ebe7056b0cc2aea76094e7a4abc8e933540f3271df27d9c", size = 6337160, upload-time = "2026-07-01T11:53:55.457Z" }, { url = "https://files.pythonhosted.org/packages/ff/fa/dc2a5c0ba6df93f67c31d34b808b7ce440b40cdbf96f0b81cde1d1e6fa93/pillow-12.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:236ff70b9312fb68943c703aa842ca6a758abfa45ac187a5e7c1452e96ef72b5", size = 7045172, upload-time = "2026-07-01T11:53:57.736Z" }, { url = "https://files.pythonhosted.org/packages/86/a5/444817a4d4c4c2417df00513086ca196f388d8f9ef40c2e4ccd1ad1af54b/pillow-12.3.0-cp311-cp311-win32.whl", hash = "sha256:10e41f0fbf1eec8cfd234b8fe17a4caac7c9d0db4c204d3c173a8f9f6ef3232b", size = 6472232, upload-time = "2026-07-01T11:53:59.767Z" }, { url = "https://files.pythonhosted.org/packages/63/c6/4bad1b18d132a50b27e1365e1ab163616f7a5bb56d330f66f9d1d9d4f9d4/pillow-12.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8e95e1385e4998ae9694eeaa4730ba5457ff61185b3a55e2e7bea0880aef452a", size = 7233653, upload-time = "2026-07-01T11:54:02.066Z" }, { url = "https://files.pythonhosted.org/packages/fd/16/00f91ab7760dc842f5aad55217e80fc4a7067a0604535249bc8a2d6d9870/pillow-12.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:ebaea975e03d3141d9d3a507df75c9b3ec90fa9d2ffd07567b3a978d9d790b26", size = 2568195, upload-time = "2026-07-01T11:54:04.622Z" }, { url = "https://files.pythonhosted.org/packages/37/bf/fb3ebff8ddcb76aac5a01389251bbbb9519922a9b520d8247c1ca864a25d/pillow-12.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ba09209fbe443b4acccebe845d8a138b89a8f4fbaeedd44953490b5315d5e965", size = 5345969, upload-time = "2026-07-01T11:54:06.397Z" }, { url = "https://files.pythonhosted.org/packages/d8/66/9a386a92561f402389a4fc70c18838bf6d35eb5eb5c6850b4b2dc64f5048/pillow-12.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffd0c5368496f41b0944be820fcb7a838aa6e623d250b01acf2643939c3f99d7", size = 4780323, upload-time = "2026-07-01T11:54:09.351Z" }, { url = "https://files.pythonhosted.org/packages/25/27/ac8f99618ffd3dde21db0f4d4b1d2ab00c0880595bfd17df103f7f39fd0c/pillow-12.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d9c7f76c0673154f044e9d78c8655fb4213f6ca31a836df48b40fe5d187717b9", size = 6266838, upload-time = "2026-07-01T11:54:11.71Z" }, { url = "https://files.pythonhosted.org/packages/84/21/a35af28dcc61f37ed850a2d64c65c701321dfbf25085e469d5559360cbbf/pillow-12.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:78cb2c6865a35ab8ff8b75fd122f6033b92a62c82801110e48ddd6c936a45d91", size = 6940830, upload-time = "2026-07-01T11:54:13.732Z" }, { url = "https://files.pythonhosted.org/packages/eb/51/8b08617af3ad95e33ce6d7dd2c99ed6c8298f7fb131636303956be022e25/pillow-12.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e491916b378fba47242221bb9ead245211b70d504f495d105d17b14a24b4907c", size = 6344383, upload-time = "2026-07-01T11:54:15.756Z" }, { url = "https://files.pythonhosted.org/packages/1d/72/cf78ac9780bb93c28328f408973845a309d4d145041665f734572ced1b52/pillow-12.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0dd2064cbc55aaec028ef5fbb60fa47bb6c3e7918e07ff17935284b227a9d2df", size = 7052934, upload-time = "2026-07-01T11:54:17.721Z" }, { url = "https://files.pythonhosted.org/packages/20/20/25e0f4dc178a6bc0696793720055519a0de89e7661dae886992decbd2f81/pillow-12.3.0-cp312-cp312-win32.whl", hash = "sha256:dbce0b29841537a2fa4a214c2bbf14de3587c9680caa9b4e217568472490b28f", size = 6472684, upload-time = "2026-07-01T11:54:19.839Z" }, { url = "https://files.pythonhosted.org/packages/45/89/da2f7971a317f83d807fdd4065c0af40208e59e692cc43d315a71a0e96d1/pillow-12.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a2b55dd6b2a4c4b7d87ffa56bdb33fdc5fdb9a462173861a7bc097f17d91cb09", size = 7227137, upload-time = "2026-07-01T11:54:22.025Z" }, { url = "https://files.pythonhosted.org/packages/de/47/4845a0a6c0dbf1db8456bd9fc791f13c5ced7ced20606d08a0aacfd25b49/pillow-12.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:331b624368d4f1d069149002f25f44bc61c8919ce8ddb3c45bdad8f6e2d89510", size = 2568267, upload-time = "2026-07-01T11:54:24.051Z" }, { url = "https://files.pythonhosted.org/packages/9d/ac/31fb64e1e7efb5a4b50cd3d92049ba89ac6e4d8d3bb6a74e15048ca3353e/pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:21900ce7ba264168cd50defae43cd75d25c833ad4ad6e73ffc5596d12e25ac89", size = 4161684, upload-time = "2026-07-01T11:54:25.934Z" }, { url = "https://files.pythonhosted.org/packages/87/b4/9805e23d2b4d77842b468513841fda254ee42f0289d25088340e4ff46e2d/pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:4e8c2a84d977f50b9daed6eeaf3baef67d00d5d74d932288f02cb94518ee3ace", size = 4255487, upload-time = "2026-07-01T11:54:27.935Z" }, { url = "https://files.pythonhosted.org/packages/df/39/ecf519435a200c693fe053a6ee4d835b41cf963a4dfc2551c4e637cb2a71/pillow-12.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:ae26d61dfa7a47befdc7572b521024e8745f3d809bd95ca9505a7bba9ef849ec", size = 3696433, upload-time = "2026-07-01T11:54:29.813Z" }, { url = "https://files.pythonhosted.org/packages/42/92/2fc3ffad878ae8dd5469ec1bc8eb83b71f48e13efdf68f02709003982a32/pillow-12.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a743ff716f746fc19a9557f60dab1600d4613255f8a7aeb3cdde4db7eb15a66", size = 5345889, upload-time = "2026-07-01T11:54:31.97Z" }, { url = "https://files.pythonhosted.org/packages/10/76/8803c13605b763d33d156c4678fc77f8443389c0c51c8aef707bb02015f4/pillow-12.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d69141514cc30b774ceea5e3ed3a6635c8d8a96edf664689b890f4089111fb35", size = 4780109, upload-time = "2026-07-01T11:54:34.026Z" }, { url = "https://files.pythonhosted.org/packages/1f/01/e18aff37cb0b4aac47ac90f016d347a49aca667ef97f190b06ac2aabc928/pillow-12.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f7401aebd7f581d7f83a439d87d474999317ee099218e5ad25d125290990ba65", size = 6263736, upload-time = "2026-07-01T11:54:36.131Z" }, { url = "https://files.pythonhosted.org/packages/f7/62/de5bdd77d935331f4f802edc11e4d82950f642caad6cb2f949837b8560e2/pillow-12.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0847a763afefb695bc912d7c131e7e0632d4edc1d8698f58ddabec8e46b8b6d3", size = 6937129, upload-time = "2026-07-01T11:54:38.216Z" }, { url = "https://files.pythonhosted.org/packages/70/4d/105627a13300c5e0df1d174230b32fd1273062c96f7745fd552b945d1e1d/pillow-12.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:571b9fcb07b97ef3a492028fb3d2dc0993ca23a06138b0315286566d29ef718a", size = 6339562, upload-time = "2026-07-01T11:54:40.354Z" }, { url = "https://files.pythonhosted.org/packages/6b/1d/f13de01a553988ab895ba1c722e06cf3144d4f57656fd5b81b6d881f1179/pillow-12.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:756c768d0c9c2955feb7a56c37ea24aea2e369f8d36a88da270b6a9f19e62b5e", size = 7049439, upload-time = "2026-07-01T11:54:42.489Z" }, { url = "https://files.pythonhosted.org/packages/c9/f9/066794cca041b969964f779ee5fa66a9498bbf34248ac39c5d7954e4198f/pillow-12.3.0-cp313-cp313-win32.whl", hash = "sha256:a876864214e136f0eb367788dbd7df045f4806801518e2cfe9e13229cfe06d8f", size = 6473287, upload-time = "2026-07-01T11:54:44.9Z" }, { url = "https://files.pythonhosted.org/packages/a6/9b/7a58e61d62be561da3a356fe2384d4059a6345fc130e23ef1c36a5b81d24/pillow-12.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:1cca606cd25738df4ed873d5ad46bbdb3d83b5cbca291f6b4ff13a4df6b0bbe8", size = 7239691, upload-time = "2026-07-01T11:54:47.141Z" }, { url = "https://files.pythonhosted.org/packages/aa/b0/c4ed4f0ef8f8fa5ee8351537db6650bb8189f7e118842978dd6589065692/pillow-12.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:b629de27fda84b42cde7edef0d85f13b958b47f6e9bbcbba9b673c562a89bd8b", size = 2568185, upload-time = "2026-07-01T11:54:49.137Z" }, { url = "https://files.pythonhosted.org/packages/dc/01/001f65b68192f0228cc1dbbc8d2530ab5d58b61037ba0587f946fea607cd/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:9cf95fe4d0f84c82d282745d9bb08ad9f926efa00be4697e767b814ce40d4330", size = 4161736, upload-time = "2026-07-01T11:54:51.156Z" }, { url = "https://files.pythonhosted.org/packages/1a/d2/0219746d0fd16fc8a84498e79452375be3797d3ce4044596ce565164b84f/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:8728f216dcdb6e6d555cf971cb34076139ad74b31fc2c14da4fafc741c5f6217", size = 4255435, upload-time = "2026-07-01T11:54:53.414Z" }, { url = "https://files.pythonhosted.org/packages/c8/02/8d0bc62ef0302318c46ff2a512822d2610e81c7aa46c9b3abe6cbaca5ad0/pillow-12.3.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:a45650e8ce7fafffd731db8550230db6b0d306d181a90b67d3e6bca2f1990930", size = 3696262, upload-time = "2026-07-01T11:54:55.739Z" }, { url = "https://files.pythonhosted.org/packages/85/e2/73c77d218410b14f5f2d565e8a998d5317b7b9c75368d29985139f7a46f0/pillow-12.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ba54cfebe86920a559a7c4d6b9050791c20513650a1952ebe3368c7dc70306f8", size = 5350344, upload-time = "2026-07-01T11:54:57.657Z" }, { url = "https://files.pythonhosted.org/packages/c7/da/32c752228ae345f489e3a42499d817b6c3996da7e8a3bc7a04fc806b243b/pillow-12.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e158cb00350dc278f3b91551101aa7d12415a66ebf2c91d8d5ac14e56ddd3ad0", size = 4780131, upload-time = "2026-07-01T11:54:59.713Z" }, { url = "https://files.pythonhosted.org/packages/b1/9d/8b2c807dbef61a5197c047afe99823787eb66f63daf9fb2432f91d6f0462/pillow-12.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9aeb04d6aef139de265b29683e119b638208f88cf73cdd1658aa07221165321", size = 6263757, upload-time = "2026-07-01T11:55:01.778Z" }, { url = "https://files.pythonhosted.org/packages/5c/44/c85361f65dbe00eea8576ee467c768d25129989efb76e94f205e9ca9bb46/pillow-12.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:251bf95b67017e27b13d82f5b326234ca62d70f9cf4c2b9032de2358a3b12c7b", size = 6936962, upload-time = "2026-07-01T11:55:03.93Z" }, { url = "https://files.pythonhosted.org/packages/18/7e/e483414b35800b86b6f08dbbc7803fb5cd52c4d6f897f47d53ea2c7e6f65/pillow-12.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fe3cca2e4e8a592be0f269a1ca4835c25199d9f3ce815c8491048f785b0a0198", size = 6339171, upload-time = "2026-07-01T11:55:05.989Z" }, { url = "https://files.pythonhosted.org/packages/f0/f4/68c491844841ede6bed70189546b3ee9731cf9f2cbad396faff5e1ccba45/pillow-12.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:23aceaa007d6172b02c277f0cd359c79492bbb14f7072b4ede9fbcaf20648130", size = 7048116, upload-time = "2026-07-01T11:55:08.131Z" }, { url = "https://files.pythonhosted.org/packages/a3/34/77f3f793fed8efc7d243f21b33c5a3f0d1c97ee70346d3db855587e155ff/pillow-12.3.0-cp314-cp314-win32.whl", hash = "sha256:af8d94b0db561cf68b88a267c5c44b49e134f525d0dc2cb7ed413a66bc23559a", size = 6467209, upload-time = "2026-07-01T11:55:10.408Z" }, { url = "https://files.pythonhosted.org/packages/f1/e0/492879f69d94f91f60fc8cd05ba03650e9520afebb2fb7aa12777d7c7f38/pillow-12.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:fdafc9cce40277e0f7a0feabce0ee50dd2fa1800f3b38015e51296b5e814048d", size = 7237707, upload-time = "2026-07-01T11:55:12.745Z" }, { url = "https://files.pythonhosted.org/packages/c9/ac/6b11f2875f1c2ac040d84e1bbf9cf22a88038f901ca1037898b280b38365/pillow-12.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:e91206ee562682b51b98ef4b26a6ef48fd84e15fd4c4bc5ec768eb641d206838", size = 2565995, upload-time = "2026-07-01T11:55:14.736Z" }, { url = "https://files.pythonhosted.org/packages/52/69/c2208e56af9bfc1913afb24020297a691eb1d4ef688474c8a04913f65e04/pillow-12.3.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:164b31cd1a0490ab6efae01aa5df49da7061be0af1b30e035b6e9a1bfe34ee6e", size = 5352503, upload-time = "2026-07-01T11:55:17.076Z" }, { url = "https://files.pythonhosted.org/packages/07/70/e5686d753e898a45d778ff1718dba8516ead6ab6b95d85fc8c4b70650cf2/pillow-12.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5afb51d599ea772b8365ae807ae557f18bccfe46ab261fd1c2a9ed700fc6eb17", size = 4782956, upload-time = "2026-07-01T11:55:19.448Z" }, { url = "https://files.pythonhosted.org/packages/d5/37/25c6692f06927ee973ff18c8d9ee98ad0b4d84ee67a09610c2dd1447958e/pillow-12.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3edce1d53195db527e0191f84b71d02022de0540bf43a16ed734ed7537b07385", size = 6322855, upload-time = "2026-07-01T11:55:21.613Z" }, { url = "https://files.pythonhosted.org/packages/cc/91/420637fcb8f1bc11029e403b4538e6694744428d8246118e45719f944556/pillow-12.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bf16ba1b4d0b6b7c8e534936632270cf70eb00dbe09005bc345b2677b726855c", size = 6989642, upload-time = "2026-07-01T11:55:24.006Z" }, { url = "https://files.pythonhosted.org/packages/10/08/b94d7811281ccf0d143a1cf768d1c49e1e54af63e7b708ab2ee3eb87face/pillow-12.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:24870b09b224f7ae3c39ed07d10e819d06f8720bc551847b1d623832b5b0e28d", size = 6391281, upload-time = "2026-07-01T11:55:26.252Z" }, { url = "https://files.pythonhosted.org/packages/d2/87/24233f785f55474dc02ce3e739c5528a77e3a862e9333d1dd7a25cc31f70/pillow-12.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:30f2aa603c41533cc25c05acd0da21636e84a315768feb631c937177db558931", size = 7096716, upload-time = "2026-07-01T11:55:28.318Z" }, { url = "https://files.pythonhosted.org/packages/23/26/fcb2f6e37175b04f53570b59937867e2b80ee1685e744023153028fc14f9/pillow-12.3.0-cp314-cp314t-win32.whl", hash = "sha256:4b0a7fe987b14c31ebda6083f74f22b561fd3739bc0ac51e019622e3d72668c7", size = 6474125, upload-time = "2026-07-01T11:55:30.956Z" }, { url = "https://files.pythonhosted.org/packages/90/de/3634abee5f1c9e13c56787b7d5517b0ba8d6de51700b95578cf338349c9f/pillow-12.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:962864dc93511324d51ddbb5b9f8731bf71675b93ca612a07441896f4688fb8c", size = 7242939, upload-time = "2026-07-01T11:55:34.044Z" }, { url = "https://files.pythonhosted.org/packages/ce/2a/fd13f8eb24de5714a6eb444a3d67e2842c6c576e159a43793adf23051351/pillow-12.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0740a512dc522224c77d9aa5a8d70d8b7d73fb91f2c21125d8d025d3b8990e45", size = 2567506, upload-time = "2026-07-01T11:55:35.988Z" }, { url = "https://files.pythonhosted.org/packages/5d/dc/8fdce34ec725a33c81c6ba122b904d6b9024e50ea9ac7bede62fab54506c/pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0feb2e9d6ad6c9e3c06effe9d00f3f1e618a6643273576b016f591e9315a7139", size = 4162063, upload-time = "2026-07-01T11:55:37.941Z" }, { url = "https://files.pythonhosted.org/packages/76/66/2044b9a63d3b84ff048228dfcb7cd9bf0df983e8470971bf7d4c57b693de/pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:9e881fca225083806662a5c43d627d215f258ff43c890f831966c7d7ba9c7402", size = 4255549, upload-time = "2026-07-01T11:55:40.022Z" }, { url = "https://files.pythonhosted.org/packages/52/7e/1f67e6f4ece6b582ee4b539decbcc9f848dc245a93ed8cd7338bafef72f1/pillow-12.3.0-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:4998562bf62a445225f22e07c896bb04b35b1b1f2eb6d760584c9c51d7a5f78c", size = 3696331, upload-time = "2026-07-01T11:55:41.98Z" }, { url = "https://files.pythonhosted.org/packages/12/40/d306fc2c8e4d45d7f175c77edca7063be7b86fe7fe6e68f4353bf71d808c/pillow-12.3.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:dc624f6bc473dacdf7ef7eb8678d0d08edf15cd94fad6ae5c7d6cc67a4e4902f", size = 5350370, upload-time = "2026-07-01T11:55:44.028Z" }, { url = "https://files.pythonhosted.org/packages/dd/44/668fb1437e8ce420f62d6106eb66e44a5971602a4d794615bdf79315d82d/pillow-12.3.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:71d6097b330eea8fd15097780c8e89cb1a8ce7838669f48c5bacd6f663dd4701", size = 4780147, upload-time = "2026-07-01T11:55:46.073Z" }, { url = "https://files.pythonhosted.org/packages/0c/08/93fa2e70e30a2d81547e481b6ee2bb9522117221fb1e0ce4b5df70967677/pillow-12.3.0-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:28ce87c5ab450a9dd970b52e5aca5fe63ed432d18a2eaddd1979a00a1ba24ace", size = 6273659, upload-time = "2026-07-01T11:55:48.264Z" }, { url = "https://files.pythonhosted.org/packages/f8/6d/043e96ff814fc31a33077e4cba86082167db520c93632afdf2042febbb0c/pillow-12.3.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6b02afb9b97f65fbca5f31db6a2a3ba21aa93030225f150fa3f249717e938fb4", size = 6947439, upload-time = "2026-07-01T11:55:50.503Z" }, { url = "https://files.pythonhosted.org/packages/af/92/ba71d2ee2ac0edf3fa33bd9d5ee9ee080da70b1766f3ca3934f9938ddac9/pillow-12.3.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:1182d52bc2d5e5d7d0949503aa7e36d12f42205dc287e4883f407b1988820d39", size = 6353577, upload-time = "2026-07-01T11:55:52.697Z" }, { url = "https://files.pythonhosted.org/packages/0f/ce/e63064e2122923ff687c8ad792d0d736a7b3920a56a46982e81a7fdd25d6/pillow-12.3.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:e795b7eb908249c4e43c7c99fac7c2c75dab0c43566e37db472a355f63693d71", size = 7060394, upload-time = "2026-07-01T11:55:55.149Z" }, { url = "https://files.pythonhosted.org/packages/54/76/a09cc3ccc8d773a7283d34c38bec1708f9e3cc932093cbc4c5e71ac4060b/pillow-12.3.0-cp315-cp315-win32.whl", hash = "sha256:57b3d78c95ba9059768b10e28b813002261d3f3dfc55cc48b0c988f625175827", size = 6467375, upload-time = "2026-07-01T11:55:57.769Z" }, { url = "https://files.pythonhosted.org/packages/3e/03/1846c49ba3b1d5550392a4bbd06d6fb4578e1cd91a803198b5c90f5f7d53/pillow-12.3.0-cp315-cp315-win_amd64.whl", hash = "sha256:fa4ecea169a355be7a3ade2c783e2ed12f0e40d2c5621cda8b3297faf7fbb9f5", size = 7237048, upload-time = "2026-07-01T11:55:59.975Z" }, { url = "https://files.pythonhosted.org/packages/fb/bb/89f35dcc79610423f9f195504d7def7f0d1416a711541b42867e25fe3412/pillow-12.3.0-cp315-cp315-win_arm64.whl", hash = "sha256:877c3f311ff35410f690861c4409e7ccbf0cd2f878e50628a28e5a0bb689e658", size = 2566006, upload-time = "2026-07-01T11:56:02.143Z" }, { url = "https://files.pythonhosted.org/packages/30/88/707027ba09942dfa2c28759b5c222d769290a41c6d20ea60ec250801941f/pillow-12.3.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:e9871b1ffbfa9656b60aeee92ed5136a5742696006fa322b29ea3d8da0ecc9cf", size = 5352509, upload-time = "2026-07-01T11:56:04.2Z" }, { url = "https://files.pythonhosted.org/packages/b0/6d/00352fa25332c2569cd387851f568cc5a4b75a9adbfb37ac4fbce4c02eec/pillow-12.3.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:53aa02d20d10c3d814d536aa4e5ac9b84ca0ff5a88377963b085ad6822f93e64", size = 4783167, upload-time = "2026-07-01T11:56:06.631Z" }, { url = "https://files.pythonhosted.org/packages/13/4f/9e049dfa21af7c22427275720e2490267ba8138120add5c4c574deb69782/pillow-12.3.0-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:446c34dcc4324b084a53b705127dc15717b22c5e140ae0a3c38349d4efec071e", size = 6329237, upload-time = "2026-07-01T11:56:08.868Z" }, { url = "https://files.pythonhosted.org/packages/36/16/cf6eeaae8d0fce8dd390a33437cf68c5d5bd73834a2bc6e2f14efda0ab45/pillow-12.3.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf1845d02ad822a369a49f2bb9345b1614744267682e7a03527dc3bf6eea1777", size = 6997047, upload-time = "2026-07-01T11:56:11.379Z" }, { url = "https://files.pythonhosted.org/packages/1e/69/dbf769bdd55f48bf5733cac28edc6364ffaa072ec9ba336266e4fe66be55/pillow-12.3.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:186941b6aef820ad110fb01fb06eb925374dc3a21b17e37ec9a53b250c6fe2d1", size = 6400440, upload-time = "2026-07-01T11:56:13.908Z" }, { url = "https://files.pythonhosted.org/packages/a0/e1/ffc9cfc2eea0d178da8018e18e959301ad9d6bc9f3edb7181e748a474b97/pillow-12.3.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:f13c32a3abd6079a66d9526e18dad9b6d280384d49d7c54040cd57b6424041d9", size = 7105895, upload-time = "2026-07-01T11:56:16.575Z" }, { url = "https://files.pythonhosted.org/packages/18/f0/a5595c1e8c3ae44b9828cb2f0fa8155e5095ef04d6327b8f61cf44a3df85/pillow-12.3.0-cp315-cp315t-win32.whl", hash = "sha256:1657923d2d45afb66526e5b933e5b3052e6bdea196c90d3abb2424e18c77dae8", size = 6474384, upload-time = "2026-07-01T11:56:18.855Z" }, { url = "https://files.pythonhosted.org/packages/e4/04/62bcd9f844984c5938d3b05264a61d797a29d3e0812341a8204af70bbdee/pillow-12.3.0-cp315-cp315t-win_amd64.whl", hash = "sha256:8cd2f7bdda092d99c9fc2fb7391354f306d01443d22785d0cbfafa2e2c8bb418", size = 7243537, upload-time = "2026-07-01T11:56:21.214Z" }, { url = "https://files.pythonhosted.org/packages/3d/68/1f3066acedf37673694a7141381d8f811ae97f30d34413d236abe7d489f1/pillow-12.3.0-cp315-cp315t-win_arm64.whl", hash = "sha256:06ff022112bc9cbf83b60f8e028d94ad87b60621706487e65f673de61610ab59", size = 2567491, upload-time = "2026-07-01T11:56:23.506Z" }, { url = "https://files.pythonhosted.org/packages/75/18/2e8b40223153ccbc60df07f9e8928dc0c76202aa4e55ae9f53962b6510d6/pillow-12.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b3c777e849237620b022f7f297dd67705f9f5cf1685f09f02e46f93e92725468", size = 5302510, upload-time = "2026-07-01T11:56:25.736Z" }, { url = "https://files.pythonhosted.org/packages/46/3e/51fabf59d5ab801ceab709453d3ab6b180083496579549de4c45ced6528a/pillow-12.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:b343699e8308bdc51978310e1c959c584e7869cc8c40780058c87da7781a1e94", size = 4736058, upload-time = "2026-07-01T11:56:28.041Z" }, { url = "https://files.pythonhosted.org/packages/bf/20/22fe9384b7949e25fb1293bcfc84fb82590ff4ea6b37c95b24d26d793d86/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbd139c8447d25dd750ab79ee274cc5e1fe80fc56340ab10b18a195e1b6eca3e", size = 5237776, upload-time = "2026-07-01T11:56:30.263Z" }, { url = "https://files.pythonhosted.org/packages/08/14/f6ba68107680ffa74b39985f3f30884e41318fbc4250caa423c79b4788bb/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e7e480451b9fa137494bccd3a7d69adbe8ac65a87d97be61e11f1b1050a5bac3", size = 5860358, upload-time = "2026-07-01T11:56:32.68Z" }, { url = "https://files.pythonhosted.org/packages/36/54/0169bc772ec491108b62f644f8ecf1fe5d8ae5ebafde2ee2142210166903/pillow-12.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:04f01d28a6aaff387bf842a13be313df23ba0597a44f1a976c9feb3c6ff4711a", size = 7231786, upload-time = "2026-07-01T11:56:35.046Z" }, ] [[package]] name = "pint" version = "0.25.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "flexcache" }, { name = "flexparser" }, { name = "platformdirs" }, { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/52/9d/b1379cdbd33a49d17d627bc24e2b63cca06a1c5343b38072d2889499e82e/pint-0.25.3.tar.gz", hash = "sha256:f8f5df6cf65314d74da1ade1bf96f8e3e4d0c41b51577ac53c49e7d44ca5acee", size = 255106, upload-time = "2026-03-19T21:57:08.72Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/1b/dd/a9fe6a0a09512da23951c68bf36466aeecd89def3183dc095edbc807ddc5/pint-0.25.3-py3-none-any.whl", hash = "sha256:27eb25143bd5de9fcc4d5a4b484f16faf6b4615aa93ece6b3373a8c1a3c1b97d", size = 307488, upload-time = "2026-03-19T21:57:07.022Z" }, ] [[package]] name = "platformdirs" version = "4.9.4" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/19/56/8d4c30c8a1d07013911a8fdbd8f89440ef9f08d07a1b50ab8ca8be5a20f9/platformdirs-4.9.4.tar.gz", hash = "sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934", size = 28737, upload-time = "2026-03-05T18:34:13.271Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/63/d7/97f7e3a6abb67d8080dd406fd4df842c2be0efaf712d1c899c32a075027c/platformdirs-4.9.4-py3-none-any.whl", hash = "sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868", size = 21216, upload-time = "2026-03-05T18:34:12.172Z" }, ] [[package]] name = "pluggy" version = "1.6.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] [[package]] name = "pyerfa" version = "2.0.1.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, { name = "numpy", version = "2.5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/71/39/63cc8291b0cf324ae710df41527faf7d331bce573899199d926b3e492260/pyerfa-2.0.1.5.tar.gz", hash = "sha256:17d6b24fe4846c65d5e7d8c362dcb08199dc63b30a236aedd73875cc83e1f6c0", size = 818430, upload-time = "2024-11-11T15:22:30.852Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/7d/d9/3448a57cb5bd19950de6d6ab08bd8fbb3df60baa71726de91d73d76c481b/pyerfa-2.0.1.5-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b282d7c60c4c47cf629c484c17ac504fcb04abd7b3f4dfcf53ee042afc3a5944", size = 341818, upload-time = "2024-11-11T15:22:16.467Z" }, { url = "https://files.pythonhosted.org/packages/11/4a/31a363370478b63c6289a34743f2ba2d3ae1bd8223e004d18ab28fb92385/pyerfa-2.0.1.5-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:be1aeb70390dd03a34faf96749d5cabc58437410b4aab7213c512323932427df", size = 329370, upload-time = "2024-11-11T15:22:17.829Z" }, { url = "https://files.pythonhosted.org/packages/cb/96/b6210fc624123c8ae13e1eecb68fb75e3f3adff216d95eee1c7b05843e3e/pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0603e8e1b839327d586c8a627cdc634b795e18b007d84f0cda5500a0908254e", size = 692794, upload-time = "2024-11-11T15:22:19.429Z" }, { url = "https://files.pythonhosted.org/packages/e5/e0/050018d855d26d3c0b4a7d1b2ed692be758ce276d8289e2a2b44ba1014a5/pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e43c7194e3242083f2350b46c09fd4bf8ba1bcc0ebd1460b98fc47fe2389906", size = 738711, upload-time = "2024-11-11T15:22:20.661Z" }, { url = "https://files.pythonhosted.org/packages/b9/f5/ff91ee77308793ae32fa1e1de95e9edd4551456dd888b4e87c5938657ca5/pyerfa-2.0.1.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:07b80cd70701f5d066b1ac8cce406682cfcd667a1186ec7d7ade597239a6021d", size = 722966, upload-time = "2024-11-11T15:22:21.905Z" }, { url = "https://files.pythonhosted.org/packages/2c/56/b22b35c8551d2228ff8d445e63787112927ca13f6dc9e2c04f69d742c95b/pyerfa-2.0.1.5-cp39-abi3-win32.whl", hash = "sha256:d30b9b0df588ed5467e529d851ea324a67239096dd44703125072fd11b351ea2", size = 339955, upload-time = "2024-11-11T15:22:23.087Z" }, { url = "https://files.pythonhosted.org/packages/b4/11/97233cf23ad5411ac6f13b1d6ee3888f90ace4f974d9bf9db887aa428912/pyerfa-2.0.1.5-cp39-abi3-win_amd64.whl", hash = "sha256:66292d437dcf75925b694977aa06eb697126e7b86553e620371ed3e48b5e0ad0", size = 349410, upload-time = "2024-11-11T15:22:24.817Z" }, ] [[package]] name = "pygments" version = "2.20.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, ] [[package]] name = "pyparsing" version = "3.3.2" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, ] [[package]] name = "pytest" version = "9.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "iniconfig" }, { name = "packaging" }, { name = "pluggy" }, { name = "pygments" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" }, ] [[package]] name = "pytest-doctestplus" version = "1.7.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "packaging" }, { name = "pytest" }, ] sdist = { url = "https://files.pythonhosted.org/packages/59/43/6db18218cdfa15bd03cba3292345223925011ba7428e6183da97c6b1dcb1/pytest_doctestplus-1.7.1.tar.gz", hash = "sha256:64ae16dbda66c3db775ef596828d8d7adda09c6f34dd85099c119e4ff8cfe5b6", size = 50286, upload-time = "2026-01-26T22:13:46.54Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/f4/72/8e70c7c3238cba0afa8dbef94a1ce7d88ecd0fab3d8d0da394a1c3964a41/pytest_doctestplus-1.7.1-py3-none-any.whl", hash = "sha256:18c0ff78d7ad08a15f415b153b3c407078c8a8c055ceb9055b5c7be5eb7c80be", size = 25567, upload-time = "2026-01-26T22:13:45.148Z" }, ] [[package]] name = "python-dateutil" version = "2.9.0.post0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "six" }, ] sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, ] [[package]] name = "pyyaml" version = "6.0.3" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, ] [[package]] name = "requests" version = "2.33.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, { name = "charset-normalizer" }, { name = "idna" }, { name = "urllib3" }, ] sdist = { url = "https://files.pythonhosted.org/packages/5f/a4/98b9c7c6428a668bf7e42ebb7c79d576a1c3c1e3ae2d47e674b468388871/requests-2.33.1.tar.gz", hash = "sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517", size = 134120, upload-time = "2026-03-30T16:09:15.531Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a", size = 64947, upload-time = "2026-03-30T16:09:13.83Z" }, ] [[package]] name = "roman-numerals" version = "4.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/ae/f9/41dc953bbeb056c17d5f7a519f50fdf010bd0553be2d630bc69d1e022703/roman_numerals-4.1.0.tar.gz", hash = "sha256:1af8b147eb1405d5839e78aeb93131690495fe9da5c91856cb33ad55a7f1e5b2", size = 9077, upload-time = "2025-12-17T18:25:34.381Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/04/54/6f679c435d28e0a568d8e8a7c0a93a09010818634c3c3907fc98d8983770/roman_numerals-4.1.0-py3-none-any.whl", hash = "sha256:647ba99caddc2cc1e55a51e4360689115551bf4476d90e8162cf8c345fe233c7", size = 7676, upload-time = "2025-12-17T18:25:33.098Z" }, ] [[package]] name = "six" version = "1.17.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] [[package]] name = "snowballstemmer" version = "3.0.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/75/a7/9810d872919697c9d01295633f5d574fb416d47e535f258272ca1f01f447/snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895", size = 105575, upload-time = "2025-05-09T16:34:51.843Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/c8/78/3565d011c61f5a43488987ee32b6f3f656e7f107ac2782dd57bdd7d91d9a/snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064", size = 103274, upload-time = "2025-05-09T16:34:50.371Z" }, ] [[package]] name = "sphinx" version = "9.0.4" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version < '3.12'", ] dependencies = [ { name = "alabaster" }, { name = "babel" }, { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "docutils" }, { name = "imagesize" }, { name = "jinja2" }, { name = "packaging" }, { name = "pygments" }, { name = "requests" }, { name = "roman-numerals" }, { name = "snowballstemmer" }, { name = "sphinxcontrib-applehelp" }, { name = "sphinxcontrib-devhelp" }, { name = "sphinxcontrib-htmlhelp" }, { name = "sphinxcontrib-jsmath" }, { name = "sphinxcontrib-qthelp" }, { name = "sphinxcontrib-serializinghtml" }, ] sdist = { url = "https://files.pythonhosted.org/packages/42/50/a8c6ccc36d5eacdfd7913ddccd15a9cee03ecafc5ee2bc40e1f168d85022/sphinx-9.0.4.tar.gz", hash = "sha256:594ef59d042972abbc581d8baa577404abe4e6c3b04ef61bd7fc2acbd51f3fa3", size = 8710502, upload-time = "2025-12-04T07:45:27.343Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/c6/3f/4bbd76424c393caead2e1eb89777f575dee5c8653e2d4b6afd7a564f5974/sphinx-9.0.4-py3-none-any.whl", hash = "sha256:5bebc595a5e943ea248b99c13814c1c5e10b3ece718976824ffa7959ff95fffb", size = 3917713, upload-time = "2025-12-04T07:45:24.944Z" }, ] [[package]] name = "sphinx" version = "9.1.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.12'", ] dependencies = [ { name = "alabaster" }, { name = "babel" }, { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "docutils" }, { name = "imagesize" }, { name = "jinja2" }, { name = "packaging" }, { name = "pygments" }, { name = "requests" }, { name = "roman-numerals" }, { name = "snowballstemmer" }, { name = "sphinxcontrib-applehelp" }, { name = "sphinxcontrib-devhelp" }, { name = "sphinxcontrib-htmlhelp" }, { name = "sphinxcontrib-jsmath" }, { name = "sphinxcontrib-qthelp" }, { name = "sphinxcontrib-serializinghtml" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/bd/f08eb0f4eed5c83f1ba2a3bd18f7745a2b1525fad70660a1c00224ec468a/sphinx-9.1.0.tar.gz", hash = "sha256:7741722357dd75f8190766926071fed3bdc211c74dd2d7d4df5404da95930ddb", size = 8718324, upload-time = "2025-12-31T15:09:27.646Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/73/f7/b1884cb3188ab181fc81fa00c266699dab600f927a964df02ec3d5d1916a/sphinx-9.1.0-py3-none-any.whl", hash = "sha256:c84fdd4e782504495fe4f2c0b3413d6c2bf388589bb352d439b2a3bb99991978", size = 3921742, upload-time = "2025-12-31T15:09:25.561Z" }, ] [[package]] name = "sphinxcontrib-applehelp" version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/ba/6e/b837e84a1a704953c62ef8776d45c3e8d759876b4a84fe14eba2859106fe/sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", size = 20053, upload-time = "2024-07-29T01:09:00.465Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5", size = 119300, upload-time = "2024-07-29T01:08:58.99Z" }, ] [[package]] name = "sphinxcontrib-devhelp" version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f6/d2/5beee64d3e4e747f316bae86b55943f51e82bb86ecd325883ef65741e7da/sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", size = 12967, upload-time = "2024-07-29T01:09:23.417Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2", size = 82530, upload-time = "2024-07-29T01:09:21.945Z" }, ] [[package]] name = "sphinxcontrib-htmlhelp" version = "2.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/43/93/983afd9aa001e5201eab16b5a444ed5b9b0a7a010541e0ddfbbfd0b2470c/sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9", size = 22617, upload-time = "2024-07-29T01:09:37.889Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705, upload-time = "2024-07-29T01:09:36.407Z" }, ] [[package]] name = "sphinxcontrib-jsmath" version = "1.0.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/b2/e8/9ed3830aeed71f17c026a07a5097edcf44b692850ef215b161b8ad875729/sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8", size = 5787, upload-time = "2019-01-21T16:10:16.347Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", size = 5071, upload-time = "2019-01-21T16:10:14.333Z" }, ] [[package]] name = "sphinxcontrib-qthelp" version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/68/bc/9104308fc285eb3e0b31b67688235db556cd5b0ef31d96f30e45f2e51cae/sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", size = 17165, upload-time = "2024-07-29T01:09:56.435Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb", size = 88743, upload-time = "2024-07-29T01:09:54.885Z" }, ] [[package]] name = "sphinxcontrib-serializinghtml" version = "2.0.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/3b/44/6716b257b0aa6bfd51a1b31665d1c205fb12cb5ad56de752dfa15657de2f/sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d", size = 16080, upload-time = "2024-07-29T01:10:09.332Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", size = 92072, upload-time = "2024-07-29T01:10:08.203Z" }, ] [[package]] name = "sympy" version = "1.14.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mpmath" }, ] sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, ] [[package]] name = "toolz" version = "1.1.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/11/d6/114b492226588d6ff54579d95847662fc69196bdeec318eb45393b24c192/toolz-1.1.0.tar.gz", hash = "sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b", size = 52613, upload-time = "2025-10-17T04:03:21.661Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl", hash = "sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8", size = 58093, upload-time = "2025-10-17T04:03:20.435Z" }, ] [[package]] name = "tornado" version = "6.5.9" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/22/15/ca7aaebb77f850493cba71ace508aeffb896d1ad8976417b48b79823dbd2/tornado-6.5.9.tar.gz", hash = "sha256:4d868544ebdf2fc155239a74397f65ebfea9b4d3635296c96b5dfb0701c354f5", size = 536145, upload-time = "2026-09-14T18:08:37.434Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/a0/4a/4d3459fd2f360dd99233f69f22b36012a42856ace526da2c6da3cb0e6df2/tornado-6.5.9-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:dea3bee433b73d6312d993ce89ad5f2b8d3ed9fde56e79ba5342b9edb78d342a", size = 464279, upload-time = "2026-09-14T18:08:20.909Z" }, { url = "https://files.pythonhosted.org/packages/26/4b/5af2f7dcd674e2f1cacef763456f79823404f50954789d6e1ec7a70cd58a/tornado-6.5.9-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:22bed49cdb55292d1d58f46008ba2cc3020e5b84995ef6ae749676c8b5309514", size = 462440, upload-time = "2026-09-14T18:08:22.711Z" }, { url = "https://files.pythonhosted.org/packages/9e/0f/38f8d16011de3b1ce2babb4c3bcefb126d2dc47d04878ae3ad5c39a00caa/tornado-6.5.9-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0cc0876a58eee9143476f24901b1b8eb4d52443283ade2b6bca650dd1da04f84", size = 465496, upload-time = "2026-09-14T18:08:24.407Z" }, { url = "https://files.pythonhosted.org/packages/8c/e9/3888f265d1e287fc63cd61a6696f96a650024e32f9e89c0b1817ac5c40f4/tornado-6.5.9-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc0d703cc7ec92b47ebfe236c97cd765c1f2e45744a2e156e6677e54c948274d", size = 466468, upload-time = "2026-09-14T18:08:25.928Z" }, { url = "https://files.pythonhosted.org/packages/d6/8b/d2bcf417981fa6f7698ab84a52394a76cf608e6704d266e2e0e29f1fd9d0/tornado-6.5.9-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:93f9ab0226ef625b94cacb7981a5af104f1735ea02f92282abe5c389109fb31d", size = 466303, upload-time = "2026-09-14T18:08:27.566Z" }, { url = "https://files.pythonhosted.org/packages/7e/a5/c5cfab11420c3f908238a6c861b8f3864fdbd2b2b87e30c9c16f36a11512/tornado-6.5.9-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5801bbf94dfde8d21087b6aa0b17f3a5dab6110dfe44e7e4492df5de393ac15b", size = 465706, upload-time = "2026-09-14T18:08:29.182Z" }, { url = "https://files.pythonhosted.org/packages/ab/36/5a5da0aa15b7afdd46ece09c004a75af7d00f6a96b692bf696ff94bc2a55/tornado-6.5.9-cp39-abi3-win32.whl", hash = "sha256:dca9f377e80efe5dd4d52a2776b67492a81a39b2d931de169b6b36d0c1da444c", size = 466750, upload-time = "2026-09-14T18:08:30.836Z" }, { url = "https://files.pythonhosted.org/packages/34/d7/2446cf3125372e2b4be6483b4b93f360dc50ce2493864755484b23bb50f2/tornado-6.5.9-cp39-abi3-win_amd64.whl", hash = "sha256:f810730ac71eadf009e6e5cb6d534d096887310f5649cff19d7e0d19c0bf4ee7", size = 467191, upload-time = "2026-09-14T18:08:32.521Z" }, { url = "https://files.pythonhosted.org/packages/39/70/f1024364bf78fa921c63ef2883d36a3b3b705750c98ae174593afaab7a65/tornado-6.5.9-cp39-abi3-win_arm64.whl", hash = "sha256:b5f4d92798337260c6d9f9f0e400c7539dd5e55cf93479a3f8508c9aa09c2b3b", size = 466211, upload-time = "2026-09-14T18:08:35.18Z" }, ] [[package]] name = "typing-extensions" version = "4.15.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, ] [[package]] name = "unyt" version = "3.2.0" source = { editable = "." } dependencies = [ { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, { name = "numpy", version = "2.5.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "packaging" }, { name = "sympy" }, ] [package.dev-dependencies] covcheck = [ { name = "coverage" }, { name = "pytest" }, { name = "pytest-doctestplus" }, ] doc = [ { name = "astropy" }, { name = "dask", extra = ["array", "diagnostics"] }, { name = "docutils" }, { name = "h5py" }, { name = "matplotlib" }, { name = "pint" }, { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" }, { name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] integration = [ { name = "astropy" }, { name = "dask", extra = ["array", "diagnostics"] }, { name = "h5py" }, { name = "matplotlib" }, { name = "pint" }, ] test = [ { name = "pytest" }, { name = "pytest-doctestplus" }, ] [package.metadata] requires-dist = [ { name = "numpy", specifier = ">=1.23.2,<3.0" }, { name = "packaging", specifier = ">=22.0" }, { name = "sympy", specifier = ">=1.9.0" }, ] [package.metadata.requires-dev] covcheck = [ { name = "coverage", specifier = ">=7.10.0" }, { name = "coverage", extras = ["toml"], marker = "python_full_version < '3.11'" }, { name = "pytest", specifier = ">=9.0.2" }, { name = "pytest-doctestplus", specifier = ">=1.4.0" }, ] doc = [ { name = "astropy", specifier = ">=5.0.5" }, { name = "dask", extras = ["array", "diagnostics"], specifier = ">=2024.1.0" }, { name = "docutils", specifier = ">=0.21.2" }, { name = "h5py", specifier = ">=3.8.0" }, { name = "matplotlib", specifier = ">=3.6.0" }, { name = "pint", specifier = ">=0.20" }, { name = "sphinx", specifier = ">=7.4.7" }, ] integration = [ { name = "astropy", specifier = ">=5.0.5" }, { name = "dask", extras = ["array", "diagnostics"], specifier = ">=2024.1.0" }, { name = "h5py", specifier = ">=3.8.0" }, { name = "matplotlib", specifier = ">=3.6.0" }, { name = "pint", specifier = ">=0.20" }, ] test = [ { name = "pytest", specifier = ">=9.0.2" }, { name = "pytest-doctestplus", specifier = ">=1.4.0" }, ] [[package]] name = "urllib3" version = "2.8.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/e3/05/b17359e1cefb4f909b5e40b1b90a496d987258916dbbf88e842c729f510e/urllib3-2.8.0.tar.gz", hash = "sha256:63bf2ead4c879426ebf22ef2a781eeb4aa3b4ae798a0435506f8687fd5bb9b63", size = 458972, upload-time = "2026-09-15T19:29:36.253Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/92/9d/c4e665119135114480843e7ab388fa94d8480650450e6f8e26b70d323a4c/urllib3-2.8.0-py3-none-any.whl", hash = "sha256:0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3", size = 135717, upload-time = "2026-09-15T19:29:34.577Z" }, ] [[package]] name = "xyzservices" version = "2026.3.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f6/08/3cb9f67a8d48021aca2a02292cc26eecd71d949ae70ad66420a8730cc302/xyzservices-2026.3.0.tar.gz", hash = "sha256:d226866a5d8e9fef337034d8da37a8298f0a1d9d1489b4018e69579eb321fea4", size = 1135736, upload-time = "2026-03-30T14:42:25.596Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/a8/a9/d23012099dc88ec69a29c6407b41d89681cb674c2043cd5b467c7e299c08/xyzservices-2026.3.0-py3-none-any.whl", hash = "sha256:503183d4b322bfebc3c50cdd21192aa3e81e36c5efbf9133d54ae82143e0576b", size = 94101, upload-time = "2026-03-30T14:42:24.608Z" }, ] [[package]] name = "zipp" version = "3.23.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, ]