pax_global_header00006660000000000000000000000064135257241540014522gustar00rootroot0000000000000052 comment=29a235bc6e51002b243126b778bd9bc318652be9 python-can-3.3.2.final/000077500000000000000000000000001352572415400146775ustar00rootroot00000000000000python-can-3.3.2.final/.appveyor.yml000066400000000000000000000014311352572415400173440ustar00rootroot00000000000000environment: matrix: # For Python versions available on Appveyor, see # https://www.appveyor.com/docs/windows-images-software/#python # Python pre-2.7 and 3.0-3.4 have reached EOL - PYTHON: "C:\\Python27" - PYTHON: "C:\\Python35" - PYTHON: "C:\\Python36" - PYTHON: "C:\\Python37" - PYTHON: "C:\\Python27-x64" - PYTHON: "C:\\Python35-x64" - PYTHON: "C:\\Python36-x64" - PYTHON: "C:\\Python37-x64" install: # Prepend Python installation and scripts (e.g. pytest) to PATH - set PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH% # We need to install the python-can library itself including the dependencies - "python -m pip install .[test,neovi]" build: off test_script: # run tests - "pytest" # uplad coverage reports - "codecov -X gcov" python-can-3.3.2.final/.codecov.yml000066400000000000000000000007251352572415400171260ustar00rootroot00000000000000# Validate with curl --data-binary @.codecov.yml https://codecov.io/validate codecov: archive: uploads: no coverage: precision: 2 round: down range: 50...100 status: project: default: # coverage may fall by <1.0% and still be considered "passing" threshold: 1.0% patch: default: # coverage may fall by <1.0% and still be considered "passing" threshold: 1.0% comment: layout: "header, diff, changes" python-can-3.3.2.final/.gitignore000066400000000000000000000016451352572415400166750ustar00rootroot00000000000000test/__tempdir__/ .pytest_cache/ # ------------------------- # below: https://github.com/github/gitignore/blob/da00310ccba9de9a988cc973ef5238ad2c1460e9/Python.gitignore # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python env/ venv/ build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ *.egg-info/ .installed.cfg *.egg # 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/ test.* # Translations *.mo *.pot # Django stuff: *.log # Sphinx documentation doc/_build/ # PyBuilder target/ # IDEs .vscode/ .idea/ python-can-3.3.2.final/.travis.yml000066400000000000000000000054141352572415400170140ustar00rootroot00000000000000language: python # Linux setup dist: xenial cache: directories: - "$HOME/.cache/pip" python: # CPython; versions pre-2.7 and 3.0-3.5 have reached EOL - "2.7" - "3.6" - "3.7" - 3.8-dev - nightly # PyPy: - pypy # Python 2.7 - pypy3.5 # Python 3.5 - pypy3 env: install: - if [[ "$TEST_SOCKETCAN" ]]; then sudo bash test/open_vcan.sh ; fi - travis_retry pip install .[test] script: - | # Run the tests python setup.py test # preserve the error code RETURN_CODE=$? # Upload the coverage to codecov.io codecov -X gcov # set error code (exit $RETURN_CODE); jobs: allow_failures: # we allow all dev & nightly builds to fail, since these python versions might # still be very unstable - python: 3.8-dev - python: nightly include: # Note no matrix support when using stages. # Stages with the same name get run in parallel. # Jobs within a stage can also be named. # Unit Testing Stage # testing socketcan on Trusty & Python 3.6, since it is not available on Xenial - stage: test name: Socketcan os: linux dist: trusty python: "3.6" sudo: required env: TEST_SOCKETCAN=TRUE # testing on OSX - stage: test os: osx osx_image: xcode8.3 python: 3.6-dev - stage: test os: osx osx_image: xcode8.3 python: 3.7-dev - stage: test os: osx osx_image: xcode8.3 python: nightly - stage: documentation name: "Sphinx Build" python: "3.7" before_install: - travis_retry pip install -r doc/doc-requirements.txt script: # Build the docs with Sphinx # -a Write all files # -n nitpicky - python -m sphinx -an doc build - stage: deploy name: "PyPi Deployment" python: "3.7" before_install: - travis_retry pip install -U wheel setuptools deploy: provider: pypi user: hardbyte password: secure: oQ9XpEkcilkZgKp+rKvPb2J1GrZe2ZvtOq/IjzCpiA8NeWixl/ai3BkPrLbd8t1wNIFoGwx7IQ7zxWL79aPYeG6XrljEomv3g45NR6dkQewUH+dQFlnT75Rm96Ycxvme0w1+71vM4PqxIuzyXUrF2n7JjC0XCCxHdTuYmPGbxVO1fOsE5R5b9inAbpEUtJuWz5AIrDEZ0OgoQpLSC8fLwbymTThX3JZ5GBLpRScVvLazjIYfRkZxvCqQ4mp1UNTdoMzekxsvxOOcEW6+j3fQO+Q/8uvMksKP0RgT8HE69oeYOeVic4Q4wGqORw+ur4A56NvBqVKtizVLCzzEG9ZfoSDy7ryvGWGZykkh8HX0PFQAEykC3iYihHK8ZFz5bEqRMegTmuRYZwPsel61wVd5posxnQkGm0syIoJNKuuRc5sUK+E3GviYcT8NntdR+4WBrvpQAYa1ZHpVrfnQXyaDmGzOjwCRGPoIDJweEqGVmLycEC5aT8rX3/W9tie9iPnjmFJh4CwNMxDgVQRo80m6Gtlf/DQpA3mH39IvWGqd5fHdTPxYPs32EQSCsaYLJV5pM8xBNv6M2S/KriGnGZU0xT7MEr46da0LstKsK/U8O0yamjyugMvQoC3zQcKLrDzWFSBsT7/vG+AuV5SK8yzfEHugo7jkPQQ+NTw29xzk4dY= on: # Have travis deploy tagged commits to PyPi tags: true skip_cleanup: true python-can-3.3.2.final/CHANGELOG.txt000066400000000000000000000215411352572415400167320ustar00rootroot00000000000000Version 3.3.2 ==== Minor bug fix release addressing issue in PCAN RTR. Version 3.3.1 ==== Minor fix to setup.py to only require pytest-runner when necessary. Version 3.3.0 ==== * Adding CAN FD 64 frame support to blf reader * Updates to installation instructions * Clean up bits generator in PCAN interface #588 * Minor fix to use latest tools when building wheels on travis. Version 3.2.0 ==== Major features -------------- * FD support added for Pcan by @bmeisels with input from @markuspi, @christiansandberg & @felixdivo in PR #537 * This is the last version of python-can which will support Python 2.7 and Python 3.5. Support has been removed for Python 3.4 in this release in PR #532 Other notable changes --------------------- * #533 BusState is now an enum. * #535 This release should automatically be published to PyPi by travis. * #577 Travis-ci now uses stages. * #548 A guide has been added for new io formats. * #550 Finish moving from nose to pytest. * #558 Fix installation on Windows. * #561 Tests for MessageSync added. General fixes, cleanup and docs changes can be found on the GitHub milestone https://github.com/hardbyte/python-can/milestone/7?closed=1 Pulls: #522, #526, #527, #536, #540, #546, #547, #548, #533, #559, #569, #571, #572, #575 Backend Specific Changes ------------------------ pcan ~~~~ * FD slcan ~~~~ * ability to set custom can speed instead of using predefined speed values. #553 socketcan ~~~~ * Bug fix to properly support 32bit systems. #573 usb2can ~~~~ * slightly better error handling * multiple serial devices can be found * support for the `_detect_available_configs()` API Pulls #511, #535 vector ~~~~ * handle `app_name`. #525 Version 3.1.1 ==== Major features -------------- Two new interfaces this release: - SYSTEC contributed by @idaniel86 in PR #466 - CANalyst-II contributed by @smeng9 in PR #476 Other notable changes --------------------- * #477 The kvaser interface now supports bus statistics via a custom bus method. * #434 neovi now supports receiving own messages * #490 Adding option to override the neovi library name * #488 Allow simultaneous access to IXXAT cards * #447 Improvements to serial interface: * to allow receiving partial messages * to fix issue with DLC of remote frames * addition of unit tests * #497 Small API changes to `Message` and added unit tests * #471 Fix CAN FD issue in kvaser interface * #462 Fix `Notifier` issue with asyncio * #481 Fix PCAN support on OSX * #455 Fix to `Message` initializer * Small bugfixes and improvements Version 3.1.0 ==== Version 3.1.0 was built with old wheel and/or setuptools packages and was replaced with v3.1.1 after an installation but was discovered. Version 3.0.0 ==== Major features -------------- * Adds support for developing `asyncio` applications with `python-can` more easily. This can be useful when implementing protocols that handles simultaneous connections to many nodes since you can write synchronous looking code without handling multiple threads and locking mechanisms. #388 * New can viewer terminal application. (`python -m can.viewer`) #390 * More formally adds task management responsibility to the `Bus`. By default tasks created with `bus.send_periodic` will have a reference held by the bus - this means in many cases the user doesn't need to keep the task in scope for their periodic messages to continue being sent. If this behavior isn't desired pass `store_task=False` to the `send_periodic` method. Stop all tasks by calling the bus's new `stop_all_periodic_tasks` method. #412 Breaking changes ---------------- * Interfaces should no longer override `send_periodic` and instead implement `_send_periodic_internal` to allow the Bus base class to manage tasks. #426 * writing to closed writers is not supported any more (it was supported only for some) * the file in the reader/writer is now always stored in the attribute uniformly called `file`, and not in something like `fp`, `log_file` or `output_file`. Changed the name of the first parameter of the read/writer constructors from `filename` to `file`. Other notable changes --------------------- * can.Message class updated #413 - Addition of a `Message.equals` method. - Deprecate id_type in favor of is_extended_id - Initializer parameter extended_id deprecated in favor of is_extended_id - documentation, testing and example updates - Addition of support for various builtins: __repr__, __slots__, __copy__ * IO module updates to bring consistency to the different CAN message writers and readers. #348 - context manager support for all readers and writers - they share a common super class called `BaseIOHandler` - all file handles can now be closed with the `stop()` method - the table name in `SqliteReader`/`SqliteWriter` can be adjusted - append mode added in `CSVWriter` and `CanutilsLogWriter` - [file-like](https://docs.python.org/3/glossary.html#term-file-like-object) and [path-like](https://docs.python.org/3/glossary.html#term-path-like-object) objects can now be passed to the readers and writers (except to the Sqlite handlers) - add a `__ne__()` method to the `Message` class (this was required by the tests) - added a `stop()` method for `BufferedReader` - `SqliteWriter`: this now guarantees that all messages are being written, exposes some previously internal metrics and only buffers messages up to a certain limit before writing/committing to the database. - the unused `header_line` attribute from `CSVReader` has been removed - privatized some attributes that are only to be used internally in the classes - the method `Listener.on_message_received()` is now abstract (using `@abc.abstractmethod`) * Start testing against Python 3.7 #380 * All scripts have been moved into `can/scripts`. #370, #406 * Added support for additional sections to the config #338 * Code coverage reports added. #346, #374 * Bug fix to thread safe bus. #397 General fixes, cleanup and docs changes: (#347, #348, #367, #368, #370, #371, #373, #420, #417, #419, #432) Backend Specific Changes ------------------------ 3rd party interfaces ~~~~~~~~~~~~~~~~~~~~ * Deprecated `python_can.interface` entry point instead use `can.interface`. #389 neovi ~~~~~ * Added support for CAN-FD #408 * Fix issues checking if bus is open. #381 * Adding multiple channels support. #415 nican ~~~~~ * implements reset instead of custom `flush_tx_buffer`. #364 pcan ~~~~ * now supported on OSX. #365 serial ~~~~~~ * Removed TextIOWrapper from serial. #383 * switch to `serial_for_url` enabling using remote ports via `loop://`, ``socket://` and `rfc2217://` URLs. #393 * hardware handshake using `rtscts` kwarg #402 socketcan ~~~~~~~~~ * socketcan tasks now reuse a bcm socket #404, #425, #426, * socketcan bugfix to receive error frames #384 vector ~~~~~~ * Vector interface now implements `_detect_available_configs`. #362 * Added support to select device by serial number. #387 Version 2.2.1 (2018-07-12) ===== * Fix errors and warnings when importing library on Windows * Fix Vector backend raising ValueError when hardware is not connected Version 2.2.0 (2018-06-30) ===== * Fallback message filtering implemented in Python for interfaces that don't offer better accelerated mechanism. * SocketCAN interfaces have been merged (Now use `socketcan` instead of either `socketcan_native` and `socketcan_ctypes`), this is now completely transparent for the library user. * automatic detection of available configs/channels in supported interfaces. * Added synchronized (thread-safe) Bus variant. * context manager support for the Bus class. * Dropped support for Python 3.3 (officially reached end-of-life in Sept. 2017) * Deprecated the old `CAN` module, please use the newer `can` entry point (will be removed in an upcoming major version) Version 2.1.0 (2018-02-17) ===== * Support for out of tree can interfaces with pluggy. * Initial support for CAN-FD for socketcan_native and kvaser interfaces. * Neovi interface now uses Intrepid Control Systems's own interface library. * Improvements and new documentation for SQL reader/writer. * Fix bug in neovi serial number decoding. * Add testing on OSX to TravisCI * Fix non english decoding error on pcan * Other misc improvements and bug fixes Version 2.0.0 (2018-01-05 ===== After an extended baking period we have finally tagged version 2.0.0! Quite a few major changes from v1.x: * New interfaces: * Vector * NI-CAN * isCAN * neoVI * Simplified periodic send API with initial support for SocketCAN * Protocols module including J1939 support removed * Logger script moved to module `can.logger` * New `can.player` script to replay log files * BLF, ASC log file support added in new `can.io` module You can install from [PyPi](https://pypi.python.org/pypi/python-can/2.0.0) with pip: ``` pip install python-can==2.0.0 ``` The documentation for v2.0.0 is available at http://python-can.readthedocs.io/en/2.0.0/ python-can-3.3.2.final/CONTRIBUTORS.txt000066400000000000000000000012471352572415400174010ustar00rootroot00000000000000Ben Powell Brian Thorne Geert Linders Mark Catley Phillip Dixon Rose Lu Karl van Workum Albert Bloomfield Sam Bristow Ethan Zonca Robert Kaye Andrew Beal Jonas Frid Tynan McAuley Bruno Pennati Jack Jester-Weinstein Joshua Villyard Giuseppe Corbelli Christian Sandberg Eduard Bröcker Boris Wenzlaff Pierre-Luc Tessier Gagné Felix Divo Kristian Sloth Lauszus Shaoyu Meng Alexander Mueller Jan Goeteyn "ykzheng" Lear Corporation python-can-3.3.2.final/LICENSE.txt000066400000000000000000000167431352572415400165350ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. python-can-3.3.2.final/MANIFEST.in000066400000000000000000000001221352572415400164300ustar00rootroot00000000000000include *.txt include test/*.py include test/data/*.* recursive-include doc *.rst python-can-3.3.2.final/README.rst000066400000000000000000000103001352572415400163600ustar00rootroot00000000000000python-can ========== |release| |docs| |build_travis| |build_appveyor| |coverage| |downloads| .. |release| image:: https://img.shields.io/pypi/v/python-can.svg :target: https://pypi.python.org/pypi/python-can/ :alt: Latest Version on PyPi .. |docs| image:: https://readthedocs.org/projects/python-can/badge/?version=stable :target: https://python-can.readthedocs.io/en/stable/ :alt: Documentation .. |build_travis| image:: https://img.shields.io/travis/hardbyte/python-can/develop.svg?label=Travis%20CI :target: https://travis-ci.org/hardbyte/python-can/branches :alt: Travis CI Server for develop branch .. |build_appveyor| image:: https://img.shields.io/appveyor/ci/hardbyte/python-can/develop.svg?label=AppVeyor :target: https://ci.appveyor.com/project/hardbyte/python-can/history :alt: AppVeyor CI Server for develop branch .. |coverage| image:: https://codecov.io/gh/hardbyte/python-can/branch/develop/graph/badge.svg :target: https://codecov.io/gh/hardbyte/python-can/branch/develop :alt: Test coverage reports on Codecov.io .. |downloads| image:: https://pepy.tech/badge/python-can :target: https://pepy.tech/project/python-can :alt: Downloads on PePy The **C**\ ontroller **A**\ rea **N**\ etwork is a bus standard designed to allow microcontrollers and devices to communicate with each other. It has priority based bus arbitration and reliable deterministic communication. It is used in cars, trucks, boats, wheelchairs and more. The ``can`` package provides controller area network support for Python developers; providing common abstractions to different hardware devices, and a suite of utilities for sending and receiving messages on a can bus. The library supports Python 2.7, Python 3.5+ as well as PyPy 2 & 3 and runs on Mac, Linux and Windows. ================== =========== Library Version Python ------------------ ----------- 2.x 2.6+, 3.4+ 3.x 2.7+, 3.5+ 4.x (expected) 3.6+ ================== =========== Features -------- - common abstractions for CAN communication - support for many different backends (see the `docs `__) - receiving, sending, and periodically sending messages - normal and extended arbitration IDs - limited `CAN FD `__ support - many different loggers and readers supporting playback: ASC (CANalyzer format), BLF (Binary Logging Format by Vector), CSV, SQLite and Canutils log - efficient in-kernel or in-hardware filtering of messages on supported interfaces - bus configuration reading from file or environment variables - CLI tools for working with CAN buses (see the `docs `__) - more Example usage ------------- .. code:: python # import the library import can # create a bus instance # many other interfaces are supported as well (see below) bus = can.Bus(interface='socketcan', channel='vcan0', receive_own_messages=True) # send a message message = can.Message(arbitration_id=123, is_extended_id=True, data=[0x11, 0x22, 0x33]) bus.send(message, timeout=0.2) # iterate over received messages for msg in bus: print("{X}: {}".format(msg.arbitration_id, msg.data)) # or use an asynchronous notifier notifier = can.Notifier(bus, [can.Logger("recorded.log"), can.Printer()]) You can find more information in the documentation, online at `python-can.readthedocs.org `__. Discussion ---------- If you run into bugs, you can file them in our `issue tracker `__ on GitHub. There is also a `python-can `__ mailing list for development discussion. `Stackoverflow `__ has several questions and answers tagged with ``python+can``. Wherever we interact, we strive to follow the `Python Community Code of Conduct `__. Contributing ------------ See `doc/development.rst `__ for getting started. python-can-3.3.2.final/can/000077500000000000000000000000001352572415400154405ustar00rootroot00000000000000python-can-3.3.2.final/can/CAN.py000066400000000000000000000016551352572415400164220ustar00rootroot00000000000000# coding: utf-8 """ This module was once the core of python-can, containing implementations of all the major classes in the library, now however all functionality has been refactored out. This API is left intact for version 2.x to aide with migration. WARNING: This module is deprecated an will get removed in version 3.x. Please use ``import can`` instead. """ from __future__ import absolute_import from can.message import Message from can.listener import Listener, BufferedReader, RedirectReader from can.util import set_logging_level from can.io import * import warnings # See #267. # Version 2.0 - 2.1: Log a Debug message # Version 2.2: Log a Warning # Version 3.x: DeprecationWarning # Version 4.0: Remove the module warnings.warn('Loading python-can via the old "CAN" API is deprecated since v3.0 an will get removed in v4.0 ' 'Please use `import can` instead.', DeprecationWarning) python-can-3.3.2.final/can/__init__.py000066400000000000000000000023131352572415400175500ustar00rootroot00000000000000# coding: utf-8 """ ``can`` is an object-orient Controller Area Network (CAN) interface module. """ from __future__ import absolute_import import logging __version__ = "3.3.2" log = logging.getLogger('can') rc = dict() class CanError(IOError): """Indicates an error with the CAN network. """ pass from .listener import Listener, BufferedReader, RedirectReader try: from .listener import AsyncBufferedReader except ImportError: pass from .io import Logger, Printer, LogReader, MessageSync from .io import ASCWriter, ASCReader from .io import BLFReader, BLFWriter from .io import CanutilsLogReader, CanutilsLogWriter from .io import CSVWriter, CSVReader from .io import SqliteWriter, SqliteReader from .util import set_logging_level from .message import Message from .bus import BusABC, BusState from .thread_safe_bus import ThreadSafeBus from .notifier import Notifier from .interfaces import VALID_INTERFACES from . import interface from .interface import Bus, detect_available_configs from .broadcastmanager import send_periodic, \ CyclicSendTaskABC, \ LimitedDurationCyclicSendTaskABC, \ ModifiableCyclicTaskABC, \ MultiRateCyclicSendTaskABC, \ RestartableCyclicTaskABC python-can-3.3.2.final/can/broadcastmanager.py000066400000000000000000000121001352572415400213010ustar00rootroot00000000000000# coding: utf-8 """ Exposes several methods for transmitting cyclic messages. The main entry point to these classes should be through :meth:`can.BusABC.send_periodic`. """ import abc import logging import threading import time import warnings log = logging.getLogger('can.bcm') class CyclicTask(object): """ Abstract Base for all cyclic tasks. """ @abc.abstractmethod def stop(self): """Cancel this periodic task. :raises can.CanError: If stop is called on an already stopped task. """ class CyclicSendTaskABC(CyclicTask): """ Message send task with defined period """ def __init__(self, message, period): """ :param can.Message message: The message to be sent periodically. :param float period: The rate in seconds at which to send the message. """ self.message = message self.can_id = message.arbitration_id self.arbitration_id = message.arbitration_id self.period = period super(CyclicSendTaskABC, self).__init__() class LimitedDurationCyclicSendTaskABC(CyclicSendTaskABC): def __init__(self, message, period, duration): """Message send task with a defined duration and period. :param can.Message message: The message to be sent periodically. :param float period: The rate in seconds at which to send the message. :param float duration: The duration to keep sending this message at given rate. """ super(LimitedDurationCyclicSendTaskABC, self).__init__(message, period) self.duration = duration class RestartableCyclicTaskABC(CyclicSendTaskABC): """Adds support for restarting a stopped cyclic task""" @abc.abstractmethod def start(self): """Restart a stopped periodic task. """ class ModifiableCyclicTaskABC(CyclicSendTaskABC): """Adds support for modifying a periodic message""" def modify_data(self, message): """Update the contents of this periodically sent message without altering the timing. :param can.Message message: The message with the new :attr:`can.Message.data`. Note: The arbitration ID cannot be changed. """ self.message = message class MultiRateCyclicSendTaskABC(CyclicSendTaskABC): """A Cyclic send task that supports switches send frequency after a set time. """ def __init__(self, channel, message, count, initial_period, subsequent_period): """ Transmits a message `count` times at `initial_period` then continues to transmit message at `subsequent_period`. :param channel: See interface specific documentation. :param can.Message message: :param int count: :param float initial_period: :param float subsequent_period: """ super(MultiRateCyclicSendTaskABC, self).__init__(channel, message, subsequent_period) class ThreadBasedCyclicSendTask(ModifiableCyclicTaskABC, LimitedDurationCyclicSendTaskABC, RestartableCyclicTaskABC): """Fallback cyclic send task using thread.""" def __init__(self, bus, lock, message, period, duration=None): super(ThreadBasedCyclicSendTask, self).__init__(message, period, duration) self.bus = bus self.lock = lock self.stopped = True self.thread = None self.end_time = time.time() + duration if duration else None self.start() def stop(self): self.stopped = True def start(self): self.stopped = False if self.thread is None or not self.thread.is_alive(): name = "Cyclic send task for 0x%X" % (self.message.arbitration_id) self.thread = threading.Thread(target=self._run, name=name) self.thread.daemon = True self.thread.start() def _run(self): while not self.stopped: # Prevent calling bus.send from multiple threads with self.lock: started = time.time() try: self.bus.send(self.message) except Exception as exc: log.exception(exc) break if self.end_time is not None and time.time() >= self.end_time: break # Compensate for the time it takes to send the message delay = self.period - (time.time() - started) time.sleep(max(0.0, delay)) def send_periodic(bus, message, period, *args, **kwargs): """ Send a :class:`~can.Message` every `period` seconds on the given bus. :param can.BusABC bus: A CAN bus which supports sending. :param can.Message message: Message to send periodically. :param float period: The minimum time between sending messages. :return: A started task instance """ warnings.warn("The function `can.send_periodic` is deprecated and will " + "be removed in an upcoming version. Please use `can.Bus.send_periodic` instead.", DeprecationWarning) return bus.send_periodic(message, period, *args, **kwargs) python-can-3.3.2.final/can/bus.py000066400000000000000000000324321352572415400166070ustar00rootroot00000000000000# coding: utf-8 """ Contains the ABC bus implementation and its documentation. """ from __future__ import print_function, absolute_import from abc import ABCMeta, abstractmethod import logging import threading from time import time from collections import namedtuple from aenum import Enum, auto from .broadcastmanager import ThreadBasedCyclicSendTask LOG = logging.getLogger(__name__) class BusState(Enum): """The state in which a :class:`can.BusABC` can be.""" ACTIVE = auto() PASSIVE = auto() ERROR = auto() class BusABC(object): """The CAN Bus Abstract Base Class that serves as the basis for all concrete interfaces. This class may be used as an iterator over the received messages. """ #: a string describing the underlying bus and/or channel channel_info = 'unknown' #: Log level for received messages RECV_LOGGING_LEVEL = 9 @abstractmethod def __init__(self, channel, can_filters=None, **kwargs): """Construct and open a CAN bus instance of the specified type. Subclasses should call though this method with all given parameters as it handles generic tasks like applying filters. :param channel: The can interface identifier. Expected type is backend dependent. :param list can_filters: See :meth:`~can.BusABC.set_filters` for details. :param dict kwargs: Any backend dependent configurations are passed in this dictionary """ self._periodic_tasks = [] self.set_filters(can_filters) def __str__(self): return self.channel_info def recv(self, timeout=None): """Block waiting for a message from the Bus. :type timeout: float or None :param timeout: seconds to wait for a message or None to wait indefinitely :rtype: can.Message or None :return: None on timeout or a :class:`can.Message` object. :raises can.CanError: if an error occurred while reading """ start = time() time_left = timeout while True: # try to get a message msg, already_filtered = self._recv_internal(timeout=time_left) # return it, if it matches if msg and (already_filtered or self._matches_filters(msg)): LOG.log(self.RECV_LOGGING_LEVEL, 'Received: %s', msg) return msg # if not, and timeout is None, try indefinitely elif timeout is None: continue # try next one only if there still is time, and with # reduced timeout else: time_left = timeout - (time() - start) if time_left > 0: continue else: return None def _recv_internal(self, timeout): """ Read a message from the bus and tell whether it was filtered. This methods may be called by :meth:`~can.BusABC.recv` to read a message multiple times if the filters set by :meth:`~can.BusABC.set_filters` do not match and the call has not yet timed out. New implementations should always override this method instead of :meth:`~can.BusABC.recv`, to be able to take advantage of the software based filtering provided by :meth:`~can.BusABC.recv` as a fallback. This method should never be called directly. .. note:: This method is not an `@abstractmethod` (for now) to allow older external implementations to continue using their existing :meth:`~can.BusABC.recv` implementation. .. note:: The second return value (whether filtering was already done) may change over time for some interfaces, like for example in the Kvaser interface. Thus it cannot be simplified to a constant value. :param float timeout: seconds to wait for a message, see :meth:`~can.BusABC.send` :rtype: tuple[can.Message, bool] or tuple[None, bool] :return: 1. a message that was read or None on timeout 2. a bool that is True if message filtering has already been done and else False :raises can.CanError: if an error occurred while reading :raises NotImplementedError: if the bus provides it's own :meth:`~can.BusABC.recv` implementation (legacy implementation) """ raise NotImplementedError("Trying to read from a write only bus?") @abstractmethod def send(self, msg, timeout=None): """Transmit a message to the CAN bus. Override this method to enable the transmit path. :param can.Message msg: A message object. :type timeout: float or None :param timeout: If > 0, wait up to this many seconds for message to be ACK'ed or for transmit queue to be ready depending on driver implementation. If timeout is exceeded, an exception will be raised. Might not be supported by all interfaces. None blocks indefinitely. :raises can.CanError: if the message could not be sent """ raise NotImplementedError("Trying to write to a readonly bus?") def send_periodic(self, msg, period, duration=None, store_task=True): """Start sending a message at a given period on this bus. The task will be active until one of the following conditions are met: - the (optional) duration expires - the Bus instance goes out of scope - the Bus instance is shutdown - :meth:`BusABC.stop_all_periodic_tasks()` is called - the task's :meth:`CyclicTask.stop()` method is called. :param can.Message msg: Message to transmit :param float period: Period in seconds between each message :param float duration: The duration to keep sending this message at given rate. If no duration is provided, the task will continue indefinitely. :param bool store_task: If True (the default) the task will be attached to this Bus instance. Disable to instead manage tasks manually. :return: A started task instance. Note the task can be stopped (and depending on the backend modified) by calling the :meth:`stop` method. :rtype: can.broadcastmanager.CyclicSendTaskABC .. note:: Note the duration before the message stops being sent may not be exactly the same as the duration specified by the user. In general the message will be sent at the given rate until at least **duration** seconds. .. note:: For extremely long running Bus instances with many short lived tasks the default api with ``store_task==True`` may not be appropriate as the stopped tasks are still taking up memory as they are associated with the Bus instance. """ task = self._send_periodic_internal(msg, period, duration) # we wrap the task's stop method to also remove it from the Bus's list of tasks original_stop_method = task.stop def wrapped_stop_method(remove_task=True): if remove_task: try: self._periodic_tasks.remove(task) except ValueError: pass original_stop_method() task.stop = wrapped_stop_method if store_task: self._periodic_tasks.append(task) return task def _send_periodic_internal(self, msg, period, duration=None): """Default implementation of periodic message sending using threading. Override this method to enable a more efficient backend specific approach. :param can.Message msg: Message to transmit :param float period: Period in seconds between each message :param float duration: The duration to keep sending this message at given rate. If no duration is provided, the task will continue indefinitely. :return: A started task instance. Note the task can be stopped (and depending on the backend modified) by calling the :meth:`stop` method. :rtype: can.broadcastmanager.CyclicSendTaskABC """ if not hasattr(self, "_lock_send_periodic"): # Create a send lock for this bus self._lock_send_periodic = threading.Lock() task = ThreadBasedCyclicSendTask(self, self._lock_send_periodic, msg, period, duration) return task def stop_all_periodic_tasks(self, remove_tasks=True): """Stop sending any messages that were started using bus.send_periodic :param bool remove_tasks: Stop tracking the stopped tasks. """ for task in self._periodic_tasks: task.stop(remove_task=remove_tasks) def __iter__(self): """Allow iteration on messages as they are received. >>> for msg in bus: ... print(msg) :yields: :class:`can.Message` msg objects. """ while True: msg = self.recv(timeout=1.0) if msg is not None: yield msg @property def filters(self): """ Modify the filters of this bus. See :meth:`~can.BusABC.set_filters` for details. """ return self._filters @filters.setter def filters(self, filters): self.set_filters(filters) def set_filters(self, filters=None): """Apply filtering to all messages received by this Bus. All messages that match at least one filter are returned. If `filters` is `None` or a zero length sequence, all messages are matched. Calling without passing any filters will reset the applied filters to `None`. :param filters: A iterable of dictionaries each containing a "can_id", a "can_mask", and an optional "extended" key. >>> [{"can_id": 0x11, "can_mask": 0x21, "extended": False}] A filter matches, when `` & can_mask == can_id & can_mask``. If ``extended`` is set as well, it only matches messages where `` == extended``. Else it matches every messages based only on the arbitration ID and mask. """ self._filters = filters or None self._apply_filters(self._filters) def _apply_filters(self, filters): """ Hook for applying the filters to the underlying kernel or hardware if supported/implemented by the interface. :param Iterator[dict] filters: See :meth:`~can.BusABC.set_filters` for details. """ pass def _matches_filters(self, msg): """Checks whether the given message matches at least one of the current filters. See :meth:`~can.BusABC.set_filters` for details on how the filters work. This method should not be overridden. :param can.Message msg: the message to check if matching :rtype: bool :return: whether the given message matches at least one filter """ # if no filters are set, all messages are matched if self._filters is None: return True for _filter in self._filters: # check if this filter even applies to the message if 'extended' in _filter and \ _filter['extended'] != msg.is_extended_id: continue # then check for the mask and id can_id = _filter['can_id'] can_mask = _filter['can_mask'] # basically, we compute # `msg.arbitration_id & can_mask == can_id & can_mask` # by using the shorter, but equivalent from below: if (can_id ^ msg.arbitration_id) & can_mask == 0: return True # nothing matched return False def flush_tx_buffer(self): """Discard every message that may be queued in the output buffer(s). """ pass def shutdown(self): """ Called to carry out any interface specific cleanup required in shutting down a bus. """ pass def __enter__(self): return self def __exit__(self, exc_type, exc_val, exc_tb): self.shutdown() @property def state(self): """ Return the current state of the hardware :type: can.BusState """ return BusState.ACTIVE @state.setter def state(self, new_state): """ Set the new state of the hardware :type: can.BusState """ raise NotImplementedError("Property is not implemented.") @staticmethod def _detect_available_configs(): """Detect all configurations/channels that this interface could currently connect with. This might be quite time consuming. May not to be implemented by every interface on every platform. :rtype: Iterator[dict] :return: an iterable of dicts, each being a configuration suitable for usage in the interface's bus constructor. """ raise NotImplementedError() __metaclass__ = ABCMeta python-can-3.3.2.final/can/ctypesutil.py000066400000000000000000000054121352572415400202210ustar00rootroot00000000000000# coding: utf-8 """ This module contains common `ctypes` utils. """ import binascii import ctypes import logging import sys log = logging.getLogger('can.ctypesutil') __all__ = ['CLibrary', 'HANDLE', 'PHANDLE', 'HRESULT'] try: _LibBase = ctypes.WinDLL except AttributeError: _LibBase = ctypes.CDLL class LibraryMixin: def map_symbol(self, func_name, restype=None, argtypes=(), errcheck=None): """ Map and return a symbol (function) from a C library. A reference to the mapped symbol is also held in the instance :param str func_name: symbol_name :param ctypes.c_* restype: function result type (i.e. ctypes.c_ulong...), defaults to void :param tuple(ctypes.c_* ... ) argtypes: argument types, defaults to no args :param callable errcheck: optional error checking function, see ctypes docs for _FuncPtr """ if (argtypes): prototype = self.function_type(restype, *argtypes) else: prototype = self.function_type(restype) try: symbol = prototype((func_name, self)) except AttributeError: raise ImportError("Could not map function '{}' from library {}".format(func_name, self._name)) setattr(symbol, "_name", func_name) log.debug('Wrapped function "{}", result type: {}, error_check {}'.format(func_name, type(restype), errcheck)) if (errcheck): symbol.errcheck = errcheck setattr(self, func_name, symbol) return symbol class CLibrary_Win32(_LibBase, LibraryMixin): " Basic ctypes.WinDLL derived class + LibraryMixin " def __init__(self, library_or_path): if (isinstance(library_or_path, str)): super(CLibrary_Win32, self).__init__(library_or_path) else: super(CLibrary_Win32, self).__init__(library_or_path._name, library_or_path._handle) @property def function_type(self): return ctypes.WINFUNCTYPE class CLibrary_Unix(ctypes.CDLL, LibraryMixin): " Basic ctypes.CDLL derived class + LibraryMixin " def __init__(self, library_or_path): if (isinstance(library_or_path, str)): super(CLibrary_Unix, self).__init__(library_or_path) else: super(CLibrary_Unix, self).__init__(library_or_path._name, library_or_path._handle) @property def function_type(self): return ctypes.CFUNCTYPE if sys.platform == "win32": CLibrary = CLibrary_Win32 HRESULT = ctypes.HRESULT else: CLibrary = CLibrary_Unix if sys.platform == "cygwin": # Define HRESULT for cygwin class HRESULT(ctypes.c_long): pass # Common win32 definitions class HANDLE(ctypes.c_void_p): pass PHANDLE = ctypes.POINTER(HANDLE) python-can-3.3.2.final/can/interface.py000066400000000000000000000136411352572415400177570ustar00rootroot00000000000000# coding: utf-8 """ This module contains the base implementation of :class:`can.BusABC` as well as a list of all available backends and some implemented CyclicSendTasks. """ from __future__ import absolute_import, print_function import sys import importlib import logging import can from .bus import BusABC from .broadcastmanager import CyclicSendTaskABC, MultiRateCyclicSendTaskABC from .util import load_config from .interfaces import BACKENDS if 'linux' in sys.platform: # Deprecated and undocumented access to SocketCAN cyclic tasks # Will be removed in version 4.0 from can.interfaces.socketcan import CyclicSendTask, MultiRateCyclicSendTask # Required by "detect_available_configs" for argument interpretation if sys.version_info.major > 2: basestring = str log = logging.getLogger('can.interface') log_autodetect = log.getChild('detect_available_configs') def _get_class_for_interface(interface): """ Returns the main bus class for the given interface. :raises: NotImplementedError if the interface is not known :raises: ImportError if there was a problem while importing the interface or the bus class within that """ # Find the correct backend try: module_name, class_name = BACKENDS[interface] except KeyError: raise NotImplementedError("CAN interface '{}' not supported".format(interface)) # Import the correct interface module try: module = importlib.import_module(module_name) except Exception as e: raise ImportError( "Cannot import module {} for CAN interface '{}': {}".format(module_name, interface, e) ) # Get the correct class try: bus_class = getattr(module, class_name) except Exception as e: raise ImportError( "Cannot import class {} from module {} for CAN interface '{}': {}" .format(class_name, module_name, interface, e) ) return bus_class class Bus(BusABC): """Bus wrapper with configuration loading. Instantiates a CAN Bus of the given ``interface``, falls back to reading a configuration file from default locations. """ @staticmethod def __new__(cls, channel=None, *args, **kwargs): """ Takes the same arguments as :class:`can.BusABC.__init__`. Some might have a special meaning, see below. :param channel: Set to ``None`` to let it be reloved automatically from the default configuration. That might fail, see below. Expected type is backend dependent. :param dict kwargs: Should contain an ``interface`` key with a valid interface name. If not, it is completed using :meth:`can.util.load_config`. :raises: NotImplementedError if the ``interface`` isn't recognized :raises: ValueError if the ``channel`` could not be determined """ # figure out the rest of the configuration; this might raise an error if channel is not None: kwargs['channel'] = channel if 'context' in kwargs: context = kwargs['context'] del kwargs['context'] else: context = None kwargs = load_config(config=kwargs, context=context) # resolve the bus class to use for that interface cls = _get_class_for_interface(kwargs['interface']) # remove the 'interface' key so it doesn't get passed to the backend del kwargs['interface'] # make sure the bus can handle this config format if 'channel' not in kwargs: raise ValueError("'channel' argument missing") else: channel = kwargs['channel'] del kwargs['channel'] if channel is None: # Use the default channel for the backend return cls(*args, **kwargs) else: return cls(channel, *args, **kwargs) def detect_available_configs(interfaces=None): """Detect all configurations/channels that the interfaces could currently connect with. This might be quite time consuming. Automated configuration detection may not be implemented by every interface on every platform. This method will not raise an error in that case, but with rather return an empty list for that interface. :param interfaces: either - the name of an interface to be searched in as a string, - an iterable of interface names to search in, or - `None` to search in all known interfaces. :rtype: list[dict] :return: an iterable of dicts, each suitable for usage in the constructor of :class:`can.BusABC`. """ # Figure out where to search if interfaces is None: # use an iterator over the keys so we do not have to copy it interfaces = BACKENDS.keys() elif isinstance(interfaces, basestring): interfaces = [interfaces, ] # else it is supposed to be an iterable of strings result = [] for interface in interfaces: try: bus_class = _get_class_for_interface(interface) except ImportError: log_autodetect.debug('interface "%s" can not be loaded for detection of available configurations', interface) continue # get available channels try: available = list(bus_class._detect_available_configs()) except NotImplementedError: log_autodetect.debug('interface "%s" does not support detection of available configurations', interface) else: log_autodetect.debug('interface "%s" detected %i available configurations', interface, len(available)) # add the interface name to the configs if it is not already present for config in available: if 'interface' not in config: config['interface'] = interface # append to result result += available return result python-can-3.3.2.final/can/interfaces/000077500000000000000000000000001352572415400175635ustar00rootroot00000000000000python-can-3.3.2.final/can/interfaces/__init__.py000066400000000000000000000035071352572415400217010ustar00rootroot00000000000000# coding: utf-8 """ Interfaces contain low level implementations that interact with CAN hardware. """ import warnings from pkg_resources import iter_entry_points # interface_name => (module, classname) BACKENDS = { 'kvaser': ('can.interfaces.kvaser', 'KvaserBus'), 'socketcan': ('can.interfaces.socketcan', 'SocketcanBus'), 'serial': ('can.interfaces.serial.serial_can','SerialBus'), 'pcan': ('can.interfaces.pcan', 'PcanBus'), 'usb2can': ('can.interfaces.usb2can', 'Usb2canBus'), 'ixxat': ('can.interfaces.ixxat', 'IXXATBus'), 'nican': ('can.interfaces.nican', 'NicanBus'), 'iscan': ('can.interfaces.iscan', 'IscanBus'), 'virtual': ('can.interfaces.virtual', 'VirtualBus'), 'neovi': ('can.interfaces.ics_neovi', 'NeoViBus'), 'vector': ('can.interfaces.vector', 'VectorBus'), 'slcan': ('can.interfaces.slcan', 'slcanBus'), 'canalystii': ('can.interfaces.canalystii', 'CANalystIIBus'), 'systec': ('can.interfaces.systec', 'UcanBus') } BACKENDS.update({ interface.name: (interface.module_name, interface.attrs[0]) for interface in iter_entry_points('can.interface') }) # Old entry point name. May be removed >3.0. for interface in iter_entry_points('python_can.interface'): BACKENDS[interface.name] = (interface.module_name, interface.attrs[0]) warnings.warn('{} is using the deprecated python_can.interface entry point. '.format(interface.name) + 'Please change to can.interface instead.', DeprecationWarning) VALID_INTERFACES = frozenset(list(BACKENDS.keys()) + ['socketcan_native', 'socketcan_ctypes']) python-can-3.3.2.final/can/interfaces/canalystii.py000066400000000000000000000122541352572415400223010ustar00rootroot00000000000000from ctypes import * import logging import platform from can import BusABC, Message logger = logging.getLogger(__name__) class VCI_INIT_CONFIG(Structure): _fields_ = [("AccCode", c_int32), ("AccMask", c_int32), ("Reserved", c_int32), ("Filter", c_ubyte), ("Timing0", c_ubyte), ("Timing1", c_ubyte), ("Mode", c_ubyte)] class VCI_CAN_OBJ(Structure): _fields_ = [("ID", c_uint), ("TimeStamp", c_int), ("TimeFlag", c_byte), ("SendType", c_byte), ("RemoteFlag", c_byte), ("ExternFlag", c_byte), ("DataLen", c_byte), ("Data", c_ubyte * 8), ("Reserved", c_byte * 3)] VCI_USBCAN2 = 4 STATUS_OK = 0x01 STATUS_ERR = 0x00 TIMING_DICT = { 5000: (0xBF, 0xFF), 10000: (0x31, 0x1C), 20000: (0x18, 0x1C), 33330: (0x09, 0x6F), 40000: (0x87, 0xFF), 50000: (0x09, 0x1C), 66660: (0x04, 0x6F), 80000: (0x83, 0xFF), 83330: (0x03, 0x6F), 100000: (0x04, 0x1C), 125000: (0x03, 0x1C), 200000: (0x81, 0xFA), 250000: (0x01, 0x1C), 400000: (0x80, 0xFA), 500000: (0x00, 0x1C), 666000: (0x80, 0xB6), 800000: (0x00, 0x16), 1000000: (0x00, 0x14), } try: if platform.system() == "Windows": CANalystII = WinDLL("./ControlCAN.dll") else: CANalystII = CDLL("./libcontrolcan.so") logger.info("Loaded CANalystII library") except OSError as e: CANalystII = None logger.info("Cannot load CANalystII library") class CANalystIIBus(BusABC): def __init__(self, channel, device=0, baud=None, Timing0=None, Timing1=None, can_filters=None): """ :param channel: channel number :param device: device number :param baud: baud rate :param Timing0: customize the timing register if baudrate is not specified :param Timing1: :param can_filters: filters for packet """ super(CANalystIIBus, self).__init__(channel, can_filters) if isinstance(channel, (list, tuple)): self.channels = channel elif isinstance(channel, int): self.channels = [channel] else: # Assume comma separated string of channels self.channels = [int(ch.strip()) for ch in channel.split(',')] self.device = device self.channel_info = "CANalyst-II: device {}, channels {}".format(self.device, self.channels) if baud is not None: try: Timing0, Timing1 = TIMING_DICT[baud] except KeyError: raise ValueError("Baudrate is not supported") if Timing0 is None or Timing1 is None: raise ValueError("Timing registers are not set") self.init_config = VCI_INIT_CONFIG(0, 0xFFFFFFFF, 0, 1, Timing0, Timing1, 0) if CANalystII.VCI_OpenDevice(VCI_USBCAN2, self.device, 0) == STATUS_ERR: logger.error("VCI_OpenDevice Error") for channel in self.channels: if CANalystII.VCI_InitCAN(VCI_USBCAN2, self.device, channel, byref(self.init_config)) == STATUS_ERR: logger.error("VCI_InitCAN Error") self.shutdown() return if CANalystII.VCI_StartCAN(VCI_USBCAN2, self.device, channel) == STATUS_ERR: logger.error("VCI_StartCAN Error") self.shutdown() return def send(self, msg, timeout=None): """ :param msg: message to send :param timeout: timeout is not used here :return: """ extern_flag = 1 if msg.is_extended_id else 0 raw_message = VCI_CAN_OBJ(msg.arbitration_id, 0, 0, 1, msg.is_remote_frame, extern_flag, msg.dlc, (c_ubyte * 8)(*msg.data), (c_byte * 3)(*[0, 0, 0])) if msg.channel is not None: channel = msg.channel elif len(self.channels) == 1: channel = self.channels[0] else: raise ValueError( "msg.channel must be set when using multiple channels.") CANalystII.VCI_Transmit(VCI_USBCAN2, self.device, channel, byref(raw_message), 1) def _recv_internal(self, timeout=None): """ :param timeout: float in seconds :return: """ raw_message = VCI_CAN_OBJ() timeout = -1 if timeout is None else int(timeout * 1000) if CANalystII.VCI_Receive(VCI_USBCAN2, self.device, self.channels[0], byref(raw_message), 1, timeout) <= STATUS_ERR: return None, False else: return ( Message( timestamp=raw_message.TimeStamp if raw_message.TimeFlag else 0.0, arbitration_id=raw_message.ID, is_remote_frame=raw_message.RemoteFlag, channel=0, dlc=raw_message.DataLen, data=raw_message.Data, ), False, ) def flush_tx_buffer(self): for channel in self.channels: CANalystII.VCI_ClearBuffer(VCI_USBCAN2, self.device, channel) def shutdown(self): CANalystII.VCI_CloseDevice(VCI_USBCAN2, self.device) python-can-3.3.2.final/can/interfaces/ics_neovi/000077500000000000000000000000001352572415400215415ustar00rootroot00000000000000python-can-3.3.2.final/can/interfaces/ics_neovi/__init__.py000066400000000000000000000001221352572415400236450ustar00rootroot00000000000000# coding: utf-8 """ """ from can.interfaces.ics_neovi.neovi_bus import NeoViBus python-can-3.3.2.final/can/interfaces/ics_neovi/neovi_bus.py000066400000000000000000000301271352572415400241070ustar00rootroot00000000000000# coding: utf-8 """ ICS NeoVi interface module. python-ics is a Python wrapper around the API provided by Intrepid Control Systems for communicating with their NeoVI range of devices. Implementation references: * https://github.com/intrepidcs/python_ics """ import logging from collections import deque from can import Message, CanError, BusABC logger = logging.getLogger(__name__) try: import ics except ImportError as ie: logger.warning( "You won't be able to use the ICS NeoVi can backend without the " "python-ics module installed!: %s", ie ) ics = None class ICSApiError(CanError): """ Indicates an error with the ICS API. """ # A critical error which affects operation or accuracy. ICS_SPY_ERR_CRITICAL = 0x10 # An error which is not understood. ICS_SPY_ERR_QUESTION = 0x20 # An important error which may be critical depending on the application ICS_SPY_ERR_EXCLAMATION = 0x30 # An error which probably does not need attention. ICS_SPY_ERR_INFORMATION = 0x40 def __init__( self, error_number, description_short, description_long, severity, restart_needed ): super(ICSApiError, self).__init__(description_short) self.error_number = error_number self.description_short = description_short self.description_long = description_long self.severity = severity self.restart_needed = restart_needed == 1 def __str__(self): return "{} {}".format(self.description_short, self.description_long) @property def is_critical(self): return self.severity == self.ICS_SPY_ERR_CRITICAL class NeoViBus(BusABC): """ The CAN Bus implemented for the python_ics interface https://github.com/intrepidcs/python_ics """ def __init__(self, channel, can_filters=None, **kwargs): """ :param channel: The channel ids to create this bus with. Can also be a single integer, netid name or a comma separated string. :type channel: int or str or list(int) or list(str) :param list can_filters: See :meth:`can.BusABC.set_filters` for details. :param bool receive_own_messages: If transmitted messages should also be received by this bus. :param bool use_system_timestamp: Use system timestamp for can messages instead of the hardware time stamp :param str serial: Serial to connect (optional, will use the first found if not supplied) :param int bitrate: Channel bitrate in bit/s. (optional, will enable the auto bitrate feature if not supplied) :param bool fd: If CAN-FD frames should be supported. :param int data_bitrate: Which bitrate to use for data phase in CAN FD. Defaults to arbitration bitrate. :param override_library_name: Absolute path or relative path to the library including filename. """ if ics is None: raise ImportError('Please install python-ics') super(NeoViBus, self).__init__( channel=channel, can_filters=can_filters, **kwargs) logger.info("CAN Filters: {}".format(can_filters)) logger.info("Got configuration of: {}".format(kwargs)) if 'override_library_name' in kwargs: ics.override_library_name(kwargs.get('override_library_name')) if isinstance(channel, (list, tuple)): self.channels = channel elif isinstance(channel, int): self.channels = [channel] else: # Assume comma separated string of channels self.channels = [ch.strip() for ch in channel.split(',')] self.channels = [NeoViBus.channel_to_netid(ch) for ch in self.channels] type_filter = kwargs.get('type_filter') serial = kwargs.get('serial') self.dev = self._find_device(type_filter, serial) ics.open_device(self.dev) if 'bitrate' in kwargs: for channel in self.channels: ics.set_bit_rate(self.dev, kwargs.get('bitrate'), channel) fd = kwargs.get('fd', False) if fd: if 'data_bitrate' in kwargs: for channel in self.channels: ics.set_fd_bit_rate( self.dev, kwargs.get('data_bitrate'), channel) self._use_system_timestamp = bool( kwargs.get('use_system_timestamp', False) ) self._receive_own_messages = kwargs.get('receive_own_messages', True) self.channel_info = '%s %s CH:%s' % ( self.dev.Name, self.get_serial_number(self.dev), self.channels ) logger.info("Using device: {}".format(self.channel_info)) self.rx_buffer = deque() @staticmethod def channel_to_netid(channel_name_or_id): try: channel = int(channel_name_or_id) except ValueError: netid = "NETID_{}".format(channel_name_or_id.upper()) if hasattr(ics, netid): channel = getattr(ics, netid) else: raise ValueError( 'channel must be an integer or ' 'a valid ICS channel name' ) return channel @staticmethod def get_serial_number(device): """Decode (if needed) and return the ICS device serial string :param device: ics device :return: ics device serial string :rtype: str """ a0000 = 604661760 if device.SerialNumber >= a0000: return ics.base36enc(device.SerialNumber) return str(device.SerialNumber) def shutdown(self): super(NeoViBus, self).shutdown() ics.close_device(self.dev) @staticmethod def _detect_available_configs(): """Detect all configurations/channels that this interface could currently connect with. :rtype: Iterator[dict] :return: an iterable of dicts, each being a configuration suitable for usage in the interface's bus constructor. """ if ics is None: return [] try: devices = ics.find_devices() except Exception as e: logger.debug("Failed to detect configs: %s", e) return [] # TODO: add the channel(s) return [{ 'interface': 'neovi', 'serial': NeoViBus.get_serial_number(device) } for device in devices] def _find_device(self, type_filter=None, serial=None): if type_filter is not None: devices = ics.find_devices(type_filter) else: devices = ics.find_devices() for device in devices: if serial is None or self.get_serial_number(device) == str(serial): dev = device break else: msg = ['No device'] if type_filter is not None: msg.append('with type {}'.format(type_filter)) if serial is not None: msg.append('with serial {}'.format(serial)) msg.append('found.') raise Exception(' '.join(msg)) return dev def _process_msg_queue(self, timeout=0.1): try: messages, errors = ics.get_messages(self.dev, False, timeout) except ics.RuntimeError: return for ics_msg in messages: if ics_msg.NetworkID not in self.channels: continue is_tx = bool(ics_msg.StatusBitField & ics.SPY_STATUS_TX_MSG) if not self._receive_own_messages and is_tx: continue self.rx_buffer.append(ics_msg) if errors: logger.warning("%d error(s) found" % errors) for msg in ics.get_error_messages(self.dev): error = ICSApiError(*msg) logger.warning(error) def _get_timestamp_for_msg(self, ics_msg): if self._use_system_timestamp: # This is the system time stamp. # TimeSystem is loaded with the value received from the timeGetTime # call in the WIN32 multimedia API. # # The timeGetTime accuracy is up to 1 millisecond. See the WIN32 # API documentation for more information. # # This timestamp is useful for time comparing with other system # events or data which is not synced with the neoVI timestamp. # # Currently, TimeSystem2 is not used. return ics_msg.TimeSystem else: # This is the hardware time stamp. return ics.get_timestamp_for_msg(self.dev, ics_msg) def _ics_msg_to_message(self, ics_msg): is_fd = ics_msg.Protocol == ics.SPY_PROTOCOL_CANFD if is_fd: if ics_msg.ExtraDataPtrEnabled: data = ics_msg.ExtraDataPtr[:ics_msg.NumberBytesData] else: data = ics_msg.Data[:ics_msg.NumberBytesData] return Message( timestamp=self._get_timestamp_for_msg(ics_msg), arbitration_id=ics_msg.ArbIDOrHeader, data=data, dlc=ics_msg.NumberBytesData, is_extended_id=bool( ics_msg.StatusBitField & ics.SPY_STATUS_XTD_FRAME ), is_fd=is_fd, is_remote_frame=bool( ics_msg.StatusBitField & ics.SPY_STATUS_REMOTE_FRAME ), error_state_indicator=bool( ics_msg.StatusBitField3 & ics.SPY_STATUS3_CANFD_ESI ), bitrate_switch=bool( ics_msg.StatusBitField3 & ics.SPY_STATUS3_CANFD_BRS ), channel=ics_msg.NetworkID ) else: return Message( timestamp=self._get_timestamp_for_msg(ics_msg), arbitration_id=ics_msg.ArbIDOrHeader, data=ics_msg.Data[:ics_msg.NumberBytesData], dlc=ics_msg.NumberBytesData, is_extended_id=bool( ics_msg.StatusBitField & ics.SPY_STATUS_XTD_FRAME ), is_fd=is_fd, is_remote_frame=bool( ics_msg.StatusBitField & ics.SPY_STATUS_REMOTE_FRAME ), channel=ics_msg.NetworkID ) def _recv_internal(self, timeout=0.1): if not self.rx_buffer: self._process_msg_queue(timeout=timeout) try: ics_msg = self.rx_buffer.popleft() msg = self._ics_msg_to_message(ics_msg) except IndexError: return None, False return msg, False def send(self, msg, timeout=None): if not ics.validate_hobject(self.dev): raise CanError("bus not open") message = ics.SpyMessage() flag0 = 0 if msg.is_extended_id: flag0 |= ics.SPY_STATUS_XTD_FRAME if msg.is_remote_frame: flag0 |= ics.SPY_STATUS_REMOTE_FRAME flag3 = 0 if msg.is_fd: message.Protocol = ics.SPY_PROTOCOL_CANFD if msg.bitrate_switch: flag3 |= ics.SPY_STATUS3_CANFD_BRS if msg.error_state_indicator: flag3 |= ics.SPY_STATUS3_CANFD_ESI message.ArbIDOrHeader = msg.arbitration_id message.NumberBytesData = len(msg.data) message.Data = tuple(msg.data[:8]) if msg.is_fd and len(msg.data) > 8: message.ExtraDataPtrEnabled = 1 message.ExtraDataPtr = tuple(msg.data) message.StatusBitField = flag0 message.StatusBitField2 = 0 message.StatusBitField3 = flag3 if msg.channel is not None: message.NetworkID = msg.channel elif len(self.channels) == 1: message.NetworkID = self.channels[0] else: raise ValueError( "msg.channel must be set when using multiple channels.") try: ics.transmit_messages(self.dev, message) except ics.RuntimeError: raise ICSApiError(*ics.get_last_api_error(self.dev)) python-can-3.3.2.final/can/interfaces/iscan.py000066400000000000000000000131541352572415400212360ustar00rootroot00000000000000# coding: utf-8 """ Interface for isCAN from Thorsis Technologies GmbH, former ifak system GmbH. """ from __future__ import absolute_import, division import ctypes import time import logging from can import CanError, BusABC, Message logger = logging.getLogger(__name__) CanData = ctypes.c_ubyte * 8 class MessageExStruct(ctypes.Structure): _fields_ = [ ("message_id", ctypes.c_ulong), ("is_extended", ctypes.c_ubyte), ("remote_req", ctypes.c_ubyte), ("data_len", ctypes.c_ubyte), ("data", CanData), ] def check_status(result, function, arguments): if result > 0: raise IscanError(function, result, arguments) return result try: iscan = ctypes.cdll.LoadLibrary("iscandrv") except OSError as e: iscan = None logger.warning("Failed to load IS-CAN driver: %s", e) else: iscan.isCAN_DeviceInitEx.argtypes = [ctypes.c_ubyte, ctypes.c_ubyte] iscan.isCAN_DeviceInitEx.errcheck = check_status iscan.isCAN_DeviceInitEx.restype = ctypes.c_ubyte iscan.isCAN_ReceiveMessageEx.errcheck = check_status iscan.isCAN_ReceiveMessageEx.restype = ctypes.c_ubyte iscan.isCAN_TransmitMessageEx.errcheck = check_status iscan.isCAN_TransmitMessageEx.restype = ctypes.c_ubyte iscan.isCAN_CloseDevice.errcheck = check_status iscan.isCAN_CloseDevice.restype = ctypes.c_ubyte class IscanBus(BusABC): """isCAN interface""" BAUDRATES = { 5000: 0, 10000: 1, 20000: 2, 50000: 3, 100000: 4, 125000: 5, 250000: 6, 500000: 7, 800000: 8, 1000000: 9 } def __init__(self, channel, bitrate=500000, poll_interval=0.01, **kwargs): """ :param int channel: Device number :param int bitrate: Bitrate in bits/s :param float poll_interval: Poll interval in seconds when reading messages """ if iscan is None: raise ImportError("Could not load isCAN driver") self.channel = ctypes.c_ubyte(int(channel)) self.channel_info = "IS-CAN: %s" % channel if bitrate not in self.BAUDRATES: valid_bitrates = ", ".join(str(bitrate) for bitrate in self.BAUDRATES) raise ValueError("Invalid bitrate, choose one of " + valid_bitrates) self.poll_interval = poll_interval iscan.isCAN_DeviceInitEx(self.channel, self.BAUDRATES[bitrate]) super(IscanBus, self).__init__(channel=channel, bitrate=bitrate, poll_interval=poll_interval, **kwargs) def _recv_internal(self, timeout): raw_msg = MessageExStruct() end_time = time.time() + timeout if timeout is not None else None while True: try: iscan.isCAN_ReceiveMessageEx(self.channel, ctypes.byref(raw_msg)) except IscanError as e: if e.error_code != 8: # An error occurred raise if end_time is not None and time.time() > end_time: # No message within timeout return None, False # Sleep a short time to avoid hammering time.sleep(self.poll_interval) else: # A message was received break msg = Message(arbitration_id=raw_msg.message_id, is_extended_id=bool(raw_msg.is_extended), timestamp=time.time(), # Better than nothing... is_remote_frame=bool(raw_msg.remote_req), dlc=raw_msg.data_len, data=raw_msg.data[:raw_msg.data_len], channel=self.channel.value) return msg, False def send(self, msg, timeout=None): raw_msg = MessageExStruct(msg.arbitration_id, bool(msg.is_extended_id), bool(msg.is_remote_frame), msg.dlc, CanData(*msg.data)) iscan.isCAN_TransmitMessageEx(self.channel, ctypes.byref(raw_msg)) def shutdown(self): iscan.isCAN_CloseDevice(self.channel) class IscanError(CanError): # TODO: document ERROR_CODES = { 1: "No access to device", 2: "Device with ID not found", 3: "Driver operation failed", 4: "Invalid parameter", 5: "Operation allowed only in online state", 6: "Device timeout", 7: "Device is transmitting a message", 8: "No message received", 9: "Thread not started", 10: "Thread already started", 11: "Buffer overrun", 12: "Device not initialized", 15: "Found the device, but it is being used by another process", 16: "Bus error", 17: "Bus off", 18: "Error passive", 19: "Data overrun", 20: "Error warning", 30: "Send error", 31: "Transmission not acknowledged on bus", 32: "Error critical bus", 35: "Callbackthread is blocked, stopping thread failed", 40: "Need a licence number under NT4" } def __init__(self, function, error_code, arguments): super(IscanError, self).__init__() # :Status code self.error_code = error_code # :Function that failed self.function = function # :Arguments passed to function self.arguments = arguments def __str__(self): description = self.ERROR_CODES.get(self.error_code, "Error code %d" % self.error_code) return "Function %s failed: %s" % (self.function.__name__, description) python-can-3.3.2.final/can/interfaces/ixxat/000077500000000000000000000000001352572415400207205ustar00rootroot00000000000000python-can-3.3.2.final/can/interfaces/ixxat/__init__.py000066400000000000000000000003361352572415400230330ustar00rootroot00000000000000# coding: utf-8 """ Ctypes wrapper module for IXXAT Virtual CAN Interface V3 on win32 systems Copyright (C) 2016 Giuseppe Corbelli """ from can.interfaces.ixxat.canlib import IXXATBus python-can-3.3.2.final/can/interfaces/ixxat/canlib.py000066400000000000000000000667031352572415400225360ustar00rootroot00000000000000# coding: utf-8 """ Ctypes wrapper module for IXXAT Virtual CAN Interface V3 on win32 systems Copyright (C) 2016 Giuseppe Corbelli TODO: We could implement this interface such that setting other filters could work when the initial filters were set to zero using the software fallback. Or could the software filters even be changed after the connection was opened? We need to document that bahaviour! See also the NICAN interface. """ from __future__ import absolute_import, division import ctypes import functools import logging import sys from can import CanError, BusABC, Message from can.broadcastmanager import (LimitedDurationCyclicSendTaskABC, RestartableCyclicTaskABC) from can.ctypesutil import CLibrary, HANDLE, PHANDLE, HRESULT as ctypes_HRESULT from . import constants, structures from .exceptions import * __all__ = ["VCITimeout", "VCIError", "VCIDeviceNotFoundError", "IXXATBus", "vciFormatError"] log = logging.getLogger('can.ixxat') try: # since Python 3.3 from time import perf_counter as _timer_function except ImportError: from time import clock as _timer_function # Hack to have vciFormatError as a free function, see below vciFormatError = None # main ctypes instance _canlib = None if sys.platform == "win32": try: _canlib = CLibrary("vcinpl") except Exception as e: log.warning("Cannot load IXXAT vcinpl library: %s", e) elif sys.platform == "cygwin": try: _canlib = CLibrary("vcinpl.dll") except Exception as e: log.warning("Cannot load IXXAT vcinpl library: %s", e) else: # Will not work on other systems, but have it importable anyway for # tests/sphinx log.warning("IXXAT VCI library does not work on %s platform", sys.platform) def __vciFormatErrorExtended(library_instance, function, HRESULT, arguments): """ Format a VCI error and attach failed function, decoded HRESULT and arguments :param CLibrary library_instance: Mapped instance of IXXAT vcinpl library :param callable function: Failed function :param HRESULT HRESULT: HRESULT returned by vcinpl call :param arguments: Arbitrary arguments tuple :return: Formatted string """ #TODO: make sure we don't generate another exception return "{} - arguments were {}".format( __vciFormatError(library_instance, function, HRESULT), arguments ) def __vciFormatError(library_instance, function, HRESULT): """ Format a VCI error and attach failed function and decoded HRESULT :param CLibrary library_instance: Mapped instance of IXXAT vcinpl library :param callable function: Failed function :param HRESULT HRESULT: HRESULT returned by vcinpl call :return: Formatted string """ buf = ctypes.create_string_buffer(constants.VCI_MAX_ERRSTRLEN) ctypes.memset(buf, 0, constants.VCI_MAX_ERRSTRLEN) library_instance.vciFormatError(HRESULT, buf, constants.VCI_MAX_ERRSTRLEN) return "function {} failed ({})".format(function._name, buf.value.decode('utf-8', 'replace')) def __check_status(result, function, arguments): """ Check the result of a vcinpl function call and raise appropriate exception in case of an error. Used as errcheck function when mapping C functions with ctypes. :param result: Function call numeric result :param callable function: Called function :param arguments: Arbitrary arguments tuple :raise: :class:VCITimeout :class:VCIRxQueueEmptyError :class:StopIteration :class:VCIError """ if isinstance(result, int): # Real return value is an unsigned long result = ctypes.c_ulong(result).value if result == constants.VCI_E_TIMEOUT: raise VCITimeout("Function {} timed out".format(function._name)) elif result == constants.VCI_E_RXQUEUE_EMPTY: raise VCIRxQueueEmptyError() elif result == constants.VCI_E_NO_MORE_ITEMS: raise StopIteration() elif result == constants.VCI_E_ACCESSDENIED: pass # not a real error, might happen if another program has initialized the bus elif result != constants.VCI_OK: raise VCIError(vciFormatError(function, result)) return result try: # Map all required symbols and initialize library --------------------------- #HRESULT VCIAPI vciInitialize ( void ); _canlib.map_symbol("vciInitialize", ctypes.c_long, (), __check_status) #void VCIAPI vciFormatError (HRESULT hrError, PCHAR pszText, UINT32 dwsize); _canlib.map_symbol("vciFormatError", None, (ctypes_HRESULT, ctypes.c_char_p, ctypes.c_uint32)) # Hack to have vciFormatError as a free function vciFormatError = functools.partial(__vciFormatError, _canlib) # HRESULT VCIAPI vciEnumDeviceOpen( OUT PHANDLE hEnum ); _canlib.map_symbol("vciEnumDeviceOpen", ctypes.c_long, (PHANDLE,), __check_status) # HRESULT VCIAPI vciEnumDeviceClose ( IN HANDLE hEnum ); _canlib.map_symbol("vciEnumDeviceClose", ctypes.c_long, (HANDLE,), __check_status) # HRESULT VCIAPI vciEnumDeviceNext( IN HANDLE hEnum, OUT PVCIDEVICEINFO pInfo ); _canlib.map_symbol("vciEnumDeviceNext", ctypes.c_long, (HANDLE, structures.PVCIDEVICEINFO), __check_status) # HRESULT VCIAPI vciDeviceOpen( IN REFVCIID rVciid, OUT PHANDLE phDevice ); _canlib.map_symbol("vciDeviceOpen", ctypes.c_long, (structures.PVCIID, PHANDLE), __check_status) # HRESULT vciDeviceClose( HANDLE hDevice ) _canlib.map_symbol("vciDeviceClose", ctypes.c_long, (HANDLE,), __check_status) # HRESULT VCIAPI canChannelOpen( IN HANDLE hDevice, IN UINT32 dwCanNo, IN BOOL fExclusive, OUT PHANDLE phCanChn ); _canlib.map_symbol("canChannelOpen", ctypes.c_long, (HANDLE, ctypes.c_uint32, ctypes.c_long, PHANDLE), __check_status) # EXTERN_C HRESULT VCIAPI canChannelInitialize( IN HANDLE hCanChn, IN UINT16 wRxFifoSize, IN UINT16 wRxThreshold, IN UINT16 wTxFifoSize, IN UINT16 wTxThreshold ); _canlib.map_symbol("canChannelInitialize", ctypes.c_long, (HANDLE, ctypes.c_uint16, ctypes.c_uint16, ctypes.c_uint16, ctypes.c_uint16), __check_status) # EXTERN_C HRESULT VCIAPI canChannelActivate( IN HANDLE hCanChn, IN BOOL fEnable ); _canlib.map_symbol("canChannelActivate", ctypes.c_long, (HANDLE, ctypes.c_long), __check_status) # HRESULT canChannelClose( HANDLE hChannel ) _canlib.map_symbol("canChannelClose", ctypes.c_long, (HANDLE, ), __check_status) #EXTERN_C HRESULT VCIAPI canChannelReadMessage( IN HANDLE hCanChn, IN UINT32 dwMsTimeout, OUT PCANMSG pCanMsg ); _canlib.map_symbol("canChannelReadMessage", ctypes.c_long, (HANDLE, ctypes.c_uint32, structures.PCANMSG), __check_status) #HRESULT canChannelPeekMessage(HANDLE hChannel,PCANMSG pCanMsg ); _canlib.map_symbol("canChannelPeekMessage", ctypes.c_long, (HANDLE, structures.PCANMSG), __check_status) #HRESULT canChannelWaitTxEvent (HANDLE hChannel UINT32 dwMsTimeout ); _canlib.map_symbol("canChannelWaitTxEvent", ctypes.c_long, (HANDLE, ctypes.c_uint32), __check_status) #HRESULT canChannelWaitRxEvent (HANDLE hChannel, UINT32 dwMsTimeout ); _canlib.map_symbol("canChannelWaitRxEvent", ctypes.c_long, (HANDLE, ctypes.c_uint32), __check_status) #HRESULT canChannelPostMessage (HANDLE hChannel, PCANMSG pCanMsg ); _canlib.map_symbol("canChannelPostMessage", ctypes.c_long, (HANDLE, structures.PCANMSG), __check_status) #HRESULT canChannelSendMessage (HANDLE hChannel, UINT32 dwMsTimeout, PCANMSG pCanMsg ); _canlib.map_symbol("canChannelSendMessage", ctypes.c_long, (HANDLE, ctypes.c_uint32, structures.PCANMSG), __check_status) #EXTERN_C HRESULT VCIAPI canControlOpen( IN HANDLE hDevice, IN UINT32 dwCanNo, OUT PHANDLE phCanCtl ); _canlib.map_symbol("canControlOpen", ctypes.c_long, (HANDLE, ctypes.c_uint32, PHANDLE), __check_status) #EXTERN_C HRESULT VCIAPI canControlInitialize( IN HANDLE hCanCtl, IN UINT8 bMode, IN UINT8 bBtr0, IN UINT8 bBtr1 ); _canlib.map_symbol("canControlInitialize", ctypes.c_long, (HANDLE, ctypes.c_uint8, ctypes.c_uint8, ctypes.c_uint8), __check_status) #EXTERN_C HRESULT VCIAPI canControlClose( IN HANDLE hCanCtl ); _canlib.map_symbol("canControlClose", ctypes.c_long, (HANDLE,), __check_status) #EXTERN_C HRESULT VCIAPI canControlReset( IN HANDLE hCanCtl ); _canlib.map_symbol("canControlReset", ctypes.c_long, (HANDLE,), __check_status) #EXTERN_C HRESULT VCIAPI canControlStart( IN HANDLE hCanCtl, IN BOOL fStart ); _canlib.map_symbol("canControlStart", ctypes.c_long, (HANDLE, ctypes.c_long), __check_status) #EXTERN_C HRESULT VCIAPI canControlGetStatus( IN HANDLE hCanCtl, OUT PCANLINESTATUS pStatus ); _canlib.map_symbol("canControlGetStatus", ctypes.c_long, (HANDLE, structures.PCANLINESTATUS), __check_status) #EXTERN_C HRESULT VCIAPI canControlGetCaps( IN HANDLE hCanCtl, OUT PCANCAPABILITIES pCanCaps ); _canlib.map_symbol("canControlGetCaps", ctypes.c_long, (HANDLE, structures.PCANCAPABILITIES), __check_status) #EXTERN_C HRESULT VCIAPI canControlSetAccFilter( IN HANDLE hCanCtl, IN BOOL fExtend, IN UINT32 dwCode, IN UINT32 dwMask ); _canlib.map_symbol("canControlSetAccFilter", ctypes.c_long, (HANDLE, ctypes.c_int, ctypes.c_uint32, ctypes.c_uint32), __check_status) #EXTERN_C HRESULT canControlAddFilterIds (HANDLE hControl, BOOL fExtended, UINT32 dwCode, UINT32 dwMask); _canlib.map_symbol("canControlAddFilterIds", ctypes.c_long, (HANDLE, ctypes.c_int, ctypes.c_uint32, ctypes.c_uint32), __check_status) #EXTERN_C HRESULT canControlRemFilterIds (HANDLE hControl, BOOL fExtendend, UINT32 dwCode, UINT32 dwMask ); _canlib.map_symbol("canControlRemFilterIds", ctypes.c_long, (HANDLE, ctypes.c_int, ctypes.c_uint32, ctypes.c_uint32), __check_status) #EXTERN_C HRESULT canSchedulerOpen (HANDLE hDevice, UINT32 dwCanNo, PHANDLE phScheduler ); _canlib.map_symbol("canSchedulerOpen", ctypes.c_long, (HANDLE, ctypes.c_uint32, PHANDLE), __check_status) #EXTERN_C HRESULT canSchedulerClose (HANDLE hScheduler ); _canlib.map_symbol("canSchedulerClose", ctypes.c_long, (HANDLE, ), __check_status) #EXTERN_C HRESULT canSchedulerGetCaps (HANDLE hScheduler, PCANCAPABILITIES pCaps ); _canlib.map_symbol("canSchedulerGetCaps", ctypes.c_long, (HANDLE, structures.PCANCAPABILITIES), __check_status) #EXTERN_C HRESULT canSchedulerActivate ( HANDLE hScheduler, BOOL fEnable ); _canlib.map_symbol("canSchedulerActivate", ctypes.c_long, (HANDLE, ctypes.c_int), __check_status) #EXTERN_C HRESULT canSchedulerAddMessage (HANDLE hScheduler, PCANCYCLICTXMSG pMessage, PUINT32 pdwIndex ); _canlib.map_symbol("canSchedulerAddMessage", ctypes.c_long, (HANDLE, structures.PCANCYCLICTXMSG, ctypes.POINTER(ctypes.c_uint32)), __check_status) #EXTERN_C HRESULT canSchedulerRemMessage (HANDLE hScheduler, UINT32 dwIndex ); _canlib.map_symbol("canSchedulerRemMessage", ctypes.c_long, (HANDLE, ctypes.c_uint32), __check_status) #EXTERN_C HRESULT canSchedulerStartMessage (HANDLE hScheduler, UINT32 dwIndex, UINT16 dwCount ); _canlib.map_symbol("canSchedulerStartMessage", ctypes.c_long, (HANDLE, ctypes.c_uint32, ctypes.c_uint16), __check_status) #EXTERN_C HRESULT canSchedulerStopMessage (HANDLE hScheduler, UINT32 dwIndex ); _canlib.map_symbol("canSchedulerStopMessage", ctypes.c_long, (HANDLE, ctypes.c_uint32), __check_status) _canlib.vciInitialize() except AttributeError: # In case _canlib == None meaning we're not on win32/no lib found pass except Exception as e: log.warning("Could not initialize IXXAT VCI library: %s", e) # --------------------------------------------------------------------------- CAN_INFO_MESSAGES = { constants.CAN_INFO_START: "CAN started", constants.CAN_INFO_STOP: "CAN stopped", constants.CAN_INFO_RESET: "CAN reset", } CAN_ERROR_MESSAGES = { constants.CAN_ERROR_STUFF: "CAN bit stuff error", constants.CAN_ERROR_FORM: "CAN form error", constants.CAN_ERROR_ACK: "CAN acknowledgment error", constants.CAN_ERROR_BIT: "CAN bit error", constants.CAN_ERROR_CRC: "CAN CRC error", constants.CAN_ERROR_OTHER: "Other (unknown) CAN error", } #---------------------------------------------------------------------------- class IXXATBus(BusABC): """The CAN Bus implemented for the IXXAT interface. .. warning:: This interface does implement efficient filtering of messages, but the filters have to be set in :meth:`~can.interfaces.ixxat.IXXATBus.__init__` using the ``can_filters`` parameter. Using :meth:`~can.interfaces.ixxat.IXXATBus.set_filters` does not work. """ CHANNEL_BITRATES = { 0: { 10000: constants.CAN_BT0_10KB, 20000: constants.CAN_BT0_20KB, 50000: constants.CAN_BT0_50KB, 100000: constants.CAN_BT0_100KB, 125000: constants.CAN_BT0_125KB, 250000: constants.CAN_BT0_250KB, 500000: constants.CAN_BT0_500KB, 800000: constants.CAN_BT0_800KB, 1000000: constants.CAN_BT0_1000KB }, 1: { 10000: constants.CAN_BT1_10KB, 20000: constants.CAN_BT1_20KB, 50000: constants.CAN_BT1_50KB, 100000: constants.CAN_BT1_100KB, 125000: constants.CAN_BT1_125KB, 250000: constants.CAN_BT1_250KB, 500000: constants.CAN_BT1_500KB, 800000: constants.CAN_BT1_800KB, 1000000: constants.CAN_BT1_1000KB } } def __init__(self, channel, can_filters=None, **kwargs): """ :param int channel: The Channel id to create this bus with. :param list can_filters: See :meth:`can.BusABC.set_filters`. :param bool receive_own_messages: Enable self-reception of sent messages. :param int UniqueHardwareId: UniqueHardwareId to connect (optional, will use the first found if not supplied) :param int bitrate: Channel bitrate in bit/s """ if _canlib is None: raise ImportError("The IXXAT VCI library has not been initialized. Check the logs for more details.") log.info("CAN Filters: %s", can_filters) log.info("Got configuration of: %s", kwargs) # Configuration options bitrate = kwargs.get('bitrate', 500000) UniqueHardwareId = kwargs.get('UniqueHardwareId', None) rxFifoSize = kwargs.get('rxFifoSize', 16) txFifoSize = kwargs.get('txFifoSize', 16) self._receive_own_messages = kwargs.get('receive_own_messages', False) # Usually comes as a string from the config file channel = int(channel) if (bitrate not in self.CHANNEL_BITRATES[0]): raise ValueError("Invalid bitrate {}".format(bitrate)) self._device_handle = HANDLE() self._device_info = structures.VCIDEVICEINFO() self._control_handle = HANDLE() self._channel_handle = HANDLE() self._channel_capabilities = structures.CANCAPABILITIES() self._message = structures.CANMSG() self._payload = (ctypes.c_byte * 8)() # Search for supplied device if UniqueHardwareId is None: log.info("Searching for first available device") else: log.info("Searching for unique HW ID %s", UniqueHardwareId) _canlib.vciEnumDeviceOpen(ctypes.byref(self._device_handle)) while True: try: _canlib.vciEnumDeviceNext(self._device_handle, ctypes.byref(self._device_info)) except StopIteration: if (UniqueHardwareId is None): raise VCIDeviceNotFoundError("No IXXAT device(s) connected or device(s) in use by other process(es).") else: raise VCIDeviceNotFoundError("Unique HW ID {} not connected or not available.".format(UniqueHardwareId)) else: if (UniqueHardwareId is None) or (self._device_info.UniqueHardwareId.AsChar == bytes(UniqueHardwareId, 'ascii')): break else: log.debug("Ignoring IXXAT with hardware id '%s'.", self._device_info.UniqueHardwareId.AsChar.decode("ascii")) _canlib.vciEnumDeviceClose(self._device_handle) _canlib.vciDeviceOpen(ctypes.byref(self._device_info.VciObjectId), ctypes.byref(self._device_handle)) log.info("Using unique HW ID %s", self._device_info.UniqueHardwareId.AsChar) log.info("Initializing channel %d in shared mode, %d rx buffers, %d tx buffers", channel, rxFifoSize, txFifoSize) _canlib.canChannelOpen(self._device_handle, channel, constants.FALSE, ctypes.byref(self._channel_handle)) # Signal TX/RX events when at least one frame has been handled _canlib.canChannelInitialize(self._channel_handle, rxFifoSize, 1, txFifoSize, 1) _canlib.canChannelActivate(self._channel_handle, constants.TRUE) log.info("Initializing control %d bitrate %d", channel, bitrate) _canlib.canControlOpen(self._device_handle, channel, ctypes.byref(self._control_handle)) _canlib.canControlInitialize( self._control_handle, constants.CAN_OPMODE_STANDARD|constants.CAN_OPMODE_EXTENDED|constants.CAN_OPMODE_ERRFRAME, self.CHANNEL_BITRATES[0][bitrate], self.CHANNEL_BITRATES[1][bitrate] ) _canlib.canControlGetCaps(self._control_handle, ctypes.byref(self._channel_capabilities)) # With receive messages, this field contains the relative reception time of # the message in ticks. The resolution of a tick can be calculated from the fields # dwClockFreq and dwTscDivisor of the structure CANCAPABILITIES in accordance with the following formula: # frequency [1/s] = dwClockFreq / dwTscDivisor # We explicitly cast to float for Python 2.x users self._tick_resolution = float(self._channel_capabilities.dwClockFreq / self._channel_capabilities.dwTscDivisor) # Setup filters before starting the channel if can_filters: log.info("The IXXAT VCI backend is filtering messages") # Disable every message coming in for extended in (0, 1): _canlib.canControlSetAccFilter(self._control_handle, extended, constants.CAN_ACC_CODE_NONE, constants.CAN_ACC_MASK_NONE) for can_filter in can_filters: # Whitelist code = int(can_filter['can_id']) mask = int(can_filter['can_mask']) extended = can_filter.get('extended', False) _canlib.canControlAddFilterIds(self._control_handle, 1 if extended else 0, code << 1, mask << 1) log.info("Accepting ID: 0x%X MASK: 0x%X", code, mask) # Start the CAN controller. Messages will be forwarded to the channel _canlib.canControlStart(self._control_handle, constants.TRUE) # For cyclic transmit list. Set when .send_periodic() is first called self._scheduler = None self._scheduler_resolution = None self.channel = channel # Usually you get back 3 messages like "CAN initialized" ecc... # Clear the FIFO by filter them out with low timeout for i in range(rxFifoSize): try: _canlib.canChannelReadMessage(self._channel_handle, 0, ctypes.byref(self._message)) except (VCITimeout, VCIRxQueueEmptyError): break super(IXXATBus, self).__init__(channel=channel, can_filters=None, **kwargs) def _inWaiting(self): try: _canlib.canChannelWaitRxEvent(self._channel_handle, 0) except VCITimeout: return 0 else: return 1 def flush_tx_buffer(self): """ Flushes the transmit buffer on the IXXAT """ # TODO #64: no timeout? _canlib.canChannelWaitTxEvent(self._channel_handle, constants.INFINITE) def _recv_internal(self, timeout): """ Read a message from IXXAT device. """ # TODO: handling CAN error messages? data_received = False if timeout == 0: # Peek without waiting try: _canlib.canChannelPeekMessage(self._channel_handle, ctypes.byref(self._message)) except (VCITimeout, VCIRxQueueEmptyError): return None, True else: if self._message.uMsgInfo.Bits.type == constants.CAN_MSGTYPE_DATA: data_received = True else: # Wait if no message available if timeout is None or timeout < 0: remaining_ms = constants.INFINITE t0 = None else: timeout_ms = int(timeout * 1000) remaining_ms = timeout_ms t0 = _timer_function() while True: try: _canlib.canChannelReadMessage(self._channel_handle, remaining_ms, ctypes.byref(self._message)) except (VCITimeout, VCIRxQueueEmptyError): # Ignore the 2 errors, the timeout is handled manually with the _timer_function() pass else: # See if we got a data or info/error messages if self._message.uMsgInfo.Bits.type == constants.CAN_MSGTYPE_DATA: data_received = True break elif self._message.uMsgInfo.Bits.type == constants.CAN_MSGTYPE_INFO: log.info(CAN_INFO_MESSAGES.get(self._message.abData[0], "Unknown CAN info message code {}".format(self._message.abData[0]))) elif self._message.uMsgInfo.Bits.type == constants.CAN_MSGTYPE_ERROR: log.warning(CAN_ERROR_MESSAGES.get(self._message.abData[0], "Unknown CAN error message code {}".format(self._message.abData[0]))) elif self._message.uMsgInfo.Bits.type == constants.CAN_MSGTYPE_TIMEOVR: pass else: log.warn("Unexpected message info type") if t0 is not None: remaining_ms = timeout_ms - int((_timer_function() - t0) * 1000) if remaining_ms < 0: break if not data_received: # Timed out / can message type is not DATA return None, True # The _message.dwTime is a 32bit tick value and will overrun, # so expect to see the value restarting from 0 rx_msg = Message( timestamp=self._message.dwTime / self._tick_resolution, # Relative time in s is_remote_frame=True if self._message.uMsgInfo.Bits.rtr else False, is_extended_id=True if self._message.uMsgInfo.Bits.ext else False, arbitration_id=self._message.dwMsgId, dlc=self._message.uMsgInfo.Bits.dlc, data=self._message.abData[:self._message.uMsgInfo.Bits.dlc], channel=self.channel ) return rx_msg, True def send(self, msg, timeout=None): # This system is not designed to be very efficient message = structures.CANMSG() message.uMsgInfo.Bits.type = constants.CAN_MSGTYPE_DATA message.uMsgInfo.Bits.rtr = 1 if msg.is_remote_frame else 0 message.uMsgInfo.Bits.ext = 1 if msg.is_extended_id else 0 message.uMsgInfo.Bits.srr = 1 if self._receive_own_messages else 0 message.dwMsgId = msg.arbitration_id if msg.dlc: message.uMsgInfo.Bits.dlc = msg.dlc adapter = (ctypes.c_uint8 * len(msg.data)).from_buffer(msg.data) ctypes.memmove(message.abData, adapter, len(msg.data)) if timeout: _canlib.canChannelSendMessage( self._channel_handle, int(timeout * 1000), message) else: _canlib.canChannelPostMessage(self._channel_handle, message) def _send_periodic_internal(self, msg, period, duration=None): """Send a message using built-in cyclic transmit list functionality.""" if self._scheduler is None: self._scheduler = HANDLE() _canlib.canSchedulerOpen(self._device_handle, self.channel, self._scheduler) caps = structures.CANCAPABILITIES() _canlib.canSchedulerGetCaps(self._scheduler, caps) self._scheduler_resolution = float(caps.dwClockFreq) / caps.dwCmsDivisor _canlib.canSchedulerActivate(self._scheduler, constants.TRUE) return CyclicSendTask(self._scheduler, msg, period, duration, self._scheduler_resolution) def shutdown(self): if self._scheduler is not None: _canlib.canSchedulerClose(self._scheduler) _canlib.canChannelClose(self._channel_handle) _canlib.canControlStart(self._control_handle, constants.FALSE) _canlib.canControlClose(self._control_handle) _canlib.vciDeviceClose(self._device_handle) __set_filters_has_been_called = False def set_filters(self, can_filers=None): """Unsupported. See note on :class:`~can.interfaces.ixxat.IXXATBus`. """ if self.__set_filters_has_been_called: log.warn("using filters is not supported like this, see note on IXXATBus") else: # allow the constructor to call this without causing a warning self.__set_filters_has_been_called = True class CyclicSendTask(LimitedDurationCyclicSendTaskABC, RestartableCyclicTaskABC): """A message in the cyclic transmit list.""" def __init__(self, scheduler, msg, period, duration, resolution): super(CyclicSendTask, self).__init__(msg, period, duration) self._scheduler = scheduler self._index = None self._count = int(duration / period) if duration else 0 self._msg = structures.CANCYCLICTXMSG() self._msg.wCycleTime = int(round(period * resolution)) self._msg.dwMsgId = msg.arbitration_id self._msg.uMsgInfo.Bits.type = constants.CAN_MSGTYPE_DATA self._msg.uMsgInfo.Bits.ext = 1 if msg.is_extended_id else 0 self._msg.uMsgInfo.Bits.rtr = 1 if msg.is_remote_frame else 0 self._msg.uMsgInfo.Bits.dlc = msg.dlc for i, b in enumerate(msg.data): self._msg.abData[i] = b self.start() def start(self): """Start transmitting message (add to list if needed).""" if self._index is None: self._index = ctypes.c_uint32() _canlib.canSchedulerAddMessage(self._scheduler, self._msg, self._index) _canlib.canSchedulerStartMessage(self._scheduler, self._index, self._count) def pause(self): """Pause transmitting message (keep it in the list).""" _canlib.canSchedulerStopMessage(self._scheduler, self._index) def stop(self): """Stop transmitting message (remove from list).""" # Remove it completely instead of just stopping it to avoid filling up # the list with permanently stopped messages _canlib.canSchedulerRemMessage(self._scheduler, self._index) self._index = None python-can-3.3.2.final/can/interfaces/ixxat/constants.py000066400000000000000000000106711352572415400233130ustar00rootroot00000000000000# coding: utf-8 """ Ctypes wrapper module for IXXAT Virtual CAN Interface V3 on win32 systems Copyright (C) 2016 Giuseppe Corbelli """ FALSE = 0 TRUE = 1 INFINITE = 0xFFFFFFFF VCI_MAX_ERRSTRLEN = 256 # Bitrates CAN_BT0_10KB = 0x31 CAN_BT1_10KB = 0x1C CAN_BT0_20KB = 0x18 CAN_BT1_20KB = 0x1C CAN_BT0_50KB = 0x09 CAN_BT1_50KB = 0x1C CAN_BT0_100KB = 0x04 CAN_BT1_100KB = 0x1C CAN_BT0_125KB = 0x03 CAN_BT1_125KB = 0x1C CAN_BT0_250KB = 0x01 CAN_BT1_250KB = 0x1C CAN_BT0_500KB = 0x00 CAN_BT1_500KB = 0x1C CAN_BT0_800KB = 0x00 CAN_BT1_800KB = 0x16 CAN_BT0_1000KB = 0x00 CAN_BT1_1000KB = 0x14 # Facilities/severities SEV_INFO = 0x40000000 SEV_WARN = 0x80000000 SEV_ERROR = 0xC0000000 SEV_MASK = 0xC0000000 SEV_SUCCESS = 0x00000000 RESERVED_FLAG = 0x10000000 CUSTOMER_FLAG = 0x20000000 STATUS_MASK = 0x0000FFFF FACILITY_MASK = 0x0FFF0000 # Or so I hope FACILITY_STD = 0 SEV_STD_INFO = SEV_INFO |CUSTOMER_FLAG|FACILITY_STD SEV_STD_WARN = SEV_WARN |CUSTOMER_FLAG|FACILITY_STD SEV_STD_ERROR = SEV_ERROR|CUSTOMER_FLAG|FACILITY_STD FACILITY_VCI = 0x00010000 SEV_VCI_INFO = SEV_INFO |CUSTOMER_FLAG|FACILITY_VCI SEV_VCI_WARN = SEV_WARN |CUSTOMER_FLAG|FACILITY_VCI SEV_VCI_ERROR = SEV_ERROR|CUSTOMER_FLAG|FACILITY_VCI FACILITY_DAL = 0x00020000 SEV_DAL_INFO = SEV_INFO |CUSTOMER_FLAG|FACILITY_DAL SEV_DAL_WARN = SEV_WARN |CUSTOMER_FLAG|FACILITY_DAL SEV_DAL_ERROR = SEV_ERROR|CUSTOMER_FLAG|FACILITY_DAL FACILITY_CCL = 0x00030000 SEV_CCL_INFO = SEV_INFO |CUSTOMER_FLAG|FACILITY_CCL SEV_CCL_WARN = SEV_WARN |CUSTOMER_FLAG|FACILITY_CCL SEV_CCL_ERROR = SEV_ERROR|CUSTOMER_FLAG|FACILITY_CCL FACILITY_BAL = 0x00040000 SEV_BAL_INFO = SEV_INFO |CUSTOMER_FLAG|FACILITY_BAL SEV_BAL_WARN = SEV_WARN |CUSTOMER_FLAG|FACILITY_BAL SEV_BAL_ERROR = SEV_ERROR|CUSTOMER_FLAG|FACILITY_BAL # Errors VCI_SUCCESS = 0x00 VCI_OK = 0x00 VCI_E_UNEXPECTED = SEV_VCI_ERROR | 0x0001 VCI_E_NOT_IMPLEMENTED = SEV_VCI_ERROR | 0x0002 VCI_E_OUTOFMEMORY = SEV_VCI_ERROR | 0x0003 VCI_E_INVALIDARG = SEV_VCI_ERROR | 0x0004 VCI_E_NOINTERFACE = SEV_VCI_ERROR | 0x0005 VCI_E_INVPOINTER = SEV_VCI_ERROR | 0x0006 VCI_E_INVHANDLE = SEV_VCI_ERROR | 0x0007 VCI_E_ABORT = SEV_VCI_ERROR | 0x0008 VCI_E_FAIL = SEV_VCI_ERROR | 0x0009 VCI_E_ACCESSDENIED = SEV_VCI_ERROR | 0x000A VCI_E_TIMEOUT = SEV_VCI_ERROR | 0x000B VCI_E_BUSY = SEV_VCI_ERROR | 0x000C VCI_E_PENDING = SEV_VCI_ERROR | 0x000D VCI_E_NO_DATA = SEV_VCI_ERROR | 0x000E VCI_E_NO_MORE_ITEMS = SEV_VCI_ERROR | 0x000F VCI_E_NOT_INITIALIZED = SEV_VCI_ERROR | 0x0010 VCI_E_ALREADY_INITIALIZED = SEV_VCI_ERROR | 0x00011 VCI_E_RXQUEUE_EMPTY = SEV_VCI_ERROR | 0x00012 VCI_E_TXQUEUE_FULL = SEV_VCI_ERROR | 0x0013 VCI_E_BUFFER_OVERFLOW = SEV_VCI_ERROR | 0x0014 VCI_E_INVALID_STATE = SEV_VCI_ERROR | 0x0015 VCI_E_OBJECT_ALREADY_EXISTS = SEV_VCI_ERROR | 0x0016 VCI_E_INVALID_INDEX = SEV_VCI_ERROR | 0x0017 VCI_E_END_OF_FILE = SEV_VCI_ERROR | 0x0018 VCI_E_DISCONNECTED = SEV_VCI_ERROR | 0x0019 VCI_E_WRONG_FLASHFWVERSION = SEV_VCI_ERROR | 0x001A # Controller status CAN_STATUS_TXPEND = 0x01 CAN_STATUS_OVRRUN = 0x02 CAN_STATUS_ERRLIM = 0x04 CAN_STATUS_BUSOFF = 0x08 CAN_STATUS_ININIT = 0x10 CAN_STATUS_BUSCERR = 0x20 # Controller operating modes CAN_OPMODE_UNDEFINED = 0x00 CAN_OPMODE_STANDARD = 0x01 CAN_OPMODE_EXTENDED = 0x02 CAN_OPMODE_ERRFRAME = 0x04 CAN_OPMODE_LISTONLY = 0x08 CAN_OPMODE_LOWSPEED = 0x10 # Message types CAN_MSGTYPE_DATA = 0 CAN_MSGTYPE_INFO = 1 CAN_MSGTYPE_ERROR = 2 CAN_MSGTYPE_STATUS = 3 CAN_MSGTYPE_WAKEUP = 4 CAN_MSGTYPE_TIMEOVR = 5 CAN_MSGTYPE_TIMERST = 6 # Information supplied in the abData[0] field of info frames # (CANMSGINFO.Bytes.bType = CAN_MSGTYPE_INFO). CAN_INFO_START = 1 CAN_INFO_STOP = 2 CAN_INFO_RESET = 3 # Information supplied in the abData[0] field of info frames # (CANMSGINFO.Bytes.bType = CAN_MSGTYPE_ERROR). CAN_ERROR_STUFF = 1 # stuff error CAN_ERROR_FORM = 2 # form error CAN_ERROR_ACK = 3 # acknowledgment error CAN_ERROR_BIT = 4 # bit error CAN_ERROR_CRC = 6 # CRC error CAN_ERROR_OTHER = 7 # other (unspecified) error # acceptance code and mask to reject all CAN IDs CAN_ACC_MASK_NONE = 0xFFFFFFFF CAN_ACC_CODE_NONE = 0x80000000 python-can-3.3.2.final/can/interfaces/ixxat/exceptions.py000066400000000000000000000013261352572415400234550ustar00rootroot00000000000000# coding: utf-8 """ Ctypes wrapper module for IXXAT Virtual CAN Interface V3 on win32 systems Copyright (C) 2016 Giuseppe Corbelli """ from can import CanError __all__ = ['VCITimeout', 'VCIError', 'VCIRxQueueEmptyError', 'VCIDeviceNotFoundError'] class VCITimeout(CanError): """ Wraps the VCI_E_TIMEOUT error """ pass class VCIError(CanError): """ Try to display errors that occur within the wrapped C library nicely. """ pass class VCIRxQueueEmptyError(VCIError): """ Wraps the VCI_E_RXQUEUE_EMPTY error """ def __init__(self): super(VCIRxQueueEmptyError, self).__init__("Receive queue is empty") class VCIDeviceNotFoundError(CanError): pass python-can-3.3.2.final/can/interfaces/ixxat/structures.py000066400000000000000000000107351352572415400235230ustar00rootroot00000000000000# coding: utf-8 """ Ctypes wrapper module for IXXAT Virtual CAN Interface V3 on win32 systems Copyright (C) 2016 Giuseppe Corbelli """ import ctypes class LUID(ctypes.Structure): _fields_ = [ ("LowPart", ctypes.c_uint32), ("HighPart", ctypes.c_int32), ] PLUID = ctypes.POINTER(LUID) class VCIID(ctypes.Union): _fields_ = [ ("AsLuid", LUID), ("AsInt64", ctypes.c_int64), ] PVCIID = ctypes.POINTER(VCIID) class GUID(ctypes.Structure): _fields_ = [ ("Data1", ctypes.c_uint32), ("Data2", ctypes.c_uint16), ("Data3", ctypes.c_uint16), ("Data4", ctypes.c_char * 8), ] class VCIDEVICEINFO(ctypes.Structure): class UniqueHardwareId(ctypes.Union): _fields_ = [ ("AsChar", ctypes.c_char * 16), ("AsGuid", GUID), ] _fields_ = [ ("VciObjectId", VCIID), ("DeviceClass", GUID), ("DriverMajorVersion", ctypes.c_uint8), ("DriverMinorVersion", ctypes.c_uint8), ("DriverBuildVersion", ctypes.c_uint16), ("HardwareBranchVersion", ctypes.c_uint8), ("HardwareMajorVersion", ctypes.c_uint8), ("HardwareMinorVersion", ctypes.c_uint8), ("HardwareBuildVersion", ctypes.c_uint8), ("UniqueHardwareId", UniqueHardwareId), ("Description", ctypes.c_char * 128), ("Manufacturer", ctypes.c_char * 126), ("DriverReleaseVersion", ctypes.c_uint16), ] def __str__(self): return "Mfg: {}, Dev: {} HW: {}.{}.{}.{} Drv: {}.{}.{}.{}".format( self.Manufacturer, self.Description, self.HardwareBranchVersion, self.HardwareMajorVersion, self.HardwareMinorVersion, self.HardwareBuildVersion, self.DriverReleaseVersion, self.DriverMajorVersion, self.DriverMinorVersion, self.DriverBuildVersion ) PVCIDEVICEINFO = ctypes.POINTER(VCIDEVICEINFO) class CANLINESTATUS(ctypes.Structure): _fields_ = [ ("bOpMode", ctypes.c_uint8), ("bBtReg0", ctypes.c_uint8), ("bBtReg1", ctypes.c_uint8), ("bBusLoad", ctypes.c_uint8), ("dwStatus", ctypes.c_uint32) ] PCANLINESTATUS = ctypes.POINTER(CANLINESTATUS) class CANCHANSTATUS(ctypes.Structure): _fields_ = [ ("sLineStatus", CANLINESTATUS), ("fActivated", ctypes.c_uint32), ("fRxOverrun", ctypes.c_uint32), ("bRxFifoLoad", ctypes.c_uint8), ("bTxFifoLoad", ctypes.c_uint8) ] PCANCHANSTATUS = ctypes.POINTER(CANCHANSTATUS) class CANCAPABILITIES(ctypes.Structure): _fields_ = [ ("wCtrlType", ctypes.c_uint16), ("wBusCoupling", ctypes.c_uint16), ("dwFeatures", ctypes.c_uint32), ("dwClockFreq", ctypes.c_uint32), ("dwTscDivisor", ctypes.c_uint32), ("dwCmsDivisor", ctypes.c_uint32), ("dwCmsMaxTicks", ctypes.c_uint32), ("dwDtxDivisor", ctypes.c_uint32), ("dwDtxMaxTicks", ctypes.c_uint32) ] PCANCAPABILITIES = ctypes.POINTER(CANCAPABILITIES) class CANMSGINFO(ctypes.Union): class Bytes(ctypes.Structure): _fields_ = [ ("bType", ctypes.c_uint8), ("bAddFlags", ctypes.c_uint8), ("bFlags", ctypes.c_uint8), ("bAccept", ctypes.c_uint8), ] class Bits(ctypes.Structure): _fields_ = [ ("type", ctypes.c_uint32, 8), ("ssm", ctypes.c_uint32, 1), ("hi", ctypes.c_uint32, 2), ("res", ctypes.c_uint32, 5), ("dlc", ctypes.c_uint32, 4), ("ovr", ctypes.c_uint32, 1), ("srr", ctypes.c_uint32, 1), ("rtr", ctypes.c_uint32, 1), ("ext", ctypes.c_uint32, 1), ("afc", ctypes.c_uint32, 8) ] _fields_ = [ ("Bytes", Bytes), ("Bits", Bits) ] PCANMSGINFO = ctypes.POINTER(CANMSGINFO) class CANMSG(ctypes.Structure): _fields_ = [ ("dwTime", ctypes.c_uint32), ("dwMsgId", ctypes.c_uint32), ("uMsgInfo", CANMSGINFO), ("abData", ctypes.c_uint8 * 8) ] PCANMSG = ctypes.POINTER(CANMSG) class CANCYCLICTXMSG(ctypes.Structure): _fields_ = [ ("wCycleTime", ctypes.c_uint16), ("bIncrMode", ctypes.c_uint8), ("bByteIndex", ctypes.c_uint8), ("dwMsgId", ctypes.c_uint32), ("uMsgInfo", CANMSGINFO), ("abData", ctypes.c_uint8 * 8) ] PCANCYCLICTXMSG = ctypes.POINTER(CANCYCLICTXMSG) python-can-3.3.2.final/can/interfaces/kvaser/000077500000000000000000000000001352572415400210565ustar00rootroot00000000000000python-can-3.3.2.final/can/interfaces/kvaser/__init__.py000066400000000000000000000001051352572415400231630ustar00rootroot00000000000000# coding: utf-8 """ """ from can.interfaces.kvaser.canlib import * python-can-3.3.2.final/can/interfaces/kvaser/canlib.py000066400000000000000000000625601352572415400226710ustar00rootroot00000000000000# coding: utf-8 """ Contains Python equivalents of the function and constant definitions in CANLIB's canlib.h, with some supporting functionality specific to Python. Copyright (C) 2010 Dynamic Controls """ from __future__ import absolute_import import sys import time import logging import ctypes from can import CanError, BusABC from can import Message from . import constants as canstat from . import structures log = logging.getLogger('can.kvaser') # Resolution in us TIMESTAMP_RESOLUTION = 10 TIMESTAMP_FACTOR = TIMESTAMP_RESOLUTION / 1000000.0 try: if sys.platform == "win32": __canlib = ctypes.windll.LoadLibrary("canlib32") else: __canlib = ctypes.cdll.LoadLibrary("libcanlib.so") log.info("loaded kvaser's CAN library") except OSError: log.warning("Kvaser canlib is unavailable.") __canlib = None def _unimplemented_function(*args): raise NotImplementedError('This function is not implemented in canlib') def __get_canlib_function(func_name, argtypes=[], restype=None, errcheck=None): #log.debug('Wrapping function "%s"' % func_name) try: # e.g. canlib.canBusOn retval = getattr(__canlib, func_name) #log.debug('"%s" found in library', func_name) except AttributeError: log.warning('"%s" was not found in library', func_name) return _unimplemented_function else: #log.debug('Result type is: %s' % type(restype)) #log.debug('Error check function is: %s' % errcheck) retval.argtypes = argtypes retval.restype = restype if errcheck: retval.errcheck = errcheck return retval class CANLIBError(CanError): """ Try to display errors that occur within the wrapped C library nicely. """ def __init__(self, function, error_code, arguments): super(CANLIBError, self).__init__() self.error_code = error_code self.function = function self.arguments = arguments def __str__(self): return "Function %s failed - %s" % (self.function.__name__, self.__get_error_message()) def __get_error_message(self): errmsg = ctypes.create_string_buffer(128) canGetErrorText(self.error_code, errmsg, len(errmsg)) return errmsg.value.decode("ascii") def __convert_can_status_to_int(result): #log.debug("converting can status to int {} ({})".format(result, type(result))) if isinstance(result, int): return result else: return result.value def __check_status(result, function, arguments): result = __convert_can_status_to_int(result) if not canstat.CANSTATUS_SUCCESS(result): #log.debug('Detected error while checking CAN status') raise CANLIBError(function, result, arguments) return result def __check_status_read(result, function, arguments): result = __convert_can_status_to_int(result) if not canstat.CANSTATUS_SUCCESS(result) and result != canstat.canERR_NOMSG: #log.debug('Detected error in which checking status read') raise CANLIBError(function, result, arguments) return result class c_canHandle(ctypes.c_int): pass canINVALID_HANDLE = -1 def __handle_is_valid(handle): return (handle.value > canINVALID_HANDLE) def __check_bus_handle_validity(handle, function, arguments): if not __handle_is_valid(handle): result = __convert_can_status_to_int(handle) raise CANLIBError(function, result, arguments) else: return handle if __canlib is not None: canInitializeLibrary = __get_canlib_function("canInitializeLibrary") canGetErrorText = __get_canlib_function("canGetErrorText", argtypes=[canstat.c_canStatus, ctypes.c_char_p, ctypes.c_uint], restype=canstat.c_canStatus, errcheck=__check_status) # TODO wrap this type of function to provide a more Pythonic API canGetNumberOfChannels = __get_canlib_function("canGetNumberOfChannels", argtypes=[ctypes.c_void_p], restype=canstat.c_canStatus, errcheck=__check_status) kvReadTimer = __get_canlib_function("kvReadTimer", argtypes=[c_canHandle, ctypes.POINTER(ctypes.c_uint)], restype=canstat.c_canStatus, errcheck=__check_status) canBusOff = __get_canlib_function("canBusOff", argtypes=[c_canHandle], restype=canstat.c_canStatus, errcheck=__check_status) canBusOn = __get_canlib_function("canBusOn", argtypes=[c_canHandle], restype=canstat.c_canStatus, errcheck=__check_status) canClose = __get_canlib_function("canClose", argtypes=[c_canHandle], restype=canstat.c_canStatus, errcheck=__check_status) canOpenChannel = __get_canlib_function("canOpenChannel", argtypes=[ctypes.c_int, ctypes.c_int], restype=c_canHandle, errcheck=__check_bus_handle_validity) canSetBusParams = __get_canlib_function("canSetBusParams", argtypes=[c_canHandle, ctypes.c_long, ctypes.c_uint, ctypes.c_uint, ctypes.c_uint, ctypes.c_uint, ctypes.c_uint], restype=canstat.c_canStatus, errcheck=__check_status) canSetBusParamsFd = __get_canlib_function("canSetBusParamsFd", argtypes=[c_canHandle, ctypes.c_long, ctypes.c_uint, ctypes.c_uint, ctypes.c_uint], restype=canstat.c_canStatus, errcheck=__check_status) canSetBusOutputControl = __get_canlib_function("canSetBusOutputControl", argtypes=[c_canHandle, ctypes.c_uint], restype=canstat.c_canStatus, errcheck=__check_status) canSetAcceptanceFilter = __get_canlib_function("canSetAcceptanceFilter", argtypes=[ c_canHandle, ctypes.c_uint, ctypes.c_uint, ctypes.c_int ], restype=canstat.c_canStatus, errcheck=__check_status) canReadWait = __get_canlib_function("canReadWait", argtypes=[c_canHandle, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_long], restype=canstat.c_canStatus, errcheck=__check_status_read) canWrite = __get_canlib_function("canWrite", argtypes=[ c_canHandle, ctypes.c_long, ctypes.c_void_p, ctypes.c_uint, ctypes.c_uint], restype=canstat.c_canStatus, errcheck=__check_status) canWriteSync = __get_canlib_function("canWriteSync", argtypes=[c_canHandle, ctypes.c_ulong], restype=canstat.c_canStatus, errcheck=__check_status) canIoCtl = __get_canlib_function("canIoCtl", argtypes=[c_canHandle, ctypes.c_uint, ctypes.c_void_p, ctypes.c_uint], restype=canstat.c_canStatus, errcheck=__check_status) canGetVersion = __get_canlib_function("canGetVersion", restype=ctypes.c_short, errcheck=__check_status) kvFlashLeds = __get_canlib_function("kvFlashLeds", argtypes=[c_canHandle, ctypes.c_int, ctypes.c_int], restype=ctypes.c_short, errcheck=__check_status) if sys.platform == "win32": canGetVersionEx = __get_canlib_function("canGetVersionEx", argtypes=[ctypes.c_uint], restype=ctypes.c_uint, errcheck=__check_status) canGetChannelData = __get_canlib_function("canGetChannelData", argtypes=[ctypes.c_int, ctypes.c_int, ctypes.c_void_p, ctypes.c_size_t], restype=canstat.c_canStatus, errcheck=__check_status) canRequestBusStatistics = __get_canlib_function("canRequestBusStatistics", argtypes=[c_canHandle], restype=canstat.c_canStatus, errcheck=__check_status) canGetBusStatistics = __get_canlib_function("canGetBusStatistics", argtypes=[c_canHandle, ctypes.POINTER(structures.BusStatistics), ctypes.c_size_t], restype=canstat.c_canStatus, errcheck=__check_status) def init_kvaser_library(): if __canlib is not None: try: log.debug("Initializing Kvaser CAN library") canInitializeLibrary() log.debug("CAN library initialized") except: log.warning("Kvaser canlib could not be initialized.") DRIVER_MODE_SILENT = False DRIVER_MODE_NORMAL = True BITRATE_OBJS = { 1000000: canstat.canBITRATE_1M, 500000: canstat.canBITRATE_500K, 250000: canstat.canBITRATE_250K, 125000: canstat.canBITRATE_125K, 100000: canstat.canBITRATE_100K, 83000: canstat.canBITRATE_83K, 62000: canstat.canBITRATE_62K, 50000: canstat.canBITRATE_50K, 10000: canstat.canBITRATE_10K } BITRATE_FD = { 500000: canstat.canFD_BITRATE_500K_80P, 1000000: canstat.canFD_BITRATE_1M_80P, 2000000: canstat.canFD_BITRATE_2M_80P, 4000000: canstat.canFD_BITRATE_4M_80P, 8000000: canstat.canFD_BITRATE_8M_60P } class KvaserBus(BusABC): """ The CAN Bus implemented for the Kvaser interface. """ def __init__(self, channel, can_filters=None, **kwargs): """ :param int channel: The Channel id to create this bus with. :param list can_filters: See :meth:`can.BusABC.set_filters`. Backend Configuration :param int bitrate: Bitrate of channel in bit/s :param bool accept_virtual: If virtual channels should be accepted. :param int tseg1: Time segment 1, that is, the number of quanta from (but not including) the Sync Segment to the sampling point. If this parameter is not given, the Kvaser driver will try to choose all bit timing parameters from a set of defaults. :param int tseg2: Time segment 2, that is, the number of quanta from the sampling point to the end of the bit. :param int sjw: The Synchronization Jump Width. Decides the maximum number of time quanta that the controller can resynchronize every bit. :param int no_samp: Either 1 or 3. Some CAN controllers can also sample each bit three times. In this case, the bit will be sampled three quanta in a row, with the last sample being taken in the edge between TSEG1 and TSEG2. Three samples should only be used for relatively slow baudrates. :param bool driver_mode: Silent or normal. :param bool single_handle: Use one Kvaser CANLIB bus handle for both reading and writing. This can be set if reading and/or writing is done from one thread. :param bool receive_own_messages: If messages transmitted should also be received back. Only works if single_handle is also False. If you want to receive messages from other applications on the same computer, set this to True or set single_handle to True. :param bool fd: If CAN-FD frames should be supported. :param int data_bitrate: Which bitrate to use for data phase in CAN FD. Defaults to arbitration bitrate. """ log.info("CAN Filters: {}".format(can_filters)) log.info("Got configuration of: {}".format(kwargs)) bitrate = kwargs.get('bitrate', 500000) tseg1 = kwargs.get('tseg1', 0) tseg2 = kwargs.get('tseg2', 0) sjw = kwargs.get('sjw', 0) no_samp = kwargs.get('no_samp', 0) driver_mode = kwargs.get('driver_mode', DRIVER_MODE_NORMAL) single_handle = kwargs.get('single_handle', False) receive_own_messages = kwargs.get('receive_own_messages', False) accept_virtual = kwargs.get('accept_virtual', True) fd = kwargs.get('fd', False) data_bitrate = kwargs.get('data_bitrate', None) try: channel = int(channel) except ValueError: raise ValueError('channel must be an integer') self.channel = channel log.debug('Initialising bus instance') self.single_handle = single_handle num_channels = ctypes.c_int(0) res = canGetNumberOfChannels(ctypes.byref(num_channels)) #log.debug("Res: {}".format(res)) num_channels = int(num_channels.value) log.info('Found %d available channels' % num_channels) for idx in range(num_channels): channel_info = get_channel_info(idx) log.info('%d: %s', idx, channel_info) if idx == channel: self.channel_info = channel_info flags = 0 if accept_virtual: flags |= canstat.canOPEN_ACCEPT_VIRTUAL if fd: flags |= canstat.canOPEN_CAN_FD log.debug('Creating read handle to bus channel: %s' % channel) self._read_handle = canOpenChannel(channel, flags) canIoCtl(self._read_handle, canstat.canIOCTL_SET_TIMER_SCALE, ctypes.byref(ctypes.c_long(TIMESTAMP_RESOLUTION)), 4) if fd: if 'tseg1' not in kwargs and bitrate in BITRATE_FD: # Use predefined bitrate for arbitration bitrate = BITRATE_FD[bitrate] if data_bitrate in BITRATE_FD: # Use predefined bitrate for data data_bitrate = BITRATE_FD[data_bitrate] elif not data_bitrate: # Use same bitrate for arbitration and data phase data_bitrate = bitrate canSetBusParamsFd(self._read_handle, data_bitrate, tseg1, tseg2, sjw) else: if 'tseg1' not in kwargs and bitrate in BITRATE_OBJS: bitrate = BITRATE_OBJS[bitrate] canSetBusParams(self._read_handle, bitrate, tseg1, tseg2, sjw, no_samp, 0) # By default, use local echo if single handle is used (see #160) local_echo = single_handle or receive_own_messages if receive_own_messages and single_handle: log.warning("receive_own_messages only works if single_handle is False") canIoCtl(self._read_handle, canstat.canIOCTL_SET_LOCAL_TXECHO, ctypes.byref(ctypes.c_byte(local_echo)), 1) if self.single_handle: log.debug("We don't require separate handles to the bus") self._write_handle = self._read_handle else: log.debug('Creating separate handle for TX on channel: %s' % channel) self._write_handle = canOpenChannel(channel, flags) canBusOn(self._read_handle) can_driver_mode = canstat.canDRIVER_SILENT if driver_mode == DRIVER_MODE_SILENT else canstat.canDRIVER_NORMAL canSetBusOutputControl(self._write_handle, can_driver_mode) log.debug('Going bus on TX handle') canBusOn(self._write_handle) timer = ctypes.c_uint(0) try: kvReadTimer(self._read_handle, ctypes.byref(timer)) except Exception as exc: # timer is usually close to 0 log.info(str(exc)) self._timestamp_offset = time.time() - (timer.value * TIMESTAMP_FACTOR) self._is_filtered = False super(KvaserBus, self).__init__(channel=channel, can_filters=can_filters, **kwargs) def _apply_filters(self, filters): if filters and len(filters) == 1: can_id = filters[0]['can_id'] can_mask = filters[0]['can_mask'] extended = 1 if filters[0].get('extended') else 0 try: for handle in (self._read_handle, self._write_handle): canSetAcceptanceFilter(handle, can_id, can_mask, extended) except (NotImplementedError, CANLIBError) as e: self._is_filtered = False log.error('Filtering is not supported - %s', e) else: self._is_filtered = True log.info('canlib is filtering on ID 0x%X, mask 0x%X', can_id, can_mask) else: self._is_filtered = False log.info('Hardware filtering has been disabled') try: for handle in (self._read_handle, self._write_handle): for extended in (0, 1): canSetAcceptanceFilter(handle, 0, 0, extended) except (NotImplementedError, CANLIBError): # TODO add logging? pass def flush_tx_buffer(self): """ Wipeout the transmit buffer on the Kvaser. """ canIoCtl(self._write_handle, canstat.canIOCTL_FLUSH_TX_BUFFER, 0, 0) def _recv_internal(self, timeout=None): """ Read a message from kvaser device and return whether filtering has taken place. """ arb_id = ctypes.c_long(0) data = ctypes.create_string_buffer(64) dlc = ctypes.c_uint(0) flags = ctypes.c_uint(0) timestamp = ctypes.c_ulong(0) if timeout is None: # Set infinite timeout # http://www.kvaser.com/canlib-webhelp/group___c_a_n.html#ga2edd785a87cc16b49ece8969cad71e5b timeout = 0xFFFFFFFF else: timeout = int(timeout * 1000) #log.log(9, 'Reading for %d ms on handle: %s' % (timeout, self._read_handle)) status = canReadWait( self._read_handle, ctypes.byref(arb_id), ctypes.byref(data), ctypes.byref(dlc), ctypes.byref(flags), ctypes.byref(timestamp), timeout # This is an X ms blocking read ) if status == canstat.canOK: #log.debug('read complete -> status OK') data_array = data.raw flags = flags.value is_extended = bool(flags & canstat.canMSG_EXT) is_remote_frame = bool(flags & canstat.canMSG_RTR) is_error_frame = bool(flags & canstat.canMSG_ERROR_FRAME) is_fd = bool(flags & canstat.canFDMSG_FDF) bitrate_switch = bool(flags & canstat.canFDMSG_BRS) error_state_indicator = bool(flags & canstat.canFDMSG_ESI) msg_timestamp = timestamp.value * TIMESTAMP_FACTOR rx_msg = Message(arbitration_id=arb_id.value, data=data_array[:dlc.value], dlc=dlc.value, is_extended_id=is_extended, is_error_frame=is_error_frame, is_remote_frame=is_remote_frame, is_fd=is_fd, bitrate_switch=bitrate_switch, error_state_indicator=error_state_indicator, channel=self.channel, timestamp=msg_timestamp + self._timestamp_offset) #log.debug('Got message: %s' % rx_msg) return rx_msg, self._is_filtered else: #log.debug('read complete -> status not okay') return None, self._is_filtered def send(self, msg, timeout=None): #log.debug("Writing a message: {}".format(msg)) flags = canstat.canMSG_EXT if msg.is_extended_id else canstat.canMSG_STD if msg.is_remote_frame: flags |= canstat.canMSG_RTR if msg.is_error_frame: flags |= canstat.canMSG_ERROR_FRAME if msg.is_fd: flags |= canstat.canFDMSG_FDF if msg.bitrate_switch: flags |= canstat.canFDMSG_BRS ArrayConstructor = ctypes.c_byte * msg.dlc buf = ArrayConstructor(*msg.data) canWrite(self._write_handle, msg.arbitration_id, ctypes.byref(buf), msg.dlc, flags) if timeout: canWriteSync(self._write_handle, int(timeout * 1000)) def flash(self, flash=True): """ Turn on or off flashing of the device's LED for physical identification purposes. """ if flash: action = canstat.kvLED_ACTION_ALL_LEDS_ON else: action = canstat.kvLED_ACTION_ALL_LEDS_OFF try: kvFlashLeds(self._read_handle, action, 30000) except (CANLIBError, NotImplementedError) as e: log.error('Could not flash LEDs (%s)', e) def shutdown(self): # Wait for transmit queue to be cleared try: canWriteSync(self._write_handle, 100) except CANLIBError: # Not a huge deal and it seems that we get timeout if no messages # exists in the buffer at all pass if not self.single_handle: canBusOff(self._read_handle) canClose(self._read_handle) canBusOff(self._write_handle) canClose(self._write_handle) def get_stats(self): """Retrieves the bus statistics. Use like so: >>> stats = bus.get_stats() >>> print(stats) std_data: 0, std_remote: 0, ext_data: 0, ext_remote: 0, err_frame: 0, bus_load: 0.0%, overruns: 0 :returns: bus statistics. :rtype: can.interfaces.kvaser.structures.BusStatistics """ canRequestBusStatistics(self._write_handle) stats = structures.BusStatistics() canGetBusStatistics(self._write_handle, ctypes.pointer(stats), ctypes.sizeof(stats)) return stats @staticmethod def _detect_available_configs(): num_channels = ctypes.c_int(0) try: canGetNumberOfChannels(ctypes.byref(num_channels)) except Exception: pass return [ {'interface': 'kvaser', 'channel': channel} for channel in range(num_channels.value) ] def get_channel_info(channel): name = ctypes.create_string_buffer(80) serial = ctypes.c_uint64() number = ctypes.c_uint() canGetChannelData(channel, canstat.canCHANNELDATA_DEVDESCR_ASCII, ctypes.byref(name), ctypes.sizeof(name)) canGetChannelData(channel, canstat.canCHANNELDATA_CARD_SERIAL_NO, ctypes.byref(serial), ctypes.sizeof(serial)) canGetChannelData(channel, canstat.canCHANNELDATA_CHAN_NO_ON_CARD, ctypes.byref(number), ctypes.sizeof(number)) return '%s, S/N %d (#%d)' % ( name.value.decode("ascii"), serial.value, number.value + 1) init_kvaser_library() python-can-3.3.2.final/can/interfaces/kvaser/constants.py000066400000000000000000000154061352572415400234520ustar00rootroot00000000000000# coding: utf-8 """ Contains Python equivalents of the function and constant definitions in CANLIB's canstat.h, with some supporting functionality specific to Python. Copyright (C) 2010 Dynamic Controls """ import ctypes class c_canStatus(ctypes.c_int): pass # TODO better formatting canOK = 0 canERR_PARAM = -1 canERR_NOMSG = -2 canERR_NOTFOUND = -3 canERR_NOMEM = -4 canERR_NOCHANNELS = -5 canERR_RESERVED_3 = -6 canERR_TIMEOUT = -7 canERR_NOTINITIALIZED = -8 canERR_NOHANDLES = -9 canERR_INVHANDLE = -10 canERR_INIFILE = -11 canERR_DRIVER = -12 canERR_TXBUFOFL = -13 canERR_RESERVED_1 = -14 canERR_HARDWARE = -15 canERR_DYNALOAD = -16 canERR_DYNALIB = -17 canERR_DYNAINIT = -18 canERR_NOT_SUPPORTED = -19 canERR_RESERVED_5 = -20 canERR_RESERVED_6 = -21 canERR_RESERVED_2 = -22 canERR_DRIVERLOAD = -23 canERR_DRIVERFAILED = -24 canERR_NOCONFIGMGR = -25 canERR_NOCARD = -26 canERR_RESERVED_7 = -27 canERR_REGISTRY = -28 canERR_LICENSE = -29 canERR_INTERNAL = -30 canERR_NO_ACCESS = -31 canERR_NOT_IMPLEMENTED = -32 canERR__RESERVED = -33 def CANSTATUS_SUCCESS(status): return status >= canOK canMSG_MASK = 0x00ff canMSG_RTR = 0x0001 canMSG_STD = 0x0002 canMSG_EXT = 0x0004 canMSG_WAKEUP = 0x0008 canMSG_NERR = 0x0010 canMSG_ERROR_FRAME = 0x0020 canMSG_TXACK = 0x0040 canMSG_TXRQ = 0x0080 canFDMSG_FDF = 0x010000 canFDMSG_BRS = 0x020000 canFDMSG_ESI = 0x040000 canMSGERR_MASK = 0xff00 canMSGERR_HW_OVERRUN = 0x0200 canMSGERR_SW_OVERRUN = 0x0400 canMSGERR_STUFF = 0x0800 canMSGERR_FORM = 0x1000 canMSGERR_CRC = 0x2000 canMSGERR_BIT0 = 0x4000 canMSGERR_BIT1 = 0x8000 canMSGERR_OVERRUN = 0x0600 canMSGERR_BIT = 0xC000 canMSGERR_BUSERR = 0xF800 canTRANSCEIVER_LINEMODE_NA = 0 canTRANSCEIVER_LINEMODE_SWC_SLEEP = 4 canTRANSCEIVER_LINEMODE_SWC_NORMAL = 5 canTRANSCEIVER_LINEMODE_SWC_FAST = 6 canTRANSCEIVER_LINEMODE_SWC_WAKEUP = 7 canTRANSCEIVER_LINEMODE_SLEEP = 8 canTRANSCEIVER_LINEMODE_NORMAL = 9 canTRANSCEIVER_LINEMODE_STDBY = 10 canTRANSCEIVER_LINEMODE_TT_CAN_H = 11 canTRANSCEIVER_LINEMODE_TT_CAN_L = 12 canTRANSCEIVER_LINEMODE_OEM1 = 13 canTRANSCEIVER_LINEMODE_OEM2 = 14 canTRANSCEIVER_LINEMODE_OEM3 = 15 canTRANSCEIVER_LINEMODE_OEM4 = 16 canTRANSCEIVER_RESNET_NA = 0 canTRANSCEIVER_RESNET_MASTER = 1 canTRANSCEIVER_RESNET_MASTER_STBY = 2 canTRANSCEIVER_RESNET_SLAVE = 3 canTRANSCEIVER_TYPE_UNKNOWN = 0 canTRANSCEIVER_TYPE_251 = 1 canTRANSCEIVER_TYPE_252 = 2 canTRANSCEIVER_TYPE_DNOPTO = 3 canTRANSCEIVER_TYPE_W210 = 4 canTRANSCEIVER_TYPE_SWC_PROTO = 5 canTRANSCEIVER_TYPE_SWC = 6 canTRANSCEIVER_TYPE_EVA = 7 canTRANSCEIVER_TYPE_FIBER = 8 canTRANSCEIVER_TYPE_K251 = 9 canTRANSCEIVER_TYPE_K = 10 canTRANSCEIVER_TYPE_1054_OPTO = 11 canTRANSCEIVER_TYPE_SWC_OPTO = 12 canTRANSCEIVER_TYPE_TT = 13 canTRANSCEIVER_TYPE_1050 = 14 canTRANSCEIVER_TYPE_1050_OPTO = 15 canTRANSCEIVER_TYPE_1041 = 16 canTRANSCEIVER_TYPE_1041_OPTO = 17 canTRANSCEIVER_TYPE_RS485 = 18 canTRANSCEIVER_TYPE_LIN = 19 canTRANSCEIVER_TYPE_KONE = 20 canTRANSCEIVER_TYPE_LINX_LIN = 64 canTRANSCEIVER_TYPE_LINX_J1708 = 66 canTRANSCEIVER_TYPE_LINX_K = 68 canTRANSCEIVER_TYPE_LINX_SWC = 70 canTRANSCEIVER_TYPE_LINX_LS = 72 canTransceiverTypeStrings = { canTRANSCEIVER_TYPE_UNKNOWN: "unknown", canTRANSCEIVER_TYPE_251: "82C251", canTRANSCEIVER_TYPE_252: "82C252/TJA1053/TJA1054", canTRANSCEIVER_TYPE_DNOPTO: "Optoisolated 82C251", canTRANSCEIVER_TYPE_W210: "W210", canTRANSCEIVER_TYPE_SWC_PROTO: "AU5790 prototype", canTRANSCEIVER_TYPE_SWC: "AU5790", canTRANSCEIVER_TYPE_EVA: "EVA", canTRANSCEIVER_TYPE_FIBER: "82C251 with fibre extension", canTRANSCEIVER_TYPE_K251: "K251", canTRANSCEIVER_TYPE_K: "K", canTRANSCEIVER_TYPE_1054_OPTO: "TJA1054 optical isolation", canTRANSCEIVER_TYPE_SWC_OPTO: "AU5790 optical isolation", canTRANSCEIVER_TYPE_TT: "B10011S Truck-And-Trailer", canTRANSCEIVER_TYPE_1050: "TJA1050", canTRANSCEIVER_TYPE_1050_OPTO: "TJA1050 optical isolation", canTRANSCEIVER_TYPE_1041: "TJA1041", canTRANSCEIVER_TYPE_1041_OPTO: "TJA1041 optical isolation", canTRANSCEIVER_TYPE_RS485: "RS485", canTRANSCEIVER_TYPE_LIN: "LIN", canTRANSCEIVER_TYPE_KONE: "KONE", canTRANSCEIVER_TYPE_LINX_LIN: "LINX_LIN", canTRANSCEIVER_TYPE_LINX_J1708: "LINX_J1708", canTRANSCEIVER_TYPE_LINX_K: "LINX_K", canTRANSCEIVER_TYPE_LINX_SWC: "LINX_SWC", canTRANSCEIVER_TYPE_LINX_LS: "LINX_LS" } canDRIVER_NORMAL = 4 canDRIVER_SILENT = 1 canDRIVER_SELFRECEPTION = 8 canDRIVER_OFF = 0 canOPEN_ACCEPT_VIRTUAL = 0x0020 canOPEN_OVERRIDE_EXCLUSIVE = 0x0040 canOPEN_REQUIRE_INIT_ACCESS = 0x0080 canOPEN_NO_INIT_ACCESS = 0x0100 canOPEN_ACCEPT_LARGE_DLC = 0x0200 canOPEN_CAN_FD = 0x0400 canOPEN_CAN_FD_NONISO = 0x0800 canIOCTL_GET_RX_BUFFER_LEVEL = 8 canIOCTL_GET_TX_BUFFER_LEVEL = 9 canIOCTL_FLUSH_RX_BUFFER = 10 canIOCTL_FLUSH_TX_BUFFER = 11 canIOCTL_GET_TIMER_SCALE = 12 canIOCTL_SET_TXRQ = 13 canIOCTL_GET_EVENTHANDLE = 14 canIOCTL_SET_BYPASS_MODE = 15 canIOCTL_SET_WAKEUP = 16 canIOCTL_GET_DRIVERHANDLE = 17 canIOCTL_MAP_RXQUEUE = 18 canIOCTL_GET_WAKEUP = 19 canIOCTL_SET_REPORT_ACCESS_ERRORS = 20 canIOCTL_GET_REPORT_ACCESS_ERRORS = 21 canIOCTL_CONNECT_TO_VIRTUAL_BUS = 22 canIOCTL_DISCONNECT_FROM_VIRTUAL_BUS = 23 canIOCTL_SET_USER_IOPORT = 24 canIOCTL_GET_USER_IOPORT = 25 canIOCTL_SET_BUFFER_WRAPAROUND_MODE = 26 canIOCTL_SET_RX_QUEUE_SIZE = 27 canIOCTL_SET_USB_THROTTLE = 28 canIOCTL_GET_USB_THROTTLE = 29 canIOCTL_SET_BUSON_TIME_AUTO_RESET = 30 canIOCTL_SET_LOCAL_TXECHO = 32 canIOCTL_PREFER_EXT = 1 canIOCTL_PREFER_STD = 2 canIOCTL_CLEAR_ERROR_COUNTERS = 5 canIOCTL_SET_TIMER_SCALE = 6 canIOCTL_SET_TXACK = 7 canCHANNELDATA_CHANNEL_CAP = 1 canCHANNELDATA_TRANS_CAP = 2 canCHANNELDATA_CHANNEL_FLAGS = 3 canCHANNELDATA_CARD_TYPE = 4 canCHANNELDATA_CARD_NUMBER = 5 canCHANNELDATA_CHAN_NO_ON_CARD = 6 canCHANNELDATA_CARD_SERIAL_NO = 7 canCHANNELDATA_TRANS_SERIAL_NO = 8 canCHANNELDATA_CARD_FIRMWARE_REV = 9 canCHANNELDATA_CARD_HARDWARE_REV = 10 canCHANNELDATA_CARD_UPC_NO = 11 canCHANNELDATA_TRANS_UPC_NO = 12 canCHANNELDATA_CHANNEL_NAME = 13 canCHANNELDATA_DLL_FILE_VERSION = 14 canCHANNELDATA_DLL_PRODUCT_VERSION = 15 canCHANNELDATA_DLL_FILETYPE = 16 canCHANNELDATA_TRANS_TYPE = 17 canCHANNELDATA_DEVICE_PHYSICAL_POSITION = 18 canCHANNELDATA_UI_NUMBER = 19 canCHANNELDATA_TIMESYNC_ENABLED = 20 canCHANNELDATA_DRIVER_FILE_VERSION = 21 canCHANNELDATA_DRIVER_PRODUCT_VERSION = 22 canCHANNELDATA_MFGNAME_UNICODE = 23 canCHANNELDATA_MFGNAME_ASCII = 24 canCHANNELDATA_DEVDESCR_UNICODE = 25 canCHANNELDATA_DEVDESCR_ASCII = 26 canCHANNELDATA_DRIVER_NAME = 27 kvLED_ACTION_ALL_LEDS_ON = 0 kvLED_ACTION_ALL_LEDS_OFF = 1 canBITRATE_1M = -1 canBITRATE_500K = -2 canBITRATE_250K = -3 canBITRATE_125K = -4 canBITRATE_100K = -5 canBITRATE_62K = -6 canBITRATE_50K = -7 canBITRATE_83K = -8 canBITRATE_10K = -9 canFD_BITRATE_500K_80P = -1000 canFD_BITRATE_1M_80P = -1001 canFD_BITRATE_2M_80P = -1002 canFD_BITRATE_4M_80P = -1003 canFD_BITRATE_8M_60P = -1004 python-can-3.3.2.final/can/interfaces/kvaser/structures.py000066400000000000000000000037451352572415400236640ustar00rootroot00000000000000# coding: utf-8 """ Contains Python equivalents of the structures in CANLIB's canlib.h, with some supporting functionality specific to Python. """ import ctypes class BusStatistics(ctypes.Structure): """ This structure is used with the method :meth:`KvaserBus.get_stats`. .. seealso:: :meth:`KvaserBus.get_stats` """ _fields_ = [ ("m_stdData", ctypes.c_ulong), ("m_stdRemote", ctypes.c_ulong), ("m_extData", ctypes.c_ulong), ("m_extRemote", ctypes.c_ulong), ("m_errFrame", ctypes.c_ulong), ("m_busLoad", ctypes.c_ulong), ("m_overruns", ctypes.c_ulong) ] def __str__(self): return ("std_data: {}, std_remote: {}, ext_data: {}, ext_remote: {}, " "err_frame: {}, bus_load: {:.1f}%, overruns: {}").format( self.std_data, self.std_remote, self.ext_data, self.ext_remote, self.err_frame, self.bus_load / 100.0, self.overruns, ) @property def std_data(self): """Number of received standard (11-bit identifiers) data frames.""" return self.m_stdData @property def std_remote(self): """Number of received standard (11-bit identifiers) remote frames.""" return self.m_stdRemote @property def ext_data(self): """Number of received extended (29-bit identifiers) data frames.""" return self.m_extData @property def ext_remote(self): """Number of received extended (29-bit identifiers) remote frames.""" return self.m_extRemote @property def err_frame(self): """Number of error frames.""" return self.m_errFrame @property def bus_load(self): """The bus load, expressed as an integer in the interval 0 - 10000 representing 0.00% - 100.00% bus load.""" return self.m_busLoad @property def overruns(self): """Number of overruns.""" return self.m_overruns python-can-3.3.2.final/can/interfaces/nican.py000066400000000000000000000252351352572415400212340ustar00rootroot00000000000000# coding: utf-8 """ NI-CAN interface module. Implementation references: * http://www.ni.com/pdf/manuals/370289c.pdf * https://github.com/buendiya/NicanPython TODO: We could implement this interface such that setting other filters could work when the initial filters were set to zero using the software fallback. Or could the software filters even be changed after the connection was opened? We need to document that bahaviour! See also the IXXAT interface. """ import ctypes import logging import sys from can import CanError, BusABC, Message logger = logging.getLogger(__name__) NC_SUCCESS = 0 NC_ERR_TIMEOUT = 1 TIMEOUT_ERROR_CODE = -1074388991 NC_DURATION_INFINITE = 0xFFFFFFFF NC_OP_START = 0x80000001 NC_OP_STOP = 0x80000002 NC_OP_RESET = 0x80000003 NC_FRMTYPE_REMOTE = 1 NC_FRMTYPE_COMM_ERR = 2 NC_ST_READ_AVAIL = 0x00000001 NC_ST_WRITE_SUCCESS = 0x00000002 NC_ST_ERROR = 0x00000010 NC_ST_WARNING = 0x00000020 NC_ATTR_BAUD_RATE = 0x80000007 NC_ATTR_START_ON_OPEN = 0x80000006 NC_ATTR_READ_Q_LEN = 0x80000013 NC_ATTR_WRITE_Q_LEN = 0x80000014 NC_ATTR_CAN_COMP_STD = 0x80010001 NC_ATTR_CAN_MASK_STD = 0x80010002 NC_ATTR_CAN_COMP_XTD = 0x80010003 NC_ATTR_CAN_MASK_XTD = 0x80010004 NC_ATTR_LOG_COMM_ERRS = 0x8001000A NC_FL_CAN_ARBID_XTD = 0x20000000 CanData = ctypes.c_ubyte * 8 class RxMessageStruct(ctypes.Structure): _pack_ = 1 _fields_ = [ ("timestamp", ctypes.c_ulonglong), ("arb_id", ctypes.c_ulong), ("frame_type", ctypes.c_ubyte), ("dlc", ctypes.c_ubyte), ("data", CanData), ] class TxMessageStruct(ctypes.Structure): _fields_ = [ ("arb_id", ctypes.c_ulong), ("is_remote", ctypes.c_ubyte), ("dlc", ctypes.c_ubyte), ("data", CanData), ] def check_status(result, function, arguments): if result > 0: logger.warning(get_error_message(result)) elif result < 0: raise NicanError(function, result, arguments) return result def get_error_message(status_code): """Convert status code to descriptive string.""" errmsg = ctypes.create_string_buffer(1024) nican.ncStatusToString(status_code, len(errmsg), errmsg) return errmsg.value.decode("ascii") if sys.platform == "win32": try: nican = ctypes.windll.LoadLibrary("nican") except Exception as e: nican = None logger.error("Failed to load NI-CAN driver: %s", e) else: nican.ncConfig.argtypes = [ ctypes.c_char_p, ctypes.c_ulong, ctypes.c_void_p, ctypes.c_void_p] nican.ncConfig.errcheck = check_status nican.ncOpenObject.argtypes = [ctypes.c_char_p, ctypes.c_void_p] nican.ncOpenObject.errcheck = check_status nican.ncCloseObject.errcheck = check_status nican.ncAction.argtypes = [ctypes.c_ulong, ctypes.c_ulong, ctypes.c_ulong] nican.ncAction.errcheck = check_status nican.ncRead.errcheck = check_status nican.ncWrite.errcheck = check_status nican.ncWaitForState.argtypes = [ ctypes.c_ulong, ctypes.c_ulong, ctypes.c_ulong, ctypes.c_void_p] nican.ncWaitForState.errcheck = check_status nican.ncStatusToString.argtypes = [ ctypes.c_int, ctypes.c_uint, ctypes.c_char_p] else: nican = None logger.warning("NI-CAN interface is only available on Windows systems") class NicanBus(BusABC): """ The CAN Bus implemented for the NI-CAN interface. .. warning:: This interface does implement efficient filtering of messages, but the filters have to be set in :meth:`~can.interfaces.nican.NicanBus.__init__` using the ``can_filters`` parameter. Using :meth:`~can.interfaces.nican.NicanBus.set_filters` does not work. """ def __init__(self, channel, can_filters=None, bitrate=None, log_errors=True, **kwargs): """ :param str channel: Name of the object to open (e.g. 'CAN0') :param int bitrate: Bitrate in bits/s :param list can_filters: See :meth:`can.BusABC.set_filters`. :param bool log_errors: If True, communication errors will appear as CAN messages with ``is_error_frame`` set to True and ``arbitration_id`` will identify the error (default True) :raises can.interfaces.nican.NicanError: If starting communication fails """ if nican is None: raise ImportError("The NI-CAN driver could not be loaded. " "Check that you are using 32-bit Python on Windows.") self.channel = channel self.channel_info = "NI-CAN: " + channel if not isinstance(channel, bytes): channel = channel.encode() config = [ (NC_ATTR_START_ON_OPEN, True), (NC_ATTR_LOG_COMM_ERRS, log_errors) ] if not can_filters: logger.info("Filtering has been disabled") config.extend([ (NC_ATTR_CAN_COMP_STD, 0), (NC_ATTR_CAN_MASK_STD, 0), (NC_ATTR_CAN_COMP_XTD, 0), (NC_ATTR_CAN_MASK_XTD, 0) ]) else: for can_filter in can_filters: can_id = can_filter["can_id"] can_mask = can_filter["can_mask"] logger.info("Filtering on ID 0x%X, mask 0x%X", can_id, can_mask) if can_filter.get("extended"): config.extend([ (NC_ATTR_CAN_COMP_XTD, can_id | NC_FL_CAN_ARBID_XTD), (NC_ATTR_CAN_MASK_XTD, can_mask) ]) else: config.extend([ (NC_ATTR_CAN_COMP_STD, can_id), (NC_ATTR_CAN_MASK_STD, can_mask), ]) if bitrate: config.append((NC_ATTR_BAUD_RATE, bitrate)) AttrList = ctypes.c_ulong * len(config) attr_id_list = AttrList(*(row[0] for row in config)) attr_value_list = AttrList(*(row[1] for row in config)) nican.ncConfig(channel, len(config), ctypes.byref(attr_id_list), ctypes.byref(attr_value_list)) self.handle = ctypes.c_ulong() nican.ncOpenObject(channel, ctypes.byref(self.handle)) super(NicanBus, self).__init__(channel=channel, can_filters=can_filters, bitrate=bitrate, log_errors=log_errors, **kwargs) def _recv_internal(self, timeout): """ Read a message from a NI-CAN bus. :param float timeout: Max time to wait in seconds or None if infinite :raises can.interfaces.nican.NicanError: If reception fails """ if timeout is None: timeout = NC_DURATION_INFINITE else: timeout = int(timeout * 1000) state = ctypes.c_ulong() try: nican.ncWaitForState( self.handle, NC_ST_READ_AVAIL, timeout, ctypes.byref(state)) except NicanError as e: if e.error_code == TIMEOUT_ERROR_CODE: return None, True else: raise raw_msg = RxMessageStruct() nican.ncRead(self.handle, ctypes.sizeof(raw_msg), ctypes.byref(raw_msg)) # http://stackoverflow.com/questions/6161776/convert-windows-filetime-to-second-in-unix-linux timestamp = raw_msg.timestamp / 10000000.0 - 11644473600 is_remote_frame = raw_msg.frame_type == NC_FRMTYPE_REMOTE is_error_frame = raw_msg.frame_type == NC_FRMTYPE_COMM_ERR is_extended = bool(raw_msg.arb_id & NC_FL_CAN_ARBID_XTD) arb_id = raw_msg.arb_id if not is_error_frame: arb_id &= 0x1FFFFFFF dlc = raw_msg.dlc msg = Message(timestamp=timestamp, channel=self.channel, is_remote_frame=is_remote_frame, is_error_frame=is_error_frame, is_extended_id=is_extended, arbitration_id=arb_id, dlc=dlc, data=raw_msg.data[:dlc]) return msg, True def send(self, msg, timeout=None): """ Send a message to NI-CAN. :param can.Message msg: Message to send :raises can.interfaces.nican.NicanError: If writing to transmit buffer fails. It does not wait for message to be ACKed currently. """ arb_id = msg.arbitration_id if msg.is_extended_id: arb_id |= NC_FL_CAN_ARBID_XTD raw_msg = TxMessageStruct(arb_id, bool(msg.is_remote_frame), msg.dlc, CanData(*msg.data)) nican.ncWrite( self.handle, ctypes.sizeof(raw_msg), ctypes.byref(raw_msg)) # TODO: # ncWaitForState can not be called here if the recv() method is called # from a different thread, which is a very common use case. # Maybe it is possible to use ncCreateNotification instead but seems a # bit overkill at the moment. #state = ctypes.c_ulong() #nican.ncWaitForState( # self.handle, NC_ST_WRITE_SUCCESS, int(timeout * 1000), ctypes.byref(state)) def reset(self): """ Resets network interface. Stops network interface, then resets the CAN chip to clear the CAN error counters (clear error passive state). Resetting includes clearing all entries from read and write queues. """ nican.ncAction(self.handle, NC_OP_RESET, 0) def shutdown(self): """Close object.""" nican.ncCloseObject(self.handle) __set_filters_has_been_called = False def set_filters(self, can_filers=None): """Unsupported. See note on :class:`~can.interfaces.nican.NicanBus`. """ if self.__set_filters_has_been_called: logger.warn("using filters is not supported like this, see note on NicanBus") else: # allow the constructor to call this without causing a warning self.__set_filters_has_been_called = True class NicanError(CanError): """Error from NI-CAN driver.""" def __init__(self, function, error_code, arguments): super(NicanError, self).__init__() #: Status code self.error_code = error_code #: Function that failed self.function = function #: Arguments passed to function self.arguments = arguments def __str__(self): return "Function %s failed:\n%s" % ( self.function.__name__, get_error_message(self.error_code)) python-can-3.3.2.final/can/interfaces/pcan/000077500000000000000000000000001352572415400205045ustar00rootroot00000000000000python-can-3.3.2.final/can/interfaces/pcan/__init__.py000066400000000000000000000001071352572415400226130ustar00rootroot00000000000000# coding: utf-8 """ """ from can.interfaces.pcan.pcan import PcanBus python-can-3.3.2.final/can/interfaces/pcan/basic.py000066400000000000000000001050761352572415400221500ustar00rootroot00000000000000# coding: utf-8 """ PCAN-Basic API Author: Keneth Wagner Last change: 13.11.2017 Wagner Language: Python 2.7, 3.5 Copyright (C) 1999-2017 PEAK-System Technik GmbH, Darmstadt, Germany http://www.peak-system.com """ from ctypes import * from string import * import platform import logging logger = logging.getLogger('can.pcan') #/////////////////////////////////////////////////////////// # Type definitions #/////////////////////////////////////////////////////////// TPCANHandle = c_ushort # Represents a PCAN hardware channel handle TPCANStatus = int # Represents a PCAN status/error code TPCANParameter = c_ubyte # Represents a PCAN parameter to be read or set TPCANDevice = c_ubyte # Represents a PCAN device TPCANMessageType = c_ubyte # Represents the type of a PCAN message TPCANType = c_ubyte # Represents the type of PCAN hardware to be initialized TPCANMode = c_ubyte # Represents a PCAN filter mode TPCANBaudrate = c_ushort # Represents a PCAN Baud rate register value TPCANBitrateFD = c_char_p # Represents a PCAN-FD bit rate string TPCANTimestampFD = c_ulonglong # Represents a timestamp of a received PCAN FD message #/////////////////////////////////////////////////////////// # Value definitions #/////////////////////////////////////////////////////////// # Currently defined and supported PCAN channels PCAN_NONEBUS = TPCANHandle(0x00) # Undefined/default value for a PCAN bus PCAN_ISABUS1 = TPCANHandle(0x21) # PCAN-ISA interface, channel 1 PCAN_ISABUS2 = TPCANHandle(0x22) # PCAN-ISA interface, channel 2 PCAN_ISABUS3 = TPCANHandle(0x23) # PCAN-ISA interface, channel 3 PCAN_ISABUS4 = TPCANHandle(0x24) # PCAN-ISA interface, channel 4 PCAN_ISABUS5 = TPCANHandle(0x25) # PCAN-ISA interface, channel 5 PCAN_ISABUS6 = TPCANHandle(0x26) # PCAN-ISA interface, channel 6 PCAN_ISABUS7 = TPCANHandle(0x27) # PCAN-ISA interface, channel 7 PCAN_ISABUS8 = TPCANHandle(0x28) # PCAN-ISA interface, channel 8 PCAN_DNGBUS1 = TPCANHandle(0x31) # PCAN-Dongle/LPT interface, channel 1 PCAN_PCIBUS1 = TPCANHandle(0x41) # PCAN-PCI interface, channel 1 PCAN_PCIBUS2 = TPCANHandle(0x42) # PCAN-PCI interface, channel 2 PCAN_PCIBUS3 = TPCANHandle(0x43) # PCAN-PCI interface, channel 3 PCAN_PCIBUS4 = TPCANHandle(0x44) # PCAN-PCI interface, channel 4 PCAN_PCIBUS5 = TPCANHandle(0x45) # PCAN-PCI interface, channel 5 PCAN_PCIBUS6 = TPCANHandle(0x46) # PCAN-PCI interface, channel 6 PCAN_PCIBUS7 = TPCANHandle(0x47) # PCAN-PCI interface, channel 7 PCAN_PCIBUS8 = TPCANHandle(0x48) # PCAN-PCI interface, channel 8 PCAN_PCIBUS9 = TPCANHandle(0x409) # PCAN-PCI interface, channel 9 PCAN_PCIBUS10 = TPCANHandle(0x40A) # PCAN-PCI interface, channel 10 PCAN_PCIBUS11 = TPCANHandle(0x40B) # PCAN-PCI interface, channel 11 PCAN_PCIBUS12 = TPCANHandle(0x40C) # PCAN-PCI interface, channel 12 PCAN_PCIBUS13 = TPCANHandle(0x40D) # PCAN-PCI interface, channel 13 PCAN_PCIBUS14 = TPCANHandle(0x40E) # PCAN-PCI interface, channel 14 PCAN_PCIBUS15 = TPCANHandle(0x40F) # PCAN-PCI interface, channel 15 PCAN_PCIBUS16 = TPCANHandle(0x410) # PCAN-PCI interface, channel 16 PCAN_USBBUS1 = TPCANHandle(0x51) # PCAN-USB interface, channel 1 PCAN_USBBUS2 = TPCANHandle(0x52) # PCAN-USB interface, channel 2 PCAN_USBBUS3 = TPCANHandle(0x53) # PCAN-USB interface, channel 3 PCAN_USBBUS4 = TPCANHandle(0x54) # PCAN-USB interface, channel 4 PCAN_USBBUS5 = TPCANHandle(0x55) # PCAN-USB interface, channel 5 PCAN_USBBUS6 = TPCANHandle(0x56) # PCAN-USB interface, channel 6 PCAN_USBBUS7 = TPCANHandle(0x57) # PCAN-USB interface, channel 7 PCAN_USBBUS8 = TPCANHandle(0x58) # PCAN-USB interface, channel 8 PCAN_USBBUS9 = TPCANHandle(0x509) # PCAN-USB interface, channel 9 PCAN_USBBUS10 = TPCANHandle(0x50A) # PCAN-USB interface, channel 10 PCAN_USBBUS11 = TPCANHandle(0x50B) # PCAN-USB interface, channel 11 PCAN_USBBUS12 = TPCANHandle(0x50C) # PCAN-USB interface, channel 12 PCAN_USBBUS13 = TPCANHandle(0x50D) # PCAN-USB interface, channel 13 PCAN_USBBUS14 = TPCANHandle(0x50E) # PCAN-USB interface, channel 14 PCAN_USBBUS15 = TPCANHandle(0x50F) # PCAN-USB interface, channel 15 PCAN_USBBUS16 = TPCANHandle(0x510) # PCAN-USB interface, channel 16 PCAN_PCCBUS1 = TPCANHandle(0x61) # PCAN-PC Card interface, channel 1 PCAN_PCCBUS2 = TPCANHandle(0x62) # PCAN-PC Card interface, channel 2 PCAN_LANBUS1 = TPCANHandle(0x801) # PCAN-LAN interface, channel 1 PCAN_LANBUS2 = TPCANHandle(0x802) # PCAN-LAN interface, channel 2 PCAN_LANBUS3 = TPCANHandle(0x803) # PCAN-LAN interface, channel 3 PCAN_LANBUS4 = TPCANHandle(0x804) # PCAN-LAN interface, channel 4 PCAN_LANBUS5 = TPCANHandle(0x805) # PCAN-LAN interface, channel 5 PCAN_LANBUS6 = TPCANHandle(0x806) # PCAN-LAN interface, channel 6 PCAN_LANBUS7 = TPCANHandle(0x807) # PCAN-LAN interface, channel 7 PCAN_LANBUS8 = TPCANHandle(0x808) # PCAN-LAN interface, channel 8 PCAN_LANBUS9 = TPCANHandle(0x809) # PCAN-LAN interface, channel 9 PCAN_LANBUS10 = TPCANHandle(0x80A) # PCAN-LAN interface, channel 10 PCAN_LANBUS11 = TPCANHandle(0x80B) # PCAN-LAN interface, channel 11 PCAN_LANBUS12 = TPCANHandle(0x80C) # PCAN-LAN interface, channel 12 PCAN_LANBUS13 = TPCANHandle(0x80D) # PCAN-LAN interface, channel 13 PCAN_LANBUS14 = TPCANHandle(0x80E) # PCAN-LAN interface, channel 14 PCAN_LANBUS15 = TPCANHandle(0x80F) # PCAN-LAN interface, channel 15 PCAN_LANBUS16 = TPCANHandle(0x810) # PCAN-LAN interface, channel 16 # Represent the PCAN error and status codes PCAN_ERROR_OK = TPCANStatus(0x00000) # No error PCAN_ERROR_XMTFULL = TPCANStatus(0x00001) # Transmit buffer in CAN controller is full PCAN_ERROR_OVERRUN = TPCANStatus(0x00002) # CAN controller was read too late PCAN_ERROR_BUSLIGHT = TPCANStatus(0x00004) # Bus error: an error counter reached the 'light' limit PCAN_ERROR_BUSHEAVY = TPCANStatus(0x00008) # Bus error: an error counter reached the 'heavy' limit PCAN_ERROR_BUSWARNING = TPCANStatus(PCAN_ERROR_BUSHEAVY) # Bus error: an error counter reached the 'warning' limit PCAN_ERROR_BUSPASSIVE = TPCANStatus(0x40000) # Bus error: the CAN controller is error passive PCAN_ERROR_BUSOFF = TPCANStatus(0x00010) # Bus error: the CAN controller is in bus-off state PCAN_ERROR_ANYBUSERR = TPCANStatus(PCAN_ERROR_BUSWARNING | PCAN_ERROR_BUSLIGHT | PCAN_ERROR_BUSHEAVY | PCAN_ERROR_BUSOFF | PCAN_ERROR_BUSPASSIVE) # Mask for all bus errors PCAN_ERROR_QRCVEMPTY = TPCANStatus(0x00020) # Receive queue is empty PCAN_ERROR_QOVERRUN = TPCANStatus(0x00040) # Receive queue was read too late PCAN_ERROR_QXMTFULL = TPCANStatus(0x00080) # Transmit queue is full PCAN_ERROR_REGTEST = TPCANStatus(0x00100) # Test of the CAN controller hardware registers failed (no hardware found) PCAN_ERROR_NODRIVER = TPCANStatus(0x00200) # Driver not loaded PCAN_ERROR_HWINUSE = TPCANStatus(0x00400) # Hardware already in use by a Net PCAN_ERROR_NETINUSE = TPCANStatus(0x00800) # A Client is already connected to the Net PCAN_ERROR_ILLHW = TPCANStatus(0x01400) # Hardware handle is invalid PCAN_ERROR_ILLNET = TPCANStatus(0x01800) # Net handle is invalid PCAN_ERROR_ILLCLIENT = TPCANStatus(0x01C00) # Client handle is invalid PCAN_ERROR_ILLHANDLE = TPCANStatus(PCAN_ERROR_ILLHW | PCAN_ERROR_ILLNET | PCAN_ERROR_ILLCLIENT) # Mask for all handle errors PCAN_ERROR_RESOURCE = TPCANStatus(0x02000) # Resource (FIFO, Client, timeout) cannot be created PCAN_ERROR_ILLPARAMTYPE = TPCANStatus(0x04000) # Invalid parameter PCAN_ERROR_ILLPARAMVAL = TPCANStatus(0x08000) # Invalid parameter value PCAN_ERROR_UNKNOWN = TPCANStatus(0x10000) # Unknown error PCAN_ERROR_ILLDATA = TPCANStatus(0x20000) # Invalid data, function, or action PCAN_ERROR_CAUTION = TPCANStatus(0x2000000)# An operation was successfully carried out, however, irregularities were registered PCAN_ERROR_INITIALIZE = TPCANStatus(0x4000000)# Channel is not initialized [Value was changed from 0x40000 to 0x4000000] PCAN_ERROR_ILLOPERATION = TPCANStatus(0x8000000)# Invalid operation [Value was changed from 0x80000 to 0x8000000] # PCAN devices PCAN_NONE = TPCANDevice(0x00) # Undefined, unknown or not selected PCAN device value PCAN_PEAKCAN = TPCANDevice(0x01) # PCAN Non-Plug&Play devices. NOT USED WITHIN PCAN-Basic API PCAN_ISA = TPCANDevice(0x02) # PCAN-ISA, PCAN-PC/104, and PCAN-PC/104-Plus PCAN_DNG = TPCANDevice(0x03) # PCAN-Dongle PCAN_PCI = TPCANDevice(0x04) # PCAN-PCI, PCAN-cPCI, PCAN-miniPCI, and PCAN-PCI Express PCAN_USB = TPCANDevice(0x05) # PCAN-USB and PCAN-USB Pro PCAN_PCC = TPCANDevice(0x06) # PCAN-PC Card PCAN_VIRTUAL = TPCANDevice(0x07) # PCAN Virtual hardware. NOT USED WITHIN PCAN-Basic API PCAN_LAN = TPCANDevice(0x08) # PCAN Gateway devices # PCAN parameters PCAN_DEVICE_NUMBER = TPCANParameter(0x01) # PCAN-USB device number parameter PCAN_5VOLTS_POWER = TPCANParameter(0x02) # PCAN-PC Card 5-Volt power parameter PCAN_RECEIVE_EVENT = TPCANParameter(0x03) # PCAN receive event handler parameter PCAN_MESSAGE_FILTER = TPCANParameter(0x04) # PCAN message filter parameter PCAN_API_VERSION = TPCANParameter(0x05) # PCAN-Basic API version parameter PCAN_CHANNEL_VERSION = TPCANParameter(0x06) # PCAN device channel version parameter PCAN_BUSOFF_AUTORESET = TPCANParameter(0x07) # PCAN Reset-On-Busoff parameter PCAN_LISTEN_ONLY = TPCANParameter(0x08) # PCAN Listen-Only parameter PCAN_LOG_LOCATION = TPCANParameter(0x09) # Directory path for log files PCAN_LOG_STATUS = TPCANParameter(0x0A) # Debug-Log activation status PCAN_LOG_CONFIGURE = TPCANParameter(0x0B) # Configuration of the debugged information (LOG_FUNCTION_***) PCAN_LOG_TEXT = TPCANParameter(0x0C) # Custom insertion of text into the log file PCAN_CHANNEL_CONDITION = TPCANParameter(0x0D) # Availability status of a PCAN-Channel PCAN_HARDWARE_NAME = TPCANParameter(0x0E) # PCAN hardware name parameter PCAN_RECEIVE_STATUS = TPCANParameter(0x0F) # Message reception status of a PCAN-Channel PCAN_CONTROLLER_NUMBER = TPCANParameter(0x10) # CAN-Controller number of a PCAN-Channel PCAN_TRACE_LOCATION = TPCANParameter(0x11) # Directory path for PCAN trace files PCAN_TRACE_STATUS = TPCANParameter(0x12) # CAN tracing activation status PCAN_TRACE_SIZE = TPCANParameter(0x13) # Configuration of the maximum file size of a CAN trace PCAN_TRACE_CONFIGURE = TPCANParameter(0x14) # Configuration of the trace file storing mode (TRACE_FILE_***) PCAN_CHANNEL_IDENTIFYING = TPCANParameter(0x15) # Physical identification of a USB based PCAN-Channel by blinking its associated LED PCAN_CHANNEL_FEATURES = TPCANParameter(0x16) # Capabilities of a PCAN device (FEATURE_***) PCAN_BITRATE_ADAPTING = TPCANParameter(0x17) # Using of an existing bit rate (PCAN-View connected to a channel) PCAN_BITRATE_INFO = TPCANParameter(0x18) # Configured bit rate as Btr0Btr1 value PCAN_BITRATE_INFO_FD = TPCANParameter(0x19) # Configured bit rate as TPCANBitrateFD string PCAN_BUSSPEED_NOMINAL = TPCANParameter(0x1A) # Configured nominal CAN Bus speed as Bits per seconds PCAN_BUSSPEED_DATA = TPCANParameter(0x1B) # Configured CAN data speed as Bits per seconds PCAN_IP_ADDRESS = TPCANParameter(0x1C) # Remote address of a LAN channel as string in IPv4 format PCAN_LAN_SERVICE_STATUS = TPCANParameter(0x1D) # Status of the Virtual PCAN-Gateway Service PCAN_ALLOW_STATUS_FRAMES = TPCANParameter(0x1E) # Status messages reception status within a PCAN-Channel PCAN_ALLOW_RTR_FRAMES = TPCANParameter(0x1F) # RTR messages reception status within a PCAN-Channel PCAN_ALLOW_ERROR_FRAMES = TPCANParameter(0x20) # Error messages reception status within a PCAN-Channel PCAN_INTERFRAME_DELAY = TPCANParameter(0x21) # Delay, in microseconds, between sending frames PCAN_ACCEPTANCE_FILTER_11BIT = TPCANParameter(0x22) # Filter over code and mask patterns for 11-Bit messages PCAN_ACCEPTANCE_FILTER_29BIT = TPCANParameter(0x23) # Filter over code and mask patterns for 29-Bit messages PCAN_IO_DIGITAL_CONFIGURATION = TPCANParameter(0x24) # Output mode of 32 digital I/O pin of a PCAN-USB Chip. 1: Output-Active 0 : Output Inactive PCAN_IO_DIGITAL_VALUE = TPCANParameter(0x25) # Value assigned to a 32 digital I/O pins of a PCAN-USB Chip PCAN_IO_DIGITAL_SET = TPCANParameter(0x26) # Value assigned to a 32 digital I/O pins of a PCAN-USB Chip - Multiple digital I/O pins to 1 = High PCAN_IO_DIGITAL_CLEAR = TPCANParameter(0x27) # Clear multiple digital I/O pins to 0 PCAN_IO_ANALOG_VALUE = TPCANParameter(0x28) # Get value of a single analog input pin # PCAN parameter values PCAN_PARAMETER_OFF = int(0x00) # The PCAN parameter is not set (inactive) PCAN_PARAMETER_ON = int(0x01) # The PCAN parameter is set (active) PCAN_FILTER_CLOSE = int(0x00) # The PCAN filter is closed. No messages will be received PCAN_FILTER_OPEN = int(0x01) # The PCAN filter is fully opened. All messages will be received PCAN_FILTER_CUSTOM = int(0x02) # The PCAN filter is custom configured. Only registered messages will be received PCAN_CHANNEL_UNAVAILABLE = int(0x00) # The PCAN-Channel handle is illegal, or its associated hardware is not available PCAN_CHANNEL_AVAILABLE = int(0x01) # The PCAN-Channel handle is available to be connected (Plug&Play Hardware: it means furthermore that the hardware is plugged-in) PCAN_CHANNEL_OCCUPIED = int(0x02) # The PCAN-Channel handle is valid, and is already being used PCAN_CHANNEL_PCANVIEW = PCAN_CHANNEL_AVAILABLE | PCAN_CHANNEL_OCCUPIED # The PCAN-Channel handle is already being used by a PCAN-View application, but is available to connect LOG_FUNCTION_DEFAULT = int(0x00) # Logs system exceptions / errors LOG_FUNCTION_ENTRY = int(0x01) # Logs the entries to the PCAN-Basic API functions LOG_FUNCTION_PARAMETERS = int(0x02) # Logs the parameters passed to the PCAN-Basic API functions LOG_FUNCTION_LEAVE = int(0x04) # Logs the exits from the PCAN-Basic API functions LOG_FUNCTION_WRITE = int(0x08) # Logs the CAN messages passed to the CAN_Write function LOG_FUNCTION_READ = int(0x10) # Logs the CAN messages received within the CAN_Read function LOG_FUNCTION_ALL = int(0xFFFF)# Logs all possible information within the PCAN-Basic API functions TRACE_FILE_SINGLE = int(0x00) # A single file is written until it size reaches PAN_TRACE_SIZE TRACE_FILE_SEGMENTED = int(0x01) # Traced data is distributed in several files with size PAN_TRACE_SIZE TRACE_FILE_DATE = int(0x02) # Includes the date into the name of the trace file TRACE_FILE_TIME = int(0x04) # Includes the start time into the name of the trace file TRACE_FILE_OVERWRITE = int(0x80) # Causes the overwriting of available traces (same name) FEATURE_FD_CAPABLE = int(0x01) # Device supports flexible data-rate (CAN-FD) FEATURE_DELAY_CAPABLE = int(0x02) # Device supports a delay between sending frames (FPGA based USB devices) FEATURE_IO_CAPABLE = int(0x04) # Device supports I/O functionality for electronic circuits (USB-Chip devices) SERVICE_STATUS_STOPPED = int(0x01) # The service is not running SERVICE_STATUS_RUNNING = int(0x04) # The service is running # PCAN message types PCAN_MESSAGE_STANDARD = TPCANMessageType(0x00) # The PCAN message is a CAN Standard Frame (11-bit identifier) PCAN_MESSAGE_RTR = TPCANMessageType(0x01) # The PCAN message is a CAN Remote-Transfer-Request Frame PCAN_MESSAGE_EXTENDED = TPCANMessageType(0x02) # The PCAN message is a CAN Extended Frame (29-bit identifier) PCAN_MESSAGE_FD = TPCANMessageType(0x04) # The PCAN message represents a FD frame in terms of CiA Specs PCAN_MESSAGE_BRS = TPCANMessageType(0x08) # The PCAN message represents a FD bit rate switch (CAN data at a higher bit rate) PCAN_MESSAGE_ESI = TPCANMessageType(0x10) # The PCAN message represents a FD error state indicator(CAN FD transmitter was error active) PCAN_MESSAGE_ERRFRAME = TPCANMessageType(0x40) # The PCAN message represents an error frame PCAN_MESSAGE_STATUS = TPCANMessageType(0x80) # The PCAN message represents a PCAN status message # Frame Type / Initialization Mode PCAN_MODE_STANDARD = PCAN_MESSAGE_STANDARD PCAN_MODE_EXTENDED = PCAN_MESSAGE_EXTENDED # Baud rate codes = BTR0/BTR1 register values for the CAN controller. # You can define your own Baud rate with the BTROBTR1 register. # Take a look at www.peak-system.com for our free software "BAUDTOOL" # to calculate the BTROBTR1 register for every bit rate and sample point. PCAN_BAUD_1M = TPCANBaudrate(0x0014) # 1 MBit/s PCAN_BAUD_800K = TPCANBaudrate(0x0016) # 800 kBit/s PCAN_BAUD_500K = TPCANBaudrate(0x001C) # 500 kBit/s PCAN_BAUD_250K = TPCANBaudrate(0x011C) # 250 kBit/s PCAN_BAUD_125K = TPCANBaudrate(0x031C) # 125 kBit/s PCAN_BAUD_100K = TPCANBaudrate(0x432F) # 100 kBit/s PCAN_BAUD_95K = TPCANBaudrate(0xC34E) # 95,238 kBit/s PCAN_BAUD_83K = TPCANBaudrate(0x852B) # 83,333 kBit/s PCAN_BAUD_50K = TPCANBaudrate(0x472F) # 50 kBit/s PCAN_BAUD_47K = TPCANBaudrate(0x1414) # 47,619 kBit/s PCAN_BAUD_33K = TPCANBaudrate(0x8B2F) # 33,333 kBit/s PCAN_BAUD_20K = TPCANBaudrate(0x532F) # 20 kBit/s PCAN_BAUD_10K = TPCANBaudrate(0x672F) # 10 kBit/s PCAN_BAUD_5K = TPCANBaudrate(0x7F7F) # 5 kBit/s # Represents the configuration for a CAN bit rate # Note: # * Each parameter and its value must be separated with a '='. # * Each pair of parameter/value must be separated using ','. # # Example: # f_clock=80000000,nom_brp=10,nom_tseg1=5,nom_tseg2=2,nom_sjw=1,data_brp=4,data_tseg1=7,data_tseg2=2,data_sjw=1 # PCAN_BR_CLOCK = TPCANBitrateFD(b"f_clock") PCAN_BR_CLOCK_MHZ = TPCANBitrateFD(b"f_clock_mhz") PCAN_BR_NOM_BRP = TPCANBitrateFD(b"nom_brp") PCAN_BR_NOM_TSEG1 = TPCANBitrateFD(b"nom_tseg1") PCAN_BR_NOM_TSEG2 = TPCANBitrateFD(b"nom_tseg2") PCAN_BR_NOM_SJW = TPCANBitrateFD(b"nom_sjw") PCAN_BR_NOM_SAMPLE = TPCANBitrateFD(b"nom_sam") PCAN_BR_DATA_BRP = TPCANBitrateFD(b"data_brp") PCAN_BR_DATA_TSEG1 = TPCANBitrateFD(b"data_tseg1") PCAN_BR_DATA_TSEG2 = TPCANBitrateFD(b"data_tseg2") PCAN_BR_DATA_SJW = TPCANBitrateFD(b"data_sjw") PCAN_BR_DATA_SAMPLE = TPCANBitrateFD(b"data_ssp_offset") # Supported No-Plug-And-Play Hardware types PCAN_TYPE_ISA = TPCANType(0x01) # PCAN-ISA 82C200 PCAN_TYPE_ISA_SJA = TPCANType(0x09) # PCAN-ISA SJA1000 PCAN_TYPE_ISA_PHYTEC = TPCANType(0x04) # PHYTEC ISA PCAN_TYPE_DNG = TPCANType(0x02) # PCAN-Dongle 82C200 PCAN_TYPE_DNG_EPP = TPCANType(0x03) # PCAN-Dongle EPP 82C200 PCAN_TYPE_DNG_SJA = TPCANType(0x05) # PCAN-Dongle SJA1000 PCAN_TYPE_DNG_SJA_EPP = TPCANType(0x06) # PCAN-Dongle EPP SJA1000 class TPCANMsg (Structure): """ Represents a PCAN message """ _fields_ = [ ("ID", c_uint), # 11/29-bit message identifier ("MSGTYPE", TPCANMessageType), # Type of the message ("LEN", c_ubyte), # Data Length Code of the message (0..8) ("DATA", c_ubyte * 8) ] # Data of the message (DATA[0]..DATA[7]) class TPCANMsgMac (Structure): """ Represents a PCAN message """ _fields_ = [ ("ID", c_ulong), # 11/29-bit message identifier - was changed from u_uint to c_ulong, so it is compatible with the PCAN-USB Driver for macOS ("MSGTYPE", TPCANMessageType), # Type of the message ("LEN", c_ubyte), # Data Length Code of the message (0..8) ("DATA", c_ubyte * 8) ] # Data of the message (DATA[0]..DATA[7]) class TPCANTimestamp (Structure): """ Represents a timestamp of a received PCAN message Total Microseconds = micros + 1000 * millis + 0x100000000 * 1000 * millis_overflow """ _fields_ = [ ("millis", c_uint), # Base-value: milliseconds: 0.. 2^32-1 ("millis_overflow", c_ushort), # Roll-arounds of millis ("micros", c_ushort) ] # Microseconds: 0..999 class TPCANTimestampMac (Structure): """ Represents a timestamp of a received PCAN message Total Microseconds = micros + 1000 * millis + 0x100000000 * 1000 * millis_overflow """ _fields_ = [ ("millis", c_ulong), # Base-value: milliseconds: 0.. 2^32-1 - was changed from u_uint to c_ulong, so it is compatible with the PCAN-USB Driver for macOS ("millis_overflow", c_ushort), # Roll-arounds of millis ("micros", c_ushort) ] # Microseconds: 0..999 class TPCANMsgFD (Structure): """ Represents a PCAN message """ _fields_ = [ ("ID", c_uint), # 11/29-bit message identifier ("MSGTYPE", TPCANMessageType), # Type of the message ("DLC", c_ubyte), # Data Length Code of the message (0..15) ("DATA", c_ubyte * 64) ] # Data of the message (DATA[0]..DATA[63]) class TPCANMsgFDMac (Structure): """ Represents a PCAN message """ _fields_ = [ ("ID", c_ulong), # 11/29-bit message identifier - was changed from u_uint to c_ulong, so it is compatible with the PCAN-USB Driver for macOS ("MSGTYPE", TPCANMessageType), # Type of the message ("DLC", c_ubyte), # Data Length Code of the message (0..15) ("DATA", c_ubyte * 64) ] # Data of the message (DATA[0]..DATA[63]) #/////////////////////////////////////////////////////////// # PCAN-Basic API function declarations #/////////////////////////////////////////////////////////// class PCANBasic: """PCAN-Basic API class implementation """ def __init__(self): # Loads the PCANBasic.dll if platform.system() == 'Windows': self.__m_dllBasic = windll.LoadLibrary("PCANBasic") elif platform.system() == 'Darwin': self.__m_dllBasic = cdll.LoadLibrary('libPCBUSB.dylib') else: self.__m_dllBasic = cdll.LoadLibrary("libpcanbasic.so") if self.__m_dllBasic == None: logger.error("Exception: The PCAN-Basic DLL couldn't be loaded!") def Initialize( self, Channel, Btr0Btr1, HwType = TPCANType(0), IOPort = c_uint(0), Interrupt = c_ushort(0)): """ Initializes a PCAN Channel Parameters: Channel : A TPCANHandle representing a PCAN Channel Btr0Btr1 : The speed for the communication (BTR0BTR1 code) HwType : NON PLUG&PLAY: The type of hardware and operation mode IOPort : NON PLUG&PLAY: The I/O address for the parallel port Interrupt: NON PLUG&PLAY: Interrupt number of the parallel port Returns: A TPCANStatus error code """ try: res = self.__m_dllBasic.CAN_Initialize(Channel,Btr0Btr1,HwType,IOPort,Interrupt) return TPCANStatus(res) except: logger.error("Exception on PCANBasic.Initialize") raise def InitializeFD( self, Channel, BitrateFD): """ Initializes a FD capable PCAN Channel Parameters: Channel : The handle of a FD capable PCAN Channel BitrateFD : The speed for the communication (FD bit rate string) Remarks: See PCAN_BR_* values. * parameter and values must be separated by '=' * Couples of Parameter/value must be separated by ',' * Following Parameter must be filled out: f_clock, data_brp, data_sjw, data_tseg1, data_tseg2, nom_brp, nom_sjw, nom_tseg1, nom_tseg2. * Following Parameters are optional (not used yet): data_ssp_offset, nom_samp Example: f_clock=80000000,nom_brp=10,nom_tseg1=5,nom_tseg2=2,nom_sjw=1,data_brp=4,data_tseg1=7,data_tseg2=2,data_sjw=1 Returns: A TPCANStatus error code """ try: res = self.__m_dllBasic.CAN_InitializeFD(Channel,BitrateFD) return TPCANStatus(res) except: logger.error("Exception on PCANBasic.InitializeFD") raise def Uninitialize( self, Channel): """ Uninitializes one or all PCAN Channels initialized by CAN_Initialize Remarks: Giving the TPCANHandle value "PCAN_NONEBUS", uninitialize all initialized channels Parameters: Channel : A TPCANHandle representing a PCAN Channel Returns: A TPCANStatus error code """ try: res = self.__m_dllBasic.CAN_Uninitialize(Channel) return TPCANStatus(res) except: logger.error("Exception on PCANBasic.Uninitialize") raise def Reset( self, Channel): """ Resets the receive and transmit queues of the PCAN Channel Remarks: A reset of the CAN controller is not performed Parameters: Channel : A TPCANHandle representing a PCAN Channel Returns: A TPCANStatus error code """ try: res = self.__m_dllBasic.CAN_Reset(Channel) return TPCANStatus(res) except: logger.error("Exception on PCANBasic.Reset") raise def GetStatus( self, Channel): """ Gets the current status of a PCAN Channel Parameters: Channel : A TPCANHandle representing a PCAN Channel Returns: A TPCANStatus error code """ try: res = self.__m_dllBasic.CAN_GetStatus(Channel) return TPCANStatus(res) except: logger.error("Exception on PCANBasic.GetStatus") raise def Read( self, Channel): """ Reads a CAN message from the receive queue of a PCAN Channel Remarks: The return value of this method is a 3-touple, where the first value is the result (TPCANStatus) of the method. The order of the values are: [0]: A TPCANStatus error code [1]: A TPCANMsg structure with the CAN message read [2]: A TPCANTimestamp structure with the time when a message was read Parameters: Channel : A TPCANHandle representing a PCAN Channel Returns: A touple with three values """ try: if platform.system() == 'Darwin': msg = TPCANMsgMac() timestamp = TPCANTimestampMac() else: msg = TPCANMsg() timestamp = TPCANTimestamp() res = self.__m_dllBasic.CAN_Read(Channel,byref(msg),byref(timestamp)) return TPCANStatus(res),msg,timestamp except: logger.error("Exception on PCANBasic.Read") raise def ReadFD( self, Channel): """ Reads a CAN message from the receive queue of a FD capable PCAN Channel Remarks: The return value of this method is a 3-touple, where the first value is the result (TPCANStatus) of the method. The order of the values are: [0]: A TPCANStatus error code [1]: A TPCANMsgFD structure with the CAN message read [2]: A TPCANTimestampFD that is the time when a message was read Parameters: Channel : The handle of a FD capable PCAN Channel Returns: A touple with three values """ try: if platform.system() == 'Darwin': msg = TPCANMsgFDMac() else: msg = TPCANMsgFD() timestamp = TPCANTimestampFD() res = self.__m_dllBasic.CAN_ReadFD(Channel,byref(msg),byref(timestamp)) return TPCANStatus(res),msg,timestamp except: logger.error("Exception on PCANBasic.ReadFD") raise def Write( self, Channel, MessageBuffer): """ Transmits a CAN message Parameters: Channel : A TPCANHandle representing a PCAN Channel MessageBuffer: A TPCANMsg representing the CAN message to be sent Returns: A TPCANStatus error code """ try: res = self.__m_dllBasic.CAN_Write(Channel,byref(MessageBuffer)) return TPCANStatus(res) except: logger.error("Exception on PCANBasic.Write") raise def WriteFD( self, Channel, MessageBuffer): """ Transmits a CAN message over a FD capable PCAN Channel Parameters: Channel : The handle of a FD capable PCAN Channel MessageBuffer: A TPCANMsgFD buffer with the message to be sent Returns: A TPCANStatus error code """ try: res = self.__m_dllBasic.CAN_WriteFD(Channel,byref(MessageBuffer)) return TPCANStatus(res) except: logger.error("Exception on PCANBasic.WriteFD") raise def FilterMessages( self, Channel, FromID, ToID, Mode): """ Configures the reception filter Remarks: The message filter will be expanded with every call to this function. If it is desired to reset the filter, please use the 'SetValue' function. Parameters: Channel : A TPCANHandle representing a PCAN Channel FromID : A c_uint value with the lowest CAN ID to be received ToID : A c_uint value with the highest CAN ID to be received Mode : A TPCANMode representing the message type (Standard, 11-bit identifier, or Extended, 29-bit identifier) Returns: A TPCANStatus error code """ try: res = self.__m_dllBasic.CAN_FilterMessages(Channel,FromID,ToID,Mode) return TPCANStatus(res) except: logger.error("Exception on PCANBasic.FilterMessages") raise def GetValue( self, Channel, Parameter): """ Retrieves a PCAN Channel value Remarks: Parameters can be present or not according with the kind of Hardware (PCAN Channel) being used. If a parameter is not available, a PCAN_ERROR_ILLPARAMTYPE error will be returned. The return value of this method is a 2-touple, where the first value is the result (TPCANStatus) of the method and the second one, the asked value Parameters: Channel : A TPCANHandle representing a PCAN Channel Parameter : The TPCANParameter parameter to get Returns: A touple with 2 values """ try: if Parameter == PCAN_API_VERSION or Parameter == PCAN_HARDWARE_NAME or Parameter == PCAN_CHANNEL_VERSION or Parameter == PCAN_LOG_LOCATION or Parameter == PCAN_TRACE_LOCATION or Parameter == PCAN_BITRATE_INFO_FD or Parameter == PCAN_IP_ADDRESS: mybuffer = create_string_buffer(256) else: mybuffer = c_int(0) res = self.__m_dllBasic.CAN_GetValue(Channel,Parameter,byref(mybuffer),sizeof(mybuffer)) return TPCANStatus(res),mybuffer.value except: logger.error("Exception on PCANBasic.GetValue") raise def SetValue( self, Channel, Parameter, Buffer): """ Returns a descriptive text of a given TPCANStatus error code, in any desired language Remarks: Parameters can be present or not according with the kind of Hardware (PCAN Channel) being used. If a parameter is not available, a PCAN_ERROR_ILLPARAMTYPE error will be returned. Parameters: Channel : A TPCANHandle representing a PCAN Channel Parameter : The TPCANParameter parameter to set Buffer : Buffer with the value to be set BufferLength : Size in bytes of the buffer Returns: A TPCANStatus error code """ try: if Parameter == PCAN_LOG_LOCATION or Parameter == PCAN_LOG_TEXT or Parameter == PCAN_TRACE_LOCATION: mybuffer = create_string_buffer(256) else: mybuffer = c_int(0) mybuffer.value = Buffer res = self.__m_dllBasic.CAN_SetValue(Channel,Parameter,byref(mybuffer),sizeof(mybuffer)) return TPCANStatus(res) except: logger.error("Exception on PCANBasic.SetValue") raise def GetErrorText( self, Error, Language = 0): """ Configures or sets a PCAN Channel value Remarks: The current languages available for translation are: Neutral (0x00), German (0x07), English (0x09), Spanish (0x0A), Italian (0x10) and French (0x0C) The return value of this method is a 2-touple, where the first value is the result (TPCANStatus) of the method and the second one, the error text Parameters: Error : A TPCANStatus error code Language : Indicates a 'Primary language ID' (Default is Neutral(0)) Returns: A touple with 2 values """ try: mybuffer = create_string_buffer(256) res = self.__m_dllBasic.CAN_GetErrorText(Error,Language,byref(mybuffer)) return TPCANStatus(res),mybuffer.value except: logger.error("Exception on PCANBasic.GetErrorText") raise python-can-3.3.2.final/can/interfaces/pcan/pcan.py000066400000000000000000000362501352572415400220050ustar00rootroot00000000000000# coding: utf-8 """ Enable basic CAN over a PCAN USB device. """ from __future__ import absolute_import, print_function, division import logging import sys import time import can from can import CanError, Message, BusABC from can.bus import BusState from can.util import len2dlc, dlc2len from .basic import * boottimeEpoch = 0 try: import uptime import datetime boottimeEpoch = (uptime.boottime() - datetime.datetime.utcfromtimestamp(0)).total_seconds() except: boottimeEpoch = 0 try: # Try builtin Python 3 Windows API from _overlapped import CreateEvent from _winapi import WaitForSingleObject, WAIT_OBJECT_0, INFINITE HAS_EVENTS = True except ImportError: try: # Try pywin32 package from win32event import CreateEvent from win32event import WaitForSingleObject, WAIT_OBJECT_0, INFINITE HAS_EVENTS = True except ImportError: # Use polling instead HAS_EVENTS = False try: # new in 3.3 timeout_clock = time.perf_counter except AttributeError: # deprecated in 3.3 timeout_clock = time.clock # Set up logging log = logging.getLogger('can.pcan') pcan_bitrate_objs = {1000000 : PCAN_BAUD_1M, 800000 : PCAN_BAUD_800K, 500000 : PCAN_BAUD_500K, 250000 : PCAN_BAUD_250K, 125000 : PCAN_BAUD_125K, 100000 : PCAN_BAUD_100K, 95000 : PCAN_BAUD_95K, 83000 : PCAN_BAUD_83K, 50000 : PCAN_BAUD_50K, 47000 : PCAN_BAUD_47K, 33000 : PCAN_BAUD_33K, 20000 : PCAN_BAUD_20K, 10000 : PCAN_BAUD_10K, 5000 : PCAN_BAUD_5K} pcan_fd_parameter_list = ['nom_brp', 'nom_tseg1', 'nom_tseg2', 'nom_sjw', 'data_brp', 'data_tseg1', 'data_tseg2', 'data_sjw'] class PcanBus(BusABC): def __init__(self, channel='PCAN_USBBUS1', state=BusState.ACTIVE, bitrate=500000, *args, **kwargs): """A PCAN USB interface to CAN. On top of the usual :class:`~can.Bus` methods provided, the PCAN interface includes the :meth:`~can.interface.pcan.PcanBus.flash` and :meth:`~can.interface.pcan.PcanBus.status` methods. :param str channel: The can interface name. An example would be 'PCAN_USBBUS1' Default is 'PCAN_USBBUS1' :param can.bus.BusState state: BusState of the channel. Default is ACTIVE :param int bitrate: Bitrate of channel in bit/s. Default is 500 kbit/s. Ignored if using CanFD. :param bool fd: Should the Bus be initialized in CAN-FD mode. :param int f_clock: Clock rate in Hz. Any of the following: 20000000, 24000000, 30000000, 40000000, 60000000, 80000000. Ignored if not using CAN-FD. Pass either f_clock or f_clock_mhz. :param int f_clock_mhz: Clock rate in MHz. Any of the following: 20, 24, 30, 40, 60, 80. Ignored if not using CAN-FD. Pass either f_clock or f_clock_mhz. :param int nom_brp: Clock prescaler for nominal time quantum. In the range (1..1024) Ignored if not using CAN-FD. :param int nom_tseg1: Time segment 1 for nominal bit rate, that is, the number of quanta from (but not including) the Sync Segment to the sampling point. In the range (1..256). Ignored if not using CAN-FD. :param int nom_tseg2: Time segment 2 for nominal bit rate, that is, the number of quanta from the sampling point to the end of the bit. In the range (1..128). Ignored if not using CAN-FD. :param int nom_sjw: Synchronization Jump Width for nominal bit rate. Decides the maximum number of time quanta that the controller can resynchronize every bit. In the range (1..128). Ignored if not using CAN-FD. :param int data_brp: Clock prescaler for fast data time quantum. In the range (1..1024) Ignored if not using CAN-FD. :param int data_tseg1: Time segment 1 for fast data bit rate, that is, the number of quanta from (but not including) the Sync Segment to the sampling point. In the range (1..32). Ignored if not using CAN-FD. :param int data_tseg2: Time segment 2 for fast data bit rate, that is, the number of quanta from the sampling point to the end of the bit. In the range (1..16). Ignored if not using CAN-FD. :param int data_sjw: Synchronization Jump Width for fast data bit rate. Decides the maximum number of time quanta that the controller can resynchronize every bit. In the range (1..16). Ignored if not using CAN-FD. """ self.channel_info = channel self.fd = kwargs.get('fd', False) pcan_bitrate = pcan_bitrate_objs.get(bitrate, PCAN_BAUD_500K) hwtype = PCAN_TYPE_ISA ioport = 0x02A0 interrupt = 11 self.m_objPCANBasic = PCANBasic() self.m_PcanHandle = globals()[channel] if state is BusState.ACTIVE or state is BusState.PASSIVE: self.state = state else: raise ArgumentError("BusState must be Active or Passive") if self.fd: f_clock_val = kwargs.get('f_clock', None) if f_clock_val is None: f_clock = "{}={}".format('f_clock_mhz', kwargs.get('f_clock_mhz', None)) else: f_clock = "{}={}".format('f_clock', kwargs.get('f_clock', None)) fd_parameters_values = [f_clock] + ["{}={}".format(key, kwargs.get(key, None)) for key in pcan_fd_parameter_list if kwargs.get(key, None) is not None] self.fd_bitrate = ' ,'.join(fd_parameters_values).encode("ascii") result = self.m_objPCANBasic.InitializeFD(self.m_PcanHandle, self.fd_bitrate) else: result = self.m_objPCANBasic.Initialize(self.m_PcanHandle, pcan_bitrate, hwtype, ioport, interrupt) if result != PCAN_ERROR_OK: raise PcanError(self._get_formatted_error(result)) if HAS_EVENTS: self._recv_event = CreateEvent(None, 0, 0, None) result = self.m_objPCANBasic.SetValue( self.m_PcanHandle, PCAN_RECEIVE_EVENT, self._recv_event) if result != PCAN_ERROR_OK: raise PcanError(self._get_formatted_error(result)) super(PcanBus, self).__init__(channel=channel, state=state, bitrate=bitrate, *args, **kwargs) def _get_formatted_error(self, error): """ Gets the text using the GetErrorText API function. If the function call succeeds, the translated error is returned. If it fails, a text describing the current error is returned. Multiple errors may be present in which case their individual messages are included in the return string, one line per error. """ def bits(n): """ Iterate over all the set bits in `n`, returning the masked bits at the set indices """ while n: # Create a mask to mask the lowest set bit in n mask = (~n + 1) masked_value = n & mask yield masked_value # Toggle the lowest set bit n ^= masked_value stsReturn = self.m_objPCANBasic.GetErrorText(error, 0) if stsReturn[0] != PCAN_ERROR_OK: strings = [] for b in bits(error): stsReturn = self.m_objPCANBasic.GetErrorText(b, 0) if stsReturn[0] != PCAN_ERROR_OK: text = "An error occurred. Error-code's text ({0:X}h) couldn't be retrieved".format(error) else: text = stsReturn[1].decode('utf-8', errors='replace') strings.append(text) complete_text = '\n'.join(strings) else: complete_text = stsReturn[1].decode('utf-8', errors='replace') return complete_text def status(self): """ Query the PCAN bus status. :rtype: int :return: The status code. See values in **basic.PCAN_ERROR_** """ return self.m_objPCANBasic.GetStatus(self.m_PcanHandle) def status_is_ok(self): """ Convenience method to check that the bus status is OK """ status = self.status() return status == PCAN_ERROR_OK def reset(self): """ Command the PCAN driver to reset the bus after an error. """ status = self.m_objPCANBasic.Reset(self.m_PcanHandle) return status == PCAN_ERROR_OK def _recv_internal(self, timeout): if HAS_EVENTS: # We will utilize events for the timeout handling timeout_ms = int(timeout * 1000) if timeout is not None else INFINITE elif timeout is not None: # Calculate max time end_time = timeout_clock() + timeout #log.debug("Trying to read a msg") result = None while result is None: if self.fd: result = self.m_objPCANBasic.ReadFD(self.m_PcanHandle) else: result = self.m_objPCANBasic.Read(self.m_PcanHandle) if result[0] == PCAN_ERROR_QRCVEMPTY: if HAS_EVENTS: result = None val = WaitForSingleObject(self._recv_event, timeout_ms) if val != WAIT_OBJECT_0: return None, False elif timeout is not None and timeout_clock() >= end_time: return None, False else: result = None time.sleep(0.001) elif result[0] & (PCAN_ERROR_BUSLIGHT | PCAN_ERROR_BUSHEAVY): log.warning(self._get_formatted_error(result[0])) return None, False elif result[0] != PCAN_ERROR_OK: raise PcanError(self._get_formatted_error(result[0])) theMsg = result[1] itsTimeStamp = result[2] #log.debug("Received a message") is_extended_id = (theMsg.MSGTYPE & PCAN_MESSAGE_EXTENDED.value) == PCAN_MESSAGE_EXTENDED.value is_remote_frame = (theMsg.MSGTYPE & PCAN_MESSAGE_RTR.value) == PCAN_MESSAGE_RTR.value is_fd = (theMsg.MSGTYPE & PCAN_MESSAGE_FD.value) == PCAN_MESSAGE_FD.value bitrate_switch = (theMsg.MSGTYPE & PCAN_MESSAGE_BRS.value) == PCAN_MESSAGE_BRS.value error_state_indicator = (theMsg.MSGTYPE & PCAN_MESSAGE_ESI.value) == PCAN_MESSAGE_ESI.value is_error_frame = (theMsg.MSGTYPE & PCAN_MESSAGE_ERRFRAME.value) == PCAN_MESSAGE_ERRFRAME.value if self.fd: dlc = dlc2len(theMsg.DLC) timestamp = boottimeEpoch + (itsTimeStamp.value / (1000.0 * 1000.0)) else: dlc = theMsg.LEN timestamp = boottimeEpoch + ((itsTimeStamp.micros + 1000 * itsTimeStamp.millis + 0x100000000 * 1000 * itsTimeStamp.millis_overflow) / (1000.0 * 1000.0)) rx_msg = Message(timestamp=timestamp, arbitration_id=theMsg.ID, is_extended_id=is_extended_id, is_remote_frame=is_remote_frame, is_error_frame=is_error_frame, dlc=dlc, data=theMsg.DATA[:dlc], is_fd=is_fd, bitrate_switch=bitrate_switch, error_state_indicator=error_state_indicator) return rx_msg, False def send(self, msg, timeout=None): msgType = PCAN_MESSAGE_EXTENDED.value if msg.is_extended_id else PCAN_MESSAGE_STANDARD.value if msg.is_remote_frame: msgType |= PCAN_MESSAGE_RTR.value if msg.is_error_frame: msgType |= PCAN_MESSAGE_ERRFRAME.value if msg.is_fd: msgType |= PCAN_MESSAGE_FD.value if msg.bitrate_switch: msgType |= PCAN_MESSAGE_BRS.value if msg.error_state_indicator: msgType |= PCAN_MESSAGE_ESI.value if self.fd: # create a TPCANMsg message structure if platform.system() == 'Darwin': CANMsg = TPCANMsgFDMac() else: CANMsg = TPCANMsgFD() # configure the message. ID, Length of data, message type and data CANMsg.ID = msg.arbitration_id CANMsg.DLC = len2dlc(msg.dlc) CANMsg.MSGTYPE = msgType # copy data for i in range(msg.dlc): CANMsg.DATA[i] = msg.data[i] log.debug("Data: %s", msg.data) log.debug("Type: %s", type(msg.data)) result = self.m_objPCANBasic.WriteFD(self.m_PcanHandle, CANMsg) else: # create a TPCANMsg message structure if platform.system() == 'Darwin': CANMsg = TPCANMsgMac() else: CANMsg = TPCANMsg() # configure the message. ID, Length of data, message type and data CANMsg.ID = msg.arbitration_id CANMsg.LEN = msg.dlc CANMsg.MSGTYPE = msgType # if a remote frame will be sent, data bytes are not important. if not msg.is_remote_frame: # copy data for i in range(CANMsg.LEN): CANMsg.DATA[i] = msg.data[i] log.debug("Data: %s", msg.data) log.debug("Type: %s", type(msg.data)) result = self.m_objPCANBasic.Write(self.m_PcanHandle, CANMsg) if result != PCAN_ERROR_OK: raise PcanError("Failed to send: " + self._get_formatted_error(result)) def flash(self, flash): """ Turn on or off flashing of the device's LED for physical identification purposes. """ self.m_objPCANBasic.SetValue(self.m_PcanHandle, PCAN_CHANNEL_IDENTIFYING, bool(flash)) def shutdown(self): super(PcanBus, self).shutdown() self.m_objPCANBasic.Uninitialize(self.m_PcanHandle) @property def state(self): return self._state @state.setter def state(self, new_state): self._state = new_state if new_state is BusState.ACTIVE: self.m_objPCANBasic.SetValue(self.m_PcanHandle, PCAN_LISTEN_ONLY, PCAN_PARAMETER_OFF) elif new_state is BusState.PASSIVE: # When this mode is set, the CAN controller does not take part on active events (eg. transmit CAN messages) # but stays in a passive mode (CAN monitor), in which it can analyse the traffic on the CAN bus used by a # PCAN channel. See also the Philips Data Sheet "SJA1000 Stand-alone CAN controller". self.m_objPCANBasic.SetValue(self.m_PcanHandle, PCAN_LISTEN_ONLY, PCAN_PARAMETER_ON) class PcanError(CanError): """ A generic error on a PCAN bus. """ pass python-can-3.3.2.final/can/interfaces/serial/000077500000000000000000000000001352572415400210425ustar00rootroot00000000000000python-can-3.3.2.final/can/interfaces/serial/__init__.py000066400000000000000000000001301352572415400231450ustar00rootroot00000000000000# coding: utf-8 """ """ from can.interfaces.serial.serial_can import SerialBus as Bus python-can-3.3.2.final/can/interfaces/serial/serial_can.py000066400000000000000000000114611352572415400235170ustar00rootroot00000000000000# coding: utf-8 """ A text based interface. For example use over serial ports like "/dev/ttyS1" or "/dev/ttyUSB0" on Linux machines or "COM1" on Windows. The interface is a simple implementation that has been used for recording CAN traces. """ from __future__ import absolute_import, division import logging import struct from can import BusABC, Message logger = logging.getLogger('can.serial') try: import serial except ImportError: logger.warning("You won't be able to use the serial can backend without " "the serial module installed!") serial = None class SerialBus(BusABC): """ Enable basic can communication over a serial device. .. note:: See :meth:`can.interfaces.serial.SerialBus._recv_internal` for some special semantics. """ def __init__(self, channel, baudrate=115200, timeout=0.1, rtscts=False, *args, **kwargs): """ :param str channel: The serial device to open. For example "/dev/ttyS1" or "/dev/ttyUSB0" on Linux or "COM1" on Windows systems. :param int baudrate: Baud rate of the serial device in bit/s (default 115200). .. warning:: Some serial port implementations don't care about the baudrate. :param float timeout: Timeout for the serial device in seconds (default 0.1). :param bool rtscts: turn hardware handshake (RTS/CTS) on and off """ if not channel: raise ValueError("Must specify a serial port.") self.channel_info = "Serial interface: " + channel self.ser = serial.serial_for_url( channel, baudrate=baudrate, timeout=timeout, rtscts=rtscts) super(SerialBus, self).__init__(channel=channel, *args, **kwargs) def shutdown(self): """ Close the serial interface. """ self.ser.close() def send(self, msg, timeout=None): """ Send a message over the serial device. :param can.Message msg: Message to send. .. note:: Flags like ``extended_id``, ``is_remote_frame`` and ``is_error_frame`` will be ignored. .. note:: If the timestamp is a float value it will be converted to an integer. :param timeout: This parameter will be ignored. The timeout value of the channel is used instead. """ try: timestamp = struct.pack(' # # struct bcm_timeval { # long tv_sec; # long tv_usec; # }; # # /** # * struct bcm_msg_head - head of messages to/from the broadcast manager # * @opcode: opcode, see enum below. # * @flags: special flags, see below. # * @count: number of frames to send before changing interval. # * @ival1: interval for the first @count frames. # * @ival2: interval for the following frames. # * @can_id: CAN ID of frames to be sent or received. # * @nframes: number of frames appended to the message head. # * @frames: array of CAN frames. # */ # struct bcm_msg_head { # __u32 opcode; # __u32 flags; # __u32 count; # struct bcm_timeval ival1, ival2; # canid_t can_id; # __u32 nframes; # struct can_frame frames[0]; # }; BcmMsgHead = bcm_header_factory( fields=[ ("opcode", ctypes.c_uint32), ("flags", ctypes.c_uint32), ("count", ctypes.c_uint32), ("ival1_tv_sec", ctypes.c_long), ("ival1_tv_usec", ctypes.c_long), ("ival2_tv_sec", ctypes.c_long), ("ival2_tv_usec", ctypes.c_long), ("can_id", ctypes.c_uint32), ("nframes", ctypes.c_uint32), ] ) # struct module defines a binary packing format: # https://docs.python.org/3/library/struct.html#struct-format-strings # The 32bit can id is directly followed by the 8bit data link count # The data field is aligned on an 8 byte boundary, hence we add padding # which aligns the data field to an 8 byte boundary. CAN_FRAME_HEADER_STRUCT = struct.Struct("=IBB2x") def build_can_frame(msg): """ CAN frame packing/unpacking (see 'struct can_frame' in ) /** * struct can_frame - basic CAN frame structure * @can_id: the CAN ID of the frame and CAN_*_FLAG flags, see above. * @can_dlc: the data length field of the CAN frame * @data: the CAN frame payload. */ struct can_frame { canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */ __u8 can_dlc; /* data length code: 0 .. 8 */ __u8 data[8] __attribute__((aligned(8))); }; /** * struct canfd_frame - CAN flexible data rate frame structure * @can_id: CAN ID of the frame and CAN_*_FLAG flags, see canid_t definition * @len: frame payload length in byte (0 .. CANFD_MAX_DLEN) * @flags: additional flags for CAN FD * @__res0: reserved / padding * @__res1: reserved / padding * @data: CAN FD frame payload (up to CANFD_MAX_DLEN byte) */ struct canfd_frame { canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */ __u8 len; /* frame payload length in byte */ __u8 flags; /* additional flags for CAN FD */ __u8 __res0; /* reserved / padding */ __u8 __res1; /* reserved / padding */ __u8 data[CANFD_MAX_DLEN] __attribute__((aligned(8))); }; """ can_id = _add_flags_to_can_id(msg) flags = 0 if msg.bitrate_switch: flags |= CANFD_BRS if msg.error_state_indicator: flags |= CANFD_ESI max_len = 64 if msg.is_fd else 8 data = bytes(msg.data).ljust(max_len, b'\x00') return CAN_FRAME_HEADER_STRUCT.pack(can_id, msg.dlc, flags) + data def build_bcm_header( opcode, flags, count, ival1_seconds, ival1_usec, ival2_seconds, ival2_usec, can_id, nframes, ): result = BcmMsgHead( opcode=opcode, flags=flags, count=count, ival1_tv_sec=ival1_seconds, ival1_tv_usec=ival1_usec, ival2_tv_sec=ival2_seconds, ival2_tv_usec=ival2_usec, can_id=can_id, nframes=nframes, ) return ctypes.string_at(ctypes.addressof(result), ctypes.sizeof(result)) def build_bcm_tx_delete_header(can_id, flags): opcode = CAN_BCM_TX_DELETE return build_bcm_header(opcode, flags, 0, 0, 0, 0, 0, can_id, 1) def build_bcm_transmit_header(can_id, count, initial_period, subsequent_period, msg_flags): opcode = CAN_BCM_TX_SETUP flags = msg_flags | SETTIMER | STARTTIMER if initial_period > 0: # Note `TX_COUNTEVT` creates the message TX_EXPIRED when count expires flags |= TX_COUNTEVT def split_time(value): """Given seconds as a float, return whole seconds and microseconds""" seconds = int(value) microseconds = int(1e6 * (value - seconds)) return seconds, microseconds ival1_seconds, ival1_usec = split_time(initial_period) ival2_seconds, ival2_usec = split_time(subsequent_period) nframes = 1 return build_bcm_header(opcode, flags, count, ival1_seconds, ival1_usec, ival2_seconds, ival2_usec, can_id, nframes) def build_bcm_update_header(can_id, msg_flags): return build_bcm_header(CAN_BCM_TX_SETUP, msg_flags, 0, 0, 0, 0, 0, can_id, 1) def dissect_can_frame(frame): can_id, can_dlc, flags = CAN_FRAME_HEADER_STRUCT.unpack_from(frame) if len(frame) != CANFD_MTU: # Flags not valid in non-FD frames flags = 0 return can_id, can_dlc, flags, frame[8:8+can_dlc] def create_bcm_socket(channel): """create a broadcast manager socket and connect to the given interface""" s = socket.socket(PF_CAN, socket.SOCK_DGRAM, CAN_BCM) if HAS_NATIVE_SUPPORT: s.connect((channel,)) else: addr = get_addr(s, channel) libc.connect(s.fileno(), addr, len(addr)) return s def send_bcm(bcm_socket, data): """ Send raw frame to a BCM socket and handle errors. """ try: return bcm_socket.send(data) except OSError as e: base = "Couldn't send CAN BCM frame. OS Error {}: {}\n".format(e.errno, e.strerror) if e.errno == errno.EINVAL: raise can.CanError(base + "You are probably referring to a non-existing frame.") elif e.errno == errno.ENETDOWN: raise can.CanError(base + "The CAN interface appears to be down.") elif e.errno == errno.EBADF: raise can.CanError(base + "The CAN socket appears to be closed.") else: raise e def _add_flags_to_can_id(message): can_id = message.arbitration_id if message.is_extended_id: log.debug("sending an extended id type message") can_id |= CAN_EFF_FLAG if message.is_remote_frame: log.debug("requesting a remote frame") can_id |= CAN_RTR_FLAG if message.is_error_frame: log.debug("sending error frame") can_id |= CAN_ERR_FLAG return can_id class CyclicSendTask(LimitedDurationCyclicSendTaskABC, ModifiableCyclicTaskABC, RestartableCyclicTaskABC): """ A socketcan cyclic send task supports: - setting of a task duration - modifying the data - stopping then subsequent restarting of the task """ def __init__(self, bcm_socket, message, period, duration=None): """ :param bcm_socket: An open bcm socket on the desired CAN channel. :param can.Message message: The message to be sent periodically. :param float period: The rate in seconds at which to send the message. :param float duration: Approximate duration in seconds to send the message. """ super(CyclicSendTask, self).__init__(message, period, duration) self.bcm_socket = bcm_socket self.duration = duration self._tx_setup(message) self.message = message def _tx_setup(self, message): # Create a low level packed frame to pass to the kernel self.can_id_with_flags = _add_flags_to_can_id(message) self.flags = CAN_FD_FRAME if message.is_fd else 0 if self.duration: count = int(self.duration / self.period) ival1 = self.period ival2 = 0 else: count = 0 ival1 = 0 ival2 = self.period header = build_bcm_transmit_header(self.can_id_with_flags, count, ival1, ival2, self.flags) frame = build_can_frame(message) log.debug("Sending BCM command") send_bcm(self.bcm_socket, header + frame) def stop(self): """Send a TX_DELETE message to cancel this task. This will delete the entry for the transmission of the CAN-message with the specified can_id CAN identifier. The message length for the command TX_DELETE is {[bcm_msg_head]} (only the header). """ log.debug("Stopping periodic task") stopframe = build_bcm_tx_delete_header(self.can_id_with_flags, self.flags) send_bcm(self.bcm_socket, stopframe) def modify_data(self, message): """Update the contents of this periodically sent message. Note the Message must have the same :attr:`~can.Message.arbitration_id` like the first message. """ assert message.arbitration_id == self.can_id, "You cannot modify the can identifier" self.message = message header = build_bcm_update_header(self.can_id_with_flags, self.flags) frame = build_can_frame(message) send_bcm(self.bcm_socket, header + frame) def start(self): self._tx_setup(self.message) class MultiRateCyclicSendTask(CyclicSendTask): """Exposes more of the full power of the TX_SETUP opcode. """ def __init__(self, channel, message, count, initial_period, subsequent_period): super(MultiRateCyclicSendTask, self).__init__(channel, message, subsequent_period) # Create a low level packed frame to pass to the kernel frame = build_can_frame(message) header = build_bcm_transmit_header( self.can_id_with_flags, count, initial_period, subsequent_period, self.flags) log.info("Sending BCM TX_SETUP command") send_bcm(self.bcm_socket, header + frame) def create_socket(): """Creates a raw CAN socket. The socket will be returned unbound to any interface. """ sock = socket.socket(PF_CAN, socket.SOCK_RAW, CAN_RAW) log.info('Created a socket') return sock def bind_socket(sock, channel='can0'): """ Binds the given socket to the given interface. :param socket.socket sock: The socket to be bound :raises OSError: If the specified interface isn't found. """ log.debug('Binding socket to channel=%s', channel) if HAS_NATIVE_SUPPORT: sock.bind((channel,)) else: # For Python 2.7 addr = get_addr(sock, channel) libc.bind(sock.fileno(), addr, len(addr)) log.debug('Bound socket.') def capture_message(sock, get_channel=False): """ Captures a message from given socket. :param socket.socket sock: The socket to read a message from. :param bool get_channel: Find out which channel the message comes from. :return: The received message, or None on failure. """ # Fetching the Arb ID, DLC and Data try: if get_channel: if HAS_NATIVE_SUPPORT: cf, addr = sock.recvfrom(CANFD_MTU) channel = addr[0] if isinstance(addr, tuple) else addr else: data = ctypes.create_string_buffer(CANFD_MTU) addr = ctypes.create_string_buffer(32) addrlen = ctypes.c_int(len(addr)) received = libc.recvfrom(sock.fileno(), data, len(data), 0, addr, ctypes.byref(addrlen)) cf = data.raw[:received] # Figure out the channel name family, ifindex = struct.unpack_from("Hi", addr.raw) assert family == AF_CAN data = struct.pack("16xi", ifindex) res = fcntl.ioctl(sock, SIOCGIFNAME, data) channel = ctypes.create_string_buffer(res).value.decode() else: cf = sock.recv(CANFD_MTU) channel = None except socket.error as exc: raise can.CanError("Error receiving: %s" % exc) can_id, can_dlc, flags, data = dissect_can_frame(cf) #log.debug('Received: can_id=%x, can_dlc=%x, data=%s', can_id, can_dlc, data) # Fetching the timestamp binary_structure = "@LL" res = fcntl.ioctl(sock, SIOCGSTAMP, struct.pack(binary_structure, 0, 0)) seconds, microseconds = struct.unpack(binary_structure, res) timestamp = seconds + microseconds * 1e-6 # EXT, RTR, ERR flags -> boolean attributes # /* special address description flags for the CAN_ID */ # #define CAN_EFF_FLAG 0x80000000U /* EFF/SFF is set in the MSB */ # #define CAN_RTR_FLAG 0x40000000U /* remote transmission request */ # #define CAN_ERR_FLAG 0x20000000U /* error frame */ is_extended_frame_format = bool(can_id & CAN_EFF_FLAG) is_remote_transmission_request = bool(can_id & CAN_RTR_FLAG) is_error_frame = bool(can_id & CAN_ERR_FLAG) is_fd = len(cf) == CANFD_MTU bitrate_switch = bool(flags & CANFD_BRS) error_state_indicator = bool(flags & CANFD_ESI) if is_extended_frame_format: #log.debug("CAN: Extended") # TODO does this depend on SFF or EFF? arbitration_id = can_id & 0x1FFFFFFF else: #log.debug("CAN: Standard") arbitration_id = can_id & 0x000007FF msg = Message(timestamp=timestamp, channel=channel, arbitration_id=arbitration_id, is_extended_id=is_extended_frame_format, is_remote_frame=is_remote_transmission_request, is_error_frame=is_error_frame, is_fd=is_fd, bitrate_switch=bitrate_switch, error_state_indicator=error_state_indicator, dlc=can_dlc, data=data) #log_rx.debug('Received: %s', msg) return msg class SocketcanBus(BusABC): """ Implements :meth:`can.BusABC._detect_available_configs`. """ def __init__(self, channel="", receive_own_messages=False, fd=False, **kwargs): """ :param str channel: The can interface name with which to create this bus. An example channel would be 'vcan0' or 'can0'. An empty string '' will receive messages from all channels. In that case any sent messages must be explicitly addressed to a channel using :attr:`can.Message.channel`. :param bool receive_own_messages: If transmitted messages should also be received by this bus. :param bool fd: If CAN-FD frames should be supported. :param list can_filters: See :meth:`can.BusABC.set_filters`. """ self.socket = create_socket() self.channel = channel self.channel_info = "socketcan channel '%s'" % channel self._bcm_sockets = {} # set the receive_own_messages parameter try: self.socket.setsockopt(SOL_CAN_RAW, CAN_RAW_RECV_OWN_MSGS, 1 if receive_own_messages else 0) except socket.error as e: log.error("Could not receive own messages (%s)", e) if fd: # TODO handle errors self.socket.setsockopt(SOL_CAN_RAW, CAN_RAW_FD_FRAMES, 1) # Enable error frames self.socket.setsockopt(SOL_CAN_RAW, CAN_RAW_ERR_FILTER, 0x1FFFFFFF) bind_socket(self.socket, channel) kwargs.update({'receive_own_messages': receive_own_messages, 'fd': fd}) super(SocketcanBus, self).__init__(channel=channel, **kwargs) def shutdown(self): """Stops all active periodic tasks and closes the socket.""" self.stop_all_periodic_tasks() for channel in self._bcm_sockets: log.debug("Closing bcm socket for channel {}".format(channel)) bcm_socket = self._bcm_sockets[channel] bcm_socket.close() log.debug("Closing raw can socket") self.socket.close() def _recv_internal(self, timeout): # get all sockets that are ready (can be a list with a single value # being self.socket or an empty list if self.socket is not ready) try: # get all sockets that are ready (can be a list with a single value # being self.socket or an empty list if self.socket is not ready) ready_receive_sockets, _, _ = select.select([self.socket], [], [], timeout) except socket.error as exc: # something bad happened (e.g. the interface went down) raise can.CanError("Failed to receive: %s" % exc) if ready_receive_sockets: # not empty or True get_channel = self.channel == "" msg = capture_message(self.socket, get_channel) if not msg.channel and self.channel: # Default to our own channel msg.channel = self.channel return msg, self._is_filtered else: # socket wasn't readable or timeout occurred return None, self._is_filtered def send(self, msg, timeout=None): """Transmit a message to the CAN bus. :param can.Message msg: A message object. :param float timeout: Wait up to this many seconds for the transmit queue to be ready. If not given, the call may fail immediately. :raises can.CanError: if the message could not be written. """ log.debug("We've been asked to write a message to the bus") logger_tx = log.getChild("tx") logger_tx.debug("sending: %s", msg) started = time.time() # If no timeout is given, poll for availability if timeout is None: timeout = 0 time_left = timeout data = build_can_frame(msg) while time_left >= 0: # Wait for write availability ready = select.select([], [self.socket], [], time_left)[1] if not ready: # Timeout break sent = self._send_once(data, msg.channel) if sent == len(data): return # Not all data were sent, try again with remaining data data = data[sent:] time_left = timeout - (time.time() - started) raise can.CanError("Transmit buffer full") def _send_once(self, data, channel=None): try: if self.channel == "" and channel: # Message must be addressed to a specific channel if HAS_NATIVE_SUPPORT: sent = self.socket.sendto(data, (channel, )) else: addr = get_addr(self.socket, channel) sent = libc.sendto(self.socket.fileno(), data, len(data), 0, addr, len(addr)) else: sent = self.socket.send(data) except socket.error as exc: raise can.CanError("Failed to transmit: %s" % exc) return sent def _send_periodic_internal(self, msg, period, duration=None): """Start sending a message at a given period on this bus. The kernel's broadcast manager will be used. :param can.Message msg: Message to transmit :param float period: Period in seconds between each message :param float duration: The duration to keep sending this message at given rate. If no duration is provided, the task will continue indefinitely. :return: A started task instance. This can be used to modify the data, pause/resume the transmission and to stop the transmission. :rtype: can.interfaces.socketcan.CyclicSendTask .. note:: Note the duration before the message stops being sent may not be exactly the same as the duration specified by the user. In general the message will be sent at the given rate until at least *duration* seconds. """ bcm_socket = self._get_bcm_socket(msg.channel or self.channel) task = CyclicSendTask(bcm_socket, msg, period, duration) return task def _get_bcm_socket(self, channel): if channel not in self._bcm_sockets: self._bcm_sockets[channel] = create_bcm_socket(self.channel) return self._bcm_sockets[channel] def _apply_filters(self, filters): try: self.socket.setsockopt(SOL_CAN_RAW, CAN_RAW_FILTER, pack_filters(filters)) except socket.error as err: # fall back to "software filtering" (= not in kernel) self._is_filtered = False # TODO Is this serious enough to raise a CanError exception? log.error('Setting filters failed; falling back to software filtering (not in kernel): %s', err) else: self._is_filtered = True def fileno(self): return self.socket.fileno() @staticmethod def _detect_available_configs(): return [{'interface': 'socketcan', 'channel': channel} for channel in find_available_interfaces()] if __name__ == "__main__": # TODO move below to examples? # Create two sockets on vcan0 to test send and receive # # If you want to try it out you can do the following (possibly using sudo): # # modprobe vcan # ip link add dev vcan0 type vcan # ifconfig vcan0 up # log.setLevel(logging.DEBUG) def receiver(event): receiver_socket = create_socket() bind_socket(receiver_socket, 'vcan0') print("Receiver is waiting for a message...") event.set() print("Receiver got: ", capture_message(receiver_socket)) def sender(event): event.wait() sender_socket = create_socket() bind_socket(sender_socket, 'vcan0') msg = Message(arbitration_id=0x01, data=b'\x01\x02\x03') sender_socket.send(build_can_frame(msg)) print("Sender sent a message.") import threading e = threading.Event() threading.Thread(target=receiver, args=(e,)).start() threading.Thread(target=sender, args=(e,)).start() python-can-3.3.2.final/can/interfaces/socketcan/utils.py000066400000000000000000000053101352572415400232460ustar00rootroot00000000000000# coding: utf-8 """ Defines common socketcan functions. """ import logging import os import errno import struct import sys import subprocess import re from can.interfaces.socketcan.constants import CAN_EFF_FLAG log = logging.getLogger(__name__) def pack_filters(can_filters=None): if can_filters is None: # Pass all messages can_filters = [{ 'can_id': 0, 'can_mask': 0 }] can_filter_fmt = "={}I".format(2 * len(can_filters)) filter_data = [] for can_filter in can_filters: can_id = can_filter['can_id'] can_mask = can_filter['can_mask'] if 'extended' in can_filter: # Match on either 11-bit OR 29-bit messages instead of both can_mask |= CAN_EFF_FLAG if can_filter['extended']: can_id |= CAN_EFF_FLAG filter_data.append(can_id) filter_data.append(can_mask) return struct.pack(can_filter_fmt, *filter_data) _PATTERN_CAN_INTERFACE = re.compile(r"v?can\d+") def find_available_interfaces(): """Returns the names of all open can/vcan interfaces using the ``ip link list`` command. If the lookup fails, an error is logged to the console and an empty list is returned. :rtype: an iterable of :class:`str` """ try: # it might be good to add "type vcan", but that might (?) exclude physical can devices command = ["ip", "-o", "link", "list", "up"] output = subprocess.check_output(command, universal_newlines=True) except Exception as e: # subprocess.CalledProcessError was too specific log.error("failed to fetch opened can devices: %s", e) return [] else: #log.debug("find_available_interfaces(): output=\n%s", output) # output contains some lines like "1: vcan42: ..." # extract the "vcan42" of each line interface_names = [line.split(": ", 3)[1] for line in output.splitlines()] log.debug("find_available_interfaces(): detected: %s", interface_names) return filter(_PATTERN_CAN_INTERFACE.match, interface_names) def error_code_to_str(code): """ Converts a given error code (errno) to a useful and human readable string. :param int code: a possibly invalid/unknown error code :rtype: str :returns: a string explaining and containing the given error code, or a string explaining that the errorcode is unknown if that is the case """ try: name = errno.errorcode[code] except KeyError: name = "UNKNOWN" try: description = os.strerror(code) except ValueError: description = "no description available" return "{} (errno {}): {}".format(name, code, description) python-can-3.3.2.final/can/interfaces/systec/000077500000000000000000000000001352572415400210755ustar00rootroot00000000000000python-can-3.3.2.final/can/interfaces/systec/__init__.py000066400000000000000000000001141352572415400232020ustar00rootroot00000000000000# coding: utf-8 """ """ from can.interfaces.systec.ucanbus import UcanBus python-can-3.3.2.final/can/interfaces/systec/constants.py000066400000000000000000000543301352572415400234700ustar00rootroot00000000000000# coding: utf-8 from ctypes import c_ubyte as BYTE, c_ushort as WORD, c_ulong as DWORD #: Maximum number of modules that are supported. MAX_MODULES = 64 #: Maximum number of applications that can use the USB-CAN-library. MAX_INSTANCES = 64 #: With the method :meth:`UcanServer.init_can` the module is used, which is detected at first. #: This value only should be used in case only one module is connected to the computer. ANY_MODULE = 255 #: No valid USB-CAN Handle (only used internally). INVALID_HANDLE = 0xFF class Baudrate(WORD): """ Specifies pre-defined baud rate values for GW-001, GW-002 and all systec USB-CANmoduls. .. seealso:: :meth:`UcanServer.init_can` :meth:`UcanServer.set_baudrate` :meth:`UcanServer.get_baudrate_message` :class:`BaudrateEx` """ #: 1000 kBit/sec BAUD_1MBit = 0x14 #: 800 kBit/sec BAUD_800kBit = 0x16 #: 500 kBit/sec BAUD_500kBit = 0x1C #: 250 kBit/sec BAUD_250kBit = 0x11C #: 125 kBit/sec BAUD_125kBit = 0x31C #: 100 kBit/sec BAUD_100kBit = 0x432F #: 50 kBit/sec BAUD_50kBit = 0x472F #: 20 kBit/sec BAUD_20kBit = 0x532F #: 10 kBit/sec BAUD_10kBit = 0x672F #: Uses pre-defined extended values of baudrate for all systec USB-CANmoduls. BAUD_USE_BTREX = 0x0 #: Automatic baud rate detection (not implemented in this version). BAUD_AUTO = -1 class BaudrateEx(DWORD): """ Specifies pre-defined baud rate values for all systec USB-CANmoduls. These values cannot be used for GW-001 and GW-002! Use values from enum :class:`Baudrate` instead. .. seealso:: :meth:`UcanServer.init_can` :meth:`UcanServer.set_baudrate` :meth:`UcanServer.get_baudrate_ex_message` :class:`Baudrate` """ #: G3: 1000 kBit/sec BAUDEX_1MBit = 0x20354 #: G3: 800 kBit/sec BAUDEX_800kBit = 0x30254 #: G3: 500 kBit/sec BAUDEX_500kBit = 0x50354 #: G3: 250 kBit/sec BAUDEX_250kBit = 0xB0354 #: G3: 125 kBit/sec BAUDEX_125kBit = 0x170354 #: G3: 100 kBit/sec BAUDEX_100kBit = 0x170466 #: G3: 50 kBit/sec BAUDEX_50kBit = 0x2F0466 #: G3: 20 kBit/sec BAUDEX_20kBit = 0x770466 #: G3: 10 kBit/sec (half CPU clock) BAUDEX_10kBit = 0x80770466 #: G3: 1000 kBit/sec Sample Point: 87,50% BAUDEX_SP2_1MBit = 0x20741 #: G3: 800 kBit/sec Sample Point: 86,67% BAUDEX_SP2_800kBit = 0x30731 #: G3: 500 kBit/sec Sample Point: 87,50% BAUDEX_SP2_500kBit = 0x50741 #: G3: 250 kBit/sec Sample Point: 87,50% BAUDEX_SP2_250kBit = 0xB0741 #: G3: 125 kBit/sec Sample Point: 87,50% BAUDEX_SP2_125kBit = 0x170741 #: G3: 100 kBit/sec Sample Point: 87,50% BAUDEX_SP2_100kBit = 0x1D1741 #: G3: 50 kBit/sec Sample Point: 87,50% BAUDEX_SP2_50kBit = 0x3B1741 #: G3: 20 kBit/sec Sample Point: 85,00% BAUDEX_SP2_20kBit = 0x771772 #: G3: 10 kBit/sec Sample Point: 85,00% (half CPU clock) BAUDEX_SP2_10kBit = 0x80771772 #: G4: 1000 kBit/sec Sample Point: 83,33% BAUDEX_G4_1MBit = 0x406F0000 #: G4: 800 kBit/sec Sample Point: 80,00% BAUDEX_G4_800kBit = 0x402A0001 #: G4: 500 kBit/sec Sample Point: 83,33% BAUDEX_G4_500kBit = 0x406F0001 #: G4: 250 kBit/sec Sample Point: 83,33% BAUDEX_G4_250kBit = 0x406F0003 #: G4: 125 kBit/sec Sample Point: 83,33% BAUDEX_G4_125kBit = 0x406F0007 #: G4: 100 kBit/sec Sample Point: 83,33% BAUDEX_G4_100kBit = 0x416F0009 #: G4: 50 kBit/sec Sample Point: 83,33% BAUDEX_G4_50kBit = 0x416F0013 #: G4: 20 kBit/sec Sample Point: 84,00% BAUDEX_G4_20kBit = 0x417F002F #: G4: 10 kBit/sec Sample Point: 84,00% (half CPU clock) BAUDEX_G4_10kBit = 0x417F005F #: Uses pre-defined values of baud rates of :class:`Baudrate`. BAUDEX_USE_BTR01 = 0x0 #: Automatic baud rate detection (not implemented in this version). BAUDEX_AUTO = 0xFFFFFFFF class MsgFrameFormat(BYTE): """ Specifies values for the frame format of CAN messages for member :attr:`CanMsg.m_bFF` in structure :class:`CanMsg`. These values can be combined. .. seealso:: :class:`CanMsg` """ #: standard CAN data frame with 11 bit ID (CAN2.0A spec.) MSG_FF_STD = 0x0 #: transmit echo MSG_FF_ECHO = 0x20 #: CAN remote request frame with MSG_FF_RTR = 0x40 #: extended CAN data frame with 29 bit ID (CAN2.0B spec.) MSG_FF_EXT = 0x80 class ReturnCode(BYTE): """ Specifies all return codes of all methods of this class. """ #: no error SUCCESSFUL = 0x0 # start of error codes coming from USB-CAN-library ERR = 0x1 # start of error codes coming from command interface between host and USB-CANmodul ERRCMD = 0x40 # start of warning codes WARNING = 0x80 # start of reserved codes which are only used internally RESERVED = 0xC0 #: could not created a resource (memory, handle, ...) ERR_RESOURCE = 0x1 #: the maximum number of opened modules is reached ERR_MAXMODULES = 0x2 #: the specified module is already in use ERR_HWINUSE = 0x3 #: the software versions of the module and library are incompatible ERR_ILLVERSION = 0x4 #: the module with the specified device number is not connected (or used by an other application) ERR_ILLHW = 0x5 #: wrong USB-CAN-Handle handed over to the function ERR_ILLHANDLE = 0x6 #: wrong parameter handed over to the function ERR_ILLPARAM = 0x7 #: instruction can not be processed at this time ERR_BUSY = 0x8 #: no answer from module ERR_TIMEOUT = 0x9 #: a request to the driver failed ERR_IOFAILED = 0xA #: a CAN message did not fit into the transmit buffer ERR_DLL_TXFULL = 0xB #: maximum number of applications is reached ERR_MAXINSTANCES = 0xC #: CAN interface is not yet initialized ERR_CANNOTINIT = 0xD #: USB-CANmodul was disconnected ERR_DISCONECT = 0xE #: the needed device class does not exist ERR_NOHWCLASS = 0xF #: illegal CAN channel ERR_ILLCHANNEL = 0x10 #: reserved ERR_RESERVED1 = 0x11 #: the API function can not be used with this hardware ERR_ILLHWTYPE = 0x12 #: the received response does not match to the transmitted command ERRCMD_NOTEQU = 0x40 #: no access to the CAN controller ERRCMD_REGTST = 0x41 #: the module could not interpret the command ERRCMD_ILLCMD = 0x42 #: error while reading the EEPROM ERRCMD_EEPROM = 0x43 #: reserved ERRCMD_RESERVED1 = 0x44 #: reserved ERRCMD_RESERVED2 = 0x45 #: reserved ERRCMD_RESERVED3 = 0x46 #: illegal baud rate value specified in BTR0/BTR1 for systec USB-CANmoduls ERRCMD_ILLBDR = 0x47 #: CAN channel is not initialized ERRCMD_NOTINIT = 0x48 #: CAN channel is already initialized ERRCMD_ALREADYINIT = 0x49 #: illegal sub-command specified ERRCMD_ILLSUBCMD = 0x4A #: illegal index specified (e.g. index for cyclic CAN messages) ERRCMD_ILLIDX = 0x4B #: cyclic CAN message(s) can not be defined because transmission of cyclic CAN messages is already running ERRCMD_RUNNING = 0x4C #: no CAN messages received WARN_NODATA = 0x80 #: overrun in receive buffer of the kernel driver WARN_SYS_RXOVERRUN = 0x81 #: overrun in receive buffer of the USB-CAN-library WARN_DLL_RXOVERRUN = 0x82 #: reserved WARN_RESERVED1 = 0x83 #: reserved WARN_RESERVED2 = 0x84 #: overrun in transmit buffer of the firmware (but this CAN message was successfully stored in buffer of the #: library) WARN_FW_TXOVERRUN = 0x85 #: overrun in receive buffer of the firmware (but this CAN message was successfully read) WARN_FW_RXOVERRUN = 0x86 #: reserved WARN_FW_TXMSGLOST = 0x87 #: pointer is NULL WARN_NULL_PTR = 0x90 #: not all CAN messages could be stored to the transmit buffer in USB-CAN-library (check output of parameter #: pdwCount_p) WARN_TXLIMIT = 0x91 #: reserved WARN_BUSY = 0x92 class CbEvent(BYTE): """ This enum defines events for the callback functions of the library. .. seealso:: :meth:`UcanServer.get_status` """ #: The USB-CANmodul has been initialized. EVENT_INITHW = 0 #: The CAN interface has been initialized. EVENT_init_can = 1 #: A new CAN message has been received. EVENT_RECEIVE = 2 #: The error state in the module has changed. EVENT_STATUS = 3 #: The CAN interface has been deinitialized. EVENT_DEINIT_CAN = 4 #: The USB-CANmodul has been deinitialized. EVENT_DEINITHW = 5 #: A new USB-CANmodul has been connected. EVENT_CONNECT = 6 #: Any USB-CANmodul has been disconnected. EVENT_DISCONNECT = 7 #: A USB-CANmodul has been disconnected during operation. EVENT_FATALDISCON = 8 #: Reserved EVENT_RESERVED1 = 0x80 class CanStatus(WORD): """ CAN error status bits. These bit values occurs in combination with the method :meth:`UcanServer.get_status`. .. seealso:: :meth:`UcanServer.get_status` :meth:`UcanServer.get_can_status_message` """ #: No error. CANERR_OK = 0x0 #: Transmit buffer of the CAN controller is full. CANERR_XMTFULL = 0x1 #: Receive buffer of the CAN controller is full. CANERR_OVERRUN = 0x2 #: Bus error: Error Limit 1 exceeded (Warning Limit reached) CANERR_BUSLIGHT = 0x4 #: Bus error: Error Limit 2 exceeded (Error Passive) CANERR_BUSHEAVY = 0x8 #: Bus error: CAN controller has gone into Bus-Off state. #: Method :meth:`UcanServer.reset_can` has to be called. CANERR_BUSOFF = 0x10 #: No CAN message is within the receive buffer. CANERR_QRCVEMPTY = 0x20 #: Receive buffer is full. CAN messages has been lost. CANERR_QOVERRUN = 0x40 #: Transmit buffer is full. CANERR_QXMTFULL = 0x80 #: Register test of the CAN controller failed. CANERR_REGTEST = 0x100 #: Memory test on hardware failed. CANERR_MEMTEST = 0x200 #: Transmit CAN message(s) was/were automatically deleted by firmware (transmit timeout). CANERR_TXMSGLOST = 0x400 class UsbStatus(WORD): """ USB error status bits. These bit values occurs in combination with the method :meth:`UcanServer.get_status`. .. seealso:: :meth:`UcanServer.get_status` """ #: No error. USBERR_OK = 0x0 #: Specifies the acceptance mask for receiving all CAN messages. #: #: .. seealso:: #: #: :const:`ACR_ALL` #: #: :meth:`UcanServer.init_can` #: #: :meth:`UcanServer.set_acceptance` AMR_ALL = 0xFFFFFFFF #: Specifies the acceptance code for receiving all CAN messages. #: #: .. seealso:: #: #: :const:`AMR_ALL` #: #: :meth:`UcanServer.init_can` #: #: :meth:`UcanServer.set_acceptance` ACR_ALL = 0x0 class OutputControl(BYTE): """ Specifies pre-defined values for the Output Control Register of SJA1000 on GW-001 and GW-002. These values are only important for GW-001 and GW-002. They does not have an effect on systec USB-CANmoduls. """ #: default OCR value for the standard USB-CANmodul GW-001/GW-002 OCR_DEFAULT = 0x1A #: OCR value for RS485 interface and galvanic isolation OCR_RS485_ISOLATED = 0x1E #: OCR value for RS485 interface but without galvanic isolation OCR_RS485_NOT_ISOLATED = 0xA #: Specifies the default value for the maximum number of entries in the receive and transmit buffer. DEFAULT_BUFFER_ENTRIES = 4096 class Channel(BYTE): """ Specifies values for the CAN channel to be used on multi-channel USB-CANmoduls. """ #: Specifies the first CAN channel (GW-001/GW-002 and USB-CANmodul1 only can be used with this channel). CHANNEL_CH0 = 0 #: Specifies the second CAN channel (this channel cannot be used with GW-001/GW-002 and USB-CANmodul1). CHANNEL_CH1 = 1 #: Specifies all CAN channels (can only be used with the method :meth:`UcanServer.shutdown`). CHANNEL_ALL = 254 #: Specifies the use of any channel (can only be used with the method :meth:`UcanServer.read_can_msg`). CHANNEL_ANY = 255 #: Specifies the first CAN channel (equivalent to :data:`CHANNEL_CH0`). CHANNEL_CAN1 = CHANNEL_CH0 #: Specifies the second CAN channel (equivalent to :data:`CHANNEL_CH1`). CHANNEL_CAN2 = CHANNEL_CH1 #: Specifies the LIN channel (currently not supported by the software). CHANNEL_LIN = CHANNEL_CH1 class ResetFlags(DWORD): """ Specifies flags for resetting USB-CANmodul with method :meth:`UcanServer.reset_can`. These flags can be used in combination. .. seealso:: :meth:`UcanServer.reset_can` """ #: reset everything RESET_ALL = 0x0 #: no CAN status reset (only supported for systec USB-CANmoduls) RESET_NO_STATUS = 0x1 #: no CAN controller reset RESET_NO_CANCTRL = 0x2 #: no transmit message counter reset RESET_NO_TXCOUNTER = 0x4 #: no receive message counter reset RESET_NO_RXCOUNTER = 0x8 #: no transmit message buffer reset at channel level RESET_NO_TXBUFFER_CH = 0x10 #: no transmit message buffer reset at USB-CAN-library level RESET_NO_TXBUFFER_DLL = 0x20 #: no transmit message buffer reset at firmware level RESET_NO_TXBUFFER_FW = 0x80 #: no receive message buffer reset at channel level RESET_NO_RXBUFFER_CH = 0x100 #: no receive message buffer reset at USB-CAN-library level RESET_NO_RXBUFFER_DLL = 0x200 #: no receive message buffer reset at kernel driver level RESET_NO_RXBUFFER_SYS = 0x400 #: no receive message buffer reset at firmware level RESET_NO_RXBUFFER_FW = 0x800 #: complete firmware reset (module will automatically reconnect at USB port in 500msec) RESET_FIRMWARE = 0xFFFFFFFF #: no reset of all message counters RESET_NO_COUNTER_ALL = (RESET_NO_TXCOUNTER | RESET_NO_RXCOUNTER) #: no reset of transmit message buffers at communication level (firmware, kernel and library) RESET_NO_TXBUFFER_COMM = (RESET_NO_TXBUFFER_DLL | 0x40 | RESET_NO_TXBUFFER_FW) #: no reset of receive message buffers at communication level (firmware, kernel and library) RESET_NO_RXBUFFER_COMM = (RESET_NO_RXBUFFER_DLL | RESET_NO_RXBUFFER_SYS | RESET_NO_RXBUFFER_FW) #: no reset of all transmit message buffers RESET_NO_TXBUFFER_ALL = (RESET_NO_TXBUFFER_CH | RESET_NO_TXBUFFER_COMM) #: no reset of all receive message buffers RESET_NO_RXBUFFER_ALL = (RESET_NO_RXBUFFER_CH | RESET_NO_RXBUFFER_COMM) #: no reset of all message buffers at communication level (firmware, kernel and library) RESET_NO_BUFFER_COMM = (RESET_NO_TXBUFFER_COMM | RESET_NO_RXBUFFER_COMM) #: no reset of all message buffers RESET_NO_BUFFER_ALL = (RESET_NO_TXBUFFER_ALL | RESET_NO_RXBUFFER_ALL) #: reset of the CAN status only RESET_ONLY_STATUS = (0xFFFF & ~RESET_NO_STATUS) #: reset of the CAN controller only RESET_ONLY_CANCTRL = (0xFFFF & ~RESET_NO_CANCTRL) #: reset of the transmit buffer in firmware only RESET_ONLY_TXBUFFER_FW = (0xFFFF & ~RESET_NO_TXBUFFER_FW) #: reset of the receive buffer in firmware only RESET_ONLY_RXBUFFER_FW = (0xFFFF & ~RESET_NO_RXBUFFER_FW) #: reset of the specified channel of the receive buffer only RESET_ONLY_RXCHANNEL_BUFF = (0xFFFF & ~RESET_NO_RXBUFFER_CH) #: reset of the specified channel of the transmit buffer only RESET_ONLY_TXCHANNEL_BUFF = (0xFFFF & ~RESET_NO_TXBUFFER_CH) #: reset of the receive buffer and receive message counter only RESET_ONLY_RX_BUFF = (0xFFFF & ~(RESET_NO_RXBUFFER_ALL | RESET_NO_RXCOUNTER)) #: reset of the receive buffer and receive message counter (for GW-002) only RESET_ONLY_RX_BUFF_GW002 = (0xFFFF & ~(RESET_NO_RXBUFFER_ALL | RESET_NO_RXCOUNTER | RESET_NO_TXBUFFER_FW)) #: reset of the transmit buffer and transmit message counter only RESET_ONLY_TX_BUFF = (0xFFFF & ~(RESET_NO_TXBUFFER_ALL | RESET_NO_TXCOUNTER)) #: reset of all buffers and all message counters only RESET_ONLY_ALL_BUFF = (RESET_ONLY_RX_BUFF & RESET_ONLY_TX_BUFF) #: reset of all message counters only RESET_ONLY_ALL_COUNTER = (0xFFFF & ~RESET_NO_COUNTER_ALL) PRODCODE_PID_TWO_CHA = 0x1 PRODCODE_PID_TERM = 0x1 PRODCODE_PID_RBUSER = 0x1 PRODCODE_PID_RBCAN = 0x1 PRODCODE_PID_G4 = 0x20 PRODCODE_PID_RESVD = 0x40 PRODCODE_MASK_DID = 0xFFFF0000 PRODCODE_MASK_PID = 0xFFFF PRODCODE_MASK_PIDG3 = (PRODCODE_MASK_PID & 0xFFFFFFBF) class ProductCode(WORD): """ These values defines product codes for all known USB-CANmodul derivatives received in member :attr:`HardwareInfoEx.m_dwProductCode` of structure :class:`HardwareInfoEx` with method :meth:`UcanServer.get_hardware_info`. .. seealso:: :meth:`UcanServer.get_hardware_info` :class:`HardwareInfoEx` """ #: Product code for GW-001 (outdated). PRODCODE_PID_GW001 = 0x1100 #: Product code for GW-002 (outdated). PRODCODE_PID_GW002 = 0x1102 #: Product code for Multiport CAN-to-USB G3. PRODCODE_PID_MULTIPORT = 0x1103 #: Product code for USB-CANmodul1 G3. PRODCODE_PID_BASIC = 0x1104 #: Product code for USB-CANmodul2 G3. PRODCODE_PID_ADVANCED = 0x1105 #: Product code for USB-CANmodul8 G3. PRODCODE_PID_USBCAN8 = 0x1107 #: Product code for USB-CANmodul16 G3. PRODCODE_PID_USBCAN16 = 0x1109 #: Reserved. PRODCODE_PID_RESERVED3 = 0x1110 #: Product code for USB-CANmodul2 G4. PRODCODE_PID_ADVANCED_G4 = 0x1121 #: Product code for USB-CANmodul1 G4. PRODCODE_PID_BASIC_G4 = 0x1122 #: Reserved. PRODCODE_PID_RESERVED1 = 0x1144 #: Reserved. PRODCODE_PID_RESERVED2 = 0x1145 #: Definitions for cyclic CAN messages. MAX_CYCLIC_CAN_MSG = 16 class CyclicFlags(DWORD): """ Specifies flags for cyclical CAN messages. These flags can be used in combinations with method :meth:`UcanServer.enable_cyclic_can_msg`. .. seealso:: :meth:`UcanServer.enable_cyclic_can_msg` """ #: Stops the transmission of cyclic CAN messages. CYCLIC_FLAG_STOPP = 0x0 #: Global enable of transmission of cyclic CAN messages. CYCLIC_FLAG_START = 0x80000000 #: List of cyclic CAN messages will be processed in sequential mode (otherwise in parallel mode). CYCLIC_FLAG_SEQUMODE = 0x40000000 #: No echo will be sent back if echo mode is enabled with method :meth:`UcanServer.init_can`. CYCLIC_FLAG_NOECHO = 0x10000 #: CAN message with index 0 of the list will not be sent. CYCLIC_FLAG_LOCK_0 = 0x1 #: CAN message with index 1 of the list will not be sent. CYCLIC_FLAG_LOCK_1 = 0x2 #: CAN message with index 2 of the list will not be sent. CYCLIC_FLAG_LOCK_2 = 0x4 #: CAN message with index 3 of the list will not be sent. CYCLIC_FLAG_LOCK_3 = 0x8 #: CAN message with index 4 of the list will not be sent. CYCLIC_FLAG_LOCK_4 = 0x10 #: CAN message with index 5 of the list will not be sent. CYCLIC_FLAG_LOCK_5 = 0x20 #: CAN message with index 6 of the list will not be sent. CYCLIC_FLAG_LOCK_6 = 0x40 #: CAN message with index 7 of the list will not be sent. CYCLIC_FLAG_LOCK_7 = 0x80 #: CAN message with index 8 of the list will not be sent. CYCLIC_FLAG_LOCK_8 = 0x100 #: CAN message with index 9 of the list will not be sent. CYCLIC_FLAG_LOCK_9 = 0x200 #: CAN message with index 10 of the list will not be sent. CYCLIC_FLAG_LOCK_10 = 0x400 #: CAN message with index 11 of the list will not be sent. CYCLIC_FLAG_LOCK_11 = 0x800 #: CAN message with index 12 of the list will not be sent. CYCLIC_FLAG_LOCK_12 = 0x1000 #: CAN message with index 13 of the list will not be sent. CYCLIC_FLAG_LOCK_13 = 0x2000 #: CAN message with index 14 of the list will not be sent. CYCLIC_FLAG_LOCK_14 = 0x4000 #: CAN message with index 15 of the list will not be sent. CYCLIC_FLAG_LOCK_15 = 0x8000 class PendingFlags(BYTE): """ Specifies flags for method :meth:`UcanServer.get_msg_pending`. These flags can be uses in combinations. .. seealso:: :meth:`UcanServer.get_msg_pending` """ #: number of pending CAN messages in receive buffer of USB-CAN-library PENDING_FLAG_RX_DLL = 0x1 #: reserved PENDING_FLAG_RX_SYS = 0x2 #: number of pending CAN messages in receive buffer of firmware PENDING_FLAG_RX_FW = 0x4 #: number of pending CAN messages in transmit buffer of USB-CAN-library PENDING_FLAG_TX_DLL = 0x10 #: reserved PENDING_FLAG_TX_SYS = 0x20 #: number of pending CAN messages in transmit buffer of firmware PENDING_FLAG_TX_FW = 0x40 #: number of pending CAN messages in all receive buffers PENDING_FLAG_RX_ALL = (PENDING_FLAG_RX_DLL | PENDING_FLAG_RX_SYS | PENDING_FLAG_RX_FW) #: number of pending CAN messages in all transmit buffers PENDING_FLAG_TX_ALL = (PENDING_FLAG_TX_DLL | PENDING_FLAG_TX_SYS | PENDING_FLAG_TX_FW) #: number of pending CAN messages in all buffers PENDING_FLAG_ALL = (PENDING_FLAG_RX_ALL | PENDING_FLAG_TX_ALL) class Mode(BYTE): """ Specifies values for operation mode of a CAN channel. These values can be combined by OR operation with the method :meth:`UcanServer.init_can`. """ #: normal operation mode (transmitting and receiving) MODE_NORMAL = 0 #: listen only mode (receiving only, no ACK at CAN bus) MODE_LISTEN_ONLY = 1 #: CAN messages which was sent will be received back with method :meth:`UcanServer.read_can_msg` MODE_TX_ECHO = 2 #: reserved (not implemented in this version) MODE_RX_ORDER_CH = 4 #: high resolution time stamps in received CAN messages (only available with STM derivatives) MODE_HIGH_RES_TIMER = 8 class VersionType(BYTE): """ Specifies values for receiving the version information of several driver files. .. note:: This structure is only used internally. """ #: version of the USB-CAN-library VER_TYPE_USER_LIB = 1 #: equivalent to :attr:`VER_TYPE_USER_LIB` VER_TYPE_USER_DLL = 1 #: version of USBCAN.SYS (not supported in this version) VER_TYPE_SYS_DRV = 2 #: version of firmware in hardware (not supported, use method :meth:`UcanServer.get_fw_version`) VER_TYPE_FIRMWARE = 3 #: version of UCANNET.SYS VER_TYPE_NET_DRV = 4 #: version of USBCANLD.SYS VER_TYPE_SYS_LD = 5 #: version of USBCANL2.SYS VER_TYPE_SYS_L2 = 6 #: version of USBCANL3.SYS VER_TYPE_SYS_L3 = 7 #: version of USBCANL4.SYS VER_TYPE_SYS_L4 = 8 #: version of USBCANL5.SYS VER_TYPE_SYS_L5 = 9 #: version of USBCANCP.CPL VER_TYPE_CPL = 10 python-can-3.3.2.final/can/interfaces/systec/exceptions.py000066400000000000000000000117401352572415400236330ustar00rootroot00000000000000# coding: utf-8 from .constants import ReturnCode from can import CanError class UcanException(CanError): """ Base class for USB can errors. """ def __init__(self, result, func, arguments): self.result = result.value self.func = func self.arguments = arguments self.return_msgs = NotImplemented def __str__(self): return "Function %s returned %d: %s" % \ (self.func.__name__, self.result, self.return_msgs.get(self.result, "unknown")) class UcanError(UcanException): """ Exception class for errors from USB-CAN-library. """ def __init__(self, result, func, arguments): super(UcanError, self).__init__(result, func, arguments) self.return_msgs = { ReturnCode.ERR_RESOURCE: "could not created a resource (memory, handle, ...)", ReturnCode.ERR_MAXMODULES: "the maximum number of opened modules is reached", ReturnCode.ERR_HWINUSE: "the specified module is already in use", ReturnCode.ERR_ILLVERSION: "the software versions of the module and library are incompatible", ReturnCode.ERR_ILLHW: "the module with the specified device number is not connected " "(or used by an other application)", ReturnCode.ERR_ILLHANDLE: "wrong USB-CAN-Handle handed over to the function", ReturnCode.ERR_ILLPARAM: "wrong parameter handed over to the function", ReturnCode.ERR_BUSY: "instruction can not be processed at this time", ReturnCode.ERR_TIMEOUT: "no answer from module", ReturnCode.ERR_IOFAILED: "a request to the driver failed", ReturnCode.ERR_DLL_TXFULL: "a CAN message did not fit into the transmit buffer", ReturnCode.ERR_MAXINSTANCES: "maximum number of applications is reached", ReturnCode.ERR_CANNOTINIT: "CAN interface is not yet initialized", ReturnCode.ERR_DISCONECT: "USB-CANmodul was disconnected", ReturnCode.ERR_NOHWCLASS: "the needed device class does not exist", ReturnCode.ERR_ILLCHANNEL: "illegal CAN channel", ReturnCode.ERR_RESERVED1: "reserved", ReturnCode.ERR_ILLHWTYPE: "the API function can not be used with this hardware", } class UcanCmdError(UcanException): """ Exception class for errors from firmware in USB-CANmodul.""" def __init__(self, result, func, arguments): super(UcanCmdError, self).__init__(result, func, arguments) self.return_msgs = { ReturnCode.ERRCMD_NOTEQU: "the received response does not match to the transmitted command", ReturnCode.ERRCMD_REGTST: "no access to the CAN controller", ReturnCode.ERRCMD_ILLCMD: "the module could not interpret the command", ReturnCode.ERRCMD_EEPROM: "error while reading the EEPROM", ReturnCode.ERRCMD_RESERVED1: "reserved", ReturnCode.ERRCMD_RESERVED2: "reserved", ReturnCode.ERRCMD_RESERVED3: "reserved", ReturnCode.ERRCMD_ILLBDR: "illegal baud rate value specified in BTR0/BTR1 for systec " "USB-CANmoduls", ReturnCode.ERRCMD_NOTINIT: "CAN channel is not initialized", ReturnCode.ERRCMD_ALREADYINIT: "CAN channel is already initialized", ReturnCode.ERRCMD_ILLSUBCMD: "illegal sub-command specified", ReturnCode.ERRCMD_ILLIDX: "illegal index specified (e.g. index for cyclic CAN messages)", ReturnCode.ERRCMD_RUNNING: "cyclic CAN message(s) can not be defined because transmission of " "cyclic CAN messages is already running", } class UcanWarning(UcanException): """ Exception class for warnings, the function has been executed anyway. """ def __init__(self, result, func, arguments): super(UcanWarning, self).__init__(result, func, arguments) self.return_msgs = { ReturnCode.WARN_NODATA: "no CAN messages received", ReturnCode.WARN_SYS_RXOVERRUN: "overrun in receive buffer of the kernel driver", ReturnCode.WARN_DLL_RXOVERRUN: "overrun in receive buffer of the USB-CAN-library", ReturnCode.WARN_RESERVED1: "reserved", ReturnCode.WARN_RESERVED2: "reserved", ReturnCode.WARN_FW_TXOVERRUN: "overrun in transmit buffer of the firmware (but this CAN message " "was successfully stored in buffer of the ibrary)", ReturnCode.WARN_FW_RXOVERRUN: "overrun in receive buffer of the firmware (but this CAN message " "was successfully read)", ReturnCode.WARN_FW_TXMSGLOST: "reserved", ReturnCode.WARN_NULL_PTR: "pointer is NULL", ReturnCode.WARN_TXLIMIT: "not all CAN messages could be stored to the transmit buffer in " "USB-CAN-library", ReturnCode.WARN_BUSY: "reserved" } python-can-3.3.2.final/can/interfaces/systec/structures.py000066400000000000000000000267511352572415400237050ustar00rootroot00000000000000# coding: utf-8 from ctypes import Structure, POINTER, sizeof from ctypes import c_ubyte as BYTE, c_ushort as WORD, c_ulong as DWORD, c_long as BOOL, c_void_p as LPVOID import os # Workaround for Unix based platforms to be able to load structures for testing, etc... if os.name == "nt": from ctypes import WINFUNCTYPE as FUNCTYPE else: from ctypes import CFUNCTYPE as FUNCTYPE from .constants import MsgFrameFormat class CanMsg(Structure): """ Structure of a CAN message. .. seealso:: :meth:`UcanServer.read_can_msg` :meth:`UcanServer.write_can_msg` :meth:`UcanServer.define_cyclic_can_msg` :meth:`UcanServer.read_cyclic_can_msg` """ _pack_ = 1 _fields_ = [ ("m_dwID", DWORD), # CAN Identifier ("m_bFF", BYTE), # CAN Frame Format (see enum :class:`MsgFrameFormat`) ("m_bDLC", BYTE), # CAN Data Length Code ("m_bData", BYTE * 8), # CAN Data (array of 8 bytes) ("m_dwTime", DWORD,) # Receive time stamp in ms (for transmit messages no meaning) ] def __init__(self, id=0, frame_format=MsgFrameFormat.MSG_FF_STD, data=[]): super(CanMsg, self).__init__(id, frame_format, len(data), (BYTE * 8)(*data), 0) def __eq__(self, other): if not isinstance(other, CanMsg): return False return self.id == other.id and self.frame_format == other.frame_format and self.data == other.data @property def id(self): return self.m_dwID @id.setter def id(self, id): self.m_dwID = id @property def frame_format(self): return self.m_bFF @frame_format.setter def frame_format(self, frame_format): self.m_bFF = frame_format @property def data(self): return self.m_bData[:self.m_bDLC] @data.setter def data(self, data): self.m_bDLC = len(data) self.m_bData((BYTE * 8)(*data)) @property def time(self): return self.m_dwTime class Status(Structure): """ Structure with the error status of CAN and USB. Use this structure with the method :meth:`UcanServer.get_status` .. seealso:: :meth:`UcanServer.get_status` :meth:`UcanServer.get_can_status_message` """ _pack_ = 1 _fields_ = [ ("m_wCanStatus", WORD), # CAN error status (see enum :class:`CanStatus`) ("m_wUsbStatus", WORD), # USB error status (see enum :class:`UsbStatus`) ] def __eq__(self, other): if not isinstance(other, Status): return False return self.can_status == other.can_status and self.usb_status == other.usb_status @property def can_status(self): return self.m_wCanStatus @property def usb_status(self): return self.m_wUsbStatus class InitCanParam(Structure): """ Structure including initialisation parameters used internally in :meth:`UcanServer.init_can`. .. note:: This structure is only used internally. """ _pack_ = 1 _fields_ = [ ("m_dwSize", DWORD), # size of this structure (only used internally) ("m_bMode", BYTE), # selects the mode of CAN controller (see enum :class:`Mode`) # Baudrate Registers for GW-001 or GW-002 ("m_bBTR0", BYTE), # Bus Timing Register 0 (see enum :class:`Baudrate`) ("m_bBTR1", BYTE), # Bus Timing Register 1 (see enum :class:`Baudrate`) ("m_bOCR", BYTE), # Output Control Register (see enum :class:`OutputControl`) ("m_dwAMR", DWORD), # Acceptance Mask Register (see method :meth:`UcanServer.set_acceptance`) ("m_dwACR", DWORD), # Acceptance Code Register (see method :meth:`UcanServer.set_acceptance`) ("m_dwBaudrate", DWORD), # Baudrate Register for all systec USB-CANmoduls # (see enum :class:`BaudrateEx`) ("m_wNrOfRxBufferEntries", WORD), # number of receive buffer entries (default is 4096) ("m_wNrOfTxBufferEntries", WORD), # number of transmit buffer entries (default is 4096) ] def __init__(self, mode, BTR, OCR, AMR, ACR, baudrate, rx_buffer_entries, tx_buffer_entries): super(InitCanParam, self).__init__(sizeof(InitCanParam), mode, BTR >> 8, BTR, OCR, AMR, ACR, baudrate, rx_buffer_entries, tx_buffer_entries) def __eq__(self, other): if not isinstance(other, InitCanParam): return False return self.mode == other.mode and self.BTR == other.BTR and self.OCR == other.OCR and \ self.baudrate == other.baudrate and self.rx_buffer_entries == other.rx_buffer_entries and \ self.tx_buffer_entries == other.tx_buffer_entries @property def mode(self): return self.m_bMode @mode.setter def mode(self, mode): self.m_bMode = mode @property def BTR(self): return self.m_bBTR0 << 8 | self.m_bBTR1 @BTR.setter def BTR(self, BTR): self.m_bBTR0, self.m_bBTR1 = BTR >> 8, BTR @property def OCR(self): return self.m_bOCR @OCR.setter def OCR(self, OCR): self.m_bOCR = OCR @property def baudrate(self): return self.m_dwBaudrate @baudrate.setter def baudrate(self, baudrate): self.m_dwBaudrate = baudrate @property def rx_buffer_entries(self): return self.m_wNrOfRxBufferEntries @rx_buffer_entries.setter def rx_buffer_entries(self, rx_buffer_entries): self.m_wNrOfRxBufferEntries = rx_buffer_entries @property def tx_buffer_entries(self): return self.m_wNrOfTxBufferEntries @rx_buffer_entries.setter def tx_buffer_entries(self, tx_buffer_entries): self.m_wNrOfTxBufferEntries = tx_buffer_entries class Handle(BYTE): pass class HardwareInfoEx(Structure): """ Structure including hardware information about the USB-CANmodul. This structure is used with the method :meth:`UcanServer.get_hardware_info`. .. seealso:: :meth:`UcanServer.get_hardware_info` """ _pack_ = 1 _fields_ = [ ("m_dwSize", DWORD), # size of this structure (only used internally) ("m_UcanHandle", Handle), # USB-CAN-Handle assigned by the DLL ("m_bDeviceNr", BYTE), # device number of the USB-CANmodul ("m_dwSerialNr", DWORD), # serial number from USB-CANmodul ("m_dwFwVersionEx", DWORD), # version of firmware ("m_dwProductCode", DWORD), # product code (see enum :class:`ProductCode`) # unique ID (available since V5.01) !!! m_dwSize must be >= HWINFO_SIZE_V2 ("m_dwUniqueId0", DWORD), ("m_dwUniqueId1", DWORD), ("m_dwUniqueId2", DWORD), ("m_dwUniqueId3", DWORD), ("m_dwFlags", DWORD), # additional flags ] def __init__(self): super(HardwareInfoEx, self).__init__(sizeof(HardwareInfoEx)) def __eq__(self, other): if not isinstance(other, HardwareInfoEx): return False return self.device_number == other.device_number and self.serial == other.serial and \ self.fw_version == other.fw_version and self.product_code == other.product_code and \ self.unique_id == other.unique_id and self.flags == other.flags @property def device_number(self): return self.m_bDeviceNr @property def serial(self): return self.m_dwSerialNr @property def fw_version(self): return self.m_dwFwVersionEx @property def product_code(self): return self.m_dwProductCode @property def unique_id(self): return self.m_dwUniqueId0, self.m_dwUniqueId1, self.m_dwUniqueId2, self.m_dwUniqueId3 @property def flags(self): return self.m_dwFlags # void PUBLIC UcanCallbackFktEx (Handle UcanHandle_p, DWORD dwEvent_p, # BYTE bChannel_p, void* pArg_p); CallbackFktEx = FUNCTYPE(None, Handle, DWORD, BYTE, LPVOID) class HardwareInitInfo(Structure): """ Structure including information about the enumeration of USB-CANmoduls. .. seealso:: :meth:`UcanServer.enumerate_hardware` .. note:: This structure is only used internally. """ _pack_ = 1 _fields_ = [ ("m_dwSize", DWORD), # size of this structure ("m_fDoInitialize", BOOL), # specifies if the found module should be initialized by the DLL ("m_pUcanHandle", Handle), # pointer to variable receiving the USB-CAN-Handle ("m_fpCallbackFktEx", CallbackFktEx), # pointer to callback function ("m_pCallbackArg", LPVOID), # pointer to user defined parameter for callback function ("m_fTryNext", BOOL), # specifies if a further module should be found ] class ChannelInfo(Structure): """ Structure including CAN channel information. This structure is used with the method :meth:`UcanServer.get_hardware_info`. .. seealso:: :meth:`UcanServer.get_hardware_info` """ _pack_ = 1 _fields_ = [ ("m_dwSize", DWORD), # size of this structure ("m_bMode", BYTE), # operation mode of CAN controller (see enum :class:`Mode`) ("m_bBTR0", BYTE), # Bus Timing Register 0 (see enum :class:`Baudrate`) ("m_bBTR1", BYTE), # Bus Timing Register 1 (see enum :class:`Baudrate`) ("m_bOCR", BYTE), # Output Control Register (see enum :class:`OutputControl`) ("m_dwAMR", DWORD), # Acceptance Mask Register (see method :meth:`UcanServer.set_acceptance`) ("m_dwACR", DWORD), # Acceptance Code Register (see method :meth:`UcanServer.set_acceptance`) ("m_dwBaudrate", DWORD), # Baudrate Register for all systec USB-CANmoduls # (see enum :class:`BaudrateEx`) ("m_fCanIsInit", BOOL), # True if the CAN interface is initialized, otherwise false ("m_wCanStatus", WORD), # CAN status (same as received by method :meth:`UcanServer.get_status`) ] def __init__(self): super(ChannelInfo, self).__init__(sizeof(ChannelInfo)) def __eq__(self, other): if not isinstance(other, ChannelInfo): return False return self.mode == other.mode and self.BTR == other.BTR and self.OCR == other.OCR and \ self.AMR == other.AMR and self.ACR == other.ACR and self.baudrate == other.baudrate and \ self.can_is_init == other.can_is_init and self.can_status == other.can_status @property def mode(self): return self.m_bMode @property def BTR(self): return self.m_bBTR0 << 8 | self.m_bBTR1 @property def OCR(self): return self.m_bOCR @property def AMR(self): return self.m_dwAMR @property def ACR(self): return self.m_dwACR @property def baudrate(self): return self.m_dwBaudrate @property def can_is_init(self): return self.m_fCanIsInit @property def can_status(self): return self.m_wCanStatus class MsgCountInfo(Structure): """ Structure including the number of sent and received CAN messages. This structure is used with the method :meth:`UcanServer.get_msg_count_info`. .. seealso:: :meth:`UcanServer.get_msg_count_info` .. note:: This structure is only used internally. """ _fields_ = [ ("m_wSentMsgCount", WORD), # number of sent CAN messages ("m_wRecvdMsgCount", WORD), # number of received CAN messages ] @property def sent_msg_count(self): return self.m_wSentMsgCount @property def recv_msg_count(self): return self.m_wRecvdMsgCount # void (PUBLIC *ConnectControlFktEx) (DWORD dwEvent_p, DWORD dwParam_p, void* pArg_p); ConnectControlFktEx = FUNCTYPE(None, DWORD, DWORD, LPVOID) # typedef void (PUBLIC *EnumCallback) (DWORD dwIndex_p, BOOL fIsUsed_p, # HardwareInfoEx* pHwInfoEx_p, HardwareInitInfo* pInitInfo_p, void* pArg_p); EnumCallback = FUNCTYPE(None, DWORD, BOOL, POINTER(HardwareInfoEx), POINTER(HardwareInitInfo), LPVOID) python-can-3.3.2.final/can/interfaces/systec/ucan.py000066400000000000000000001310641352572415400224020ustar00rootroot00000000000000# coding: utf-8 import logging import sys from ctypes import byref from ctypes import c_wchar_p as LPWSTR from .constants import * from .structures import * from .exceptions import * log = logging.getLogger("can.systec") def check_valid_rx_can_msg(result): """ Checks if function :meth:`UcanServer.read_can_msg` returns a valid CAN message. :param ReturnCode result: Error code of the function. :return: True if a valid CAN messages was received, otherwise False. :rtype: bool """ return (result.value == ReturnCode.SUCCESSFUL) or (result.value > ReturnCode.WARNING) def check_tx_ok(result): """ Checks if function :meth:`UcanServer.write_can_msg` successfully wrote CAN message(s). While using :meth:`UcanServer.write_can_msg_ex` the number of sent CAN messages can be less than the number of CAN messages which should be sent. :param ReturnCode result: Error code of the function. :return: True if CAN message(s) was(were) written successfully, otherwise False. :rtype: bool .. :seealso: :const:`ReturnCode.WARN_TXLIMIT` """ return (result.value == ReturnCode.SUCCESSFUL) or (result.value > ReturnCode.WARNING) def check_tx_success(result): """ Checks if function :meth:`UcanServer.write_can_msg_ex` successfully wrote all CAN message(s). :param ReturnCode result: Error code of the function. :return: True if CAN message(s) was(were) written successfully, otherwise False. :rtype: bool """ return result.value == ReturnCode.SUCCESSFUL def check_tx_not_all(result): """ Checks if function :meth:`UcanServer.write_can_msg_ex` did not sent all CAN messages. :param ReturnCode result: Error code of the function. :return: True if not all CAN messages were written, otherwise False. :rtype: bool """ return result.value == ReturnCode.WARN_TXLIMIT def check_warning(result): """ Checks if any function returns a warning. :param ReturnCode result: Error code of the function. :return: True if a function returned warning, otherwise False. :rtype: bool """ return result.value >= ReturnCode.WARNING def check_error(result): """ Checks if any function returns an error from USB-CAN-library. :param ReturnCode result: Error code of the function. :return: True if a function returned error, otherwise False. :rtype: bool """ return (result.value != ReturnCode.SUCCESSFUL) and (result.value < ReturnCode.WARNING) def check_error_cmd(result): """ Checks if any function returns an error from firmware in USB-CANmodul. :param ReturnCode result: Error code of the function. :return: True if a function returned error from firmware, otherwise False. :rtype: bool """ return (result.value >= ReturnCode.ERRCMD) and (result.value < ReturnCode.WARNING) def check_result(result, func, arguments): if check_warning(result) and (result.value != ReturnCode.WARN_NODATA): log.warning(UcanWarning(result, func, arguments)) elif check_error(result): if check_error_cmd(result): raise UcanCmdError(result, func, arguments) else: raise UcanError(result, func, arguments) return result if os.name != "nt": log.warning("SYSTEC ucan library does not work on %s platform.", sys.platform) else: from ctypes import WinDLL try: # Select the proper dll architecture lib = WinDLL('usbcan64.dll' if sys.maxsize > 2 ** 32 else 'usbcan32.dll') # BOOL PUBLIC UcanSetDebugMode (DWORD dwDbgLevel_p, _TCHAR* pszFilePathName_p, DWORD dwFlags_p); UcanSetDebugMode = lib.UcanSetDebugMode UcanSetDebugMode.restype = BOOL UcanSetDebugMode.argtypes = [DWORD, LPWSTR, DWORD] # DWORD PUBLIC UcanGetVersionEx (VersionType VerType_p); UcanGetVersionEx = lib.UcanGetVersionEx UcanGetVersionEx.restype = DWORD UcanGetVersionEx.argtypes = [VersionType] # DWORD PUBLIC UcanGetFwVersion (Handle UcanHandle_p); UcanGetFwVersion = lib.UcanGetFwVersion UcanGetFwVersion.restype = DWORD UcanGetFwVersion.argtypes = [Handle] # BYTE PUBLIC UcanInitHwConnectControlEx (ConnectControlFktEx fpConnectControlFktEx_p, void* pCallbackArg_p); UcanInitHwConnectControlEx = lib.UcanInitHwConnectControlEx UcanInitHwConnectControlEx.restype = ReturnCode UcanInitHwConnectControlEx.argtypes = [ConnectControlFktEx, LPVOID] UcanInitHwConnectControlEx.errcheck = check_result # BYTE PUBLIC UcanDeinitHwConnectControl (void) UcanDeinitHwConnectControl = lib.UcanDeinitHwConnectControl UcanDeinitHwConnectControl.restype = ReturnCode UcanDeinitHwConnectControl.argtypes = [] UcanDeinitHwConnectControl.errcheck = check_result # DWORD PUBLIC UcanEnumerateHardware (EnumCallback fpCallback_p, void* pCallbackArg_p, # BOOL fEnumUsedDevs_p, # BYTE bDeviceNrLow_p, BYTE bDeviceNrHigh_p, # DWORD dwSerialNrLow_p, DWORD dwSerialNrHigh_p, # DWORD dwProductCodeLow_p, DWORD dwProductCodeHigh_p); UcanEnumerateHardware = lib.UcanEnumerateHardware UcanEnumerateHardware.restype = DWORD UcanEnumerateHardware.argtypes = [EnumCallback, LPVOID, BOOL, BYTE, BYTE, DWORD, DWORD, DWORD, DWORD] # BYTE PUBLIC UcanInitHardwareEx (Handle* pUcanHandle_p, BYTE bDeviceNr_p, # CallbackFktEx fpCallbackFktEx_p, void* pCallbackArg_p); UcanInitHardwareEx = lib.UcanInitHardwareEx UcanInitHardwareEx.restype = ReturnCode UcanInitHardwareEx.argtypes = [POINTER(Handle), BYTE, CallbackFktEx, LPVOID] UcanInitHardwareEx.errcheck = check_result # BYTE PUBLIC UcanInitHardwareEx2 (Handle* pUcanHandle_p, DWORD dwSerialNr_p, # CallbackFktEx fpCallbackFktEx_p, void* pCallbackArg_p); UcanInitHardwareEx2 = lib.UcanInitHardwareEx2 UcanInitHardwareEx2.restype = ReturnCode UcanInitHardwareEx2.argtypes = [POINTER(Handle), DWORD, CallbackFktEx, LPVOID] UcanInitHardwareEx2.errcheck = check_result # BYTE PUBLIC UcanGetModuleTime (Handle UcanHandle_p, DWORD* pdwTime_p); UcanGetModuleTime = lib.UcanGetModuleTime UcanGetModuleTime.restype = ReturnCode UcanGetModuleTime.argtypes = [Handle, POINTER(DWORD)] UcanGetModuleTime.errcheck = check_result # BYTE PUBLIC UcanGetHardwareInfoEx2 (Handle UcanHandle_p, # HardwareInfoEx* pHwInfo_p, # ChannelInfo* pCanInfoCh0_p, ChannelInfo* pCanInfoCh1_p); UcanGetHardwareInfoEx2 = lib.UcanGetHardwareInfoEx2 UcanGetHardwareInfoEx2.restype = ReturnCode UcanGetHardwareInfoEx2.argtypes = [Handle, POINTER(HardwareInfoEx), POINTER(ChannelInfo), POINTER(ChannelInfo)] UcanGetHardwareInfoEx2.errcheck = check_result # BYTE PUBLIC UcanInitCanEx2 (Handle UcanHandle_p, BYTE bChannel_p, tUcaninit_canParam* pinit_canParam_p); UcanInitCanEx2 = lib.UcanInitCanEx2 UcanInitCanEx2.restype = ReturnCode UcanInitCanEx2.argtypes = [Handle, BYTE, POINTER(InitCanParam)] UcanInitCanEx2.errcheck = check_result # BYTE PUBLIC UcanSetBaudrateEx (Handle UcanHandle_p, # BYTE bChannel_p, BYTE bBTR0_p, BYTE bBTR1_p, DWORD dwBaudrate_p); UcanSetBaudrateEx = lib.UcanSetBaudrateEx UcanSetBaudrateEx.restype = ReturnCode UcanSetBaudrateEx.argtypes = [Handle, BYTE, BYTE, BYTE, DWORD] UcanSetBaudrateEx.errcheck = check_result # BYTE PUBLIC UcanSetAcceptanceEx (Handle UcanHandle_p, BYTE bChannel_p, # DWORD dwAMR_p, DWORD dwACR_p); UcanSetAcceptanceEx = lib.UcanSetAcceptanceEx UcanSetAcceptanceEx.restype = ReturnCode UcanSetAcceptanceEx.argtypes = [Handle, BYTE, DWORD, DWORD] UcanSetAcceptanceEx.errcheck = check_result # BYTE PUBLIC UcanResetCanEx (Handle UcanHandle_p, BYTE bChannel_p, DWORD dwResetFlags_p); UcanResetCanEx = lib.UcanResetCanEx UcanResetCanEx.restype = ReturnCode UcanResetCanEx.argtypes = [Handle, BYTE, DWORD] UcanResetCanEx.errcheck = check_result # BYTE PUBLIC UcanReadCanMsgEx (Handle UcanHandle_p, BYTE* pbChannel_p, # CanMsg* pCanMsg_p, DWORD* pdwCount_p); UcanReadCanMsgEx = lib.UcanReadCanMsgEx UcanReadCanMsgEx.restype = ReturnCode UcanReadCanMsgEx.argtypes = [Handle, POINTER(BYTE), POINTER(CanMsg), POINTER(DWORD)] UcanReadCanMsgEx.errcheck = check_result # BYTE PUBLIC UcanWriteCanMsgEx (Handle UcanHandle_p, BYTE bChannel_p, # CanMsg* pCanMsg_p, DWORD* pdwCount_p); UcanWriteCanMsgEx = lib.UcanWriteCanMsgEx UcanWriteCanMsgEx.restype = ReturnCode UcanWriteCanMsgEx.argtypes = [Handle, BYTE, POINTER(CanMsg), POINTER(DWORD)] UcanWriteCanMsgEx.errcheck = check_result # BYTE PUBLIC UcanGetStatusEx (Handle UcanHandle_p, BYTE bChannel_p, Status* pStatus_p); UcanGetStatusEx = lib.UcanGetStatusEx UcanGetStatusEx.restype = ReturnCode UcanGetStatusEx.argtypes = [Handle, BYTE, POINTER(Status)] UcanGetStatusEx.errcheck = check_result # BYTE PUBLIC UcanGetMsgCountInfoEx (Handle UcanHandle_p, BYTE bChannel_p, # MsgCountInfo* pMsgCountInfo_p); UcanGetMsgCountInfoEx = lib.UcanGetMsgCountInfoEx UcanGetMsgCountInfoEx.restype = ReturnCode UcanGetMsgCountInfoEx.argtypes = [Handle, BYTE, POINTER(MsgCountInfo)] UcanGetMsgCountInfoEx.errcheck = check_result # BYTE PUBLIC UcanGetMsgPending (Handle UcanHandle_p, # BYTE bChannel_p, DWORD dwFlags_p, DWORD* pdwPendingCount_p); UcanGetMsgPending = lib.UcanGetMsgPending UcanGetMsgPending.restype = ReturnCode UcanGetMsgPending.argtypes = [Handle, BYTE, DWORD, POINTER(DWORD)] UcanGetMsgPending.errcheck = check_result # BYTE PUBLIC UcanGetCanErrorCounter (Handle UcanHandle_p, # BYTE bChannel_p, DWORD* pdwTxErrorCounter_p, DWORD* pdwRxErrorCounter_p); UcanGetCanErrorCounter = lib.UcanGetCanErrorCounter UcanGetCanErrorCounter.restype = ReturnCode UcanGetCanErrorCounter.argtypes = [Handle, BYTE, POINTER(DWORD), POINTER(DWORD)] UcanGetCanErrorCounter.errcheck = check_result # BYTE PUBLIC UcanSetTxTimeout (Handle UcanHandle_p, # BYTE bChannel_p, DWORD dwTxTimeout_p); UcanSetTxTimeout = lib.UcanSetTxTimeout UcanSetTxTimeout.restype = ReturnCode UcanSetTxTimeout.argtypes = [Handle, BYTE, DWORD] UcanSetTxTimeout.errcheck = check_result # BYTE PUBLIC UcanDeinitCanEx (Handle UcanHandle_p, BYTE bChannel_p); UcanDeinitCanEx = lib.UcanDeinitCanEx UcanDeinitCanEx.restype = ReturnCode UcanDeinitCanEx.argtypes = [Handle, BYTE] UcanDeinitCanEx.errcheck = check_result # BYTE PUBLIC UcanDeinitHardware (Handle UcanHandle_p); UcanDeinitHardware = lib.UcanDeinitHardware UcanDeinitHardware.restype = ReturnCode UcanDeinitHardware.argtypes = [Handle] UcanDeinitHardware.errcheck = check_result # BYTE PUBLIC UcanDefineCyclicCanMsg (Handle UcanHandle_p, # BYTE bChannel_p, CanMsg* pCanMsgList_p, DWORD dwCount_p); UcanDefineCyclicCanMsg = lib.UcanDefineCyclicCanMsg UcanDefineCyclicCanMsg.restype = ReturnCode UcanDefineCyclicCanMsg.argtypes = [Handle, BYTE, POINTER(CanMsg), DWORD] UcanDefineCyclicCanMsg.errcheck = check_result # BYTE PUBLIC UcanReadCyclicCanMsg (Handle UcanHandle_p, # BYTE bChannel_p, CanMsg* pCanMsgList_p, DWORD* pdwCount_p); UcanReadCyclicCanMsg = lib.UcanReadCyclicCanMsg UcanReadCyclicCanMsg.restype = ReturnCode UcanReadCyclicCanMsg.argtypes = [Handle, BYTE, POINTER(CanMsg), POINTER(DWORD)] UcanReadCyclicCanMsg.errcheck = check_result # BYTE PUBLIC UcanEnableCyclicCanMsg (Handle UcanHandle_p, # BYTE bChannel_p, DWORD dwFlags_p); UcanEnableCyclicCanMsg = lib.UcanEnableCyclicCanMsg UcanEnableCyclicCanMsg.restype = ReturnCode UcanEnableCyclicCanMsg.argtypes = [Handle, BYTE, DWORD] UcanEnableCyclicCanMsg.errcheck = check_result except Exception as ex: log.warning("Cannot load SYSTEC ucan library: %s.", ex) class UcanServer(object): """ UcanServer is a Python wrapper class for using the usbcan32.dll / usbcan64.dll. """ _modules_found = [] _connect_control_ref = None def __init__(self): self._handle = Handle(INVALID_HANDLE) self._is_initialized = False self._hw_is_initialized = False self._ch_is_initialized = { Channel.CHANNEL_CH0: False, Channel.CHANNEL_CH1: False } self._callback_ref = CallbackFktEx(self._callback) if self._connect_control_ref is None: self._connect_control_ref = ConnectControlFktEx(self._connect_control) UcanInitHwConnectControlEx(self._connect_control_ref, None) @property def is_initialized(self): """ Returns whether hardware interface is initialized. :return: True if initialized, otherwise False. :rtype: bool """ return self._is_initialized @property def is_can0_initialized(self): """ Returns whether CAN interface for channel 0 is initialized. :return: True if initialized, otherwise False. :rtype: bool """ return self._ch_is_initialized[Channel.CHANNEL_CH0] @property def is_can1_initialized(self): """ Returns whether CAN interface for channel 1 is initialized. :return: True if initialized, otherwise False. :rtype: bool """ return self._ch_is_initialized[Channel.CHANNEL_CH1] @classmethod def _enum_callback(cls, index, is_used, hw_info_ex, init_info, arg): cls._modules_found.append((index, bool(is_used), hw_info_ex.contents, init_info.contents)) @classmethod def enumerate_hardware(cls, device_number_low=0, device_number_high=-1, serial_low=0, serial_high=-1, product_code_low=0, product_code_high=-1, enum_used_devices=False): cls._modules_found = [] UcanEnumerateHardware(cls._enum_callback_ref, None, enum_used_devices, device_number_low, device_number_high, serial_low, serial_high, product_code_low, product_code_high) return cls._modules_found def init_hardware(self, serial=None, device_number=ANY_MODULE): """ Initializes the device with the corresponding serial or device number. :param int or None serial: Serial number of the USB-CANmodul. :param int device_number: Device number (0 – 254, or :const:`ANY_MODULE` for the first device). """ if not self._hw_is_initialized: # initialize hardware either by device number or serial if serial is None: UcanInitHardwareEx(byref(self._handle), device_number, self._callback_ref, None) else: UcanInitHardwareEx2(byref(self._handle), serial, self._callback_ref, None) self._hw_is_initialized = True def init_can(self, channel=Channel.CHANNEL_CH0, BTR=Baudrate.BAUD_1MBit, baudrate=BaudrateEx.BAUDEX_USE_BTR01, AMR=AMR_ALL, ACR=ACR_ALL, mode=Mode.MODE_NORMAL, OCR=OutputControl.OCR_DEFAULT, rx_buffer_entries=DEFAULT_BUFFER_ENTRIES, tx_buffer_entries=DEFAULT_BUFFER_ENTRIES): """ Initializes a specific CAN channel of a device. :param int channel: CAN channel to be initialized (:data:`Channel.CHANNEL_CH0` or :data:`Channel.CHANNEL_CH1`). :param int BTR: Baud rate register BTR0 as high byte, baud rate register BTR1 as low byte (see enum :class:`Baudrate`). :param int baudrate: Baud rate register for all systec USB-CANmoduls (see enum :class:`BaudrateEx`). :param int AMR: Acceptance filter mask (see method :meth:`set_acceptance`). :param int ACR: Acceptance filter code (see method :meth:`set_acceptance`). :param int mode: Transmission mode of CAN channel (see enum :class:`Mode`). :param int OCR: Output Control Register (see enum :class:`OutputControl`). :param int rx_buffer_entries: The number of maximum entries in the receive buffer. :param int tx_buffer_entries: The number of maximum entries in the transmit buffer. """ if not self._ch_is_initialized.get(channel, False): init_param = InitCanParam(mode, BTR, OCR, AMR, ACR, baudrate, rx_buffer_entries, tx_buffer_entries) UcanInitCanEx2(self._handle, channel, init_param) self._ch_is_initialized[channel] = True def read_can_msg(self, channel, count): """ Reads one or more CAN-messages from the buffer of the specified CAN channel. :param int channel: CAN channel to read from (:data:`Channel.CHANNEL_CH0`, :data:`Channel.CHANNEL_CH1`, :data:`Channel.CHANNEL_ANY`). :param int count: The number of CAN messages to be received. :return: Tuple with list of CAN message/s received and the CAN channel where the read CAN messages came from. :rtype: tuple(list(CanMsg), int) """ c_channel = BYTE(channel) c_can_msg = (CanMsg * count)() c_count = DWORD(count) UcanReadCanMsgEx(self._handle, byref(c_channel), c_can_msg, byref(c_count)) return c_can_msg[:c_count.value], c_channel.value def write_can_msg(self, channel, can_msg): """ Transmits one ore more CAN messages through the specified CAN channel of the device. :param int channel: CAN channel, which is to be used (:data:`Channel.CHANNEL_CH0` or :data:`Channel.CHANNEL_CH1`). :param list(CanMsg) can_msg: List of CAN message structure (see structure :class:`CanMsg`). :return: The number of successfully transmitted CAN messages. :rtype: int """ c_can_msg = (CanMsg * len(can_msg))(*can_msg) c_count = DWORD(len(can_msg)) UcanWriteCanMsgEx(self._handle, channel, c_can_msg, c_count) return c_count def set_baudrate(self, channel, BTR, baudarate): """ This function is used to configure the baud rate of specific CAN channel of a device. :param int channel: CAN channel, which is to be configured (:data:`Channel.CHANNEL_CH0` or :data:`Channel.CHANNEL_CH1`). :param int BTR: Baud rate register BTR0 as high byte, baud rate register BTR1 as low byte (see enum :class:`Baudrate`). :param int baudarate: Baud rate register for all systec USB-CANmoduls (see enum :class:`BaudrateEx`>). """ UcanSetBaudrateEx(self._handle, channel, BTR >> 8, BTR, baudarate) def set_acceptance(self, channel=Channel.CHANNEL_CH0, AMR=AMR_ALL, ACR=ACR_ALL): """ This function is used to change the acceptance filter values for a specific CAN channel on a device. :param int channel: CAN channel, which is to be configured (:data:`Channel.CHANNEL_CH0` or :data:`Channel.CHANNEL_CH1`). :param int AMR: Acceptance filter mask (AMR). :param int ACR: Acceptance filter code (ACR). """ UcanSetAcceptanceEx(self._handle, channel, AMR, ACR) def get_status(self, channel=Channel.CHANNEL_CH0): """ Returns the error status of a specific CAN channel. :param int channel: CAN channel, to be used (:data:`Channel.CHANNEL_CH0` or :data:`Channel.CHANNEL_CH1`). :return: Tuple with CAN and USB status (see structure :class:`Status`). :rtype: tuple(int, int) """ status = Status() UcanGetStatusEx(self._handle, channel, byref(status)) return status.can_status, status.usb_status def get_msg_count_info(self, channel=Channel.CHANNEL_CH0): """ Reads the message counters of the specified CAN channel. :param int channel: CAN channel, which is to be used (:data:`Channel.CHANNEL_CH0` or :data:`Channel.CHANNEL_CH1`). :return: Tuple with number of CAN messages sent and received. :rtype: tuple(int, int) """ msg_count_info = MsgCountInfo() UcanGetMsgCountInfoEx(self._handle, channel, byref(msg_count_info)) return msg_count_info.sent_msg_count, msg_count_info.recv_msg_count def reset_can(self, channel=Channel.CHANNEL_CH0, flags=ResetFlags.RESET_ALL): """ Resets a CAN channel of a device (hardware reset, empty buffer, and so on). :param int channel: CAN channel, to be reset (:data:`Channel.CHANNEL_CH0` or :data:`Channel.CHANNEL_CH1`). :param int flags: Flags defines what should be reset (see enum :class:`ResetFlags`). """ UcanResetCanEx(self._handle, channel, flags) def get_hardware_info(self): """ Returns the extended hardware information of a device. With multi-channel USB-CANmoduls the information for both CAN channels are returned separately. :return: Tuple with extended hardware information structure (see structure :class:`HardwareInfoEx`) and structures with information of CAN channel 0 and 1 (see structure :class:`ChannelInfo`). :rtype: tuple(HardwareInfoEx, ChannelInfo, ChannelInfo) """ hw_info_ex = HardwareInfoEx() can_info_ch0, can_info_ch1 = ChannelInfo(), ChannelInfo() UcanGetHardwareInfoEx2(self._handle, byref(hw_info_ex), byref(can_info_ch0), byref(can_info_ch1)) return hw_info_ex, can_info_ch0, can_info_ch1 def get_fw_version(self): """ Returns the firmware version number of the device. :return: Firmware version number. :rtype: int """ return UcanGetFwVersion(self._handle) def define_cyclic_can_msg(self, channel, can_msg=None): """ Defines a list of CAN messages for automatic transmission. :param int channel: CAN channel, to be used (:data:`Channel.CHANNEL_CH0` or :data:`Channel.CHANNEL_CH1`). :param list(CanMsg) can_msg: List of CAN messages (up to 16, see structure :class:`CanMsg`), or None to delete an older list. """ if can_msg is not None: c_can_msg = (CanMsg * len(can_msg))(*can_msg) c_count = DWORD(len(can_msg)) else: c_can_msg = CanMsg() c_count = 0 UcanDefineCyclicCanMsg(self._handle, channel, c_can_msg, c_count) def read_cyclic_can_msg(self, channel, count): """ Reads back the list of CAN messages for automatically sending. :param int channel: CAN channel, to be used (:data:`Channel.CHANNEL_CH0` or :data:`Channel.CHANNEL_CH1`). :param int count: The number of cyclic CAN messages to be received. :return: List of received CAN messages (up to 16, see structure :class:`CanMsg`). :rtype: list(CanMsg) """ c_channel = BYTE(channel) c_can_msg = (CanMsg * count)() c_count = DWORD(count) UcanReadCyclicCanMsg(self._handle, byref(c_channel), c_can_msg, c_count) return c_can_msg[:c_count.value] def enable_cyclic_can_msg(self, channel, flags): """ Enables or disables the automatically sending. :param int channel: CAN channel, to be used (:data:`Channel.CHANNEL_CH0` or :data:`Channel.CHANNEL_CH1`). :param int flags: Flags for enabling or disabling (see enum :class:`CyclicFlags`). """ UcanEnableCyclicCanMsg(self._handle, channel, flags) def get_msg_pending(self, channel, flags): """ Returns the number of pending CAN messages. :param int channel: CAN channel, to be used (:data:`Channel.CHANNEL_CH0` or :data:`Channel.CHANNEL_CH1`). :param int flags: Flags specifies which buffers should be checked (see enum :class:`PendingFlags`). :return: The number of pending messages. :rtype: int """ count = DWORD(0) UcanGetMsgPending(self._handle, channel, flags, byref(count)) return count.value def get_can_error_counter(self, channel): """ Reads the current value of the error counters within the CAN controller. :param int channel: CAN channel, to be used (:data:`Channel.CHANNEL_CH0` or :data:`Channel.CHANNEL_CH1`). :return: Tuple with the TX and RX error counter. :rtype: tuple(int, int) .. note:: Only available for systec USB-CANmoduls (NOT for GW-001 and GW-002 !!!). """ tx_error_counter = DWORD(0) rx_error_counter = DWORD(0) UcanGetCanErrorCounter(self._handle, channel, byref(tx_error_counter), byref(rx_error_counter)) return tx_error_counter, rx_error_counter def set_tx_timeout(self, channel, timeout): """ Sets the transmission timeout. :param int channel: CAN channel, to be used (:data:`Channel.CHANNEL_CH0` or :data:`Channel.CHANNEL_CH1`). :param float timeout: Transmit timeout in seconds (value 0 disables this feature). """ UcanSetTxTimeout(self._handle, channel, int(timeout * 1000)) def shutdown(self, channel=Channel.CHANNEL_ALL, shutdown_hardware=True): """ Shuts down all CAN interfaces and/or the hardware interface. :param int channel: CAN channel, to be used (:data:`Channel.CHANNEL_CH0`, :data:`Channel.CHANNEL_CH1` or :data:`Channel.CHANNEL_ALL`) :param bool shutdown_hardware: If true then the hardware interface will be closed too. """ # shutdown each channel if it's initialized for _channel, is_initialized in self._ch_is_initialized.items(): if is_initialized and (_channel == channel or channel == Channel.CHANNEL_ALL or shutdown_hardware): UcanDeinitCanEx(self._handle, _channel) self._ch_is_initialized[_channel] = False # shutdown hardware if self._hw_is_initialized and shutdown_hardware: UcanDeinitHardware(self._handle) self._hw_is_initialized = False self._handle = Handle(INVALID_HANDLE) @staticmethod def get_user_dll_version(): """ Returns the version number of the USBCAN-library. :return: Software version number. :rtype: int """ return UcanGetVersionEx(VersionType.VER_TYPE_USER_DLL) @staticmethod def set_debug_mode(level, filename, flags=0): """ This function enables the creation of a debug log file out of the USBCAN-library. If this feature has already been activated via the USB-CANmodul Control, the content of the “old†log file will be copied to the new file. Further debug information will be appended to the new file. :param int level: Debug level (bit format). :param str filename: File path to debug log file. :param int flags: Additional flags (bit0: file append mode). :return: False if logfile not created otherwise True. :rtype: bool """ return UcanSetDebugMode(level, filename, flags) @staticmethod def get_can_status_message(can_status): """ Converts a given CAN status value to the appropriate message string. :param can_status: CAN status value from method :meth:`get_status` (see enum :class:`CanStatus`) :return: Status message string. :rtype: str """ status_msgs = { CanStatus.CANERR_TXMSGLOST: "Transmit message lost", CanStatus.CANERR_MEMTEST: "Memory test failed", CanStatus.CANERR_REGTEST: "Register test failed", CanStatus.CANERR_QXMTFULL: "Transmit queue is full", CanStatus.CANERR_QOVERRUN: "Receive queue overrun", CanStatus.CANERR_QRCVEMPTY: "Receive queue is empty", CanStatus.CANERR_BUSOFF: "Bus Off", CanStatus.CANERR_BUSHEAVY: "Error Passive", CanStatus.CANERR_BUSLIGHT: "Warning Limit", CanStatus.CANERR_OVERRUN: "Rx-buffer is full", CanStatus.CANERR_XMTFULL: "Tx-buffer is full", } return "OK" if can_status == CanStatus.CANERR_OK \ else ", ".join(msg for status, msg in status_msgs.items() if can_status & status) @staticmethod def get_baudrate_message(baudrate): """ Converts a given baud rate value for GW-001/GW-002 to the appropriate message string. :param Baudrate baudrate: Bus Timing Registers, BTR0 in high order byte and BTR1 in low order byte (see enum :class:`Baudrate`) :return: Baud rate message string. :rtype: str """ baudrate_msgs = { Baudrate.BAUD_AUTO: "auto baudrate", Baudrate.BAUD_10kBit: "10 kBit/sec", Baudrate.BAUD_20kBit: "20 kBit/sec", Baudrate.BAUD_50kBit: "50 kBit/sec", Baudrate.BAUD_100kBit: "100 kBit/sec", Baudrate.BAUD_125kBit: "125 kBit/sec", Baudrate.BAUD_250kBit: "250 kBit/sec", Baudrate.BAUD_500kBit: "500 kBit/sec", Baudrate.BAUD_800kBit: "800 kBit/sec", Baudrate.BAUD_1MBit: "1 MBit/s", Baudrate.BAUD_USE_BTREX: "BTR Ext is used", } return baudrate_msgs.get(baudrate, "BTR is unknown (user specific)") @staticmethod def get_baudrate_ex_message(baudrate_ex): """ Converts a given baud rate value for systec USB-CANmoduls to the appropriate message string. :param BaudrateEx baudrate_ex: Bus Timing Registers (see enum :class:`BaudrateEx`) :return: Baud rate message string. :rtype: str """ baudrate_ex_msgs = { Baudrate.BAUDEX_AUTO: "auto baudrate", Baudrate.BAUDEX_10kBit: "10 kBit/sec", Baudrate.BAUDEX_SP2_10kBit: "10 kBit/sec", Baudrate.BAUDEX_20kBit: "20 kBit/sec", Baudrate.BAUDEX_SP2_20kBit: "20 kBit/sec", Baudrate.BAUDEX_50kBit: "50 kBit/sec", Baudrate.BAUDEX_SP2_50kBit: "50 kBit/sec", Baudrate.BAUDEX_100kBit: "100 kBit/sec", Baudrate.BAUDEX_SP2_100kBit: "100 kBit/sec", Baudrate.BAUDEX_125kBit: "125 kBit/sec", Baudrate.BAUDEX_SP2_125kBit: "125 kBit/sec", Baudrate.BAUDEX_250kBit: "250 kBit/sec", Baudrate.BAUDEX_SP2_250kBit: "250 kBit/sec", Baudrate.BAUDEX_500kBit: "500 kBit/sec", Baudrate.BAUDEX_SP2_500kBit: "500 kBit/sec", Baudrate.BAUDEX_800kBit: "800 kBit/sec", Baudrate.BAUDEX_SP2_800kBit: "800 kBit/sec", Baudrate.BAUDEX_1MBit: "1 MBit/s", Baudrate.BAUDEX_SP2_1MBit: "1 MBit/s", Baudrate.BAUDEX_USE_BTR01: "BTR0/BTR1 is used", } return baudrate_ex_msgs.get(baudrate_ex, "BTR is unknown (user specific)") @staticmethod def get_product_code_message(product_code): product_code_msgs = { ProductCode.PRODCODE_PID_GW001: "GW-001", ProductCode.PRODCODE_PID_GW002: "GW-002", ProductCode.PRODCODE_PID_MULTIPORT: "Multiport CAN-to-USB G3", ProductCode.PRODCODE_PID_BASIC: "USB-CANmodul1 G3", ProductCode.PRODCODE_PID_ADVANCED: "USB-CANmodul2 G3", ProductCode.PRODCODE_PID_USBCAN8: "USB-CANmodul8 G3", ProductCode.PRODCODE_PID_USBCAN16: "USB-CANmodul16 G3", ProductCode.PRODCODE_PID_RESERVED3: "Reserved", ProductCode.PRODCODE_PID_ADVANCED_G4: "USB-CANmodul2 G4", ProductCode.PRODCODE_PID_BASIC_G4: "USB-CANmodul1 G4", ProductCode.PRODCODE_PID_RESERVED1: "Reserved", ProductCode.PRODCODE_PID_RESERVED2: "Reserved", } return product_code_msgs.get(product_code & PRODCODE_MASK_PID, "Product code is unknown") @classmethod def convert_to_major_ver(cls, version): """ Converts the a version number into the major version. :param int version: Version number to be converted. :return: Major version. :rtype: int """ return version & 0xFF @classmethod def convert_to_minor_ver(cls, version): """ Converts the a version number into the minor version. :param int version: Version number to be converted. :return: Minor version. :rtype: int """ return (version & 0xFF00) >> 8 @classmethod def convert_to_release_ver(cls, version): """ Converts the a version number into the release version. :param int version: Version number to be converted. :return: Release version. :rtype: int """ return (version & 0xFFFF0000) >> 16 @classmethod def check_version_is_equal_or_higher(cls, version, cmp_major, cmp_minor): """ Checks if the version is equal or higher than a specified value. :param int version: Version number to be checked. :param int cmp_major: Major version to be compared with. :param int cmp_minor: Minor version to be compared with. :return: True if equal or higher, otherwise False. :rtype: bool """ return (cls.convert_to_major_ver(version) > cmp_major) or \ (cls.convert_to_major_ver(version) == cmp_major and cls.convert_to_minor_ver(version) >= cmp_minor) @classmethod def check_is_systec(cls, hw_info_ex): """ Checks whether the module is a systec USB-CANmodul. :param HardwareInfoEx hw_info_ex: Extended hardware information structure (see method :meth:`get_hardware_info`). :return: True when the module is a systec USB-CANmodul, otherwise False. :rtype: bool """ return (hw_info_ex.m_dwProductCode & PRODCODE_MASK_PID) >= ProductCode.PRODCODE_PID_MULTIPORT @classmethod def check_is_G4(cls, hw_info_ex): """ Checks whether the module is an USB-CANmodul of fourth generation (G4). :param HardwareInfoEx hw_info_ex: Extended hardware information structure (see method :meth:`get_hardware_info`). :return: True when the module is an USB-CANmodul G4, otherwise False. :rtype: bool """ return hw_info_ex.m_dwProductCode & PRODCODE_PID_G4 @classmethod def check_is_G3(cls, hw_info_ex): """ Checks whether the module is an USB-CANmodul of third generation (G3). :param HardwareInfoEx hw_info_ex: Extended hardware information structure (see method :meth:`get_hardware_info`). :return: True when the module is an USB-CANmodul G3, otherwise False. :rtype: bool """ return cls.check_is_systec(hw_info_ex) and not cls.check_is_G4(hw_info_ex) @classmethod def check_support_cyclic_msg(cls, hw_info_ex): """ Checks whether the module supports automatically transmission of cyclic CAN messages. :param HardwareInfoEx hw_info_ex: Extended hardware information structure (see method :meth:`get_hardware_info`). :return: True when the module does support cyclic CAN messages, otherwise False. :rtype: bool """ return cls.check_is_systec(hw_info_ex) and \ cls.check_version_is_equal_or_higher(hw_info_ex.m_dwFwVersionEx, 3, 6) @classmethod def check_support_two_channel(cls, hw_info_ex): """ Checks whether the module supports two CAN channels (at logical device). :param HardwareInfoEx hw_info_ex: Extended hardware information structure (see method :meth:`get_hardware_info`). :return: True when the module (logical device) does support two CAN channels, otherwise False. :rtype: bool """ return cls.check_is_systec(hw_info_ex) and (hw_info_ex.m_dwProductCode & PRODCODE_PID_TWO_CHA) @classmethod def check_support_term_resistor(cls, hw_info_ex): """ Checks whether the module supports a termination resistor at the CAN bus. :param HardwareInfoEx hw_info_ex: Extended hardware information structure (see method :meth:`get_hardware_info`). :return: True when the module does support a termination resistor. :rtype: bool """ return hw_info_ex.m_dwProductCode & PRODCODE_PID_TERM @classmethod def check_support_user_port(cls, hw_info_ex): """ Checks whether the module supports a user I/O port. :param HardwareInfoEx hw_info_ex: Extended hardware information structure (see method :meth:`get_hardware_info`). :return: True when the module supports a user I/O port, otherwise False. :rtype: bool """ return ((hw_info_ex.m_dwProductCode & PRODCODE_MASK_PID) != ProductCode.PRODCODE_PID_BASIC) \ and ((hw_info_ex.m_dwProductCode & PRODCODE_MASK_PID) != ProductCode.PRODCODE_PID_RESERVED1) \ and cls.check_version_is_equal_or_higher(hw_info_ex.m_dwFwVersionEx, 2, 16) @classmethod def check_support_rb_user_port(cls, hw_info_ex): """ Checks whether the module supports a user I/O port including read back feature. :param HardwareInfoEx hw_info_ex: Extended hardware information structure (see method :meth:`get_hardware_info`). :return: True when the module does support a user I/O port including the read back feature, otherwise False. :rtype: bool """ return hw_info_ex.m_dwProductCode & PRODCODE_PID_RBUSER @classmethod def check_support_rb_can_port(cls, hw_info_ex): """ Checks whether the module supports a CAN I/O port including read back feature. :param HardwareInfoEx hw_info_ex: Extended hardware information structure (see method :meth:`get_hardware_info`). :return: True when the module does support a CAN I/O port including the read back feature, otherwise False. :rtype: bool """ return hw_info_ex.m_dwProductCode & PRODCODE_PID_RBCAN @classmethod def check_support_ucannet(cls, hw_info_ex): """ Checks whether the module supports the usage of USB-CANnetwork driver. :param HardwareInfoEx hw_info_ex: Extended hardware information structure (see method :meth:`get_hardware_info`). :return: True when the module does support the usage of the USB-CANnetwork driver, otherwise False. :rtype: bool """ return cls.check_is_systec(hw_info_ex) and \ cls.check_version_is_equal_or_higher(hw_info_ex.m_dwFwVersionEx, 3, 8) @classmethod def calculate_amr(cls, is_extended, from_id, to_id, rtr_only=False, rtr_too=True): """ Calculates AMR using CAN-ID range as parameter. :param bool is_extended: If True parameters from_id and to_id contains 29-bit CAN-ID. :param int from_id: First CAN-ID which should be received. :param int to_id: Last CAN-ID which should be received. :param bool rtr_only: If True only RTR-Messages should be received, and rtr_too will be ignored. :param bool rtr_too: If True CAN data frames and RTR-Messages should be received. :return: Value for AMR. :rtype: int """ return (((from_id ^ to_id) << 3) | (0x7 if rtr_too and not rtr_only else 0x3)) if is_extended else \ (((from_id ^ to_id) << 21) | (0x1FFFFF if rtr_too and not rtr_only else 0xFFFFF)) @classmethod def calculate_acr(cls, is_extended, from_id, to_id, rtr_only=False, rtr_too=True): """ Calculates ACR using CAN-ID range as parameter. :param bool is_extended: If True parameters from_id and to_id contains 29-bit CAN-ID. :param int from_id: First CAN-ID which should be received. :param int to_id: Last CAN-ID which should be received. :param bool rtr_only: If True only RTR-Messages should be received, and rtr_too will be ignored. :param bool rtr_too: If True CAN data frames and RTR-Messages should be received. :return: Value for ACR. :rtype: int """ return (((from_id & to_id) << 3) | (0x04 if rtr_only else 0)) if is_extended else \ (((from_id & to_id) << 21) | (0x100000 if rtr_only else 0)) def _connect_control(self, event, param, arg): """ Is the actual callback function for :meth:`init_hw_connect_control_ex`. :param event: Event (:data:`CbEvent.EVENT_CONNECT`, :data:`CbEvent.EVENT_DISCONNECT` or :data:`CbEvent.EVENT_FATALDISCON`). :param param: Additional parameter depending on the event. - CbEvent.EVENT_CONNECT: always 0 - CbEvent.EVENT_DISCONNECT: always 0 - CbEvent.EVENT_FATALDISCON: USB-CAN-Handle of the disconnected module :param arg: Additional parameter defined with :meth:`init_hardware_ex` (not used in this wrapper class). """ log.debug("Event: %s, Param: %s" % (event, param)) if event == CbEvent.EVENT_FATALDISCON: self.fatal_disconnect_event(param) elif event == CbEvent.EVENT_CONNECT: self.connect_event() elif event == CbEvent.EVENT_DISCONNECT: self.disconnect_event() def _callback(self, handle, event, channel, arg): """ Is called if a working event occurred. :param int handle: USB-CAN-Handle returned by the function :meth:`init_hardware`. :param int event: Event type. :param int channel: CAN channel (:data:`Channel.CHANNEL_CH0`, :data:`Channel.CHANNEL_CH1` or :data:`Channel.CHANNEL_ANY`). :param arg: Additional parameter defined with :meth:`init_hardware_ex`. """ log.debug("Handle: %s, Event: %s, Channel: %s" % (handle, event, channel)) if event == CbEvent.EVENT_INITHW: self.init_hw_event() elif event == CbEvent.EVENT_init_can: self.init_can_event(channel) elif event == CbEvent.EVENT_RECEIVE: self.can_msg_received_event(channel) elif event == CbEvent.EVENT_STATUS: self.status_event(channel) elif event == CbEvent.EVENT_DEINIT_CAN: self.deinit_can_event(channel) elif event == CbEvent.EVENT_DEINITHW: self.deinit_hw_event() def init_hw_event(self): """ Event occurs when an USB-CANmodul has been initialized (see method :meth:`init_hardware`). .. note:: To be overridden by subclassing. """ pass def init_can_event(self, channel): """ Event occurs when a CAN interface of an USB-CANmodul has been initialized. :param int channel: Specifies the CAN channel which was initialized (see method :meth:`init_can`). .. note:: To be overridden by subclassing. """ pass def can_msg_received_event(self, channel): """ Event occurs when at leas one CAN message has been received. Call the method :meth:`read_can_msg` to receive the CAN messages. :param int channel: Specifies the CAN channel which received CAN messages. .. note:: To be overridden by subclassing. """ pass def status_event(self, channel): """ Event occurs when the error status of a module has been changed. Call the method :meth:`get_status` to receive the error status. :param int channel: Specifies the CAN channel which status has been changed. .. note:: To be overridden by subclassing. """ pass def deinit_can_event(self, channel): """ Event occurs when a CAN interface has been deinitialized (see method :meth:`shutdown`). :param int channel: Specifies the CAN channel which status has been changed. .. note:: To be overridden by subclassing. """ pass def deinit_hw_event(self): """ Event occurs when an USB-CANmodul has been deinitialized (see method :meth:`shutdown`). .. note:: To be overridden by subclassing. """ pass def connect_event(self): """ Event occurs when a new USB-CANmodul has been connected to the host. .. note:: To be overridden by subclassing. """ pass def disconnect_event(self): """ Event occurs when an USB-CANmodul has been disconnected from the host. .. note:: To be overridden by subclassing. """ pass def fatal_disconnect_event(self, device_number): """ Event occurs when an USB-CANmodul has been disconnected from the host which was currently initialized. No method can be called for this module. :param int device_number: The device number which was disconnected. .. note:: To be overridden by subclassing. """ pass UcanServer._enum_callback_ref = EnumCallback(UcanServer._enum_callback) python-can-3.3.2.final/can/interfaces/systec/ucanbus.py000066400000000000000000000227161352572415400231170ustar00rootroot00000000000000# coding: utf-8 import logging from threading import Event from can import BusABC, BusState, Message from .constants import * from .structures import * from .ucan import UcanServer log = logging.getLogger('can.systec') class Ucan(UcanServer): """ Wrapper around UcanServer to read messages with timeout using events. """ def __init__(self): super(Ucan, self).__init__() self._msg_received_event = Event() def can_msg_received_event(self, channel): self._msg_received_event.set() def read_can_msg(self, channel, count, timeout): self._msg_received_event.clear() if self.get_msg_pending(channel, PendingFlags.PENDING_FLAG_RX_DLL) == 0: if not self._msg_received_event.wait(timeout): return None, False return super(Ucan, self).read_can_msg(channel, 1) class UcanBus(BusABC): """ The CAN Bus implemented for the SYSTEC interface. """ BITRATES = { 10000: Baudrate.BAUD_10kBit, 20000: Baudrate.BAUD_20kBit, 50000: Baudrate.BAUD_50kBit, 100000: Baudrate.BAUD_100kBit, 125000: Baudrate.BAUD_125kBit, 250000: Baudrate.BAUD_250kBit, 500000: Baudrate.BAUD_500kBit, 800000: Baudrate.BAUD_800kBit, 1000000: Baudrate.BAUD_1MBit } def __init__(self, channel, can_filters=None, **kwargs): """ :param int channel: The Channel id to create this bus with. :param list can_filters: See :meth:`can.BusABC.set_filters`. Backend Configuration :param int bitrate: Channel bitrate in bit/s. Default is 500000. :param int device_number: The device number of the USB-CAN. Valid values: 0 through 254. Special value 255 is reserved to detect the first connected device (should only be used, in case only one module is connected to the computer). Default is 255. :param can.bus.BusState state: BusState of the channel. Default is ACTIVE. :param bool receive_own_messages: If messages transmitted should also be received back. Default is False. :param int rx_buffer_entries: The maximum number of entries in the receive buffer. Default is 4096. :param int tx_buffer_entries: The maximum number of entries in the transmit buffer. Default is 4096. :raises ValueError: If invalid input parameter were passed. :raises can.CanError: If hardware or CAN interface initialization failed. """ try: self._ucan = Ucan() except Exception: raise ImportError("The SYSTEC ucan library has not been initialized.") self.channel = int(channel) device_number = int(kwargs.get('device_number', ANY_MODULE)) # configuration options bitrate = kwargs.get('bitrate', 500000) if bitrate not in self.BITRATES: raise ValueError("Invalid bitrate {}".format(bitrate)) state = kwargs.get('state', BusState.ACTIVE) if state is BusState.ACTIVE or state is BusState.PASSIVE: self._state = state else: raise ValueError("BusState must be Active or Passive") # get parameters self._params = { "mode": Mode.MODE_NORMAL | (Mode.MODE_TX_ECHO if kwargs.get('receive_own_messages') else 0) | (Mode.MODE_LISTEN_ONLY if state is BusState.PASSIVE else 0), "BTR": self.BITRATES[bitrate] } # get extra parameters if kwargs.get("rx_buffer_entries"): self._params["rx_buffer_entries"] = int(kwargs.get("rx_buffer_entries")) if kwargs.get("tx_buffer_entries"): self._params["tx_buffer_entries"] = int(kwargs.get("tx_buffer_entries")) self._ucan.init_hardware(device_number=device_number) self._ucan.init_can(self.channel, **self._params) hw_info_ex, _, _ = self._ucan.get_hardware_info() self.channel_info = '%s, S/N %s, CH %s, BTR %s' % ( self._ucan.get_product_code_message(hw_info_ex.product_code), hw_info_ex.serial, self.channel, self._ucan.get_baudrate_message(self.BITRATES[bitrate]) ) super(UcanBus, self).__init__(channel=channel, can_filters=can_filters, **kwargs) def _recv_internal(self, timeout): message, _ = self._ucan.read_can_msg(self.channel, 1, timeout) if not message: return None, False msg = Message(timestamp=float(message[0].time) / 1000.0, is_remote_frame=bool(message[0].frame_format & MsgFrameFormat.MSG_FF_RTR), is_extended_id=bool(message[0].frame_format & MsgFrameFormat.MSG_FF_EXT), arbitration_id=message[0].id, dlc=len(message[0].data), data=message[0].data) return msg, self._is_filtered def send(self, msg, timeout=None): """ Sends one CAN message. When a transmission timeout is set the firmware tries to send a message within this timeout. If it could not be sent the firmware sets the "auto delete" state. Within this state all transmit CAN messages for this channel will be deleted automatically for not blocking the other channel. :param can.Message msg: The CAN message. :param float timeout: Transmit timeout in seconds (value 0 switches off the "auto delete") :raises can.CanError: If the message could not be sent. """ if timeout is not None and timeout >= 0: self._ucan.set_tx_timeout(self.channel, int(timeout * 1000)) message = CanMsg(msg.arbitration_id, MsgFrameFormat.MSG_FF_STD | (MsgFrameFormat.MSG_FF_EXT if msg.is_extended_id else 0) | (MsgFrameFormat.MSG_FF_RTR if msg.is_remote_frame else 0), msg.data) self._ucan.write_can_msg(self.channel, [message]) @staticmethod def _detect_available_configs(): configs = [] try: for index, is_used, hw_info_ex, init_info in Ucan.enumerate_hardware(): configs.append({'interface': 'systec', 'channel': Channel.CHANNEL_CH0, 'device_number': hw_info_ex.device_number}) if Ucan.check_support_two_channel(hw_info_ex): configs.append({'interface': 'systec', 'channel': Channel.CHANNEL_CH1, 'device_number': hw_info_ex.device_number}) except: log.warning("The SYSTEC ucan library has not been initialized.") return configs def _apply_filters(self, filters): if filters and len(filters) == 1: can_id = filters[0]['can_id'] can_mask = filters[0]['can_mask'] self._ucan.set_acceptance(self.channel, can_mask, can_id) self._is_filtered = True log.info('Hardware filtering on ID 0x%X, mask 0x%X', can_id, can_mask) else: self._ucan.set_acceptance(self.channel) self._is_filtered = False log.info('Hardware filtering has been disabled') def flush_tx_buffer(self): """ Flushes the transmit buffer. :raises can.CanError: If flushing of the transmit buffer failed. """ log.info('Flushing transmit buffer') self._ucan.reset_can(self.channel, ResetFlags.RESET_ONLY_TX_BUFF) @staticmethod def create_filter(extended, from_id, to_id, rtr_only, rtr_too): """ Calculates AMR and ACR using CAN-ID as parameter. :param bool extended: if True parameters from_id and to_id contains 29-bit CAN-ID :param int from_id: first CAN-ID which should be received :param int to_id: last CAN-ID which should be received :param bool rtr_only: if True only RTR-Messages should be received, and rtr_too will be ignored :param bool rtr_too: if True CAN data frames and RTR-Messages should be received :return: Returns list with one filter containing a "can_id", a "can_mask" and "extended" key. """ return [{ "can_id": Ucan.calculate_acr(extended, from_id, to_id, rtr_only, rtr_too), "can_mask": Ucan.calculate_amr(extended, from_id, to_id, rtr_only, rtr_too), "extended": extended }] @property def state(self): return self._state @state.setter def state(self, new_state): if self._state is not BusState.ERROR and (new_state is BusState.ACTIVE or new_state is BusState.PASSIVE): # close the CAN channel self._ucan.shutdown(self.channel, False) # set mode if new_state is BusState.ACTIVE: self._params["mode"] &= ~Mode.MODE_LISTEN_ONLY else: self._params["mode"] |= Mode.MODE_LISTEN_ONLY # reinitialize CAN channel self._ucan.init_can(self.channel, **self._params) def shutdown(self): """ Shuts down all CAN interfaces and hardware interface. """ try: self._ucan.shutdown() except Exception as ex: log.error(ex) python-can-3.3.2.final/can/interfaces/usb2can/000077500000000000000000000000001352572415400211205ustar00rootroot00000000000000python-can-3.3.2.final/can/interfaces/usb2can/__init__.py000066400000000000000000000002501352572415400232260ustar00rootroot00000000000000# coding: utf-8 """ """ from __future__ import absolute_import from .usb2canInterface import Usb2canBus from .usb2canabstractionlayer import Usb2CanAbstractionLayer python-can-3.3.2.final/can/interfaces/usb2can/serial_selector.py000066400000000000000000000026061352572415400246550ustar00rootroot00000000000000# coding: utf-8 """ """ from __future__ import division, print_function, absolute_import import logging try: import win32com.client except ImportError: logging.warning("win32com.client module required for usb2can") raise def WMIDateStringToDate(dtmDate): if (dtmDate[4] == 0): strDateTime = dtmDate[5] + '/' else: strDateTime = dtmDate[4] + dtmDate[5] + '/' if (dtmDate[6] == 0): strDateTime = strDateTime + dtmDate[7] + '/' else: strDateTime = strDateTime + dtmDate[6] + dtmDate[7] + '/' strDateTime = strDateTime + dtmDate[0] + dtmDate[1] + dtmDate[2] + dtmDate[3] + ' ' + dtmDate[8] + dtmDate[9] \ + ':' + dtmDate[10] + dtmDate[11] + ':' + dtmDate[12] + dtmDate[13] return strDateTime def find_serial_devices(serial_matcher="ED"): """ Finds a list of USB devices where the serial number (partially) matches the given string. :param str serial_matcher (optional): only device IDs starting with this string are returned :rtype: List[str] """ objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator") objSWbemServices = objWMIService.ConnectServer(".", "root\cimv2") items = objSWbemServices.ExecQuery("SELECT * FROM Win32_USBControllerDevice") ids = (item.Dependent.strip('"')[-8:] for item in items) return [e for e in ids if e.startswith(serial_matcher)] python-can-3.3.2.final/can/interfaces/usb2can/usb2canInterface.py000066400000000000000000000124041352572415400246510ustar00rootroot00000000000000# coding: utf-8 """ This interface is for Windows only, otherwise use socketCAN. """ from __future__ import division, print_function, absolute_import import logging from ctypes import byref from can import BusABC, Message, CanError from .usb2canabstractionlayer import * from .serial_selector import find_serial_devices # Set up logging log = logging.getLogger('can.usb2can') def message_convert_tx(msg): message_tx = CanalMsg() length = msg.dlc message_tx.sizeData = length message_tx.id = msg.arbitration_id for i in range(length): message_tx.data[i] = msg.data[i] message_tx.flags = 0x80000000 if msg.is_error_frame: message_tx.flags |= IS_ERROR_FRAME if msg.is_remote_frame: message_tx.flags |= IS_REMOTE_FRAME if msg.is_extended_id: message_tx.flags |= IS_ID_TYPE return message_tx def message_convert_rx(message_rx): """convert the message from the CANAL type to pythoncan type""" is_extended_id = bool(message_rx.flags & IS_ID_TYPE) is_remote_frame = bool(message_rx.flags & IS_REMOTE_FRAME) is_error_frame = bool(message_rx.flags & IS_ERROR_FRAME) return Message(timestamp=message_rx.timestamp, is_remote_frame=is_remote_frame, is_extended_id=is_extended_id, is_error_frame=is_error_frame, arbitration_id=message_rx.id, dlc=message_rx.sizeData, data=message_rx.data[:message_rx.sizeData]) class Usb2canBus(BusABC): """Interface to a USB2CAN Bus. This interface only works on Windows. Please use socketcan on Linux. :param str channel (optional): The device's serial number. If not provided, Windows Management Instrumentation will be used to identify the first such device. :param int bitrate (optional): Bitrate of channel in bit/s. Values will be limited to a maximum of 1000 Kb/s. Default is 500 Kbs :param int flags (optional): Flags to directly pass to open function of the usb2can abstraction layer. :param str dll (optional): Path to the DLL with the CANAL API to load Defaults to 'usb2can.dll' :param str serial (optional): Alias for `channel` that is provided for legacy reasons. If both `serial` and `channel` are set, `serial` will be used and channel will be ignored. """ def __init__(self, channel=None, dll="usb2can.dll", flags=0x00000008, bitrate=500000, *args, **kwargs): self.can = Usb2CanAbstractionLayer(dll) # get the serial number of the device if "serial" in kwargs: device_id = kwargs["serial"] else: device_id = channel # search for a serial number if the device_id is None or empty if not device_id: devices = find_serial_devices() if not devices: raise CanError("could not automatically find any device") device_id = devices[0] # convert to kb/s and cap: max rate is 1000 kb/s baudrate = min(int(bitrate // 1000), 1000) self.channel_info = "USB2CAN device {}".format(device_id) connector = "{}; {}".format(device_id, baudrate) self.handle = self.can.open(connector, flags) super(Usb2canBus, self).__init__(channel=channel, dll=dll, flags=flags, bitrate=bitrate, *args, **kwargs) def send(self, msg, timeout=None): tx = message_convert_tx(msg) if timeout: status = self.can.blocking_send(self.handle, byref(tx), int(timeout * 1000)) else: status = self.can.send(self.handle, byref(tx)) if status != CANAL_ERROR_SUCCESS: raise CanError("could not send message: status == {}".format(status)) def _recv_internal(self, timeout): messagerx = CanalMsg() if timeout == 0: status = self.can.receive(self.handle, byref(messagerx)) else: time = 0 if timeout is None else int(timeout * 1000) status = self.can.blocking_receive(self.handle, byref(messagerx), time) if status == CANAL_ERROR_SUCCESS: rx = message_convert_rx(messagerx) elif status == CANAL_ERROR_RCV_EMPTY or status == CANAL_ERROR_TIMEOUT: rx = None else: log.error('Canal Error %s', status) rx = None return rx, False def shutdown(self): """ Shuts down connection to the device safely. :raise cam.CanError: is closing the connection did not work """ status = self.can.close(self.handle) if status != CANAL_ERROR_SUCCESS: raise CanError("could not shut down bus: status == {}".format(status)) @staticmethod def _detect_available_configs(serial_matcher=None): """ Uses the Windows Management Instrumentation to identify serial devices. :param str serial_matcher (optional): search string for automatic detection of the device serial """ if serial_matcher: channels = find_serial_devices(serial_matcher) else: channels = find_serial_devices() return [{'interface': 'usb2can', 'channel': c} for c in channels] python-can-3.3.2.final/can/interfaces/usb2can/usb2canabstractionlayer.py000066400000000000000000000130221352572415400263140ustar00rootroot00000000000000# coding: utf-8 """ This wrapper is for windows or direct access via CANAL API. Socket CAN is recommended under Unix/Linux systems. """ from __future__ import division, print_function, absolute_import from ctypes import * from struct import * import logging import can log = logging.getLogger('can.usb2can') # type definitions flags = c_ulong pConfigureStr = c_char_p handle = c_long timeout = c_ulong filter_t = c_ulong # flags mappings IS_ERROR_FRAME = 4 IS_REMOTE_FRAME = 2 IS_ID_TYPE = 1 CANAL_ERROR_SUCCESS = 0 CANAL_ERROR_RCV_EMPTY = 19 CANAL_ERROR_TIMEOUT = 32 class CanalStatistics(Structure): _fields_ = [('ReceiveFrams', c_ulong), ('TransmistFrams', c_ulong), ('ReceiveData', c_ulong), ('TransmitData', c_ulong), ('Overruns', c_ulong), ('BusWarnings', c_ulong), ('BusOff', c_ulong)] stat = CanalStatistics class CanalStatus(Structure): _fields_ = [('channel_status', c_ulong), ('lasterrorcode', c_ulong), ('lasterrorsubcode', c_ulong), ('lasterrorstr', c_byte * 80)] # data type for the CAN Message class CanalMsg(Structure): _fields_ = [('flags', c_ulong), ('obid', c_ulong), ('id', c_ulong), ('sizeData', c_ubyte), ('data', c_ubyte * 8), ('timestamp', c_ulong)] class Usb2CanAbstractionLayer: """A low level wrapper around the usb2can library. Documentation: http://www.8devices.com/media/products/usb2can/downloads/CANAL_API.pdf """ def __init__(self, dll="usb2can.dll"): """ :type dll: str or path-like :param dll (optional): the path to the usb2can DLL to load :raises OSError: if the DLL could not be loaded """ self.__m_dllBasic = windll.LoadLibrary(dll) if self.__m_dllBasic is None: log.warning('DLL failed to load at path: {}'.format(dll)) def open(self, configuration, flags): """ Opens a CAN connection using `CanalOpen()`. :param str configuration: the configuration: "device_id; baudrate" :param int flags: the flags to be set :raises can.CanError: if any error occurred :returns: Valid handle for CANAL API functions on success """ try: # we need to convert this into bytes, since the underlying DLL cannot # handle non-ASCII configuration strings config_ascii = configuration.encode('ascii', 'ignore') result = self.__m_dllBasic.CanalOpen(config_ascii, flags) except Exception as ex: # catch any errors thrown by this call and re-raise raise can.CanError('CanalOpen() failed, configuration: "{}", error: {}' .format(configuration, ex)) else: # any greater-than-zero return value indicates a success # (see https://grodansparadis.gitbooks.io/the-vscp-daemon/canal_interface_specification.html) # raise an error if the return code is <= 0 if result <= 0: raise can.CanError('CanalOpen() failed, configuration: "{}", return code: {}' .format(configuration, result)) else: return result def close(self, handle): try: res = self.__m_dllBasic.CanalClose(handle) return res except: log.warning('Failed to close') raise def send(self, handle, msg): try: res = self.__m_dllBasic.CanalSend(handle, msg) return res except: log.warning('Sending error') raise can.CanError("Failed to transmit frame") def receive(self, handle, msg): try: res = self.__m_dllBasic.CanalReceive(handle, msg) return res except: log.warning('Receive error') raise def blocking_send(self, handle, msg, timeout): try: res = self.__m_dllBasic.CanalBlockingSend(handle, msg, timeout) return res except: log.warning('Blocking send error') raise def blocking_receive(self, handle, msg, timeout): try: res = self.__m_dllBasic.CanalBlockingReceive(handle, msg, timeout) return res except: log.warning('Blocking Receive Failed') raise def get_status(self, handle, CanalStatus): try: res = self.__m_dllBasic.CanalGetStatus(handle, CanalStatus) return res except: log.warning('Get status failed') raise def get_statistics(self, handle, CanalStatistics): try: res = self.__m_dllBasic.CanalGetStatistics(handle, CanalStatistics) return res except: log.warning('Get Statistics failed') raise def get_version(self): try: res = self.__m_dllBasic.CanalGetVersion() return res except: log.warning('Failed to get version info') raise def get_library_version(self): try: res = self.__m_dllBasic.CanalGetDllVersion() return res except: log.warning('Failed to get DLL version') raise def get_vendor_string(self): try: res = self.__m_dllBasic.CanalGetVendorString() return res except: log.warning('Failed to get vendor string') raise python-can-3.3.2.final/can/interfaces/vector/000077500000000000000000000000001352572415400210655ustar00rootroot00000000000000python-can-3.3.2.final/can/interfaces/vector/__init__.py000066400000000000000000000001341352572415400231740ustar00rootroot00000000000000# coding: utf-8 """ """ from .canlib import VectorBus from .exceptions import VectorError python-can-3.3.2.final/can/interfaces/vector/canlib.py000066400000000000000000000423141352572415400226730ustar00rootroot00000000000000# coding: utf-8 """ Ctypes wrapper module for Vector CAN Interface on win32/win64 systems. Authors: Julien Grave , Christian Sandberg """ # Import Standard Python Modules # ============================== import ctypes import logging import sys import time try: # Try builtin Python 3 Windows API from _winapi import WaitForSingleObject, INFINITE HAS_EVENTS = True except ImportError: try: # Try pywin32 package from win32event import WaitForSingleObject, INFINITE HAS_EVENTS = True except ImportError: # Use polling instead HAS_EVENTS = False # Import Modules # ============== from can import BusABC, Message, CanError from can.util import len2dlc, dlc2len from .exceptions import VectorError # Define Module Logger # ==================== LOG = logging.getLogger(__name__) # Import safely Vector API module for Travis tests vxlapi = None try: from . import vxlapi except Exception as exc: LOG.warning('Could not import vxlapi: %s', exc) class VectorBus(BusABC): """The CAN Bus implemented for the Vector interface.""" def __init__(self, channel, can_filters=None, poll_interval=0.01, receive_own_messages=False, bitrate=None, rx_queue_size=2**14, app_name="CANalyzer", serial=None, fd=False, data_bitrate=None, sjwAbr=2, tseg1Abr=6, tseg2Abr=3, sjwDbr=2, tseg1Dbr=6, tseg2Dbr=3, **kwargs): """ :param list channel: The channel indexes to create this bus with. Can also be a single integer or a comma separated string. :param float poll_interval: Poll interval in seconds. :param int bitrate: Bitrate in bits/s. :param int rx_queue_size: Number of messages in receive queue (power of 2). CAN: range 16…32768 CAN-FD: range 8192…524288 :param str app_name: Name of application in Hardware Config. If set to None, the channel should be a global channel index. :param int serial: Serial number of the hardware to be used. If set, the channel parameter refers to the channels ONLY on the specified hardware. If set, the app_name is unused. :param bool fd: If CAN-FD frames should be supported. :param int data_bitrate: Which bitrate to use for data phase in CAN FD. Defaults to arbitration bitrate. """ if vxlapi is None: raise ImportError("The Vector API has not been loaded") self.poll_interval = poll_interval if isinstance(channel, (list, tuple)): self.channels = channel elif isinstance(channel, int): self.channels = [channel] else: # Assume comma separated string of channels self.channels = [int(ch.strip()) for ch in channel.split(',')] self._app_name = app_name.encode() if app_name is not None else '' self.channel_info = 'Application %s: %s' % ( app_name, ', '.join('CAN %d' % (ch + 1) for ch in self.channels)) if serial is not None: app_name = None channel_index = [] channel_configs = get_channel_configs() for channel_config in channel_configs: if channel_config.serialNumber == serial: if channel_config.hwChannel in self.channels: channel_index.append(channel_config.channelIndex) if len(channel_index) > 0: if len(channel_index) != len(self.channels): LOG.info("At least one defined channel wasn't found on the specified hardware.") self.channels = channel_index else: # Is there any better way to raise the error? raise Exception("None of the configured channels could be found on the specified hardware.") vxlapi.xlOpenDriver() self.port_handle = vxlapi.XLportHandle(vxlapi.XL_INVALID_PORTHANDLE) self.mask = 0 self.fd = fd # Get channels masks self.channel_masks = {} self.index_to_channel = {} for channel in self.channels: if app_name: # Get global channel index from application channel hw_type = ctypes.c_uint(0) hw_index = ctypes.c_uint(0) hw_channel = ctypes.c_uint(0) vxlapi.xlGetApplConfig(self._app_name, channel, hw_type, hw_index, hw_channel, vxlapi.XL_BUS_TYPE_CAN) LOG.debug('Channel index %d found', channel) idx = vxlapi.xlGetChannelIndex(hw_type.value, hw_index.value, hw_channel.value) if idx < 0: # Undocumented behavior! See issue #353. # If hardware is unavailable, this function returns -1. # Raise an exception as if the driver # would have signalled XL_ERR_HW_NOT_PRESENT. raise VectorError(vxlapi.XL_ERR_HW_NOT_PRESENT, "XL_ERR_HW_NOT_PRESENT", "xlGetChannelIndex") else: # Channel already given as global channel idx = channel mask = 1 << idx self.channel_masks[channel] = mask self.index_to_channel[idx] = channel self.mask |= mask permission_mask = vxlapi.XLaccess() # Set mask to request channel init permission if needed if bitrate or fd: permission_mask.value = self.mask if fd: vxlapi.xlOpenPort(self.port_handle, self._app_name, self.mask, permission_mask, rx_queue_size, vxlapi.XL_INTERFACE_VERSION_V4, vxlapi.XL_BUS_TYPE_CAN) else: vxlapi.xlOpenPort(self.port_handle, self._app_name, self.mask, permission_mask, rx_queue_size, vxlapi.XL_INTERFACE_VERSION, vxlapi.XL_BUS_TYPE_CAN) LOG.debug( 'Open Port: PortHandle: %d, PermissionMask: 0x%X', self.port_handle.value, permission_mask.value) if permission_mask.value == self.mask: if fd: self.canFdConf = vxlapi.XLcanFdConf() if bitrate: self.canFdConf.arbitrationBitRate = ctypes.c_uint(bitrate) else: self.canFdConf.arbitrationBitRate = ctypes.c_uint(500000) self.canFdConf.sjwAbr = ctypes.c_uint(sjwAbr) self.canFdConf.tseg1Abr = ctypes.c_uint(tseg1Abr) self.canFdConf.tseg2Abr = ctypes.c_uint(tseg2Abr) if data_bitrate: self.canFdConf.dataBitRate = ctypes.c_uint(data_bitrate) else: self.canFdConf.dataBitRate = self.canFdConf.arbitrationBitRate self.canFdConf.sjwDbr = ctypes.c_uint(sjwDbr) self.canFdConf.tseg1Dbr = ctypes.c_uint(tseg1Dbr) self.canFdConf.tseg2Dbr = ctypes.c_uint(tseg2Dbr) vxlapi.xlCanFdSetConfiguration(self.port_handle, self.mask, self.canFdConf) LOG.info('SetFdConfig.: ABaudr.=%u, DBaudr.=%u', self.canFdConf.arbitrationBitRate, self.canFdConf.dataBitRate) LOG.info('SetFdConfig.: sjwAbr=%u, tseg1Abr=%u, tseg2Abr=%u', self.canFdConf.sjwAbr, self.canFdConf.tseg1Abr, self.canFdConf.tseg2Abr) LOG.info('SetFdConfig.: sjwDbr=%u, tseg1Dbr=%u, tseg2Dbr=%u', self.canFdConf.sjwDbr, self.canFdConf.tseg1Dbr, self.canFdConf.tseg2Dbr) else: if bitrate: vxlapi.xlCanSetChannelBitrate(self.port_handle, permission_mask, bitrate) LOG.info('SetChannelBitrate: baudr.=%u',bitrate) else: LOG.info('No init access!') # Enable/disable TX receipts tx_receipts = 1 if receive_own_messages else 0 vxlapi.xlCanSetChannelMode(self.port_handle, self.mask, tx_receipts, 0) if HAS_EVENTS: self.event_handle = vxlapi.XLhandle() vxlapi.xlSetNotification(self.port_handle, self.event_handle, 1) else: LOG.info('Install pywin32 to avoid polling') try: vxlapi.xlActivateChannel(self.port_handle, self.mask, vxlapi.XL_BUS_TYPE_CAN, 0) except VectorError: self.shutdown() raise # Calculate time offset for absolute timestamps offset = vxlapi.XLuint64() vxlapi.xlGetSyncTime(self.port_handle, offset) self._time_offset = time.time() - offset.value * 1e-9 self._is_filtered = False super(VectorBus, self).__init__(channel=channel, can_filters=can_filters, **kwargs) def _apply_filters(self, filters): if filters: # Only up to one filter per ID type allowed if len(filters) == 1 or (len(filters) == 2 and filters[0].get("extended") != filters[1].get("extended")): try: for can_filter in filters: vxlapi.xlCanSetChannelAcceptance(self.port_handle, self.mask, can_filter["can_id"], can_filter["can_mask"], vxlapi.XL_CAN_EXT if can_filter.get("extended") else vxlapi.XL_CAN_STD) except VectorError as exc: LOG.warning("Could not set filters: %s", exc) # go to fallback else: self._is_filtered = True return else: LOG.warning("Only up to one filter per extended or standard ID allowed") # go to fallback # fallback: reset filters self._is_filtered = False try: vxlapi.xlCanSetChannelAcceptance(self.port_handle, self.mask, 0x0, 0x0, vxlapi.XL_CAN_EXT) vxlapi.xlCanSetChannelAcceptance(self.port_handle, self.mask, 0x0, 0x0, vxlapi.XL_CAN_STD) except VectorError as exc: LOG.warning("Could not reset filters: %s", exc) def _recv_internal(self, timeout): end_time = time.time() + timeout if timeout is not None else None if self.fd: event = vxlapi.XLcanRxEvent() else: event = vxlapi.XLevent() event_count = ctypes.c_uint() while True: if self.fd: try: vxlapi.xlCanReceive(self.port_handle, event) except VectorError as exc: if exc.error_code != vxlapi.XL_ERR_QUEUE_IS_EMPTY: raise else: if event.tag == vxlapi.XL_CAN_EV_TAG_RX_OK or event.tag == vxlapi.XL_CAN_EV_TAG_TX_OK: msg_id = event.tagData.canRxOkMsg.canId dlc = dlc2len(event.tagData.canRxOkMsg.dlc) flags = event.tagData.canRxOkMsg.msgFlags timestamp = event.timeStamp * 1e-9 channel = self.index_to_channel.get(event.chanIndex) msg = Message( timestamp=timestamp + self._time_offset, arbitration_id=msg_id & 0x1FFFFFFF, is_extended_id=bool(msg_id & vxlapi.XL_CAN_EXT_MSG_ID), is_remote_frame=bool(flags & vxlapi.XL_CAN_RXMSG_FLAG_RTR), is_error_frame=bool(flags & vxlapi.XL_CAN_RXMSG_FLAG_EF), is_fd=bool(flags & vxlapi.XL_CAN_RXMSG_FLAG_EDL), error_state_indicator=bool(flags & vxlapi.XL_CAN_RXMSG_FLAG_ESI), bitrate_switch=bool(flags & vxlapi.XL_CAN_RXMSG_FLAG_BRS), dlc=dlc, data=event.tagData.canRxOkMsg.data[:dlc], channel=channel) return msg, self._is_filtered else: event_count.value = 1 try: vxlapi.xlReceive(self.port_handle, event_count, event) except VectorError as exc: if exc.error_code != vxlapi.XL_ERR_QUEUE_IS_EMPTY: raise else: if event.tag == vxlapi.XL_RECEIVE_MSG: msg_id = event.tagData.msg.id dlc = event.tagData.msg.dlc flags = event.tagData.msg.flags timestamp = event.timeStamp * 1e-9 channel = self.index_to_channel.get(event.chanIndex) msg = Message( timestamp=timestamp + self._time_offset, arbitration_id=msg_id & 0x1FFFFFFF, is_extended_id=bool(msg_id & vxlapi.XL_CAN_EXT_MSG_ID), is_remote_frame=bool(flags & vxlapi.XL_CAN_MSG_FLAG_REMOTE_FRAME), is_error_frame=bool(flags & vxlapi.XL_CAN_MSG_FLAG_ERROR_FRAME), is_fd=False, dlc=dlc, data=event.tagData.msg.data[:dlc], channel=channel) return msg, self._is_filtered if end_time is not None and time.time() > end_time: return None, self._is_filtered if HAS_EVENTS: # Wait for receive event to occur if timeout is None: time_left_ms = INFINITE else: time_left = end_time - time.time() time_left_ms = max(0, int(time_left * 1000)) WaitForSingleObject(self.event_handle.value, time_left_ms) else: # Wait a short time until we try again time.sleep(self.poll_interval) def send(self, msg, timeout=None): msg_id = msg.arbitration_id if msg.is_extended_id: msg_id |= vxlapi.XL_CAN_EXT_MSG_ID flags = 0 # If channel has been specified, try to send only to that one. # Otherwise send to all channels mask = self.channel_masks.get(msg.channel, self.mask) if self.fd: if msg.is_fd: flags |= vxlapi.XL_CAN_TXMSG_FLAG_EDL if msg.bitrate_switch: flags |= vxlapi.XL_CAN_TXMSG_FLAG_BRS if msg.is_remote_frame: flags |= vxlapi.XL_CAN_TXMSG_FLAG_RTR message_count = 1 MsgCntSent = ctypes.c_uint(1) XLcanTxEvent = vxlapi.XLcanTxEvent() XLcanTxEvent.tag = vxlapi.XL_CAN_EV_TAG_TX_MSG XLcanTxEvent.transId = 0xffff XLcanTxEvent.tagData.canMsg.canId = msg_id XLcanTxEvent.tagData.canMsg.msgFlags = flags XLcanTxEvent.tagData.canMsg.dlc = len2dlc(msg.dlc) for idx, value in enumerate(msg.data): XLcanTxEvent.tagData.canMsg.data[idx] = value vxlapi.xlCanTransmitEx(self.port_handle, mask, message_count, MsgCntSent, XLcanTxEvent) else: if msg.is_remote_frame: flags |= vxlapi.XL_CAN_MSG_FLAG_REMOTE_FRAME message_count = ctypes.c_uint(1) xl_event = vxlapi.XLevent() xl_event.tag = vxlapi.XL_TRANSMIT_MSG xl_event.tagData.msg.id = msg_id xl_event.tagData.msg.dlc = msg.dlc xl_event.tagData.msg.flags = flags for idx, value in enumerate(msg.data): xl_event.tagData.msg.data[idx] = value vxlapi.xlCanTransmit(self.port_handle, mask, message_count, xl_event) def flush_tx_buffer(self): vxlapi.xlCanFlushTransmitQueue(self.port_handle, self.mask) def shutdown(self): vxlapi.xlDeactivateChannel(self.port_handle, self.mask) vxlapi.xlClosePort(self.port_handle) vxlapi.xlCloseDriver() def reset(self): vxlapi.xlDeactivateChannel(self.port_handle, self.mask) vxlapi.xlActivateChannel(self.port_handle, self.mask, vxlapi.XL_BUS_TYPE_CAN, 0) @staticmethod def _detect_available_configs(): configs = [] channel_configs = get_channel_configs() LOG.info('Found %d channels', len(channel_configs)) for channel_config in channel_configs: LOG.info('Channel index %d: %s', channel_config.channelIndex, channel_config.name.decode('ascii')) configs.append({'interface': 'vector', 'app_name': None, 'channel': channel_config.channelIndex}) return configs def get_channel_configs(): if vxlapi is None: return [] driver_config = vxlapi.XLdriverConfig() try: vxlapi.xlOpenDriver() vxlapi.xlGetDriverConfig(driver_config) vxlapi.xlCloseDriver() except: pass return [driver_config.channel[i] for i in range(driver_config.channelCount)] python-can-3.3.2.final/can/interfaces/vector/exceptions.py000066400000000000000000000004371352572415400236240ustar00rootroot00000000000000# coding: utf-8 """ """ from can import CanError class VectorError(CanError): def __init__(self, error_code, error_string, function): self.error_code = error_code text = "%s failed (%s)" % (function, error_string) super(VectorError, self).__init__(text) python-can-3.3.2.final/can/interfaces/vector/vxlapi.py000066400000000000000000000274561352572415400227600ustar00rootroot00000000000000# coding: utf-8 """ Ctypes wrapper module for Vector CAN Interface on win32/win64 systems. Authors: Julien Grave , Christian Sandberg """ # Import Standard Python Modules # ============================== import ctypes import logging import platform from .exceptions import VectorError # Define Module Logger # ==================== LOG = logging.getLogger(__name__) # Vector XL API Definitions # ========================= # Load Windows DLL DLL_NAME = 'vxlapi64' if platform.architecture()[0] == '64bit' else 'vxlapi' _xlapi_dll = ctypes.windll.LoadLibrary(DLL_NAME) XL_BUS_TYPE_CAN = 0x00000001 XL_ERR_QUEUE_IS_EMPTY = 10 XL_ERR_HW_NOT_PRESENT = 129 XL_RECEIVE_MSG = 1 XL_CAN_EV_TAG_RX_OK = 1024 XL_CAN_EV_TAG_TX_OK = 1028 XL_TRANSMIT_MSG = 10 XL_CAN_EV_TAG_TX_MSG = 1088 XL_CAN_EXT_MSG_ID = 0x80000000 XL_CAN_MSG_FLAG_ERROR_FRAME = 0x01 XL_CAN_MSG_FLAG_REMOTE_FRAME = 0x10 XL_CAN_MSG_FLAG_TX_COMPLETED = 0x40 XL_CAN_TXMSG_FLAG_EDL = 0x0001 XL_CAN_TXMSG_FLAG_BRS = 0x0002 XL_CAN_TXMSG_FLAG_RTR = 0x0010 XL_CAN_RXMSG_FLAG_EDL = 0x0001 XL_CAN_RXMSG_FLAG_BRS = 0x0002 XL_CAN_RXMSG_FLAG_ESI = 0x0004 XL_CAN_RXMSG_FLAG_RTR = 0x0010 XL_CAN_RXMSG_FLAG_EF = 0x0200 XL_CAN_STD = 1 XL_CAN_EXT = 2 XLuint64 = ctypes.c_int64 XLaccess = XLuint64 XLhandle = ctypes.c_void_p MAX_MSG_LEN = 8 XL_CAN_MAX_DATA_LEN = 64 # current version XL_INTERFACE_VERSION = 3 XL_INTERFACE_VERSION_V4 = 4 XL_CHANNEL_FLAG_CANFD_ISO_SUPPORT = 0x80000000 # structure for XL_RECEIVE_MSG, XL_TRANSMIT_MSG class s_xl_can_msg(ctypes.Structure): _fields_ = [('id', ctypes.c_ulong), ('flags', ctypes.c_ushort), ('dlc', ctypes.c_ushort), ('res1', XLuint64), ('data', ctypes.c_ubyte * MAX_MSG_LEN), ('res2', XLuint64)] class s_xl_can_ev_error(ctypes.Structure): _fields_ = [('errorCode', ctypes.c_ubyte), ('reserved', ctypes.c_ubyte * 95)] class s_xl_can_ev_chip_state(ctypes.Structure): _fields_ = [('busStatus', ctypes.c_ubyte), ('txErrorCounter', ctypes.c_ubyte), ('rxErrorCounter', ctypes.c_ubyte),('reserved', ctypes.c_ubyte), ('reserved0', ctypes.c_uint)] class s_xl_can_ev_sync_pulse(ctypes.Structure): _fields_ = [('triggerSource', ctypes.c_uint), ('reserved', ctypes.c_uint), ('time', XLuint64)] # BASIC bus message structure class s_xl_tag_data(ctypes.Union): _fields_ = [('msg', s_xl_can_msg)] # CAN FD messages class s_xl_can_ev_rx_msg(ctypes.Structure): _fields_ = [('canId', ctypes.c_uint), ('msgFlags', ctypes.c_uint), ('crc', ctypes.c_uint), ('reserved1', ctypes.c_ubyte * 12), ('totalBitCnt', ctypes.c_ushort), ('dlc', ctypes.c_ubyte), ('reserved', ctypes.c_ubyte * 5), ('data', ctypes.c_ubyte * XL_CAN_MAX_DATA_LEN)] class s_xl_can_ev_tx_request(ctypes.Structure): _fields_ = [('canId', ctypes.c_uint), ('msgFlags', ctypes.c_uint), ('dlc', ctypes.c_ubyte),('txAttemptConf', ctypes.c_ubyte), ('reserved', ctypes.c_ushort), ('data', ctypes.c_ubyte * XL_CAN_MAX_DATA_LEN)] class s_xl_can_tx_msg(ctypes.Structure): _fields_ = [('canId', ctypes.c_uint), ('msgFlags', ctypes.c_uint), ('dlc', ctypes.c_ubyte), ('reserved', ctypes.c_ubyte * 7), ('data', ctypes.c_ubyte * XL_CAN_MAX_DATA_LEN)] class s_rxTagData(ctypes.Union): _fields_ = [('canRxOkMsg', s_xl_can_ev_rx_msg), ('canTxOkMsg', s_xl_can_ev_rx_msg), ('canTxRequest', s_xl_can_ev_tx_request),('canError', s_xl_can_ev_error), ('canChipState', s_xl_can_ev_chip_state),('canSyncPulse', s_xl_can_ev_sync_pulse)] class s_txTagData(ctypes.Union): _fields_ = [('canMsg', s_xl_can_tx_msg)] # BASIC events XLeventTag = ctypes.c_ubyte class XLevent(ctypes.Structure): _fields_ = [('tag', XLeventTag), ('chanIndex', ctypes.c_ubyte), ('transId', ctypes.c_ushort), ('portHandle', ctypes.c_ushort), ('flags', ctypes.c_ubyte), ('reserved', ctypes.c_ubyte), ('timeStamp', XLuint64), ('tagData', s_xl_tag_data)] # CAN FD events class XLcanRxEvent(ctypes.Structure): _fields_ = [('size',ctypes.c_int),('tag', ctypes.c_ushort), ('chanIndex', ctypes.c_ubyte),('reserved', ctypes.c_ubyte), ('userHandle', ctypes.c_int),('flagsChip', ctypes.c_ushort), ('reserved0', ctypes.c_ushort),('reserved1', XLuint64), ('timeStamp', XLuint64),('tagData', s_rxTagData)] class XLcanTxEvent(ctypes.Structure): _fields_ = [('tag', ctypes.c_ushort), ('transId', ctypes.c_ushort), ('chanIndex', ctypes.c_ubyte), ('reserved', ctypes.c_ubyte * 3), ('tagData', s_txTagData)] # CAN FD configuration structure class XLcanFdConf(ctypes.Structure): _fields_ = [('arbitrationBitRate', ctypes.c_uint), ('sjwAbr', ctypes.c_uint), ('tseg1Abr', ctypes.c_uint), ('tseg2Abr', ctypes.c_uint), ('dataBitRate', ctypes.c_uint), ('sjwDbr', ctypes.c_uint), ('tseg1Dbr', ctypes.c_uint), ('tseg2Dbr', ctypes.c_uint), ('reserved', ctypes.c_uint * 2)] class XLchannelConfig(ctypes.Structure): _pack_ = 1 _fields_ = [ ('name', ctypes.c_char * 32), ('hwType', ctypes.c_ubyte), ('hwIndex', ctypes.c_ubyte), ('hwChannel', ctypes.c_ubyte), ('transceiverType', ctypes.c_ushort), ('transceiverState', ctypes.c_ushort), ('configError', ctypes.c_ushort), ('channelIndex', ctypes.c_ubyte), ('channelMask', XLuint64), ('channelCapabilities', ctypes.c_uint), ('channelBusCapabilities', ctypes.c_uint), ('isOnBus', ctypes.c_ubyte), ('connectedBusType', ctypes.c_uint), ('busParams', ctypes.c_ubyte * 32), ('_doNotUse', ctypes.c_uint), ('driverVersion', ctypes.c_uint), ('interfaceVersion', ctypes.c_uint), ('raw_data', ctypes.c_uint * 10), ('serialNumber', ctypes.c_uint), ('articleNumber', ctypes.c_uint), ('transceiverName', ctypes.c_char * 32), ('specialCabFlags', ctypes.c_uint), ('dominantTimeout', ctypes.c_uint), ('dominantRecessiveDelay', ctypes.c_ubyte), ('recessiveDominantDelay', ctypes.c_ubyte), ('connectionInfo', ctypes.c_ubyte), ('currentlyAvailableTimestamps', ctypes.c_ubyte), ('minimalSupplyVoltage', ctypes.c_ushort), ('maximalSupplyVoltage', ctypes.c_ushort), ('maximalBaudrate', ctypes.c_uint), ('fpgaCoreCapabilities', ctypes.c_ubyte), ('specialDeviceStatus', ctypes.c_ubyte), ('channelBusActiveCapabilities', ctypes.c_ushort), ('breakOffset', ctypes.c_ushort), ('delimiterOffset', ctypes.c_ushort), ('reserved', ctypes.c_uint * 3) ] class XLdriverConfig(ctypes.Structure): _fields_ = [ ('dllVersion', ctypes.c_uint), ('channelCount', ctypes.c_uint), ('reserved', ctypes.c_uint * 10), ('channel', XLchannelConfig * 64) ] # driver status XLstatus = ctypes.c_short # porthandle XL_INVALID_PORTHANDLE = (-1) XLportHandle = ctypes.c_long def check_status(result, function, arguments): if result > 0: raise VectorError(result, xlGetErrorString(result).decode(), function.__name__) return result xlGetDriverConfig = _xlapi_dll.xlGetDriverConfig xlGetDriverConfig.argtypes = [ctypes.POINTER(XLdriverConfig)] xlGetDriverConfig.restype = XLstatus xlGetDriverConfig.errcheck = check_status xlOpenDriver = _xlapi_dll.xlOpenDriver xlOpenDriver.argtypes = [] xlOpenDriver.restype = XLstatus xlOpenDriver.errcheck = check_status xlCloseDriver = _xlapi_dll.xlCloseDriver xlCloseDriver.argtypes = [] xlCloseDriver.restype = XLstatus xlCloseDriver.errcheck = check_status xlGetApplConfig = _xlapi_dll.xlGetApplConfig xlGetApplConfig.argtypes = [ ctypes.c_char_p, ctypes.c_uint, ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint), ctypes.c_uint ] xlGetApplConfig.restype = XLstatus xlGetApplConfig.errcheck = check_status xlGetChannelIndex = _xlapi_dll.xlGetChannelIndex xlGetChannelIndex.argtypes = [ctypes.c_int, ctypes.c_int, ctypes.c_int] xlGetChannelIndex.restype = ctypes.c_int xlGetChannelMask = _xlapi_dll.xlGetChannelMask xlGetChannelMask.argtypes = [ctypes.c_int, ctypes.c_int, ctypes.c_int] xlGetChannelMask.restype = XLaccess xlOpenPort = _xlapi_dll.xlOpenPort xlOpenPort.argtypes = [ ctypes.POINTER(XLportHandle), ctypes.c_char_p, XLaccess, ctypes.POINTER(XLaccess), ctypes.c_uint, ctypes.c_uint, ctypes.c_uint ] xlOpenPort.restype = XLstatus xlOpenPort.errcheck = check_status xlGetSyncTime = _xlapi_dll.xlGetSyncTime xlGetSyncTime.argtypes = [XLportHandle, ctypes.POINTER(XLuint64)] xlGetSyncTime.restype = XLstatus xlGetSyncTime.errcheck = check_status xlClosePort = _xlapi_dll.xlClosePort xlClosePort.argtypes = [XLportHandle] xlClosePort.restype = XLstatus xlClosePort.errcheck = check_status xlSetNotification = _xlapi_dll.xlSetNotification xlSetNotification.argtypes = [XLportHandle, ctypes.POINTER(XLhandle), ctypes.c_int] xlSetNotification.restype = XLstatus xlSetNotification.errcheck = check_status xlCanSetChannelMode = _xlapi_dll.xlCanSetChannelMode xlCanSetChannelMode.argtypes = [ XLportHandle, XLaccess, ctypes.c_int, ctypes.c_int ] xlCanSetChannelMode.restype = XLstatus xlCanSetChannelMode.errcheck = check_status xlActivateChannel = _xlapi_dll.xlActivateChannel xlActivateChannel.argtypes = [ XLportHandle, XLaccess, ctypes.c_uint, ctypes.c_uint ] xlActivateChannel.restype = XLstatus xlActivateChannel.errcheck = check_status xlDeactivateChannel = _xlapi_dll.xlDeactivateChannel xlDeactivateChannel.argtypes = [XLportHandle, XLaccess] xlDeactivateChannel.restype = XLstatus xlDeactivateChannel.errcheck = check_status xlCanFdSetConfiguration = _xlapi_dll.xlCanFdSetConfiguration xlCanFdSetConfiguration.argtypes = [XLportHandle, XLaccess, ctypes.POINTER(XLcanFdConf)] xlCanFdSetConfiguration.restype = XLstatus xlCanFdSetConfiguration.errcheck = check_status xlReceive = _xlapi_dll.xlReceive xlReceive.argtypes = [ XLportHandle, ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(XLevent) ] xlReceive.restype = XLstatus xlReceive.errcheck = check_status xlCanReceive = _xlapi_dll.xlCanReceive xlCanReceive.argtypes = [ XLportHandle, ctypes.POINTER(XLcanRxEvent) ] xlCanReceive.restype = XLstatus xlCanReceive.errcheck = check_status xlGetErrorString = _xlapi_dll.xlGetErrorString xlGetErrorString.argtypes = [XLstatus] xlGetErrorString.restype = ctypes.c_char_p xlCanSetChannelBitrate = _xlapi_dll.xlCanSetChannelBitrate xlCanSetChannelBitrate.argtypes = [XLportHandle, XLaccess, ctypes.c_ulong] xlCanSetChannelBitrate.restype = XLstatus xlCanSetChannelBitrate.errcheck = check_status xlCanTransmit = _xlapi_dll.xlCanTransmit xlCanTransmit.argtypes = [ XLportHandle, XLaccess, ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(XLevent) ] xlCanTransmit.restype = XLstatus xlCanTransmit.errcheck = check_status xlCanTransmitEx = _xlapi_dll.xlCanTransmitEx xlCanTransmitEx.argtypes = [ XLportHandle, XLaccess, ctypes.c_uint, ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(XLcanTxEvent) ] xlCanTransmitEx.restype = XLstatus xlCanTransmitEx.errcheck = check_status xlCanFlushTransmitQueue = _xlapi_dll.xlCanFlushTransmitQueue xlCanFlushTransmitQueue.argtypes = [XLportHandle, XLaccess] xlCanFlushTransmitQueue.restype = XLstatus xlCanFlushTransmitQueue.errcheck = check_status xlCanSetChannelAcceptance = _xlapi_dll.xlCanSetChannelAcceptance xlCanSetChannelAcceptance.argtypes = [ XLportHandle, XLaccess, ctypes.c_ulong, ctypes.c_ulong, ctypes.c_uint] xlCanSetChannelAcceptance.restype = XLstatus xlCanSetChannelAcceptance.errcheck = check_status xlCanResetAcceptance = _xlapi_dll.xlCanResetAcceptance xlCanResetAcceptance.argtypes = [XLportHandle, XLaccess, ctypes.c_uint] xlCanResetAcceptance.restype = XLstatus xlCanResetAcceptance.errcheck = check_status python-can-3.3.2.final/can/interfaces/virtual.py000066400000000000000000000101521352572415400216220ustar00rootroot00000000000000# coding: utf-8 """ This module implements an OS and hardware independent virtual CAN interface for testing purposes. Any VirtualBus instances connecting to the same channel and reside in the same process will receive the same messages. """ from copy import deepcopy import logging import time try: import queue except ImportError: import Queue as queue from threading import RLock from random import randint from can.bus import BusABC from can import CanError logger = logging.getLogger(__name__) # Channels are lists of queues, one for each connection channels = {} channels_lock = RLock() class VirtualBus(BusABC): """ A virtual CAN bus using an internal message queue. It can be used for example for testing. In this interface, a channel is an arbitrary object used as an identifier for connected buses. Implements :meth:`can.BusABC._detect_available_configs`; see :meth:`can.VirtualBus._detect_available_configs` for how it behaves here. .. note:: The timeout when sending a message applies to each receiver individually. This means that sending can block up to 5 seconds if a message is sent to 5 receivers with the timeout set to 1.0. """ def __init__(self, channel=None, receive_own_messages=False, rx_queue_size=0, **kwargs): super(VirtualBus, self).__init__(channel=channel, receive_own_messages=receive_own_messages, **kwargs) # the channel identifier may be an arbitrary object self.channel_id = channel self.channel_info = "Virtual bus channel {}".format(self.channel_id) self.receive_own_messages = receive_own_messages self._open = True with channels_lock: # Create a new channel if one does not exist if self.channel_id not in channels: channels[self.channel_id] = [] self.channel = channels[self.channel_id] self.queue = queue.Queue(rx_queue_size) self.channel.append(self.queue) def _check_if_open(self): """Raises CanError if the bus is not open. Has to be called in every method that accesses the bus. """ if not self._open: raise CanError("Operation on closed bus") def _recv_internal(self, timeout): self._check_if_open() try: msg = self.queue.get(block=True, timeout=timeout) except queue.Empty: return None, False else: return msg, False def send(self, msg, timeout=None): self._check_if_open() msg_copy = deepcopy(msg) msg_copy.timestamp = time.time() msg_copy.channel = self.channel_id # Add message to all listening on this channel all_sent = True for bus_queue in self.channel: if bus_queue is not self.queue or self.receive_own_messages: try: bus_queue.put(msg_copy, block=True, timeout=timeout) except queue.Full: all_sent = False if not all_sent: raise CanError("Could not send message to one or more recipients") def shutdown(self): self._check_if_open() self._open = False with channels_lock: self.channel.remove(self.queue) # remove if empty if not self.channel: del channels[self.channel_id] @staticmethod def _detect_available_configs(): """ Returns all currently used channels as well as one other currently unused channel. .. note:: This method will run into problems if thousands of autodetected buses are used at once. """ with channels_lock: available_channels = list(channels.keys()) # find a currently unused channel get_extra = lambda: "channel-{}".format(randint(0, 9999)) extra = get_extra() while extra in available_channels: extra = get_extra() available_channels += [extra] return [ {'interface': 'virtual', 'channel': channel} for channel in available_channels ] python-can-3.3.2.final/can/io/000077500000000000000000000000001352572415400160475ustar00rootroot00000000000000python-can-3.3.2.final/can/io/__init__.py000066400000000000000000000010011352572415400201500ustar00rootroot00000000000000# coding: utf-8 """ Read and write CAN bus messages using a range of Readers and Writers based off the file extension. """ from __future__ import absolute_import # Generic from .logger import Logger from .player import LogReader, MessageSync # Format specific from .asc import ASCWriter, ASCReader from .blf import BLFReader, BLFWriter from .canutils import CanutilsLogReader, CanutilsLogWriter from .csv import CSVWriter, CSVReader from .sqlite import SqliteReader, SqliteWriter from .printer import Printer python-can-3.3.2.final/can/io/asc.py000066400000000000000000000173001352572415400171700ustar00rootroot00000000000000# coding: utf-8 """ Contains handling of ASC logging files. Example .asc files: - https://bitbucket.org/tobylorenz/vector_asc/src/47556e1a6d32c859224ca62d075e1efcc67fa690/src/Vector/ASC/tests/unittests/data/CAN_Log_Trigger_3_2.asc?at=master&fileviewer=file-view-default - under `test/data/logfile.asc` """ from __future__ import absolute_import from datetime import datetime import time import logging from ..message import Message from ..listener import Listener from ..util import channel2int from .generic import BaseIOHandler CAN_MSG_EXT = 0x80000000 CAN_ID_MASK = 0x1FFFFFFF logger = logging.getLogger('can.io.asc') class ASCReader(BaseIOHandler): """ Iterator of CAN messages from a ASC logging file. TODO: turn relative timestamps back to absolute form """ def __init__(self, file): """ :param file: a path-like object or as file-like object to read from If this is a file-like object, is has to opened in text read mode, not binary read mode. """ super(ASCReader, self).__init__(file, mode='r') @staticmethod def _extract_can_id(str_can_id): if str_can_id[-1:].lower() == 'x': is_extended = True can_id = int(str_can_id[0:-1], 16) else: is_extended = False can_id = int(str_can_id, 16) return can_id, is_extended def __iter__(self): for line in self.file: #logger.debug("ASCReader: parsing line: '%s'", line.splitlines()[0]) temp = line.strip() if not temp or not temp[0].isdigit(): continue try: timestamp, channel, dummy = temp.split(None, 2) # , frameType, dlc, frameData except ValueError: # we parsed an empty comment continue timestamp = float(timestamp) try: # See ASCWriter channel = int(channel) - 1 except ValueError: pass if dummy.strip()[0:10].lower() == 'errorframe': msg = Message(timestamp=timestamp, is_error_frame=True, channel=channel) yield msg elif not isinstance(channel, int) or dummy.strip()[0:10].lower() == 'statistic:': pass elif dummy[-1:].lower() == 'r': can_id_str, _ = dummy.split(None, 1) can_id_num, is_extended_id = self._extract_can_id(can_id_str) msg = Message(timestamp=timestamp, arbitration_id=can_id_num & CAN_ID_MASK, is_extended_id=is_extended_id, is_remote_frame=True, channel=channel) yield msg else: try: # this only works if dlc > 0 and thus data is availabe can_id_str, _, _, dlc, data = dummy.split(None, 4) except ValueError: # but if not, we only want to get the stuff up to the dlc can_id_str, _, _, dlc = dummy.split(None, 3) # and we set data to an empty sequence manually data = '' dlc = int(dlc) frame = bytearray() data = data.split() for byte in data[0:dlc]: frame.append(int(byte, 16)) can_id_num, is_extended_id = self._extract_can_id(can_id_str) yield Message( timestamp=timestamp, arbitration_id=can_id_num & CAN_ID_MASK, is_extended_id=is_extended_id, is_remote_frame=False, dlc=dlc, data=frame, channel=channel ) self.stop() class ASCWriter(BaseIOHandler, Listener): """Logs CAN data to an ASCII log file (.asc). The measurement starts with the timestamp of the first registered message. If a message has a timestamp smaller than the previous one or None, it gets assigned the timestamp that was written for the last message. It the first message does not have a timestamp, it is set to zero. """ FORMAT_MESSAGE = "{channel} {id:<15} Rx {dtype} {data}" FORMAT_DATE = "%a %b %m %I:%M:%S.{} %p %Y" FORMAT_EVENT = "{timestamp: 9.6f} {message}\n" def __init__(self, file, channel=1): """ :param file: a path-like object or as file-like object to write to If this is a file-like object, is has to opened in text write mode, not binary write mode. :param channel: a default channel to use when the message does not have a channel set """ super(ASCWriter, self).__init__(file, mode='w') self.channel = channel # write start of file header now = datetime.now().strftime("%a %b %m %I:%M:%S.%f %p %Y") self.file.write("date %s\n" % now) self.file.write("base hex timestamps absolute\n") self.file.write("internal events logged\n") # the last part is written with the timestamp of the first message self.header_written = False self.last_timestamp = None self.started = None def stop(self): if not self.file.closed: self.file.write("End TriggerBlock\n") super(ASCWriter, self).stop() def log_event(self, message, timestamp=None): """Add a message to the log file. :param str message: an arbitrary message :param float timestamp: the absolute timestamp of the event """ if not message: # if empty or None logger.debug("ASCWriter: ignoring empty message") return # this is the case for the very first message: if not self.header_written: self.last_timestamp = (timestamp or 0.0) self.started = self.last_timestamp mlsec = repr(self.last_timestamp).split('.')[1][:3] formatted_date = time.strftime(self.FORMAT_DATE.format(mlsec), time.localtime(self.last_timestamp)) self.file.write("Begin Triggerblock %s\n" % formatted_date) self.header_written = True self.log_event("Start of measurement") # caution: this is a recursive call! # Use last known timestamp if unknown if timestamp is None: timestamp = self.last_timestamp # turn into relative timestamps if necessary if timestamp >= self.started: timestamp -= self.started line = self.FORMAT_EVENT.format(timestamp=timestamp, message=message) self.file.write(line) def on_message_received(self, msg): if msg.is_error_frame: self.log_event("{} ErrorFrame".format(self.channel), msg.timestamp) return if msg.is_remote_frame: dtype = 'r' data = [] else: dtype = "d {}".format(msg.dlc) data = ["{:02X}".format(byte) for byte in msg.data] arb_id = "{:X}".format(msg.arbitration_id) if msg.is_extended_id: arb_id += 'x' channel = channel2int(msg.channel) if channel is None: channel = self.channel else: # Many interfaces start channel numbering at 0 which is invalid channel += 1 serialized = self.FORMAT_MESSAGE.format(channel=channel, id=arb_id, dtype=dtype, data=' '.join(data)) self.log_event(serialized, msg.timestamp) python-can-3.3.2.final/can/io/blf.py000066400000000000000000000434701352572415400171740ustar00rootroot00000000000000# coding: utf-8 """ Implements support for BLF (Binary Logging Format) which is a proprietary CAN log format from Vector Informatik GmbH (Germany). No official specification of the binary logging format is available. This implementation is based on Toby Lorenz' C++ library "Vector BLF" which is licensed under GPLv3. https://bitbucket.org/tobylorenz/vector_blf. The file starts with a header. The rest is one or more "log containers" which consists of a header and some zlib compressed data, usually up to 128 kB of uncompressed data each. This data contains the actual CAN messages and other objects types. """ from __future__ import absolute_import import struct import zlib import datetime import time import logging from can.message import Message from can.listener import Listener from can.util import len2dlc, dlc2len, channel2int from .generic import BaseIOHandler class BLFParseError(Exception): """BLF file could not be parsed correctly.""" pass LOG = logging.getLogger(__name__) # 0 = unknown, 2 = CANoe APPLICATION_ID = 5 # signature ("LOGG"), header size, # application ID, application major, application minor, application build, # bin log major, bin log minor, bin log build, bin log patch, # file size, uncompressed size, count of objects, count of objects read, # time start (SYSTEMTIME), time stop (SYSTEMTIME) FILE_HEADER_STRUCT = struct.Struct("<4sLBBBBBBBBQQLL8H8H") # Pad file header to this size FILE_HEADER_SIZE = 144 # signature ("LOBJ"), header size, header version, object size, object type OBJ_HEADER_BASE_STRUCT = struct.Struct("<4sHHLL") # flags, client index, object version, timestamp OBJ_HEADER_V1_STRUCT = struct.Struct(" len(data): # Object continues in next log container break pos += OBJ_HEADER_BASE_STRUCT.size # Read rest of header header_version = header[2] if header_version == 1: flags, _, _, timestamp = OBJ_HEADER_V1_STRUCT.unpack_from(data, pos) pos += OBJ_HEADER_V1_STRUCT.size elif header_version == 2: flags, _, _, timestamp, _ = OBJ_HEADER_V2_STRUCT.unpack_from(data, pos) pos += OBJ_HEADER_V2_STRUCT.size else: # Unknown header version LOG.warning("Unknown object header version (%d)", header_version) pos = next_pos continue if flags == TIME_TEN_MICS: factor = 10 * 1e-6 else: factor = 1e-9 timestamp = timestamp * factor + self.start_timestamp obj_type = header[4] # Both CAN message types have the same starting content if obj_type in (CAN_MESSAGE, CAN_MESSAGE2): (channel, flags, dlc, can_id, can_data) = CAN_MSG_STRUCT.unpack_from(data, pos) msg = Message(timestamp=timestamp, arbitration_id=can_id & 0x1FFFFFFF, is_extended_id=bool(can_id & CAN_MSG_EXT), is_remote_frame=bool(flags & REMOTE_FLAG), dlc=dlc, data=can_data[:dlc], channel=channel - 1) yield msg elif obj_type == CAN_FD_MESSAGE: (channel, flags, dlc, can_id, _, _, fd_flags, _, can_data) = CAN_FD_MSG_STRUCT.unpack_from(data, pos) length = dlc2len(dlc) msg = Message(timestamp=timestamp, arbitration_id=can_id & 0x1FFFFFFF, is_extended_id=bool(can_id & CAN_MSG_EXT), is_remote_frame=bool(flags & REMOTE_FLAG), is_fd=bool(fd_flags & EDL), bitrate_switch=bool(fd_flags & BRS), error_state_indicator=bool(fd_flags & ESI), dlc=length, data=can_data[:length], channel=channel - 1) yield msg elif obj_type == CAN_FD_MESSAGE_64: ( channel, dlc, _, _, can_id, _, fd_flags ) = CAN_FD_MSG_64_STRUCT.unpack_from(data, pos)[:7] length = dlc2len(dlc) can_data = struct.unpack_from( "<{}s".format(length), data, pos + CAN_FD_MSG_64_STRUCT.size )[0] msg = Message( timestamp=timestamp, arbitration_id=can_id & 0x1FFFFFFF, is_extended_id=bool(can_id & CAN_MSG_EXT), is_remote_frame=bool(fd_flags & REMOTE_FLAG_64), is_fd=bool(fd_flags & EDL_64), bitrate_switch=bool(fd_flags & BRS_64), error_state_indicator=bool(fd_flags & ESI_64), dlc=length, data=can_data[:length], channel=channel - 1 ) yield msg elif obj_type == CAN_ERROR_EXT: (channel, _, _, _, _, dlc, _, can_id, _, can_data) = CAN_ERROR_EXT_STRUCT.unpack_from(data, pos) msg = Message(timestamp=timestamp, is_error_frame=True, is_extended_id=bool(can_id & CAN_MSG_EXT), arbitration_id=can_id & 0x1FFFFFFF, dlc=dlc, data=can_data[:dlc], channel=channel - 1) yield msg # else: # LOG.warning("Unknown object type (%d)", obj_type) pos = next_pos # save the remaining data that could not be processed tail = data[pos:] self.stop() class BLFWriter(BaseIOHandler, Listener): """ Logs CAN data to a Binary Logging File compatible with Vector's tools. """ #: Max log container size of uncompressed data MAX_CACHE_SIZE = 128 * 1024 #: ZLIB compression level COMPRESSION_LEVEL = 9 def __init__(self, file, channel=1): """ :param file: a path-like object or as file-like object to write to If this is a file-like object, is has to opened in binary write mode, not text write mode. """ super(BLFWriter, self).__init__(file, mode='wb') self.channel = channel # Header will be written after log is done self.file.write(b"\x00" * FILE_HEADER_SIZE) self.cache = [] self.cache_size = 0 self.count_of_objects = 0 self.uncompressed_size = FILE_HEADER_SIZE self.start_timestamp = None self.stop_timestamp = None def on_message_received(self, msg): channel = channel2int(msg.channel) if channel is None: channel = self.channel else: # Many interfaces start channel numbering at 0 which is invalid channel += 1 arb_id = msg.arbitration_id if msg.is_extended_id: arb_id |= CAN_MSG_EXT flags = REMOTE_FLAG if msg.is_remote_frame else 0 data = bytes(msg.data) if msg.is_error_frame: data = CAN_ERROR_EXT_STRUCT.pack(channel, 0, # length 0, # flags 0, # ecc 0, # position len2dlc(msg.dlc), 0, # frame length arb_id, 0, # ext flags data) self._add_object(CAN_ERROR_EXT, data, msg.timestamp) elif msg.is_fd: fd_flags = EDL if msg.bitrate_switch: fd_flags |= BRS if msg.error_state_indicator: fd_flags |= ESI data = CAN_FD_MSG_STRUCT.pack(channel, flags, len2dlc(msg.dlc), arb_id, 0, 0, fd_flags, msg.dlc, data) self._add_object(CAN_FD_MESSAGE, data, msg.timestamp) else: data = CAN_MSG_STRUCT.pack(channel, flags, msg.dlc, arb_id, data) self._add_object(CAN_MESSAGE, data, msg.timestamp) def log_event(self, text, timestamp=None): """Add an arbitrary message to the log file as a global marker. :param str text: The group name of the marker. :param float timestamp: Absolute timestamp in Unix timestamp format. If not given, the marker will be placed along the last message. """ try: # Only works on Windows text = text.encode("mbcs") except LookupError: text = text.encode("ascii") comment = b"Added by python-can" marker = b"python-can" data = GLOBAL_MARKER_STRUCT.pack( 0, 0xFFFFFF, 0xFF3300, 0, len(text), len(marker), len(comment)) self._add_object(GLOBAL_MARKER, data + text + marker + comment, timestamp) def _add_object(self, obj_type, data, timestamp=None): if timestamp is None: timestamp = self.stop_timestamp or time.time() if self.start_timestamp is None: self.start_timestamp = timestamp self.stop_timestamp = timestamp timestamp = int((timestamp - self.start_timestamp) * 1e9) header_size = OBJ_HEADER_BASE_STRUCT.size + OBJ_HEADER_V1_STRUCT.size obj_size = header_size + len(data) base_header = OBJ_HEADER_BASE_STRUCT.pack( b"LOBJ", header_size, 1, obj_size, obj_type) obj_header = OBJ_HEADER_V1_STRUCT.pack(TIME_ONE_NANS, 0, 0, max(timestamp, 0)) self.cache.append(base_header) self.cache.append(obj_header) self.cache.append(data) padding_size = len(data) % 4 if padding_size: self.cache.append(b"\x00" * padding_size) self.cache_size += obj_size + padding_size self.count_of_objects += 1 if self.cache_size >= self.MAX_CACHE_SIZE: self._flush() def _flush(self): """Compresses and writes data in the cache to file.""" if self.file.closed: return cache = b"".join(self.cache) if not cache: # Nothing to write return uncompressed_data = cache[:self.MAX_CACHE_SIZE] # Save data that comes after max size to next round tail = cache[self.MAX_CACHE_SIZE:] self.cache = [tail] self.cache_size = len(tail) compressed_data = zlib.compress(uncompressed_data, self.COMPRESSION_LEVEL) obj_size = (OBJ_HEADER_V1_STRUCT.size + LOG_CONTAINER_STRUCT.size + len(compressed_data)) base_header = OBJ_HEADER_BASE_STRUCT.pack( b"LOBJ", OBJ_HEADER_BASE_STRUCT.size, 1, obj_size, LOG_CONTAINER) container_header = LOG_CONTAINER_STRUCT.pack( ZLIB_DEFLATE, len(uncompressed_data)) self.file.write(base_header) self.file.write(container_header) self.file.write(compressed_data) # Write padding bytes self.file.write(b"\x00" * (obj_size % 4)) self.uncompressed_size += OBJ_HEADER_V1_STRUCT.size + LOG_CONTAINER_STRUCT.size self.uncompressed_size += len(uncompressed_data) def stop(self): """Stops logging and closes the file.""" self._flush() filesize = self.file.tell() super(BLFWriter, self).stop() # Write header in the beginning of the file header = [b"LOGG", FILE_HEADER_SIZE, APPLICATION_ID, 0, 0, 0, 2, 6, 8, 1] # The meaning of "count of objects read" is unknown header.extend([filesize, self.uncompressed_size, self.count_of_objects, 0]) header.extend(timestamp_to_systemtime(self.start_timestamp)) header.extend(timestamp_to_systemtime(self.stop_timestamp)) with open(self.file.name, "r+b") as f: f.write(FILE_HEADER_STRUCT.pack(*header)) python-can-3.3.2.final/can/io/canutils.py000066400000000000000000000114751352572415400202530ustar00rootroot00000000000000# coding: utf-8 """ This module works with CAN data in ASCII log files (*.log). It is is compatible with "candump -L" from the canutils program (https://github.com/linux-can/can-utils). """ from __future__ import absolute_import, division import time import datetime import logging from can.message import Message from can.listener import Listener from .generic import BaseIOHandler log = logging.getLogger('can.io.canutils') CAN_MSG_EXT = 0x80000000 CAN_ERR_FLAG = 0x20000000 CAN_ERR_BUSERROR = 0x00000080 CAN_ERR_DLC = 8 class CanutilsLogReader(BaseIOHandler): """ Iterator over CAN messages from a .log Logging File (candump -L). .. note:: .log-format looks for example like this: ``(0.0) vcan0 001#8d00100100820100`` """ def __init__(self, file): """ :param file: a path-like object or as file-like object to read from If this is a file-like object, is has to opened in text read mode, not binary read mode. """ super(CanutilsLogReader, self).__init__(file, mode='r') def __iter__(self): for line in self.file: # skip empty lines temp = line.strip() if not temp: continue timestamp, channel, frame = temp.split() timestamp = float(timestamp[1:-1]) canId, data = frame.split('#') if channel.isdigit(): channel = int(channel) if len(canId) > 3: isExtended = True else: isExtended = False canId = int(canId, 16) if data and data[0].lower() == 'r': isRemoteFrame = True if len(data) > 1: dlc = int(data[1:]) else: dlc = 0 else: isRemoteFrame = False dlc = len(data) // 2 dataBin = bytearray() for i in range(0, len(data), 2): dataBin.append(int(data[i:(i + 2)], 16)) if canId & CAN_ERR_FLAG and canId & CAN_ERR_BUSERROR: msg = Message(timestamp=timestamp, is_error_frame=True) else: msg = Message(timestamp=timestamp, arbitration_id=canId & 0x1FFFFFFF, is_extended_id=isExtended, is_remote_frame=isRemoteFrame, dlc=dlc, data=dataBin, channel=channel) yield msg self.stop() class CanutilsLogWriter(BaseIOHandler, Listener): """Logs CAN data to an ASCII log file (.log). This class is is compatible with "candump -L". If a message has a timestamp smaller than the previous one (or 0 or None), it gets assigned the timestamp that was written for the last message. It the first message does not have a timestamp, it is set to zero. """ def __init__(self, file, channel="vcan0", append=False): """ :param file: a path-like object or as file-like object to write to If this is a file-like object, is has to opened in text write mode, not binary write mode. :param channel: a default channel to use when the message does not have a channel set :param bool append: if set to `True` messages are appended to the file, else the file is truncated """ mode = 'a' if append else 'w' super(CanutilsLogWriter, self).__init__(file, mode=mode) self.channel = channel self.last_timestamp = None def on_message_received(self, msg): # this is the case for the very first message: if self.last_timestamp is None: self.last_timestamp = (msg.timestamp or 0.0) # figure out the correct timestamp if msg.timestamp is None or msg.timestamp < self.last_timestamp: timestamp = self.last_timestamp else: timestamp = msg.timestamp channel = msg.channel if msg.channel is not None else self.channel if msg.is_error_frame: self.file.write("(%f) %s %08X#0000000000000000\n" % (timestamp, channel, CAN_ERR_FLAG | CAN_ERR_BUSERROR)) elif msg.is_remote_frame: if msg.is_extended_id: self.file.write("(%f) %s %08X#R\n" % (timestamp, channel, msg.arbitration_id)) else: self.file.write("(%f) %s %03X#R\n" % (timestamp, channel, msg.arbitration_id)) else: data = ["{:02X}".format(byte) for byte in msg.data] if msg.is_extended_id: self.file.write("(%f) %s %08X#%s\n" % (timestamp, channel, msg.arbitration_id, ''.join(data))) else: self.file.write("(%f) %s %03X#%s\n" % (timestamp, channel, msg.arbitration_id, ''.join(data))) python-can-3.3.2.final/can/io/csv.py000066400000000000000000000075011352572415400172170ustar00rootroot00000000000000# coding: utf-8 """ This module contains handling for CSV (comma separated values) files. TODO: CAN FD messages are not yet supported. TODO: This module could use https://docs.python.org/2/library/csv.html#module-csv to allow different delimiters for writing, special escape chars to circumvent the base64 encoding and use csv.Sniffer to automatically deduce the delimiters of a CSV file. """ from __future__ import absolute_import from base64 import b64encode, b64decode from can.message import Message from can.listener import Listener from .generic import BaseIOHandler class CSVWriter(BaseIOHandler, Listener): """Writes a comma separated text file with a line for each message. Includes a header line. The columns are as follows: ================ ======================= =============== name of column format description example ================ ======================= =============== timestamp decimal float 1483389946.197 arbitration_id hex 0x00dadada extended 1 == True, 0 == False 1 remote 1 == True, 0 == False 0 error 1 == True, 0 == False 0 dlc int 6 data base64 encoded WzQyLCA5XQ== ================ ======================= =============== Each line is terminated with a platform specific line separator. """ def __init__(self, file, append=False): """ :param file: a path-like object or a file-like object to write to. If this is a file-like object, is has to open in text write mode, not binary write mode. :param bool append: if set to `True` messages are appended to the file and no header line is written, else the file is truncated and starts with a newly written header line """ mode = 'a' if append else 'w' super(CSVWriter, self).__init__(file, mode=mode) # Write a header row if not append: self.file.write("timestamp,arbitration_id,extended,remote,error,dlc,data\n") def on_message_received(self, msg): row = ','.join([ repr(msg.timestamp), # cannot use str() here because that is rounding hex(msg.arbitration_id), '1' if msg.is_extended_id else '0', '1' if msg.is_remote_frame else '0', '1' if msg.is_error_frame else '0', str(msg.dlc), b64encode(msg.data).decode('utf8') ]) self.file.write(row) self.file.write('\n') class CSVReader(BaseIOHandler): """Iterator over CAN messages from a .csv file that was generated by :class:`~can.CSVWriter` or that uses the same format as described there. Assumes that there is a header and thus skips the first line. Any line separator is accepted. """ def __init__(self, file): """ :param file: a path-like object or as file-like object to read from If this is a file-like object, is has to opened in text read mode, not binary read mode. """ super(CSVReader, self).__init__(file, mode='r') def __iter__(self): # skip the header line next(self.file) for line in self.file: timestamp, arbitration_id, extended, remote, error, dlc, data = line.split(',') yield Message( timestamp=float(timestamp), is_remote_frame=(remote == '1'), is_extended_id=(extended == '1'), is_error_frame=(error == '1'), arbitration_id=int(arbitration_id, base=16), dlc=int(dlc), data=b64decode(data), ) self.stop() python-can-3.3.2.final/can/io/generic.py000066400000000000000000000025101352572415400200330ustar00rootroot00000000000000# coding: utf-8 """ Contains a generic class for file IO. """ from abc import ABCMeta, abstractmethod from can import Listener class BaseIOHandler(object): """A generic file handler that can be used for reading and writing. Can be used as a context manager. :attr file-like file: the file-like object that is kept internally, or None if none was opened """ __metaclass__ = ABCMeta def __init__(self, file, mode='rt'): """ :param file: a path-like object to open a file, a file-like object to be used as a file or `None` to not use a file at all :param str mode: the mode that should be used to open the file, see :func:`open`, ignored if *file* is `None` """ if file is None or (hasattr(file, 'read') and hasattr(file, 'write')): # file is None or some file-like object self.file = file else: # file is some path-like object self.file = open(file, mode) # for multiple inheritance super(BaseIOHandler, self).__init__() def __enter__(self): return self def __exit__(self, *args): self.stop() def stop(self): if self.file is not None: # this also implies a flush() self.file.close() python-can-3.3.2.final/can/io/logger.py000066400000000000000000000040611352572415400177010ustar00rootroot00000000000000# coding: utf-8 """ See the :class:`Logger` class. """ from __future__ import absolute_import import logging from ..listener import Listener from .generic import BaseIOHandler from .asc import ASCWriter from .blf import BLFWriter from .canutils import CanutilsLogWriter from .csv import CSVWriter from .sqlite import SqliteWriter from .printer import Printer log = logging.getLogger("can.io.logger") class Logger(BaseIOHandler, Listener): """ Logs CAN messages to a file. The format is determined from the file format which can be one of: * .asc: :class:`can.ASCWriter` * .blf :class:`can.BLFWriter` * .csv: :class:`can.CSVWriter` * .db: :class:`can.SqliteWriter` * .log :class:`can.CanutilsLogWriter` * other: :class:`can.Printer` The log files may be incomplete until `stop()` is called due to buffering. .. note:: This class itself is just a dispatcher, and any positional an keyword arguments are passed on to the returned instance. """ @staticmethod def __new__(cls, filename, *args, **kwargs): """ :type filename: str or None or path-like :param filename: the filename/path the file to write to, may be a path-like object if the target logger supports it, and may be None to instantiate a :class:`~can.Printer` """ if filename: if filename.endswith(".asc"): return ASCWriter(filename, *args, **kwargs) elif filename.endswith(".blf"): return BLFWriter(filename, *args, **kwargs) elif filename.endswith(".csv"): return CSVWriter(filename, *args, **kwargs) elif filename.endswith(".db"): return SqliteWriter(filename, *args, **kwargs) elif filename.endswith(".log"): return CanutilsLogWriter(filename, *args, **kwargs) # else: log.info('unknown file type "%s", falling pack to can.Printer', filename) return Printer(filename, *args, **kwargs) python-can-3.3.2.final/can/io/player.py000066400000000000000000000066251352572415400177260ustar00rootroot00000000000000# coding: utf-8 """ This module contains the generic :class:`LogReader` as well as :class:`MessageSync` which plays back messages in the recorded order an time intervals. """ from __future__ import absolute_import from time import time, sleep import logging from .generic import BaseIOHandler from .asc import ASCReader from .blf import BLFReader from .canutils import CanutilsLogReader from .csv import CSVReader from .sqlite import SqliteReader log = logging.getLogger('can.io.player') class LogReader(BaseIOHandler): """ Replay logged CAN messages from a file. The format is determined from the file format which can be one of: * .asc * .blf * .csv * .db * .log Exposes a simple iterator interface, to use simply: >>> for msg in LogReader("some/path/to/my_file.log"): ... print(msg) .. note:: There are no time delays, if you want to reproduce the measured delays between messages look at the :class:`can.MessageSync` class. .. note:: This class itself is just a dispatcher, and any positional an keyword arguments are passed on to the returned instance. """ @staticmethod def __new__(cls, filename, *args, **kwargs): """ :param str filename: the filename/path the file to read from """ if filename.endswith(".asc"): return ASCReader(filename, *args, **kwargs) elif filename.endswith(".blf"): return BLFReader(filename, *args, **kwargs) elif filename.endswith(".csv"): return CSVReader(filename, *args, **kwargs) elif filename.endswith(".db"): return SqliteReader(filename, *args, **kwargs) elif filename.endswith(".log"): return CanutilsLogReader(filename, *args, **kwargs) else: raise NotImplementedError("No read support for this log format: {}".format(filename)) class MessageSync(object): """ Used to iterate over some given messages in the recorded time. """ def __init__(self, messages, timestamps=True, gap=0.0001, skip=60): """Creates an new **MessageSync** instance. :param Iterable[can.Message] messages: An iterable of :class:`can.Message` instances. :param bool timestamps: Use the messages' timestamps. If False, uses the *gap* parameter as the time between messages. :param float gap: Minimum time between sent messages in seconds :param float skip: Skip periods of inactivity greater than this (in seconds). """ self.raw_messages = messages self.timestamps = timestamps self.gap = gap self.skip = skip def __iter__(self): playback_start_time = time() recorded_start_time = None for message in self.raw_messages: # Work out the correct wait time if self.timestamps: if recorded_start_time is None: recorded_start_time = message.timestamp now = time() current_offset = now - playback_start_time recorded_offset_from_start = message.timestamp - recorded_start_time remaining_gap = max(0.0, recorded_offset_from_start - current_offset) sleep_period = max(self.gap, min(self.skip, remaining_gap)) else: sleep_period = self.gap sleep(sleep_period) yield message python-can-3.3.2.final/can/io/printer.py000066400000000000000000000023651352572415400201120ustar00rootroot00000000000000# coding: utf-8 """ This Listener simply prints to stdout / the terminal or a file. """ from __future__ import print_function, absolute_import import logging from can.listener import Listener from .generic import BaseIOHandler log = logging.getLogger('can.io.printer') class Printer(BaseIOHandler, Listener): """ The Printer class is a subclass of :class:`~can.Listener` which simply prints any messages it receives to the terminal (stdout). A message is turned into a string using :meth:`~can.Message.__str__`. :attr bool write_to_file: `True` iff this instance prints to a file instead of standard out """ def __init__(self, file=None): """ :param file: an optional path-like object or as file-like object to "print" to instead of writing to standard out (stdout) If this is a file-like object, is has to opened in text write mode, not binary write mode. """ self.write_to_file = file is not None super(Printer, self).__init__(file, mode='w') def on_message_received(self, msg): if self.write_to_file: self.file.write(str(msg) + '\n') else: print(msg) python-can-3.3.2.final/can/io/sqlite.py000066400000000000000000000210421352572415400177210ustar00rootroot00000000000000# coding: utf-8 """ Implements an SQL database writer and reader for storing CAN messages. .. note:: The database schema is given in the documentation of the loggers. """ from __future__ import absolute_import import sys import time import threading import logging import sqlite3 from can.listener import BufferedReader from can.message import Message from .generic import BaseIOHandler log = logging.getLogger('can.io.sqlite') if sys.version_info.major < 3: # legacy fallback for Python 2 memoryview = buffer class SqliteReader(BaseIOHandler): """ Reads recorded CAN messages from a simple SQL database. This class can be iterated over or used to fetch all messages in the database with :meth:`~SqliteReader.read_all`. Calling :func:`~builtin.len` on this object might not run in constant time. :attr str table_name: the name of the database table used for storing the messages .. note:: The database schema is given in the documentation of the loggers. """ def __init__(self, file, table_name="messages"): """ :param file: a `str` or since Python 3.7 a path like object that points to the database file to use :param str table_name: the name of the table to look for the messages .. warning:: In contrary to all other readers/writers the Sqlite handlers do not accept file-like objects as the `file` parameter. It also runs in ``append=True`` mode all the time. """ super(SqliteReader, self).__init__(file=None) self._conn = sqlite3.connect(file) self._cursor = self._conn.cursor() self.table_name = table_name def __iter__(self): for frame_data in self._cursor.execute("SELECT * FROM {}".format(self.table_name)): yield SqliteReader._assemble_message(frame_data) @staticmethod def _assemble_message(frame_data): timestamp, can_id, is_extended, is_remote, is_error, dlc, data = frame_data return Message( timestamp=timestamp, is_remote_frame=bool(is_remote), is_extended_id=bool(is_extended), is_error_frame=bool(is_error), arbitration_id=can_id, dlc=dlc, data=data ) def __len__(self): # this might not run in constant time result = self._cursor.execute("SELECT COUNT(*) FROM {}".format(self.table_name)) return int(result.fetchone()[0]) def read_all(self): """Fetches all messages in the database. :rtype: Generator[can.Message] """ result = self._cursor.execute("SELECT * FROM {}".format(self.table_name)).fetchall() return (SqliteReader._assemble_message(frame) for frame in result) def stop(self): """Closes the connection to the database. """ super(SqliteReader, self).stop() self._conn.close() class SqliteWriter(BaseIOHandler, BufferedReader): """Logs received CAN data to a simple SQL database. The sqlite database may already exist, otherwise it will be created when the first message arrives. Messages are internally buffered and written to the SQL file in a background thread. Ensures that all messages that are added before calling :meth:`~can.SqliteWriter.stop()` are actually written to the database after that call returns. Thus, calling :meth:`~can.SqliteWriter.stop()` may take a while. :attr str table_name: the name of the database table used for storing the messages :attr int num_frames: the number of frames actually written to the database, this excludes messages that are still buffered :attr float last_write: the last time a message war actually written to the database, as given by ``time.time()`` .. note:: When the listener's :meth:`~SqliteWriter.stop` method is called the thread writing to the database will continue to receive and internally buffer messages if they continue to arrive before the :attr:`~SqliteWriter.GET_MESSAGE_TIMEOUT`. If the :attr:`~SqliteWriter.GET_MESSAGE_TIMEOUT` expires before a message is received, the internal buffer is written out to the database file. However if the bus is still saturated with messages, the Listener will continue receiving until the :attr:`~can.SqliteWriter.MAX_TIME_BETWEEN_WRITES` timeout is reached or more than :attr:`~can.SqliteWriter.MAX_BUFFER_SIZE_BEFORE_WRITES` messages are buffered. .. note:: The database schema is given in the documentation of the loggers. """ GET_MESSAGE_TIMEOUT = 0.25 """Number of seconds to wait for messages from internal queue""" MAX_TIME_BETWEEN_WRITES = 5.0 """Maximum number of seconds to wait between writes to the database""" MAX_BUFFER_SIZE_BEFORE_WRITES = 500 """Maximum number of messages to buffer before writing to the database""" def __init__(self, file, table_name="messages"): """ :param file: a `str` or since Python 3.7 a path like object that points to the database file to use :param str table_name: the name of the table to store messages in .. warning:: In contrary to all other readers/writers the Sqlite handlers do not accept file-like objects as the `file` parameter. """ super(SqliteWriter, self).__init__(file=None) self.table_name = table_name self._db_filename = file self._stop_running_event = threading.Event() self._writer_thread = threading.Thread(target=self._db_writer_thread) self._writer_thread.start() self.num_frames = 0 self.last_write = time.time() def _create_db(self): """Creates a new databae or opens a connection to an existing one. .. note:: You can't share sqlite3 connections between threads (by default) hence we setup the db here. It has the upside of running async. """ log.debug("Creating sqlite database") self._conn = sqlite3.connect(self._db_filename) # create table structure self._conn.cursor().execute(""" CREATE TABLE IF NOT EXISTS {} ( ts REAL, arbitration_id INTEGER, extended INTEGER, remote INTEGER, error INTEGER, dlc INTEGER, data BLOB ) """.format(self.table_name)) self._conn.commit() self._insert_template = "INSERT INTO {} VALUES (?, ?, ?, ?, ?, ?, ?)".format(self.table_name) def _db_writer_thread(self): self._create_db() try: while True: messages = [] # reset buffer msg = self.get_message(self.GET_MESSAGE_TIMEOUT) while msg is not None: #log.debug("SqliteWriter: buffering message") messages.append(( msg.timestamp, msg.arbitration_id, msg.is_extended_id, msg.is_remote_frame, msg.is_error_frame, msg.dlc, memoryview(msg.data) )) if time.time() - self.last_write > self.MAX_TIME_BETWEEN_WRITES or \ len(messages) > self.MAX_BUFFER_SIZE_BEFORE_WRITES: break else: # just go on msg = self.get_message(self.GET_MESSAGE_TIMEOUT) count = len(messages) if count > 0: with self._conn: #log.debug("Writing %d frames to db", count) self._conn.executemany(self._insert_template, messages) self._conn.commit() # make the changes visible to the entire database self.num_frames += count self.last_write = time.time() # check if we are still supposed to run and go back up if yes if self._stop_running_event.is_set(): break finally: self._conn.close() log.info("Stopped sqlite writer after writing %d messages", self.num_frames) def stop(self): """Stops the reader an writes all remaining messages to the database. Thus, this might take a while and block. """ BufferedReader.stop(self) self._stop_running_event.set() self._writer_thread.join() BaseIOHandler.stop(self) python-can-3.3.2.final/can/listener.py000066400000000000000000000112651352572415400176440ustar00rootroot00000000000000# coding: utf-8 """ This module contains the implementation of `can.Listener` and some readers. """ from abc import ABCMeta, abstractmethod try: # Python 3.7 from queue import SimpleQueue, Empty except ImportError: try: # Python 3.0 - 3.6 from queue import Queue as SimpleQueue, Empty except ImportError: # Python 2 from Queue import Queue as SimpleQueue, Empty try: import asyncio except ImportError: asyncio = None class Listener(object): """The basic listener that can be called directly to handle some CAN message:: listener = SomeListener() msg = my_bus.recv() # now either call listener(msg) # or listener.on_message_received(msg) # Important to ensure all outputs are flushed listener.stop() """ __metaclass__ = ABCMeta @abstractmethod def on_message_received(self, msg): """This method is called to handle the given message. :param can.Message msg: the delivered message """ pass def __call__(self, msg): return self.on_message_received(msg) def on_error(self, exc): """This method is called to handle any exception in the receive thread. :param Exception exc: The exception causing the thread to stop """ def stop(self): """ Stop handling new messages, carry out any final tasks to ensure data is persisted and cleanup any open resources. Concrete implementations override. """ class RedirectReader(Listener): """ A RedirectReader sends all received messages to another Bus. """ def __init__(self, bus): self.bus = bus def on_message_received(self, msg): self.bus.send(msg) class BufferedReader(Listener): """ A BufferedReader is a subclass of :class:`~can.Listener` which implements a **message buffer**: that is, when the :class:`can.BufferedReader` instance is notified of a new message it pushes it into a queue of messages waiting to be serviced. The messages can then be fetched with :meth:`~can.BufferedReader.get_message`. Putting in messages after :meth:`~can.BufferedReader.stop` has be called will raise an exception, see :meth:`~can.BufferedReader.on_message_received`. :attr bool is_stopped: ``True`` iff the reader has been stopped """ def __init__(self): # set to "infinite" size self.buffer = SimpleQueue() self.is_stopped = False def on_message_received(self, msg): """Append a message to the buffer. :raises: BufferError if the reader has already been stopped """ if self.is_stopped: raise RuntimeError("reader has already been stopped") else: self.buffer.put(msg) def get_message(self, timeout=0.5): """ Attempts to retrieve the latest message received by the instance. If no message is available it blocks for given timeout or until a message is received, or else returns None (whichever is shorter). This method does not block after :meth:`can.BufferedReader.stop` has been called. :param float timeout: The number of seconds to wait for a new message. :rytpe: can.Message or None :return: the message if there is one, or None if there is not. """ try: return self.buffer.get(block=not self.is_stopped, timeout=timeout) except Empty: return None def stop(self): """Prohibits any more additions to this reader. """ self.is_stopped = True if asyncio is not None: class AsyncBufferedReader(Listener): """A message buffer for use with :mod:`asyncio`. See :ref:`asyncio` for how to use with :class:`can.Notifier`. Can also be used as an asynchronous iterator:: async for msg in reader: print(msg) """ def __init__(self, loop=None): # set to "infinite" size self.buffer = asyncio.Queue(loop=loop) def on_message_received(self, msg): """Append a message to the buffer. Must only be called inside an event loop! """ self.buffer.put_nowait(msg) def get_message(self): """ Retrieve the latest message when awaited for:: msg = await reader.get_message() :rtype: can.Message :return: The CAN message. """ return self.buffer.get() def __aiter__(self): return self def __anext__(self): return self.buffer.get() python-can-3.3.2.final/can/logger.py000066400000000000000000000103661352572415400172770ustar00rootroot00000000000000# coding: utf-8 """ logger.py logs CAN traffic to the terminal and to a file on disk. logger.py can0 See candump in the can-utils package for a C implementation. Efficient filtering has been implemented for the socketcan backend. For example the command logger.py can0 F03000:FFF000 Will filter for can frames with a can_id containing XXF03XXX. Dynamic Controls 2010 """ from __future__ import absolute_import, print_function import sys import argparse import socket from datetime import datetime import can from can import Bus, BusState, Logger def main(): parser = argparse.ArgumentParser( "python -m can.logger", description="Log CAN traffic, printing messages to stdout or to a given file.") parser.add_argument("-f", "--file_name", dest="log_file", help="""Path and base log filename, for supported types see can.Logger.""", default=None) parser.add_argument("-v", action="count", dest="verbosity", help='''How much information do you want to see at the command line? You can add several of these e.g., -vv is DEBUG''', default=2) parser.add_argument('-c', '--channel', help='''Most backend interfaces require some sort of channel. For example with the serial interface the channel might be a rfcomm device: "/dev/rfcomm0" With the socketcan interfaces valid channel examples include: "can0", "vcan0"''') parser.add_argument('-i', '--interface', dest="interface", help='''Specify the backend CAN interface to use. If left blank, fall back to reading from configuration files.''', choices=can.VALID_INTERFACES) parser.add_argument('--filter', help='''Comma separated filters can be specified for the given CAN interface: : (matches when & mask == can_id & mask) ~ (matches when & mask != can_id & mask) ''', nargs=argparse.REMAINDER, default='') parser.add_argument('-b', '--bitrate', type=int, help='''Bitrate to use for the CAN bus.''') state_group = parser.add_mutually_exclusive_group(required=False) state_group.add_argument('--active', help="Start the bus as active, this is applied by default.", action='store_true') state_group.add_argument('--passive', help="Start the bus as passive.", action='store_true') # print help message when no arguments wre given if len(sys.argv) < 2: parser.print_help(sys.stderr) import errno raise SystemExit(errno.EINVAL) results = parser.parse_args() verbosity = results.verbosity logging_level_name = ['critical', 'error', 'warning', 'info', 'debug', 'subdebug'][min(5, verbosity)] can.set_logging_level(logging_level_name) can_filters = [] if len(results.filter) > 0: print('Adding filter/s', results.filter) for filt in results.filter: if ':' in filt: _ = filt.split(":") can_id, can_mask = int(_[0], base=16), int(_[1], base=16) elif "~" in filt: can_id, can_mask = filt.split("~") can_id = int(can_id, base=16) | 0x20000000 # CAN_INV_FILTER can_mask = int(can_mask, base=16) & socket.CAN_ERR_FLAG can_filters.append({"can_id": can_id, "can_mask": can_mask}) config = {"can_filters": can_filters, "single_handle": True} if results.interface: config["interface"] = results.interface if results.bitrate: config["bitrate"] = results.bitrate bus = Bus(results.channel, **config) if results.active: bus.state = BusState.ACTIVE elif results.passive: bus.state = BusState.PASSIVE print('Connected to {}: {}'.format(bus.__class__.__name__, bus.channel_info)) print('Can Logger (Started on {})\n'.format(datetime.now())) logger = Logger(results.log_file) try: while True: msg = bus.recv(1) if msg is not None: logger(msg) except KeyboardInterrupt: pass finally: bus.shutdown() logger.stop() if __name__ == "__main__": main() python-can-3.3.2.final/can/message.py000066400000000000000000000315531352572415400174450ustar00rootroot00000000000000# coding: utf-8 """ This module contains the implementation of :class:`can.Message`. .. note:: Could use `@dataclass `__ starting with Python 3.7. """ from __future__ import absolute_import, division import warnings from copy import deepcopy from math import isinf, isnan class Message(object): """ The :class:`~can.Message` object is used to represent CAN messages for sending, receiving and other purposes like converting between different logging formats. Messages can use extended identifiers, be remote or error frames, contain data and may be associated to a channel. Messages are always compared by identity and never by value, because that may introduce unexpected behaviour. See also :meth:`~can.Message.equals`. :func:`~copy.copy`/:func:`~copy.deepcopy` is supported as well. Messages do not support "dynamic" attributes, meaning any others than the documented ones, since it uses :attr:`~object.__slots__`. """ __slots__ = ( "timestamp", "arbitration_id", "is_extended_id", "is_remote_frame", "is_error_frame", "channel", "dlc", "data", "is_fd", "bitrate_switch", "error_state_indicator", "__weakref__", # support weak references to messages "_dict" # see __getattr__ ) def __getattr__(self, key): # TODO keep this for a version, in order to not break old code # this entire method (as well as the _dict attribute in __slots__ and the __setattr__ method) # can be removed in 4.0 # this method is only called if the attribute was not found elsewhere, like in __slots__ try: warnings.warn("Custom attributes of messages are deprecated and will be removed in 4.0", DeprecationWarning) return self._dict[key] except KeyError: raise AttributeError("'message' object has no attribute '{}'".format(key)) def __setattr__(self, key, value): # see __getattr__ try: super(Message, self).__setattr__(key, value) except AttributeError: warnings.warn("Custom attributes of messages are deprecated and will be removed in 4.0", DeprecationWarning) self._dict[key] = value @property def id_type(self): # TODO remove in 4.0 warnings.warn("Message.id_type is deprecated and will be removed in 4.0, use is_extended_id instead", DeprecationWarning) return self.is_extended_id @id_type.setter def id_type(self, value): # TODO remove in 4.0 warnings.warn("Message.id_type is deprecated and will be removed in 4.0, use is_extended_id instead", DeprecationWarning) self.is_extended_id = value def __init__(self, timestamp=0.0, arbitration_id=0, is_extended_id=None, is_remote_frame=False, is_error_frame=False, channel=None, dlc=None, data=None, is_fd=False, bitrate_switch=False, error_state_indicator=False, extended_id=None, # deprecated in 3.x, TODO remove in 4.x check=False): """ To create a message object, simply provide any of the below attributes together with additional parameters as keyword arguments to the constructor. :param bool check: By default, the constructor of this class does not strictly check the input. Thus, the caller must prevent the creation of invalid messages or set this parameter to `True`, to raise an Error on invalid inputs. Possible problems include the `dlc` field not matching the length of `data` or creating a message with both `is_remote_frame` and `is_error_frame` set to `True`. :raises ValueError: iff `check` is set to `True` and one or more arguments were invalid """ self._dict = dict() # see __getattr__ self.timestamp = timestamp self.arbitration_id = arbitration_id if extended_id is not None: # TODO remove in 4.0 warnings.warn("The extended_id parameter is deprecated and will be removed in 4.0, use is_extended_id instead", DeprecationWarning) if is_extended_id is not None: self.is_extended_id = is_extended_id else: self.is_extended_id = True if extended_id is None else extended_id self.is_remote_frame = is_remote_frame self.is_error_frame = is_error_frame self.channel = channel self.is_fd = is_fd self.bitrate_switch = bitrate_switch self.error_state_indicator = error_state_indicator if data is None or is_remote_frame: self.data = bytearray() elif isinstance(data, bytearray): self.data = data else: try: self.data = bytearray(data) except TypeError: err = "Couldn't create message from {} ({})".format(data, type(data)) raise TypeError(err) if dlc is None: self.dlc = len(self.data) else: self.dlc = dlc if check: self._check() def __str__(self): field_strings = ["Timestamp: {0:>15.6f}".format(self.timestamp)] if self.is_extended_id: arbitration_id_string = "ID: {0:08x}".format(self.arbitration_id) else: arbitration_id_string = "ID: {0:04x}".format(self.arbitration_id) field_strings.append(arbitration_id_string.rjust(12, " ")) flag_string = " ".join([ "X" if self.is_extended_id else "S", "E" if self.is_error_frame else " ", "R" if self.is_remote_frame else " ", "F" if self.is_fd else " ", "BS" if self.bitrate_switch else " ", "EI" if self.error_state_indicator else " " ]) field_strings.append(flag_string) field_strings.append("DLC: {0:2d}".format(self.dlc)) data_strings = [] if self.data is not None: for index in range(0, min(self.dlc, len(self.data))): data_strings.append("{0:02x}".format(self.data[index])) if data_strings: # if not empty field_strings.append(" ".join(data_strings).ljust(24, " ")) else: field_strings.append(" " * 24) if (self.data is not None) and (self.data.isalnum()): field_strings.append("'{}'".format(self.data.decode('utf-8', 'replace'))) if self.channel is not None: try: field_strings.append("Channel: {}".format(self.channel)) except UnicodeEncodeError: pass return " ".join(field_strings).strip() def __len__(self): # return the dlc such that it also works on remote frames return self.dlc def __bool__(self): # For Python 3 return True def __nonzero__(self): # For Python 2 return self.__bool__() def __repr__(self): args = ["timestamp={}".format(self.timestamp), "arbitration_id={:#x}".format(self.arbitration_id), "extended_id={}".format(self.is_extended_id)] if self.is_remote_frame: args.append("is_remote_frame={}".format(self.is_remote_frame)) if self.is_error_frame: args.append("is_error_frame={}".format(self.is_error_frame)) if self.channel is not None: args.append("channel={!r}".format(self.channel)) data = ["{:#02x}".format(byte) for byte in self.data] args += ["dlc={}".format(self.dlc), "data=[{}]".format(", ".join(data))] if self.is_fd: args.append("is_fd=True") args.append("bitrate_switch={}".format(self.bitrate_switch)) args.append("error_state_indicator={}".format(self.error_state_indicator)) return "can.Message({})".format(", ".join(args)) def __format__(self, format_spec): if not format_spec: return self.__str__() else: raise ValueError("non empty format_specs are not supported") def __bytes__(self): return bytes(self.data) def __copy__(self): new = Message( timestamp=self.timestamp, arbitration_id=self.arbitration_id, is_extended_id=self.is_extended_id, is_remote_frame=self.is_remote_frame, is_error_frame=self.is_error_frame, channel=self.channel, dlc=self.dlc, data=self.data, is_fd=self.is_fd, bitrate_switch=self.bitrate_switch, error_state_indicator=self.error_state_indicator ) new._dict.update(self._dict) return new def __deepcopy__(self, memo): new = Message( timestamp=self.timestamp, arbitration_id=self.arbitration_id, is_extended_id=self.is_extended_id, is_remote_frame=self.is_remote_frame, is_error_frame=self.is_error_frame, channel=deepcopy(self.channel, memo), dlc=self.dlc, data=deepcopy(self.data, memo), is_fd=self.is_fd, bitrate_switch=self.bitrate_switch, error_state_indicator=self.error_state_indicator ) new._dict.update(self._dict) return new def _check(self): """Checks if the message parameters are valid. Assumes that the types are already correct. :raises ValueError: iff one or more attributes are invalid """ if self.timestamp < 0.0: raise ValueError("the timestamp may not be negative") if isinf(self.timestamp): raise ValueError("the timestamp may not be infinite") if isnan(self.timestamp): raise ValueError("the timestamp may not be NaN") if self.is_remote_frame and self.is_error_frame: raise ValueError("a message cannot be a remote and an error frame at the sane time") if self.arbitration_id < 0: raise ValueError("arbitration IDs may not be negative") if self.is_extended_id: if 0x20000000 <= self.arbitration_id: raise ValueError("Extended arbitration IDs must be less than 2^29") elif 0x800 <= self.arbitration_id: raise ValueError("Normal arbitration IDs must be less than 2^11") if self.dlc < 0: raise ValueError("DLC may not be negative") if self.is_fd: if 64 < self.dlc: raise ValueError("DLC was {} but it should be <= 64 for CAN FD frames".format(self.dlc)) elif 8 < self.dlc: raise ValueError("DLC was {} but it should be <= 8 for normal CAN frames".format(self.dlc)) if self.is_remote_frame: if self.data is not None and len(self.data) != 0: raise ValueError("remote frames may not carry any data") elif self.dlc != len(self.data): raise ValueError("the DLC and the length of the data must match up for non remote frames") if not self.is_fd: if self.bitrate_switch: raise ValueError("bitrate switch is only allowed for CAN FD frames") if self.error_state_indicator: raise ValueError("error state indicator is only allowed for CAN FD frames") def equals(self, other, timestamp_delta=1.0e-6): """ Compares a given message with this one. :param can.Message other: the message to compare with :type timestamp_delta: float or int or None :param timestamp_delta: the maximum difference at which two timestamps are still considered equal or None to not compare timestamps :rtype: bool :return: True iff the given message equals this one """ # see https://github.com/hardbyte/python-can/pull/413 for a discussion # on why a delta of 1.0e-6 was chosen return ( # check for identity first and finish fast self is other or # then check for equality by value ( ( timestamp_delta is None or abs(self.timestamp - other.timestamp) <= timestamp_delta ) and self.arbitration_id == other.arbitration_id and self.is_extended_id == other.is_extended_id and self.dlc == other.dlc and self.data == other.data and self.is_remote_frame == other.is_remote_frame and self.is_error_frame == other.is_error_frame and self.channel == other.channel and self.is_fd == other.is_fd and self.bitrate_switch == other.bitrate_switch and self.error_state_indicator == other.error_state_indicator ) ) python-can-3.3.2.final/can/notifier.py000066400000000000000000000116171352572415400176370ustar00rootroot00000000000000# coding: utf-8 """ This module contains the implementation of :class:`~can.Notifier`. """ import threading import logging import time try: import asyncio except ImportError: asyncio = None logger = logging.getLogger('can.Notifier') class Notifier(object): def __init__(self, bus, listeners, timeout=1.0, loop=None): """Manages the distribution of :class:`can.Message` instances to listeners. Supports multiple buses and listeners. .. Note:: Remember to call `stop()` after all messages are received as many listeners carry out flush operations to persist data. :param can.BusABC bus: A :ref:`bus` or a list of buses to listen to. :param list listeners: An iterable of :class:`~can.Listener` :param float timeout: An optional maximum number of seconds to wait for any message. :param asyncio.AbstractEventLoop loop: An :mod:`asyncio` event loop to schedule listeners in. """ self.listeners = listeners self.bus = bus self.timeout = timeout self._loop = loop #: Exception raised in thread self.exception = None self._running = True self._lock = threading.Lock() self._readers = [] buses = self.bus if isinstance(self.bus, list) else [self.bus] for bus in buses: self.add_bus(bus) def add_bus(self, bus): """Add a bus for notification. :param can.BusABC bus: CAN bus instance. """ if self._loop is not None and hasattr(bus, 'fileno') and bus.fileno() >= 0: # Use file descriptor to watch for messages reader = bus.fileno() self._loop.add_reader(reader, self._on_message_available, bus) else: reader = threading.Thread(target=self._rx_thread, args=(bus,), name='can.notifier for bus "{}"'.format(bus.channel_info)) reader.daemon = True reader.start() self._readers.append(reader) def stop(self, timeout=5): """Stop notifying Listeners when new :class:`~can.Message` objects arrive and call :meth:`~can.Listener.stop` on each Listener. :param float timeout: Max time in seconds to wait for receive threads to finish. Should be longer than timeout given at instantiation. """ self._running = False end_time = time.time() + timeout for reader in self._readers: if isinstance(reader, threading.Thread): now = time.time() if now < end_time: reader.join(end_time - now) else: # reader is a file descriptor self._loop.remove_reader(reader) for listener in self.listeners: if hasattr(listener, 'stop'): listener.stop() def _rx_thread(self, bus): msg = None try: while self._running: if msg is not None: with self._lock: if self._loop is not None: self._loop.call_soon_threadsafe( self._on_message_received, msg) else: self._on_message_received(msg) msg = bus.recv(self.timeout) except Exception as exc: self.exception = exc if self._loop is not None: self._loop.call_soon_threadsafe(self._on_error, exc) else: self._on_error(exc) raise def _on_message_available(self, bus): msg = bus.recv(0) if msg is not None: self._on_message_received(msg) def _on_message_received(self, msg): for callback in self.listeners: res = callback(msg) if self._loop is not None and asyncio.iscoroutine(res): # Schedule coroutine self._loop.create_task(res) def _on_error(self, exc): for listener in self.listeners: if hasattr(listener, 'on_error'): listener.on_error(exc) def add_listener(self, listener): """Add new Listener to the notification list. If it is already present, it will be called two times each time a message arrives. :param can.Listener listener: Listener to be added to the list to be notified """ self.listeners.append(listener) def remove_listener(self, listener): """Remove a listener from the notification list. This method trows an exception if the given listener is not part of the stored listeners. :param can.Listener listener: Listener to be removed from the list to be notified :raises ValueError: if `listener` was never added to this notifier """ self.listeners.remove(listener) python-can-3.3.2.final/can/player.py000066400000000000000000000064401352572415400173120ustar00rootroot00000000000000# coding: utf-8 """ Replays CAN traffic saved with can.logger back to a CAN bus. Similar to canplayer in the can-utils package. """ from __future__ import absolute_import, print_function import sys import argparse from datetime import datetime import can from can import Bus, LogReader, MessageSync def main(): parser = argparse.ArgumentParser( "python -m can.player", description="Replay CAN traffic.") parser.add_argument("-f", "--file_name", dest="log_file", help="""Path and base log filename, for supported types see can.LogReader.""", default=None) parser.add_argument("-v", action="count", dest="verbosity", help='''Also print can frames to stdout. You can add several of these to enable debugging''', default=2) parser.add_argument('-c', '--channel', help='''Most backend interfaces require some sort of channel. For example with the serial interface the channel might be a rfcomm device: "/dev/rfcomm0" With the socketcan interfaces valid channel examples include: "can0", "vcan0"''') parser.add_argument('-i', '--interface', dest="interface", help='''Specify the backend CAN interface to use. If left blank, fall back to reading from configuration files.''', choices=can.VALID_INTERFACES) parser.add_argument('-b', '--bitrate', type=int, help='''Bitrate to use for the CAN bus.''') parser.add_argument('--ignore-timestamps', dest='timestamps', help='''Ignore timestamps (send all frames immediately with minimum gap between frames)''', action='store_false') parser.add_argument('-g', '--gap', type=float, help=''' minimum time between replayed frames''', default=0.0001) parser.add_argument('-s', '--skip', type=float, default=60*60*24, help=''' skip gaps greater than 's' seconds''') parser.add_argument('infile', metavar='input-file', type=str, help='The file to replay. For supported types see can.LogReader.') # print help message when no arguments were given if len(sys.argv) < 2: parser.print_help(sys.stderr) import errno raise SystemExit(errno.EINVAL) results = parser.parse_args() verbosity = results.verbosity logging_level_name = ['critical', 'error', 'warning', 'info', 'debug', 'subdebug'][min(5, verbosity)] can.set_logging_level(logging_level_name) config = {"single_handle": True} if results.interface: config["interface"] = results.interface if results.bitrate: config["bitrate"] = results.bitrate bus = Bus(results.channel, **config) reader = LogReader(results.infile) in_sync = MessageSync(reader, timestamps=results.timestamps, gap=results.gap, skip=results.skip) print('Can LogReader (Started on {})'.format(datetime.now())) try: for m in in_sync: if verbosity >= 3: print(m) bus.send(m) except KeyboardInterrupt: pass finally: bus.shutdown() reader.stop() if __name__ == "__main__": main() python-can-3.3.2.final/can/thread_safe_bus.py000066400000000000000000000065231352572415400211360ustar00rootroot00000000000000# coding: utf-8 from __future__ import print_function, absolute_import from threading import RLock try: # Only raise an exception on instantiation but allow module # to be imported from wrapt import ObjectProxy import_exc = None except ImportError as exc: ObjectProxy = object import_exc = exc from .interface import Bus try: from contextlib import nullcontext except ImportError: class nullcontext(object): """A context manager that does nothing at all. A fallback for Python 3.7's :class:`contextlib.nullcontext` manager. """ def __init__(self, enter_result=None): self.enter_result = enter_result def __enter__(self): return self.enter_result def __exit__(self, *args): pass class ThreadSafeBus(ObjectProxy): """ Contains a thread safe :class:`can.BusABC` implementation that wraps around an existing interface instance. All public methods of that base class are now safe to be called from multiple threads. The send and receive methods are synchronized separately. Use this as a drop-in replacement for :class:`~can.BusABC`. .. note:: This approach assumes that both :meth:`~can.BusABC.send` and :meth:`~can.BusABC._recv_internal` of the underlying bus instance can be called simultaneously, and that the methods use :meth:`~can.BusABC._recv_internal` instead of :meth:`~can.BusABC.recv` directly. """ def __init__(self, *args, **kwargs): if import_exc is not None: raise import_exc super(ThreadSafeBus, self).__init__(Bus(*args, **kwargs)) # now, BusABC.send_periodic() does not need a lock anymore, but the # implementation still requires a context manager self.__wrapped__._lock_send_periodic = nullcontext() # init locks for sending and receiving separately self._lock_send = RLock() self._lock_recv = RLock() def recv(self, timeout=None, *args, **kwargs): with self._lock_recv: return self.__wrapped__.recv(timeout=timeout, *args, **kwargs) def send(self, msg, timeout=None, *args, **kwargs): with self._lock_send: return self.__wrapped__.send(msg, timeout=timeout, *args, **kwargs) # send_periodic does not need a lock, since the underlying # `send` method is already synchronized @property def filters(self): with self._lock_recv: return self.__wrapped__.filters @filters.setter def filters(self, filters): with self._lock_recv: self.__wrapped__.filters = filters def set_filters(self, filters=None, *args, **kwargs): with self._lock_recv: return self.__wrapped__.set_filters(filters=filters, *args, **kwargs) def flush_tx_buffer(self, *args, **kwargs): with self._lock_send: return self.__wrapped__.flush_tx_buffer(*args, **kwargs) def shutdown(self, *args, **kwargs): with self._lock_send, self._lock_recv: return self.__wrapped__.shutdown(*args, **kwargs) @property def state(self): with self._lock_send, self._lock_recv: return self.__wrapped__.state @state.setter def state(self, new_state): with self._lock_send, self._lock_recv: self.__wrapped__.state = new_state python-can-3.3.2.final/can/util.py000066400000000000000000000162661352572415400170020ustar00rootroot00000000000000# coding: utf-8 """ Utilities and configuration file parsing. """ from __future__ import absolute_import, print_function import os import os.path import sys import platform import re import logging import warnings try: from configparser import ConfigParser except ImportError: from ConfigParser import SafeConfigParser as ConfigParser import can from can.interfaces import VALID_INTERFACES log = logging.getLogger('can.util') # List of valid data lengths for a CAN FD message CAN_FD_DLC = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 16, 20, 24, 32, 48, 64 ] REQUIRED_KEYS = [ 'interface', 'channel', ] CONFIG_FILES = ['~/can.conf'] if platform.system() == "Linux": CONFIG_FILES.extend( [ '/etc/can.conf', '~/.can', '~/.canrc' ] ) elif platform.system() == "Windows" or platform.python_implementation() == "IronPython": CONFIG_FILES.extend( [ 'can.ini', os.path.join(os.getenv('APPDATA', ''), 'can.ini') ] ) def load_file_config(path=None, section=None): """ Loads configuration from file with following content:: [default] interface = socketcan channel = can0 :param path: path to config file. If not specified, several sensible default locations are tried depending on platform. :param section: name of the section to read configuration from. """ config = ConfigParser() if path is None: config.read([os.path.expanduser(path) for path in CONFIG_FILES]) else: config.read(path) _config = {} section = section if section is not None else 'default' if config.has_section(section): if config.has_section('default'): _config.update( dict((key, val) for key, val in config.items('default'))) _config.update(dict((key, val) for key, val in config.items(section))) return _config def load_environment_config(): """ Loads config dict from environmental variables (if set): * CAN_INTERFACE * CAN_CHANNEL * CAN_BITRATE """ mapper = { 'interface': 'CAN_INTERFACE', 'channel': 'CAN_CHANNEL', 'bitrate': 'CAN_BITRATE', } return dict( (key, os.environ.get(val)) for key, val in mapper.items() if val in os.environ ) def load_config(path=None, config=None, context=None): """ Returns a dict with configuration details which is loaded from (in this order): - config - can.rc - Environment variables CAN_INTERFACE, CAN_CHANNEL, CAN_BITRATE - Config files ``/etc/can.conf`` or ``~/.can`` or ``~/.canrc`` where the latter may add or replace values of the former. Interface can be any of the strings from ``can.VALID_INTERFACES`` for example: kvaser, socketcan, pcan, usb2can, ixxat, nican, virtual. .. note:: The key ``bustype`` is copied to ``interface`` if that one is missing and does never appear in the result. :param path: Optional path to config file. :param config: A dict which may set the 'interface', and/or the 'channel', or neither. It may set other values that are passed through. :param context: Extra 'context' pass to config sources. This can be use to section other than 'default' in the configuration file. :return: A config dictionary that should contain 'interface' & 'channel':: { 'interface': 'python-can backend interface to use', 'channel': 'default channel to use', # possibly more } Note ``None`` will be used if all the options are exhausted without finding a value. All unused values are passed from ``config`` over to this. :raises: NotImplementedError if the ``interface`` isn't recognized """ # start with an empty dict to apply filtering to all sources given_config = config or {} config = {} # use the given dict for default values config_sources = [ given_config, can.rc, lambda _context: load_environment_config(), # context is not supported lambda _context: load_file_config(path, _context) ] # Slightly complex here to only search for the file config if required for cfg in config_sources: if callable(cfg): cfg = cfg(context) # remove legacy operator (and copy to interface if not already present) if 'bustype' in cfg: if 'interface' not in cfg or not cfg['interface']: cfg['interface'] = cfg['bustype'] del cfg['bustype'] # copy all new parameters for key in cfg: if key not in config: config[key] = cfg[key] # substitute None for all values not found for key in REQUIRED_KEYS: if key not in config: config[key] = None # Handle deprecated socketcan types if config['interface'] in ('socketcan_native', 'socketcan_ctypes'): # DeprecationWarning in 3.x releases # TODO: Remove completely in 4.0 warnings.warn('{} is deprecated, use socketcan instead'.format(config['interface']), DeprecationWarning) config['interface'] = 'socketcan' if config['interface'] not in VALID_INTERFACES: raise NotImplementedError('Invalid CAN Bus Type - {}'.format(config['interface'])) if 'bitrate' in config: config['bitrate'] = int(config['bitrate']) can.log.debug("can config: {}".format(config)) return config def set_logging_level(level_name=None): """Set the logging level for the "can" logger. Expects one of: 'critical', 'error', 'warning', 'info', 'debug', 'subdebug' """ can_logger = logging.getLogger('can') try: can_logger.setLevel(getattr(logging, level_name.upper())) except AttributeError: can_logger.setLevel(logging.DEBUG) log.debug("Logging set to {}".format(level_name)) def len2dlc(length): """Calculate the DLC from data length. :param int length: Length in number of bytes (0-64) :returns: DLC (0-15) :rtype: int """ if length <= 8: return length for dlc, nof_bytes in enumerate(CAN_FD_DLC): if nof_bytes >= length: return dlc return 15 def dlc2len(dlc): """Calculate the data length from DLC. :param int dlc: DLC (0-15) :returns: Data length in number of bytes (0-64) :rtype: int """ return CAN_FD_DLC[dlc] if dlc <= 15 else 64 def channel2int(channel): """Try to convert the channel to an integer. :param channel: Channel string (e.g. can0, CAN1) or integer :returns: Channel integer or `None` if unsuccessful :rtype: int """ if channel is None: return None if isinstance(channel, int): return channel # String and byte objects have a lower() method if hasattr(channel, "lower"): match = re.match(r'.*(\d+)$', channel) if match: return int(match.group(1)) return None if __name__ == "__main__": print("Searching for configuration named:") print("\n".join(CONFIG_FILES)) print() print("Settings:") print(load_config()) python-can-3.3.2.final/can/viewer.py000066400000000000000000000540761352572415400173270ustar00rootroot00000000000000# coding: utf-8 # # Copyright (C) 2018 Kristian Sloth Lauszus. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # Contact information # ------------------- # Kristian Sloth Lauszus # Web : http://www.lauszus.com # e-mail : lauszus@gmail.com from __future__ import absolute_import, print_function import argparse import os import struct import sys import time import logging from typing import Dict, List, Tuple, Union import can from can import __version__ logger = logging.getLogger('can.serial') try: import curses from curses.ascii import ESC as KEY_ESC, SP as KEY_SPACE except ImportError: # Probably on windows logger.warning("You won't be able to use the viewer program without " "curses installed!") curses = None class CanViewer: def __init__(self, stdscr, bus, data_structs, testing=False): self.stdscr = stdscr self.bus = bus self.data_structs = data_structs # Initialise the ID dictionary, start timestamp, scroll and variable for pausing the viewer self.ids = {} self.start_time = None self.scroll = 0 self.paused = False # Get the window dimensions - used for resizing the window self.y, self.x = self.stdscr.getmaxyx() # Do not wait for key inputs, disable the cursor and choose the background color automatically self.stdscr.nodelay(True) curses.curs_set(0) curses.use_default_colors() # Used to color error frames red curses.init_pair(1, curses.COLOR_RED, -1) if not testing: # pragma: no cover self.run() def run(self): # Clear the terminal and draw the header self.draw_header() while 1: # Do not read the CAN-Bus when in paused mode if not self.paused: # Read the CAN-Bus and draw it in the terminal window msg = self.bus.recv(timeout=1. / 1000.) if msg is not None: self.draw_can_bus_message(msg) else: # Sleep 1 ms, so the application does not use 100 % of the CPU resources time.sleep(1. / 1000.) # Read the terminal input key = self.stdscr.getch() # Stop program if the user presses ESC or 'q' if key == KEY_ESC or key == ord('q'): break # Clear by pressing 'c' elif key == ord('c'): self.ids = {} self.start_time = None self.scroll = 0 self.draw_header() # Sort by pressing 's' elif key == ord('s'): # Sort frames based on the CAN-Bus ID self.draw_header() for i, key in enumerate(sorted(self.ids.keys())): # Set the new row index, but skip the header self.ids[key]['row'] = i + 1 # Do a recursive call, so the frames are repositioned self.draw_can_bus_message(self.ids[key]['msg'], sorting=True) # Pause by pressing space elif key == KEY_SPACE: self.paused = not self.paused # Scroll by pressing up/down elif key == curses.KEY_UP: # Limit scrolling, so the user do not scroll passed the header if self.scroll > 0: self.scroll -= 1 self.redraw_screen() elif key == curses.KEY_DOWN: # Limit scrolling, so the maximum scrolling position is one below the last line if self.scroll <= len(self.ids) - self.y + 1: self.scroll += 1 self.redraw_screen() # Check if screen was resized resized = curses.is_term_resized(self.y, self.x) if resized is True: self.y, self.x = self.stdscr.getmaxyx() if hasattr(curses, 'resizeterm'): # pragma: no cover curses.resizeterm(self.y, self.x) self.redraw_screen() # Shutdown the CAN-Bus interface self.bus.shutdown() # Unpack the data and then convert it into SI-units @staticmethod def unpack_data(cmd, cmd_to_struct, data): # type: (int, Dict, bytes) -> List[Union[float, int]] if not cmd_to_struct or len(data) == 0: # These messages do not contain a data package return [] for key in cmd_to_struct.keys(): if cmd == key if isinstance(key, int) else cmd in key: value = cmd_to_struct[key] if isinstance(value, tuple): # The struct is given as the fist argument struct_t = value[0] # type: struct.Struct # The conversion from raw values to SI-units are given in the rest of the tuple values = [d // val if isinstance(val, int) else float(d) / val for d, val in zip(struct_t.unpack(data), value[1:])] else: # No conversion from SI-units is needed struct_t = value # type: struct.Struct values = list(struct_t.unpack(data)) return values else: raise ValueError('Unknown command: 0x{:02X}'.format(cmd)) def draw_can_bus_message(self, msg, sorting=False): # Use the CAN-Bus ID as the key in the dict key = msg.arbitration_id # Sort the extended IDs at the bottom by setting the 32-bit high if msg.is_extended_id: key |= (1 << 32) new_id_added, length_changed = False, False if not sorting: # Check if it is a new message or if the length is not the same if key not in self.ids: new_id_added = True # Set the start time when the first message has been received if not self.start_time: self.start_time = msg.timestamp elif msg.dlc != self.ids[key]['msg'].dlc: length_changed = True if new_id_added or length_changed: # Increment the index if it was just added, but keep it if the length just changed row = len(self.ids) + 1 if new_id_added else self.ids[key]['row'] # It's a new message ID or the length has changed, so add it to the dict # The first index is the row index, the second is the frame counter, # the third is a copy of the CAN-Bus frame # and the forth index is the time since the previous message self.ids[key] = {'row': row, 'count': 0, 'msg': msg, 'dt': 0} else: # Calculate the time since the last message and save the timestamp self.ids[key]['dt'] = msg.timestamp - self.ids[key]['msg'].timestamp # Copy the CAN-Bus frame - this is used for sorting self.ids[key]['msg'] = msg # Increment frame counter self.ids[key]['count'] += 1 # Format the CAN-Bus ID as a hex value arbitration_id_string = '0x{0:0{1}X}'.format(msg.arbitration_id, 8 if msg.is_extended_id else 3) # Generate data string data_string = '' if msg.dlc > 0: data_string = ' '.join('{:02X}'.format(x) for x in msg.data) # Use red for error frames if msg.is_error_frame: color = curses.color_pair(1) else: color = curses.color_pair(0) # Now draw the CAN-Bus message on the terminal window self.draw_line(self.ids[key]['row'], 0, str(self.ids[key]['count']), color) self.draw_line(self.ids[key]['row'], 8, '{0:.6f}'.format(self.ids[key]['msg'].timestamp - self.start_time), color) self.draw_line(self.ids[key]['row'], 23, '{0:.6f}'.format(self.ids[key]['dt']), color) self.draw_line(self.ids[key]['row'], 35, arbitration_id_string, color) self.draw_line(self.ids[key]['row'], 47, str(msg.dlc), color) self.draw_line(self.ids[key]['row'], 52, data_string, color) if self.data_structs: try: values_list = [] for x in self.unpack_data(msg.arbitration_id, self.data_structs, msg.data): if isinstance(x, float): values_list.append('{0:.6f}'.format(x)) else: values_list.append(str(x)) values_string = ' '.join(values_list) self.draw_line(self.ids[key]['row'], 77, values_string, color) except (ValueError, struct.error): pass return self.ids[key] def draw_line(self, row, col, txt, *args): if row - self.scroll < 0: # Skip if we have scrolled passed the line return try: self.stdscr.addstr(row - self.scroll, col, txt, *args) except curses.error: # Ignore if we are trying to write outside the window # This happens if the terminal window is too small pass def draw_header(self): self.stdscr.erase() self.draw_line(0, 0, 'Count', curses.A_BOLD) self.draw_line(0, 8, 'Time', curses.A_BOLD) self.draw_line(0, 23, 'dt', curses.A_BOLD) self.draw_line(0, 35, 'ID', curses.A_BOLD) self.draw_line(0, 47, 'DLC', curses.A_BOLD) self.draw_line(0, 52, 'Data', curses.A_BOLD) if self.data_structs: # Only draw if the dictionary is not empty self.draw_line(0, 77, 'Parsed values', curses.A_BOLD) def redraw_screen(self): # Trigger a complete redraw self.draw_header() for key in self.ids.keys(): self.draw_can_bus_message(self.ids[key]['msg']) # noinspection PyProtectedMember class SmartFormatter(argparse.HelpFormatter): def _get_default_metavar_for_optional(self, action): return action.dest.upper() def _format_usage(self, usage, actions, groups, prefix): # Use uppercase for "Usage:" text return super(SmartFormatter, self)._format_usage(usage, actions, groups, 'Usage: ') def _format_args(self, action, default_metavar): if action.nargs != argparse.REMAINDER and action.nargs != argparse.ONE_OR_MORE: return super(SmartFormatter, self)._format_args(action, default_metavar) # Use the metavar if "REMAINDER" or "ONE_OR_MORE" is set get_metavar = self._metavar_formatter(action, default_metavar) return '%s' % get_metavar(1) def _format_action_invocation(self, action): if not action.option_strings or action.nargs == 0: return super(SmartFormatter, self)._format_action_invocation(action) # Modified so "-s ARGS, --long ARGS" is replaced with "-s, --long ARGS" else: parts = [] default = self._get_default_metavar_for_optional(action) args_string = self._format_args(action, default) for i, option_string in enumerate(action.option_strings): if i == len(action.option_strings) - 1: parts.append('%s %s' % (option_string, args_string)) else: parts.append('%s' % option_string) return ', '.join(parts) def _split_lines(self, text, width): # Allow to manually split the lines if text.startswith('R|'): return text[2:].splitlines() return super(SmartFormatter, self)._split_lines(text, width) def _fill_text(self, text, width, indent): if text.startswith('R|'): # noinspection PyTypeChecker return ''.join(indent + line + '\n' for line in text[2:].splitlines()) else: return super(SmartFormatter, self)._fill_text(text, width, indent) def parse_args(args): # Python versions >= 3.5 kwargs = {} if sys.version_info[0] * 10 + sys.version_info[1] >= 35: # pragma: no cover kwargs = {'allow_abbrev': False} # Parse command line arguments parser = argparse.ArgumentParser('python -m can.viewer', description='A simple CAN viewer terminal application written in Python', epilog='R|Shortcuts: ' '\n +---------+-------------------------+' '\n | Key | Description |' '\n +---------+-------------------------+' '\n | ESQ/q | Exit the viewer |' '\n | c | Clear the stored frames |' '\n | s | Sort the stored frames |' '\n | SPACE | Pause the viewer |' '\n | UP/DOWN | Scroll the viewer |' '\n +---------+-------------------------+', formatter_class=SmartFormatter, add_help=False, **kwargs) optional = parser.add_argument_group('Optional arguments') optional.add_argument('-h', '--help', action='help', help='Show this help message and exit') optional.add_argument('--version', action='version', help="Show program's version number and exit", version='%(prog)s (version {version})'.format(version=__version__)) # Copied from: https://github.com/hardbyte/python-can/blob/develop/can/logger.py optional.add_argument('-b', '--bitrate', type=int, help='''Bitrate to use for the given CAN interface''') optional.add_argument('-c', '--channel', help='''Most backend interfaces require some sort of channel. For example with the serial interface the channel might be a rfcomm device: "/dev/rfcomm0" with the socketcan interfaces valid channel examples include: "can0", "vcan0". (default: use default for the specified interface)''') optional.add_argument('-d', '--decode', dest='decode', help='R|Specify how to convert the raw bytes into real values.' '\nThe ID of the frame is given as the first argument and the format as the second.' '\nThe Python struct package is used to unpack the received data' '\nwhere the format characters have the following meaning:' '\n < = little-endian, > = big-endian' '\n x = pad byte' '\n c = char' '\n ? = bool' '\n b = int8_t, B = uint8_t' '\n h = int16, H = uint16' '\n l = int32_t, L = uint32_t' '\n q = int64_t, Q = uint64_t' '\n f = float (32-bits), d = double (64-bits)' '\nFx to convert six bytes with ID 0x100 into uint8_t, uint16 and uint32_t:' '\n $ python -m can.viewer -d "100:: (matches when & mask == can_id & mask)' '\n ~ (matches when & mask != can_id & mask)' '\nFx to show only frames with ID 0x100 to 0x103 and 0x200 to 0x20F:' '\n python -m can.viewer -f 100:7FC 200:7F0' '\nNote that the ID and mask are alway interpreted as hex values', metavar='{:,~}', nargs=argparse.ONE_OR_MORE, default='') optional.add_argument('-i', '--interface', dest='interface', help='R|Specify the backend CAN interface to use.', choices=sorted(can.VALID_INTERFACES)) # Print help message when no arguments are given if len(args) == 0: parser.print_help(sys.stderr) import errno raise SystemExit(errno.EINVAL) parsed_args = parser.parse_args(args) can_filters = [] if len(parsed_args.filter) > 0: # print('Adding filter/s', parsed_args.filter) for flt in parsed_args.filter: # print(filter) if ':' in flt: _ = flt.split(':') can_id, can_mask = int(_[0], base=16), int(_[1], base=16) elif '~' in flt: can_id, can_mask = flt.split('~') can_id = int(can_id, base=16) | 0x20000000 # CAN_INV_FILTER can_mask = int(can_mask, base=16) & 0x20000000 # socket.CAN_ERR_FLAG else: raise argparse.ArgumentError(None, 'Invalid filter argument') can_filters.append({'can_id': can_id, 'can_mask': can_mask}) # Dictionary used to convert between Python values and C structs represented as Python strings. # If the value is 'None' then the message does not contain any data package. # # The struct package is used to unpack the received data. # Note the data is assumed to be in little-endian byte order. # < = little-endian, > = big-endian # x = pad byte # c = char # ? = bool # b = int8_t, B = uint8_t # h = int16, H = uint16 # l = int32_t, L = uint32_t # q = int64_t, Q = uint64_t # f = float (32-bits), d = double (64-bits) # # An optional conversion from real units to integers can be given as additional arguments. # In order to convert from raw integer value the real units are multiplied with the values and similarly the values # are divided by the value in order to convert from real units to raw integer values. data_structs = {} # type: Dict[Union[int, Tuple[int, ...]], Union[struct.Struct, Tuple, None]] if len(parsed_args.decode) > 0: if os.path.isfile(parsed_args.decode[0]): with open(parsed_args.decode[0], 'r') as f: structs = f.readlines() else: structs = parsed_args.decode for s in structs: tmp = s.rstrip('\n').split(':') # The ID is given as a hex value, the format needs no conversion key, fmt = int(tmp[0], base=16), tmp[1] # The scaling scaling = [] # type: list for t in tmp[2:]: # First try to convert to int, if that fails, then convert to a float try: scaling.append(int(t)) except ValueError: scaling.append(float(t)) if scaling: data_structs[key] = (struct.Struct(fmt),) + tuple(scaling) else: data_structs[key] = struct.Struct(fmt) # print(data_structs[key]) return parsed_args, can_filters, data_structs def main(): # pragma: no cover parsed_args, can_filters, data_structs = parse_args(sys.argv[1:]) config = {'single_handle': True} if can_filters: config['can_filters'] = can_filters if parsed_args.interface: config['interface'] = parsed_args.interface if parsed_args.bitrate: config['bitrate'] = parsed_args.bitrate # Create a CAN-Bus interface bus = can.Bus(parsed_args.channel, **config) # print('Connected to {}: {}'.format(bus.__class__.__name__, bus.channel_info)) curses.wrapper(CanViewer, bus, data_structs) if __name__ == '__main__': # pragma: no cover # Catch ctrl+c try: main() except KeyboardInterrupt: pass python-can-3.3.2.final/doc/000077500000000000000000000000001352572415400154445ustar00rootroot00000000000000python-can-3.3.2.final/doc/api.rst000066400000000000000000000011261352572415400167470ustar00rootroot00000000000000Library API =========== The main objects are the :class:`~can.BusABC` and the :class:`~can.Message`. A form of CAN interface is also required. .. hint:: Check the backend specific documentation for any implementation specific details. .. toctree:: :maxdepth: 1 bus message listeners asyncio bcm internal-api Utilities --------- .. automethod:: can.detect_available_configs .. _notifier: Notifier -------- The Notifier object is used as a message distributor for a bus. .. autoclass:: can.Notifier :members: Errors ------ .. autoclass:: can.CanError python-can-3.3.2.final/doc/asyncio.rst000066400000000000000000000015151352572415400176450ustar00rootroot00000000000000.. _asyncio: Asyncio support =============== The :mod:`asyncio` module built into Python 3.4 and later can be used to write asynchronous code in a single thread. This library supports receiving messages asynchronously in an event loop using the :class:`can.Notifier` class. There will still be one thread per CAN bus but the user application will execute entirely in the event loop, allowing simpler concurrency without worrying about threading issues. Interfaces that have a valid file descriptor will however be supported natively without a thread. You can also use the :class:`can.AsyncBufferedReader` listener if you prefer to write coroutine based code instead of using callbacks. Example ------- Here is an example using both callback and coroutine based code: .. literalinclude:: ../examples/asyncio_demo.py :language: python python-can-3.3.2.final/doc/bcm.rst000066400000000000000000000026761352572415400167520ustar00rootroot00000000000000.. _bcm: Broadcast Manager ================= .. module:: can.broadcastmanager The broadcast manager allows the user to setup periodic message jobs. For example sending a particular message at a given period. The broadcast manager supported natively by several interfaces and a software thread based scheduler is used as a fallback. This example shows the socketcan backend using the broadcast manager: .. literalinclude:: ../examples/cyclic.py :language: python :linenos: Message Sending Tasks ~~~~~~~~~~~~~~~~~~~~~ The class based api for the broadcast manager uses a series of `mixin classes `_. All mixins inherit from :class:`~can.broadcastmanager.CyclicSendTaskABC` which inherits from :class:`~can.broadcastmanager.CyclicTask`. .. autoclass:: can.broadcastmanager.CyclicTask :members: .. autoclass:: can.broadcastmanager.CyclicSendTaskABC :members: .. autoclass:: LimitedDurationCyclicSendTaskABC :members: .. autoclass:: MultiRateCyclicSendTaskABC :members: .. autoclass:: can.ModifiableCyclicTaskABC :members: .. autoclass:: can.RestartableCyclicTaskABC :members: Functional API -------------- .. warning:: The functional API in :func:`can.broadcastmanager.send_periodic` is now deprecated and will be removed in version 4.0. Use the object oriented API via :meth:`can.BusABC.send_periodic` instead. .. autofunction:: can.broadcastmanager.send_periodic python-can-3.3.2.final/doc/bus.rst000066400000000000000000000040501352572415400167660ustar00rootroot00000000000000.. _bus: Bus --- The :class:`~can.BusABC` class, as the name suggests, provides an abstraction of a CAN bus. The bus provides a wrapper around a physical or virtual CAN Bus. An interface specific instance of the :class:`~can.BusABC` is created by the :class:`~can.Bus` class, for example:: vector_bus = can.Bus(interface='vector', ...) That bus is then able to handle the interface specific software/hardware interactions and implements the :class:`~can.BusABC` API. A thread safe bus wrapper is also available, see `Thread safe bus`_. Autoconfig Bus '''''''''''''' .. autoclass:: can.Bus :members: :undoc-members: API ''' .. autoclass:: can.BusABC :members: :undoc-members: .. automethod:: __iter__ Transmitting '''''''''''' Writing individual messages to the bus is done by calling the :meth:`~can.BusABC.send` method and passing a :class:`~can.Message` instance. Periodic sending is controlled by the :ref:`broadcast manager `. Receiving ''''''''' Reading from the bus is achieved by either calling the :meth:`~can.BusABC.recv` method or by directly iterating over the bus:: for msg in bus: print(msg.data) Alternatively the :class:`~can.Listener` api can be used, which is a list of :class:`~can.Listener` subclasses that receive notifications when new messages arrive. Filtering ''''''''' Message filtering can be set up for each bus. Where the interface supports it, this is carried out in the hardware or kernel layer - not in Python. Thread safe bus --------------- This thread safe version of the :class:`~can.BusABC` class can be used by multiple threads at once. Sending and receiving is locked separately to avoid unnecessary delays. Conflicting calls are executed by blocking until the bus is accessible. It can be used exactly like the normal :class:`~can.BusABC`: # 'socketcan' is only an example interface, it works with all the others too my_bus = can.ThreadSafeBus(interface='socketcan', channel='vcan0') my_bus.send(...) my_bus.recv(...) .. autoclass:: can.ThreadSafeBus :members: python-can-3.3.2.final/doc/conf.py000077500000000000000000000141021352572415400167440ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # python-can documentation build configuration file # # This file is execfile()d with the current directory set to its containing dir. from __future__ import unicode_literals, absolute_import import sys import os # General information about the project. project = u'python-can' # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath('..')) import can # The version info for the project, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = can.__version__.split('-')[0] release = can.__version__ # -- General configuration ----------------------------------------------------- primary_domain = 'py' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.extlinks', 'sphinx.ext.todo', 'sphinx.ext.intersphinx', 'sphinx.ext.coverage', 'sphinx.ext.viewcode', 'sphinx.ext.graphviz', 'sphinxcontrib.programoutput' ] # Now, you can use the alias name as a new role, e.g. :issue:`123`. extlinks = { 'issue': ('https://github.com/hardbyte/python-can/issues/%s/', 'issue '), } intersphinx_mapping = { 'python': ('https://docs.python.org/3/', None), } # If this is True, todo and todolist produce output, else they produce nothing. # The default is False. todo_include_todos = True # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] graphviz_output_format = 'png' # 'svg' # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. language = 'en' # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['_build'] # The reST default role (used for this markup: `text`) to use for all documents #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # Include documentation from both the class level and __init__ autoclass_content = "both" # The default autodoc directive flags autodoc_default_flags = ['members', 'show-inheritance'] # Keep cached intersphinx inventories indefinitely intersphinx_cache_limit = -1 # -- 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 = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". #html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_domain_indices = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. #html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'python-can' python-can-3.3.2.final/doc/configuration.rst000066400000000000000000000075361352572415400210600ustar00rootroot00000000000000Configuration ============= Usually this library is used with a particular CAN interface, this can be specified in code, read from configuration files or environment variables. See :func:`can.util.load_config` for implementation. In Code ------- The ``can`` object exposes an ``rc`` dictionary which can be used to set the **interface** and **channel** before importing from ``can.interfaces``. :: import can can.rc['interface'] = 'socketcan' can.rc['channel'] = 'vcan0' can.rc['bitrate'] = 500000 from can.interfaces.interface import Bus bus = Bus() You can also specify the interface and channel for each Bus instance:: import can bus = can.interface.Bus(bustype='socketcan', channel='vcan0', bitrate=500000) Configuration File ------------------ On Linux systems the config file is searched in the following paths: #. ``~/can.conf`` #. ``/etc/can.conf`` #. ``$HOME/.can`` #. ``$HOME/.canrc`` On Windows systems the config file is searched in the following paths: #. ``~/can.conf`` #. ``can.ini`` (current working directory) #. ``$APPDATA/can.ini`` The configuration file sets the default interface and channel: :: [default] interface = channel = bitrate = The configuration can also contain additional sections (or context): :: [default] interface = channel = bitrate = [HS] # All the values from the 'default' section are inherited channel = bitrate = [MS] # All the values from the 'default' section are inherited channel = bitrate = :: from can.interfaces.interface import Bus hs_bus = Bus(context='HS') ms_bus = Bus(context='MS') Environment Variables --------------------- Configuration can be pulled from these environmental variables: * CAN_INTERFACE * CAN_CHANNEL * CAN_BITRATE Interface Names --------------- Lookup table of interface names: +---------------------+-------------------------------------+ | Name | Documentation | +=====================+=====================================+ | ``"socketcan"`` | :doc:`interfaces/socketcan` | +---------------------+-------------------------------------+ | ``"kvaser"`` | :doc:`interfaces/kvaser` | +---------------------+-------------------------------------+ | ``"serial"`` | :doc:`interfaces/serial` | +---------------------+-------------------------------------+ | ``"slcan"`` | :doc:`interfaces/slcan` | +---------------------+-------------------------------------+ | ``"ixxat"`` | :doc:`interfaces/ixxat` | +---------------------+-------------------------------------+ | ``"pcan"`` | :doc:`interfaces/pcan` | +---------------------+-------------------------------------+ | ``"usb2can"`` | :doc:`interfaces/usb2can` | +---------------------+-------------------------------------+ | ``"nican"`` | :doc:`interfaces/nican` | +---------------------+-------------------------------------+ | ``"iscan"`` | :doc:`interfaces/iscan` | +---------------------+-------------------------------------+ | ``"neovi"`` | :doc:`interfaces/neovi` | +---------------------+-------------------------------------+ | ``"vector"`` | :doc:`interfaces/vector` | +---------------------+-------------------------------------+ | ``"virtual"`` | :doc:`interfaces/virtual` | +---------------------+-------------------------------------+ python-can-3.3.2.final/doc/development.rst000066400000000000000000000114251352572415400205230ustar00rootroot00000000000000Developer's Overview ==================== Contributing ------------ Contribute to source code, documentation, examples and report issues: https://github.com/hardbyte/python-can There is also a `python-can `__ mailing list for development discussion. Some more information about the internals of this library can be found in the chapter :ref:`internalapi`. There is also additional information on extending the ``can.io`` module. Building & Installing --------------------- The following assumes that the commands are executed from the root of the repository: - The project can be built and installed with ``python setup.py build`` and ``python setup.py install``. - The unit tests can be run with ``python setup.py test``. The tests can be run with ``python2``, ``python3``, ``pypy`` or ``pypy3`` to test with other python versions, if they are installed. Maybe, you need to execute ``pip3 install python-can[test]`` (or only ``pip`` for Python 2), if some dependencies are missing. - The docs can be built with ``sphinx-build doc/ doc/_build``. Appending ``-n`` to the command makes Sphinx complain about more subtle problems. Creating a new interface/backend -------------------------------- These steps are a guideline on how to add a new backend to python-can. - Create a module (either a ``*.py`` or an entire subdirectory depending on the complexity) inside ``can.interfaces`` - Implement the central part of the backend: the bus class that extends :class:`can.BusABC`. See :ref:`businternals` for more info on this one! - Register your backend bus class in ``can.interface.BACKENDS`` and ``can.interfaces.VALID_INTERFACES`` in ``can.interfaces.__init__.py``. - Add docs where appropriate. At a minimum add to ``doc/interfaces.rst`` and add a new interface specific document in ``doc/interface/*``. - Update ``doc/scripts.rst`` accordingly. - Add tests in ``test/*`` where appropriate. Code Structure -------------- The modules in ``python-can`` are: +---------------------------------+------------------------------------------------------+ |Module | Description | +=================================+======================================================+ |:doc:`interfaces ` | Contains interface dependent code. | +---------------------------------+------------------------------------------------------+ |:doc:`bus ` | Contains the interface independent Bus object. | +---------------------------------+------------------------------------------------------+ |:doc:`message ` | Contains the interface independent Message object. | +---------------------------------+------------------------------------------------------+ |:doc:`io ` | Contains a range of file readers and writers. | +---------------------------------+------------------------------------------------------+ |:doc:`broadcastmanager ` | Contains interface independent broadcast manager | | | code. | +---------------------------------+------------------------------------------------------+ |:doc:`CAN ` | Legacy API. Deprecated. | +---------------------------------+------------------------------------------------------+ Process for creating a new Release ---------------------------------- Note many of these steps are carried out by the CI system on creating a tag in git. - Release from the ``master`` branch. - Update the library version in ``__init__.py`` using `semantic versioning `__. - Check if any deprecations are pending. - Run all tests and examples against available hardware. - Update `CONTRIBUTORS.txt` with any new contributors. - For larger changes update ``doc/history.rst``. - Sanity check that documentation has stayed inline with code. - Create a temporary virtual environment. Run ``python setup.py install`` and ``python setup.py test``. - Ensure the ``setuptools`` and ``wheel`` tools are up to date: ``pip install -U setuptools wheel``. - Create and upload the distribution: ``python setup.py sdist bdist_wheel``. - [Optionally] Sign the packages with gpg ``gpg --detach-sign -a dist/python_can-X.Y.Z-py3-none-any.whl``. - Upload with twine ``twine upload dist/python-can-X.Y.Z*``. - In a new virtual env check that the package can be installed with pip: ``pip install python-can==X.Y.Z``. - Create a new tag in the repository. - Check the release on `PyPi `__, `Read the Docs `__ and `GitHub `__. python-can-3.3.2.final/doc/doc-requirements.txt000066400000000000000000000000521352572415400214700ustar00rootroot00000000000000sphinx>=1.8.1 sphinxcontrib-programoutput python-can-3.3.2.final/doc/history.rst000066400000000000000000000053341352572415400177040ustar00rootroot00000000000000History and Roadmap =================== Background ---------- Originally written at `Dynamic Controls `__ for internal use testing and prototyping wheelchair components. Maintenance was taken over and the project was open sourced by Brian Thorne in 2010. Acknowledgements ---------------- Originally written by Ben Powell as a thin wrapper around the Kvaser SDK to support the leaf device. Support for linux socketcan was added by Rose Lu as a summer coding project in 2011. The socketcan interface was helped immensely by Phil Dixon who wrote a leaf-socketcan driver for Linux. The pcan interface was contributed by Albert Bloomfield in 2013. Support for pcan on Mac was added by Kristian Sloth Lauszus in 2018. The usb2can interface was contributed by Joshua Villyard in 2015. The IXXAT VCI interface was contributed by Giuseppe Corbelli and funded by `Weightpack `__ in 2016. The NI-CAN and virtual interfaces plus the ASCII and BLF loggers were contributed by Christian Sandberg in 2016 and 2017. The BLF format is based on a C++ library by Toby Lorenz. The slcan interface, ASCII listener and log logger and listener were contributed by Eduard Bröcker in 2017. The NeoVi interface for ICS (Intrepid Control Systems) devices was contributed by Pierre-Luc Tessier Gagné in 2017. Many improvements all over the library, cleanups, unifications as well as more comprehensive documentation and CI testing was contributed by Felix Divo in 2017 and 2018. The CAN viewer terminal script was contributed by Kristian Sloth Lauszus in 2018. The CANalyst-II interface was contributed by Shaoyu Meng in 2018. Support for CAN within Python ----------------------------- Python natively supports the CAN protocol from version 3.3 on, if running on Linux: ============== ============================================================== ==== Python version Feature Link ============== ============================================================== ==== 3.3 Initial SocketCAN support `Docs `__ 3.4 Broadcast Management (BCM) commands are natively supported `Docs `__ 3.5 CAN FD support `Docs `__ 3.7 Support for CAN ISO-TP `Docs `__ ============== ============================================================== ==== python-can-3.3.2.final/doc/images/000077500000000000000000000000001352572415400167115ustar00rootroot00000000000000python-can-3.3.2.final/doc/images/viewer.png000066400000000000000000015240761352572415400207370ustar00rootroot00000000000000‰PNG  IHDRˆÚö™õ× (iCCPICC ProfileH‰•—XSÉ€ç–$$$´@¤„ÞD)¤×H•*ØI ¡„Tì袂kAE+º*¢àZYlØ•E°aXPQÖÅ‚ •7I]ýÞ{ß;ß7÷þ9sæÌ9çÎÜ@=š#g¡d‹ò$1!þ̉IÉLÒC€ P,`ËáJÅ~ÑÑáÊÐýŸòî´†rÕ^îëçþÿ*š<¾”  9•'åfC>îÊKò ô@½Ùô<1d"ŒhK`€Í圮d–œS•®°‰‹ €œ€ •Ѥ &‹™ÏM‡~Ô–Avñ„"ÈM½¹ògÈ£²³s «[C¶NýÎOú?|¦ûäpÒ‡Y™‹BT…RqgæÿYŽÿ-ÙY²¡9Ì`£ $¡1òœåuËÌ “3òyQjdd-Èׄ<…½œŸd¡ñƒö¸ÒX3À¥ò8a ›Š²"ÃõÞiÂ`6dX{4N˜ÇŽSŽEy’œ˜Aÿè ¾4(vˆ9Å\r›bYf¼ß ÏÍ>{Ègc .Q'Ú–/Lˆ„¬ù®436lÐæy rÈF"‹‘Ç Ÿ9Ò$Á1JÌ<[:”æ!²#9î{âáðê ›ÎÂ݇âúfOxBh'<$\'tnMJ~ˆœ "@'Œ1x0»Ôï³Ã-¡WÜ÷‚þ¡oœë{|,œÉ÷s»@í÷±Ê†3þVËA_d2JAö%[ÿš­šË°y¥¾¯…2®Ôáj ÷ü˜GÀwõãÁ{Ø–Øì v;‰]Àš°zÀÄŽc X vTÎÃkã±bm Í£ˆ'úþ4gpNyÕ¤ÕÝŸû@Fžüe ÈÏ”ÓyL?¸[ó™lwô(¦“ƒ#ÜEå{¿rkyÃPìéãâ7]î Ü‹¡2ý›Ž÷ #O ¿û¦3{ —ýJ޶qe’|¥—_Šÿm ŒàÞe 3r®Àø‚ 0D8¦Â: à:•€é`6XŠ@ X Ö‚r°l»Á>pÔƒ&pœ—@¸îÀµÒ^€^ðô#BBhÑCŒ ÄqBXˆ7„„#1H’‚¤#"D†ÌF"%H)RŽlCªß‘#ÈIäÒŽÜB ÝÈk䊡TT5D-Ñ1( õCÃÐ8t šŽæ¢è"t9º­D÷¢uèIôzíD_ }ÀT1f‚Ùc,,‹Â’±4L‚ÍÅŠ±2¬«ÁᓾŠub=ØGœˆÓq&n×k(sñ\|.¾ /Çwãuøiü*þïÅ¿h‚ÁƒÀ&L$¤¦Še„„Ä3ðÝé"¼#‰ ¢Ñ ¾{IÄ â,â2â&b-ñ±øˆØG"‘ôHv$/R‰CÊ#‘6ö’Ž“®ºHTTUŒUœT‚U’UD*…*e*{TŽ©\QyªÒOÖ [=ÈQdy&yy¹‘|™ÜEî§hR¬(^”8Jee=¥†r†r—òFUUÕTÕ]u‚ªPu¾êzÕýªçU¨~¤jQm©ÔÉTu9uõõõ F³¤ùÒ’iy´å´*Ú)Ú}Ú5ºÚh5¶OmžZ…ZÚµ—êdu u?õ©êêeêÕ/«÷h5,548s5*4ŽhthôiÒ55£4³5—iîѼ ùL‹¤e©¤ÅÓZ¤µ]ë”Ö#:F7£йô…ôô3ô.m¢¶•6[;C»D{Ÿv«v¯Ž–ÎX::Gu:Ã’Áfd1V00n0>0á7‚?b鈚WF¼×©ë«Ë×-Ö­Õ½®ûI©¤—©·J¯^ïž>®o«?Aºþfý3ú=#µGzŽäŽ,y`ämÔÀÖ Æ`–Ávƒƒ>C#ÃC±áÃS†=F #_£ £5FÇŒºéÆÞÆBã5ÆÇŸ3u˜~Ì,æzæif¯‰I¨‰Ìd›I«I¿©•i¼i¡i­é=3ŠË,ÍlY³Y¯¹±y„ùlójóÛd –…ÀbÅ9‹÷–V–‰–‹-ë-ŸYéZ±­ ¬ª­îZÓ¬}¬s­+­¯ÙmX6™6›lÚlQ[[m…íe;ÔÎÕNh·É®}a”û(ѨÊQöT{?û|ûjû££ÃGŽ®ýrŒù˜ä1«ÆœóÕÁÅ!Ëa‡ÃG-ÇñŽ…ŽŽ¯l¸NNלiÎÁÎóœœ_µË»yìMºK„Ëb—f—/®n®××n7s··n,mV4kë¼;ÁÝß}ž{“ûGW<{Ú{fzîñ|6ÎjÜŽq¼L½8^Û¼:½™Þ)Þ[½;}L|8>•>}Í|y¾;}ŸúÙøeøíõ{éïà/ñ?ìÿ>À#`NÀ‰@,0$°8°5H+(>¨<è~°ipzpupoˆKȬ¡„аÐU¡lC6—]Åîï6~ÎøÓa԰ذò°‡á¶á’ðÆ4b|Äꈻ‘‘¢Èú(ÅŽZu/Ú*:7ú Ä Ñ*&<‰qŒ™s.–;-vOì»8ÿ¸qwâ­ãeñÍ ê “ªÞ'&–&vN3qÎÄKIúI¤†dRrBòÎä¾IA“ÖNêšì2¹hò)VSfL¹0UjÖÔ£ÓÔ§q¦L!¤$¦ìIù̉âTrúRÙ©S{¹ÜuÜ<_Þ^7ß‹_Êšæ•Všö,Ý+}uz·ÀGP&èË…¯2B3¶d¼ÏŒÊÜ•9•˜U›­’’}D¤%ÊÎ1Ê™‘Ó.¶‰;s=r׿öJÂ$;¥ˆtŠ´!O~d·È¬e¿Èä{çW䘞0ýà Í¢-3mg.ù´ ¸à·Yø,î¬æÙ&³Ì~0Çoζ¹ÈÜÔ¹ÍóÌæ-š×5?dþî”™ þ,t(,-|»0qaã"ÃEó=ú%ä—ê"µ"IQÇbÏÅ[–àK„KZ—:/ݰôk1¯øb‰CIYÉçeÜeuüuý¯ËÓ–·®p]±y%q¥håU>«v—j–”>Z±ºn sMñš·k§­½P6¶lË:Ê:ÙºÎõáë6˜oX¹ás¹ üz…EíFƒK7¾ßÄÛte³ïæš-†[J¶|Ú*Üzs[ȶºJËʲíÄíùÛŸìHØqî7ÖoU;õw–ìü²K´«swÌîÓUnUU{ ö¬¨F«eÕÝ{'ïmÛ¸¯¡Æ¾f[-£¶d?Ø/Ûÿü÷”ßo;Ð|u°æÅ¡‡é‡‹ëº™u½õ‚úΆ¤†ö#ã47z6þcô»šLš*Žê]qŒrlѱãÇûNˆOôœL?ù¨yZóSO];=átë™°3çÏŸ=uÎïÜñó^ç›.x\8r‘u±þ’륺—–úüy¸Õµµî²Ûå†6÷¶ÆöqíÇ®ø\9y5ðêÙkìk—®G^o¿ãfÇäŽÎ›¼›ÏneÝzu;ÿvÿùw w‹ïiÜ+»op¿ò_6ÿªítí<ú ðAËÃØ‡wq½x,}ü¹kÑÚ“²§ÆO«ž9=kêîn{>éy× ñ‹þž¢¿4ÿÚøÒúå¡¿}ÿnéØÛõJòjàõ²7zov½û¶¹/ºïþ»ìwýï‹?è}Øý‘õñܧÄOOû§&}^ÿÅæKã×°¯w²Ä Gñ)€Á†¦¥ðz´$øíÐe’òl¦DyžTøO¬<¿)Ä€]¾ÄÏ ~£l†Í2ÞåŸàq¾uvnƒ"MsvRú¢Â áÃÀÀCH|‘ ôoø²{ €¹Ê3¡\ägЭºrjéÐ?Ê¿\?pV Ò" pHYs%%IR$ðbiTXtXML:com.adobe.xmp Screenshot nÌÞ.@IDATxìÝ €ÕýðßäÞlöÞeÙEPÑE]ï Ú*ZÅÅ¿Ö <þZÅÚÚV¬Zų ­V‹T+‚T¬Vñ¨l•ŠTðV*( ËÞG’ÍÌÿM’™›ì&/“lvùF—Lfæ½÷{Ÿ7™LæeÞ”à1zôè·Û}u 8Îï÷òù|FQiU‹ÅL!Á— RÇÎJu=)U:릻~ªy§ºž\ËtÖÎë¦Û²ž!@€ @€ @ uv®>õ•Ùšé¬?œ×•ÐR­_ªë¥“§´®ôÈFÞržv»=Xë‹u:[«ÕîÖh4ïƇvíÚµ)¸0Ꟙ^ž… j^xá…ǽ^ï™ì¯(j=e’u)Ó©LÈ¥²nªë¨ž'{?‰ì?µjÇ™ïùI~jǨv› ?@€ @€ @CU ‹R­£Úyæ{~’‹Àþ“þWó¡v½¥ØÒÍ“u%¬’^¯·±¿Ï:묹¬( ¯¤vØaû±N¡'Nç‘ìÊ!bW»r(ø,ô—Oü³uä´Ê³¼L™‘…‰l–‘ͼeŠl–¡VÞjå#×Ï€ @€ @€ _év:$‹^­|åŸÍ¼åò²YF6óî/~Ö \,•/ý±+ˆˆ]I|fWQAAÁûló?üðÃmÒŠÁ"éÊ¡çŸþÿÇ‘Rë$"—ËERG€ @€ @€ @CO@ê2™LRçIHf³ùýÙ³g#]I¤•ªÓÕÕµ²··÷T©cÈjµ’ÇãQ®zÕEÄ€ @€ @€ @ÒÈaÒ…AÒ탤«ŠØë}¶oß>¾¥¥å¡¾¾¾]-ôŸžžž"›Í-@€ @€ @€ a(PTTD%%%6vUÑtl¹«ÙUCè† *A€ @€ @€ Y@ºPˆ]ITd0®Ö°«‡Ž³Ûíò2tõ·ýa @€Àà  Òב=ó×Giëζ` &}Æ_QWˆ}Ï8ãÜ éàñ£.ÿàWé_olŒ]Æ“FÉÁG5#jiöÅQi°žÊ‚àÄ{ëÿIë6|;¯ @€ äP ão_¥¥¥ ;‚Ré’ëÝI=OÊ{çÎò,®gÄ—™:A€ @ 5O?M]-ߓ۹š&B:žU.ÿÕõTÕQãóxHc0<æöáÇLEf-=»ö]%{ž4Jb2Ó%—_y7uÔ´ÓÉã´Ó[m‹[‚—€ @€r#q‘ɺ¬ÔÉ}õoøòUDÒÐsrÞ¼yIéä<_&ŠH @€ õšw~§~¦ r¬S§t¹ì­ôÈc«Èfs×ɖͽè’¾M<ôDÒ½ú.þˆ'M‚¢©³e=þä‹äp8Idž˜;õé*¦QÁUO8uë z Q2̃ @€ uùsÜéõú”Óúý~’þR}¤“w²<ÓÉñ%SÄ|@€  ]ÒÊj%ø—žÿ»Ò9$ÍlÞ¹•þþÒ¿é»íÛÙß7ʽˆxÒ(…„'º[¾¦¥>ì’fI÷zéo+¨Éî ¯adFáI_¦‚H@€ ¡-°ý Öù3ó˜`%öŸr Ý<å(úæ«/é³/¾ íßíT®ð‰®%OšèôDÚÓf~ÕÑÚ’p>fB€ @È¥@ÆD.—‹ HºgF£Éø>DRR^ÒCÊ;ÓâËTé!@€ 0´¼6ýí¥×è'gÌ WDC&ü ÍðÑ[¯½Bo½ÿ±RQž4Jâ&º;šX‹!@€ d_ ã{uww+:ÑáÊ<Ñó’M'ZWš'åéñe*ˆô€ @úÛ?yŸÝ{/½¶þjëŒÿž¡£fžNó/ŸSQž41$y‘ñ—°$ùb6 @€ t2¾‚¨££ƒÆŽ¼zH*8ú*"©“GÅ~ã‰î’ÒÊ¿ßORÞ™>_¦‚H@€ á!às»éý oÿ¤ï!¥å•täqÓèð)uÁ –VO¤QÕÚÝŽ'ÍðÐB- @€ á.é‘á¬ioo/µ··¯"Šî쑳K4¯¿eÒúÒŸ”§”w¦Ä—© ÒC€ @`è Ä/‘~ÈÖÕÑFÿúÇ3ô×—Ö)¬Ÿ¼¯2Í“FIŒ @€ @y.ñDRývìØAååå¤Óé‚;ÑWIËã¿XIóâÑ÷òz½Á<ã×á}øxå€ @ù#P^;Ž~4óDò÷vÓê_&ŸÏŸRpç^õsšPnaëúè¾û‘Ñxß!©£G¶Aî$ 1Õ•çK3£;‡¶oßÌ+fe^ >‘ @€²,ôlìûEô—KiyÊ‘¼õϧÙ}†n$s0…NŸ}.ž õæwÖ²ªù‚KxÒ„²äŒY€ @€òO é÷/žPwîÜI_~ù%ICÄI>Ñò•Bòsô2iZJ#¥•òÈÖñeKùB€ @@[oh$Ÿ'nø8öã³ }¥òÚ¿Ö+ÓN°«Ýw×]ôÖû›)ögk¡”ÖÎ=´jùŸiÍ["Yñ¤a©Öžpöƒ¹HvɦzÝÞd‹0€ @€@V‹Å’Â×–ôb0›Í4vìXª¬¬$­V¼’(QRÇßï§öööà=‡ÔV.Qyò<Ä'Kà€ @{Ÿ€ô}ÀãñÁ` —ËEñ£$áI“(̃ @€ /Yé ’+WXXHT\\LÒ*½^\$]-$uY­Vêèè ÞÞ^9INŸ_N¹Q @€ @€ @y"Õ¢<©#€ @€ @€ @ˆPõDQùb€ @€ @€ @ OÐA”§ ƒ° @€ @€ @€@¶ÐA”-Yä @€ @€ @€òTDyÚ0 € @€ @€ dKDÙ’E¾€ @€ @€ @ OÐA”§ ƒ° @€ @€ @€@¶ÐA”-Yä @€ @€ @€òTDyÚ0 € @€ @€ dKDÙ’E¾€ @€ @€ @ Ot'NÌÓÐ @€ @€ @€@6pQ6T‘' @€ @€ @ÈcŶ;ãCh€ @€ @€ @* à "•A‘ @€ @€ @Èwtå{ !>@€ @€ @€  ²:ˆTEv€ @€ @€ @ ßÐA”ï-„ø @€ @€ @€€Êè RÙA€ @€ @€ |@Q¾·âƒ @€ @€ @*  ƒHePd@€ @€ @€ò]DùÞBˆ€ @€ @€ ¨,€"•A‘ @€ @€ @Èw]¾ˆøòQ žæ/8C(%7½·x±¸.CDL€ @€ @€ $Ø’ÝI—¦°àì®»øì‚)㪠Œ:A+ú¼{G“ëÃ7Ÿw>úûü«·¤ Vɾ@ý šwl=M¨-K£¬.úæ›-´bElÐ3ßø‹æì§) fdÝä™SrDûê4rŪî¬}ꊃ«µ¬¢¶ÍK»K½Ú1ÜëŒúåÀŒyó¨~Âhoïjú†¾Ü°‚BŸÓõ4oÞ±4aBmTE\äêê /·l¥Õëb?¢VÂ$ÒÈ`;SŽc(á±IªAäçqk.©VëA€@Œ@âã%uuí¢-[¶Ðºu8‘~1”¿ç<ôQùª©E¥D‰¢ª‘ÀN‰‰$Ú¶,íÁw¶D-Žy€ °7ð_AÔømyx~Ù!š‚(½Œûìo8ùüÅ'^e&]jY>D^̘w=yÂášÔJ¼õbàž¸N’!R %ÌÆkÖ.Ÿ»_µ2#Õ ÿgZ1¥y…²~#«Ñ˜”—Åc õ>Á¨ÌÅör=É;׳©ÏPžÃmÿ²—7vžUÝÿèò‘i©Ïv—(Ð=O‰­«ò¸NK—_\ٹǯ ×÷Øþr˶kWà„I¼^§(ÁvsÓçØ$…òóù¸5—jÞï*ø<ê— !a+ÐH‹ÿ¼¼úP#I¿çJü=b××ïX]óƒÞ{ð;™(£þ¿çD­˜÷“‚Ô9$=}g -Ä¿€ á/ ŸÃL¯¦óž¢ÎåçF]‹b£_økëª|á3|”pêì3 «õN¯ü³Œô²Ï‡µÏ[°ÈrÉD¡XŠeÎñ%6ÖAdˇ¸xcè¶¶‰=¾±þ"VCð¯eXf‚F#±_ÎØr ì(Iô‰Î–NWlÅWÓ V¶ß÷«S Gè{„ž¸©wÎÊhx†@JÃmÿ’R¥±RŽvÑWŸl³Öî_k4kÙnœ}ã5˜LF-Û¥Kˆ‡×åüì•ÆmmñnÞºÛ ¬›ÈÉ&BD"ùœN·—%´­É Õëo2ísDÑÏ–o*:¶þ¼æÃ¯]¦Ã?HG “íÌ퉔äöùcM"‹Nåûqk&. +œúL|¥n…5!á%à÷“t,ì ’Ž^ÑOZÀ› l&;r2e“¦—,~í»’Š©ãšðwè·ÿÕ‡–8®&RFvxèÓÞ«2— ýš¡€ ÌRú…ql´qɹUÊÐ5î¯ý·M-nªŸ=ß÷û•KéÎ_^$³o©ÝXTÖU:å²ÞØ´Cç•ËëTºJ¼>2=tjéºk”êõ-ZA³G«Õ†ÿNÙóƒ¼òš_þå”ÖÈ2ÍÎÐ\8êÄîøáãÖ-™+<®Æ>rÔ$Û¬žÃIBÏHQ`¸í_R¬6VˉÀ:šsèGE‘¹«Àlî4›îüÈI>¹è¯Vü˜Ícó ÌíeÕûöœ¶ðµŸoÝ´ü˜Âi=6vl›0󚦷šýá/Ó::ìg¿¹¸^ÎÏàÈ`;ÓÒ8~jÇ­¸p4>8ÐvÒñ‘Åbé´˜:t‚°çšGÞl±*µK×ÿçòÊkL@€ á%ÆìPů^ý€¾ÁLì×ÄÒÃG¯Ý:©uá–Ð+ü;ÔJc6÷‰y€ 0Ô&ÄT µý¼ŽŒÑÉÖ-¡k~Þýµ›BWÑXºü¾[Œ1ãÒÈÍv6ôŽ[sã’vs! a,|´äÊ“ü—>þe‹RåòƒM ‡HáÀ @ÃK@—^uæÑ%³jËå4/ÛO^Ìné—æcî„óO=A?¶¢XK.«¸só›Þ'ÿsßÛÔÓŒãiÔ(¢Ý»·'¾Qd=[g<[‡¬´{û:’ï%Y?cULÖ¨t3æ/.=CÀ³¦cëû¾ç—þÔ·ã §Ôz!ÏQT½¶mwŒyô"i:˜† Òg ¶K=ÝòðÚ2JÓöÕÛ[çÝà—úëç/þÏIúª@‹øÚã·zöÝØZ3èÖ.ל|ÌAúªB¦{÷§¾µ»;ɺRÉx@ ·õ3æÑ?:J¨](x[vˆ¶Ú‚ð€Ö¹¥A {KèO/ÿ¦sÉÙµUReÇ4–ΣÛ[Vd¯@ä¼W ¨½©sÜ:øM‘ºËŒÆy4íÄ£„±eìó¨³Yܾs»¸³]Ð?À1os]oœH@ ]ÕO¾íïš;™B#§Píaõ;ÙÐçÜG:ûÁDç(êçÓåç¡m˜P«7ù⮯6ú^yþQÿ’Õ}…;wÁ"aΩ3ôûÖ”iu¯ØÛÝØöÕÿùÖ¼üL`E‚õ#uæÿ>­ï9Êù…?Ÿäõ­»w³óB}Oâ¤Ó—T§øÏKÅ–À×üí[:^A€’ ¤×A4¿Q8@¹‘£ÞYz[ZCÀ×Ï\xaÑÅã ÉÐþÔÓÎÿ)ýæßKÛë~ø eùÆÓ>;wrup]÷§þKL÷9õÐÙ¸±úัâ×Ë­šI—Ú©ñqzëÙ‹kƒ,Ýœ£Vµ\·öÎÒ£kôf¥Ü§Ò´³®¤k_¾µmÿÓoW†YS–c""À<ßež‰n^®˜GÖM…ÛÀ"½úú¯ÖWŠ~¢;µVò?êúÑÑ£¬ÿûî!Îs§„Ú—­vÌ ÇÓ8[yÓܨ1íîÿ×VÃU§ì_³ÁLžD 3æÐ5×=Ûóƒ)çôö=t…€!múù ½íÒÒ)庂l—…ü!0Ø=ý–÷wgŸú¡€qœöÄF¢QûëÁŽåU·³ [óIt —³=§¹ÿgg•.b™¢ëô˜-z¥§s]^Šaa5@YÐQQY¥ô0¥ƒ(íý`ô9 ²ÑÓs®m*¹óAË&Z‚÷=–Ÿ2õp:õˆbÛ’Õ*çZæ>üªöÞKgVVêB÷L’×%šHõGžHg_üZ²yiwá¡W+÷ב×áý>íï9Î0r®‡šèž©£’ÞçiîŠo´+æî:oÐù¦kfźN¹‹(ívaÒxæ>/UO;dÒîQEc€ 0 @ZCÌÍ=l¢&ÒIà¤o·õýM²g.|Mx÷O×(CŽf÷Ç6´}²£»'”Æ@ûŸòóJÏWö)ç¹£róûÊRÔlŠÜB'r“…nið»ðïÜûÁâ‘rçtÊ^¨tM˜õ›ª5ó¥›w³1ê{Å*Qk¥¿è›ê'^R,Ï~þfÅÜàM-墆ísw }ÛÞãtù|~Ÿ—ý•cÅ9¾ò¬ 䇿ä4Aé ÏÔOœU¼4Ü9É­ŒNš=Wé´\Ænùs¥s(@Ý;?·nþâûNW8òƒæ”|¸ã…˜j¹LbÅòJ¥sÈÛë³;|ò×\йò¼èÏW̬–;‡Dg§gëæ:>ø`Kû¶]mV»—|¢Oôëͦ>çvx¿O§÷=GAJkbõ¼¥þO•ãÊZšwǯ÷1ˆÏ¦‘®š½ŸÒŸ®ZÒ-wqµC|ö©¼æ=/Λ«2h÷Tª„u @Ñ}"¢ÆO7^érçÿ å_/¤?ß:CIÜûõ3V¡°¦£þ¸ã¼‡Œ+ë=ù¶u{ä£!ýÄsŠ¿ù[¤“@‰!­+©ˆ &iÇi‰ÕÓOŸì_âEðzè l'«Ÿ”“#cä÷C¯.ˆ8ÔÛÎø[óQ'±ËÔ…o ·R[)GܹùÉî©Ú‚æ’²òžrKAן¶8ú³eòyÄSžž! %[Î;4r Óú¡óÏá^ uöƒE4ÞUå6¢‰`°´ž°ì˨ŸXF¤î¾rzr†]=s¨¹¢}⡠©ž cFØ‹ B«¦AÓb8—¤õàþ>Íñ='ªØ4&—Ðo´Ê_ë©jæ…å󤞺藚†âð4lt˜û¯]<U§8Ь4ÏKñ¶o»>–C€ ¤ÕA“»¢§9fFòWÿórý~òbÿöÀí“þ'æàåµ…3Åû7Z•ƒƒýf_W1_^?ÓgAê’:'~Ø|ÈOî _𲚶ls(—_ëJؽh58ª°Û Ó4k´Ú=lq(hÞÏîѲyòŸFÐîÑëKZœdâPKoÔKW\ ü°¥5ì_fîèV¶|çeá‡Ú&Ýï|–U°:â:Ú®§Å—¼Ï…´¦uã²®ÓG]­¶â8ÞçÑò_Ÿ t9>{¬§âÐ [¢²ë{Ì–ÉçOyQÁ`€@ž xÜßGEVOKßï,8sŒ!ÜA䢵wÌìí[ÕÚ†¾*ìxn¾2Üý~Åfåûƒ2¤‹ªº¤ rŶ«+½W‚–fÆ,àý>Íó=G‰"í‰{oxÚ£üRÔ8Eû‹ûœŸºå£”CÚ^{¢3ôK­vH;ä4ð¶o»§V‡ „ú|«/3ƒ~rBmøJ6 Ü—ëm÷$(䯇_wÊW‘qíæ%X‰sV׆{;¾!rI¸”ÍúwD_(Ü'ç˜/Ôz“r°ÖgEÌHAÀFÏÝúE“ËëU:ƒ›ÿÞ½ æ@6œÕ¼£©6xÕ—ôÚE¯ßû g|!ï}Ù®l.æ±Gšfį€×È–À¼4½–B÷ÓbÛçkÊÆÔ Äþ%u+¬ @‰¦.ºZSo¦ð<]´ê—E~„“8IŸ¹é|©Q^Ÿ0€@Œ;ó/æÏ¾ÜnÚÕÖ]ì l®ùéee¡°|ôÁ#?m9mIh¸N5÷ƒmÏÚÆ5>¤ }ß³ã“ÀÖÖž^[O‹óÃÿFÎU¼ýQ“ò½—jÏ4»÷l*ùãüýŸŸàý>­Â÷œ´šs˵´ú³È•®Sν¢¤>:6ÌÚ•ï]M´â·÷½Ôl‡èâTŸæmW»«^d@{‹@zDÞÈ8æ¤Õj”_Ð÷«UJf]䊓ü+r€nWOÔÝ„L4å•îïîXZtÜ}Ëì·{(:0Ló H¿| ö5ýÇqÞj9é<†4×Eo,¿®OÇ´Vã µÊeôd¢ÿÝ_ã÷Çþ=xZd8*,Ò–âüzö zeûtáÿKø cŠF\ú¡œŒÜPPú0Ps;ã:nÍSÛ.ž•%£ »³ysï#×4ìi¸òq¿œ@½ý ž¹áœ˜[,¿¶p¶8±º´§¸tdWÃé·+Gÿä2ßK_;¬r †‘‡^û§×j®ŽªÍkÿ¬ŸÓ£Z‹÷ûô`|Ϲú¾W{•“5#Ž+¸+xèP=ºîäBùƒÎ±ùEåǥ굃¬šgÞv¢ái÷ìÔ¹B€ÀÞ VÑú‘_²qœöŒ¯òQŽn‚¢‘¡|c€×}AmQ÷6ˆY–É ·Õ¿=“ôH›±€·³#væè¥¶æ¨ÇèRb:ï” Ž¢×ßJE¿7àèèrÇ]Ç®‰WPU`ÒþUF%Ã^—·[y™H4/²S¢ª©\ ÝGm-ß'ÙA++aé ¨¸ñ·¦tR$p٧ؤ ;ä·Ú”˜ÙŠ&×åe«È€@¼@Ï·÷lØð^Û[/¿Øºô†köÌ´MæšC{®\5Ì9K¤æ~0æ+o|@1¯×Ñ'Úo[¹çËv·òKÁX®¯ÿÑ•UË7‹µ]Ÿ¾Xsj&&ó$‡kÁû,Ç~Ÿ”ï9+n£×›(<ü¿‰fά0Xýú¨Q¹'±^ºûjåj¶C µÚ/8Û!G»«?òƒ ½F ­¢Õë>öGNÄÑÔÓ®kÑ¿WJ+Í8€ª”aň<s›¢¤˜ôúþ/¯Nš r% Ó 鵑Ñ ͽÙNÔýŸäû@…ž5{4:Csᨻ• ”")1¬D“èmÚâNôƒí‰£JÒÚ·f%Pd Õ"}£D´q]ìЭª‡ ÷Rõ¶3ÞãÖü„w˜´&<Ü)‹8ɱ–zÇÉó(·ååg+ *@`x 4½z§ë¸ãŽöžxúY¾«/ß î~ð¹…sŪL]Sç,hzñƒï;È-KúqÉr×'Õ×ËÍÃù}zp¾çl¡ûŸøP¹BJ?qVñlüø_/:×0B®Ö$ƒÛrHñÏ ?o9Û!:ï´Ú=:!¦!@i¤wsõsô©•õÝ„c§Í)øÞ/ÝäðE^Æ}|œ>æyR•éH²ÑÇkVû)ú»pÌÊálLÚ9õÊM ­‚yCO`õ‡_|rØì~T³ÞÈäµñ DöTú1õ}6ÏÐ-³j«rŠ€@N–Ýzv¡2´lçÇ®‰Ïžä4&6üTÝθŽ[óÓ´¯ËfÚÕá‹ü6Ù+öý‰ø‚W…Ÿ¨vœœëòò³ 0< Æ$£œÄT7?öƒ[VßCg5Œv™µS÷,zùk6Køaœ¢½áõ[‚gPø¿OÎ÷œu7<Øâï80‚.¼ñã¥3F(®¿ûèí=r5‰¡8ÏKñ·C¤¶òT*í.¯‹g@€@ºéuÑjºÿ©/»”BÊO4ýááFex e~ÌÄ:ztÍeÄ%ýÄ/ŒYzqß%'ÈãË’ã+ïsì’m-=‘/»~M 6Ùõô՟ϬVNVÅ.ÌüUô¸õ™ç†ÒX²Bܬ Ñ ïV6t²ÁºȆ@O]ùFÅã 3c ™GŸûßJå×n1Ë¢^`ÿ…É!!À~qÎAú9ÖOWý¥{‹üÏPK@õíŒç¸U­Ê¨˜OB—-ô]§¨ á«ßª%fx¡úÅ´í®™Õ@¥üy¤Ry*² +@¹È·ýàúÍ铼+¿ö*Wß”ŒÙ?4ç÷iU¾çp5Ê ZöJ“rÎ¨ìØ‹J&Ê£ËX7yî[¸9r^ˆrßÜç¥8Û¡Â~Ú½ÿ„X @H*fÑê+â_«ŒKtðU?u#A¹¤úõ$ýIÇò{ß×Êý…ÆÒow¬-ŽþÕ}ãÛ´×L5—Êi¿|âžNiȰÍë> (CÚ™ÒÿrÑŒ`¼õó¶»WO4뜊ë7’3Éðù…··)÷JÔO<«øñÆØ ç/\ ÜÌþ¢ë»Æ^òÊëŠ:XS«Î«éÆevȹ•ûëòMÏíÓyö§„7¾cØðÏßE~ê$'Â3²$pãÓﺕ+ܨ–æº*4Nvãbú̶¼²¡˜Ø³þ÷KØ¿d©qmå»vp™Çý}‚uúÎ’(Yß8Ÿžxë;ƒsù™µÊ2:_s]tíêþ7ò¾Ybúd²)ÛcŸ\cgð·ÆæûW©º¬ßðr¬JÆCµw¼þ»`Ò ž¾ÿðú‘ãƒ'×¢Þª ŽÙÒùᬠ_£Õh¤ûà#ýì~ĉöÙÊ禼n¢gÏvÿ=§íײÃË%ÒÁ¼¢Ïú[7Áv}¬Ð_RiÙ—Ïi9`ªX~p·ÊIsòÌíÒHرê1Á&„" øé=zå£÷ÿýUë‘§º°Õúž9%Ƕǧs¼«Fy9E!€àû̾¹òïwcöõ6å»p¿6>EÞgÏ­•{KD¿Çoïîrvt[}~C©PS[Ud–¯´¡&ºmꨦ…["9ò|ŸÎü{N¤üt§îgßÿõýŸüÛ tû5ßÓ'£ Ú!*¯Äç5ØG¨ÏhÛ´Ô:ò¸ëÂnœç¥Âe¥Ý¶{T1 @HI@9¡™ÒÚòJ[Ò$Ó%-/mîèý.QC¥ûSöã9sFþð˜C*kLdÔè´:ÁiU~¶¸eÉl±|Î=MwœÁlô%º1ûO*‹t9èç®otIkm¡Ó.¾§ûs›|ß#”Î!÷nï ·¼g½Ë¯œ÷¢Dã¯Ë1÷÷œ0Ýj:âÄÛÚ?hó†âe7Dª¨Ý·xÜ芒Pç—vo|·ksù±eÊÍ¥ÒŠ[´Zv&‚4‹tUÅ¥=¤«,¤Ë‹|1¾Òh(ý\tµîUG–8o}îã6»ºCg©2?¶¬¶²Äêò‘ýûíÜ»R¹Ð,­Ð±28Îû?ÖW¶¹"ÛÜ9äkó¯{p^óu›}‘“QÛt¤¸½oÿ©;¦²-PUjÖë¥N!¶]J»ge§,Ì^&Ûg'‹í„-î÷ŸZÜ:ՈΡäNX’™€zÛ™"ý÷Á˜8Ž[3«‹š©ûsYMÇ–,hÿ 5|lÍŠU:‡zwxž¾áG{nÞbÜ×Qgú^y•Îç‘å©iƒ¼ ¨#ú÷`µöƒ‘ñú­»—ÞëÿÛaõ‰Á‚Ö -ª¨¶ŒÛoÿÒýFW•ÈCîÖ^rZLç”/Ï÷éÌ¿çô[£~þâÞµÎÈý ˆºÞZÙÕ·sHÊB­vˆG>¯ÁŽ  F]ye‰Ü/ÇVÊì¼TÚía»G× Ó€ T¤óFé_AóŒyôÇËÎ×Îñ¬}î)ßÂ%Ï%ì ˜1¡páŽÓÖÕk…Þqë†õ¾¿ÞpO ¿$Ï]°H8múáÚ2ê¢^_ã¿añã óŽM­iiˆ‹NŸ©™2¶Dë·µŠ½ó–ÿ™ÅKĨç¨UòI(POó^,üàøCµ•…M÷žÿYçÿç’ÇÑ ½03W¡}ÙQÚQ:÷~ û—\µÊ À8Ž[‡‚›|œ\äk¥÷^yΟ켿º¤óy¤FyýÅ‚e€ò] ×ûÁú4ãG' G8^[[R(—к}³ÿ•çÿê_²z 3éŸVã{N.Ú0×í —Çw^*ývȬÝsÑ(€†ƒ@æDÃAu€ @€ @€ @{‘ßs{ª @€ @€ @€†›:ˆ†[‹¢>€ @€ @€ @`t „Å€ @€ @€ @`¸  ƒh¸µ(ê@€ @€ @€@Ñ@X @€ @€ @€†›:ˆ†[‹¢>€ @€ @€ @`t „Å€ @€ @€ @`¸  ƒh¸µ(ê@€ @€ @€@Ñ@X @€ @€ @€†›:ˆ†[‹¢>€ @€ @€ @`t „Å€ @€ @€ @`¸  ƒh¸µ(ê@€ @€ @€@Ñ@X @€ @€ @€†›€.ã  4K/õ3èå^OÚÙÕ™Mt°†„NK|=ýäi—‡q¼íǑ"Í “Þ\®!]@ý»½^×smvïëq!©õ’·<ÞtÑq÷¿]kiV¡>zõ~§^Éï†BU÷»vhat"þòR(jï\Å`¤K-íTƒÖ0R£ÑÒx¢Ïð{?èuy–Ú=b0ÓJ-ÂùúÂA'ˆb Íïs¿n³¹W9úK¥Â2Ž÷m°ÔtÓ èžrSÁZÉO¢è ø=9ÝÎÅÝ®~](­t*l×i•§‚®³ÈuýxËãMçÙÿ~7ne¼Ì 5>oó¢"jÁû~àMÇ{¦å¥û¹’ë83­_ºñò–Ç›.ÝøäõyËãM'—›î3oy¼éÒO^Ÿ·<Þtr¹é>ó–Ç›.Ýø°> @€@FK½›7‡†â"á¶RcMË@};wu7¿œNf…EôF…±ÖÈÒ4;ì­gµ»|é$Ǻ™ ð¶_Ú騗ƒå# Ë'kÈÔ7â­íèlº£·ïî9¼åñ¦‹t íÚ̶ûÊÐvŸ4ÑëÈ{ÃH+GU× ¬Çg€G$ [‘»¼ Ùké±ÑEU”´—ÏêqwÒlsö%2Ð=5E–ãõBqßeDß;{Ûæ´9½‰–e:/í÷m¸ÀtÓ5” ‹Š 5æ{}^û/›z¬›,K;]†ÛuÚå%ˆ9Ÿgåº~¼åñ¦ëc?Ð~·OÌTµ>oµêÎû~àMÇ[ƒLËK÷s%×qfZ¿tãå-7]ºñÉëó–Ç›N.7ÝgÞòxÓ¥Ÿ¼>oy¼éärÓ}æ-7]ºña}@€ Ì8;ˆ tSµÅ4˨)—CЈ>ïovu·¥~5ˆ‘–.ªœ,AÊãû^{Ëœ—_ÎÏÙàm?žtZºOIùThòû}ާºݯ±Óß5«ªYgë\ôÿaWw˳ªT™·<ÞtñA§°]›,ôêSmQ|Ò¸×Ò›Aê Š¼7"ÒU'n¢„WchAû­ÝÖra§;ô~â./. ¼ ˜è¯£ +K|>LJÇõ…×h YtzáœbSQ½N°H+6;zY§·3ªÓ[K÷*+=ZKfAôûß±»ÚÖ:ýÒêéÜÒ‚Ò)l¾”î+›µy^—‡å¨Öƒç}+•Í‘®¸Xx£ÔP#uú»½ëï»zí[IG3,º³ÍºR}^·õø=6»T‚òàI—ÉvÍSžì˜ÈuýxËãM×§ RØïöIƒƒ' ÖçíàÕ +%ó¾xÓñV"£ò8>WrgFõã–·<Þt!“ð–Ç›qªw¼Äk)¥ãm?Þt™ÄŠ´€ @Üi1wUU©þL“®¢ˆ ©$ˆÀg^ê9Р)cgªÓºŸÑ•Õ…&¹sˆ;z$L[€·ýxÓÕ•h¤Î!vB<°hww·|…ÙV'°ÚK-ÿaWÒ˜­ö°B¢gU¸Šˆ·<Þtñ Òví²ÓÉ;íMñic_GNxº>AßöÚÛΓ;€bö}¥By}3Ý›ç¸è¢]®ö¾q½½×zߨJÔ TS`¬˜NιÓ|ZE‘6Ü9X¶««e™’‡^ïíí^\[8AG–É–Âsº<Íjt˜ò¾oùÒ™he‰a„Ô9$ø½ŽÿÝceCÒÃO[]nߦ²²æ‹´#uzcñŠ·c^Ü Æ™Ž{»æ,/X—¡ðO®ëÇ[oº¾mÒ~·o2Ì$µ>o)ü,Ëû~àMÇ[ þòø>Wr'ýø"å-7_”ÄÈéç;o˜ˆ3Éq/èPiwÞú! @€€,V§Žôá„]•Ô9Ôãñôܹ«³ù·È.dHóÁ~Ut»úHúý6ŸhK35Vçàm?ÞtD£t‚t•y}>»Ü9¤„ïðÐw"±ë‰e0¦¹-*¹ÄLð–Ç›.¦p·ëiåÚ`ªßë¼#ÁÕ$aÖ˜â3y1Py™ä½·¥}Êá·ÊuŽ ³f óÌ:i4NÚåp´E:‡ä5‰ô¸­ÒÎT´šÙ寇Œ¤L6Åû¾åK×PbÔ„†?iMWOw¨s(ÛÜHs&[LÊ{¼é"9'ŸJ´]g³¼ä‘änI®ëÇ[oº>’*îwûäYPåó6+‘ ^¦¼ïÞt¼5å/ïs%×qò×/RÞòxÓñEIÄ[o:Ä™ûã¥Dæ¼íÇ›.Q ˜@€ 4OÊè3§»í¡Öö¦6[{¥þ£„ÈAlj!ГìWæÒÙÏÿZm5Sj9`-^ÞöãMÇâ _û¢×i gŇmÒÓèà}\Di»RgH-ÞòxÓ)uRq»6Òu]µ„·¶«§+þD»R¤Z¹.O­¸ó4Ÿ1ºÐ=¢XoHÀ!Çh2иàpš"}ÒúO^&?÷ziG°Ã”hŒÉé[’—§ýÌû¾åK7³@W …¨õûœW*šmcWJÛtè!ju櫃ƒ‹ñ¦“óJúœd»ÎZyIÉíÞú5˜ ÔÀ¶Ó†p»$ŽZZ‡­'?xËãM'—zVq¿›1^eS ãÏÛl78yó¾xÓñÖ’¿<¾Ï•\ÇÉ_?¾HyËãMÇ%ÿç4âL,Îë›.qÏå-7ÝÀa @€ l ¤ÙAä¡;ÛlÞU.þp~Uc6g÷ ø<¶ {Üv³Ž4cà/)yÛ7ÑúN¿™Á‹‚Nû«š¢à½Yäv¸«ÜT$݇'àóÚg°MÉùIϼåñ¦“ËVo»f÷f¨2—U²Œ÷8mwÄŸhèÕº]WjåÉõÄó@tŽI¼7›ÓëµËÃËI©äK‚ôI÷x¢Ò[®ÕjÍs*jÀå¼ï[žtFÚO/;µÚ}^G|§æ]•EÒ6Ýêõu‡.ÕÐñEÒUR¼éª|²í:[å O®–ó×ï˜â¢‚G×>8²¢öÁR­rµW$rÖ3º¬JZgQ©!ØÈß~üqFâ!Ro¿+¦³-éçm¶ãË}þ¼ïÞt¼5̤<žÏ•\Ç™Iýxbå-7OŒRÞòxÓ!ÎÜ/%óæm?ÞtÉâÀ|@€ \$=U™ÂëJJ4gë…RÖ%@+š¬Z.Èy—§ƒuZ¥°ŒìÞ#ïŒ*-ÅN•ßTSaž®£"i˜Á?«º-ð–Ç›ŽHÍíúÚj‹iªV,:Pg·9Ùð{‰µ–¢'G–>YSjþc¥E7Ç,w?$^?ÙÜTËK–ó#§• Ï.¬Ã:À‰]Es{s¯3²TºOèáMv­œAO5Á+ê¤UvŠ ×E—ŸÕiv5 {¯ÏsUhCY™Fz¯kD¯÷N©×S Q·XÞtT&év¥ò'w‹3¨ßÍ6çF?±mV †â’ù /9ø»j ‹Ø;ôÚ€×uC³=´mó–Ç›N†=«¹ßÊ“9àÿ¼ÍIx¹.„÷ýÀ›Ž·~¹./×qæº~¼åñ¦ƒgNC’ró¶oº¤ °€·<Þt„ƒÅ€ @ÙÐe7ûèÜ èîbýiÎ76{s¢{pD¯éá#°¶½ÓWSUÖ6¯@[¥eCKÝ4¦,tê;àw-kíê\¥rUyËãK§Þv-H?7to®@²N3ö† vêØ&ãÃ}Bãõ::Òl¢+ý>Çšn[÷}½rWDÿ°©”×{÷Òi¬½î(ÒŽô‹¢_ Aг{³I"mngÇ-½±÷fsùHê)í!“Ž\lFÜã’2ƒ1x“¢ðü¤½ƒqéòâ%«¹1ˆÝ'†’fÐ/-Úà~ÿ½žžöMl-v± ÔE¦Õj4&æçJéo —yêw»æ³Ÿò"%çÁTFõóеmήFŒd sñˆ’òß÷tnbÕ:»ªL/uòIM÷tkh^°¶¼åeÜîêíwó ÕöÊø>o‡)Õ ½Òôä3×ûOÞ83Þ/åÈq&†F»SÂã,Þ÷ßPñL¼5`. @€@šìð/7[kÌ–QìªÏë¶^ØåIöú܃Rr.ð˜Óëëƒ'†•²Û=û2òRÕ ÞòÒM§ÚvÍî—r ël6Û¬-‰;ÍDÚêñuîñv}èöv|âõwïñ‹ÊU*fÖù6§¢¬vU…iàˉR*OÕ&~™EÝ-¼Ü`*ýÛˆBC]L]´Ñ°J³F™Í#n·Äáuve—…ú@@IDAT©î£¦B`M©uïÅd>ø/Ø=·HÛÝ‘ý»4ØX¶ßw{]Ý×Zå;’…©ӥ=Wºd5h»V»¼dq ÖüLëçé¥Ýž=R›ø5zÓ¢‘…d.¢kXç¾T¥ÏzìÍ÷Eï³yËãMvUm¿ÎOƒ#îçíàD™ƒRyß¼éx«”ëòrg®ëÇ[o:xææ8d gÞöãM7P<É–ó–Ç›.Y˜@€ œtI¿èþ¡^(fÉÙc³ç¤f($oØÐ‚ï”›j*Ù‰b¯ÏgÿÜ'‡¬4T¾U[\Ô r¤¼å¥›N½íZKTï;äð8»~Úíº#ÇCwµt»/kîqÎoéq_±§Ë1{wG×ÑÍö¦\¾vù’•ý «o/ŒN?jyñéð:Z`}g·ÿ¸íM'îêh9vW{óÎ=z=Zv•оlÛþ먒ÒèN¢Øs›ƒCxihfyYÍ¿jËŠWÖ”™Ÿß§²üWfÝëZÖén ö"E4T§‹‹…3Ù¢Ò~Ù{Ÿ»i%íãMÇFöKí}Ê]^\>ùú2ÍúmµZŇb›T³¡ lC…q¤t•—Õíì¼¼'Òù—´ºi–§ä“b:õö»Jɘt?o!ÄÁ-2Å÷CŸ yÓõÉ(Ź./Űú¬Æ'oº>¤8ƒ·<Þt)†Õg5ÞòxÓõ żåñ¦K1¬>«ñ–Ç›®O)Îà-7]Šaa5@€ ̲ßAdJåÊ¢˜Q‰2¯rÈ“…n+Ñ”®°`÷Õ±_ÖÔm½¬©Ãö²Wì–BÔë E¬-.V-\ÞòÒM§âv}AU©þ-hDŸ÷þ¸ûÖ¤äâqÑ=­Ýžÿµú‚¿ü—î!2£¸È’,mÆå%Ëx/Ÿ¿ÞÞ+Îoîìý™Íß,u~ˆZ½yQU>Â⦫v[»^vû;ìjºÖR§×–ÖhÈÔáõtß¹««eK(û•0’E¾N±O’ÐUT1IWGie‰¡Rš÷ß^G[¢+âš=^§4(Wº)m×*–— „ÁŸ¥RýVµuxÿãƒ}•Ö±ï÷{×´ô²Ñã¼åñ¦Sq¿W¼Ì¥@ºŸ·¹Œm0Êâ}?ð¦ã­c®ËËuœ¹®oy¼éàÙG@íã>$šÁÛ~¼éÅÊ<ÞòxÓ¥Ö @Èš€|.2kL+4j+ùPT:âMvƒè‡ôk{éõ¾…EUoZDé^:òúnÞÕÓþzôŠ˜‚Zº¯ÂT¼¯ »±ùo›¬Ö­áZܵ§ÃáY.Î6hÊ4:ƒeí³ëÔVGôàEõå-/ýtªm×lH¬ŸÁá›>²ÙÚ_樵œdkw·øZA…UºZO«ÓL'²÷y©Xž\.žc6uuÖTÚNa÷lÙÇ`°Ô‘³KÞ«À<®»ˆš§³ûF™YWÊVvÞ]YÎúV ,;A vö¹æ&¶œ¼zåI Wº¹X‘ GêëÒ ¬SøÂNwÔÅBb·…ú„¤ ð¦“ÒF?RÝ®Õ*/ºì|šV±~›}÷ô¡¦b›¥fVOe;•ëÌ[g:Õö»rüxô?o!ÈÜÉù~Pmÿ™jmyãL5µÖã“7oܼåñ¦Cœa,‡¤êËÛ~¼éR+~=ÞòxÓÅ—×€ @9`¿óÉòC ï1áa÷ÖÈrIÈ>ÏêJ‹„£µÁsÆ´±»§+¾³â^6TÚÆà[DFC ëÐÈèÁ[W:•¶ë+ËŒ&©Më÷:ïO:´\ê,1ö>/ñ)Õ./>¼ ´DŸ4Ðq÷"нîpÑËÑClÑ%½QÎK ÑÿqdÕüŸòx©Md½_ìQe¶ÿ¯IÃ~ :­±#æYôÂHÖÙ ­çÙHŠ¼é¤ ¢)o×*•Ut~MªU?K± ßw(XAv?¢…#‹ú\É[o:•ö»ùÕh{W4\Ÿ·Ãˆ÷ýÀ›Ž×3×åå:Î\×·<Þtð dé8$e^ÞöãM—r`q+ò–Ç›.®x¼„ @È­@Ö¯ Þ§£“š’Uë×#+ g„’o{mmçÅüÒµ¿U°,˼í—<]hóAcJ»%ªÙIÖ Î6ÐeŦ¨µ­Ì[oºD1ÄÎëw»6k¨,x5…HŸõ:½±)y^™©A/qtù|¶>ÃÕ©^OŒ{CMÔ ÁMÞíõ9⯜K&0­¢@{–Mºòf}ÏÛCJï‡d%…æ'ßò¥{¥×y û}ÎÛÛâë` “MB‰”{€mŸò}‰xÓ)Q¦¹]g\žRp~NdZ¿Åµ…ÅcÒjÙ° 7µ8ÜkXgø?=bTÛQfóˆEq×ñ–Ç›.õ~÷»©d€u²(½ÏÛ,õ¬yß¼éx+”­òx?’Õƒ7NÞtÉâh>oy¼éŠ'ÙrÞòxÓ%‹c ù¼åñ¦(ždËyËãM—,Žæó–Ç›n x°€ @ {¡oêä¿[ØÅ ¡_Ê·d’Žoû¥’n½Ëëw«¥¡óFZ úÖuú˜u¡[TùÎ>áÓÊÊ4ïTÖ^Zj©ÙP[\\×7£àÞòxÓ% #õÙé:ŠÐ#¥Þ!SÝ^Q¨M\ýe”¹,4|—Hÿé±÷½p%ÝòR¯É^µfC±Eøm©1igåµÕÓT ±"‘Þ°Ù{£qê¤ %xÔ• 7ꪥE]nWÇ}ÁÁÚ¬Èf¥ú~H”:•÷-oº­V‡¸9 Ä]3ÉíÔJ‹nJèKôžÕf——ð¦“Ó³þ´´ÞG—§œŸ™Ô¯±ªL‚Ž,R'åÓ­=òUlw7÷ö~!ÛM tRyiõœ¨ªó–Ç›.ªhLAAû¼Ís+Þ÷o:^5Ëãý¡³ƒu‹"™%KÏFv‚š§ýxÓIÕÐÒMÕ%¦YFMy¢J‰ì$û?:­í‹{“÷ ^R]n¼ÜºE‘ úüwîênIvµy™Ç]¿T¶ëiå¥Ú»Ù½=Rî 2Ò U#CW E—šf–Þÿ³::~ÕãŽ=±^5íòú9L ¡´T¸·X<‘žDÚ¦ÿÓÓÛñ[«'xuedàû¨ší?¥¾ ¸‡Hß9]mçµõx1YêïÞ÷-oºp•Ì…´º¢ zT‚z¶¹]g´Øc;‡d ÎtÜÛ5gyr¸yÿœVýØ}‡FVKCËY=ήSš{#ÃFUT²¾ƒí³¤ ¸ÙÙÛvVô0‚i••)oº¨,äÉTö»òºxLu?o³&ª—Íû~àMÇ[´ËËðs%gq† J»~¼fXâL Ïë›.qÏå-7ÝÀ%^ƒ·<Þt‰£À\@€ , ¤ÙA”ÅHõð`ã]_¤××jt:VSA ˆß¹¼ž;zœ ;3b1´tUe¡î0-éÖ÷X]«Ÿ^ŽMÂ[oºØÒ³úª¡°€Ž5ê´ãô…ÝßÉðû?wy¼K­î¸‰¬†±—gn  J šý m…†Ýc‹µƒ?ðÅÚá~«+i;Ô™Lt|N3I¯Õim@B—Ïç]×c÷¾Üϰr±Øï‡Ø rð*ã‘zÁ+Š¢Ýï÷m°Ù½ÏøÞåMÇ[¥\—Ç'oº\×·<Þt¼.H—Càóvpœxß¼éxk™ëòrg®ëÇ[o:x&€§º.¹öL=æB€ ô/€¢þ}°€ @€ @€  ;Ͱ«*@€ @€ @€ Я:ˆúåÁB@€ @€ @€ 0üÐA4üÚ5‚ @€ @€ @ý  ƒ¨_,„ @€ @€ @ÃODïMQ#@€ @€ @€ Я:ˆúåÁB@€ @€ @€ 0üÐA4üÚ5‚ @€ @€ @ý  ƒ¨_,„ @€ @€ @ÃODïMQ#@€ @€ @€ Я:ˆúåÁB@€ @€ @€ 0üÐA4üÚ5‚ @€ @€ @ý  ƒ¨_,„ @€ @€ @ÃODïMQ#@€ @€ @€ Я€®ß¥ 6ÌšEÕ æÇÏrl}™^ß?7êu]ͪ“rj¡—_Þµ ÉdݺçúÆ‚k,&¿ß#:»Z=½ý’sñ²5b’˜Š@:íP7.=íXÍA“Æj+JôƒA+x¬þÝß~åzã™;½Ï&jF)ÍY'i§î?Ö0²¢XoÐ’ÆãèõYÛ÷x?xãÏÒÕ›Ôo?ž8£¬.øÅ"ÍŒ#'›ËÍ‚. Õoë'®çn¼ÇûzÔ:ʤ õK«<¥àðD:í§¤N7ß{þ‰•……lžÛï 8¬¾_lt?¿ø1¢fT’b"V —û¥ ·ëèÀë¦Ï¢ƒËE¡ó“5bûéi—ýV8Æ!…#ÌÀ¶“¶Ý[ݯ?£{UÂ7C¤®t¼õãM wøNårû”3(k?˜Ay÷чPÍÐ~C¨±* @€  WUlwê•›N+ß¼»ºÎ jJÓüê­gݺ֗h½† ~'ÜvõI5el¡Ø¸óØ š_N´bx^Ãe ‹.m¨1'XÇÛü®ý—g]gÅIí8ÌJ½êhᓞ2¾¤$y–~úì™ß6_~ÿú@déôØúßU` è#ób§¬Ÿÿ³ë”ËîvÆÎå}Åg¸¼º hùŸ®.Ÿ\L¦¾´ÓÚ»Noº#fCͰ~i—UêíI7íª5¿¹°adQdVÔ”Ÿ^»é¸¦[8ù•`¯žÌÝ~)Ãí:¾•f-¢7n:±ÖÈæ'ßO7Ð=Oßm9~¬¥8>¹ôúûõµÍ¹q•·ï2žt¼õãM×7êá8'wÛgH»<Îý wyñ±‡`Ð~C°Ñ2 @€  K©£ç—©×l_:ýâæ*¨Þ€Çëøý~1þØU"­Ÿ¾jaÃwqW‡4ÐM°Zê°n}»û¡ûþÐùð__±}ðÅ—¶&›è¨¨4h÷¼ûw×[Iߌrùx¦œî—2Ù®ãÛj:-èòÊ‘áNþî¯Þ¶?ûÖãöÓutßK–[k°žÿ†çV¶>òÈ*ëëuØFLž¤­.Ôê‹÷=¢ð¸âOzÿñ^STZÞt¼õãMo2 _çtûd~Üåqî¹Ë†m=«„öŠ­†˜!@€ @`˜ ¤}‘|EÈw/ÞØrÞâõþT]®º{¹þ̨(Òˆ!ÐøìK±çÀ«ÊÏVÿ'^Ü’ø¢…Y슥›ƒW, mï:.:ãºîèQë~±Bóà9“FJ1|õÄÏšç-ݤB'Cª5šëñµCëèÙ_X½*Ép~Óo§WïšY+]•òýš;[æÜ¹&¥íâ¾—Þ)=ºJkîHÇ™?κ«Õ¬¼ð ‘B`»¢íÜØ+ÚXýþÃêg&7½y×IM7Ä\E”<¾þêÇ[_û±ÿ ¼óËcj¤áöw–µþëÇ\ý‘¼.X-ëýÿvµ4}å#ÿ6]|pq¹mlµØXvlcó2yåðóâ6Ÿ0Rc‘Þ+`ï•gÃóyÓ±qÉ8÷/¼éâ*4ì^æzûä/o?È_Þ°kê!Y!´ßl6 @€ @ÃV@Ã[3>Ñ€oÉr›E'L›\%uõl·çÎcOo¾çów²µåù W­ gg£5Œí’ÖQX up“xv¡äåx–øÚh+%í’²}ýŸô]›ö\O­ÿÖ*%—élM¡‰þåsTyQp[òîúÄÞ§ÿçõ7è;—†u¨iÔþÓR~ÏôW?¾òxÛhÑEÇ–HCݯÛÐ9”hÛI}^î÷KüÛuL­.x@¸€uIWmÛí²Å,S^4Ðy'Ž—Fÿ¤]¯<Ôß9$Í_ðØÛViç-jÆjf/˜n”7”#oýxÓIeßG®·ÏLÊãÙfRÞðmõ¡S3´ßÐi+D @€ @{‡@Ê'»3ãh¡ÏÞy£í¡ŸÝôÃó¯ë•NÀb÷<(Ï™Çî‰NÛù¥óïñ—Õ]GW²_¹ËyˆU𝮓_á9±_;$Î+jnÝñ´Åoæt7·¦|טªÂàÉe!@GTvY›ì/Noh¤,}Í…³âhh ÑÁû(ÙØv}¥øc_÷[?®ò8Û¯á·th•ÈúàÜôÞÓ7Ùc£Ä«tòn¿Ôßv­Tn=yù‘#¤7Üÿþ@Û†n!áýá¨a: ¾—môÉ¿“\!úò;´#ØaJ4¦aF¨o—7_?)Õ/AzÞt ²J³x·Ï†é ÔÀöu ý~ŽÖ…ÖaëÉÞò‚é9öƒ•'çA@û = † @€ $àî òy[f˜xæ&ºó׿ñ®Ú”xiâ¹Ói¿Zcðäcû·;¢‡–“Ö¿ë*ÙsëÖ­Ý¡ŸÂWÒñçÈ¿fOœ#æò´ÃÀj¿ºéT³tÉàÙéuÙ¦¨{’ô—ö:çØÚàPWÎmÙãûÿúKÉ»¬¿8×/þ¿™e,Ækõô­–è2îZpZ‘4|^`÷&Ûâ”·áþëÇW_ûþÑ)~k›wÍjJ±}¢0È¿ýRÛµ÷¯V^mÏî;$]AváÒõK˜dßo`·“ZÒKM‡ƒäÞ%mÕóœà:¼é33•úÅ$¿àM—(¯¡3û<æ'‹ |ðÁÚW¾Qûàeu ~ÀÁ:×?Q%­³èŠ“Â·ä/O2M?˜YyC§‡k¤h¿áÚ²¨ @€  ]$' ®Pí±×=ùä“…O®|ÌüÇÛ®×Í™ÞïÏŽÎ0~ ö åšàUD½ÍßÊç#ƒkI÷š>JS¤q}â½ó╎6¼çMx¬£øœð:‹Ó<¡=»®°Tº:åýGÛ*ߤ¿"O»ìá¹õ×Ta'¬©s³óöËpö·¾ËŽs=úêî`¯§qì‹ßyiié,vo”›V®3O¥/’:¿þÜxS’a¹b#L­~ê•[zßWcG¯îò´ls*quÓéÒ«~¡Y°àçÚË.8-ÁÉà¾ù`ȳýÒÀÛ5»Ã»¿ÖÙuFöm¦)lÃò ļɶöºÈ¾Y4Tj§Lm¼éúÛ®R©_¢ô¼éå5¤æe°}>pÙ ÎÄöÅFj¸tqMü¹w­¾¦h<ûLÖZ7»n¸ìÞÐ>;ƒòB®iî3.oHµæð í7üÚ5‚ @€ !/ K·:v!)¡jóøªPêñuБ'ŸEW¶}åXó—ßuß÷rüõ>é–ÂÖgç´ádöN{ÔUÐ/' öö÷»¢}M'W€ RF¢Vk.—b“ÏSrŠ$éÔ]ö p뙂Ãü5¿³¬íÚU[£Ú)’Ó4Ö¡wÇ9ûô{ü~AgôÁm(@m>ÝqÆü¼U$'¾©Tã\{k£¯ÆülÛ¼ãö©ÒVM5ßôîÊÐðYÖÿº–]sQçª$ÅóÖ·¼$a$íqûÙûCG{Wð½qÓ#Ï™~tpmyt‡êe—ÿÔÿáÚ?·_½x Þ?I%Ù‚<Ú/¥¶]_@wŸ?…í/Eúæ™»›ÝS(¦º›6S›ç4‘Á¬=dÖ©:Ú´6¦s^Z÷’Ÿh Þ¤(œÝœ‹ˆ7]8DO©Õ¯oJÞt}s‚s2Ú>7ѵ¿XÕõÂÊ FÒHºøOKË7žrU§tÑäÙw?¯—:ʉÚéékBó‚:•òMk?¨ByC°U‡OÈh¿áÓ–¨  @€  4¯ ²ÑÖO¿èþüó»>üðÃŽO¶nïÞÓéP®þ0WM2Ϲieíª›O‹>÷̇Å~½:Sm£í›6±ܡǯV^fË:Ü[_ì¾vUìpY#ÇO”û”äÕñœ-Y·Ó’Kj$pë'OwžõëUÁóÄ ‹‹ºßTô†Q>eVéßþøsƒÊמņNœ,åcïìë v8F²iÿò]û²þú<3¨Wy‘ÐR˜j º‘f“´bÓç6÷â6ÏbC{“ç#v_°õëßoû®Óã ÚCϼ¹ú‰*¼wSˆjÈ®’/û¥·ë[Ÿ¾Â2Ší/};þe½ðþÈ~4¹ÿË´ñ¿=Viù¨“:âöÆØ¡ÆÎ¾í Ý%‡•U§?¶'‘7]’HR¬_ŸÔ¼éúd4Dgdº}n}ˆ<´qÔ¶þ⩦EË~Z@ÓÑ5ÓjØÏAþŸ½s¢:ûÿÙÝÜI€D]/T,¥+¥\$y¹XþAU ú*QkPPi¹Ôr•ˆŠÐ×TkÔ—ÞRA±hÕJP¡*Ñ"(б"*‰ IHB.»ÙÝÿÌlö>»;óÌì&»üÖfæÌyÎóœïyæÌ™sæœcfŸ½´¦æI׺P©¾nÌ’ëA•ô…i醿Ù(¿ð/Cä@@@@@@ âÈœATÁÖß[á9ã£és.¼%fÚè‹SøƒK¦?˜¶æ“½Õ¿+S™WþÍLn©$¥ÊRrÛãmž©»wXz^ŹjrW±}+&gò[”4~üç³Óîý£§O¸©*/šoWĪíÙy…šÙ³¦Ç–ÜïâÑ¿Jùóž‹Ún½áÁ&×~G{\EeÚi(,Önž?2]Ç;šj¾l­4±ÏŠKL}kÊ»»†¶,É[Ö"¶5T}ò˜$²X~)?î7ô†»^§n>þjãTûQ¶Ä?»¯ý¦’/¹0mÙþ½ÕÒ÷Z’gMDÆu½$ѯ ¼¤½~HT__>{ÓêV©ì·µ_¾w}ÜÈä”>“—l˸vÞ·­µÍæ®Äô!qIº8~¹Å’Mÿ®½qÅÌL×™DT9/»$æO59¯„",@¦V–.¶>sÍëu Ç¥¤Æ¿uÀ¡µš~Z®Nl>VÚpg±„AF™ú׃2õEXé†vP~á_†È€€€€€€@X9ƒÈG^+ËØc÷ßb¼ëùO„/‹g“ò—'øˆ--˜}°Í6‰g]ÃŞö-øy öÕž§ëÄ–ûªùì¨c6“4%ˆ%›€a{}Å4¡c¸þÃ?×K¿|W±õÞyÓÏ/zùD ?¨gM¿qÃìh±¸ä0¹vrñW ƒCŒYjÞm-˜õßÍyÙ-e•ç›x¢³&$>µ»(IŠ=’ò§¢>ÿ6íg_Ö…û"*.*Z×ú©q¥ûà ¾åî⎓Â^^ØÏ¦f»NôòŸü…vµ§ë%©~mXÈ~7÷Òt~ÖÇ‘—׊՗|Ñu™¼ÆÙ¹Ðý¬pú¢Æ²cß7´s³éú¥IÐë‡õÏHbqg+ßkZwݯjKjùE m?çK•ëNˆÿ#5."Â!UÎ3p?WÉ?K—Î0½ým§0“LËÍ@3×½ßvßÝÏtxáQªOn=¨TŸWR(¿â†2BÀÞÇ'%nÀ8•%÷Xßšô^3ÿÕº.íò>9Œµî(å#ÂéÆw]ÆsÃD‰‰ý4yO=­ç6ÈÖp÷ó‹Ê]& e²¾Ý3$|¤„`Õ䳿>>+-…ûš¼þÃ’ú÷?oT’tÅæÛ-ÿ{¨ej–6qð5ôì•FufɵSÏž\5«ÿ~ÅÂæO;VÍZÖl·cým“ÚŒ%oXož4@›>!aßS :¦IÌ·ïüGŸ¯²0™»¸ŒÙnõoßù[£Ø,(ÆÊØ'§—´×/.%“ r¹Ç|¥|†÷h½$ݯ³§NÔ¥tÏUóŸôÎ|÷²ÒÅă€ß°.õi]V~o°¨¶Ï»VN¾£ÞVgs³EïžÛ±ž±šœœ\ÏíÆUYVÆì÷KÀb¸$5–FËwn•B=¨HŸÝhüí1(¿CÅ       à‹€:3ˆ\Ro:£]¨‡•‡Y]«ÎÈ‹§f/Oºkô®¿³‘íÞ°LøªÙ‘lÞHM:÷…3Þ!ú5¼#&ÈazcQòEÜ`\ÛñJ‡ì¦Ô6utñÇ–„•ö"’o§¾`©fLª•ë7³ÃÏÝÕèÖßÍÙ¶©à¾öà L˜…3ðš ý¸OÉ?±üSŸ˜aÆv‹E,Ü3ÌÚ¥á’KHÍtN ñŒt¡Ÿ÷X½$Ó¯Mœ7›™Ñè±U¡üöï/ce®ƒC\w\ÿÓX~9Qñœù¨4åÉÉÌŸC'UΑ@d¨åŸyOhlûuãIº:î÷Û—÷õ‚¥@©T ÏËv„žÊ/ôÌ¡@@@@@@P}€(º{a8nÈFËõ¸+øU°£ÕÍÂúGñ©éñÜÊ$¬þà už{£äÖGñ•Œfo¸Í,ñ?•Üñ?Å^dŽc GÚS°Eµ¥üb¢uÜòüL„‹ØbWrؙͧ•ž(ÜK¥b?ÈóWÉJß=% LZµQÚž—ýœ‹å/˜úÄLÙòÏ:ìÓÄ—ã¥ôìG)BŸ?«ÿâ#磻ľ Ãz¦^’ë×¾XcÆU_wÝuµbÿþv²ã_|ßìYYÇ_Ÿ0öç5¿pÌ T°9lìð~Âr‹g>*oŸ‘&–†o9¹ù³§N•³ËGÞ_5ü“›‘uߨAüsµåãçή{í·  ·Ìæ°ýv­ží1똮VÒõE^Y‡cŽP~áXj°@@@@@@ ² ¨<@TÀ Ccø±ÖqêÓ–2‰ì| $ýý­¯œÜÀÄš¥»LîIØ”Ÿ¤õãÃ,UÇ[JÝ/âL&_åÀô Ù¬Q„q‘{Ÿ:'½C8vyzl«³úD›çÌ7éœ9¬ º0˜äîzB¶Ó¶åŽU«Ó Ƹ¦Ù}œíTítJ‘ˆnA¾ò}>Ëo×[Öo…ý…˸j”m<ÕÍNþd2»(™õáJ‚UŸª’4ãÈ+‰ $@Õz)¨~¸@¢¢}zOáì•wé®â–ûägt–?WêQ'ûc>å¨÷-Uη‰qE©í¾'‰Ÿ)ªk>Ò±âÞ:÷Ýl~½{@1kJá ¹î˜èúhõ ]Ÿ»Ý8ë(¿žá­       à‹€¼"C>[³²P§M-—ýiï‚¶åÞZØÛÛ÷;!¤ÊÈï‹ÂÏ鲟'‹¤YYú‚õH³Îçl†i«—E]`æ¶Â0³vü¾U$  ¥Øà4n/(þ×ÂNž¨”ðIÍUŸ§Uü¹¤òãöÚ}¸®«Ïí_\hðºï‹vß’”Î]×Ôl]\Z)2‹Š—Æ' V½l¿VRZz7™¾`«fåô!i|Úï:û¤Ç¦4$9â}K½ß•p Y%þ™·iwô„tm7_—í¸¯°Áþ1À†yOœÿ¼CË Ƴ‰K·§ÍqAÕG­©ú\LÆa@ùõ |¨|ç}•H¸xPÎv`ýäÌ8‹ÉRÿÃwç«NÿÐy¶Yf ‹¾TŸÙßþ-ú^[^;ßm¹·¶uÏŠþ#ú˜¢:-a€A“¨ë§á¾B7³¶æó¶hX‹Õ6iÿ¾|v½c)9Ã2öúÖ™™Bï|ó7oýãí¦ÊºX눉×Çž:€7´ùض†©w?ãs I<3b(­²—ýE·aæP¡S85ÓÉ×ÏM˜·AìÉ^ùšnÃô´´®Ö3Æo¾¬l9þõ7¦ªºfkRÖpíø ã“†&ë„Á˜So>~ææG^ö"KùŽ÷f ‰–´â“ö­ø¯êµ"Ó¨vò:Úv ~¶>¶?lnøOû{ï¾ß|¼ÊhɼêÚ¨ìëF ì/ìsÕÂ^[4¥Úî›JòGÑÇ­üø<1f`[ö>=àÚd3ÇÜÌ~øøí³û>øÊÕŸœñý.NÒÅñKì½tû¬š§=:ýmòø¿ê¥Pøµ›Í.'K·—÷½qX\¿Ó{×ÕÎY·×¾awŒ\¶­|yjÖÙÊŽOŽÞ~òûjssG»tü/c'ÈLæç}œçîóIÝ÷¹3Yšõ¾¥Ê9íà#ŠrûXò‹ ~Šá‰—Õܾ¹Âýc€œUìÍõÓ2ù)–ªý-cóV´8Rôq´z$êsØ‹ƒž%€òëYþÐ      .<öp¹"vØÒĹžtm´v`Ö%‰ü?×hÖŽZÓ¿vn9ûPq¹{Ç©_bBt,·,‘÷úV:Ÿ”ä¶²W_×T+ŠØŒ¦ê]ÌMËJº8nòÜ‚ôÉ.J뎽Úp‡\ˆø?$—ƒÿdE¯¶Öü`édi,6aPÌe£ ¼lÔ8·xÖÖjãÛÛ6ž]UZáwÆJM}‹‰ Æ™ÆxÚ|DdpÈ-aÂÉã·ÝÕûìã–ܩɺäKûLœÉýs¤ceÖÖïÛ²Ò9pÉ]S’?Š>ÞzùU°ÅÓ75ï¹×:25&>cÔ” FMqäÐÜp¢ý™no,Åàƒ‰ßê¥PøµßCn.ã½8ÐÏécþcêsrÙˆd«¦áØ^«Í'}Ä×Ïa=œ×gxFBœÙl´¶7ž1þû½=íE%{ýs‘)§vþ|äæÂ –Yª’sߺ*•$§Ný™ÿÀFí¤ÑWÆ'Çk¢,|=Qy¬ã•å™ö»Ú#ÓõÁ¯½`º„‹ªd§äz×Îz€ôz¢ µjÊý@iŸ)ÍÅN^'UŽj/UU.Òí´çOR{ÂÙå/UÎ% I‡Ôò£ÊI2ʉÞî±§€ûÈABùA8ÕŸJs+éþëAÿ¤Þ¡–ST9lå¦üèk.OéÛ—K§Ól´´5Ÿíúîóï=oëNñT²ön¨üÅžAIúº#˾oø5±Éž-üp! á ­¢kÈT³záÄŒ\Ë×–ucókÊ$$&Y.g ;°~rf¬„4ù(5o®=3ë‘}]Œ*'QO¤D“\Ü€Ûï·oí;uX¿~¾ónfŸ½¼ªæÎÍågœö|ù£©WÅY¢aîGÍÇ_oœZ°¡Ý=”zF՗ö½³!McÕÒìð1s7²+®üÖ_|CÁVÍÆ†Œx‘´L5ï·.™õ`³X#Q¾œÊù±÷B ’_êP’~ߺë“,§´þÔç³þ°0ùÊ$çnVÏö­ŸQ½ÖõAAÖ¿öæë ÿTÍN‰õ®“Žz”€Üz¢G rù÷µ}¦,Oòí´é£ÊQ­¥ê£ÊEºöüInOغÿRå<’ xJ-?ª\@ƒ<#Û=¶„Bfg·ÝT}T9O\Á;¯úS)É÷_ù'Õ_B-§¤² ·j;ßž(šˆ™½µb\õ_¤s¢ön¨üÅž9Éú¨ýRd¿¦ö/Ùs†¿  >ˆ3ˆ lų«ârG¤&Û³ª1šÍmöŸeʵ˜˜‘K+Б™‹Ã÷ìw™4¶YT9ŸvGÚ™åÀ=ˆ¯à‡´ ¦ãGûè³ã¦ïNV[k[1u¶.ï—£RûkuÚÏýmú²ƒåÕEŽQxÝÕn=SùiÓ¡?ìøüÄ—^&aˆA3w^^âOÒû$$ Ÿ1`÷ê/M³y¥K9eº¾.‹†زê4“¥³Ë*:{G£Óµ¶µ‹^sÚžÃ^Xœ“Ëx¯tñIgÛQþšMÜàïÛß¾×üø%­•l0›”;?jö”+ŧIxrÇ#–ñ7­nu%Ê©—?7k.Üb9(&÷¾µk“)§¨þ4°â?,â‡ÌqæºOÛþò§çšÞâfuŽ˜4[›ÿ«‰©i1)ºéK·§(›W»Ónž}ðk;D¿á⟪Ù)±ÞõÀ„Óž"@¨'zÊÔPê%ÝÔö™‚Œ‘ìäôQ娦RõQå"ÝN!2Û&T9GÒ¨åG•“n™3¦‚vî#'FåGaT*ʬÌû¯'ü“zÿ…ZNA9L[ý—¨US†â“h®|¯©dÛζ£§¬Ê®øÉÏuÙc.N2L?íÝú‹_™ú¨ýRd¿¦÷/,ND^F@ö ¢Â /DϼZ«Vc©·|ö…õÜðá©4ÆJóòën«õõÑU.0/îAùÖÆ”+Ì1ÿyyQÍüÍ.3XüISåü¥Ùû¯ÑÊAÏòò/Óì*õ±ì÷EÆ›ÜL/þk˜Ó{×ÕÎY·×6:Ç“{ö“ª‹ä;’‘|Ù·>ç—!§^[^{sQ¹$ûÅÿúÙ7ân‘ä8ç‘ËÍXZ)ÌXÒÔ½ßvë 6 +#v'hxàEíÖ¹W¤ó§'^ZTs{±Ý§©rêåO,Ï^µè¤h÷-cT¹À–Š×ŸúÂç´Ûæÿ8]cù–›Qz“ûŒR®žx›«'âY'{gýÄê߸Î" ¨PLüZ[¸ø§zvJ«wÅi!4ô‚WO„>/êi¤ÞÁiŸùÎÕNªœoKü_¡ê£Êù·Æ÷Uª>ªœoK]¡¶'¨rì¿NåB•·BP±vO¨í¤ê£Ê©CNz*áRJÏ‘gÌàÝjú'Õ_B-çIWÆyÞšƒK~‘ÁÐ\°¤nÆÒç‰$ìönhý…úžÌûV̯E Â%Èwÿ’K$‚€@˜Ðʳ3—MȾ2•:wòýsëÆÎ¨yìø¹ÎÀiPå§œ½ìN?8ÄþÕ¾VòàcT¹ÀõæÔr¨d>‡øìîjÕñ“½dýþRþM³]@l™5û5µþJÑ­À’ü-š|npHc¬5]ÕÁÍ•ÿ gkmËÙµ°½O¹ñƒúöán…ß•×ÏN²Såìòü_EùsMè>V£äá£Þ·T¹ÀÖùª?³’ß5}¬ÕkügÿvªC˽Ų¬Ë²e={|é³[ ¿¶“`,\üS5;%Ö»NB8êiÁª'z:_JôÓï‡à´Ï|å…j'UΗ©ú¨rìñuª*çËŽÀáÔöU.°Eb1¨\¨rb6¨&Öî µT}T9µØIO'<êOéùñŒ¼ûOMÿ¤úK¨å<éÊ9ßxëØ~üà¥j upˆ½½ZaŒª/x÷­˜_*g)ýKÒÀuè-duÒ1VË>;x îéEcª¯Ÿ÷ày¾0+&ÊÑ™í;ST9ß) Wô Ùƒ3‡¦1ÖÂö=±¤Ñu†_IªœßDÃáb°Êa<ÌÒq¿¦š3gp1vQj_aÏnq7Kàå •ó ®¾9lû£ñúê¯[ê5i|.™7yì%}øÜè¾hÿ«ç”;ýƒì×Ó‡p>mûYS‡Ç/ÔÛŽ©rö´ðW¡/ê}K• ÀÉ_ýi²­À1¼o®g2û‘°Y ÷qÝ«Ì3¢Ç¹?}QqÊÕ? 9fàÊÈÐ]߈³ÔÛâpñœ?šŸQítêå¤×»îr8ëQÁ¨'z4CÊ•«s?ˆØ¡§µÏDR‚¨vRå|Ù(œª*È_שú¨r¾ìN«çéï-‹AåB•³A•0ížPÛIÕG•S…š‰ô’ú“ž%ê}@£ÊþIõ—PË âû²aûiª•ûµ“}°c…ûÒñ¾¥<®„¢½Z Úózßúðk‚ð: nÿ’—:€€@P È ª`ë–þÖTêØcFªmT9éskØo¾m@ å‡ògëÖzv´û¥ÊùL0Œ.£{hÅ´øñ;ó›%öè±ãÊgsÇf K±µýïVÉÅg—ýWš¾.ÓÙ)óm[?,ƪ㿠š_\nIècõqoå°K2c…iJõßmóÔ\¿av"ïÓg*+›lSRØø¹ÙܸUÎ=;Ôü¹§r!Ÿ©SòRï[ªœ?ëüןåEo›k8qkÌ0ÝC;IpMiý²é‰ü2”–ªŠç>e®1ÄŽýë³KÀ¯í$èþù‹[6öÙºukæÖm2·èE>üà^NË_Jåãl¼{¢0ÈmÓJñ3ºöœò¥×»®R8îiê×=#¥úÕ¹Ĭ µÏÄRâèvRå|Ù(œª*È_שú¨r¾ìN©çùt©rRlòŒCåB•óÔ¯Ö¹¯vO¨í¤ê£Ê©ÅO½tzGý©$?Á¸ÿÔöOª¿„ZŽ^óæ‰áß´_›öîbûIÜõ…¦½Jáó }Ô~)_~í^ÞgÒú—¼å ½“€NìÞi¬«U‹Ÿ]72Ù܇ï¿qù+’×q¥Ê¹êƱ“@ö²—t³õ}ûó_Å|øÜª3ŽçQ¼Ž¦¬Õ¼R~_êEÜ€ k8Ò¾¦`K»W$äèËûpâöíÛûnßö|üS«Žš“ã÷szÁJ~?…ÙúXŽA {1o…Ï¥å„ÈÜ—÷Â, ÆÎ×|ã6ˈß{('K›¨í8fZwÛ¶¶:£FØ I˜fE•óàHÉŸGö©Jå®ן%ì¹7«„QÖØ!×'ÜSÜ?—ÛLtŶÆçdE'òƒÈ t¸À ¬Ï~Ý Mn)øMûáÆÕṵ̋ (Ã>sÑ^ëwÝ—8Œ«»tÍG:~S°IY­ÀN»=²ê]»þöêÖ½$St3T¸Ä”SÚgbé8¨vRåŠePõQådšçˆNÕG•s(ŽÐ*ª\0úl÷„ÚNª>ª\xR“í5õ'5A’SÝ?©þj9<‡¤' «¬k¿nw|«Ïa Ð.[v¿® ºÈGYN…áÜÞõé/Îì©zD½o)vÊé_R5“H @‚H *ˆi-i¾#ý&~¯K•ENg#U.h ó„õ[5̼TX­†Ûpqqi¥èW1Ù\y­{YºÙh6k¢b5ÑÜVÜ<V÷ñ޳7Ü»EÂVò@QôE 61“:8~XªMß0ýUlô”Yì×u'ÚöþéѦ'Ë<çûðñòÙ†yWâæL°ÿ¼¼¡¦$©\1¶;NkC« ¯|¶$ïJ..öÁów×Wp_êvX¸Å÷˜U§‹OÖ²Ä3IŽ1a‰ž¿@ºÀ®S˯»™–Ôúsß#y]ñ;ën78U—:2~ÅûÛ„s¬ù«Ž’ûnm(•AŠ>øµLEþYÁ?PÚ¸{[~Ÿt–ÎnûCqòá©… ü„áÙ^æø¸­uÙŽûlašå*²“W%³Þ•gb‡€€ZõDL ¾ Å÷ƒ·‰RÛgÞ’~B¨v*l¿ø±HüìoGF@;D¼À»CÃ¥ÜýdÂo»‡š?j¹Sõ…ú~÷Óz©WÕŸÔò£fÞ\Pü“ê/¡–SPÆN3÷>ÅŒ­Â;ùŠg_‰ûåˆÌdáÐnÞwÞcþxßëíâ8‹!|Û»~ýÅ™AÕŽ¨÷­T;)ýKªe €@ˆ„ß "n–ßͽ"Nyqy­ÔÎFF• QA„šÜ5ì2øA‹æc;f--õ=‹ËeŸ*ׯPòÕ¹ýÿï©ûcÏÑ‘IG¶¾VùéçMÇmüøãÏ«<ÙôCC›ã ùøÔ+âç¬Ø–Yºrº«ù‚Qì¸;!‹\êúöÍó7Wp À?n~‘­å×ÂNV8ã?´­ ~—NgåkM‹KݧŸ§»<–Ûf‹&'˜CÏ_€Ü\x—•Cã’Y>ÿáÑ®Fa€Ó™çú/Þo-cuFqIÒ¿vë>RꟕO³eOþ¯£ÌI#ã6–ÜÓ‡åld÷egpÃæföÙKkjž”Z†^Ƈ¢@IDAT¹(´Sv½ë¢‡½‡€âz¢÷dE™% ï/årÚg^Â~¨vRåü˜â÷UUί1~.RõQåü˜—¨\¨rjC Ôî µT}T9µyRÓëmõ'5jËË?©þj92OÓ§ÇÇñâÕÇ[:‹vJÊ凴­ÕÆsûz——XwªÁØn¨ûéÌ•i/-sïkÛön !óô!H½oåØ)»ɇ­^L ÌféÙ–Ís„}‡ÚŽïl¼§D|ÆŠ7oªœwJáä®bûVLÎä×ÓmüøÏg§ÝûG¿³€Ê‹æ›Ç±j;»ì¼BÍìYÓãG Kîwñè_¥üyÏEm·Þð`“ý޼ùú*Øú{+<óÐÆô¹Þ3môÅ)ü@Ø%ÓL[óÉÞêß•Ùrbxà%íõC¢’ø™lÏÞ´š¸é$—VþÍLn‰:>’Ûo³¥îü¿Ç§DÎ ’åhùs*‘_’ËÁo*½ø¢¼úÓPX¬Ý<dºŽç4Õ|ÙZibž—˜2úÖ”ww mY’·¬Åÿ6vRõÁ¯%9Lÿ¬,]l}æš×ëŽKI~ë€Ck5ý´\Y6+m¸³Ø9¨-I·œHíT­Þ•câªN@y=¡ºI½+A‰÷ƒ—Ñ2Ûg^òr¨vRåäÚgOÕG•³ë•û—ª*'×¾p‹OåB•#ó‘ÚîñPj;©ú¨rÙ úi¸ÔŸAá© ÄþIõ—PËyb=Od±ü’úÜoè w¼4NÝ|üÕÆ©îK57.~v_ûM#$_:saÚ²ý{«ù½Z÷½KôQ~É÷­<;å÷/I°Q@@ —«Dù›žˆ¾6™õÑvTš6ËØ·†*×Ëʪw˜cXÆ^_1-sgMý‡®48$ftù®bë½ó¦Ÿ_ôò‰~ðÚ:&~ã†ÙÑbqÕ#ë«,cÝ‹ñ®ç?¾¨g,žMÊ_ž ØdXÈÍd»4àL¶.“Çx7ªf›†Ï.º†ß>‡m[ðó>ì«=O׉͈«ùìh;£Êùè/þä.äkÁ(‡^ÎSVýÉÕ«…Á!nÉšw[ fýwsA^vKYåù&>›ÑYŸÚ]”ä/˲ô‰%t!ûµJþYºt†éío;›y¼Znf£¹îý¶ûî~¦C 7)Œj'µÞ% ¡ P¡žšm=‘0õ~ð´U…ö™g’nçT;©rnÊeœPõQåd˜æ•ª*ç¦<O¨\¨r*"”Ôî µT}T9y’’ê­õ')3ê Õ?©þj92ÒýìËZ£°*IT\T´®õSãJ÷Á!!å-wwœöÀ~65[Ǹ½+É_È<=Ü·Jí$÷/yd§  Л„Ï7ôî‹f~™›o__ß=‰#0Kª\à”/Àùì¯ÏJKár^ÿaIýŒûÿhT¡bóí–VY¸I⌠¾fB‚êKÍyGÕWYrõ­o»„ÎR]Úå}r¸t³§NÔñøßUóŸôÎ;魯þûÃâúñ×.¾a]*þî¡ÒÿõÖ )9§˜mÈHÇûiòžz(FÏmü®á:Óç•»LÊd}»¿8âÓaT9AØÿÿÄòç_â¾Ärè•TeÕŸzöäªYýùÁcÖüiǪYËší³×ß6©íÕãÍü%mú„„}O-6låÏÝ~²ô¹Iz\~­¢9Ùà˜U©‹MÐö"¬ €h'¹ÞU`*DÕ& B=¡¶I=ñ~p7[Ýö™{ÚÝgT;©r¢FH¤ê£ÊI0I4 UUNÔˆ ¤r¡Ê©…Nj»'ÔvRõQåÔâIJ§ן¤ü¨(lÿ¤úK¨å 5™»{ûÎßÅWQ(cŸœnV#‰KÉÔ…m{Wª¿(àéUpߪh'µÉ™€@ï!6D¿^25ŽïxÔ5|ܾYòÒrŒQåzOõKrØŸÞX”|7hÑv|GãŒûŸW48dÏUmSGlIHQ/"»—¿T}m.;!9S7TifF£ÙePÇE‘¯ÃÊì®U'°KÍ^žt×h~ÅÄF¶{Ã2aÊ!–7R“Î}¹ÏŸwð³¨rŽýxåÏô ÷jË¡·•Sê –jƤZãùAüÃÏÝÕ¸ß#3› îk?ÜÀ„¯è^3¡?Ðêù“£ÏSVìü‚ókµü3ï mß¡nªIWÇý~ûò¾bŒIaT;©õ.ÉHƒ€õD0ìêÑ4©÷ƒÃèà´ÏÉÛ¨vRåìzåþ¥ê£ÊɵÏŸª*gש©\¨r*q”Üî µT}T9•xÊO¦—ןò3¤ªDÐý“ê/¡–S@ÕØn ¼G1—¾µK# $%¤fF³0mïJöèí]9þâ™#yçÊî[õí¤ö/ÉË5bƒ€@ð ¨:ƒHèí&ØP.'ƒ fS´±ÏþùŠI² ªœd‘Ñg9è²Y£ý¹'ö>uÎc,C»<=6ŽO ³úD›çŒ·„sæ°‚üéÂ`’[¸¬úÜÒ-`†¡1ÜjÇÜlžSŸ¶”¹]óíMõïo}%Ì¢$¹·5Kwyø´MùIš°D¥êx‹}_"ªœ ù«ôüN;òb¨Z*øµ·‡IcPNvýiÛ]˪Õi…›ZÄŒ„hç-ì¼ º#ÊÖ'¢À-èÂôk¥þY´ûž$~¦¨®ùHÇŠ{_èÜ[t³ùõ“çx´YS mÌuƒðÄ—Ÿ)µÓŸb±z×_|\ %…õD(M ¡.òý´ö™xæ©vRåÄ­JÕG• l‘x ª>ªœ¸ÊC}ÕóR¦ÊùJ—Ê…*çËÉá2Û=¡¶“ª*'™›ZäþÍn(ÞBäŸT µœh9H Üõ–õ[a!Æ2®eûþÓKn2»ˆÛg›ëaÕ§ª$Í8â“ÜÞí…þâ…À#ÀçóAé}+Ó¯=Ì9¥ö/‰$… èaŠˆªŒ¶uU5–.K­ŒÌÈ’k1r‹Ù~=éþ5Råü§QW%•Ãà4f{H·°“'*%7Z ùË4« ²=Âä?»:ndãú’ÛØ¿l:ïqÙqšýÀ‹ÚƒëÌ\°peÆ!nƒ{_{‘õòÙš•…:ñtsÙŸö.`[î­…½½íqÅ*K_°iÖùÜð}ÚêeQW'˜¹=ZÌ샿Ö#æaPåXˆóç(¸= —ƒ©~í!&œJºoEeÉɬ?Ë?ùÚlÛ´&Ý\²”{Éñü峂ÉC¹%¹_Ãév¯V™úàמ|mçJü3oÓîè éÚn^#Ûq_aƒýc€ óž8ÿy‡–{üƳ‰K·§ÍWí•âgJìt(ÂAØP\O„]Ž¥L¾ˆí3iVyÇ¢ÚI•ó¶@ZUUNšUÞ±¨ú¨rÞÐC¤Ôób©SåÄÒò £r¡Êyê—}.³Ýj;©ú¨r²ù)“úÓ3›!{‘Rý%Ôržå ý¼Œí>\×ÀÇÕçö/.4xõ¿í¾%)»®©9غ¸´RdéÚ³¿ý –ÿ¼¶¼v¾Çrq¾˜Ø§~ŸÞ»®vκ½öñMgtÃ2öúÖ™™Boyó7oýãí¦ÊºX눉×ÇžÊo·Åšmk˜z÷3îI¹ äÏ™‘ ôˆR¨¤ú5c´û–.g3”R>´í@ül},·(÷DhøOû{ï¾ß|¼ÊhɼêÚ¨ìëF ì/Ìma¯-šRí¹¬¢l}ðkr9¥ø'·ïÐ%¿Èà?m<ñò¢šÛ7W¸ ³Š½¹~Z&?•ÒRµ¿elÞŠ›FªrÒ;mJEÿ°Þ•B`¨ (©'BmkHõîjûLQ¾v ú¨rTc©ú¨rm'µž§ÊQarrÔò£Ê)1•ò~j;©ú¨r xÊ «úÓ%sÁ°)“Ý.çŨå.r.å ïÐÀ¶ì}zÀµÉf®ïÃÌ~øøí³û>øÊÃõ‰ŒËßïâ$]¿D÷K·ÏªyZÂ^ rÚ»½×_hÏ¥÷­\¿&÷/ÉsÄ^A@öDý¢cã,ÑÞócu,>)Éme¡¾Â¢\¶|Råx鄘¨îY(Þýìþ(Råü¥î×””ƒÜ¼·Öü`édi,6aPÌe£ ¼lÔ8·$¬­ÕÆ··m<»ª´Âï—25õ-&6D3aãió„d}-M¬‘ðL×Fkf]’Èÿs5ÔÚQkú×Î-g*.wï0uäãØ§ÇV±+LÕ»™›–•tqÜä¹é“]Ò¨;öjà žƒCüuŠ\óçbò…uH)BRýš£Þ·T9^'¥þ|ü¶»ÚbŸ}Ü’;"5Y—|iŸ‰3¹|bÂÏʬ­ßÿ¶ee÷‡öpÛ_Ùúà×î]Ïdû§sß¡æã;½‡ø´÷¯e¾6¬víÌ+ÒtY9‰»7åwÌZZ*Lê%û™l;]3éûØg½ë[WBH@I=B3C¯*H÷ƒê¡ÚI•£f€ª*ávRëyª'©Ì+ u¹s*e·{zÂN*ªŸÇHþ©À%ï|„Ô?©\B-GöÍ ¶xú¦Æâ=÷ZG¦ÆÄgŒš2pÁ¨)ŽÔÌ 'ÚŸyàöÆR ƒC!î@J{·7ûKÈŸ3¹~Mî_r-(ƒ€@˜9ƒ(Lr3{Ë/ÌÖ^68U70)I§Óš[Í'>:`Ú\º×ïÀ3zV¸º0jTº)ª¼diG©}Ý#g—#º>Cî6vøÕº¡?JŽJˆ‹Óv¶Ö™ô¦©¸´\¢.fH>´åmôÐ1&S»µõÌÉ®C»3íô›G>qùr=“?É Â4¢ürpfTŽ_;¥ÂâÈ0‡=‡-˜>Vûã+†Ædì£Ó›ÍUßœè8ðò:ÓN±âçefMÔ¼lHLúÀ¤èÓÛÎw5×ÿ`úèÀËÆâ]VU!õrsïÅ~Ns‰IáÒ-ž]°J3oÒ5}ÅÇDiÌFK]UeçþW—w–îwIßå°§ìt1‡®ôsØcçõž‘g6­ígŒÿ~oO{QÉ^uýÚU',ç¾u••$§¼þ”ë×ñÌa+7åG_syJß¾\‚ÜýÔÖ|¶ë»Ïw¾Zô¼Y¬zrèÔE<@‘äg.éË´SQ=袇=O ÿÚI£¯ŒOŽ×DYøöD屎W–?fòñìyƒCfžåpíßxN_-×¶­Ú¶ò”ësrÙˆd«¦áØ^«­m,O^<¶Â烂ö’¸=RC¥>ÄòׯÚj[ØþŠÐ>E$•_ñä¸Ë­çíEE•³Ëûý« üˆï~Í‘p‘Ü^²§Tžv%Þ%ù§«XÙéj‚رÒö„âò3J,Lÿ”ZŠ ³üärQZžËöOϤžËäÂ'²võù@•ëfFÊŸÌ÷÷â!øµ"}îÚq ‘D@Ãe¦Šš!Cþ£šÕ 'f àÐX¾¶¬›_S&!1Ér9kØõ“3c%¤ÉG©ysí™YìëbT9‰z"%šäràÜ~¿}kß©Ãúõów3ûìåU5wn.·8ãä°çËM½*Îí s?j>þzãÔ‚ íî¡Ô3ª¾¶í iú«.f‡ ©\xa{ldž„ñC’Ätž.ºnÎòR“ûµž°ÓÝœ9  ¶j6.0dðxž?SÍû­Kf=ØŒî$é÷­»U’åÕŸ¿¶Ù©„gváVíoçÒݳÜ}ffo­Wý» ¬ÇY OQŒ%ûYwzòí¤Öƒ3€h¡! Ïg/üaaò•I,Î[a=Û·~FõZ) JoáÈÉ{Bóþ’_dð™1|õÜ„y›ÎËÊXîFv`ÅuBûÙ½Ý"+ïÈä烒ö’·rBd=rVqïÓ|¼w˜Ùùª-ûþ÷±–'Ë#vrŒX~=ǓφÜzÞžuªœ]>à_rùQßZä'½½dO4è<íŠ<ÿôOw³ÓÝ ‘3%í åå'b åþ)«ô°B^ùQ¸()cùS™þ)’‚¤ y\¸$CÖî¡>¨rݸˆù“ÿà,Š_+ÑçÔŒ#ˆLÄD¶âÙUq¹#R“íX4F³¹Í~âó¯L¹3ri 2sqøžý.“ÆöÕ>UΧݑvAf9pDWpƒCÚŽÓñ£ÇÎ}ôÙqÓw'«­Ü•lÄÔÙº¼_ŽJí¯Õi<÷·éË–W9zÅãYtW»õLå§M‡>ü°ãó_Zx™„!ÍÜyy‰?Iï“4|ƀݫ¿4Ízä•.å”éúº,n`˪ÓXL–Î.«èì]ŒN×ÚÖîrÊEÏžÜó‡þcR­ñc­ùàk»êöüÒÂÒ®e7Ý5·ÿÕ©1ñƒ³¦¾øÀ—5·o®ppã|<¤v*/‘ˆM!ÿ Í&npˆ¯›:¿}¯ùñ'JZ+Ù`6)w~Ôì)W ŠO“ðäŽG,ãoZݪ¹÷­]³L9rýI÷k¦€ç´Õ‰Z5eè >·Í•ï5•lÛÙvô4cƒõCÙ?ù¹.{ÌÅI#­v0‘ûWO:™~Æ+"ÚI«é9ƒ¤Ú ¬ø‹¸Á!sœ¹îÓ¶¿ü鹦·¸þö“fkó515-&E7}éö´eójwª­:LÒ»câÕ1vScÿ$!—±óÒÇËrØ ‹sRbß:viÛTòWÁóÖŽTb,c²Ÿ\ÕöÞafMUU-çºÛƒ1‰©ÑÉñ}úf Oœ³â…Ä«/[ŵÏ\?ˆRf§»´”ò£¶?Ý5É?#Ô󂪜L ÉåGiawtí¥PòÍœÿ´ †¨Üíêií ¥å'×Peþ)»t˜'·üè\håà0Ôå@ŽºˆÉ:”Ë…O<”íêó*§ Ä÷^#ɯèãuâ ‘N@öQᆢg^wÕÀD­U«±Ô[>ûÂznøðÔV-ó»ŸI®b-›2fmµÿBàomL¹2ÁÓqþŒ­óž*ç_QD\%•«d»ž^÷îRïe³**ö›Ÿÿךš7¹™^‰,‘ýlêt«Økë•`eìÖÉeõ^à**¬å»Š›ŸÜsP;&UŸ1ñ†9ì•Zåø+×÷ÍžGên.*ï¶ßËr—ì•ktÂà¥ÊRr]^m‰#Õ ¶¿ì馢݇,Òµ Wæ-4góM5bd¡°Óa<ä²mwŽˬLS÷~Û]7=Ì ñ¿JVY±¿«¢éÅš­s¯Hr}Ò‹…ûÚn/väóHLÒ)í¾eŒ$G¬?é~­€'÷•ýòîÁ¡úƒ%u3–>ï ª¬äï§æbÆ%AŽ˜H xüŒ)·S^=HÌÄT' /¼K;’ÒX¾µl¼á®&ûÀwÏZvXSû6מˆÉÒâFEvÚ/ªnEoNÐÀ~~ynB¤­)b¢›œ¯×”•Vº| âÛþ_?»,ŽoûŽ¡à ñùÀ?iíH¶*z>´±ËÕRd{¸ÛŒ0Ìi,^µ¸ÿH®ÝzÅÜEé ÷–W?íz]©®¢ÒÊ/ô¬äD¡Ž4}¬ÕkügÿvªCË ôƲ¬Ë²e¶QÕ·µGRÌ™Á.áx4‹Å6D¤c?Ÿh2½ÍÔü-šüIÉüì䯫:¸ù¡ÿy?x(í%e¶+{>èXÌ`ý;Yá [š¾3j¸bIgÿoÑÒÊÄ#¿§’Ë/Ô¨rŒQò§ä=€â×JôIrD óå»–}vð@ÝÓ‹ÆT_?ïAa¹‹¬˜(Gg¨oT9ß) Wô Ùƒ3‡¦1ÖÂö=±¤Ñ³£Ö§4UÎg‚ár!Xå0ž îþZµ©æŒÛ’hþÈ\”ÚWüàw³^žÐ_JÒ®…ZÓ‹p1ä°¡«vì 3•ʲo…2Æ.2L’3b% „g,1;=ãàÜA`òØKúð'º†/Úÿê9íMÿ ûõô!\dûYS‡Ç/ÔÛϨ©÷-U.€bõ§¿&ó4¬b?å–iäùcìXÑÀê æ2•§!ÇÀ îŸ_ÕÛâpñœ?šŸQítêÅQØ0Ù&ÂDg ïËMrÿq¾õ#aß®½¬%¼ÜUö¶³Ù“~lûTåìÑŽUv6ñö%è ‰9 öß9zß°úê¯[ê5iTXº7 R÷bÏ÷âgj·C‚ö|ØÉ^>T×Àg"éêÿêïå¿â¹“ªbù©Í“ÑêyF–“ˆLv4Zù©úþ  ½Ô³<åø'Õ_dhè•_pÌõéŸäzP~=ÎEŽRËÀÅ®ª7µ{¨Ïr„ü‘߈~MÖg/Cü €€Ì¢ ¶néoM¥Ž=f¤¢ÊùKŸ[ËuómR¸(?”?[·Ö³£Ö§(UÎg‚at!åÀØC+¦ÅóSb4ÆïÌo–THZ…Û|‚Í›)ìaÕþõ¿[%™¶4}]¦3d ž‚â\b„ý²ø]³¢¹dÄmÌÞ«£K½4~ŽH¤àÛ)¢AvIf¬0hWÿÍÑ6ÏAéõf'òuÒ™ÊÊ&Û§Û)lü\ñY`ÒqRï[ªœ?Ë|ÕŸT¿¦óœ7oL  i;¾6íÝÅ­÷‡G€Îó·lì³uëÖÌ­Ûdn-Ћ|øÁ½|—¿”ÊÇÙx÷DaÔ†œâgt;]‹YÍzÐ5]—@yÑÛæN…5f˜î¡$¸j[¿lz"_[ª*ZœûºÆˆôc=ûÅ5“æïµ—|ø}ŸcKÜÐè‰F#Ú¶0~XŒUÇϨœ_\nIèÃ-þÒŸ¯çC`#ÄÛKå|Åæóá•1ñ5YcÒu#Úù2Ñ+\ÍòS›'c”zžÏ"UÎ jòËOÚûƒt©í%^CÏñ”çŸ=g§ôrp)½=¡¤üÜuªsæÛ?éõ ¥üÔá"½ÜéÉóOwYég.¶Ô{S»‡ú|ð''?ô÷š_ÓõI÷Äð'â—Gõ€-~v]ÜÈdsþEøÆå¯8ö¤*(Ý õzö²—t³õ}ûó_ñøÜª3bûåx²™^°VóJù}©q¬áHûš‚-ížqÔ<—£/sìÉ۷oï»}ÛóñO­~8jNŽßÏé}šé‹}ƒ#“¯Å_ô–!|AÍw@¤è®é€…>3w!_à¾n·—ÍùšoìãxÃ/js²´‰ÚŽc¦u·mk«–¡á‡#çç¯þ$ùµžCÒ…=6Œµ_·;˜õ9lAáÚeËî×äO䈜²͉ž[ ~Ó~¸quq,3,(Êðœù¶~×}‰Ã¸zI×|¤ã7›”ÕÙ ìtÍ·Zõ kš8öÜ›UÂ×±Ü^m÷s31ôlŶÆçdE'ò›ü1o…¯'d( ì9ú\ve2ã`Íì‹¶+‹?°Ô Öij‘×åGû2L_øœv¶>–k‹Õ°{ˆ¿çƒ/»ùpí%rþ®õù°¿’Õ Ï÷xv•Aé ¶\¨Y~ÁàéuØ]“Q~rÞäp µ—ä(P9®šþ©²iª%'§=Ñ[Ê/µ!¯9å`7!<ü³w´{¨Ï‡Àr2ó§à=€ä× ôÙý A@àB Ž™ä;boâ×X·TYät"På‘Q(lÖlÕ<2óRa9­nƒøÅ>6PÎæÊkíÜËÒÍF³Y«‰æö°â¾‡euï8{ý[$ìa%/7}Q‚MŒÅ¤Ž–jÓ7L=eûu݉¶½z´éÉ2Ïù"âvùåRq„Õ§›câu×äN‹bûÜøïXt]¬°IQwò®£Ÿ!³SüØã·½äG.Ð¥à>ªYk÷ó]Ñ~ŽL¨W~Áâé05"|—åýA6j{I¶"µÔóOµ,R3Ùí‰,?¹þÜzУr‘]õáãŸ=Ýî¡>¤ÊÉÊŸ‚÷’_+Ðçp5€€À@ üfq{|ünîé|ë‘—×JîD Ê]N@Êbîö? |gyó± ³––ºŽc¸'é²O•kçmòÕ¹ýÿï©ûchstÜU¸ÉÖ×Â*?ý¼éøñ£üñÙc•'›~hhs|!ŸzEüœÛ2KWNw5ßM¥ã$ —2vø«sÍ|ü¬)÷ Z“ç¾”ÓìÕ/EÝ1jÀ@±ÝìÝ£J;9Â+î›v[¹´°“Ü…í÷ж‚ø!\§ugåkM‹…N=ûn+ëa—ÛÇ”œáv°þ$ú5™§éÓããxŒÕÇ[:‹vJÊ凴­ÕÆsûä•—XwªÁØn¨ûéÌ•i/-“pï†[™ˆÙKæÙXåÓlÙÓ‡à}Üœ42ncÉ=}XÎFv_v7lnfŸ½´¦æIïÞi1Kü‡)²SÅzп•¸dÏx´«Qèhw*ªÿâýÖ5|Ì™dX]g¸H(k?ýIkY·åï©öX3']7Ëuû¯îëì¸;!‹{þt}ûæù›Ï¥e<àóÁ‡%ÛK>ä‡×óAµò Ï€À#'‚ì÷JÖ‰í%Š*dTóOlQ? J{¢ËO–†ºTÂ…R6o7ÿì±võù SNrþÈïD¿&ëS¿ÖAŠ  Л „Ù "=Û²yްïPÛñ÷”Tº|Áï3UÎ_šðµÜUlߊəü>ÿùì´{ÿèwPyÑ|ó¸"Vm'–W¨™=kzü¨aÉý.ý«”?﹨íÖlR«OH¾¾ ¶þÞ Ï<´1}nãÃ…·ÄL}q ßÃÉôÓÖ|²·úwö^{†ì%rÙRPÔ~ùÞõ܉)}&/Ù–qí¼o[k›Í]‰éCâ2’tqüò:%›þ]{㊙™®3‰ø/üCi§=[ø€@þÍLni~FcÉmó[¸ý¼úÜ.‡Á‰´ú“î×$ñLd±ü•Üoè w¼4NÝ|üÕÆ©îKŸ5.~v_ûM#$_:saÚ²ý{«/È=M$ñt–Aeébë3×¼^·p\Jjüð[Z«é§åf&4+m¸³8ˆÏ’íT©tfG=@ÀPX¬Ý<dºŽó-SÍ—­•æ!ÖáYq‰)£oMyw×Ж%yËZdowÙùPWe»†[¦”OóÔ¡ŽTö•UtÝ?%‹%rÿ1A„€@ä«Dù›žˆ¾6™õÑvTš6ËØ·†*¹Å® g†eìõÓ„‹úÿ\hpHLSù®bë½ó¦Ÿ_ôò‰¾óÜš:&~ã†Ù>×ÖKCNY_e{ìþ[Œw=ÿ‰ðE=cñlRþr· µvÈⲟN_ÔXvìû†vîëé~éCôúaý3’XÜÙÊ÷šÖ]÷«Ú’Z~ñ,Û/ ˜ ÙéÈ츮;Û4²xvÑ5ü쯶mÁÏSø°¯ö<]'6£±æ³£ŽŽ>{2áôWzýIðk2ÏýìËZ£À5*.*Z×ú©q¥ûà€xËÝÅ'…½"°ŸMUg¯ˆ^]vdžî¹*]:Ãôö·ÂLG-73Á\÷~Û}w?ÓáKÁ™JvºY §tÄIÈ pÏËÕÂà·ØlÍ»­³þ»¹ /»¥¬ò|oKtքħv%…Ü®V¨/­å¦Çs¿vÈu0¶b7ûBØŒ±Á#®³-ÅÇG3,äfÔ_pF}—Éë»^Z•Ÿô烋:Yí%9ɇA~>è¯dÉÝûDJ6I,¢ZåtžbƇq˜Œò#¿?ÄCh/LSåjù§Êf…$¹€í‰ÞQ~þý3Èõ hA¨ÌÅ_9„›öT»‡ú|+'7ä÷¢_“õ‰::A@ b Øû {¹%,ná¾hæ—¹ù÷öõõ¾&qxe„*ç•Ëg}|VZ ÷Åoý‡%õ3îÞ¨„JÅæÛ-ÿ{¨e*÷Åìàk&$èÙ+jÍ"³‹ª¯²äë[“Þkæ¿ÒÕ¥]Þ'‡±Öýn (\¸¯¥îžÛ±žë ÊÉÉeñ\—OeYsä?m‹áth,–ïÜ•¹iv= Ž®pÌN70¾«-ž&JLì§É{ê¡h=×Q¤á:9ç•»LÊd}»g¸„55Ùõ§L¿ÖÓyšÌ]Ü RÛ#ìÛwþÖ(>Û Œ}rzIë°aqýâR2ùq<—2 ë’7^Eÿªi¹vJzkúU õ¬ùiZöÔ‰º”n•WÍnÐ;óÝõëbb„ï.¾a]ê;Óº¬üQmŸw­œ|G½Äf…{‚žg²Ÿ|”ö’§âÀçA}> Nf¶ÑK3kj8#q%o›Õ)¿Ððô¶>ŒCåG}ðOIf{Ébª_UÇ?U7+¤ úoOôžòóåŸA­}–„ú\ÄÊÁÚÓÏ?Ÿù»ÐSíêóA®! ÞH~}ºÁ|A½¿‹¹!Â@@@°™Aôë%Sãøå¶t ·o–¼´cT9 ì.°(9ìOo,J¾ˆëôn;¾£Qéà^mSGlIHQ/"»—¿T}mBg´KBŽCå\öï/ce®ƒC\Úw\ÿÓX~Y;ñœù¨CWàƒ`ÚXû£ò0«kÕùœ¦f/Oºk4¿âe#Û½a™0ÛÂA o¤&›yÁŸwñëm‡¾ (©?%ùµžÆv‹c(Ù·vi„¼„ÔÌ€“ñü¥×ðtË_ÞÛ¾CÝ¡IWÇý~ûò¾nq”œ¨e§|׃>2ú‚¥š1©Vî“3;üÜ]ž› îk?Ü=[fà5úqd\ ¿\6rh÷+×ÎMËéóÆo$»þ[1!¥{ÅÙöóé[ÛÝÔÁQ43£QdËÂP“ÿ|PÞ^’š­à>ì’fö…Ë^„RmsÄS\~¡ãé°9"håG}‚LR{IJBjÆQìŸjÓsiIiOô†òóÏàÖƒËDM.^åFþÙ3íêóA¾) ÞH~­@_`OG ˆa2ƒ¨€Múq¿þÜbdìôÑw[í_›.ª\à”/´wüÏC±W'™ãXÑößÈXÞ/§˜h·L?S¦Ã¼EPœVPõEw/,Æuùkë»p9Aá’ÃÆïÇ} jag>*oŸáÌ“ëQhítÕ|¡W°£ÕÍmWêûÆÄ§¦ ®Pð…:ϽmòFë£ø>ÆN³7Üf…'µëO1¿¦óÜòÏ:æ ¿V¸3}/¡¤g?JÆZYý©·DZ¯-F:Og–¸/ï;(–{Þ¶|üÜÙ-ßOîZ9shZô°ýv­þ²3ï‘W„A}g|Ê‘vúÖë«ô-+¡"•ž( nh,5–Š]ü4"Ï_%+}÷Tóµ3‡ö±j£´=/Gêy^¶fH÷¬SM\ßè¤8fïÅöÊñÐÑ“¹gOE«ç~ž—n/ï{#7{ò›=+ënVý9$ÿùœö’g®mçÁ|>,_0±/ÿð×5ÿ§£LNÍÃT¥åJž¦‡õ)µü¨ï4Xbí%ZJT)¥þIÕÛÛähí‰Ð—Ÿ˜³¤•‹g9”yìoìiOpŸžÚüŸ÷D»‡ú| ÈÑòG ù5]ŸÿÒÅUˆ,¶¯UÊ“kǹœ$Êåd°Â×ømì³¾b’œ6UN²‚ÈŠè³ô Ù¬Q„~š{Ÿ:§à}ؘ]ž+,©ÒY}¢ÍóKb·È9sXAþta0É-\Ö‰ }né0ÃÐáËÞŽSŸ¶8–7 —ì•wé®Ö·odåÏ•J÷wZ;Ý]@'ë+çžB܀隥»<ÊÈÀ¦ü$­ÄRu¼El_".üÚç}ëP"~PNåúÓ—_“yîzËú­°¿cW²Çyeu2»ˆÛ·Ž±NV}ªJÒŒ#¯$Â,€Ì³;ŸE»ïIâgŠêšt¬¸÷…νE7›_?ÙqŽ¿œ5¥pÐÆ\y@|ù™R;}[á£ô-€+!%`ÛÅͪÕi…‡¿ˆî„hç£ÞYÙŠDŒ  ;&^m[®ápû¢1cªÇˆüÛq¼­‘ÏrôF$Ì‘‘÷¨h_w¡ŒD<£Ê}>©½äi–ã>€¨  îUù} ø ]–Z4dɵGxôÄú×H•óŸjD]•TƒÓº_:ZØÉ•’;Y ùË4« ²==ä?»:ndãúˆÚØ¿l:ïqÙqšýÀ‹ÚƒëÌ\°peÆ!nãj½ãŠûYŸ!Ÿ­YY¨O7—ýiï‚¶åÂZØÛÛwNt"rá­Ö‹+cú‚­š•Ó‡¤ñq?ÞuöI×Þ‡°“·?w•¥/X4ë|ÎF™¶zYÔÕ fn )3û`Çï[Ý¥gRýÚ)á<’tß:£;ŽdÉêOŠ_Óy–±Ý‡ëøÌÅêsûv/»äÈ-cE»oIâ7}×Ôl]\Z)2[Á%r„Òy2–·iwô„tmcõlÇ}… ö6Ì{âüçZîñÏ&.Ýž¨sZŠŸ‘í¤ÖƒR¾ážòO¾6w ™Hg7—,åo=ù¬`òPÛÖ: §ÛdxF‹¨sûùåý…Pê¹YòöûÎ3‹[|ÖÁo¢fÕÖæè}¶­<å‚r.÷ù  ½D³_ùóÁu —žë”[ùÔÿż½âºL¾P×\ѱvs¹äö0-~¤BÎÓÛ)õ¼·cT9±´ü…É)?òûƒ?\£´—Ä’ O1ÝrÂz¥ Új”ŸÔ÷º*¯íe,µüH\”ƒÝ¾žú+…‹Zí©þ¨Ï¢5ä÷Fókº¾žò.èйÄ\ÛºgEÿ}LQðb¤‹I>‹°Ä]½‘[3ݶöL‹Õ6iÿ¾|v½mé%ªœ ˆaܵ›³L>T9™jÂ(:­² —él_Å$²iëßÏœæ'Ǧ“¯Ÿ›0oƒ0Ø“0tŒvÚô™iS~uÆøÍ—•-Ç¿þÆTU×lMÊ®?a|ÒÐdÐ9têÍâ3¿óÓ 4fô¥ñ¶ooÓ¦ÿ,áW9¬yí~o#ÈúõlÂôÉiS~y“¥þ‡ïÎWþ¡ól³Ì}©>³¿ý‹ ÿ¼öh­«^*ÆrÙŠg—§f­ìøäøçí'¿¯67wıKÇÿ2vÒˆÌd>¯ç9ŽÓ¸¯÷Ýrr;Ý´ãÄA ‚®|¥áõ­33S’GöÙúÆÿiÞúÇÛM•u±Ö¯?øÊÃÕ1ãrÆ÷»8IÇ/eõÒ²•î{D9Ê2ˆ<¹}‡î—žÊ9ñòš·ÁiîelÁÚ‘uo®Ÿ–™3Lwÿ®õ‰;óV´ØèQý“h'±ŒÄ’Ë<•ý†•Í9Ð4[Û?~øî÷Þ»ï7¯2Z2¯º6*ûºû 3Æ[¼÷v Ë K0:g»Dø¨ ö7K¾ô µêÎÑæ‹bt:ýÏÇJ*{l‚•Üç½½$Ÿ(Êžñl2×ÞÌ¥ÍÊÙÛ ¼*±Ê¼må¢×ïwøðPþBÏ“ZÏSå”Ò”W~ä÷²™ÔöROñ”›Ñ0±“Üž –Ÿ;G©ïJü“VRËÈ…\î<ƒFä¢R»Gª¿PŸT9FÎñ=€+hš_Óõß· @z™DŒõKLˆŽå–¿ò^ÏGÇ⓸UÓ]~}]Fu¨r|r 1QÝ_Jò¯iÒT9éÂ/¦’r›ÛÖš,,Å& йlÔ —ç–„µµÚøö¶gW•Vøý²¿¦¾ÅĆØögÖO›ˆ ñ “õµ4±FnÀ3]­˜uI"ÿÏÕPkG­é_;·œ}¨X­¯E¹IHZ­¶oÖå‰cù®Ê¸¥°N|¹îæ¥ÅÞ“åBn§›a8q%PQÄf¬0UïzdnZVÒÅq“ç¤óIö_ݱWn¸ûŸ³ŒøxRýšK½o©r¼Nùõ'ѯyedžlñôMÅ{L‰Ï5eà‚QSø…Ÿ¹áDû3ÜÞXÚ“=yvcBùW6Oç¾CÍÇw4Þ¾¹ÂûËøýkÙ£¯ «];óŠ4]VNâîMù³–Ú–À$û™l;9ˆ¨CéIAÑõømwµÅ>û¸%wDj².ùÒ>grÿš¬ÌÚú½ño[Vv`丱y¿),§kþ²ã>Ú7¶Ìïd.l½ˆÛW(á’Ÿ&p«=Jša%¯å, ³ü烴tÕ¥ÎóÁ68dfÍg:*?øgóãw…ò‘Œò£p¦ÖóT9Šb2RÊüþ ¦PR½½ÔÓ<=³çË?{›žv çäö½ü\íú Ì?iõ ­üˆ\ÈåàJSüØ—ŠÇJã˜í©þ8êÇ çò ˜Oókúû¦úÌ"€ôFüÀKUo4 6E Ë/ÌÖ^68U70‰ûœ?N§5·6šO|tÀ´¹t¯ß!'=+\]5*ÝU^²´£Ô×ú+‚]Ÿ!w;üjÝÐ%G%ÄÅi;[ëÌÇ?zÓT\Z.ÑN§ÅŽô†\6~ÜHíCÒ£bu}¢5šÆª/MÿüßÇLezBig |àºÍ7Gc2µ[[Ïœì:´û1ÓN¿>j§&ǯí2½û¯¿¶åŒÎÓW¨¹qÜðèTî~Ò˜;¬§*þÞ¹¶DjÓ»¹Ò­£ó¤ë¤HÊ·õ …s/“1ÌaÏ=lPBT‹fsƒõÔÑCƵݼ({™é0'¼àù^åÕ3ÖÒß(ö*o/Q´BFŒ¥=¡NùÉyP¨•p¡”ƒXyöê0Eí9þÒCÈù“ÿ`Ï!ͯéúìzñ@"‘ˆ"±T‘'ðC@ëç.€€€€€€€€€€€D  E`¡"K            àˆüÑÁ5ˆ@ ŠÀBE–@@@@@@@@@@@@À ù£ƒk            0@…Š,€€€€€€€€€€€€? òG×@@@@@@@@@@@@  `€( Y0@䮀€€€€€€€€€€@ÀQ*²           þ`€È\$€¢,Td @@@@@@@@@@@üÀ‘?:¸           H Jqžô–«Oã’©eee¾“Óç°³&êF^6$&}`RtŒŽim绚ë0}tàecñ® «¨0UN41zZ~¼ _ÓÇj|ÅИÌý¢cbbtc³¹ê›^^gÚ)Vü¡.?•õésrÙˆd«¦áØ^ëþJ/zÌ›Ëxïôk«,cbòÙ«4ó&]ÓwP|L”Æl´ÔUUvîuygé~)*ÌŸl}>Ì@°9÷‘‡¨¬SýöØÃy}†g$Ä™ÍFk{ãã¿ßÛÓ^T²W¼þtK<‡­Ü”}Íå)}ûr᜿µ5Ÿíúîóï=oöº})÷{éƒ_»wž(òg2²äÞŠì”éײ3`È`£vÒè+ã“ã5Q¾=Qy¬ã•å™|=ƒiK¯I[æý 7ä2¡ •eeL¤@Êû²X»§­­–Þ_á?}G½à¦[H[%+k0¹E |"f§˜”{ûLÏrsõbÑDÃÜeE£ ³SO”³óÐÌžø³¸¬A‰±:ffí Æ“_}ÜùÖËÅfprïö÷=Åž§å§Vþ<ÕH;—ñ|Pؾ–fG,Åí,=Ëáü5žK¶–{RvΚ@IDATϨPã÷0Qx÷#½¿ÓüÅS}¯?—Y_+ÎR}Žû8Hý6ž”ªÏMNÆ}ë"Òö„Òrp±[ú! cÒåÄêk1û<Ÿ}T9×´©åG•sÕc ÷§Š Ãÿ¨fõ‰¸4–¯-ëÆæ×”‰&–Þ/4õª8K´èe.°ùøëS 6´»_§Ê¹§‚3qÒËOÏ~¿}kß©ÃúõO‰5³Ï^^Usçær‹3N¨ËOe}¹Ù×eÆrªysí™Yìëræ?ÊaÛÞÙ¦±êÜýϼå ì±ÆIHòŽÍØéò§ëæ,/5¹_S’?Š>wí8' ý>——j(تٸÀÁwxþL5ï·.™õ`³× OwÄì­ÚßÎ7¤'z çföÖŠqÕ¿sôÈRïwgâ¡Ó¿vRw?Râ/î)É;“{?(±SžŸÉËb™€>Ÿ½ð‡…ÉW&±8oMõlßúÕkÅ”ÞÑ#(„r?,ßñ¯„C4¢m 'ÏzÞyEÞ‘ÿvOWëã‘}jX´y¯K[Ц!{åN݆éƒ~S]õFËÏò~ß"Ï.ÏØþítíÖ>ËYìŸ,´û\ãø:v“õÉo¸;ýñt$›ó {iÉ.MÖõq„¹h¿}½yôMZ]‚H‡´òS!$k“÷|PÒ¾¦¨¼%hÍ{Bóþ’_dðǦ“¯ž›0oÓÿgï\à›¨²Çóh›†¶@ié–"bDe£‹È£].ÿ u)òWê e»RXä¹ÔÂþ`)úg-?YAqµeD­ˆ (ÔAiiiiK[úHšägÒ$“d&™93™¶p†OÉ<î¹÷Üï¹gæÎ}Íeˆ6Â2p.°ò"¬IG¼¹_ËɇÜôÄ×ÏàvçæO|z)i~Û&§r}B®<¹¿âB£—&ø~ÍÕÖûÙ•k‹j?¨7#¸@^€3ˆÌ$góRCúàøXWl‹ÍÖè:ðû5’°Ö&Ç…’ok~ñEó÷'NÚ+è«_TŠY3cfFô͉‘Q1'wß½ü¤uê²·8ðP9?ð„©ö3‘´sHÛ\m=~ôØ¥¯¾;nýùt™ƒ±áà Ót¿ßM«ÓÞ4ã™ÄìEe¹îVjµí§dziäÕiq´ã‹ÙZ­Þ­v mqè4v«½¥ÕÁF®Ó546q®™ÈKïþµÛðx‡Qc©°xgWåž'í$árÏC3º Š7öNÿÚ“'Ëï_WÌidæšžW¡Á?RýÈ/ñ'2_Ô!ËÎ|JýÆ…ˆœë~-é¹I3•ƒÛOe»K5†GH tR’gÍ]ójØ”Ñ7öˆÖ:´{•ý»—Œï®±”Øž]á„.ÈKï å:ÚX.-¨œÕ®¸ 0û™HFæuš]ùËXÑ—ïÓ—Ì ê¹ÂUÓW:{U‚ÐSÛ~RÒ{dó^ÃìÁ1îPþ|yFXygq޹E¢òºdE›’ ±—ÚóFd”çùpÊÝ}0fT¢6Jc?kqÄ=åbÈ„òªô|Ô¾ªa~E”Ngª-agªi*5ÞwçÂZî*"æ'_Ón˜1 ‘‰ýÄëóËïßÄéT¤£KÐÑ¥LCVÕ¼ÊÉ‹¶z÷ñª$ÃßULË5¯ñèIåE(Ê çaþ COP9 ’ ¼¬ÓÜ-Úm³nJdžq«è3ΫA“Ö'>¢õ #i!¯Sö'¯‹ª©Ø ÁýaÑö¢.wõ3t Í _ÜzÏ|Zï)æÔ{¦“W vK"µÍß[KSé/D£IÍ~C·fJ_:ƒ¨ž¼3{|Y.÷A曌ìc®žâëgâ’¥ˆ>XwC”-ü¿oÎ/Ÿå5G\ žP\=¥ñdf±»VgÐX~¶å=xwE^™ÂìçÑñÌ;Róç¡$i/Ï¡úµ$½¼˨g¹ã1“W>Ø7ˆ–Cç)ùrãçä—p¤¹‡d'Xy ‰š!ˆ~¿†)OV? ¬e »ƒÓú­ºõ ¸ pÈ…€ä¸÷k)ÏM¨]¹X„Ê —@H€ÐJ£NF¥ÞÏt]:}èÒª“ËŸ;~©EZþ¡ß(ú©Îu–où$×5ß_¨œoðׯÅëä^ÏrÇ•6™\KË¡Æn·;{iu䦑iÁ&¿¹Å•ØÇV^”Ð/Tq(q¿–¢<=Xý,˜nÂv‡§õ[5ëp;#*|Ê*çÒúÜ”*µTΕ?üEH ~_¾+ÈwöWnœ?¼ìŽ™ Ùiì½Âõ²_HûÄwaÁéb]váeêü3•óéj9ûÓHÒ»m[mùÎ’h¹ªm?qéM'Û¼µ'S üçúʃµך(3#öª9ôeYÕ“c{f gÙ2Bú˜ÇŠíy"¼ù azb³|å… ‘ €7âZö»ºêšþé;EÓ´e-Ü¥\ã‘¿«›–k¥ËËmX¹aÆä Ûö'oÈ2ñ ü çE¯Ç3aÖ><†ó1tˆ?t¼rÍÏφ‚@QîG¶r±#¼Ÿîé˸mÄduö¤hæ¾e/-®÷|Ï0Zt¤8áþБrÁèi4°÷­å²­¢ƒ('¾~Laú̓u³»3ÏÜóE›+WŠa ±àuAž©šZW%ô;™ÇÞÚ*j¦»`"íxA0@BSª_•!&TÏòˆšÈmC’Ø{gÝÏ›ò¾p~·Ënè6&Ý*´{ês m~ÄÆ®öýZNzúY0ìKOŽßªWŸc‡`Lù¯C¹@å¸Z@Ÿ›Rå öƒÊqóˆûH $àO@Tã·¿˜2g&e­Ô¼Uôx|æ%§úHÓŠ¬õ¢Bå”ÑcáHÍ~]7ÍÔ¥3Ká‹-K/ˆù^ŽÚö›³ží4SÍK9y-#GÒ wòˆ?Foß¾½Ëöm[//ÿ£~zšð0|ׂýV¡Lf’ÄŽ fÐâtƒ‚  –?¥ÓãÚ÷CL€Ž¦w•…Ëå?¹ú ÙD™o¥õÒFk›YWÍÞÖXiѰ¦f§cÒ)‰Ñìºô–ŠSMîv,S™3÷Imvöº¬ÌI<óÈßÕNË5­d”—õYjú²šÐgp1ÏÉMrÏDkKfõ®Ç£ûÑû’®îH󟲞õ¬æÑÐyJ†ž¡(g‚zâ…È#[Þ/eGUD¤ÜsàÝMÝÒéGÛs¶}hLëÍ 6ù›ÄgpˆU'Zþ Ž‚bSÉ"ŒMbúOÈÉ=oT+:–L¬ <á¤ÔÏxÄݧl^ek‹dݵø-ßós‹w„yNÐGë\K¬…”•©÷Í`FÄ„ó' ô´Òχ`õë  ªg¹£3¥“è·¾˜Â>ßn)Ùô¹½Š½h$CGg†¹Ã…h§=¸„(+Ò£Uû~­vzˆ„ÊîòüV¥úD;ØÊ*Ç5=ô¹)]j?¨7—¸@¾ô¾'ByœJ4Wθ.Ñf±Ù4úMý–'J*ï¸xçcë¿e• e^0núaÁ¬ šeSú'0,ÊäU }UmûÁÒË$kf¢ ê;Èß\Sž'ÒÀz¶ ßÛØ/Þ)ÔÏt#¹uüTòH副ÂWþRûRgÞGñRi™d‹7ꆤOÔ“â=^þL ÌÁ~¤¨MßVIùS ½65ð§=Ð>ׂò Õ œÙy™ä©Œhym%Ÿo}¸ª˜~¬ºÙNé$ÎËtüÛ,-6z¬'–†¶/%gó[†ßNŽuu 1ÙÉzðQÛá=«š—[èêoÌe0W5=,×üv’Q^)& žÌ¯Ù½-32‘$’ÙÝû儹l#ï´5o‡1 ÷„T‘;Ïñ+ ò¬ =•.g"5Æ` س,£5ɸ³òþÛ{Çëâ‡smcgJ’º›ó¿¯:_áô:tt2ü›/­¾«&.¿Iœ(¹×K È>NU„{M‰ýT:àkÁ¬q=h¨æØŽêYë/Ø­ß$MšQìê³U‚eº–$×Ï|4á22îa¾Mi/µ«ÑyŒç7Äý4–rÛ ÷®Æ¡Ý—k¿`ùƒj/÷ù ©~ U2€\°z–K4uªYç\¹á¬ívyÁäxå½£ãuÆ„Á·D›H~µ’î.—‹ÜòâÊw‡øUè~-:/j§ÇQL®Ý9Qܕ뷪Ô'ÚÁP.P9ÆHÐç&TŽIj?¨“&nH $ÀO@Õ"Âù^·‘2vPz·ÿ}YSóì/[x+´P9þ<ãY%¤¯ ÿ3ÇœÄ4^×ÑÆ€©‹ò}û1<©¨m?@zËv<Õ‹6l´žýOÝ,Ñ®'%ß~_k5X´ÍÍ­ö°èîºø¸Äˆ¤X#»ü’1~€qzÎ6ã¯o^U‘¹ÊÕ_@¾üññº~cº÷ÿhÏßþ÷üŸwyFN[þºþaÝ{h,M¶ÖðH×OÜ@%åOôÜ ãŽêè,3gÏM=9]\L;|œÛÓÛ²Œ)´¼¶”¼SëûíÄ~×S·4[M‰FÚ€d#eÇë[rwŒ•¨r4”Y¾þ¦äÒ%k$¹fÈШ¾±="=eIÂë„TÌ ÔIÔßÍDÝô°\»Ê‚×/¸¼çý»d#ÉÞh:ÿê¼[’HÌPÃÚ¼G#÷¿)M§&Ñîoùîõå/ñ>¤½´~ÖSár\S B[¿8Ú:å¶_ÙãÚZ0IUýp¨!O‰2B½ìm~Û¦¶×¨èœ £x¯­zß~aß2ÿ)ròÒ{Ò’„C“–p¢psE+§/PdCÉms–$ÝÆ‘ôìž%¤àž²Ï à¤~&ýÖߟg HdîG^[\ªÎKO½Õ~Q@íІÙ’?iyP "©~-M» ¡ƒÖ³<1Œ6÷aûV›Î}Óàò•OŽ”7ŒßËh‹`˜J?¨è²¸ÀÊ‹'·lO¡ûµè\©W1YvçFh_¿¥Ñ‡¼>¡º \ rŒ ÏM¨œ§\@í•ó¤Œ{H $À% jQQî,Ûí¹¤Ì¥@jÆ\Í´©“ŒÃúÅv½æÖ»ãþñnŸÆûî\XëÛ6•s¥ƒ¿ H_JöäŒKfZ!jÿãâÄÇþ&8û‹IYmûIMÏüäëÚ;Rô1ÌÈÐÍ÷,oO«˜¬~¬Ø7ïÄ”^óǹŸxë5qLÚµ“&¬ø¦°ìÏmoqë³r›®/\M—*‰‹÷Ô¶¤[fžm¨¨³µF'¦’btfy¼ç¿®¸+gJ2w&‘K/©ù“›ž+]üí 2×k¦Ð¥™òš7û…F_­œJÑ$‚ý>!}ï|¸Gƒ6¬îøÛ5¼—«Y°yOÓ=ƒ»ÇöŸ2/!{_aoƒ‚(W;=B°\ûZ^àXTyñÈ–ä/pü}È{•ón‹7¼¯ûÁ•š®Z:³²îX~õƒ›<” …öDé©`9SHmŒFÀ1¾‰¦ÿÌ+¸bú+ ¬¼HÕÞœN²†$z݇üâj>Oòò 9³ø}Bî×>1H;T)=yv›%ù~Ûnõ‰ÚÊ*ÇØ úÜ„Ê9ËÔ~P9±%Ã!$€®FÌRDí¶íÚäxlæ¤Ëóß­]5úîŠ<ÚBâê½ æóÇj¤lzÂÇ+Š MÎYdFÒgˆ‰¾À¦‘ms~ÇœûñÝ•|#™Ë¿;J ö‘“¶á@Oît ßZ–xw±ª®xSóiöÛEÝÉo&¤úOXíïj§Ç¨åš5"÷?pyáFBHþ¢ÉÖζÔ1gµtv‡­òPããÿ½Ù;”Œ#°ž •3ª£¨è}e9Û9D.ÿ¤!kêÿ­ËÊH­/(¹\ËÄFg¼¼;7F”:G`ðÎ^kÙÁÆ™3g^¾çž{¸wgÜ]ÿT^±pã¦w4¢Îþç™êqãÆU¥¦Ž¬>{~Y^á×t5‰1Mè¶uǪ(á/16’ý‹3ëgμÛ_×Ù9!í Z?óÎ~æó/†ÝB¿õ¢m.±®ùTïÄIáéhÕ°öthõZÿeúħ ³Ÿ”üÁôRþù¼~ ÓÔKJt=Ë)eš{«–¾´Ð­œäÚ(ÞM~`¿#HHïÁ£CZ,¤q•gnCÿê„,Ýœ9s’þÍ›•”îRE¡ûµ+º ¿j§@!iv‘×%™~«V}Bu;@¹@弌â} ñ¹é#µTέî $€ví r)T¼î~û‡¥væ½’ô2*ÀK¥KÂù •óŽÄÈ$ÿ|ajB¨ú"¯jò³ˆ—õ©¶ýøÒK0FÇä‡Ùnœµ¥çÇœÀýû?ý ]™k×ܹ*ž9ÿÉÁÏ?ûàÕ8ºÊЭ$ïQÇg[ÙFV]Âõ‘Þ2t´ÍÃ3šÓFü¶<'guÙêÕ«Ëf¿½,}öÙ‰F ÝI8MAc¯±ÿ,r}y¾üy”T>=Oܸ2窉³kRG¢£»j2^~:Üd°‡ih£ê¬Ü"ΈðdÒ¥mÆK«­ÕÝ xöãÕð7ºoÎ5502†¸dŸ"iþ®vzÎ|b¹vÙ›ý•Q^¼â¡GNW»gGê"¢´½}È9–¡§ür&Gq”•OÀD^Z:µ;;¶îÛæ¥S³ë\³ÆWÏÛøöñº& m⨨=/ÏaƒWþ&øp4º°À£à¹Ø×‡ÑÏ๶’b²uÕ<Ûø?;Ï<³ô)¿‹yf®YàCG½¡¸”ÿ¸~Ö]Zît&%³´Ü×ÛWW±u3ñIH)…çáïϳ÷gGx¢îvw˵ä$0ûIÉP1ªçCàú5T[FNZ=‹‘¸óÖëØïOµž-®ËcN¸·òÎWåì»´#ñƨyÂ=´n ¹;â¸ÀÊ‹\ÝÄÊ—ž9lÿ¾äûÚãÇ×ýýpøÛ‹î™ ݯÅêGÔNO„bâì."¢¶ p¿U±>Ñv€rʳ˜¨ç&O$ÂrPûAåx”ÃSH $àE@àåÍ+Œ*µÍ­LBö¨¸p)uZ¨œ*™º¢I#¯ìÛ‡6B7ßQ3ù‰­²:‡\hÔ¶Ÿ_zÖfúêo#‹ÓØîÒNþo#§‘^(¶}û èG™ ˆ«‘Œ ÷À¿Ž`–§ÓX.ÙŽ òœ÷ËO%Óã‰O)I äKRÙ c}->uqÌC·2+ÝÔÝk²ÙŽGwRC5‰mßñhn›ífi²»¿Yädz㉟̙¬&ÝßÕNÏ7+X®)åÅ‹gÆ‹çw‡ÚÎÆ 2<»}q¯0rdè)¯œÉQe• `ÊZ¤ï £ÛmäË-ÕøŽx>ëñ¦/ÛFÁ÷2ª«÷À %4è€qÈð‡—›];§ÚžY}† ëÐ|Áêg<5ÁÀtdêª7­ áÒrm(À³¨øG›sðˆ‘˜n ¾òBÀ4Úó¢@þ *…òù ¦~-Moéõ,BÒÉо:—–Ë„´È½{÷ÆrÿrFŵ­LG~;I¨ƒVš–ÁB+Ï%XŠÊ^/É_é˜3{NcVVV“Ðß­nq²Rû~­vz"ñ*iw¨ßªZŸh;@¹@åĘ>ØsS(>9¨ý rBºáy$€ðè0DáaÎ5Ó5öf»ó¥Ç£d =¨\ 8ñš?þçéˆA16©>Òô'—ÙPÛ~¾é±ë+Ó™;£G®àûû×éæK ŸÞ]RÉ\EgüÜ6î*ßF-bÎ3am „9´DÂ2 idÄÀ®ìò:¾*ªu¿”%Â9ï›?Î¥»ðôDŠ—!PLŽ–Õ±·Dc|¢‘i¨:ðj¥ï·‚2n5é™EBΑ½m3‹Öÿç»fW¯§ð‰&ò«8¶/’~þ+÷bW;=6»ÿ»Ë5¼¼xPÒÍèÉ”§úÃ[.®zç ;p6¬ßä®»–Os­|é Úƒë)§œTE!E ôJŒfë{¹½xý‘ßVBò?9Ãv€3Ëgõð»~%ž€ûCÇ£QLj¬ì CDΠƒŽ§iàúY{S×nŒÖçŽ~ÒÀÀ£nNxîÛO\q½‡ý.Ú¬®R ¦&?` ¡|>Àê×ÂÔ³HFª&¥m¶¸ÆÐ%,&&ÆÀýëÒö-0&Õ¾·Ž é2s®œ)ÍÅoÇýUû~­vzâÈ+iw¨ßª[ŸPßP.P91–üÜŽOj?¨œ°vx $€\í ‚×DÍäúÄvÊ|KÙ‰F±ï„@å\ÙÇ_.Aû™æ‘©Ãº³í4' _¾$¥Ã‚¿ÿ¾û¥M'Y™“d.Ÿ"!=eõa‚t|Br³ˆ¹o8;Ò¯ùÌ·õb—'I]òîFºŒ3S¤hK¾•cà}XþàéÖæj½*©¤ˆ(×ÿþàG÷Gˆ™Ú‹vù” 3s»¢½ôx½û»D»>pœe¿/DHÒÜýG~FGúÐï+ÒBÊΔ:gAý]íôüòâ}âj-×àòÒ†/w÷£1ÌLQ]Ý‘æœÇ^m)̽×ö^[Gy¯ñs{®•¸œ‘?€õ„–3ïâGíFÀ¹’¥C«Ó²•>=¢8+¥yn~<¯ S`èp 摵ì7ë~ú¯{ÐA‡S“©Ÿ¥%‘îì¬ÜFò݇où¼l8Ïߎãl¹ûÕà¨é‚ (uAa.J©âx½_‡ò= ¡úY1zfwÁôÀ~«n}Bm»(¨\PÃyn Ê ÉAí•T/ $€@ÙD¥çw.4öV»{}^¼æÌlÍÒ¬TÁÆý›—†ÆÚV@?dùÆó—]âP9—<þ' Æ~¤wqVêêÉé%ÎFäàQ¥ì—úäkÚ«&Ï™·$é ýpµÐ„J¥'"kÎ æL²bÉ\¿>éä•Â9ÝË~Õ“¶½à51ÎÄ/DLY4K&¥$0 ÔÞuñ%ΰU9ùƒ¤'š$¢üȇ“Ør]’ÿªãHN°¡mâòlý (]ÊÇF>ßñ,û=!gRd÷—•ÕÌ~„)½Û&žïAäîþCL"½®)?а ¿Ä9šè!X®–æþ//„d<¿;lÛ¸[Ev<>·Ú5`ÍÌ/߬¥¤F2fÑö„`Nbü®'°œq!á~»(úæ”Íùq«DroÞ"Ú9í»e’¬q}éRšt«>×$v`…o,íîí—ÓVë¯ÄMióÈ«{3cÆ«'ÅKàâ•üõ36ñz }¢:7µz‡¤ò,Ê]f;T©aë–ý§,JX‘Axß³Lf §|Ê’bš?I‘»Þrê×ì€êYfòÛë»±ƒÎªè¬6×óÙ7Ùõû³ÇÚÞÚ´,o™ð•:V‹"ì¼R÷ëпøƒS?SÒîbÒƒ¾?¨]ŸPÛîP.`9ès(µTÎßð @H ø`*Ž¥¾'…ÓȆwsº Ž´ê[ì¶£@­ëbÐÐÙ6ÒXwÙù!!¢'ÚZí¿O«b–BJ]òŽnͤ„„Ö† –ŸN–Ô?õ“µ´²ÎÓk v䨑1}cul#Á™÷_¸pï²·Øo1:@å„õ¿Ú¯í—ý†nÍ”¾l§E0‚ÖÓï]5s Ûɧ”ýïø4jrŠž]réDܓ󻲕<ÓÌ”J›ÇEÛ‹ºÜÕÏÐõ\áªŠé« ]íÎ i+ÈþÕã’ v«½êüÏ—KÏo¹ØH=zõ ëoJîæ)õßwWÌj[öË)˜N¶-Žïu±¤ù›ãß7þ¥ÌV×l ýGþ>bìàäXf\ÌeÊqlG—>ðüÁÒs¥‹¿¾`~䋨rÍÊ™³É{¦$³ ou?5ðŸjK*#ƒÇÜa90ž]s¾îضê ÿݧ#ÉLÖnì~K¬Þcmäüá.îùüGK8½÷Þž6²ë51:³ÔÓë÷O-ߨÖ™ ôwgþÔL˵o™rCÊ ýîÐþ§nKb¦šxs~ùý늽¤-%ﯞ˜Ì´NÙK÷ÕÈÈa?†Mˆ €èÉfRz9s³Áv'ðô¶ýÆi¦vù.[õ›>ýäPÝñR‹=ùÆ[ô©£÷èÆÎܨ'ïÌ_滜f»+J€þધV­žÖÆóÖËù^M#[‹þÏÌrv4_¶Ö·}¿Ñ¡5j»Féé@çvŠÖ™2}êLžg‹p=Î%/û\?s¦l~òuí†ýéø‰Pë çÉjjÊ"ÿÜ’•ÀÌúdžñ•Ç?«)úüXs%‰!)ýLúÃ~Ý»þC먌gÛî×p²0ûÉÌH]éÏxý¤ ñ° .ï~¯¢eú#úÎa Z&§“~ü[&˜oÆþNƲàr¸xòj Î0$!€÷k®.¡€ÕÏàv‡¥çd"Ýo9ÕëjÛÎÖ’úæ }nBådØOu»;¡âÿH +ž€äï tŽ ‹ /†þë鈑®…Ì%Ö…çDHCùy{ I Q=ïÖ³ÇuÃnç#ކ2ËGÛÖ^\š_ìµ=TÎ+r<ð"±ŸW”²_yU½•¤8¿»ª±œ³áébÔR*=¾,z÷ µ…¨¯%5´£4Q¦íÑëÚhæ+ëh®°~¶sýŧ7y7´Ò—;¢Õj»ôº>zóÇ¢K}9ðf彋6ù Z…ç–ž—ZxàE@ ?[®Ù„‹sÉäkÙ®e3zÅ\c7#+qG£ÊcoWßé×9Ä(& &=_³éÝÇCãÃIÃÆ÷˜3l¼[ÒV}¢éïOÞ_“Ï™©æ¾ÚQ3=,ׂ&’\^\ßr:Ú ä×9Ä$´o%ùË;ý*VN ë•½ûùÌæ©‹œ3Àþ YOWŽÕ,g®4ñW)/Ì~¨1bó öôÁñ±ºØþ‘c¦Ð?wäZ'üÅò¯õKØFîÓWÃØÚû ¡Äœ›ÍÒ`»xþìåÏ 6_Îõ©Ï»Â´…ô> Ÿ~æT&*\ß6ó‚·ö ˆgI¹{tyÅsÛ1ÞfêÑ-~àÈî3ŽôÒÏZuÙ9iÏ묜Pþ@jJ>Àë× AB¿Ê.v­«;Ùü÷ gÄ;ÉWçæ6ô¡ƒÛ¢®ýu]<S.°ò‚¤¦÷k5Þ õ39v‡¤ç4›t¿eäT¯O¨mwð{€'ô¹ •“a?Õíî,¤ø?@HàŠ' q‘f’97U{]ïx]˜­Á ÓÚjl'¾Úo]—_èÕ1ä TÎ;‡P9ŸhðЗ€?ò••r ,/Î$$–O€¿›ÓÓ ó4¶5–^’‘¿Ì'×jÇÞzƒ1Ö¨ÑÛ™ûRɱæ·?g âÁTíÜ×eð”•q©þ IOIO7‰VO°¬‰Ž†’ú­‡.ßý³±±‚œÛWL„«íëJØOZ=ËÃKÔà9ÆÆ •¥Tà@©™Oj¦ù¡WÏ豑¦šjËé·|ðæ&ïsÓÔû®Kú Lœ?QzÂýÏÿø’ õ3êP9¾€ÓH ûgkÃË‘=¯TÏ_WÈ©cÑ(ÚË”²Ÿ„z–° ‡ÐçT.ˆ:b.§-$¯?uW÷þ±ºH¾àÚ³ïÕÝzÏš¾kRï»|qH9JOFþDëö‡ÀþÇM?¤Ï¨?@å¸ãÝÌEð¾ÄK »sÓk‡}©þ ¹Þ£PžÄëØî\u¼üìÜ9û"˵\žâ¹ptSqWnþ ªJ{olKAj½@fy‘Îú|W¸} b”AH ¨D8ƒÈLr6/5¤Žu驱Øl®¿_# kmr\(ù¶öà_4⤽¢ž¨³fÆÌŒè›#£bNî¾{ùIëÔeoqá¡r~ à /Ríg"hç¶¹Úzüè±K_}wÜúóé2cÃÁ¦é2~?,¾›V§½iÆ3‰ÙŠÊrݽjÛOÉôÒÈ« Òâ"hdzµZ5‚3z&.C¿t|ßžL¸º’Okó¶ílº®û§¥ú\Óùz›Uc³9´ÑqaIñ1F}TÏpóŒ%‰¯‘Fú|ç ÄiPÊ~âëY|¼Ÿƒ>Ç rµ z5}y?g\²sQ=ùöýw.¼[PÜZA¢IÊ!šÛRÇóF¸ïòÆ#ö$0=pþÄêÕN†?¸üOrýE¢ŠÂÁ¡þ•Ö„{ÅÅEÒ}ÉZvw¥§ú/À õÙù’®§Ëî’üA†ÿùgQd¹–ÅS:=C|FVþ`ºIodÒÔ ä”èó]Éö%˜MP $ É3ˆæ®y5lÊè{DkZ½ÊþÝŽKÆw×XJl‹GÏ®ð™$!*/½{€6zëh£·´8 r¢”ºBÁìg"™×ivå ,{FG€¼OGt3/¶ç WUL_UèìU ÂPmûIIï‘Í{ ³Ǹ;@ó•ñ¢æÀS·%1 ‘Uò*'/Úê×ä!Ž^ÂδÐTj¼ïÎ…µÜåcÌO¾¦Ý0c@"#wâõùå÷orvö¤.Ù¡[3)%Ac/µçÈ(Ïó‰8w÷Á˜Q‰Ú(ý¬ýÅ÷”»Ä¡r>Ñã!‡Ì8HÚ…•6 Pù„ú»g„Õ™wWÜ›[$ê>@<¦¹[´ÛfݔȔùU´Ì{M¢÷¥è}ÉHZÈǫǔýÉë¢$t²ÀpžÐŒÂü!”zÒ†…ÖÆÝe ÿï›óËgyu˜Cs‰rJ@¿å#ɽΧ÷ÏbÎýs:y¥pa÷A±$RÛü½õ±Ô9•îq8|QùSÖ”²Ÿèz–_~Äœ€>Ç rbt ã±½Æò³-ïÁ»+ò¸•B1Ø}W 2§áéÁò'B%`>ðè(­þTG êP9xNq¹H½/yd¥”k%:ä)˜?„²Þà ¦§ÇvÊûŸÿùë.®\Ãy¸øëÚ3ðüõ½7Ò¥Cö>ÆW^ \Bó|—Ò¾¶ "$€T" •–N:•zC<Ó9téô¡K«FL.îø¥iqø‡~£è§:×Y¾å¶\×|¡r¾ñ\=ÇPû•ÁÎ!Þ¾÷È™3¨[Ò¦¶ýD§—¹^“I;‡˜Y:§J›é<)ámí}#º2CöÒ}õâ:‡è›¹Ó´Îe¸êIáËÞCLJ=»D2·ìvÃÓÚ–’3“{G÷cVs$¿ü{c¥oçs>{ë§uŒ3:´)Ú»²SÛ–ù‚Ê11âÆOêGü±; +/ÎX!å“Я]Èõw}˜ø;¹œüõŠf}Åú˱¿þŸ}ûÉ™f-í° ½®K•ø¬ f•Ž{]OX®`þJ=S³Ô1C¤ú³¦•Ø93k¥ÐoÃÕ‡±’9v’-ŸœaëÉ­AÛ—sEÌ®Òþ ˆý$Ô³ÄäÑ? ô9•ó×@ì™ikž s.Ám#_l¹û‚˜Î!f`E(ÞÇ„u†§ËŸ°&r¯ó)õ¹º¸å¡þ•s',~Gê}©£Ù]|NÅ„„ùC(ë=üZÃô䯥´?ó?6m‘åÎS>.£PíÃó×öÞHˆ"õµùÊ œKhžï¢Û—xò‡§@€ÄF³ òÝý•ç/»cæÂËLƒ\¯p½»1š¹>ñ]ØÆlº8‘]x™:ÿØ¡rþ1]-gBc?bIz3qt«-¿ÀYÚ,0Wµí'.½édûƒ·öd äÿ\_y°VÃYòÐ'?æ¥ä×t¹7ºHù|GNƒÏUÁÃq#®e×—×UÿÐôOß)w¦…ä:KÈ%ìˆhœÇ|ÝœFú²Œëɱ½33 ³lƒ8!}Ìc-ôP9—øËC D~Ä“s T^A`ùdDn@Šœ?&B«s¥º°¤]Ò}0›É¯ØïÞÕÓçgI&ßpWØ1”§9ÍLÌ”™™¹ßn&gγÁüª§']=Ó<²pJ_z­'{^|ªFÄ@|ˆðtÈ ßJFÅ‘ðùX'ç Ïn(üA¶ý$Ô³x²¤È)ès *'¨t:¹s„s¹n{ùÁ†ùÄ{ùUA9Ø}W0º  éAóT!X€PøLŽÔ rœ¤eî ß—:˜ÝeæÓ_æ!«÷ø+Øv¦§`tr/ˆò?ñåγƒqà ÏŸ@„ÁNËyo”]/àQN ¼„Œ ðù.®}‰'x $Ð Hì *&«=cÍ—¶¶Elg’#’Ù¥¼šN}ÝàÛ^., •ŽñÊ¿ ûòtÎD#3µ…YBàý¼b‘/·jÛO\zOo›gìîÐ13‚fm*²GE:}dæÌáá̲zÚæSÖÂ]b_êÓȵÉlçMÕOG}/W¯™Gã¼PRR뜺GFÎ`f…³ßÓ`¾ªæ\¤ž§¸6Wo–.¾¿q:*Ç=žj#?âÇ -/„ÀÊ'¿ܳbü½Õz+`ž?&Ò¢Ülåô×ÞO÷ôŽeܶ ²:{R4ã*öÒâzÏwÑ©+yƒó¼ík#7lؼaÛþä Y&žô¥½èõx&ÌÚ‡Çp>¢ñ¸ž­G×@_7»;s=_´¹r¥ø Eàhñª¢Ðo¥ãŒ4XŸÔZ.Û*D‹‡ÆäÚOJ=KtV%óã‹*Ç{.#U“B뜄ØÈ±·¶œ±îä¾ëƒ´#`zàüIÓN\hqþ ¾þ".Õ`¡ þ• ¦”ë‚÷¥ew)9⡪÷Ò¢§w|Êùƒ8ÿ_®åð”ÏÅ›R(Žä䦜÷F¹õ…ÊKè¸ÀžïâÚ—üó‡g@“€`ã·êNÊZ©y«èñø>ÌËQõ‘¦YëE Œ„Ê©‘§«-Ôì×uÓL]º1³h¾Ø²ô‚ë»78¨m?±é1ëçN3Eм”“×2r‚¾¨§$F³³¦,§šÜí¦42gî“Úìì'tY™“üYéÈû$vV!—Ërõç°¸˜o¥õÒFk›YWÍÞÖXiÑ°ß `§×Ñ®X…43yâv„Çé¥9­• dC¼¦åT>ƒdK¬¿'øcôöíÛ»lß¶Õøòò?ê§§ LK‘‘?§ªydËû¥loTDÊ1ÞÝÔ-˜Hζi½Â¢™N뿉ðå Ùî<—eð\Ÿõ§¦/« }GóœÜ$væ"'ç«w=ÝÞ»tuGšÿ”õ¼¨g5GÜ{W†žÞy-ؼÊ04ÖÉtðßµø-߃ó–Ç#µ ßJ#E›Äô{’“{Þ¨;F+tþ·ŸÔz–4NâB‹}ŽùÆ•ó‡{”˜ç_lP9¾¸¸çn¼!ÎÀk,å¶î‘FÜ{¿£äOŒ?H®¿È6 Ô r²vGì¾ÔQìîV¸#ì„ ÞÊl)ébü‰åº“ñ”l«vÈŸÜ÷FX½ÀŸLÀò.bŸï°ö%ÿüá$€@G& î "Î÷Š¸è±ƒÒ»ýïËO„ Œ1§­žïI’ëÈä;»né+ÈÿÌ1'1u´Ñbê¢|áÑÚjÛÞ²Gõ¢ 0­gÿS7KÔGÍÍÄ”hd_ìˎ׷äî>“N;‡´ e–¯éwºŠŠ¾¨ýA”ÿ"¹\w*ž^pŨž?eÞ¥Ö ü`+/Js‘ò|´/ùåO $€:8UgåβݞKÊ\LR3æj¦MdÖ/¶ë5·Þ÷wû4ÞwçÂZßö'¨œ+üU˜@úR²'g\2ó}šÃÿ¸8ñ±¿ ÎþbRVÛ~RÓ3?ùºöŽ} 3ò|ó=ËÄÑŠ&ìºñ„ô½óáý Ú°ºão×Lð^z©fÁæ=M÷ îÛʼ„ì}…e¹|‘g®×L¡KÛ1‚¼øš@IDATéçÍ~¡Ñ7ˆ«Ãg}VnÓõ…«éJq‘ãžÚ–tË̳ u¶ÖèÄCRŒÎÀ,§•÷ü×wåLIæÎ$‚ÊùêÇ„€¨ò,Ÿ|k‰ö÷b²ú±bß{A#1¥×üqîÂ'ÞzMÓ¡|í¤… +¾),ûsOQùóÈšçnÒ®›54QGgÿYËO6”ØR{¢ãn½/î“]}ëŸÊÈ®çË–'†+|O"Ï’üŽ¿y¯rÞíqñÆ÷u?¸RÓUKÙÖ˯~p“§S[qjõô¤o"ë×Mg¿;Ôx|gÍ£yü3Y=áq¯#@¿¶‚£ù²õr«Ã¡×4ƒ>Œ Ù;u^üÞmýkŸý¬ß· ½cRǤÚVÏòΙ¬#ÑÏ1ŸT r>Ñàa{ë Õ_DfêP9‘j &ï¾0êö½hN'YCý—çjÕ|žäårV}à^”±®÷ÈHS”¨Rþ Îÿ+×–'…®D9 iþä¿7J­øEqåÅOÊEâó]jû’Ÿžx $Ð ¨;ƒÈHÑ®MŽÇfNº<ÿÍåL#¸#~¸qíšiì˰OP¯C¨œW$x#`Î&ïåLd; ª¾øGU°Î!¾DÔ¶_ÀôÌóèÈóþAGž·Z}ûmö‘“vv„ž6àè¾µ,ñîb³¾þáMͧÙo u'¿™ª#´WÍ9•ÈHú af¥‘ms~ÇœûñÝ•|#ßË¿;Ú6 c™;i~MÁ±_ª›èl‰®‰)Q&S¿nI1Äp±äÓÚU£ï®È£_¯võúz *Çg=<§*py–OßÌ)à襤€<÷Ä,mý†™Bˆ‘ŒÍ\Å&Î_›¢T¿ålç]¬´ü“†¬©ÿ·.+#µ¾ är-"¬×¨è—wçÆ´…¾òäòl#”¿h²õ£³-ìŒE-Ùh«<ÔøøÃ7{A e…ôd’Ê|þŰ[bI¤¶¹ÄºNäw ŨˆaBHý6 ܳÿy¦zܸqU©©#+‡Ïž_–Wøu4KbLºmݱ*Jp¶= £Š?Hµ¸ž“ø‹ÐçTN¼fÄѪaZ½Ö¹6ªáN´½ó'ÛÕ_ ü¡þ•ƒêé#'å¾ÔÞv÷Q=àaê„,Ýœ9s’þÍ›•”0¬÷ˆH-4A$úƒ(ÿƒ–ëNÆSr9S=2᝙ xJ¨¨ò¢žïÛ—xò‡§@€«-¹]u-^w¿ýÃë'ôÒF÷2оü¾Uã;‹ˆOA¨_\xN LòϦ&ÄÑÑäU_äUM~b«EŒ”PµíÇ—^¯ ctì—Ÿ©’7ÎÚÒóãYÞÚêÂÃÙþœkî\ÿñÄVóí,}ã÷­KÆ=PeµµÒ{§ ýø_5ü³ È7çžjè×ÏÐÕ—¬#çªmLW“‘vEGwÕd¼üt˜‰~ø]C·gå¹& ÑɤKÛ %o訮‡g4¯¦Ÿ}JKK'FÚ¢PRP@Üþ’ЄS½Æþ³×zöP9ïÔñHeçª ´¼€Ê§kD6›Êú{IÞ£ŽÆ~ZÇÌÖÓ%\™F?õOFþ1‘—–NíÖÞHÝ·ÍK§f×¹ü`õì±–¼½Ž»Æt×&ŽŠÚóòœæ‰2ïW*[–œ,žÞI9]Ýò»”$ö¤."JÛ›î¹øz‡)¥']Šât¦Sl¿Þ¾ºJhR@C ôÛ`hõa==AJŠÉÖUŶ­'^<ÿÑS·%S~óÌÜ5ÞÏ7›On¿Tõ,¯jŒ‡Š„=ès *'A5ôð÷ç[¦™úGx¢îvÚM«sWÔÖ®ùSÐxë/@KAýá>Ž®¾¯È÷#ú¶#á¾Ô®v—h—Ò3‡íß—ô­uX‚3„´Í?Ùéø;y›RõyZ("-ÊDúÔ–Ì;\}?R‚ÄH$—³v(/ð÷Féõ?|"Ë mG¿{ÒTöùÎ×¾¤Øû’GiÜCH ¨B Ct19­¨mn%½ŒÄÇ~‹Hì*§ Ý+*‘4òÊÞù±}ÂmºÆã;jäv¹Ð¨m?ßô.[›iÓ"ýgñùtKÁ¿–&»ûB‚¹GˆFÅ'‡‘’ý–ʆٖ¸([x|ê☇â»Ó.ž²{M6;ZßOÆPM"¹Ï7ûÍ^r†Ú·Ï¿%á;~Á,㥱\²uóû*çž=’/ ´¼€Ê'!g¦BãïœNU6ù3e-Ò wPÿ±‘/·òÔ³œ¦®úpÓ:\Zj UåÐo¸wípœzx¤e­;ô2ŒŽ)ö›Ñ§†?@ìçQÏÒjƒ>Ç rÒµ-*þÑÖ8¥/4d$¦Ûè o ÏSzôí.ÑžùSÚüê/PºP€ÊAõ#'p_jO»‹Q›¦$¥cN>ÛæÌ=­ü¾BõåƒÅÌDû´\w2ž’ËY;äúÞ©ø¾‰./²¹„æùîÛ¾$¶æ}(…ÓA¦c×ÿÕØ›í̈±TNlüÎIàÿy:bPŒÍ@ª4ýIÁe|Ô¶Ÿoz¾ëÉúÚ{Ñö¢.wÑÙ??½»¤ò^¯>„ìûÏwÍÓÞÂ.ç¿+&ùUÛgCª~øŠ6è“£eu7˜º„ãÙEª¼Z™ë3ý(ãV“žéè!äÙë“®+fÿß42b`Wºœ–\øª¨Ö'Jÿàî3P9w¸2ðò²T> •¿‡µ-°H»>Û–Óç¯Wb4Ûª±—Û‹w1Óˆ|·’ÿÉ™º[¦ôd–ïéá{ùŠ<†óôà #ëÑ3‚"­?¼åâú_Ƶ.™Ò7!¬ßä®»–ŸlÉXöV«',tO =³ÈØ›ºv£‹Ó’sG?iÀ—1¨-Ô•C¿…ò.&5 V ‰Ò†z$2+Èút©ãûíôùþ¨/@õ,ß°RŽ¡Ï1¨œÝÜa÷í'§î`;þzû]´™¼U-¾î接ãî´[þ”÷ÿú »œ÷Žÿå|Ç×7õPù‘o:ÞÇ÷¥v³»·vëH‰zOÇÉQ`ïrüaPÈÞ§;gõË ô½R/ð&,¾¼ÈmG ÕóÝ·}É;x„è<ýÛÚ Ê»™\Ÿa`D[ÊN4úŽ*Ž*'ãÕ|EÐ~¦ydê°îlûê‰Â—/)÷ò*Á~iÓIVæ¤À j< éùÄ¥㡳ëÇYöûB„$Ý8ÌÙŸã#GÈ8Ò‡Î` %›”)µ3—ÿýÁmߢ´ÃmÅ¢]>#FÍdüÍ ]™°öÒãõùÌŽˆ-uÉCºéruÌŒ¤¢-ù>q G•Žñê¾ÂSR„ˆ(×àò,Ÿ$dþžEÌ}ÃéêÑ´eóÌ·õ®ùoàü¹;›tZöáÁC9*ÌsËð8OÀ+蜧BîîGcúÐå-uuGšs{µ¥0÷^Û{§›/1W{ŸÛs­Ä…ø…üA®ž$-‰tggY6’ï>¼²FÝ_AÅ‘'+ίð9´è·CTL5ýxëYˆ¼}ŽAå*èâ>òƇ§j˜¶˜¡†ùÙô[• lB÷]¢æB8½ÐäW îIÅý¿þÂMRé}¨?@å`ú Ý—ÚÉî°L(.%ä²ë=\ME¼?pƒóí éÉÖû\PÜÿ˜%ýµU”''ƒþ)q.ª¸«hþÄ”è{£Ü÷1‰åÌ%dÏwxû’ŠÅ “BH ˆ" »ƒ¨ÔÂ|‡…ùæI«àú¼æÌlÍÒ¬TOKj 6/7 !´¯‘ìãy÷6P9Ÿèñ01ö#½èâÌVONŸ(a;9D龤”ýRŸ|M{`õÂä9ó–$¤œú@³Ré¹3t§€ìþ²²š aJï¶i®ÙÏŸrwÿ!&‘^×”hX_ÂúJIþ«Ž#u:ÿž¶ô&.ÏÖ3ËÈ0Kg}¾ãÙ†¶ÓìI ó¦¬ š%“R˜@5‡w]|Ég8=TŽ›6î åG>âbË5¼¼ÀÊ'Ô߉9“¬X2WÇ_DÓÉ+…sº;—M¬'m{Á=Qš¿¢oNÙZX¦‰äÞ¼E´ÖwË$Yãú:—ì¯>×äêò u¥Cy22žß6Šm„®";Ÿëɾfæ‹—¿oÖÒNg#³h{Âô ÐÄøƒ=Ùäë-ôéÜD÷†Ñ/‡žúmpÆ­Ö ^LióÈ«{3c7³zRü1Ï•ü¡ÓØXo?ÿ¼,&í (w™íP¥†}&öŸ²(aEá}_2™ùŸ®®ÔÄÜw]a•ø›žRù“¤³TÖ_$éÔÉK½/µ‹ÝÛ‘±]ïiËŸØ÷>bô„ÖçÝéIõ?· ´¥x2©Šâ"M=Ù¡•ÊŸøò{o”]/X^À\€õõÛ—dŒ $& q‰¹4²áÝœnƒ#­ú»†í(Ð…G³£Ýì†ëÃÖîÝë\{FO"´µÚ/žVÅ,Õw¸vâ¤) ãï¾`ùédIýñS?YK+ë1½jGŽÓ7VÇ6îyÓ…?sZñ r`W¼ Ì~©æët΢h2qõ¡ä‰8YO¿wiTÛw*”²ßð[û]C*µ‰¿‰º;Ô­ä™f¦Tz²çwi×¢Ö‘…›n‰ˆ:k]âÛ7~tqÏç?ZÂiÙ¾=md×kb´f ¬×³—p¾1TLæ.y«ú½ S’ãb‡FnØû¿šþóQmIe„cð˜; #Æ3ŸÕ uÇò«ŸòZ:+äl^ßëbIó7Ç¿o:ýK™­®Ù@úü}ÄØÁɱ £Ë”ÿD:êß[Q¨œw,xä"ó#—´ëWl¹f¦ÓÃÊ !ò õwm"£&Kÿû{ìUç¾\zî|ËÅFâèÑ«_XSr7ç=„ÿ¾ó— oÿæ¯àO¤`úþÚi¦ˆnÆwu?P8Øðé'‡êŽ—ZìÉ7Þ¢O=¸G7v†I½ÿ7¾\F¸"<éw‡»=1žArâÍåÞÌdÎÊ¡•ﯞ˜ÞO÷Ä®ÕÑ;3rêø þÔ³ÍfæÛoÒ²ÓÑÚŽñ§“@¿ j¨”;þ»7Íù]D‡Ö¨í¥§FœÛ©ÂõÜz²ë¼jþÐIì}ŽAå\v€ý–…OçÕþsKVDŸðîºqOHºùŽÏjŠ>?Ö\IbHJ?“~à°ßD÷®ÿÐ:*ãY™÷]˜†tŠèýÏ™$P=r’ý\‘§gg’–~_Rßîêñ„úƒ¼z+â߀zÊôÉþçʘä_(O ÉúÉ€æÏ;]ñåöÞHdÖ ¤—èó½=Ú—¼-ˆGH õHì "¤ktTX]ÆÊ=-1ÆÄx­ôÓ¥­õ¦¡ü¼½…$ˆ¨žá× ëÙãºa·{åÐÑPfùhÛÚ‹Kó‹½¾#•óм@ìç„¥ìW^Uo%)lŸ ÑXÎÙŽðt1j)•_]#Õý¯““ž¯ÙôîcŽ¡ñáÆ¤aã{Ì6ÞÌV}¢éïOÞ_“ï3£‡ç’É9Ö²]Ëf$ôйÆ0nFVâ8·!•ÇÞ®¾óá¿ûÌ2¢LµZm—^×G`þ8á™%ìÎx³òÞE›xÓCå¼À%üHl¹f“•FX>9y½[_KjèÀDm˜¶G¯k£™?®¬£¹ÂúÙÎõŸÞTä? ˜¿f?Ô±ù{úàøX]lÿÈ1SèŸ;Qq4übù×ú%ì@÷é«aG2OÏw‡êŽï¨¹]±¿ö­$y§_ÅÊ)t½Ò¢w?ŸÙõdW5ý!Tö»ª=¹$Ü=º¼â¹mo3õè?pd÷GºÌËþZ«.{ þßw½b +=@þÄkæR²?È©¿ø'¯È¨?@å‚) ¹/•í,J^ûƒŒzK)ï =eúƒdÿse,À¯`¹òq  _È.óÇÕGJy¾7Ê©€Ê‹\¸Œ퇲})Pºx $И–Ru6“̹©ÚëzÇëzÄÐiÖÖPc;ñÕ~ëºüB¯Ž!o} rÞ±àQ{PÂ~&2wù\ý°D«¾(oQs~À )‘Œ•9c®æ®Û†ÅGEè4¶fÇ™â·¬Ì T¶™tœy»µo÷p«µÉÑpátëÁÝÏYw äÑdN'#oª’¨¦éD†i45¥'­þ¿ç¬¾Pœl@å8Qà®â¤”kWâÒÊ‹KŠù…•On âöÍéÓɈƒt}«2´- •¶ã_½oÝ”_à>?ótòÇ©#ÂúõŒÒëi»ªÆVí8sô eå¦]þ®¤®Š_ OÕÙt=Use'ˆ~Û¹í‹ö ýh=ï‰ #týÕ3,’4‘ê‹çm'¿þ¬5o—˜ghhTR4Öœ?yõE)]y‘u`»·l9õ§¬¸÷bxî:—?Èá g¤ž¤œüÁÊ è½Qõz.R¬×~íKR´Ä°H ¹Tì ’«*Ê#$€@H $€@H $€@H (A@«D$@H $€@H $€@H $€@ç!€DÇV¨)@H $€@H $€@H $€!€DŠ`ÄH@H $€@H $€@H $Ðy`Qç±jŠ@H $€@H $€@H E`‘"1$€@H $€@H $€@H tØAÔyl…š"$€@H $€@H $€@H@ØA¤FŒ $€@H $€@H $€@‡vu[¡¦H $€@H $€@H $€P„v)‚#AH $€@H $€@H $€@ç!€DÇV¨)@H $€@H $€@H $€!€DŠ`ÄH@H $€@H $€@H $Ðy`Qç±jŠ@H $€@H $€@H E`‘"1$€@H $€@H $€@H tzÙªšÌ$Ý”@£© ÅÂÑ™ÒÈœ©ctC¯K Oì®#ZKãåÖºªóÖ¯ö¿iÙ´«ØÁ+ •ã Oúk?F±Å¤Ú›ô OîÑ5,<<\§±ÔÙJ:ѼÿÍUÖ|æWÛ~ §gJK'ƒcšêc…Ž}%~ô|N¤‘%Ïg† ¹>®Kz¥Åf±7Ö]lýùû/[ÞÎÝjóÂ#GOˆ¼4• §—âG‚‘ˆ¸`šNžûcFäÀ¤(ƒÍfq4Õ\°|ýé»M¹y…ü÷O¯(%Ú]v9ó$.ÖR³–jfŽÒ¥§1\¯¡þSYZÒ²ïíÅ-ùûÁg¿ÆÆ rn_1‡Ÿo|<IcE=ÙWìUÛô„»9‰¢±„p¶°üICð2ÁÀDØ'L$Ö/ŒT´‚ÖŠ=Y82©W€<…’[Ï’<¯ˆ©ÀS0!¼ `=ª¥»CŸ·Räøü/o¾¾•sÇ-£éŽCÊŽÚé¹tsß7‚´»¹Ã«øÞØ–¦øò¢Àýº½ìàâ‹¿H +Œ€†æ§š'sæ_4ËçIêN#ÐØOÙWÈ,/à,l-úKü{ïez²îø{5²Ö4y_‡ÊyÇ‚GüÄÛÏDžÝ¾¡Ë„~]»òÇÄœµ‘ïÞ\Zþàº"»'ŒÚöS8½ôµdÎèäš¡ò÷W^˜ºlO«'oÞ{©s7hŸ™eNŒö>Ývd#äÜ^ögw‹%TO¨]æ`l8xÂ4]Æï‡ÅwÓê´7Íx&1û@QY®»•Zmû)™^yuAZ\íøb¶V«Fp†ÆÄåoè—ŽïÛ“ WWòimÞ¶GÏÒÛÔ— ¸ù·ºÔá×Äx·lCõ„ÚÑŒéz:åð!RýH(ç3_ÔcµµÐx ÄAë„¿”54:tf°™×¦×7k˜:¢{Sý~ çéÔp?sgVÚŽË~–êsMçëmVÍæÐFÇ…%ÅÇõQ=ÃÍ3–$¾Féó3‹²u>ÿl¤¶´´þR›ÝããÃ’b‘]z Œžžójô ë–zËISÍ;´Õõzæ&7F¯×´üôK3÷(ܤì+TÎ3(Ü•lxï›£Ò ¹¬øx O—^ž_1õ,Ohi{rýÈ™š*<¥eLfh%ëÉPUÄÚú¼…ɹü]êó*GÀõH wµÓcÕé\9‡2Ê ÌàzšænÑn›uS"S&VÑ2áÕpGŸGÑç‘‘´W)û“×E`QLQh?é8…ëžþgÞY\qon‘¨ú—t <‹¶u¹«Ÿ¡«ò3+Ô»_ ó$v?óð‘¶Çµß|j¿bŽý¦“W vK"µÍß[KSée^JÞß0‘Ö»ëÉ;³Ç—åzU ¦“MKtJß«èüw’?{jÙFîui ºC§f¿¡[3¥/AÄ“¦;”ï0¾Ñ(z¬œ™É+lŒDë ÎdmäËœ__¢H«++0ž.iϯ˜z–'´²{üÈ“’:<=驱§\=ª­X»CŸ·09®¿KyAåàõHwµÓƒ>dè zo¤_!Y½œï~-#0ã@Hàª! •–Ót2*õ†x¦sèÒéC—V˜\þÜñK-ÒâðýFÑOu®³|Ë'¹®ùþBå|ã¹zŽ¡ö+!‚C ¼}ï‘3 :f0£¤Mmû‰N/s½&“v1³N•6sÇÀúåoí}#º2CöÒ}õJt1 ë ·C(ôôƒqÕœ€ú yî4­sù zRø²wçcÏ.‘îÑÛ7Ü1ÍkÙ˜ÝáåÌ+‡¢üÈLîÝY¥”üòCÌùì­ŸÖ1‡6E{WvjÐe”×–šý Žé"ÕŸ5­¼*:‡è>åÅÅMÚ/ÌäèÙ+6š-óÖ_Ž5øõÿìÛOÎ4kiG}éu]ªÄ:Ž´œch´ŸtnÂõO\ú0)5htO£ s?{ qpåÔ¼_ ó„Ýϸù€îëÃØ‰èñdË'gØ÷#‡Ö í˹âÙÕ‘ðÞž#v¯x'™{çúÚŸ-ÚÙ”HþÏü‚M´õ‰ Ø!OšÁDèuXþDD,1HÐr–6™\Kë »Ýîì­Ó‘›F¦)Ì«4Œ'ƒ¨z7-e÷…ýˆ“Žê<9i‡lW¡z2T? v‡>o¡r®,AŸGRääÔ#]zJùU;=B`Ï#9zÂÞ ‘[^„ìÀw¿–“?¡tð<@H 8 Hl<© ߨ_¹qþð²;f.d§Û÷¢ß— ³O|¶Ñ.’a^¦Î?¨œLWË™ÐØ˜F’Þm#íjË/x–€ ‚Umû‰Ko:Ùþà­=™ùã?×W¬Õ¸ÖÔðÏ Áùkº,]ô‹|¾#§Á?ìŒ8=yâ²CˆôäÑà*9"? 7nĵ‘Ì%]õMÿô¢iZH¡³o\¢ŽøÆy¦¶£PÙ]¨œ¹”`Eú‘9ôeïõäØ^‘ïÈY¶ÁŸ>æ±â[@MóȶÑÎ{^|ªFÔ^9ì¨ÐòbN3³™þ¹ÊoMÎ04œgƒùTO6]«s wXÒÀ.téïêö+ö{‡õ´¾ÂY’É;µ'´Ÿdúàzä”ÚI@åûµ0OØý,TÔ¢8û|¤•s…ow'yó`e5s%fÐïºùÝ'ùDÚá<@eE”³icorvµ^<ÚüYIK-“R”ÉL2tb"ëY¡S€û‘'ÑÎÃÓ£³ì=Qõdh*í}ÞBå ÙÈɪGv‚ô=À\ä¼7†¢¼ܯÁùØE@W‰DÅdÕ¢g¬ùî5”À•IfŒHf—òj:õuƒoû§p P9á¯ü+¡°!OçL42S4–Ÿmïç‹\‚Amû‰KïémóŒýèÇž™A³6Ù£"‚>2sæðpfY=mó)ká."2ßÁJ™8=ùb²ChôäÓàj9?â§—F®MŽ`;Eª~:ÚèÛɱzÍ´è8*x¡¤¤Ö9Õ-ŽŒœáœe*» •3®þâý(œý>ó• 0Æ™x·Fâê¥ÕÅ÷7Nç ã{’®…½nvw†Íù¢Í•+Å?X|#êdÇðòrÛÖFnذ!yöýɲL<?h£DÑëñL˜µa;-p þדI³(÷#[9ýu„÷Ó=½c·‘¬ÎžÍ%{iq½ç{xŒn…ÚOª%ÄÕ Z­¤FÜA«}¿Är? ÆH£½k-—m“yëÃ#VfÐ#Sê~>Ø”÷…ó{JvCß°1¬—M|=K:)qüÈCçáéÒX‰_1õdh:Rí}ÞBå\ù‚>ÄËÉ«Gºôÿ«vzŒfç\O9ïrË‹¿„î×ðüù§g@HÀ—€`ã·oÀPOÊZ©y«èñø>´AžTiZ‘µ^Ô9¨\(òpµÇ™šýºnš©K7fÍ[–^ó}µí'6=fýÜi¦š—ròZFNÀ¥å»§$F³ë“[*N5¹ÛŸMidÎÜ'µÙÙOèþ?{gE‘6üš#“É r±#Ž˲#‹œÉr( ¼ áp ò)Q× "â’°È)a—ì¢A߬aeÄVP *ˆEQåR’0 Éd&3óU÷dîî™îêžÉÁ3þ0ÝÕUõ<õªª«ëÌÌHeèdeÏ1\õdŠÁ—ÄÖ“I>¸ˆ^ G¯†À'$W\´“Ш³‡R¤j©á´iýü‚Æ*z;j¨Åö „Ý}å3;¾åÈ~à‚‰­Äiœ ¬Š(Ù ]Kv¬W4‡Q½÷¯Ü'ø\0{ÚÚý_ùekæ³M_Ö üEÚ¹qŽ•h­‰Þ°w‘: çE™þ”áÙÌÍœÞÕ¬¼èi‹3½v¸Œî M¼7âØ<T¥$„¨©É ÿàP‡³êLìÇ0ŸvAüÈgÔ»ví겫`§ê•5ÏÈg¦ø\ÈU…€û f}͇gÀîW@&zx|5Ï;øV ï¹yGt¨šn¨Ð-¿íYýª&Šéã©§|¦ICýñ™O™ÑŸï2êò>·TÓrThèØŒž"æo;KlE8—£ÂSL>\ÚɤòÈìNú¾% gKéûˆs8ÁíHžV¶<žê9¼ ÐSØw£°üâпõ‚µ¾>Op€ÞäÞNsIÆšëfÝk6šÍy¨$Ÿe„çù¢ª“»¯O}b+ëYF¤á—ˆ™" ÉÜ&Y=­o u]q,¿Ší×`ÛL^Ú8wÞÞŠ~~{cE>•(??c³Ù‚wUGƆZº;{Ç>å}ƒã#íôTðÌG7Ÿ<øê…¹Åö~pG¬dz:‚;.üÙA¨žAp|x Ò¾ñ}CMƒË*µ ´,½?ί-èóU—¢d°àM:‘U&SERÿf±íî/ŸÙàð,G¥§P•1Õ¬V¨dCÒ&ËQéA·A0*· ¥)² @þF{¨³9Ôb–2Ë-7H ¿P3—,-¬Ý_‹Ï­˜ÿ·¼È/'eÑ’36¾B ¼ Tv/²¹µšƒì =m"®No‰Sí©zhT¯hYôPUö‰ÛöƒúŸ ù‹¬)$Ó B‰Ø4I»@N·¥RD÷R%EÛâMÒ @Ã'NG®:ÛXüêóu/y®?e–ÏÇU*ï*IÃÛ„¢[Ñs Û¨+Bx|Âï/Ðõ5 O¿JÁC2ž@·dÞ„ž1ضµ§w×ÌÛB²]f9jhmð9׃Kòº%¥JRTje_%**ò?”%NúâN„v$/K[/å\< ÐSèw#I~qÑÜqé³¾>‡¸@VA B.ç¹v¢GJëöïW$µÏ=ùŠ‘±áMŽ5Ùð@0´µèï ´qTçµ¼N_^ÈÞolûÈ[½û±ðü!Þrù}ý~Oü­KùñäßÎb0_'ÂrÔ6<ù&N$ÿÛɤ҄Úô}Ë/éûˆ œHíHÎö¶<Ίyx$ÖSœïF~ùÅCwêÖ_}Mœ>¿ó ”' €À­G ¨D%¹óÌ£rQ¹srz–dÆôTÕ°¤È®· Ÿõ¯½œúTgßi8»ø+2´Uè`ö„xªW öä¿®O~⬫¿(ÉÁ¶_yÚ¥oJïM”GP+vÌYÓÀ–…R[#â_Ÿ©õè«”†èϼS;É}ë¥Ú%;6ÍÜ=²ï´…1+Ž—»~XòÕÓK/Nv®§—\ph[[%ÓðVˆT~ÍŸÿ"uÄ€ÛÏ6 $¢Ý9å3<$ETŽÚš™Ûtgñ¼%\TØ„eqwϽÜP©7·¨c•q2%µ]Xþæ¯+ïÏžﺒÈ-ÑômÝ2“>w¨ñÌžÚÇóMÞ~o!NùÅÉCW¸ÄúÏ!ïU-­ø`÷ãë$]¥x"µþtaÍ#yÎAJg‘®xê©ÍÊ“n™74V†u3UœkЙ­”ê¨áF}²·Oý²ôõþ籋¤;DÛØÿvA)ÚðD©g¬iÒjŸÉú“bòðÛ¢¨‰<·§>³ö›âò¿Ú{½™Åórµ*MËo6Êd2·ít%r‰äʯU^«¦Ý#N}ÍŸ§»–Á¼³nšn¶X­r¹R¢TÊéíÌz%/Œ>TзnÑüç¼Î ¦nî²Ì¨®ìR}MsˆE&³ºÛ¾ù¼…í¬¤¶IŸ|–‰†àm{©´^:~Ô±êÁ¢Ò–''& 5þO˲ÒÙß;îö a¸Šò ‹“—¼žsl'{…ãè Ôî¤ï[þáHßG¤á<òlGz„ælyü5´…धðïFþùÅ3A|êk—°œÒçâ.@€•µQ›ýJöæYŸ˜›zsñÛg+¨/IkôÕ¦3üîñL®ÍÚ™kW ÷²'ÓµÕ_ü«ÚßàSÒƒm?Ÿò´ ñŠƒ¾~W´ÐGýº¦æ:Wi¤? åøC^Öð1Ç}pˆö¼õ±<Ãzøîè÷“|ïïSOWÑÔ5g;ˆ¯§§*p@¸«Â¶jF…zÑàØT°àQ”ÛO¶W1­©øþ[œ/E²;×|F\Ž(vGPVêâÚ¢Ó¿Ö4áípºÆ&†k4IÝâ"òºîÓºõcgWæã'ûl¶DÆæ—BîÆgH :ÓŽçÙÐrm5q~qW·pùÓG—›õ”«¯Î1Wh\ôØ? î¾Ü ÕçË5ôàÞ¤¶â“†ÌéÿOŸ™ž\_¤»YGi‚W6¼²?7B€†4À~œéòj¸ÆŠ·x{áÉ?ÝùÍUÛH ÏXîêEèuKùñƹsçÞœ3gNƒë¿Ùé³ë—å—²w¦bÁmU_ó ‹CøËïÿ¥f„ ÕÉÉ£«FÌ_\ž_üu%ž,"4“ºíܽ>œ÷‰Ršþ(²õ CâyxiDGWfÔÏ;ÛÛöó³ÙæEOùä3MÖp)þÀ¿ tÜu2Dé~ô#}>B½õÞUƒ¾½pä)¨å[¾O¹”£¶ãÉ/5É“2e ,ˆóùoἸ4¶h¹¶“ÙÂûsjwÒ÷-i8¦ô¾|…ÚŽdÒÓ—[°åùÒÅ×3b=~7Š_8Õ×Äéó ž €€@›Ù•(ÝòåÃ2 õ„z Ãù#ˆ4œ].üåK ýçÅé1Q8XõùÕSžü‡‘o ®þƒm?&yÉ“ÆÉ¨ôP¿ó^ëùñÇǸþûŸ$eWêÙmS×GSîŸÿ<ö³^»î#“¹ÅÑrùãÿ«eþ(.Bß\i¢W%)£âýîEÉbÒ“rwþøÙ!Pz:õ«€¸RƒlK„dH­î*Iåi…wøHp§ø¼Ü—Úñ¨KëŠ6».ÂíÎ=Ÿ )G6}ñìÁÇfRFþ¡";{Cù† ÊçUž6ÿ™FzÂ{Lw¤À%–ZË/Gì)tù‹·$ø^ñBmƒöõ® Õt—Ç·Ì¥€üâÉèÔ…ǪYh¸´—§!÷‚ôÔ —WMïF¯&ÓgX5}…Þ¾êxÃüñïœÑ×RªIcÇ„|e•mà×®€ýHÌá¿]À«.ÿqë—[èÁ^YÌaTÛE¬ŸDâ{Ö=› vP_“òdK’îò|¬ ý§+E;×/4O|鳫T@žøÇˆ¿diù}³õŠD¶Qr¼B¥æš£½jAþW†/ÑÓç/<óÙÔáwàm£ñÉŽ—Kõùnqëл_UÐߍ֨á yÔ¹EÆpçðvƒhN¾ÊQÛñä—¨²K'-?è~¨;sæL-Û¿O~wye÷v2?­œ¾…Ùô}KΩ7Óéûˆ1œ v$“v~Ü‚-Ï:¬èIþÝ(B~áZ_ H+3x€öIÙ‡¶º¨¬3´ ²„G)¨¶·½ÃÇŸ>¤áüÅ Ï= ¤ W-Žì­0ËÏì®òäNAƒCö؃m?Oy7MÜ¥Œÿ3š]:ÛíÚùþkl²8΄ñåÓÚ"¡?Ìãã©Åœ¸yêé,üíH=}¥ž‰@@÷%ªj˜oŒ 7+¢“WF<ÝÏ^­Eû7® ;üÒ‡Jb[Ïa1´®vfwžùL@9r¤¡õâÈïá‡ïý](µM’ÄxÃü­g|ÿçe“”Ô€¬ædÓ–[yk9ùÅ kúKÛ¹C­®ƒ”ÏíZÙåÈÜ7Ýü‘ÞÐS“¹\2"š:ÝŒ¾|íÑZÏñÂÍ™‹šz(©Õd=†Œéš‚vVyú!U 'ö#gÈÞ.ðg#=™¥Ý4÷ÛM}MÊÓ7m‘ŸîÝm=ÿØhã Üè=dð.å±’Ó¾ÞV~t9ÃPd …E'(}¾Eók¤¡¡}”xnºÉbRÂë6¹@¦PµNðŠBHÕJ·ë¸Ý*[²Dlg±‰ qg.G€gkbu…ë¬ [çbñÀ³Ì+nÏìNú¾% ç¢5ë%éûÈ+œ€v$«r¾[ž/]|= 'éw£ù…s}- }¾°Á3 €°h7_ŒŠÛæ‹Áâu¨†k‘†ó%$Ï/N xF좑=C1Ïú“¯]ßúë„–œi}bB’¦tÝ»æ\súê}-N¿¤Wäz&ĪéYôK…¥t/VÒë§C…Ÿ\Òß=­O˜U*—öðzmIìGNŸ­]à/ÆÖJ­R$ ÀþXþÄ{ßxæ³ôdIbë*l‰²KH„ÙG×¼Äô>c-¥wðz@‡À¶³Èg,G€'yŠm!ù¶“Iå ±{2a{)ïiÒ÷‘w8òv$™-‚-LK\7ý»Qx~áS_“§”(„@ÜJømWà‡ ù‡§ÝJ/ío.?ÛÈ}¶/i8? ¹E³ÚO³MÖîg;[üÊ ñ¾3yØ/e&ÊÌH%ÛÎÄaOòalò:{?°^¦ÏB(nÀ0[ÿ¼G8„& Þx&;BͨüR§Gø€!æò@j‡€éé•XpÀr ;ùú¿üä8,™ ]»|¯É=B-šøÛz+DKÙ™úBûCR»“æ3»\Ë‘ÿÔ£äœGeèsjQÉk…iÇRâPwzõT#úþÃ}ÞÏýÄßÙç—V¹ûè;ÊdúS†ì'^o.Î}ÀüÞà êqÂĬž›X7âg&ÉVÈõ´Mä¶JeRºÑÀ 6Üeç+gáaðNm@ìG¥]à7²L¤í£À+#ðÈÂ¥ïê½×gú@\í¦¾&ãÉVŸ‰ É5¶…h@¬”>;Jñg΃C(múcRÝ.8÷þþºö;q‚0}®ˆ˜®yæ³‡Ç RÐ5SÍ—M‹GŒ(Áðo÷™FzûÒß ŸÉ$³¸‘´³ÈUg.G‰'#1Ûɾuðpd¶;éû–4œ‡R^·¤ï#æpäíH/Å89ˆ*O»³½ˆõ$ýntLB!l—󬯉ÓÇÉÊà  pk<@Tf´Ã"±´X˜÷çÅÝÝ+$«2“Y;÷—ìX£Š$Gx…÷Ñ·6;¶°! wk›”_ê¹ØõŠiíô®GÎê8rÛÝ3ÉKßÛðTü‚…9qÇñÁãlÛ?¿¡ý_VÕPú†jÒºå1쟻ÿO±ø¹¤âXÃ’B=ÛXOB; D¦§§àž§räœk¾Ö¾n=¥—±v M^³BNm?Cm¹õùîç\fµÚ8Ÿy$Ç­†¥Pk2·IrRc¨¨jOî½þ2S/W½§Üö»åG‡0òü‚W¢mÞ2†îŒ¬F»eÕØ'lœûÒÍ RŒW…Æ-ßã¯sŒKy Õ³ä›ófÛáH±èüåxðÝó—2'ô‰¢]k®4µy‡¸§z·ø=Ø9· ´hmN–Œ¹ MC¯/ènÛ~´}Tð"ŸúÌŠ u R}MÌ“!}\ê3†`¼ZL×ÜÂhR¢×eDÚ*³zTú1à Âu©‹w:æ¼òoÅGÙcã©ÎC™¾Ô°nK çv»›"ߦH ^ùL‹þpg7zµ¯B¶¿÷<ån=ú½jkX¥½¤)™ÖoZÏpùž¬Ý|v Ò¯;â­„Xò¼cfwÙ»|­itñö¦»#CÆÎÛû΀®üü'£çíQ)£»Þ!UR[!½¹"Çqf ©ž¤v ´'Ñ“=Õ·ú²räIk¾¦¶ ÈÊÙWóÞ¶iñQ‘Cöú·äƒ÷?ªÓU…Z»W9z`4uüÒŸ.¬Yæ±å‰Ý…ä3Ï4r»OCÙ;VF'\×¾9óCÓ…_ËÍzƒõ}_èøÁñ‘Ô æ&®W&ãÕ,LñiGÝ%¥{v˜Þ’n„ùŸ;ôĨØh ÙÙ·×V¸Æ¡ë†VÞ09^­H’=¹wƒzOz6}h7é{…8_=‹Šf­›¡ í¦x÷cŃ•Ÿ~rB¦Ìh‰p·2ýxå³”)èvz’M#úÒ×*äÂcÖ²G†›{+d2ÍîS¢|]§_ JTŽnžbµ“¹•Dú¾% Gú>" 'àûˆŒ(aûÚCw»“~o’ëIòÝHœÏZ¹ðª¯é0äéó0Ü €€žDuU‡‡„âí~¼÷Ó’!UÞµÙå×¥µ×®¡âª¥Å ÐðžŠ;†õìqǰQ.¾ðl¬†rãG›®¯*,u;O€4œ[äpãF€Ä~nð¸Ë~Õõ&”H÷ãCꯘO1 Qj‰%)‰ö ÞÏJÑ’Ô͵yž°V¨â†Mì±`ØD‡7sÍÙ¦.}¨¶Ðå =z:{]ð×Ó+ pp£qÍ×´ÐÒ\4%ÛT¾wõ¬˜„ˆÛ”feÆRBö_Õéwj¦>öO†UFíËîÌåOj—J¥]îT¤þÙEÿmF—޽]õÀò<ÖÅAá yëL^æØÝ¢»Unxçç¹Cú3»kÚÂp÷‘uèùw“*×Më#KHQïßœa˜¾Ü6£¸<ðÖÓfÀç?ÚºãEKÚàèHYdß°qÓð?‡m­¸Mñ«ñÿ¶æÐTÎpÑn€ý¼MAÜ.¨¯CµxÂV¬4DÚ#áv5õÏ5v«¡ÒôÙž­×ŸÎk«H‚U_óÄðˆë3Wðמgߘ æëW/ßü¬hÇÍ\ï#¦èmƒCfÔ¬¿fÐ}þ¡þÅÕy-.MO¦ „ndïZ¡éã£,Ÿ|–~ßPzi™þœá}–ï ›ì=è«+Y ½ñ¹¤á·ÿ.ï¶*Ò U2žl<ÄŒ¤µ=O62íÏ×w€õÙìNú¾% Gú>" G1!lGúÁÉþXy|ìNü>"֓컑(¿´RæS_; Cœ>G p€ ¨Žµ2÷8iQFV²ôŽ^ѲxY…R&57ÔšÏ~uÔ´¥°Øm`È]8i8÷Xà®­ˆa? ÊZ“%†FÔ<@IDATk’—ä/7²íÿ@'Q yd¬´éY’ûG ‰•IÌë¥Òÿ6¯ËgËÛEO2Š >ùÚŸ-Ìð>Ý&S“µáÚ…–ãû_0íñY&laùåO»¼àüÕhÓÐèQC¥ýcåj\~ÂB$’Ú²s¦ÿ÷SQ`z¸‚“°6—Bž_‚«:¡žÚ™è™é#C’z†Ëåx£%‰¹ÆzéÛãÆuy{éÎÁMHãMì猼] M›‰F$ëó›Hy¸R)mn¨2Ÿùê°)¯°ÄGûÚC|§»%çÙéP@‚€1(GÄèü$ùð)³Ò÷-A8Ò÷i8[‚ Û‘Ì´8¸ ‘D»#r=‰¾ ò Ø>¼§ÏG¤ð pËâÑ-Ë€@ €@ €@vE@Ú®´e€@ €@ €@ NˆŽ €@ €@ €@ }€¢öeÐ €@ €@ €'DG €@ €@ €@ оÀQû²h€@ €@ €@€€¢€#@ €@ €@ €h_`€¨}Ù´@ €@ €@ €@À ÀQÀƒ €@ €@ €@´/0@Ô¾ìÚ €@ €@ €@ à`€(àˆA@ €@ €@ Ú j_öm€@ €@ €@ p0@pÄ  €@ €@ €í‹ µ/{€6@ €@ €@ €8¹` -JÓÄàh*QQQ){tš´`ú8ÙÐ;±="B2$56ÞlÑW_5}uômcÞÞR+c`ÒpŒ‘£®ö£R¶H)½«_E|®! …B&1êÍeÏ޾½Þ´‡ÉüÁ¶ŸÈò4)ihp¤URsºØzDçEÏÃ!ålÎrgT—.øI³ÙhiÔ_oùå‡/›ßÉÝif“œ¹J2wü.=U ¹û¯*Ó5ygesá¨n3–n’ŽÞ_©’È-”t§ ûV¾`b ªMKCT)õ÷kÔ!ÿéôË-øœO9‚G3½ðLzØÀ¸p¥Ùl´6Õ^3~ýé¦ÜübæúÓMÏüIRÞÝä9oø•#á‚e§ŠíûJP~4¾v ÔSHý) uTD|Þc"Šm—Qi´iˆnNûÑNWT„|5G’3–JfŒû½2¡§:T†Ì¨©¶Æx᧓ͼgþ~× ´4‡†¨±²)ejå¸xuÔ .nL—:T$\QÄÔîil¬DWŽ”úàÇ”>&%mnb´™ÄÓ“£Ø“ãû‰û‰Øžð­¤ûS1êÒö‹»&î|}}O3åÏ@ÛôûÝÞ?à'í"•w?R÷˜°ýB¬y$å_;‹)²§”­þ䥧ÈßýìÚz<`˜xÜòüŽs™Sý‚ß›®Ñد½l'–8êi×µ‰Òá ÐéHpŠÊHS¥Íx^²fḸî8‰å¼eýÈŒŠ"ÆÈRÐÎ’ç£(-!Œ±£þÌ{µ“276¹?' ç Ü1àn? zn×¶.“’ºveމr5£ïß^UñÈ–‹ÓO°í'²¼´MèhöØøPœ ŠÃë®M_}°Å™6÷«ä¬mÒ¿ÌÓÆªÝ[ïÌèƒìQåu¹Ñ¢vo ÁäJÉöª™+ MLÏ&½þ·…‘ý#Òûy5:¸aJù:·‚˜‚ >Þ£QXeÞþÝ]ü¥ÓÝ7ÜQ¸—#a¼´™Û$›hãT ј*N4,›þ”ž­{Ž_þ$-ï ŠQN<Ê‘[ <ÃËn:¶ã!ùEH²øÚLOõ§ÄAXñð~‰'º½Æ´r÷gáS%Œm§ÎLí‰Ö§)O¡7—Ýß½o¤,Ìéßy%½üž~øœ N‚«”Uèè†Ét»È;´Ý,;[ð_¨¹È{+9glcj/¿sUBÊÕÿ>ý¹zïøù¸øn÷´4\3ž:øjÍâ-Å.mVÊZœ¾ ,éó–/¼ÍDª'¹¼SÁÍ…Ì~"·'¸©Š'´ñm'³D̳‹_gÎïMåϯŒÈ¿«Èò £íÖ‘¬ýBžbyDå %´þä­'yþ$·þîð=F*—ßwœ»Îõ òý>rÕýÝ'ޏëiÓ¤-ìàÊ®‘á "-ÊÞ±J™68:ÒEb4›í7^U(¤¥ÉzM÷]Ýñ/¾0üpöœO6Dá‰Zɬ¹éê߯†…G œÒ}ÿšs¦é«÷¹t“†óRÜðµŸõÃCRCéÌ·§o|õýÓ/Ê­” Oš!K¿oXt7©Lz׬¿Ä®8VRžë襶ýÄ”—‚^_’о¨_‹IºBcòš·ä«&öéIùÓë>­Ë/ØÓøí„ziú ~¿ýƒ,yÄmî#=ôò¿umUIŒ•æcïî­:xìœÅÜæ<:«Û h…ªWòÂè7–ž«xhK©{çÒ¢¼¿-ƃCf¥¹ê»Æ·^}­îÜ3xü iÆìqÑ1Š(Yêò]1g‹æVî¡jýµX$8«Lb1Yš[¬Œi‘)d²†Æ&Ægöxà¯+¾åÈ5,Ï댗$›ñà5XÙ|ùSý‹/å7èP/4>mž|ÆÄ~=U±#Â_Þ½Ú2zίÎ?’üIVÞ™ÒĽ¹‡æ.ˆvpW²ýÞ È/ä‰"°‘žBêOòÔAH1 ½ÇÄÔ =Æe27ã÷¯Yq[ë×ò†F«ÌJMârûÉå Õöòú¥­E‡³'ÄÛ&©Ô£ï¿{í@QiK%R£Ä!C$÷$W ö Dà€eq0ªmTWVV£µ=¡PG‡ÄEªÂº$ TÏÌ~]=èŽU¸ýâ:a2Ù›÷îa]µÈå’æ‹¿\ÝH¯íícÍ•¦«õf“Äl¶JÕQ!qÑ*yxO…vVNì¨Ñ]ÏzSkú|K¥Z†ÔŒ_mCß18Ÿ’é)ÀNÑü®ˆìGúýÀO5wßbÕ/|Ú!îp¿ãùÞRþ¸+åâSÀwQ~qÝÞ/‰Ú/E,¤<¶³ÕŸ$z ÈŸ¤¦ ¶©@„øÇÙeñ¬_p0ûûˆ_P;ð×µìTá/@ 3à=@”µñõicôPK­R‰¥ÚòýÖFw·J‘óŒŠÐƒŠª½@––ZKöæé_>pL:"Z¦Š7µG ÚWé\hAÎK8´ ³ŸíݾþêÞBïm¬JK˜w~¶¶â0žq©Æ¿Ÿ”*C¥Å¶Qlû‰'ïÏ;V(û‡›~3NúK’•­ƒCÕÇò«¦,ßé ÒéJÑ‘¢=æ<„j]ãIÎY+£‡,e–ü±é•ùއ”ÿíu¹û[ÆÄJÃû§/ë9sËœ ×MÖ£Ò¡xpHb¹lÙ4õÑ:ûB!,˲÷ìÚʰTŠÙ°4„öØ:âGèâÕUä–´ÚÇå\ò"@VŽx‰pñœ† Ù3Y‘¤êDã£sžÁƒCÔO‡t¥GZJëÞ¨Ø6«_¬<ñÞˆ7²6>”ç2¨H?©xÉÊ»‹Ê­—œË‘GP®á‚k%Ûí­€üB˜&2;é)¤þ$L™€Ð÷˜Èê´»èZÊ6Ξ»ù&wÅðìÝe“¢ÕÈ‚$Æ_ÌùÌ®ÌwYÀƒÛiÖ½ù[xÄÇEr#:ºrv}®‹¤Y›·jI·¡¸=ßoÖâØ…Å%åÛ]Ÿ;¢eëx&þEù'/èÈ-ui÷̬{µø©îƒ"QØ€©=´[JªóšJס‰#Ö•ûÖ|°)Šj#n^mR /= 2°älG$no•\ÔÛý3mŸdæù—4œg<·Î=©ýðÃàƒÛ‘÷Ð¥™ÑqÏñ"Øöã,/c«$cpD$µºç|™i®®#…›Ù•šEj);Rï:8äðàu¡EŒM¢veD¿þw{•spÈéqÅÎOõT¡²J¥÷¯HvÛ.!RMÏ(6ýzºÁküçÈQtÉ ÅT¡(áŽdƲ-áSœ:Á•+Òrä÷kmÖ ©m{ÀzTüÊSužým=»„9f™÷¿w†ÛöDüó'¥—HåG9r£Á9\píà¦c;¾’_È’Ef2=…ÕŸdéƒPbú[ŸöŸDâ¨Ó¹è6cãÒÛÎfôÅk³¯¹q OæG†½Ä²’§èºLô Ô[;Þ}DÇd›¬7° ^$äþÓjÑoès¾êq9õØÚÅÝ'Ü " rÄ¢Ó„‘·ÓçIÈj~lúsy¥Í·æ)ôçÔDÇ™Ö誅öóÃIò'‹nΜÊ;rä9ŸpÁµƒ›šíø†4¿hS´H‹ë­=ÿ0¦Qcóƒý9dv ÒShýéT®Ú’¼ÇD¤Ÿ†¦Ž´m÷l©8Þ°¤/5mÓßôöñªJ…ˆAìæÕNiSÝœÂ×ÈãðS—' —š…è©i}ð;·|iY­ç„ †‚œˆõDäß>¡ ®_ø´C|jâã!Ù{ÓG„­‚kwnßUþµîh>ˆÚ/)HßòÈv–¯ú“¯žxŠ?Ùƒ¾^^ˆ¿ãU¿xiÈÉÝdzÝœR ž€ƒÏ¢R´~ù_L…޽Ä€fŒ§Ï2j:ÿuƒgÿ'»Òpì1vþ'°BOgOVQKb¨­Mç—r윶ý¸É{º`¡*Ia•Q+‚æå•XÂÃðæ‰,¿¹sG(¨ýþ¥†ó¦â½\;eô¾õÔîõ!¶ÃboDöQ)Yt_ÕL%¹™+ð½U‘${z÷j×¾´aEªšŠÒRVZï<Ê%0¾l1]sw€;)GÌŠ¤ ÛãCéAÂê‹ß6zvFmØ8C…^ÓéêlKÝ¢ÐèY¶Ugdù“Y WW.åO9r‹›GùC(˜vpÕ²=_“ç—{þ´)lÛ¶mñÛ ŽÆoËÔ0LüÀf%oFS~6=6Ž´´‘ ±©žÂêÏöl¹[I7¡ï±[‰•ß´¦'Kq›á3NïÛésų߸Dò°ïÃS&j²—U+š"R¤"G¦RÒuœÔxÓ\É9n|FÆ–ùÝ©wîÕ’U븰p–àé‘LO[,Á\ÚžLüÝ ­_HÛ/þôrNòÞtí.xvçö]ŦgÇu'm¿¦X˜<þå!Pí,ßõ'=ýñ; ³ƒ?m™ž“Ç ¯_Äë/ðe=ƒo&Û€@ ³`íüF‚S3×Iö•,ŠîM}ÜÖœjZ›¹•ÓD>ÒpÁHÓ­&#yÅ›²š.ݨU4_¼¶êšëy9l,‚m?®ò4Y¯IghBqZ*ÐéÙ~;ZcÕôEÆÊóMŽ~M ZµTºbÅ“²ÌŒT†NVªÇö3±IÐhQ½ˆê`‰’ rë`ÉG¯.£GyBñ™3ÇäẔ]ð¡*%!DM ÒýÇîñ#ŸQïÚµ«Ë®‚ªWÖ<#Ÿ™âs¹› Á=XðJ {^¸YqÑ>nHK×.}Cš’ UK §Mëç4VÑÛúØΦ<æO_IãRÞù–#»<Òpöðð_¶f>Ûôe 5™>iäÆ9V¢µ‚ݰw‘: ×K2ý)ó™›9½«Ym"@Oaõ'«F𠨄½Ç‚ªj;–Ú¯·Ô¶[3*/×qœ àDÑ¡jú}¤B´îÛäX2Çè3ÑÃãã¨qtîà[5\ç¼-Ù±^94ÒFM ºå>Çy“…x#ÓÓ!¨ÛK{‘^äõK§h‡Áî\¿«x™­£xÐ~!J¢`yüËC ÚYþëOþz²ñ Hþl6mÙÝñÇ.Íý‰ýÅîdà й ȃ™¼dÜ¡¹nÖ±f£Ù,‘‡JBðYFx½ª:¹ûúÔ'¶²žeD.˜i»ei2·IVOë‹·ÚÀC*Çò«–2wNÛ~dò2ÐÆ¹ƒðFõVôóÛ+ò9ÔØl¶à]z‘±¡–nKgïØ§¼op|$½_bkøÌG7Ÿ<øê…¹Å¶övé)TeL5«*Ù´ÉrTzЭӟ öðⱡô!E­qxöB\Þ§ÚSõШ^Ѳ衪ì¶mèô?ò=XSØÎõœ.k)¢{©’¢mO’4Ðð‰ÓÑŸ«Î6¿ú|ÝËEžëS\c€ë6!€Ç í‡84Ô4¸tþe eéýq~mAŸï|¬º¥ ƒoÒ‰¬2™*’ø7åO‰äVÞù—#›HÒp>¾ È/ÔŠ¬%K k÷d„ÅâóCæÿ-/òËIYtçéŒï„PÐU£Ý‹ln‚ð’êYzÊ,´þ¤7É{L4áí<"©¼«$ oóƒbl¯vWuuE÷ÿ:~úG)©‰±Â|Ö1SÅñ¸.ÊQCëûˆíƒnI©’•„Ú£×ãW‰ŠŠ¸Ùxåp›Œ'¦-™7¡g nÕžÞ]3o ·íx© s¨³)-e_“p8¨ÀÉ ©žî‘û·ƒ»îwBíÇ­=Á]OŸdõKgi‡ˆow²ï*§U„ægLíàŠ´ýâœÈ/"ÈãUDøNõL ×ú“—ž.B„æO—¨Ø/E°{äÌOÄþŽc–âî*¤¿ ³ÚÁÜ :7 !—óŠ\;Ñ#¥uû÷+’Úçž|ÅèòÝë$OÎ\‰M m-úûmÕy­ÇÙÓ—zŽc8%Û~òVï~,<w´\~_?Ó¡ÃZ¤‰UáŽ3*?Sßœ»ÿxĘXi¸µ¡Üøõ7º7Laè¶!CÃûDöûÝ´œ˜7ªœG¡/Z¤OÑ=aâã=×~÷óÕ¿îu¬ÍXó¦üáaÝ{HŒMæE˜Ìµœ8"´ó‹o[¦ÝóKTëÀõ¬úÇ ̇S×#Ýw?Ô™”F©ÁÐb Qw—EGņÆEªèm¢TÑýT3³ T¿ûíúÊŒõ­Y®ÂàºíàUf¶‘Åzt¡´Ù~Odª±í›uïÖyž9›t'.–ZYþ´KðøË±¼ó/G69¤á<´„[âü‚lõ·n;Z±]sõõ…wÇ¡ˆ¡ÊMù‡ýñ߉M‹’ãð°²}ÿæÚŠ—_Ò<Ñë¹Ñ$FýÉS[ð üÞcR¢F+M£ÎÞ6†qÚêÖkGV{O,‘XZ,×ÛaZ˜UR¡{äÄÝÃøð2BEsÊ‹Ÿ‘9öJ͉9‘šãØŠ®”l¯š¹ÒG»ÕÅ7ÂgýýuV¿Xª<õÆÊJ¦I8®ÞI¯ëI*˜w8öãØžà­–G¾õ ´C<ºÞ|W9ƒ Ì/ΈÚÇqû¥µÅ7"Éã^ÄùNu$“gýÉ]O‡<ûÑy¶ëw³ßþ%—(ü^Šd¿rHû\ì/è”v ÀA€˜@PˆJrç™Gå¢r;¯äô,Ɍ驪aI‘]o>;ê_z7>8õ©:Ïþ'Òpv9ðWdi«ÐÁì ñTïEíÉ]ŸüÄ?XWQ’ƒm?¾ò´Kߔޛ( f†î˜³¦-5 ¥÷ýG¨ÏÔÇzôUJCôgÞ©ä¾õRí’›æ îÙwÚ˜GŠË©³¶fæ6ÝY¼oU6aYAÜÝs/7TêÍ-êØDe\„LIm—¿ùëÊû³§Å»®$²ë¥ÍÊ“n™74V†W;™*Î5èÌ‰Ö JuÔð£>ÙÛ§~YúŠz÷ù·¥hÃ¥ž6jDš´Úg²þ¤˜<ü¶(j ïöÔ§bÖ~S\þW1{fìJÃ_ñdl•LÃ[!Rù5þ‹ÔQn?Û€yþt‹ŒºáXÞÉÊÊ"*^Z‚NùÅXW¸ÄúÏ!ïU-­ø`÷ãë$]¥¸®ÑŸ.¬y$Ï9Hé !ÒG=…ÖŸ"i Ñ$Àÿ=&P` n5Tš.–ßl”ÉdnÛÔJäÉ•_«lU|J·ªfTWv©¾¦9Ä"“YÝÓØ|ÞÂýL \¬†›¦›-V«\®”(•òÊO¯ä…ч úÖ-šÿœ×Ù~îqhÐÖ-3és‡Ïì©}<ß9¡ÇÝŸð;az —Ï=öãØžà® ³O¾õ ´C˜9Ú]ù~WÙÃÙþ È/îæN›†2‡ÄºÕC^‚ WQ~a±Ë*~Û/¡ÈoyÊã[Äkgñ«?ùêi(,Úc!øËÓü$ˆøÇY°°þ‚ÎiÎðÀ#@ S ¶"j³_ÉÞ<ësSo.~ûlõÅk¡Ú´qýñæK)Òp¾â„g hW ÷²'ÓÕ_ü«ÚßàS¬Á¶ŸOyÚ…xfh_¿3C[è#—]Ss«4ÒçpÈq‡ƒ¬á;cŽûàíyëcy† ô^üÝÑï'Ù÷â?‚²R×þµ¦ oÃÒ561\£Iê”×uŸÖ­;»2÷ØGoÝ 濆›3V|Ò9ýÿé3Ó“ë‹t7ë(!xæñ+ûs#\5e½Æ[Õ¼ð䟌îü檭ÇI…Æg¬ gõ‚OÂÚféPï!ü›‚ ü!ŠrûéÀö*¦™Ìß‹ó¥üé’L®å´‘†sQ.]ç—8ðeáò)¦.7ë)W)^©f®:Ѹè±Ü} ¸¤§€úS€ÊTDb¾ÇDT«½DÕR~¼qîܹ7çÌ™Óàúovúìúeù¥n”Ö }o•Ê¥ÞÛµµQŠ4ýQdë9ŠÌ4¢£+3êçÎíÆùÙî\˜càãzùý¿ÔL˜0¡:9ytÕˆù‹Ë󋿮ēÁQ„fR·»×‡û:‰1cóK!wG¢0©AgÚÂñœT>º¹ú¢§k<Žk¿vpøäyAh?®í žÚxyç[¿t¶vHÀìî$íó»Êé­õŠ0¿xŇäI™² Äùü·p^\š]¼ ö‹=…Êã[hÕÄigñª?‰ôdæÈ/2Çáå*Ô^úsé;Ο.Ï û :‡¸?@ÎCÀÞݦ)*ÝòåÑÇë'á×{ ƒ?ÖöÕz®"bR4S\àÆ…@úÏ‹Óc¢ðlòê/ò«§<¹ÓÈ%›Ÿ`ÛI^¤q2ú¤b¬ä€y¯õüxž»¶2…‚mêúè'·X©³³ä?´äLx¸ÚdnÁ3¶"tùãÿ«eîÔ(Bß\YÖ”¤ìªŒŠ§âjý‹gé<6˰ß”’’†T¸gGWT„ù>¦;R`ÏK­åǹôòªéݺcþHÿaÕôz»ÿ óÇ7óYïÇ[×IcÇ„|ea2Gûèò·~0þS=µŠJsg>ù Á!ÒÜ›À•D-Ráa"µº«$ý•§C4¸ãM‚çå–´æ%J©xÔ¥uE›]Eaù“Š…{yO&,GÿX]KZþ Ú-íòW@~q‰…¾Ä´:oô'¼’’j¶}½kCu ÑëiO›ç_¿vð ÀõžÄ~ÜÛ\µ`öÇ¿~!m¿Pßí²0»{gú®òn'äoYr)»tÒòƒ®OÕde¨«lR¥†‹Î•‚Û/&í/èèvà‰ ¼ :46]AäJ®²ÎÐBÝ[£¾f󹆡®IÃyÆ÷þ¤ W-Žì;¡Ïì®:8d—lûyÉ3ð§¿f—Îv»v¾ÿ›,ß>lOí3|ããÝÙÃ9R„;u\‡ðƒ‡ïý](µí›ÄxÃüm«GMærɈhêLg3úòµGk=?L7g.jú²Ñ«šz Óôpþ5Òƒ]œ½ƒÇ`Ð}‰ªdFJ\tòʈG‡S;ÝÔ¢ýWЫ;j¤•ĶžGeh]í&,ò,ï¤åˆ4œ#ápáF@@~q‹'ý%‰íÜ¡V׈AÊçv­ìâæGÈXzb¸ÖŸBÔ…°âä{L<-;NL%¥?™mûŒªæÿ+ðƒ“2{SG~t9;/8²9JÙ»Ûz¾õÝÚ{È0j>Ž×ïÏË&)©m~e5'›¶pk9/Á®ôtõî~Ý^ìÀ³=áž^wDõK§k‡×î^ßU¼,Ööžu…ë¬ æ/hÌÌÌlbû÷ðš“El¿pJ½yDåA)’vŸúS,=T¯ŸH€˜ôââ&ì;Ž‹þ~Hû D«'ÚÀü)A €@Ç%Ð.VQø!¶½Ö%ƒÅëP |IÃùˆ1xøïO‡Š0+QÍ©¦gEÜf#Øöó”ç¹_®gÒ—ï*ér?^ýsñ@NÕn+6pÇäûßf¼›ÞÌ{ :{Lô›(z¬UÿøÇ-šRÐÈ]ñ\ ºöUIý£$!VMèJ,–Ò½Ô2"ÏŸ~rI÷´>aÔv3=<û¸iÝÈÌ*Eíg›úÞ:JÑ·åúÆþš. Ut,½ƒPõ±×«¨³¬\éÃ5rj@¡+èPk>Ý* ò-ïBÊÑ¿]Î¥sMuí«üyú…{Šy~qòÃ3½ìŠ«˜ú“¯]ßúë„–œi}bB’¦tÝ»æ\súê}ôd§’+1ôd“Ë\²ù÷àä{,¸)i'ÒŽEçî5 7+z û£Z‹öÕx¼‚®èÊãºP/+™þgCQ[+ÚúRTÛ`2¢p©BÙ#–êQ÷hŸe¢ñwuí†7¿FW¾ý¤Á{UkÄ"?ð§'»¸öb¾í öùBR¿ìñ8×SJGk‡ÛîžßUžü:ß} Û/L´Èå‘”& ¼Ýüµ³øÕŸÓ“¼É;ÍävðŽ‹›‹ï8nøû"í/¯ž¾øS‚@ŽK@ÔDtï% -º36TIm.?Ûè¹2‚=JÒpì1ÞÊOXí§Yˆ¦ëN7œ-~å†xßû<ì—2ef¤rÞv…ÙŽ<äyD a ³÷ëeú|!„â ³õÏ{„Chê÷¯Ç9•_*ã´â(9çQÙzÿþZTòZ¡É¥í4«T&¥ ‹óã*Üegz)‘㉯‹L¤í£À»+ã’KßÕz_št†g 9…=Yòõ?øÉiJ<@»vù^— ø<¸eï9•#:\óµ®ðuë)½Ì»«5¾ÉkVÈ©ÙãÔÖƒŸï~®Á)†0–w§Ü¶»"±CÛiÉäù¡ôÍûCÆÐ¦Õh÷¢,ÇJ„s_ºùƒAŠ;IUhÜò]13ý¨ÎÅBô$©?ý¨ ƒD€ø=$ý:¢˜’ÜÕæUúÝÝwÚò˜µéˆ±½­Ñ2·HÓlßÈŠ ¯Áœ9¯ü[ñQöØxª½(Ó—Öm)áÜ^$ÕK¸Ó57oš”…èõC‘¶ÆR=*ýØu"N«×z#~£Ú~Á"Ò«Ø®íäöDG®_¸¼7[³$ý'vþw•k Ûïµö‹kªý ¤<jgñ¬?Iõ vþ ¶Ýñ©‚Äý ®ùŒºæT¿öˆi.zŠeOFp€xB7?)hÛìnƒÃLòf‹„þð“)Ôô´‹òÎM‡EÚöž‘£Piô¿+gTS[!…÷!œ:-fâìkÆ‹çtõgÎ_4•Ué­ ¥£ÇŒŽè)£;»/λöWG¯6y8~iº•|“Ù/Y{‡Ì6@¤F“7œˆŸì™éÂ{7ÆÌÝHò‘ÚÝ3úÃûªls‹’Æþ>|v Ò¯;âé«mòËÞåkM£‹·7Ý6tÞ–Øw|týàç?8oJÝõ¶©’ÚîÍ9.gƤ¡ì+£®ë ßœù¡é¯åf½A‰ú޾/tüàøH*­71ÇÉxö¾[*‹žEE3ÖÍЄvS ¼¿û±âÁÊO?9¡?Sf´Ä¸[žn*4·'à Ô@нFÅ 1–™ r׸Ìo¡œÛì—xïó‘‡RlçLZ¥*i×p9žPaû/ÞZéúÝaw׎ºKJ/«¶;á/‰žÔ }{¶CÐÛ¦~!}oÚ3bpì.Öwœ]ëÎó—´ýâN àßÄåAX;‹wýI¨gðóg°íŽÉwñw*a¹HëAqìà^á (<ˆêª ÅÛ_yï§%Cªˆ·¯º´~]5T\µ4£ÞSqǰž=î6ʾµ¡ÜøQÁ¦ë« K+,(¤áÜ"‡7$ös‹€ÇXö«¨®7¡Dºw<\1Ÿb¢ÔKSí3I½Ÿ•¢%©›kóöO†UF$ùÓ«øÙË‘oYlá݃oÉô)ïüâš=¶¢ò…‚?«îÑôè=pt÷YG» 1UßtŸtâö”üÆ68dFÍúkÝçê_\×âÖäñŠš­F÷ò(ŠƒDÙ%8\˜ æëW/ßü¬hÇÍ\ï»Àp…¼uVðt%ÑÓ®/õ—¿\Có¹>ZÙýª~;ÕÄïM{B[ÿÒîâ|W‰MÎ@[ݵ_Ü• ÆwYyÖÎ"©?Iô'ºÛÄï]°íŽ' òïg ë¯C„ýBì@\Š`¿¶@[õTœtkQFV²ôŽ^ѲxY…R&57ÔšÏ~uÔ´¥°Øm`È]Òpî±À][Ã~”µ&K>,Ö$/É_n(ôy’òÈXiÓ³$÷*“˜ ÖK¥ÿm^—Ïœ·5Ú44zÔPi¿ÄX¹û ‘HjËΙ>üßLE¾{VlÊig¢g¦ Iê.—ã~‰¹ÆzéÛãÆuy{½;v[“£M›‰F$ëó›Hy¸R)mn¨2Ÿùê°)¯°ÄGù#c¡¸à“¯íñÙ ïÓ]a25Y®]h9¾ÿÓŸe–Oþ´Kƒ¿y~ nÊùé)¸þ nâ@‚÷[TàîB·/žœ4RÖ÷7=CÂPª¹~Õ|îëÏZò÷»ޅ\vvP¿ˆdá¶û®)ކ_ûÅ][Xnß·ö„òx–‡6kgñÔ“:‡•¬ÉΓô/¡hq$vÇ)åÑÏ@š**YAG´ƒJ Ð9 q€¨s„T €@ €@ €@ £v4…A_ €@ €@ €@a`€H? €@ €@ €@Gˆ:œÉ@a €@ €@ €@#DÂøAh €@ €@ €@t80@ÔáL  €@ €@ €@@ ÆB €@ €@ €@ Ã€¢g2P €@ €@ €ÂÀ‘0~ €@ €@ €Ž u8“Â@ €@ €@ €Fˆ„ñƒÐ@ €@ €@ €èp`€¨Ã™ @ €@ €@ €€00@$Œ„@ €@ €@ €@‡#DÎd 0@ €@ €@ „ ŽCk´(Mƒ/*QQQ){tš´`ú8ÙÐ;±="B2$56ÞlÑW_5}uômcÞÞR+c`ÒpŒ‘£®ö£R¶H)½«_E|®! …B&1êÍeÏ޾½Þ´‡ÉüÁ¶ŸÈò4)ihp¤URsºØzDçIOƒÒÒ4žŽ¬÷º"ä‡f&zá™ô°qáJ³Ùhmª½füúÓM¹ùÅÌå¡5öäÌU’¹ã‡té©RÈ%f£¥ªL×|ä•Í…GXÅ»és†âsEøžnÃüɯ݃ÛÇ9{dS{ùí‹ );TÿûôçêùÐóçW°ýVŽíîš`ùÚ5šöwÝíO¢÷¦p=Iò'ßòÇh_Ò|MŽQ oGÁíVï(Y\RPÁÇc4 «ŒÅƒÃÙ³Áñ_ð³y~!æB”¯]SØzÍÑîÄz2ˆ' €@g#@¸‚H‹²w¬R¦ ŽŽ´‘ÍæFû×_ ii²^Ó}Wwü‹/ ?œ=gÁ“Qx¢V2knºú·±aá§tß¿æœiúê}.ð¤á¼7|í§AýðàÔPc:óíé_}ÆôË…r+eÃÁ“fÈÒïÝM*“Þ5ë/±+Ž•”ç:F5‚m?1奠ח¤D…â/ê×b’x¯è©7!#~F ùúQ1P-;·82^’lƃCTØæËŸê_|)¿A‡z¡ñióä3&ö멊þòîÕ–ÑsÖ¸thÐËþÖmD´U%1Vš½»·êà±ss7šóè¬nƒ¢ª^É £ßXz®â¡-¥.u6í&¯yK¾jbŸžÔ^÷i]~ÁžÆo¯ ÔKÓõûídÉ#n‹`Y²Eÿw#À·¹æwC”_l"øÛ=Øå´Ü +ü ÐÁ| È/ä)%("èùð¸A »ÎŠ^¿ OCèæ-5®`O|‡ú«Ey[Œ‡ÌJsÕwo½úZÝxübðøÒŒÙã¢cQ²Ôå»bÎÍ­ÜÓ¡Ò%DYÂz·Ãlí3ª++«¿Ñb¥Û* utH\¤*¬KÂ@õÌì×ÕƒîX…Û®x„èê–C{É3}OŽ12Gþõ’ÉÜŒ*‘·y-oh´Ê¬Ôd:·Ÿ\nPm`Ñ~ikÑáì ñ¶É;õè»Ãï^;PTÚR‰Ô(qÈÉ=ÉãUƒ…ñOc4~ ßÓm”?ù·{0“ýóÓ½,¹¢‘Èå’æ‹¿\Ý„]‹a¿@–#B»Û¡çk{íõo[´?IÞ›Bõ$ËŸDåÏËÔ¤ùš4œ—Ì"´[™#fvm±Hð÷¼U&±˜,Í­ïwOŸ2…LÖÐØäÝOøÚO@~!æB’¯= P÷íN¬'“Lp@t>¼Wem|=dÚØ=ÔR«Tb©¶|ÿ£õÆÀÑÝ%FyåØù•$‹^>p wzËp§7¿8HÃu>3rO™ý4(=ãÉÞB–mÏðJšÃx% õa{¥x}åÌõŶQ?jÛ~|äýyÇ!åüÁŽP>érO6n°|°)ª¸YñóÛ‹+æÑ7ixFP=#HRu¢ñÁ©OÕ¹ÎíÕ.}CºmV¿X*ž³o.®x(Ï6Ø“œ³ÏnLŒ‘XÊ,ù#Ó+òÝ¡ÜýÇ#ÆÄJÃ%–Ë–—FΩpëXóìáYöÔ@Uõ±üª)ËwÂX?>·dåˆW¿dù…ŽÈîí«¼³•[AåÁo§»_Y•1ôÔ¢W?Ø5ׯ6ÕÍèËí_]R¨cøP&L€&ë5iÁ¼»b©wÕzü®rÐÃí‰p{B…šÑÇÆ•?ëöPtUÚQ„„õ®v:¼m2nÕ£wçO,ÏukLÌDy«–tŠÛ×x4*œ?½|»ës‘ROÚ^" ÇUm²z ¡å»JºÜŸ¤ì¼‰ÎUã/æüGfWæs°iú¸òããí=Ú"µ{ð ¢oÉ6NëƒW1”%>08úË~.G¾’Ãjw:Y¾ö%¯½ ’Zi3/¯ÄfåYFì¹ï©»e~÷(|{µdGÕ:GÆNA·Ç‡Òƒ7Õ¿m´ÙCmØ8CM…¹¦ÓÕÙ–.E¡Ñ³¨Õ@ ú#ê4£Û&õö .‘}4KÝW5³õÉܹ#T©á¼©x/×ΗháÒƒ@`Ê‘‡Ö[Òü‚P ìÜòÎVnÉË3çÎâJž_îùÓ¦°mÛ¶Åo+8¿-SÃ0ñ„•¼MùÙôØ8—CÔIʹžNKiÐ=Câ©{ý/Ç›ò¿° aQö 'n/¸S$\‰B $÷#sŽÉªH’=½{5mC{ÄV¤ª©÷•¥¬´Þyž¡ýé­û—¬ÞµñÚ÷á)5ùʪˆ• qô”´½DŽŸõIê%~Dñž,I¤ 7£ÓûvòX±ÞžÒÇöžæFHÌü¨v·”ðñ%Ü~Á)G¾ÒäÃîÄùÚ—¼öò¬mÚŸüß›Bô$ËŸb”?Ò|MŽ{®£ÝÊ]š§ÏÓ5O'÷$ö#Í/¸ðÏ×îÉænwazºK…; €@ç%@Øù-ÔÌu’}%‹¢{SG5§šÖfnmâ3i8.qƒ~’W¼)›¡éÒZòÅk«®¹{ÃU°íÇUµî M(NKz#=›Ç‡ºwB—ìX¯i£šî_¹ÏyÞžGÏŽÆ'©W\´çÐPg¥$HÕÝà<@IDATRÃiÓúùUô¶0ÔígßxØÄ¦™Æ·ò=¨µ#(1VMŸÏa¬<ßä§Ò¤ YK¥+V<)ËÌHeè öN¸´ù%vfy÷WnIËCX1x"ä—­™Ï6}Yƒð;8iäÆÑ+]4ß°w‘: ×]2ý)ó™›9½«]‚»_ ÐÓ‘& õDx ÊŒ~ü|—Q—÷¹¥š~¨BCÇf„8üÁE;$^;\F÷v„&Þqì@^Ù¢AÙªRBÔÔd“|·ÃD«DRïº ;¢CÕt{B…hÝ·ŸuóÇㆴ½DއjÊkj¿ÞRÛ¾ͨ¼¼ãæï=ÍÉ"æÏ@´{8¥!ÈžÚºù³{GÏ×þÌÙ6íOþïÍ`ë)´ü‘ækÒpþììö\Œv«[„ünâG>£ÞµkW—];U¯¬yF>3Åçr~‘·ú&Ê/‚¹ðÏ×öÄñ²»`=íRá/@ s3yɸ|ݬ;bÍF³Y"•„ೌðyðÕ s‹ííÃÖXàO› Í/¸×\l»º¼ó*·¥§iyhS{Z¸€ü‚P)Z²´°vAFX,>¯dþßò"¿œ”UC-ž±ñªã¡j´{‘ÍMPRéi“œ<]+³­\½lþ€Þ–i;:Sõ@ãØh™*fðÝj *¬ñ\¡)Hg,*ƒ«Ó[âT{ªÕ+Z=T•}¢€^Y‹ô?ò=XS(ª´Ž×z×w ËQCk{‚ß9l±’¶—HñéXw©¼«$ o»ƒblYÓUZ£®áq Á¿ý£”T$c…ù¬càh¯÷4g-ÄËŸbµ{º%¥JRTjof_%**u ø¹Ü¿ñµ{GË×\¨;ü´aû“×{³ ôVþHó5i8‡E¹]ˆÐnå&ÈÝ—œî+ÃûˆD÷R%EÛž%i á§£?Wm,~õùº—‹Dx‘æ¸ðÊ×<<í.‚žÑp€èÄ‚»‚Èå¼"×ÎéÈAiÝþýÊ“ Ö¹¤á:±áÚ\Eh·úˆåQ=Ò}÷CÝ™3ßÖžù‰°®þ¢$Û~|åi—¾)½7QA­øÙ1g ÝÁHFLƒ¶n™IŸ;ÔxfOíãù· ÉØ*™†·¶£äçÏ‘:*ÀígðÙš™Ûtgñ¼u]TØ„eqwϽÜP©7·¨c•q2%µ-Oþæ¯+ïÏžï\I¤F¡ôþöõ™úX¾JiˆþÌ;µ“Ü·ˆª]²ã`ÓœÁÝ#ûN[³âHq9œýàf‚öuÃ)¿ˆh÷ •w¾å–¬<´/SENùÅ©‰®p‰õŸCÞ«Z8**Z5ðÁîÇ×IºJñÊJýéšGòœƒÚÎ"]ñÒ3 ÁÛqR’/?êøX>XTÚòäĤÆÿiYVZФ-D#€6+OºeÞÐXÎ[¦Šs :s¢u`‚R5üÁ¨Oöö©_–¾¢¾­çé L¢°à<ë]a¸‡&m/‘†ã®™ø>­†JÓÅò›2™Ìm^‰\"¹òk•½i&¾àv#ß÷tp“"V»ÇŒêÊ.Õ×4‡Xd2«»í›Ï[*ƒ›(7imUŽÚ·ÝÝñ¿Ñ¦¡Ì!±nvöŠÄpå;v}h«ö'ß÷fpõ$/¤ùš4œ—}Ixµ[I„”þöÎ>Š"mø5g&CHHÈK"‹£Â˲#‹’ÈáBð ‡äU¢®A@A–]9—ˆŠ°+»JЗ5¬¬€øbŠAQ#¢( £\JBBB’Lf23_uOæêéžé®îé\ÏøÃtW×SÏSÿ:»ª« ­¼„9ÆÒˆ é5̾_;iøM±Ô‡º¿œ¼$~ÍWEeq}-E¢ ËH–_rš¯%Kwvb1 €@‡" ï "šâ½ÛÏ™|cÑgÊ©7-GÜýÆ Óƒž@*ÇP·$ŒËÑÛ9“è ˆªÏþUlrˆM…ÜéPŸq^ñÓŸ{ÅOkZè#žÙbãqËÜôœæö®4›¬›¹ÎÓÂCšÎ%:zÔwµ ( íœÿ»XÊí‡/Vú­8Âîåß~Ý:zeO^TSxêçê&üÕu÷„䃡_Ä(¤»fú¸vݳ*òñ›«kÖ×Y£³Z^­SkT ßXr}'‡èlyt›ù<}FA4úíDiÎ(ð+bÄùE¢toÃò°ÜÒ@IÊqJt Aâü⽂eS¬\j¦W,*ñÊF[åñÆ…þÓìëKÄH; ÙÕ¸ÒÆ¿rtÌ{Òªd?úž>G ¡>ƒïôßH„É *!\¯¬¦'‡ð&Ãå5dMûŸº¬ŒÔúBÓZJ‹¯Üxa^”„;VPÔ»>6܆bZÏ>ôqzCÚ_"•jŸÄþ[ÊŽ5Ι3çÆìÙ³¼ÿÍʘU¿4¿Ä=X,F­£EA‡ãPª•±Â ÞNó #UþDõ{P#:²"³~ΜYþi?/§±Í&®ÛQ9 –î)_§NÌRÍŸ??1à¿s}W޵Aÿ“¨Ý”ÓNÂòGš¯IåxTI¬^Dö[YÃ$uÄ[œ>óÄý–Gv|E¯øGHÆe®ˆ Î#G_Ärš¯IÓ]¬Hp€èÔ\cÉmÉ’ÍÚßy¬~"þ"¸Ï1´¯†¹ŠˆÍ@R9¶°ÀLôŸg§ÅÇâ/~«>˯šòÄ ).?r§›¾ÞǪb[ 0w{¯çúZ«Òjéùœ›îY÷á¤uv–ºñ»–ÜñUùl·–»qOmÃôå®õUœñ\®Æ¯žTWN…"#»+2^xJcÀ7 ÝÛGyg+·îüŽÏÍZdL=ùU‰È/LcOž¯n¾+9‘vV…E(ûà+w¦o÷"í¼gøÍô¶™-—Jê|Ï‹3¡·¾(¯¿}BB¸#a@Ī{Q2£Æ¼s0 çWNëû¨îóÊiËë\I´~Þ¸FKþ!ǽ£¢• c"¾0ßÑ´9ÐÖr¦ÏQeÃÖe<§pž;Ôê5H÷ô®ÝÏÙpÃÇé(;ÓÑÐþÐTñiá‡ÝI͉»*­Þ¹H9ün²Qù¢)„Ûâ¹µÂ_†¬eŠqÔÙï6ôùöGj˜ƒ›²6õ)Ú©£Vãö2¦{ÚQÉôÃWWÇóšz¯ÉjEQ‡¾÷:ûP0Òþ©œ`;ž@qɶƩ)ø£!=2ÜwP(ÜÇ}žg;Ÿvš= åO¸¸~»uíÆµ–#¶tïHùÚT°Ö1¿€þv8©CÝÿ”ªÝ µDå€¼‡Ë]Dõ[‰³VPÁF¯@ƒzèW~Á…$_;HÓ]„±w €@‡&Ðn&ˆ´çß »ÙîwKĤr‚„G,úûSaƒ¢l:T}²éO\Û§±Ès’;ý˜ú˜ûj3í]¶«¸Û½xUÍ…¹•÷ù¬ðñö™…Æýª{jÀòò×5° ^{|— ¯Ëêo3tÓêãèEªŽ¾RÉ<ó'c¸AMMô tâÔë Õy•†FìŽ?¶£«_׺V myç[óŒ·Ó[Ûqo•g@¿ˆ¥ç–PÕ÷_H·•ÓD¸H€<¿ˆI÷öVÞ™å–DöòÀO¶£ú"Ï/žã Gö ÃõYý‰í×¶ü<¾%wjJ¼¦ß”î{WŸmÎXµ¯Åã—ôJ„©ŠäÖÕ• ]7M”Î=úígLÊðñ¸Ž-ið{mF wB$½µ±Â^n/ÙK-#bþL¨à£‹u·OM §¶ÝêÉ|܉ïCUﮘ?¶ÕÙPÕýh.tu 8Šé/ýÛëüQ¦j~ý,¦T'¹?|k¸Û24ÔgØ]‘F´¯ZDµ)²v!©ò'y1ýž6…ÇC¹˜òÇ#xb/¬éÞ‰ò5iûŸ¡k7¥µ“¤üçmò9ŸšÉ;Pû o»"¢ßÊŒ”„÷šÖëJ$Ã6¥lù…œ I¾ÞÃ8Ïœ‰2P~²ñ¦p€è¸$=ƒˆí&baD·$„Ñ[Æ4—iäÿµ(©‘‘^ˆ3ý дaÑô8Í™¢®K÷ò* ýÒf ¬ÌÉ"·û ‘Új '|ŒP"ЦWû4¢oßþõçßûÁ}¨:5á¶fÙ^Æ£F4á×ñÝ)쥧ë ¶pݦæ>¢@Ÿ3PƒŠ·xÂÜûžã}¾B‰†9çüúâ/¶jFeKy­8ò hrŠ?!ùš8¿¦{{(ï>¤ÈÊ-gyð »óÝç—Vyû‹ê‹'`Tu'Í9¿Ò\”wŸííóæëÔãÞ²{mô݈?(@®ò@jçCc9÷ý¬þ¼iшe#Xþí>ÝXC¦ùÅàˆA-òp.ðr(UJºÓÇ¢<Âkg/OcÉâ±39…ªÞM߈îê§¡ûgßÙ_øi€ì/PA* HÎG\õ§@ÈF¯¿Ž®¯lQCu‹–Ks¤üñ#k§‘Ôù“´ß²ô% XLúÉYŽâJ÷Ðäk2šòK êòx ¶=¤~R·›‚ìôÂÈ™?CXþHó5©œWtÝ—¤ýVwÞ¼ÒÝ[€í: S´xE=Bæ‹ßÔûï+Â&CmsOöãÊ/ä\B“¯©Ø±¥;¹d¼@  Ð ˆž *µPç›Pgž´°ìÏëDbÌ\®X™•Ê9¸¿ø¥Õº¡QàƒA_ßäÞ†T®#&D[ÙÌ'ýPŸøÖÎD=:ÆÄ{ò@ªôK}òUåÑõK’æ/ÈM<†®6pÀ’JGðÜÎõ¼8ÞùóÌÊp{7¼â8Y§â\¥3iõr5õ5)µϧ»ŸöùúÝÀyCÖVEîääxJk͉½×ž÷*Dû?¯¬¦ž…Ò{lË6ú•û¼ý÷G%àçŠò£ ‹ L,_uSÒðã"À«1„ùækòüB˜î2—w1å–¬<0¢“Ý’ç„26í׌IPâƒn«Ðî…Ùî/Ù7ÌyîÆwf%®Þôhì²]ñÁ&]ø”2;èw·ô _†«ðjM®¶ùÖLÕÉeeZ–³ïÑÉ’¾CD§ø«s¶fÚÒt_þ2üQ󗉲ƧÄÒ®Õ—›øx0Cép÷„õ®w<]uQn<ø”û¿µäÜ™D ©êJÌk7óî¿y‡ÛY®ùÔKm×â¼U¶ã• zó„þS—ůÉ@¬u–ÁÈÑl5:”ñÓN»˜Ê“? û=.#Ûðo(Ó4ZbÒ]ª|Mj{¨å¤èò}ÓnJa'Å’_þì¸åO~!ë·ú‡Ì7Ý‘1­ÉÍV±×üéèå¢ùÑÎíèëÑ;Ÿ ¸¿ôÃ}ve(Ð8)1ùÚŸjpR;ƒ‡ >€‡€À-æÒÐÖ9=‡[ÕÍvý¢©ÒFÒÓÿvÝ-š‡Å8÷žQ£0e­ò¿+¦WQ[gE¤ŒPNš<5~¬«– gMõ§Ï]°–VÖ9¢zTŽ3:*%FE\|wÛÕ¿xÊužä‘:&dé—j¼YåüÚ$MZ¦õœ ©ÒoÄðþ®C%2á·³ÒPÝÚÃþFH¥Ï?äÀ.ÆQ¿RÒ#–½y=-AÙ¹ûªßÞ:5)6fhøÖCÿV¼÷ε¦Ê0Çà±wëFŒ£Ž3Bu§ ª—úlÁ“Žr^Z×ûšÉüÕéïšÎÿ\f«3ëPÿÑ¿78)†*ˆ70ÿIø«/eôåÞek¬£‹^lº=&,|èÜÍ oøàÚÁO°hq•6ºûMQJµåÏkËs}ÏBb÷˜Y9b¢ã›¯ñY„ù!’t—»¼“—[òòÀL‹ÎuO˜_ð¹CJˆ£XœycM9s’yþÚ¡•ﮟ”©í§zbïúÈ=9õNn¤åÀδ)è—ôäy#ú<ÐjÍ‚£ŽÒ‡‡ÛújU*Ãï~¯Cù¦.³¥ÝçåÂ?¡ÂGj§ÂzèÞ}´h°îãŽ×.µØ“Ü®N½spÏôŠÜzÿ³ùÚ}äÈ $­w=õh<îŸÇÔä¨ó»\çS…¥Ô¶3wQµÏw#ÁNzEZ/yp¨“§D?>oÛËö«Gs&”±õEÙ|v3¡%Oå×þg{VX_m´jüÒ£‰¿¾û“šâOO™+QJîgPöÛÈ>õï[Çd<-²Þ l ×SòvÚ¢|ù“¤ßã²R¾¿âó§¶ŠKw’|-G¬¤Ð!Mÿ“÷{q»Ij'yþìå4ô[YTñN÷H3y|ü„ß϶W]ùéFéå+Íב£gï~šþ†¤®•@?¾õ× ß¶ˆ4ýHó !â|Í•—¡¼ÂO@ÎA@àBÝ##4ax+ÿ}ªTH…Oðúuk5o(¿boFñ(,¢—öæa½zÞQ oBŸ?Åö{¤Î‰þ (—P¥Ÿ”Ö‹Nw‚|ÍN«½¹JÓÿò@Ön’ÛIž?Å–?ö´&ÍפrìV`WýV¶px§{}-ªÁd'(5Êž½IýóÏa®°~²g˵§¶ù¯&K?òüBÊ…,_{S`¿æLw Ò]#¸ :j`»Tž¨Qfvªòæ>qªžQx¹‚N¥´5ÔØÎ|qĺ¹ ÈgbÈ×R9ßPà®­H‘~”½:[=,Áª.Î_f.àÚWˆŽ¢úädåŒÛð”h­ÕÚäh¸z¾åØþg¬{8âh0¦£Ñ£†*oMNPGF„©Â5 EMéYëûÿûŒµç1#[q祥8,¯°™KþÛ¼6?P”“GWÒ%$_»¸Ë/.)ê¯<éNZþÈä¤(ÞŒ:ß5y~‘—EG±S^*^›qúã´‘š~½"Ôj¤A [µãâ×Ç,k·íõŸ ìô0 ‚@ •îç=1q¤ªÿ/ziÂQª¾vÅvöËOZò÷xW’ƒY;-‡e\:äé÷piï,î¥{»Í×dé$Mÿ“à=@`»)dŒ:wùÓo–îÆôhäÀAª”_Ĩ#t:esC¥íôïZ·Hß&ˆÏ/„\æk²é-Eh§wp €è„dœ ê„ô J@ €@ €@ €è€ü«ï€q“@ €@ €@ € "°À+@ €@ €@ :˜ ê ©q@ €@ €@ €€0A$x@ €@ €@ €@g D!!@ €@ €@ €@&ˆÀ¯@ €@ €@ €è `‚¨3¤"Ä €@ €@ €À‘Xà €@ €@ €Lu†T„8 €@ €@ €@@˜  ¼ €@ €@ €@ 3€ ¢ÎŠ €@ €@ €@ D`W €@ €@ €@t0AÔRâ€@ €@ €@Ôü²{5Qº!?«@……%ì~(WCš?m¬jèÍÉÚ„žQ­ )-7ZꪮX¿8ò†eÛÞ«0©k`àèG€oúQ‚TZL©üÕ­)Ú¤žÝ5Z­V¥°ÔÙJ/œ1ycu[òË~ë3¤¥£Á1Eõ©"Ça“ž¥§˜Žœ÷¦BäƒÔNR9«ÒPî¦LÍ[b»uÃîÍ6‹½±îZËOß}ÞüfÞ[2úˆÃ?!åÈ_š¿‹azæá#t6›ÅÑTsÕòåÇšòò‹ØëOŸ¦;•×Ú¸¼.8r’”HëFT~Bhyh§1=Q½ï_ccº|¸ùUÓÞžàºÝÈ|r£rÜðÛô1z…ÚNõ'L§ÌûV&Öçn·8ƒv>h4¡B iþ$Ž_hq=&ÕG*ÇeGÈÝ%ªÏ‚ÚIXÞ]á¦f­TÌ7¤[/½V­Àïo•¥¦æÃo®h.àÕh |ÀJÅésYMu×Cô>íQ!ï•\ù…#Vy²¹ë· ãu”(•G…¾ÿ‰‘ó6WˆÞr­×B¸@ÿ“ 8 Ðå (0RR ÆÌ¿*V/›PØÏÙ×Ì,/d , í(þkÜ]Ãú;Ö~»fbÖ†&ßç¤r¾¡À;þég@OïÚÚmb¿îÝÙC¢\mèÛ7V–?¼¹Øîñ#wúI¬/}#:’sgRŽPù»k¯N[u°Å7|•¶Y?ž~îãÎqã ƒÔNR9A©Ù[•žkLˆô8y]ÙÐ{9£ÊþÂë%ÃK¬‹_ò/Gâ@³¶*6Î7&êY‚±–oX:mI×äž°to'å=XùCâË ÊNã$&¿ˆ ´<·3 íüpC¼AëP±ÙÙÒpÕròàËÕ‹6yµEl>Á­M 2Ñ+[s[ÒùÛQ…®ŸR¶–½Céï½3¸÷'¼"Ÿ¶½¶ôÞèþ1ªp/W÷¥òÒÛuÃgohp;ˆ¸^n9”­ç9äx8¯ØýIÄ”dET`¯Ì~Üí ©>¹ëAR}¤rSû)¹¾ÔÜ=ª “û0¿=ðS¥)=TÿÛŒ§ëýt ÍŸò¶¤—ß`B}иô¹êéní¥OñüîUöѳWû þ O÷öPÞy”?$®<K€æ[D~!)Ay ´³Å®À“?•¥úrÓ•z›Ua³9”‘±šÄ¸(½:¢—Ö837áUÔXþ Ï ä1I© Ѷ¿-“C6­ò›Æ×_Þ^û^ú5xÜte欱qñÚXÕäe»âÏΩØ#µêöq¢5Békл9㓜Ô£oÞ}ëêÂ’– ‰’‡ QÜ‘:N?Xª¸–[õ|êy)¾.V[3î·é÷].kht¨ÔGq>?µÚ¬ ú²žŸÜí ¹>¹ëAR}¤rž4vE¬Ïêzý´¡ÚÒÒúë-¿~¿B­V4_øÙ,Ì"vßdù¿KÈÜþ‘ê#•c§BWÉê3>6’–wzþÀßzŒˆsè– ÛÑ·öV^ÓñЉ\zÅ„¢òxã÷,©õÞFËøä«Ê­3oM D춨üÁm^/‡DéÞöå]ŠòGZŽ|ÐwÈù…0¾dåÔNϸßZTq_^‰W{3½\´$zP Wš¿³>ž:¿Òý½aÜ@Lz†ìíÊs• °_Â+Ïgû®<Çý‰pBšÑ‡ëÇ–ý©+­" Šš«?á) ËO¶ü‡gUä{7AÃâ´Üú뢞÷Õã²lWq·{ûéº[Ï¿y}ÌœM7‡ÛTŸ+ÞDécØ&]=ÏÕþ1†ô¶íó _ždýrÒ÷?R9„ÈìôOd¾\ ÿéÏ\€Þ”Þ7Á¯ÓјÔÛâ¨É¡ëç__7rJù3§¯7— ìãõâ u.lÛ'¹ž1ÿ’Ê1Ãé:÷¤égBœ“C¼Ão£‹ *‹PŽr§o}™[™xrˆúJë\©ÙçÛR¡qL]þ°ŠšBÕŸ4­å19D…ÏÛN†1ä6>0²;59d/=\“C p‚oIË‘`E´€1{ºÒ¹V=*zÁwrˆòЫ[¸û«èÛîžî³õYº·qy—¨ü*d)Ñ1¤Ää²’•)ìTkè‘^fïAÛ?ºH÷'J2Åë \¶½c"é:Ëúó©¿ùŸÃGÐE³À†zßœ*°Ú~â K¸úÓ7<©qnálCŸmŸu5t“Cx“#푉êyŸ09n*»äðÂÛYîv…>¹ëAR}¤r¼‡á‘\Ÿ iû0 á-iþ$YdHõ‘Ê‘Y)LJ²úL˜ZNßìå݈µ›?úù¿/V2'‡(÷å;>®£cÊdå½ËS©×=÷Oø{€8}nÅÔ…„õÓ鱋Ýsö'ÒÑ=#Û=ÛË5,.@~ÛbIIJšr+]=/eÜø„%w»BªOîzT©Ÿ´bó#·>6Bé&wüHõ‘ÊIÍNšúL:«XË»1 ¥ÐïØõèÔ¡b¯Ó^z ¢Kô‡õ5Žó|kKò FŸ—IIXÏs¶> C~Ó¶ùEO²~yP€„ïÜãDRØ)„ Ž!ô?ƒ&3x@ k8AT‚Ö-û³µ@Ò=[2ÑÌ‘IôV^Mç¾l`Žr'©wˆÿI(Ò¡§r&é©O›¨­MÞÍ/á98!wúñÓ÷ÔÎú~øðsj¥ÍÜmÅöˆp‡À2âÊExÛÍó¢cñí•â—*×òÎØüìtiñüå–›3g„–ÚþOi>g-ÚÚÁ#=ù*4åˆXúeRý²WuáëFæ$ãú Ó#© Âç%žÚ·CÔŠçà–¦ÜJWÏ·XZr·+äúä®Iõ‘Ê‘¦«ÜúHí$•“;~¤úHåH¹°ËISŸ±‡MâÊUÞµô9¶Ôi¶ç!s,7"×׌ª¸þú­>ÈÞÈõy&]= ýóVòë¶Í/Âx’ô˃${ÿ 4N$ÞNa\‚þgðt@tm„ƒßÒ@›œµV±¯xa\_êå¶údÓš¬-¼>ø%•“ÆjÅ›@êò×TÓ ÝzP«S>Û¾òªÏ¾ÇÞ½®åN?¾ú¨}i§Âp\ÊÑ«9¢Z¿´N74ÆNM4Ý»b¯ó~øÚé…’¾ &—œI¯î²TœkrÏSÒÐüì'•Ë—?¡ÊÊœÌ2ÌÔ÷mBMŸHMÐò ®÷?Úêì¡´ÞÊH¥ù”uݼ•ýe¡ko‰P¤{(Ë»Tå/Xyh“t”K©ˆü²%ëOMŸW#܇!ãü¼D÷J´VÛ×ï]ÙçEUÝIóŸ²6ñj«9£-ÂNÎ0éYè¡q‰Ôœ):{ðõjI¿e ¬ž "¶¿[z• K¾;êèm=Ò‘åì|_ŸÖ[I}lò‘m° sÚ¹ç@ý‰É·öU†Ñö7£²2Ït#,A¹•ªž'Œ±˜ÜíŠ8}r׃¤úHåH“Qn}¤v’ÊÉ?R}¤r¤\8ä$¨Ï8B쬼»– Y¹ÞL žw‡6V5(Íié{©>WÄ¥¬çµ.}²ümÃü"%ORV$ï”.R9>v’qþ'¶à®K@-gÔSñ€æÚ™7'Ø,6›B¦Ðೌðw¢¨òÄîk÷<¾…ó,#R99ãÖu²¶*VMíOŽüh~åâöÁ ¹ÓL_&Ú0g>ÐÂ~|cƒß BÒ—¸ŸMa„ 4ÈEf'îl ,G–f›!5²4ÔÐ}þœ—öé~?8)Æ5‘@Å-ëáÇl'þ£jA^‘ë½@H”Áo¨à¹=çàB Õ ^ƒ™hiÆm8¿¶ OwŸ˜MO²Lß𦆸G¨ í^èt_Qv²kNÅœ,ž;¾W<îWÔœÚ]=w3lOÆNª}¸\•Ñ’¨ßSùà¨>qª¸¡úœã;ÛâÔý`Î_ø@uAû0³Í­ÖŸp[¬Ž2Ra)·q"³E—[òz^LŒ”êîŠt¼mŠ÷ì¼ä ¯ÑTˆ3—æâ‡r·+Ré“»$ÕG*çJ7¡…êëÑo²"M¯ öffü*Pa¡´ŸäO†QHhü˜òBïIõ‘Ê µ—Ñõ/-¬ž•÷’“¨Ò2Ù©Õ«†¤OR£’ƒ>‹Q Ztg}HQ«6×W‰Dï"ô9ÕKWÏkÿZ£+ÏŸ6Ë/Òñ$Å÷ý>©3ö{r.Ðÿd' ®@Š€¬DÈë¼"ïÁé˜Aé=þý‚¢æé'^°°¼§!b9HãÐH_ƒþ>ߘH ^×áÁ¸iË \ýQ¤éî?}«v?Ñ,¶\z§nîæ<ÐNøÃgÂüeæ­ Ôv/'_]Qp‹ÀNÚ*ArFdHÐã$*;]ßœ·ÿXÔ˜e„£¡ÌòåW¦ë×­áè¦!C#Rbz†ÿfjnükUÌ…I"ÂÄþZÐ9cWΗxòåS;³ôÉ8¿6›Þªež9‘Ðï\,VIÓ=Äå]TùTBFí)Hâü‚œõ·éE´üEÕWÜžˆ¢†ê6æ?~׿“›¦&ÆQ9ñÛ×Ö”?ÏÚH „ ÖÎVu}&çÆŸœë¥Ü.¿X9cE€öÈË7\¶-Ÿ}Ý2õŽ_Øcé…œ¶T}¼!_Š<Ö¶Q“F»€þ„ÂÞb¿&VîPD–[Qõ<·UAŸ({‰ÌÙ:†us¦ªwíW¯òp•ý½CD;&w=HªT.hsx ×§GwÌÏM¼ƒ5ÜKÎ.+d}FæH”?±*òø‘ÙIªTŽÌJR"ë3šü½ *ï…èóÖõÝ{Âc½Ö|óã•¿ìõ|9}õkꇆE÷TXšl-Úp•g|…ôýTŸ3š’ÕóÚ?À!pi£ü"OR$BÞÿ¼uÊy‡àZ,è€ €èÒd *Λk•‡Ê\ÄS3²Ó§MÖëÓý¦á³bÿu oã÷,©eŽ Ê¹ôÀ_‰ ¤¯DsÆ'QoÛ5'þumÒãÿà\ýEi–;ý„ê3>ùšòîduµâç¥Ù«ÈiЖÍ3ès‡Oï©y,ßÓg S¨®0„ÉE¢0ú|„Rîy´gRSwúÍš‰¾[DÕ,~é`ÓìÁÑ1ý§.ˆ_~¸¨ Î~pÑn‡3·(¦â­©üš?ïÙF¦…Î % Ó=Äå]lùV˜´ºÀ=¯üâá`*Xìøç·+ŒŠÓ| úØZEw%^YYwª úámžIJ„DWí¤´:Ì7¬7ZµZ§ÐéÔÊ­OꂸC;û×.œ÷´ß™]ÔsøµÆìmÊÍs‡&¨pÞ²–Ÿm0Ù’{ë"c‡?ûÑÞ”ú¥Ëë¥ýN¿}Ä›¿ÂúüÕØ'Ïr+¶žcµÃ\a½Pv£Q¥Rùl§«P+—®d]5-w»"FŸÜõ ©>R9Ò´'×gCµ¥ë«›5v•Êá›gšÏÙ¥>ÛŽ$RLÈãGF”T©™•"¥xÖg"µ~/Þ’•×tKÑz¼uyløø¥;oŸs©¡¢ÎÖ™¬KŒRé¨mYó7}YqoÎÔ$ÏJ"ò÷2}øÓ´6zŸ&Jc:Ê’àS¾ýÂ1_AùE^»70|„8¿HÇ“a7ß[ïî`IåܾËúŸùÂS º6j+¢6ûïÝæx|Îä‹Þ8SN½¡9âFè7n˜Nò2ŠT.P˜ðŒ'ãrôvÎ$ºZõÙ¿ª‚M±…*wúÔg\€Wüôºâ§Åê7ïµÌMÏinAáJ³Éº™çyZÞ´ÓÛ#ã:°Üat¶ÂBŸ¢Æ¨ª†o,¹¾“Cth[Ýf>OŸa~;1ÕóCÜÊLÏÂ:Cú1à™4´sþïb)·¼XɶB­üÛ¯qzK”î¡.ï–?WÊ.._ô/q~ñåQ°lŠõƒKÍu”«¯î°Uo\øè?;¾DÜIdç¥wþ\=~üøªÔÔÑ•#æ-*Ë/ú²䉢 {ìØ½. ÂD !\¯¬¦'‡ð&Ãå5dMûŸº¬ŒÔúBÓZJ«¯øxa^T-h÷AóíO8Zôà•C©Vúo‡%q4IËmêy!1k);Ö8gΜ³gÏnðþ7+cVýÒüîÁ?/%r·+BôÉ]’ê#•óJA—äúÑ‘™õsæÌòÏ3ór¥ž¸&ÍŸäñ„Ñí™T©œ[q¨.Hë³Ø¼¼FÙ“Õžú¹º o'Ý=!9Â`è×#1 é®™>®]w笊|yï•X¼›½ï/…¿qOmÃôå®õUb¶Ÿ`³ÓWû—œÕÖâ¹ôáÿÕ°¿Ü¢¯.7Ñ«§t±I0AÄŽX~×ËÕÈ95©B‘‘Ý/<¥5èìT›WìõåsêÖºRÌe¤øt}y—¬ü¹"íõ—«1U¨4¿çH«¹Û>úä®Iõ‘Ê H¯äúTH+iƒçc–ß iþ$ŸŸ ¼Hõ‘Êñ2JŒ'ÂúLŒÊ`²Ë{ ZÿèLsÚÈß•çä¬/[¿~}Ù¼£ÊÒçý±‘~çŒFTƒ©°×Øj=NÜ{€0}’ÕóÚ¿`<=/½xÂþé»ÚÓ§O×pýûþÄ7×Ü+eÎ/’ñ óéû©§!~Äqþ§Pp@0´›Á“ŠZ3}è¢="V+ä«_R9¸ J ½|hQL_<ÝxzwÍ”'vˆšr©“;ýüôYÍxJdž,›×`»Ë:þÿ°t¢ŽðRUŸhÚdk9>¡úÙÉGûa“³4Ùy©äú9".)è*>žæ€7±LŸ£Ê]ÖâRWD=2œÚÁ°íß°œ^Ýá>c¨"¡õsëj7qé.Sy—¨ü¹90.ØÊÃK纑_|@d<§pž;Ôê5H÷ô®Ý|üˆ¹‘ÊN6öîvœk-3}‡ ëš l\Ú‰›!k™bDuö» }¾ý‘šÖq,·u›²6}^èU¯=‡Œéî÷1†Ûgç½ÒŸ(.ùÁæüˆ@ w_/Ši¹ q=/*NÂr·+Dúä®Iõ‘ʤ-"·>R;Iå䎩>R9R.lr¤õ[Xºñ)ÂÂBäú¸‚RÿÐÝ¿ £ÎVX®Û¾nµGÜ{@k ø/}ÕóBÚ?…¯LkóçÍoÌÊÊjâú÷Ðãë›ÝUÊ_$â)œ éû©œ@ Epþ§@Öà.IÀµ¹Í#¯Õ8÷WØÍvçË.?“Håø…¾\úûSaƒ¢l:T}²éOÛ§¹Âaþ•;ý˜ú˜û¾3í[¶«¸Û½xÑ…¹•÷ù¬Øðö™…Æýª{¼I"ºüõG Þvo_B®™vò•e“Ûòηæo§·*ãÞ*Ï€~K¿[ ªï¿n+)¾†ƒ?%è벺ÆÛ Ý´ú¸z¡ª£¯T2ψÊnPS/†]F‡Zó©˜t—«¼KSþ8Ðag¶òÀí»3Ûœ±jý1‡Ç?É•vré-A5 V ŠPju=¨Én¨Ï¸Pµ{ï„HúÃ$…½Ü^²g2¿Ÿ |t±îö©)áÔ¶i=ýžwvý‰ÃG醻-ƒ"lÚ>ÃîŠ4¢}Õî-ÉQ‘•ÛbTŒ¼ÏešÅ¯ŸÅ”j»{¹Û2}r׃¤úHåHÓ_n}¤v’ÊÉ?R}¤r¤\ØäÈê3¶¤t#+ïihäÀîx[V;ºúEq­« ó8N,úçL3åùÕóÛ?¦’ÞË›_Bý~Ä…ŠôýTŽË.w1\R¡ÿÉ…Ün’® "ßÿ܈nIÓQV5—id~Qê¶Öï‚TÎ/ pÀ8ÓϰMMÓœ)zẫã)š€ôK›²2'‹Ü&D€>FäÔN:øX˜DM¯ÞhDß¾¿ÏÊ%¸%µ“Cnï{ŽKôùB%æœGð³j<ê‹ÏOÂ%•],åµâÈ/p  È)þ„xäëÿ¾÷ý5=-Œ'h×,ÛËÈcF4á×ñôVˆöÒÓõîs‰HÓ½=”w©€åá×sËQ<:åq~i¥‘·ÿ±(j¥¨ªî¤9çñWš‹òî³½}Þ|zÜ{Bv¯·±â*bíäN¼h@‚2‚z^wáG˜âÕFOœ;˜:”*%Ýéc±"ÂkG0OåÇâ±3: îOF¯¿ŽÞ–Ï5T·hyhÏ ]¹ÅÛBêgµ›´–»]!Õ'w=HªTŽ4CÈ­ÔNR9¹ãGªTŽ” »œ¤õþ<»Þ®då=5÷Õ¼ý4µÃ@ñöÏ;é{€·I,לúXü2Öó‚Û?f衽où…¬Ýäê—#Ò÷?R¹ ÉÅig9ê1{>ƒþ'tà.N@ôQ©Åy¾‰ÂÞbwïÓÊ€jÌ\®X™•Ê9¸¿ø¥Õº¡ø E„OÛ8òú¦.qR9—<ü N€Oú¡>ñ­“GõèüïÉ©Ò/õÉW•G×/Iš¿ 7ñ>¸šk B©ô§ÆðQoÁ›å8ž^9Ã×-©¤r¢ýŸWVS&„Ò{lc9—#oÿýQ ø¹¢ühÃâËWÝ^€K?¼ÊCŠo¾6¼â8Y§âèž´z¹šúzœÚ²éÓÝOÓçH9U¦{—w&Î[òòÀd§x@ž_ÊØ´_3†ž\©B»f»W"l˜óÜïÌJ\½éÑØe»âg!ŧ<ˆ±Ó¥¾ÅzÕuIÿ5¤-@¯ÊŒÁû0â_=*ùÐk „vƒÿµ5â¯ÎÙœ‡[% ûò—ᘿL”5>Å™„Õ—› ™;û½Àþ…£8o•íx¥‚^|ßê²ø5ˆµ¿m0rõžøC•¢Üò×&¿O¹Û)ôÉ]’ê#•#Írë#µ“TNîø‘ê#•#å"DNªúŒo^Ly7pT߆¬­ŠÜÉÉñT¼kNì½ö¼Ï6„ï8,2}Bè³ø%hÿXB ™“ÜùEʈðé—“Ž÷˱D—,r|œ ÿɇø@ «¸Å\Úz §Çàp«ºÙ® ' TÚHz:Þ®»E³ñСçÞ3j¦¬UþwÅô*j+¤ˆ”ÊI“§ÆO˜uÕrᬩþô¹ ÖÒÊ:GTïÊÑcFG¥Ä¨èA‚‹ïn»ú¯ÑR¹®ž¨Üñ'K¿TãÍ*çW‘hÒúãI“¸ ëù·¯™³žä“*ýF ï¯w~óA\ýÛˆYi¨n-Ë23©ôˆë#ã¨_)#YŸ°;’ÚI*GY±wÙë袛n :ws›>¸vðÓ,Z\G¥î~S”RGmùó ·•@IDATÚò\ß³mØ£ÐÅ]ÉÊß|P ÊÎÝWýöÖ©I±1C÷ú·â½w>¨5U†9½[7z`œó¼÷SÕK[6‘¤{[—w&'®{1å+ÌÎáN˜_ð¹CJˆ£œycM9saþÚ¡•ﮟ”©í§zbïúÈ=9õN^¤åÐN¯DJ¾û¯1‡ÒœçÇ9”ze÷5ž(uþÎm©ðîO¸Üáo(ü*œq¤vº!¬‡~à½ÑG‹ë>þèxÝéR‹=iÀíêÔ;÷ìA¯È­÷?k­M—C½Ðþ„Ó&ZòT~í¶g…õÕF«Æ/=šøë»?©)þô”¹E¡ä~õÀa¿ìSÿ¾uLÆÓ­å–46âË-©fR9uò”¨ãǧàí—Ø~õè`΄2WŸRîvE }r׃¤úHåØR›ÜúøØÄæGHþô–—;~¤úHå¼ãºkiê3¾ýyòòžŽr^Z×ûšÉüÕéïšÎÿ\f«3ëPÿÑ¿78)†zG¾ß¿'áUßLV$ï‘ëcêrOÖþ Ñ Ö¯¼ù…ÜZ²~9éû©Þ‚…h\‘˜ ô?‰Ñ ]‡€À "„ºGFhÂð2fÿ}ªTHå³cH·ÖQó†ò+öfÂ"zioÖ«çÍÃFùv4”Y>عñÚÊ‚Ÿ• ¤r>Ã’ôó @ÀTéW^UoEÉô8>|ó²í$Ëäe–TúØ¢èZ!Äö,B«nýZ7/$©¤rNÍ%hñäM5Û<î§Õ'›Ðsþ° n£lÕgšþùäƒ5>_ž¹Ãƒ€åˆo¾¦U—ä¡)9Ö²½«fÆ÷ŽºI7~fVÂx/›*O½Y}Ï£ÿdYe$_º‹ËŸ^‘a¹d+Y¡ÔÇbBÇrœ_<çÕÞ]óàæÿ•¢‡×¢¿¾Õ¯bíÔ[ãU½Ó"÷oÊ4O[æ\¡C\Ûé› ]7 îuPç Ñ?›¥ÁvíÊ¥Ÿ¾t#ÑŸpù¿mOàÙy4†½ô¬=}p\Œ*¦øØ©øŸÛ,r4ülù¿-¹ôFnç.r!´?áÆbÊG³î,¯xfçôwzöˆ8:zæÀÑîÇÔ…µê†ßࡾ7"Ë-—¶zžËo¨ÜånW¤Ð'w=HªTŽ4­Éõµ‡œ<Öäñ 6›R}¤rl6„ÄM‚úŒož¼¼ã¢J¥²[ï["GRÿ|@4£‹Gߨ¼oÙ6ŽM,HÞÄèó1Îï&Pé"nÿü´„ÐAÆüÂ'\<‰ûå|”Jè'Tvrqþ§„‰A Ð) PÛ¥òÄ̈2³S•7÷‰SõŒÂËt*¥­¡Ævæ‹#ÖÍE>C¾öÊù†wmE@Šô3 ìÕÙêa Vuqþ2sAÀC¤Ð'+R;Iåsʆò=Õ€ëõÑ£†*oMNPGâ÷·pBQSzÖúþÿ>c-äùqŸ÷)ôuî#W~éÜÛ,vÐÿl3ô öM@Æ ¢ö ¬@ €@ €@ €@W! ì*…x €@ €@ €@8 Àä €@ €@ €@t10AÔÅ¢ €@ €@ €@˜ ‚<€@ €@ €@.F&ˆºX‚Ct@ €@ €@ D€@ €@ €@ ÐÅÀQKpˆ.@ €@ €@ `‚ò@ €@ €@ º˜ êb Ñ@ €@ €@ €LA@ €@ €@ €@#D],Á!º@ €@ €@ €€ "È@ €@ €@ €èb`‚¨‹%8D €@ €@ €jÑ F”nˆÇÁT ÂÂîà ihþ´±ª¡7'kzFi´*¤´4Þh©«ºbýâÈ–m{K¬Â¤r¬£¾éG Ri1y¤òW·¦h“zv×hµZ•ÂRg+½pÆ|äuÖ=lÉ/wúI¬Ï–ŽÇ8էЇMLz”žn`:rÞ7š 3ŒÔ¬•Š9ã†të¥×ª6‹½²ÔÔ|øÍ͇9‚‘*~BÒÃpö" Oà ôÌ3Â&Fèl6‹£©æªåË4åå±×Ÿ^&"”†r7ej†ÜÛ­voÆù­±îZËOß}ÞüfÞ›_ñ%)ïbôùÈ:o—?„Œééˆj}‚ýØÊ^0™Nñ\T~A@hyigj擊éc«ëÝ+2L…l¨©¦Úrþ‡Íï½±ÍÆ¬sEÄ DC@ óÉÊqÃoÓÇèj;ÕŸ02ï[ñŒ•« í&Hƒ1ÑÝé ™ ‘OwÄ]Þ‚6šP¡èÁÖïiDõèp‰_+âcPÛÖ×r·>Q|CدcãÙØX..ñ͵ ~*¸ßJiÝŸào&6i¿~¬åˆÅ"·þ ïÓ>¢óµ,¿6ž|ò©?«BàKd?„Ø"éNTþZÔÞÖK~Æ)ì=€é_¶ûöž_:dú‘ÖgÂåÄ”#Ùò(@´ÖYJª×˜ùWÅêc£q û9ûº‘™å…¬¥¡Å ³kXcǺÓo×LÌÚÐäûœTÎ7¸c'À?ý èé][»Mì×½;{H”« }ûÆÊò‡7Û=~äN?‰õ¥oDGrîL Ã*wíÕi«¶x↯ÒÖ #ëÇÓÏ}Ü9n|Ã0¢gvoˆÅæýrñ‹•3VX}ŸI?þéî«îØ ÈÅÓ˜µU±q¾1QÏb†µüxÃÒiK긆çR³·*ÿ<טÉ"K•Ý÷rF•ýÅ="KZÞ= Óç‘ó¹ Vþð„×Î7Ä´•ËoÙcñÐ Ää18„–Qv¦-A¯-½7ºŒ*œÍf奷ë†ÏÞÐÀö ÜÚ˜€!½ò·1·E!¿%Uèàú)ekÙ;”þÞ;‰ËŠÝŸDLIV°ö SXXQÛÕ×ÂÚ#ñíŸ0ª¤ýºÀ<[®ZN|¹zÑæ"¯>¹0Ëü}“ô[åçIÚ/µ1à m7)qaùš¡÷-i>#•ãm˜¤EõCDX",ÝIÊ_«q‚Û[ÒzɆ°øùÊÒwAßXddpjÿù¥ã¥i}&\ND9’!o €@[ \AdD9/­Ô¥Ž‹qE@a±Ù]7~õHÓÒä¸jú¦öØgŸ™¿;sÖŽ?6DÉFÅÌ9‘¿Nˆ8%zÿê³Öi«öy “Êù>„¦ŸÝŠ'‡”æjëé¯O]ÿâÛÓ֟Η9¨4áÖ^ú„Ïï^e={µß`ø¤Õ¯«WNHéEi¯3}\›¿sOã×—êcHA·þúwªÔ7EùÎD’–wgü„ësÊùþŸGùÃ-v.•Ânµ7·8üË(ö£ÒªT M¬Ï|uv¢;ù…œAycgúônÎø$ç¤g=úæÝ·®(,i©@‘(yÈÅ©ãôƒÉ#’!%`DÛþ¶OÙt¶Êo_y{í{x>að¸éÊÌYcãâµ±ªÉËvÅŸ)œS±'¤v´¯À­¶f\Oé÷µ~.kht¨ÔG\>?µÚ¬ ú^>?««ÛlCµ¥¥õ×YêB…Z­h¾ð³ÙGŽäëvö{|ui#ã4‰1úðn½FÎÈy%rÐÍ+qÿÅûƒ¡¶©¯…·GâÚ?áHÉûu®öÏR}¹éJ½Íª°ÙÊÈXMb\”^ÑKkœ™›ð*jôKá6R¤ýV¹yŠÈgr–#w"´›XVx¾v+|AšÏHå(V@L?„X·Ðt'-”$í-y½äD"4~l ù½°I†Ô­Cä—Ž•~¤õ™p91å(¤¹ @´‚WeoxE3õÎ=#•¥Â^eÿö{Çõ㢓mÅó*Ü¡ ˆâóŽâÁr,©œÓ:W²ô3 ŒÌ›{ 8¶±Â+iÞÅ+i¨ºËEë*f¬+rΪ¡'wú Ñ÷‡—éæ ŽrO€ ‰—o´q÷½±·EØ´?¾±¨|.žðIÍÝ¿öMŽWØKíù#3Êó}PÞþcQc” û%ûs#g—ó ?²tg·nòòLÇ+eré•2ŠÊãܳ¤ÖûÛl㓯*·Î¼52îÌk‹ÊÜæ5©˜ñœâèÒ;© ʪ£ù•S–íð rÇÈûBDy'Òç­Ûyͯüy¾»øÖŠŠûòŠyÕ;þÚ:›‹ˆüBˆ‚¬<ˆ±Ó“ö ËO¶ü‡gUä{ Âx€˜< ÙÛ•;çþ*jãÖá6Îg¡îO|€ûzÔŒ>\?¶ìO>屯­´,ÛUÜíÞ~ºîÖóo^3gÓ ¾v¤.]µaj ^ATÞš7¡,/”eÁ¸½»uîï±è2Î@ÛV.î1÷çñºkT0oZÙ‹n[Ûm|`dw*ÙK×ó›¢B$/ïdú(^?‚ò§Öi9¼tuÂK1ù… Yycçô Ojœ[ÖÚÐgÛg]…É!²”k+©Þ1‘teýùTƒßüÏá#è¢Y‰'²ÃPï›SöQÛ*FÒêU¨4î:]XÈ*¤í#L‚Ü7‹®’=(ûž-µ?Yx²"ý¿E±.°–«¾&kÈÛ?r–Ü’Üý:ŒZC/ö8 =hûGé÷*‡R§LñzBv)¦ßÚv<ÉóKÞ&@Š¬Ý¤$Ë×Láùˆ4Ÿ‘Êñ4K”71ý2Å$é.¦ü!Šö–»^"‰ I‚÷–P$wêù%x´ÛSú‘ÖgÂåÄ•£àTÁ@ søò]¾=z¤òÅE#Êîž³äõbß[«&|‘õì×Ǜٹ·©óøw]‘ʹä»ÞßФ2ŒF}¨Iü«-¿êµ%Z`Âr§?}3Ю‡‡÷¢2äÿÙRy¬VáÚ»%pdØž %­_õ|ni ý!­1 ¥Ð¬êÑ©C+ ¢KôB}ãx|sÇ/DéÎç.á&/Ïñ#IŸ¯¢ªþ¾é?Ì%š†%èx5š »#n ~¡õéý¼!Þ”}º;§ÁåGô_®ò.‰> ËŸèˆvÌHó‹1͈ŒFüÏ•X£opúÁþ¯²÷7}·(cz…ûöH`zãXe5eYÔ »zø¥¯\&KÒ±ËÕþ±x•‰»_8ô¯ÇŒÃ]½žð¼ a¿•ôý§åíØY»‰B•¯ I‘æ3R9B39ÅÈû!œAy@îbË_Ú[îz‰ ~~ÄÚï{@‡È/~<ýÚMú‘Ög$rbË‘?Fp@tJ'ˆJкe¶ˆÝ«Àe&š92‰ÞÊ«éÜ— ÌñO¯>7¤r>t±›P¤BOåLÒSKb¨­~ÞÍ/á9X'wúñÓ÷ÔÎú~øÐ{jÅÅÜmÅöˆp‡À2âÊRxÏçÍó¢cñí•â—*׺3¶–>ˆ:•Hã<<Ã%àõ·¹f¥Tqýõ3¼žp_Š_hÒÛ–ÎþDNžiè—Iaô$aÕ…¯Ý»õ´"^¿az$•Ç®šLµÎ¥n±hôL窳9sFh©,¦4Ÿ³í•n«¼K¡´üµX¯vöLÇ3~äùåŽû7†oݺ5iëÎ#I[³ ,~à—öâ×â(?KOZ:")äv¢ŒTE2®£>îÔ¾¢Vxò„ Þ$&Pœ÷­‡éÐöS=µ{•÷X!Z¿|r$UoÙKKê=çJlRûÞ?i¥>örhTCÓüUÉQ_KÑù[NÚße ‰[ ~]`ùp½Ž®Ã•–¶ŠÀ^y< U¿5´<åÈg<àqx!i7 U¾æ02¨3i>#• j "ú!‚ôx{&IwqåOúö6P½D?o>¸Nì=Ü7\ñw%¿‹iûI?ÒúŒLN\9 Fž : ÂÁoi¢?9k­b_ñ¸¾Ô`Oõɦ5Y[x}èF*'ÕŠ7Ô審¦ºõ V)|¶}åU>çåÈ~|õQû4O7„Ḕ£W3rD <.~inhŒ-œšhºwÅ>Ÿs_\Å[¹4Œ(‘þ‚š`‰U b`ñN¾ñó–ëBMïÊ 7Ê/¸æ i㩳‡Òz+#•æSÖuóv6VÒÛúPSÎ_rB$½ªÏRq®É=?iHCó³ŸT._þ„*+s2Ë$@`.Ê»X}bÊ_ÒÈ?FîÚµ«Û®;ô/¬þ£zFZÀe0#Ù‘ŸŠÈ/[²þÔôy5Âmp2ÎÏKt¯Dkå±~ïÂÈ~¸^RÕ4ÿ)k¯¶š¥;'ßÚWéÜ·ª••™x~Ài X'wú‘éËDæ ¹;Ðol(Ï‘ ÔÀýlê #{©Ýo«ä$ª´L¶Ejõª!é“Ô¨ä Ï ?¥ö¡Ew†Ñ‡µÚà3»„ÝÈâ×üéXð뇆ê¯ÁðL´4ã6œ_[Ч;­*AiÈlÇ›t"‡J¥¡&þm–f¾W#KC Ý'ÎyiŸî÷ƒ“b\Hˆ¬‡³8øªyE®~3'Ÿ`å]œ>²ò§¦Û„´q}ôý✦÷3 @Ã'LC¨<ÓXôò_kŸ/d®»âŒbÇ "¿ T‚?YP³gfx>?dÞß¶Å|>1›\œ¾áM 5pPÚ½Ðé& –;Ü«£t+,å¶3î™OQÖ€p8¸*£%Q¿§òÁQ}âTqCõ9ÇwÒ+%QÝæü…T´MíE¥RÝ]‘Ž·CAñN$Þv5š žáüõè7Y‘¦WP{‹2~¨°PŠ©F°¬·e¨¡µ=ò>FÎúZ\{ä©`퟿„0©úu©øÃ»ÅsÇ÷ŠÇmcÍ©ÝÕs7K°M£ýV&Pò”"ŸµrĤ†ÔùÚ_?Ò|F*ÇÏ*¾DôCjç]‚òGÚÞJU/ñ@öÀ/l |u”üâÕöž~¤õ‘œåÈ -\ :-Y'ˆ×yEÞƒ”1ƒÒ{üûEÍÓO¼`a}ï%•ë´ÉÖ"–¾ý}¾1‘¼®Ã/¡Ó–0ç1µ3KŸŒók³é­Zæ, ýnÁÅÒh5$èñ@º •®oÎÛ,jL‚2ÂÑPfùò+ÓõëÖptÓ¡)1=Ã357þ5„*æš$ ZÞHŒ>²òWLß|WkÕY”fs‹]­Š‹MKŒÑÓÛŸéãnÕÏÈÙ©ÿͯ×Ud® >Ö±2‡µÄù9ëoÓ‹hù‹†+¯,¸=E ÕmÌ,ü®'7-LMÄÓo6ôíkkÊŸgm¤9ìárk'Wao±_ã Ü;Ÿ}Ý2õŽ_Øc['z)£«¾?Þ/EëØTö™³u µÓžß¯ê]ûÕëü?,qzÔ£;æç&Þá'E9\B¨pvY!ë39嬯ŵG~4‚¶~ÂDôëúLÎ?>9×K§].~±rÆŠýr/ßÁ/%è·z+ )O)òY{-Gçkï4áqMšÏHåx˜$΋ýqð•–¦üµ·"ê%¾±sù#{pIËð·Ãä/í:ýHë3R9iÊ‘]¸@tJ²Nç͵ÊCe.’©ÙŠéÓ&ë‡õ‹é~ÓðY±ÿ:зñ{–Ô2ÇHå\zà¯ÄÒW¢ƒ9㓨ыšÿº6éñp®þ¢4Ë~BõŸ|Myw²:ŠZñóÒìÕ ä´ hËæô¹C§÷Ô<–ï™øñsKV^Ó-Eëñt±áã—îL¼}Î¥†Š:[KdB².1J¥£¶×ÉßôeŽ9S“¼W¹Â?—üí$2·(¦â­©üš?ïYꨟŸsB)…Ñç´ ”rÏ£=û딚ºÓoÖLôݬfñK›fŽŽé?uAüòÃEe¬g~ð*ïäúÈË_ Zÿx ³îiD†ôš?f߯4ü¦Xjû—“—įùª¨ì/m72ê“>²ßðÊ/«L‹ÿòvå‚Q±qúD[«è®Ä++ëNT?¼Í3Ié‘èJ i…`Úˆ€1{›róÜ¡ *œ·¬ågL¶dÇÀÞºÈØáÄ~´7¥~iÆòz¹Ö»´Nµs…õBÙF•Jå³ ¨B­P\þ¹2ÀjOª-½X_ݬ±«T_ÙæsvñgÑpšÌãœõ5y{ä^ퟟ”`1ý:‡ù†õF‹Ã¡Vë:ZC) îÐÎþµ ç=íwv¡`ã°€Ø~«[gÈyJ‘ÏÚk9’0_»„ÿi>#•ão™„>Ûi?Dlù#moÅÔKBR…ü=@ˆ†_c:Ê’àÓN2| d¾‚ò мvo`øh§ùÅeeûN?ÒúŒTNÂvÌþ :!j+¢6ûïÝæx|Îä‹Þ8SN½ñ:âFè7n˜N¿Ü2ŠT.P˜ðŒ'ãrôvÎ$zâ¢ê³U›b Uîô ¨Ï¸¯øé`Å3-ô‘Ël±ñ¸enzNs{ WšMÖÍÏÓ:Œ²'/ª)<õsuÞ†¥{Br„ÁЯGbÒ]3}\»îÎYùx$Ç5{¬@ŒŸÇ<¸êˆð,¬s™õbÀ/2ihçüßÅRn?x±Ò…ÞîñÛ¯ñù0‡ÑÙ }NŒ©¾±äúNÑ4¶<ºÍ|ž>+"ýv¢ÿYˆwy'Ô'aùs'/Þ‚é™'î·<²ã«+ΑT=—¹"Âý¼3_ç_(˦X?¸Ô\G¹*ñê[åñÆ…þÓìëKÄ;- úeÝ¡T+ý·ÑaˆÊG×+«éÉ!¼ÉpùG YÓþ§.+#µ¾Ðt£–2BƒWм°?/J>ƒÚ—¦–²csæÌ¹1{öìï³2fÕ/Í/á¬BèÈŠÌú9sfùËÎËi”mÂÍpŠi=G1(ÙÔׄíÓXÞíSPü½~Ý¥wþ\=~üøªÔÔÑ•#æ-*Ë/ú²쎢 {ìØ½.Bšù$è·¶!O$(Ÿµ“rä—$Ê×~áòs Íg¤rü¬áKD?D„VBQåOÂöVH½Ä;¢¡xࡊ|íó¾c‹Ÿ;8Xˆ¾º¼´¡_?]w]l•×½ÂVÞIô¥N‹$)®H{ý5å?æxoÜÇuÔê@Uü-áøDžEÉ+”v)"¿0czò|uó]ɉ´³*,BÙ_IVŸˆ°óÄwWš§RC› …ßÜqµ ¿EÀ€ž_9­G4îG ºoÌ+§-¯så«õóÆ5Zò9îÅ[°*ÆD|a¾y’È~F‡BÓj¬B¥ üU3g¤TH+iAåTøAŸäœÝÃ+1ª¯˜Ðò#u}MÒakˆÛ?OL¤½âÓ¯Skðq„®Ÿ©íXWbÛqæ¹+,½#QŸ|WÔŸ³ÿ¯ñAIVŠé· ëO¸¢#õ_~ù¬”#–È‹Ï×,òt"Íg¤r<Í"÷&¢B®TŒ$Iù M{˧^âSü Í{8_…­þJ/ž°gJ©uXœm”Ò|Á³ò¶Ãån í%ýHë3R9'’rÄÍž :v1ADA­¨5· ÞzdˆÕR_»¹ ‚'• .Ñ´™ck9®Ðöá|èîß„QÛc),×m_s ²¸3ãÇ·±Ní€ésTÙ0ÏaÓÆ¥®ˆz$.O%Ö ý–Ó«;Ü&f U$´žãan]ífi²ó:K˵"#".‰Z¬fq†)¼¼é»bÆO|ùss`\4zM’1uÎ[ùÅHÆs ç¹C­®QƒtOïZÑíðœ 7|ü‘Þˆ°³¸ä[ãÔñ䑯ÿûÞôYB´n·-Ü˧X2¦hñ®áxdìâ7õþëô8;ôâüÒë¼ýEõÅÛªêNšs¥¹(ï>ÛÛçÍשǽ'd÷ÚèÞ&®ò@nçaôúûçj(í¶¨¡ºEËYÎÎâgøjÎSÕJ•’îô±ØáµÃš§òcñNí@úFtW? Ý}g-ÿf$®¯IÛ#Òö/d)AÖ¯Ch ¤ÏÞ«»ðcˆ'‡âì·¶;žç³¥;W»‰Hóuˆì$ÏgòæO®è“÷CXBäÑŸg‘òqâLw_þ7œåÏý‘”Ôí-Y½D?*Ædïþ¬Ä¸t–ü‚P;I?ÒúŒT.Hâs—£ ‚ð Љˆž *µPç\Pg¥´xöie2f.W¬ÌJåÜ_üÒjÝÐ(„Ç ðÁ ¯oroaC*ÇP·ðI?Ô'oæCýêÑù3&ç r€0]¤J¿Ô'_U]¿$iþ‚ÜÄcøàj®w¥Ò粟÷ßz Þ,ÇùcŒÜsaàˆ„!k«"wrr<%Xsbïµç½FW¤Œ¯tç´0 ð䛯M¯8NÖ©8x&­^®¦¶‘¡¶lút÷Ó Û ÑþÏ+«©û0CzmÙF¿ú>oÿýQ ø¹¢ühÃâ“ók~ÂòŽOƒ!Óç1XØ•1­ÉÍV±¥tôrÑühç¶{õèƒÏ Y˜*ÌŽvæ›<¿ ”±i¿f =¨X…v/Ìv¯ÌÙ0ç¹ß™•¸zÓ£±ËvÅÏg>åAŒÅy«lÇ+tšöŸº,~Mbí_Œì¹#ˆùð8„Š¿:gk¦ÃO@÷å/ÓÓÌ_&ÊŸK»V_nê*»L áÞµ‘e«Žæ¾ðoí9w&QýEU]‰yíæbOQöúš°="nÿÈRLŠ~]‹õªrCÚôÊ¡Ìg!ªG% ùÐÈ'(Ÿ’~+éûƒb!7²ç3!Æö˧ݔ½Ÿåe2i>#•óR²K1ýo£øöç½e\×üÒױݙ@ï¤í­õ’Ðø¹ü·ç¿%¿tœô#l§E¼o’”£öœ'Á6 €€Ôn1—†¶Èé18ܪn¶+è?•6’þÔ®»E³ñСçÞ3j¦¬UþwÅô*j+¤ˆ”ÊI“§ÆO˜uÕrᬩþôÿgïlà›(ÒÇ?ymÚ¥¥oˆä0"ò"í (ÿ ô(ú÷¨zWTDî(ò*á~ö-úç,'' þ´åÄŠ/jTE1oJKKK[Ú’¦I“üg7MºIv“ÝÙͦ)Ïò)Ù™ç™ïóÌìÎÎîÌÉÓöŠšFWBÆåØqcú'ªè‡g>(ºðÆÓÒtRCê:ù‘Ù/Óx­Ê=@&¯=’>9û©÷.k_§B*û9Pï~ç!eêÍq³³PãêýJH%/0çà!Æ17(éÏ‚GcœÍF[–&g\4[¿9þCË©_+V8ö®˜;†¦'Re½Œ9NÆoï3×#jê’zË” ûLÒðäë×x픿lwÝ{›§¥'%ݼßÿ¸Á\ã:þNÝØ!ÉÔòW¨ñXIÝ"¿)›v-^e[örË-‰1±ÃçnL}{ðÇ÷~ö³M‹ÛÞ1Yc»_ ÔQS=½±d™wM#ÒúNé@"JG´Åи)R&Þu¯³öü/—+Îo½hA®^4 é=ÜmBÿ}çÙj¶ö‚HfT$"ô¼îУcR“©"žxkUspšz(5oõðšÖNN×P=±kmüΜ‚&7Òú@¨'-ÔŒ>UÜð¯Wóbúj{ª&,:˜vÓ‡ëË?;f­A ¨ßƒzȈ›ãû4}d—óL»žnmáÿ(ý*y a†!¦‡~È==– ÕýçÓ#Ç+lÎôÁ·¨3oÚ«ýEnSàZkV].ñê~SޙЧ™eÛšÐÞ‚‰•‘oÓôh¾œ€U¤^ñÜ£Q+lŽm˯c¼ß‚PÚk’둘ëUv¡›÷­ýî|6q_–{M—R¯ì§Æ/Œ¸·“e›ª™ý*O¸ð_²ûV¹yFÂÏ„³¤R^7e¾ÏbŽÔÏHÓ1D‡qWÌ}H‡ZüïçIíNVÿáõ–¼]"-_ËνþMö#¹NS>B–ްun§í€’8@„P÷ø8M žþ*p¾"Ò'$øÌÒ­ý©ysÕyg+JA1q½µ×ŽèÝëÚc| áj®´}¼mýÅå%&ŸùèIÓùd>Hìç“€©ìWUÛdGýègàøÁÃ9ÇQ–Á!J-©ä±Ñó…Û¹8­ºýíõ`±˜)ñ‹ïJ¥²[Æuñ£©?æ)<Õ×™ƒoÕÜ·¸(àc$1å“Óî>Åé¢Rðäë×4BS!šZ`¯ÜµbVJFÂÕº ³òR©sž­æØÛuw?òw–¯ŒLhÁ” õEï>Ɡէ˜ØkÞˆ‰ždÈQw¢åïO>X_âó$Ï{š`'<òXkVSªÇ/*¤*5Ê^×ÄSL…]Öjûá›.>UÄx‹¡+ï ö—Žu‡ï¨p£©ãͧý«Ñ³ï ¨^=mPŠ*#+~φ\ëôÅî7Ó‰ëƒ`==Êà_s1š}{UõsÛþ ¿ÍЫGò±=g ˈ€½ö²Ï »ÏI8ˆçxسåygöÐäDUâÀØñÓðŸWr5ÿjûßMË茼Á°ÃƒkKÉ#¸(îÁ!jm¼`5öQãó+ŠÚ.)i¯Ãs=GË7µ˜û:ON ]7 î}y?èrؚϟ½|¸tËåB¿~•'ð_²ûVárD¦ÄÏä©GÄ×MüÒ¼÷un›úi:‘žÀ?¹˜ûv)BîçÉìN^ÿH®·bÚ%²ò…6—<µ2´( ü%ºìGÚž‘¤#¯G<<¢ ºêÁv…<%1¢ÜüLåµ}’U½ðkë:•ÒÑ\ï8ñåûÆ’2Ÿ!_}HÓùæG‘" …ý (e¾zDª]]^¼ØZt$)ä…Ÿ•Á˜ÆŽ®Ô/U£ŠÕ(õ?Ù?úÏÙKž¬0õ‰Žò15†}.BüÚ“‡;ÍÈþ=µv{‹«ù©¶C{ž³ï Z'Üi9ùŠ{Æ Ñ$cS8¬®3¦·®.Öözd’ýÊ%Ϙ=/Ž}£ªÿU‰ê8NÙÚ\ã8þåö¢’ò ײ2E_*r‘·¬"õÄíé“F«^Õ[‹ZPÝÅ󎟾>ÜV¼ |@^; ”fœ‰žž>Z3 wœZŸo+u®3ß²­.Ú8@)0kˆÞ9 Dª½–ëzDF=:îëÈï[ɨˆI)?£3IÚÎí×$%Šd1÷!î´üú©de]ÿ_o££]"£)EªÎí/Ô:CdÏݤ`C–i{&$èzDV4H€ˆ2E P €@ €@ €]š@À¢å]º´P8 €@ €@ €@Dà@ €@ €@ €¸ÂÀÑfp(.@ €@ €@ `€| €@ €@ €W ºÂ Å@ €@ €@ €  €@ €@ €@à #DW˜Á¡¸@ €@ €@ €€"ð €@ €@ €@\a`€è 38 €@ €@ €0@>€@ €@ €@+Œ ]a‡â €@ €@ €@ˆÀ€@ €@ €@ p…€¢+ÌàP\ €@ €@ €@¨E#0Q¶!gSJKMÜٲмéãUïí§M할ѪÒf¹ÜÖX{Þþå·lE»L.ÖĤéX3ƒÀ|íG%¤l1e´ò†Aýµé½ºk´Z­JaktTœ>a=ðÖûN6óËm?‰å²²ÑÐD—¢îX™k¿9€žO@î“ë•wŒ¼^Ÿ¨W¨ó1ëî¥ÏÙ÷ûÄâ8bfBÒ‘Ø) ö¹ ±w.¡Ïf¢çžÎ‰’§s8l®–ú ¶¯ÿónKaq{ûé“cZ¶!W3캤nÝpx«Ãæ´4^lûå‡/Zß.Ü꨾¢ý…¯<ÊÎ6øhìÀb.EuQ—`Ò¢ü\¤¸­‚ôdó ²T7¡ý¦/Žrv}õE]7»4¾í'‚ zÄH'pט¨»~æf±T£sûM(ÄmÙ}$S}o;"‘ÅŒJ.*î4rø')OÒt!hð:-˜‹èû ^j$ä~!‚úT:ÿ“¡ô4³Ýí‘¥¹´4t} ‘}Z’~•eáû<=ΰßÙB6|ë$qdjw¹JÊ_è¾;Éó!å1Ò i'ØÚ3FVÞÝ€>€$þéÍžÿŽÜv—H^(ûÛÁCN„ž²ø‹zz²€_ €@W$ À…ª -˜1÷YÅÊùãÓzâ ΓÎ5£s«JY3ËB[ËŸM¬sjXOãÀÆãïÕOÊ[×â{ž4o.pÄN€¿ý è™í›»Mн;{NT¨}ÿÖòª‡6–;;âÈm?‰åe¯G nOÁªú`õ…é+ö¶u”±gÈE¯ýu~âõ HÇmß­E{×N­\Í^1è8üíà›;ÿt¤öó•GìøÛ==ßPcÞfÅúyÆ4ªƒí¿Ù«Ž4/š¾°‘ëñxfþfåŸçSãýÒÇôaÁ˜Ê¿xG2Åû‹ yY«Ðµèzƪž_ ]ÃÅ/ë.u).Bëƒ`=³–c™Ìá/t¹âDÓÞÿ÷\Ó‹¥]é T—rMwaD^7» o‘µŸí©×#¯4¡;YhÛ'ëR Z—Š-e[óÛѽ¯Ô=¾±Œq/HÅ]a“,,sÙNÕº)}üDz’h*ö5ÝœóL“Ï Ùü“”'i:ŸR ?ÌE~»³Šïý¦  ûrÛ]2y!íGj7,b=eó‘zñ 8€è*¿ 2¢‚-ËuÙC“= 6‡Ãâ9øÕ#M[‹ë‚ù»†CŸnýáÄONü²/ŠëgTÌš“Sjl\©=÷¬üÉ>}ÅnÆCxÒt @€¡ö3 AxpHi­³ÿöØ¥/¿?nÿåT¥‹²áÐI3T9wHî¡T)o˜õçÔ%Ë+ ½O©å¶Ÿ”ò²Ðk ²’bðÀµµÙ_hQÑ_ǃC£æ;Ë›¯¼Úð!~.9ôŽÊÜÙã“S´Iª)‹·§œ(S½ÓÇÔP;x2šŽÔ~yðËN@¨Øsášû‚b¢+[Ïþ§ñùŠ›Í¨º#{®zÆÄA½õ©£â^ܱÂ9öÞ•ÍþùM^ù¦zùÄþ½©ðFóŠ·í´|{¡>†þhÐM·ª2G]`÷I$Î_Ëk²#–O•-ØFÕDꉤO]Á%˜¬¨?.õDO|Ýqû‹5TT4]jsÑm³6>Y“–¨í–1$~fÁkñ7^»¼êAŸ¢Þª]¨b®›]KQ·ŸT$õˆE6ß 6§þ¸T¶ºs-ç›v…ÃáRÆ'iÒ’ôê¸ÞZã¬e©¯#‹_ýw]á«›O<»§;áÛV0ã(ÔjEëé_­Ì0êÞŒü¾Î7'>Gd<ñµÈ|4âŠCÂ%vPŸïý›ZmUP}4ñ›4ýªß¿QëÑEÛ禸l„.yoεsÿÊÜîÂàã/ÒØÏ-›<*&I;ÑÑž)œvgkû}™UZ•ªÙÒÂèKY>iÇrÛ]2yüìç¹®³fE¬§œþ"FO€` €@# x€(Ýkši·î¯t)ÎZç÷?º. ’ÜÓ¥DAÖ3*E÷O(­ `g2¹Êw5¾øîAå¨d•>müݽ²Ðîjï‹ìˆ4]€$h'@f?3Úõòšó»J§±2™ö;¶^Uõþ Å£›'MQ!S™{TEvûIç/زDw}œÃÛ¡ár CþÃÊáxpHá<ë\÷à žÙlrî:±ªúcÌE¯ÍPÀ½¡ž“832;¦#µW©!œÔ~dä²Ñ¶‡F÷ŽA.¤¨9byøÞ§ñ൙‘Ù´¿ÍÔðzÕæYƒRÕýîLx=¯åÁ"SÇ›Ûø­Í¥íƒCµ‹k¦.Þê Â>Šö—ît!Tï«—!‘gZ&ŽZ]髃ÿîØ|¸>‰ª“ÖËÚ;‡"¸øgߥŽåçBVÄêiA–În*tW·3ë‹–/è1ßO šõxêü²òÊ—™ç»”£·0¤×Íè-1OÍIÚO$¶ñÔ%Zå§Ï5ÞWhj¿ß£"Ìlx¥laÏQìà»s{7–×xßÂ×+²ûHÁ‚ƒXÚŠ yDÊ?…ñì(iºŽøí‘q‰¤ÝÝåâ{?ˆê?v|bñÖ³=³¶Ê–ÙaÿGŠ~•Ýz]ü»»©piû©&ä¥%fƃ~>„:SœÈµ» üüE û¹%ò“‡¿%ì{ÊuúÝ5÷–3®+ž3l¿Ò•-÷À0¹í.<¾öó”Y˜Èõ”×_Èõôp_ €@W'dP‡­èÙh\æõÉÔàÐ¥SG.­=µê¹ã—ZÙb {³üt£'>ÛôIžsþ¿¤éüó¹rŽIí‡;x,ƒC^nûßCgšUÔKÝ‚6¹íÇ[^î&EîЄD…­Úq²Âô¼ŒÄxúÍ=û¯Çšã?nû 3V%~ ƒ2®ÍdÔ5R;¦ ý»KE&µcþ ¥{:Ÿ&TöÒÂÿçݽ»Åzß½þÎ>ÓŽ¬¿twê«gÅþ&æàPpMÈý…L^pm¨³™KRѶu‡[Vot€‰áZbôÆŸ Y}¯§ iûøÙÉ´åß½©á›?\HEÿçñ߇ú0Í/8”ƒÙuSÍ"+ƒ¤ý_ÈˬÖЦ22؉^ýô }?ïRê”ýg¨Âqé#‚ó€¥­àŒ‹P¤üSÏŽ¦ëÈß—HÚ—KÀýùº2+C¯´³¯y`›¥†žV iÔ®_j<½†–­úd‹w\Å…æå?©\²ä U^î–A€àÔƒùK8ä-زF7<ÑK ØÞ³t·wý$1\‚—0ÊÏŠð—Myjù¢ákp 2Î+Ló~‰ÖŽdí®Çâ`_T5µþ)o¯k5'MzræÉ<±ßŒjéú GƒîSæiØ4è¾n†ƒQûîz$¸ yè÷w¤Qãùè§½oÖñ}—,ØuE° ’$è,þIÆ!Òt¡àIË%œvz?OTÿBáâq^¨ž<²”% ß~2d£ëñšdÔúC?~¶Ýf.úÌYKk¨GÃoÏÕÈ¢¬ÔB"ØîJå/|íG&O\;‘>úéøíÛ·wÛ¾m«þ¥•O«gfý¬Õº|ËÇš˜+Pn»K Ì~n¼í ZO™üE´ž\Žá@®E@-gq2ñÍÕ³®MuØ…:F¡Ákáï+PÍW;.Þýè&εŒHÓÉY¶+Q–!o³bÅ´)TÙ«×,àXpTnû‘ÉËEëæÜˆ'Ôw¡ÿ¾µ®ªX€A÷®ÈiKÓï¬ypLŸdUòp}Á‘mô¨ñgkñc÷וÈKΨ|í'§N ËãñLÔÞ\×Ìø (-ʹûkúlë#µ&”…¬N9CiDëuSšÒæBÔ~†½êÉ’‰_øZ0wBï|__lGÝÜÌiu¹RáÍyÞGrçÀïLSYz5çªßVJK‡²"ퟤ,¡¾d¯¹Ïr{²JŸ2ô–x*©“PMÉÊ4£ˆµ»äþBf?ry$턚~&„6¹~@²Û ƒÑȉÓÑjNXÊ^y¶áÅRvo!+_P+ž”Ûî¢å‘ÙO°Dë‰,þ"žN!@®G@Ö"ÄX¯ˆù2ñÆìÿ|IQÿÌ/ÙX/ý¤éºž½:O‰²W¡ÿ™gL£^7â‡Ó—t¼ÝﯥÜö#·bÇ#qøæ´íìûs7šðƒuaÛÖÏ¿m›vÛUΤö\*uíGš‹YZXÞa‰-Ä~aQ2åEÇæ¹iB§L~ùÔ¶<}?ìk­æwÐîŽÜR\‡«¥ÑnHÕë¨Ô•Ç›Z ÷J—ªŒs5WÚ¾þÆ|é’=]=lx\ÿÄ^±¿™¶,å „ªç$ é/F$©<¼¶Ò_f J¥ô?úúÒê€AVb.ˆ»ê@½{b¹˜_FK^6œmþ-i(a¸n}ñcûÏ~-e¦áîº}ÿƪª¥hÓÄê½Í¢îºÉÐ]Ú]Âö3Âõ¨Ï”e)G¦,c p¡så/×Ì\ä~…¼®0#‹Ù×£Ûæ-K»5‹³•Þ[YÊrNnÿ$åIšŽ¥È¼‚Ds ³Ý…ßÏÖ?^´¸# ×Ó7/eƸø‚Í㨙„¶Úœö¯ØëóÕy@$!ý**ûÛ}éÑ«–sß4{êØ§G«šoŸ˜¡w$ ÒMÇËúNÁ-D©ÅP»+Ê_ì'J6°v¢ ™¿û¡Á®³)­Ö6§&¾§*9)5&-QOOg¬O¤ŸY°Mÿ››ÖTç®ay¡ |‚½Gn»‹”Gf?;ˆÔÓc‡°û‹Dzzô…_ €@W% ëQyá\ǘBTé™™“¯˜1}Š~Ä€ÄîWœôwûZî¿{aƒÿó'Òt9ð+1ìåhoÁ„tªWRÿÕ?.N~ôoœ_Q’å¶ŸPyÆ'ßPÞÙO@}©°åÞ•ÍBió‹”çOUá—ãìU?5›ý\C2tñI#ïOútWÿ¦E9KšßO*EÂøí'¡dÈJ ¹›ÓðTˆ”¿?ð<µÔŠÏæPŠG1ÔÔxë÷#½ꔚÆão×Oò¬~Á–½-÷í™8pÚü”%ûË*Y;ê¼üEByxŠÆMgÒëYŽï¬ÿc±™ñå”OQ}xqñMrE äb.Yàúû°÷jæIJÖ¹¿ç¡ÕŠîJܶ5+©{¨¨cRrvõ”\>d(+¨»n†•aûɦ“ŒõÈe½l¿Üær©Õ:…N§¦§‹ê“9?yß¶ =ðLÀšy>êòº®ø¤qà@ gšêZ5N•Êå3µª¢õ¤“m­¤Hø')OÒt$@Es ³ÝÉîç 럈{2=}-æ²VÛOW^¶¨T*_ŸV+ç~­ ùU¸onÁ„ö«Ü¹å¡axdjÿÌ¡Þii÷–šÚž˜˜âñ?cöd52I8¼ìgÙ(oXªÀˆÖ󨸤Œû^4Ìí®Xj?±ò„·&´öQ“ÿ³ ž¢°þéüßi'¼:‰z!õš) SV}SVùÏhc»¡„–/À¾¤a¶{€Z<å‘ÛOœ¼úòÔÓ_nñÈEõô¦ƒ €@&Ñ5ˆÊw¹3åòão¨¢îd]É£ôë×Í9'1iº.lGùŠf\‚Þ+˜œNMPûù?jC ±)&·ý‚Ê3ÎÇ_* äþR¡½mô’ç,¥ÁmA–æ6Í™3ûò½÷ÞÛÌü›ý@%à9„ü“”'i:Þø<År ·Ý‰ïç 럇‹Ð_b=}µU²Ì™3'Чsf7-*6qføfCt´_Õž£!¤w®ðV…1_.1íA?Òë"Ôgèíóãµ§—ë'sRžjÞ¼yiAÿæÏMËö($w»+‘¿xÔ§~ƒÚO¬<±íSQ 8ûÉÿÖ<£#–¢oεÐ_Íé’ÒÝcQž 0/ ÆSËý¹BMgöõöµµ~/ z5C"¸tdÒ÷$ärôT÷mNULœ²”¸$Ô“U­>‰È=*¿¨»à­¬q!PfÑvÝ”Qûîz¢èj ^ϳ™Mhëšùމ/>O]³Ôý~›ðç|#KCØuÅ“½¸_ÒònÀ"çŸd<1k";%*–Køí.æ~ž¨þ EØ_ŒžL‘ •&øW/ÌÈaÚgëWyDÝ=òZ<Í1^)󬩱ØHÿšÑ;_VÑ}~Wêà¸ùœ#É>‰ÂvPqæ+çæŽ?^Ïõ÷ãWß]ô~i(s»+•¿°d³Ÿ8ybÛ 6-2ÿÑõáÙ6ú¥%UÊu±î>8{\f([ù˜çíËlwÒ~Ž8û'ÂjQ\dôQzçg]‰Kç-2Å«n°Òs%;ã’´BîIÓE¦”Ñ,5 ½²ïñľø!´åøŽú©Ol58ä!!·ýäÙ­øQ´ÙlÆÃvvÁ y‹£’©5è‹W®ßï}CÞc-_´¿%×kظî|ohý²‘è0<ö“H9Ȇ‹€ù TÓ¬¢ëZræÒ„‡GR3¯Õ£=ë–Ð%o²œáŠÔöõ¯¬í_»ÙZœ¼ÖÒrµ)èèqÉ錯7…û‹8yî’üaÑ$5પûªec°©åDpñ2ëŠ;RqÉyAá^w¨Rºg¶/í&2©ôäTÈãÊèGÆÚ]œÑá„l¢ëº)DÔ~†½”××ÉökVßa#ü^Œ~]!Ð@T’NçŸAy)*i:Ž,Åq‘Éî"îç‰ê«Á"ô ™w"ô«h²Ñðþ:üÎ>¾ŸKÉŠÝ·o_"ó¯`\ýnBIèÖ)lÉòÄ\²Ú5ïy–¼¼¼®¿ß?º¶Õû’•Üín˜ý%À~"ä‰k'‚ÛÜÂxé-xLß³åó=ÍÿHn»“Êa?>0ì@ª'&«¿ˆÐ“ˆ€è*d]ƒ(4­Æ=‡²Âiu,ª$!iº YÂ)¿ÿŸ§bnLpèPÝÑ–?qMûÄ’.TÜöó—ç?o±¿¾‹·—w»EtúÝe5÷ù|±Pfj<=ÀªpV9M»ð"›•|z¦ñ–iýc]Jµ²WÀyùÂe?ùJp¥J2¡o+-׺iõÉ©ôTµ_«ñ_+(g¤AMÍÏÐ9´¯ÝO7½ÿ½uæ[è)ê8§HÄ_Á]•C'­ýñKïb$þ"FžÛºy莺÷À“¢sß~ÚìùÏ}Îÿr.þ9u­c)¸à7½Ý;Û¡é«W/núuBÛ²iýS4¦vßµò§Öœ»é—9Äq“BOn –Îߪ,ªÆÿZK½Ou¸ãÃùdDÑuS>*‘µŸá­Gdå7¡úf» Å)µº^©ÔH­¨ë ™ä©:Ÿró ^JÒt칊áBr?Á®EðP1÷óûEÜ/×*ð¬=s‹|ˆ¿ŠÖ('Sѯý«v…®›&A‡öC}Rû!_:uÂÌkÚ*J²TöË|òuåÁµ ÓçÍ_–vhOaׄRÉ MÍ£ü›“÷"©è¾âÅø!»ÿ–‹ò&ôÇS‚á­î\K°Z^vðÏóJGh?qÄA€—üÒòõksÉk®£ªŽm~ùL^¹D}cœOåã@Ÿíx†ñf)ÚóEM=ÆÝ£ˆe=ˆÂ=¿KHÅçU›”˜Ý_Áû ¡ˆÑÓc9æ+ÉüeÙKÿÔ~\p{:u½R5š¬«7–ó¾^yò„ßðòº^Måάý”¢‘–´Í~Á'©!k>zm_n¢û¦§ ™>)éhʉ¯+>"Â~IÿÄ“A‚4#‹»Ä\¢Äî‘Õ¿à¢<Y¿Êˆn½®ý0¿ î¹ðG±éÀ÷VêžÏ¥ì£ÌÊ3p>#ðO׎¥jwùöHËLf?Ri·Æ\´jY¾Š½Ÿ^)›×Ó=vúxÛóÞ‰fä.ŸÜv—Jo‹ÚTO¹ý…TOÞü "@  8Å\ÚünA¡±vu«SA?xQiãéá§î:Íz<ǰ{î5ŠQ6(ÿ½tF-5R\ÿQÊÉS¦¥Lœ}Ávú'sÓñ“§í5®„Œ!ʱãÆ&ôOTÑ×Ï|Ptá/Œ§è¤éº€]ÂT2ûe¯U¹ˆâÑäµGÒ'ÑÎ~ê½Kãæ¬£ù¤²ß¨‘õîwLR¦Þ7; 5®Þ¨„Tòsæ)ý*y a†!¦‡~È==– ÕýçÓ#Ç+lÎôÁ·¨3oÚ«ýED“ßš1dv@ˆ,©ý8J Á„vðÇׯ©iò—í®{oó´ô¤Äá±›÷ýSñáû7˜kb\CÇß©;$™žË½ñXIÝ"¿©w-^e[örË-‰1±ÃçnL}{ðÇ÷~ö³M‹ÛÞ1Yc»_ ÔQS$¾±d™wM#1þB"ÏÃÅ8æ%ýDÁò—œKȬ£:!¼îУcR“©¢ŸxkUÕ‹>ŸÞ”¢y«‡×|°vrz¼v€ê‰]kãwæЋL“¶KbüÚm=š€¯GðõÉs Î)lŽm˯ó)u¶È ¾nF^õpk@Ö~Öw ÓïÎg÷e¹×ot)õÊîqjïšC'Ë6U3ïçÅ\W$P•ôO!<™"MÇÌ#ä>!—¨±;@VÿB’ [u¿© GŽLM`ЄöL¬dë+±Çg%êWeME×Ð/-YÐÁ¾/9èªxh¤£¯V¥2Üz—›;¾–gW§…JÓîòïÈ~d¢Ü©Û o@ã¦LH™x×½ÎÚó¿\®8w¾õ¢¹ze Ð 4¤÷p?ƒ@è¿ï<[ÍôiÙË'¢?ÆÄÊßîÒøSvÐ}B;ßÏËì/Äz…']‹€À"„ºÇÇibtNMà|E*¤OÀ³ 3¶níOûš«Î;[Q Š‰ë­½vDï^׎È…ßj®´}¼mýÅå%&Ÿu\HÓùd>Hìç“€©ìWUÛdGýÜë™*lçGY‡(µ¤’ÇVDÏ— þçžàaKÌ–çÙC“U‰cÇOÃÞH.ìÛ¿ÚþwÓ2z ÔŒwHí@šŽ)öÅÂ|ýšÖÖTˆ¦Ø+w­˜•’‘pµn¬¼TêÁ¸g«9övÝÝüå+#Z0eC}Ñ»º†'kõi#&öš7b¢'rÔhùû“Ö—Hö$\^œVÝþ)WmóªÝ±CÌ¥#‹.¹'˜KǺCÇwÔ?¸ÑøåÍþÕèÙwT¯ž6(E•‘¿gC®uúb÷ÄõA°žìÖr9Pkã«ù³Ÿ_QÔ&™K³‹„PH¯›"DFIRÂöS¢z$’ÿÚ"[³ãâù³——n¹\èw?/4oiã ¸¦`Á‘òORž¤é„2Ž¡z†ŠÏí „õ/”@ÂóÜzfHŒ¤_•s×pzRnUãOÖ÷9úknUv¢/Ïå7÷Åë¼Æ]ó›8<{mЙÔo Ú]Aý€¥aóû…ã=Í&:IÔN45 züâqªR£ì•qM<õç„w\Öjûá›.>UäûUx8ËÇ”ï³/·Ý%ç£û«ýí@gI¨§œþ"FO6†€èЍrò̈ró3•×öIVõJÀ¯­ëTJGs½ãÄ—ìKÊ|†|õ!Mç› EŠ€ö3 ü•ùê©vuyñbk ×|t¥GÀÊ8==}´f@ï8µ¯ÅªpÔ¹Î|{ȶºhWàƒV‚ì!IW$ į=åw§Ù¿§Önoq5_8ÕvhÏsöAë„;­1'_qϘ!šä¸•Âau1ý»uuq°¶×#“ìW^yä\ÈJ-©¢…K´è-v=áºÉi(²öê'P’àŸìÔ®.dõWô‡F¨_5àÄ´»î´üú·¤@"d?‚v˜=r£ªÿU‰ê8NÙÚ\ã8þåö¢’òNøœHn»‹‘'ÌwÈìà‘A¨§lþ"ROOrø@tQ2uQ‚P, €@ €@ €@De”é ê €@ €@ €@ˆ$D"Br €@ €@ €@D Š6‹¾@ €@ €@ €IˆD„ä@ €@ €@ €ˆ60@m}@ €@ €@ ’ ‰É@ €@ €@ m`€(Ú,ú €@ €@ €@@$  ’ €@ €@ €@ ÚÀQ´Y ô@ €@ €@ €€H0@$ $@ €@ €@ €@´€¢h³è €@ €@ €@‘`€H$@H€@ €@ €@h#DÑf1Ð €@ €@ €" ¨E¦GÈ`DÙ†œM5*-5qggÈBó¦W ¿¶Ÿ6µW‚F«BJ›år[cíyû—Þ²í2¹X“¦cÍ ðµ•²Å”ÑÊõצ÷ê®Ñjµ*…­ÑQqú„õÀ[kì;ÙÌ/·ý$–gÈÊFC]Šºce®ýæz>¹O®WÞ1òz}¢^¡vR\ÌǬ»—>gßï«ý€TOÒt éÉH»A©GA² yÊ0=÷tNì´8ÃasµÔ_°}ýŸw[ ‹ËØÛOŸ ³Ð² ¹ša×%uë†Ã[6§¥ñbÛ/?|ÑúváVG@õ¥|Mh}#Ï'­û lõEV— å/"ˆ­õ4³}ÛBEsi) Ñl‡ÈN‡›\:³³u7ÍÜ,–jtn¿‰È…´ŸL™¼÷ÖÛ€|…¶ 0 ìlC°>ç,æRÄyV="µ;i:Ÿ‚‹8ÈÌ}R1cüͺŒÞñ1*ä@-õu¶S?Õúá[EV–bý…§®l\Ø’ØÜkg¶ØŒ0‹•²‡Ç.±žþy{õÑ÷OÇó˜MOáí’eáú¨Ç2«q]3u¥ ³L~M›Kô}9ÎE¨¿*Ÿí® yTyŸ/Ñ@#ðŸÐò‰UQ"y¡î'ØÚ 6Õ}Û] ü…"wÿ–­d€è¸¤E1æ>«X9|ZOœÂyÒ¹ftnU)kfYhkù³ÉƒuN ëiØxü½úIyëZ|Ï“¦óÍŽØ ð·Ÿ=³}s·Iºwgω u ïßZ^õÐÆrgG¹í'±¼ìõè@Áíé1¸@U¬¾0}ÅÞ¶Ž²1ö ¹èµ¿ÎO¼>é¡í»µhïÚ©•«}*©ž¤éÚU¬g`i $ÿz˜VHˆ1o³bý×=^ØõD¤v'MLJFˆ8Y Ñ‹îé90QËSyö½Æ‘÷®kfžë/̼‚ïçÂLëoóÌe;Uë¦ôñ£e&¡÷5ûšnÎy¦)à„ r=™b:¯2µÄû9/(Ž,º- µŸzûÒ¸9.ûňÊCùüZü}9X¨¿.ŸÈvW°<Ü~’=_ŠŒ» /Ÿ8=%“ò~‚°=é/aýMiê‘8«@j €@ç&@ø‘lY®Ëšœè)žÂæpX<¿z¤ikq]0×pèóÏ­?œøÉYo­ãú³æäÄß”—0djÏ=+²O_±›ñž4]€àC@¨ý hRZëìÇ¿=véËïÛ9Ué¢l8tÒ UÎ]#’{(UÊfý9uÉÁòÊBïSj¹í'¥¼,ôÚ‚¬¤<ðEmmvÇFTô×ÇñàCç¨ùÎòæ+¯6|ˆßŒzÇ eîìñÉ)Ú$Õ”ÅÛSN”ΩÞ鵩ž¤é(Á$zz†VBëk&üs_PlÀƒCÔ`eëÙÿ4>ÿBq³õAwdÏUϘ8¨·>uTÜ‹;V8ÇÞ»Òç¡ •ùä•oª—Oìß›Úo4ÿ§¡xÛNË·çêcèÝt«*sÔÕ vê¤w#­ïî „Ëó f섳þ1ÄtÕ]þBŽ„ >êiw´âöX‡\øšôke³Å¥rQ/»øljµUA]£`ëŒàzÄf•6§þ¸T¶ºs-ç›v…ÃáRÆ'iÒ’ôê¸ÞZã¬e©¯#KÕƒ>/â°åÄ·ýdKË#Œ°Þºs&h'x¨¥ÉŽl8ºfÛ¨;x绥¦¶jú ¦¸-óýPÿLDù‹f¡=\N»³µÍÅzï®ÒªTÍ–ßsvO÷Ó**š.±¤U¨ÕŠÖÓ¿ZCk:±žtÖß?™~?þF­çXÛ禸l„.û¼7ç9M¿²úµ¸ûrª(ì¹ 6IùÄ´»$òð7idÏ—"àhDå¡§dòøÝOµgbü£Þß[DØ’ ¢„€à¢üu¯i¦Ý>¸W¼Ò¥T8kßÿèº4dHrO—YϨÝ?¡´6€‰Éä*ßU￉ȥ£’Uú´ñw÷ÊB»«½/²#Òt’  ™ýÌh×ËkÎï* œÆÊdÚïØzxUÕøMÍxÜA¼yÒ2•¹GUd·Ÿtþò‡-Kt×Ç9¼.2ä?¬Ž‡γÎõw?Üàéð˜Í&箫ª?Æ\ôÚ ÕÜÚé9IÌ…¼|dzr•ÂÉê)·l´í¡Ñ½c )jŽX¾÷i<8Dmfd6ío35¼^µyÖ Tu¿;^Ïßky°ÈÔñ†9~ksiûàPíÁâš©‹·zÇ‚°¢ý¥;EÕûjFZßq.Dò|¥SGá­òºVˆ!AVÄëÙVyÀ2»‹¼‰Lˆ>*“Áõ(¸Ù*?}®ñ¾BSû}wfÃ+e {Þ˜ˆbßÛ˸±¼ÆûKV|ÛO–¤<‚Èë-Y;ÁC%¶(¦Õhâ¨Õ•l§:Âðƒ¯×'Q÷zÖ˼ƒ²êÙ¡ "µ;i:†hž»ømýE“’ã‘)l¿8Šš]]̘* ÷\»Š7ú}Bî/<•âŒvúÝ5÷–3êgT¿t`éì¦BFÙü"Hz(TÏhóOjpâÖëzà1E·)\Ú~ª ¹Ei‰Ù[ç$*Kfrû5ù}9™¿–¸Ý%”GÜŸ–ÅIBHËÇÈBЮtò„ÞOjψýà êo’×#Aø!2@ Š Ôa+U6—y}258téÔ‘KkFO­zîø¥V¶˜BÂÞ,?Ýè‰Ï6}’çœÿ/i:ÿ|®œcRûá *Ëà—Ûþ÷Йfõ²¦ Mnûñ–—»I‘;4!Qa«vœ¬°}=#1ž~sÝþë±fïø‡ÂþèŒU‰ÈÇ Œk3y×5Þzzä´ÿK=ýÄ_A‡¤õˆ ‘1†Ò=íP*{iaƒÿ3‹ÞÝb½_O\ç Ÿi·Öß?º;õv´³bsp(¸&äõLžŸ6®~ÚDÝ¡!+,Y}BO…Jãõ}2Ý!U$Àõ(8uµ†þà“i'zõÓ3ô}²K©Sögœ ØÐ~¤å@^oÉÚ *GÉ\òŠ~¨îpËêž+"§'©ÝIÓ 7cÝ“÷Táôù«³/0‡¸ò"÷®ù‡«5Bz”Ì|UHÛ‡yÞ}azFŸ¢¬©è<«p:î!"ºalV¨û ]dîòû5é}9™¿„³|lín¸äë‹tAÉÃU>.%$“Gp?!¬=ã*AG8›¿PgÉú›¤õ¨CØ@tu¼Z»AT£ï¨yùñQ•wÎYHž¡U‹~@Ó7¹=ç:ž\ÃÉ=M] )HÓæt¥„„Ç~È0õiÿÚ¦¡êBÇ× !°Êm?~òf¢íìM9äÏÿÚTs¨Aá™s‚½4v÷ pš´!ÝðGB¾›Ñˆ®¢×ÝjÂõ†¹6“o4ÿ#~zú§B(hº0è¨Á•¦zÄoÂèkèyþUu?¶ü«ãóJwlÃBô‡)ý¼sæ»’‡èç{Öå6.G¿Ivá'$­è³ÍÙ æªï’È‹|ý¤s¥ õc–q›eôøk± î88^ÇFVHõì {QK®G‚MÇHá·X'ãŒÀö“‘’ï.y½%k'øê%8ža>Z8­?¾v6¡½/,ªïxñ¢séÉÏî¥'M˜“'$Ý=Ú=­¸³êPó‚üI3Ü_xd~EF‰>ÿœqÇ î¡º‹ßZ›[(³ÅŒñYQl¿Nç×\÷åˆÌ_ÂV>Žv7\ò‚ö‹eô¿p•«ÒÈ ÿý—þÞpA’ô7½R:v8ëQGØ@tuˆLhÍâ?ÛK‚Ím!˜X.š5:^˨åä×ÍþÏ?¹³#MÇc×?û!ôTÁd}O šrâƒb¯N#žÜ˜Ðî¤Vâ'ï©móõð"ÑÔs‹Êq±xòÄ [yáÇŽ*|Þ¥ zjÇ fŸ­]2%žš§ÝYajêX—)Hfô)~zæ<ôzjpå„„§±óËBפÇЯÁÖžþÖÒñË{íºñIx÷‚ÙÜàþÔ- •I¸Ï™3JKùŸÒzÒ^¶‹ßÃv|C¹ê»ò"_ÿ|Ë}GäþrÛïÖÇnÞ¼9}ó¶é›ó ,/~àÎbùÉTœõŒg,NNRÈõŒ>›€ÆþàzäO$ôq¬^G×I¥í²£š#ºÐö“#› Ábê-I;DQ§ðXèI];Ï—o©YíÓñèLz"ÄÇîl(HÓ±åE‡åd*úá{cjš°c»·ý²¾#1þÒ‘ é^›ýiRYÓ Ó3ÚüÓ€n–F÷9ÔRü¹{ý&§®¿f|¶¬˜%Y¿f+×}9B$þ®òqµ»á’¼_ÌÆ1_³Ÿ|]™•¡ŒWZÙ×<°ÍRcSгwУCX¥~©ñôZ¶ê“-Þç_†,4/ÿIå’%O¨òr§° /K°ú.V^¤ë_ð’GÉYþ²)ïO-_Ô!| ŽAÆy…iÞ/ÑÚ‹¾v×cñ°/ªZÿ”·×µš“š=9ó„QD®GÂŒ•‡~G5ž~ÚûfÛ;Zdí§0-ðçƒÄ×#’Â}Á–5ºá‰ŽXêE {–îö®ËV¡D™‡¶;{¶¤éØs£B§ ê«tÏ ÖŠ*+y®aIýtüöíÛ»mß¶UÿÒʧÕ3³‚~Ë]ø0Ÿ‰=1ðð3C6º¯F ,þøÙv›¹è3g-‘ ¿=W˜g„Dدý »/÷Ëë8Låãlwà _¿˜ ñ‘ÂP¾ JI OÌý„Tí§¿à‹ío²ñ“¼± 0 €@PË©c&~ ¹zÖµ©›Ã¡PÇ(4x-#ü}ªùjÇÅ»ÝĹ–i:9Ëv%Ê2ämV¬˜6OчT×,àXpTnû‘ÉËEëæÜˆ'þw¡ÿ¾µ®ªX€A÷®ÈiKÓï¬ypLŸdUòp}Á‘mô¨ñgkñc÷וpäE¦'B¤éHõäP‚å €Çx<µ7×53¾ÎËE‹r®ÇþÚ†>ÛúH­ e!«OÒ‰\*•>‘øwØZøXlÍõôÀQÁ–ݺ»†¦'z(õóú£ã«½«_Xæž>H™BÕwqòä¯Aн§Dø õ¦é‚'Kê÷lËME©è¿%~1)Ÿ~=cÝÛjÀ¡Z´ã1w˜(H¢ôì¬TwWd³Jq7¹g²˜KÑ~ÿOî˜`?¢àzÄ&~‘jÁÜ ½Sðýrý±us7²MWKÞ~òÓ¢=–DõVL‰#S/VÜK­1é¬pò}yGbxeÇÏîY‘¦ ÌÉ7dðõI:*Da«rœð¾qâ'à(Bþ¢¦û–i“ûè$»µ`ŒFNœŽþPsÂRöʳ /–¿8ô0E‘¥WPsôúmÕ¨´”mˆÖ/C)ôä!&,QøúYæt£Ê=ÃÄYLJô´„/£ã5÷YnOVéS†Þo@%uÁ-õÅe!¿fS:Ô}9[šaa(_ÐvWy¤ýâ,¤ˆ Aù©!ZÙý„”íYPÁ0Äõ7i†¥Š €@Tu€1Ö+b>¤L¼1»Ç?_RÔ?óÄK6ÖEÒtQa‚(U2{úŸyÆ4êáu#~h1}q ÷[˜rÛ@ÞŠÄeàNeÛÙ÷çz+æo›­ŸÛ6í¶«œIíS*eíGšƒ.âK '­i:œ˜HOZ(üø;6÷ÈM:eò,¢§uÜ–§ï‡}­ÕüNƒÿZ©®ÃÕÒh7¤êñª<ÞÔZ¸çP¸Teœ«¹Òöõ7æK—ì±èêaÃãú'öŠýÍ´e)o T=7Ø QÈúnDbäE¤þEÄ aJì/ÈÝ~›_FK^6œmþ-i(a¸n}ñcûÏ~-e¦áÇlôý«ª^d½H ,—X=ÛÅ)3ÆÅlGͤ°Õ~༰Å^Ÿ¯î"A@D ÀõˆŸ)ËRŽLYÆ8éBçÊ_®™¹”ý>KlûÉ|W¢z\HÏâ5ûþ2kP*Õ–}}i5×Ë;aÔ hÖBíîÉŒ4'½_…³Íy‘o‚ˆøK2÷Cƒ]gSZ­mNM|OUrRjLZ¢žžUŸ=ZÕ|ûÄ ½#an:^ÎÿÜâË IñkÍCÞ—³¤á$uùBµ»RÈÑ/æƒDT)Ê'D‘òÈî'$lÏBù žzNL3e¸êQ€ @DYˆÊ ç:Æ¢JšÌœ|ÅŒéSô#$v¿zä줼Û×rÿÝ üŸ?‘¦óÈ_‰ d/G{ &¤SOåê¿úÇÅÉþóë/J²Üö*ÏøäÊ;û©¨7J·Ü»²Y(-c~‘rãÜá©*üõ‘½ê§f³£ŸkH†.>iäýIŸîêß´(gIÛû†BõôèEšŽTO\øí$r7)¦á©)-~ày‹¿Vî¥xC¯€Pÿ»é5P§Ô4»~’ïÔ`õ ¶ìm¹whÏÄÓæ§,Ù_VÉÚQçUßÉåEªþùsë²Ç¼ü¥£ôæ’®¿{¯fþ˜¤dýû{Z­è®Äm[ã±’º‡Š:);RH´'POJªËZm?]yÙ¢R©|¦KT¨Šs¿Ö„ü*N"Í!p=â†æ²^¶_ns¹ÔjB§SÓÓ0õÉœŸ¼oÛÀ†ÇxÆg-:±í'·<ÏÔ[ž9KÍ€6mœI¯;d9¾³þÅ<§I“X‹`Ù ±;3ÒtÌüQ¨‘q z¯`r:5e@íçÿ¨ 58ÄVB¹íTžq>~£t`È7JÛìÏáÝEÃÛÚH…*ñ—jŽš#–Çù»Õ7–ˆ#‰ôl«K=üákIxÕ ¼Ћ˧÷ ËPãwÖåÓ—4z¾~[ûÀ–·7ÖS§”©ãâö¾4OKíóÙØô—.¾»"祧´S£Àƒ‘s Ë_H¤£ní_ y$ÚmÞäg?ùßzö‡¥è›s-ôWsº¤t¿"aõD^g¬~Qù+Â_üË{ôT÷-lULœ²1Çé©Pi‚¿õ+FGH&p= V­ÁËËy6³ m]3ß1ñ…Ãç©kºßoþœo¤ïÝŵŸ~%ª·$JOYó;üE$5µÜ×Û×Ö²~4"$Q¹ðµ»¿Òtþù;þê‡óôõÀ¥MUñ>)–Ÿë„þb.þ£ëómô˪”ëbÝ÷òþåP!­¤<ÿüCóÓ3t>RÆêgw¼–^·ªí¬©±ØG3zçË*ºÏïJ7ß;âíI¶ƒŠ3_90ÿÐpüøñz®¿¿úî¢÷˱ˆúµ°ûr"ˆR•o»+•<–Â’ö§Y²òuz!äÎû ^í_Á– éoz HïÈP|Â@ jÈ:Å\0*Õ Ö6”¡Gθ$-u¯èyÐ, uŽ4]¨|á¼?,ôʾÇûj*ËñõSŸØ*jpÈ“»Üöó—wÙnÅ ð?›ƒñ°Ý£]ð_CÞbŨdj [úâÕ‡ëý×íÝ÷XKŸ²m:ê­Õ^ÃÆuÏB[küãpIð×SL}§ž\úC¸DÌ_ šælIqmræÒ„‡“{b«G{Ö-¡px¥ä W¤¶¯emÿÚÍÖâtzÏÙñ¼—œN}½Ù^¯…×w"yç­¸âu¾úWç>%Â_| –ó‚½îP{hºg¶/í¶κË>ñH¤Ò“T>¤‹¸¢ßµÃuò‘±¶ñµ ï°ø…“‰¸!Ò"JëíMÒQ/ò¨ê¾jÙØ §– j 6»MÐ~’4GÞ妟–iý‘ÿ3܆gz(Ýͽî¨'Nê/úå™NÓýõÐ ø =9ý, ï¯Ãß2¸*%+vß¾Û}^’Siõí/$%¡[§•/›Ã8}mYßsÉj×¼’öw±|O±E̯…ß—³ D¨DåãÝîJ$«T¤ýi®ü:½¿ó$ÂÅŠª=ãí/8S¢þ¦ˆþ-³°€èê:ͲVã^C@á´:9&óbµi:ÖÌ “Àïÿ穘:Tw´åONÏ!·ýüåùÏ[ì`ñöòn÷ைN¿»¬æ>Ÿ/6ÊL§ßâU8«œ¦]¸°™Qɧgo™Ö?–š–£WÀyî=¹cúžaK—F=}¥Ã‘ôLèÛÊFËõ†nZ}r*=GíÁ×jü× ÊiPSóêãWvѾv?Ýôþ÷Ö™Cn¡§¨ãœ"wUR ´öÇ/½Sˆ‘Ôwyå…|Ö¥óç©úç¯Gô“ûKGñ›u´¦¯^½¸é× m˦õOÑ ˜Ú}×ÊŸZsVìnëˆKº'…ž¤²!]$ Àõˆ”¾ Õ7Ûm(N©ÕõJ¥ó­bî_È´ˆÆz›‡î¸¡{êAõ¹o?mæû² Ÿp¤ ´;?)¤é8rßl¾“ ì3â·ñF´»Žý«dfúÎé/šö‰{]Jĺš>¢'=¾q¢ì¥K¡;…|Q °_ÖL”—;EätBäùA­a£ã~Î¥T)içõKCÆ1f@ò®ÐÊÏ7ˆTO®táÒÓWk8r`óN6<üúßþÜá:x€vÕâ]~oîÑÄ›Rè©Ç›¼ëíúÐu–^_¡´Á#ÜãGŠL@}ñnµ¢Ê3î/ŽHë;©¼ä­ò£)„Ø_Ú Y¸ç }ñƒUãQkÁ£¯µ–Þçxï”õu:cb~ïõ|§jÏ«>ˆÕ³={ø‰:p="3Ù|48UI¯™Òxú¿ÞÁ|>y±·Ÿ|RÆ W½åj'5’•†zÒ_×ZÐ÷ñøê%DöaÓ“S.©ÝIÓq)²½ùÑIzÚdGÂpÝãKXÖ,dI.aÅ3(ûkñ—-x„õÌwMuºA„Èôì,þùûñ7j閾ÇGªÅò·ã¸…ö'ÍUCãfò´^g‰&©_óè ÒûòÀ¸üEtù¶»¢åq–“«_Ì™ ,'$-‘Tž²û‰í™@A¤ýÍ0Õ#?Dp€ˆj¢ˆ*lîu.Î6§w~^?$ÆÜ%Šåy™œ÷lY©ž€ð3v¼0蛼Sئó‡Að±ê“‚'• ¶&tê„™×´UTl©ì—ùäëʃk¦Ï›¿,íО®骥’GéÎg+ÿæ¤Ã½HG*º¯x1~Èî¿å¢¼ ý“èкs-žŽ(©ž¤éHõô/ só‡Â{@IDATàUü’óõksÉk®£*΂“W.QSÓQS~¶ãÆ[˜¥hÏ5u”ØCv¢öu+˜jîù]B*PTl^PbvGXß"”ÇTHÀ>ø5;,rA(gÃÍ8ú!t-ÚñX¾÷ ñus^¸üƒU‰&õhüâí)¡æð©bôd/9„F¨·¡­Ôf¿àÉ5½¶/7Ñ}3Ñ„LŸ”ø½$à=¬RÖ[>í„èÂ4Ùð•ѽ‘B“EO¬"©ÝIÓ e[^¸Âq¤FAOò0pÚâ”U9ˆµ_g0vÜ¥Ké/¼ô5æ¢UËòU0Se£WÊæõtOÇÛ„>Þö¼ +˜‰ß—PÏÎçŸFtëu=èA¸ZüÕ×K…›|o¥ê¦KÙG™•g`õ%ñ Ã“ƒT~Í·@Úg+=]>í.©<Ò~1—p†‘–Ï_'¾þ"•<ùœÇbÛ3þBÜß$îßr–N ºSÌe¡ÍïôkW·:ô@JO¿$äÔ]§Y¿o_¢{î5ŠQ6(ÿ½tF-5R\ÿQÊÉS¦¥Lœ}Ávú'sÓñ“§í5®„Œ!ʱãÆ&ôOTÑ×Ï|Ptá/ž§è5iº.g%É Df¿Lãµ*÷Q<š¼öHúä úØO½wi\û:RÙoÔȞɪ‘2õæ¸ÙY¨q5ËgfRÉ R<ßS¥B¥34Ì0Äôй§çÁ²¡ºÿ|z¤ñx…Í™>øuæíC{õ ß\mòY3†TOÒtˆPOßÂÂQ²zÔ‘Þ½ÇׯñÔ(Ùîº÷6OKOJ»yß?¾ÿqƒ¹&Æ5tüº±C’©åPã±’ºE~SîZ¼Ê>¶ìå–[cb‡Ïݘúöà/îýìg›·½c²Æv¿:A©£¦H|cÉ2ïšF¤õÒD•Žh¿æÀFè/xÝ¡GǤ&S™žxkUÕ‹>s1•¢y«‡×|°vrz¼v€ê‰]kãwæЋL#DZõd”ZÝoj‘#SAŒÝ&´·`b%Ûµ‚ vå&õ6$ñ~w>›¸/˽.¢K©WvSãÜÛɲMÕÌûdO¸|¿¤õ–´W2㘔ô“jÞÙDFOJ=R»“¦ãÄÑŒ>UÜð¯Wóbúj{ª&,:˜vÓ‡ëË?;f­A ¨ßƒzȈ›ãû4}d—óLûõÔ_¼B…íÄи)R&Þu¯³öü/—+Îo½hA®^4 é=Ü}„þûγÕ½6ëþ™5]C¿´dA_ûj¯ä «â¡‘޾Z•Êpë]:TlîøZ^˜Õ#[¿æÛ ¿/'õqåÞî’É#îËî1dåóW“¯¿ˆé7úËäuLÜž¹sî/dýMòzÄ‹D@t ˆê§‰Ñ95ó©>Ï2ÌØºµ÷Êš«Î;[Q Š‰ë­½vDï^׎È…ßj®´}¼mýÅå%&Ÿu\HÓùd>Hìç“€©ìWUÛdGýègàHa;ç8Ê28D©%•<¶"zÞ@õ?÷ü[b¶<ïÌšœ¨J;~þóFraßþÕö¿›–Ñ¥ž`R=IÓQrIôôè ¿¤¨G|ýš–n*DS ì•»VÌJÉH¸Z7aV^ê†Z5ÇÞ®»û‘¿³|edB ¦l¨/z÷Q×ðd­>mÄÄ^óFLô¦tÔhùû“Ö—ø xOì„Gž”õ PÑ—D°¿t¬;Ôx|GýƒYŒÞ¿=û΀êÕÓ¥¨2²â÷lȵN_ìþ’¸>Ö3úL€ëQ fˆÿš[³ãâù³——n¹\èwŸÌLǵÏÕ~rÅNXo‰Û‰ qGˆÓªÛ¿LàO!zR% µ;i:njAΘ‹ÑìÛ«ªŸÛöým†^=’‡Œí9kÈXŸöÚËîë=¡„þâI.è·©ÕãS•e¯Œkâ©?fz—µÚ~x禋O•™ ¿¯0ó´/BÏÎîŸ9w §'åV5þd}Ÿ£¿æfµ}y.¿¹/^ç5îšßÄáÙk½3-b©Èøµ ~a9‰ýEDùHÚ]D OL¿˜'y2‚òù ä/Èó—O³¶Ž"Ú3*O"Á/OÊÛ¿¥4…  Ðõ P§ yŠiD¹ù™Êkû$«z%à×Öu*¥£¹ÞqâËö%e>C¾ú¦óÍŽ"E@ ûPþÊ|õˆT»º¼x±µ„k¾ºˆRÈ#`eœ‰žž>Z3 wœZ×bU8ê\g¾=d[]´‹£Jª'iºö2 Ö“€$áI@ˆ_{²t§Ù¿§Önoq5_8ÕvhÏsöAë„;­1'_qϘ!šä¸•Âau1ý»uuq°¶×#“ìWVyà×F"÷Ž Ã-z†©øWj¶Po£ÜòPo£Ü€âÔ7f£'&V ¼ª·&µ º‹ç?}}¸­xW9GŸN>1fÏD£‡Ü¨êU¢:N§S¶6×8Žù½¨„K7q(HSG‹ž¤å»2Ò‰ñkwZ~ýÛHÑS>…ÊÙ/&QQT¡åc #ñ1ò˜²CïGª=“µ¿Ä@D5ˆ¢š(€@ €@ €@.C@ÙeJ@ €@ €@ €àEˆxa‚H@ €@ €@ €è:`€¨ëØJ€@ €@ €@^`€ˆ&ˆ€@ €@ €@®CˆºŽ-¡$@ €@ €@ €àEˆxa‚H@ €@ €@ €è:`€¨ëØJ€@ €@ €@^`€ˆ&ˆ€@ €@ €@®CˆºŽ-¡$@ €@ €@ €àEˆxa‚H@ €@ €@ €è:`€¨ëØJ€@ €@ €@^`€ˆ&ˆ€@ €@ €@®CˆºŽ-¡$@ €@ €@ €àE@Í+V°H#Ê6¤àÕ¨´ÔÄÓ…æM¯~m?mj¯V…”6Ëå¶ÆÚóö/¼e+Úer±&&MÇšàk?*!e‹)£•7 ê¯MïÕ]£ÕjU [££âô ë·ÖØw²™_nûÊ3fg#Ê‹Cms)Úoö‹EÂÅ“…a&zîéœØ!iq:‡Ãæj©¿`ûú?ï¶—±ÔÊÎ6xR†üeÕ§Ê}r½òŽ‘×ëõ µ“²Ÿù˜u÷ÒçìûCæ8 ©Gœ™ð8!È_üóËBË6äj†]—Ô­>Õê°9-Û~ùá‹Ö· ·:ª¯¿Æù ñ3Qõ¯½˜Bäù“é²Ç¢üE¡õA¨žÞüCèh1£Ò€;D8-+¨·~¸·»ÒÜøi!ìÐ[Cô|rx=òI+ð@hûÒž}fÞrÅœ;†uë­×ªøzYSanÝÿöÒÖ™n– YÙhh¢KQw¬ÌÅÙŒ öìxDç¥'ÎGvžÑbw¡zR6'éOó°¥(¼ìÞ ü3d™$æÉ‹KH¥8"æ)áõ!Üí<©HÓq ,Fž`û…Ô†#¹ÝÅöLjÛy¡í OÉÉî'àþÓ" h ü) c•óǧõÄ(œ'kFçV•²f–…¶–?›[¯®8†!½ö×ù‰×' ]`üZ´wíÔÊÕì80:„x ð¯GÞ$D;‚ý…!%3³òÏs©ñŒ°Ž]ú°`Lå_¼½Äùµp?#­í%¿î0%cOŒ¿0²¼+´>虹l§jÝ”>!Çô5ûšnÎy¦Ip! Aø @½õcLØîн/ðÓBè¡ÐúNå/ìz$T#ßø$í BFôÜŽuqcûÅ%øææ>:WþrÍÌ¥%v¶s’…e¯G n§ï÷îåh!„þ"™‚í…Ô“Š'?Ïh±»p=Iû9>¤Ý;‰†,¶Ä’&ùŸ™4É$™If~“LÛð‹ìÌ™ó;çw¾¿sΜ3ç…íO'@¼BH ¸® 2œ­ËÃÓ†ÅÅØÃSÍæ&ûÇ_ mk¶^*ý¦îð—_¶|wúŒ¥’~²‰ìgPÍšõ너Èè!wõÜ»òŒiúŠ=íß™@ r  ƒ ©öÓ“AtpHÝRc:uâ䕯¾=eúùl¹•±á°É34éwŽˆë¡Ö¨ožõÇ„ìCÅ幎Q ¥í¯Í¢¢[VÊb²´¶YyVï¢Ñj4MÍœgP.Ô/©6ÐÁ!f°§õügõ/¾”ßXJú isBfLÔ[—0*òå+,cî[Ùè0]ƒ‰é¯"3õÃŒtµ™T] $ï/ éà9Ü\õMÓ›¯n«û®„6a†:ãÞñqñÚXÍÔ%;âOÍ®Üåˆ/¼Z޼‡æõ)$¿´8eå›!Ë'õïÍÜÖ—~V—_°«éÄBúèû“A¿þ&eÔuÑ®_ºdäkú!’Ï`åI,>F2¨2ò œ  <@õ4Ù› fRWVÖp…§ÎV…„¨Zú¥ž” ,·žlõ®¬v§â]å.ý}$^#Ÿ úEO^~÷/=FÅYu*c¥ùÐ;»«ö:c!ñ·’û™ÕchœV×'e~ÜëO©xpc gB”Gì2RÉk‹RcÃèÄ+æçÚ–³ Ì/vq¿ü§§â<»ŠÝAzÂû9~19ˆ8»ÃúþÓR\Hþä)†‹8­<}Ë»ì÷ƒRõ<ÔP9OÂâ\ ñí'N)O_2ìëÉxo‚êA[’aí lzftAH 8 H^A”µîµÐiã÷ŠR[Õ*KµåÛï­W† ‰ë©2–š—Ž›[阄îŒÃçÕËï¢1 íŒI *çS¡ ö³Ÿž¤gÜ Ú]È·í…Egª|@W¶0«.ì[S9sÍ>[¯ÖG¥í'ŸsFйw–VÞŸ[,Jº$È%®XZÆ®XRUizàî§ë¸»Öžz]½yÖ ßé7V<˜'å#í |¸>ö¦H³ö?o-¬˜ÓþCŸµM]0çæ•å<]éwŸëJ?j¿©ýt¤•|²v|ùs¸ŠÈGÎ%VŽ|+àAF~IIuhñm‰Ì€aõ¡üª»–lw ⚯i‰å3hùƒÆÇ›è r”‘_€`å®gJö›šuÓúÓD 乓Ês¹(0 (¦X=¡œ~¼Þõ­/»À·¿Xy§aÞGü:øv…Õ/)ËvÒÕ‰ýâU–2KþèôŠ|·ˆr÷Ž› ŽdÚR/ѶT &Ô<¶õýð¹Ã¢ðøÛÕÌ/n‰¸£§ò<»ŠÝaz ˜Âá,ÜÏqx‘}!Æîðþ‘lõü€žâ¸@Õ dyç?t¦z^Џ„¡rÜ0¤\ ÇHûIÑë—Ïî°þ¼ž—QÛØþäæ¼FH xP{:ysI#cSnŠc‡®œ=reÍè»*^8u¥Õ›„˜goÿTo÷Ç·Ý–ý™û_¨œ{8×Î=Ô~¥Dppˆwà=r®QÃ,n‘ôSÚ~bâ •’a\ Y3Ô¶íìȾW\‡€½»E0·ìï¦;fðnqbîþ7%ûa 38Dj>o^͙ݚņiúåd£ÇøÏƒä\‹š„‘äR$Ö î\ ÷Ðrc#'¿¬`twfpÈRv AÜà£#,_3’ró™´ò'?>Fç`ûÉÉ/0°òà=5DÛ¦5Ju¹õDÇiȘáõ®/­„Ú¾äøŸÃÊ;ì}į…/WXýb ÷ÀìšM~ùç–*÷Á!Æ={ûgõL§Çªî§¾';Åç¶ÄŒŒ¤_Æ&UbV/ýXÖâe{ÌÀåQúŠÒSyž]Åî0=}[FL?Çw(^|ˆ²;#ßÁùÓK¤<ÍS4)±sýŽ'ÿû¡sÕó¢íÀEF¯¡rnÁˆ¾Ž/pö­œ›G~»;=‰ïÁëy9õ ´=íO§ñ $ÀG@âÇàJòí¡ƒU[Ž*¿cöÓW™ÍÉôìV¾€¥¸õëÆv²è&_ámêX-ßÜ3¤Ü=â½@€Ê‘^p~1,'¿¡ÛäÐM É;sœ[ Ä#ÚÙ[yW:Ÿ)ŸhHçš_ ©b uÁk}£·ù¡þœ?Xy€ê錯º,,·ÒMç­Þõš·v79Ág°òNõ>ÐT¿RI¶-Û@N¾/°’¼è9ÏN¨!¤¯a‚”Ešrg’ìÍtˆ~øÇ¦ªÃu*û^š\O⮡ùETè"õìž]Åî =EØ&°ý‘v¡§PÿHŒ¨’~Äñô#hâ å]ðýйêyqvð„•ó Iœ 8>¨ýÄ©åéKÐîž^}ºÈ¨çÁõ œö¶?}š= $pm8@TBÖ,ù£©ÐqÆŒ?àeY£“Ø­šüºÑý{¹p P9áƒÿI ìGÈ39StÌ”K•ñgóù%œso¼UÚ~ââk3]ò¦´¤gü\RÉõIaìG…êŸN4¹ âÐÐ×®›Kÿ^*-­³M%cf‰™¥J÷ÔÝ8·'#{±xkÕj·‚Tœû±¹‚>³jhžÙ¹"’^:~k³§F1ÛZÊJœçG9ã…À”#hXx~™={”–±«ºåGÓ¾ÝDd¹äׂëÊŸ¯m>äæ3©åOn|ÜtÇ5<¿Üö‡õ›7oNÚ\p0is¦žgâýRüFãgý£ãÙAn3Hy€ëvº¶SåVºý½Õ»Â¡yoËy{)ï„ê}į)´~Ѳç72§8†2/OÞ_±Úhâêfòú9>S0_7@kÕ0+~çä["#¬ûhÎxaùÅ)ïíJ¼žJóì*v‡êéÍ*Ì3qý_¡=ow¡œîÌŸÎXä^‰ãéO.Pa<½½:S=/Ξì rž!‰sdzŸ8­<}y³»Ó·øþ´ž‡×ƒrÚØþtÚ¯@|À¾À¤ºMÍ\­ÚS¼ ®/푚ãÍ«275‹ *'&lô#@Jöšún=˜U _n[~IÌ~ìJÛOJ|I£ŸÚ±cG·Ûu¯¬|6dfª×éô‚°¹Ð™÷‰ìjB®VüdÿÎÀ†Ãœ=”š¬ŽR·œ4­™[ÐTeT±g!‰ÙÃdÑÖ5áÃcÌ̇…{–îá9g&Ÿlû Œý ëwGô¡wóz¤Ñ3”r >Ò¥&‡F1ƒ{MÏñ²‰`RñA ÈÈ/ý¢ØU}ÆÊ›ã…úT2/ë)uvö“šÌŒ©<ƒÞ#˜¯bòò™ôò'/>‡ÚÁr!#¿lÊ|®ùh ¡ïà0b˜—›è¾rqíîQhÝ¥©?Þò\æQïjA¬2ô t!Xn¥Ëw½Ëšïv¿\ \ñ>ÔSFýb?€Ò$ÔÒ;ÛpVm¬fhª ’0ç"ÌЇѶty]f[ š_Ä(,UOEyv»ËÐSÈFRú9Baxs—jwoa2z‹WÊ3±<ýÉEŠ~\¿Pžx?ø»žk.æ*çŽØ{9ñAí'V7wbí.¥?ªçeÔƒòò¶?ÝóÞ#$€¸B¸7¾N¡ÀWϺ!Ál4›U!aªPz–]·@ªŽí¼|÷›Ï2‚Ê:=×zøúÌͪÓ²Û¡UʯZTXÊ»JAiûAâ aó"!Ú¸>ºq6ËÐ&#'M'UnÚ÷êóu/¹¯÷áÏ^¹Ðoöaíb5^dqúM½ ›úÅöG«KH*i±ÐM‰U£ÑÅ0¹öö—G¤ÌÀÒ}ÌžõôPeoƒ<ûW¤·%êvU=x{Ÿ8MÜp]ΑÛö(õ?´ä/x ¦Ð#dtèp2ò‹±ÕLóO16Ö²y'gëžð;‡%Åp3~Ü|lÿ_«ççîÌ_v^óµÝý ÉgrÊ$>ŽºÁu)#¿RB=UX»· #"$¹É‹9:9«†Y0™LÛmçÿU?g£³]Èñ"îš_Ä…N¤ë©0Ï®bw°žCIîçpd%^J·»@Ο±Šsðôqzú‚ò ØûÁõ<À,¨œ'Uq.þˆj?qzúewH XσëA?ä3JÛŸžY]@ EWçÎ1ßžKÊíèSÒ³T3¦OÕÓýº‘÷ÆþýݾMÜýtû÷'¨œ=üëgiËÉþœ‰IÌíµÇþ~yÊ\ýÅĬ´ý¤ÇWBÖ>Q➆&¢O«}6ëÚ)#¯‹eFh®Ÿútüªï+ÿS“*žŸD.Ž26©¦Ñ­E˜@ùs_lr¸·_ˆÐ“Mg²ç5ÚUûx>ÿ .{x†¬<õÆ9Ã4tüÉTq¦±ÔÜÏ:$9<*v䱟îîß°8=»çÛÛiuâ¿¢òK c¶î¤¿þw?Úk`¸:´þÔÛµ“]·«]´uó}ÃzÆ œ6?>ûÀ¾rÞ3¨$ækéùL^ù“_'¶m T•_œ—.²þí–÷ªæß§ò@ÏëUÝմΨ?YXópžŒ—Î(ø¯$êi ÄLêÊÎ5Ô´†Z4«Ë–‰ªÖ-•ü1¡k' €åÖ‡$Ö»ÎФµ œr¼òãûª¦ÈúeSfnóûÖÒ-{c#&..H¼uöùÆÊzs[TB¿ðÄhM8³oþ†¯+ïÉ™–Ä]IUËðÔê;ú…D3í¿­÷­l„†CÀùE\ŒP=•æé‘šNjw¨žv9éý»¤´¿P»{ÄàüéŸD©<ýÆE¢žï`ž|?ȯç¥ÚÁÎ*g——úWv|`ûIÕÔî_¬Ýaý1¿Õó¢êkùù ÛŸö|‘@ž”]Aäñî<ë³§^]øÖé æ#¸5n”nýº¡nÞmÌœþÿê3ÓSŠJ¯Ö1a†&zeon47|¼îÀùå9SidóMHxH¨¦ñã2×Á!6q›Ík9ËžuÕ“üvrŠç 9±ùÚŽÊŸùLLùóg|ö4tå¿àüâšèÂ%w™>>ßÊΤWÓ™íæª#M ý[‹«/w~Ò“&rpiFÃìÙ÷^½ï¾û¹ÿî›Ó„Þ2lHQ,·ÞéJ­w9¡Ijpä{é§÷‘X%eÕ/HÖÔ…µE'©i¦«­»'ô‹ÔëôHŒ&á—K?«[3îÞÊ|:òlŸ]ç³ÃâMgÃ|º| Ïàm&yC®¡ÊÈ/® ÜÉÒSAž]Åî²ôä·¸ŸÃœÍU–Ý9:r¢ò×¥WžþâUVÏÀ¾ü_Ï{µƒ~P9/Az}$)>ö󪄗‡²íî³?¨çÁõ Ì|Fùã÷/™!$pͰ÷q:DÉÆ->Ü09YÕç–±‘z²§Ö}Ÿ‚P9¾°ÐM ò§ÇÇÒÙäÕ_æWßõäv£)!?JÛ_iþãÖ'|VÏÌòÔÄß‘JHã—DIàr¡†~Òd†š4$*ª»*ý•gBõôàw´™“[ÌY,”Dºµ¯q‰Ê~C—ŠÿÎðg¶}úzÇÚj¡EM6ïzòòòé=z2;×ÕÓ²|zv½½|­;¡É˜ÿ¾õž!Ñ=Õ c#÷¿2¯eŠL»ÚUÄ¿~ #¿˜ÌmÔà¶*þü'ÿWËÿ±¼ˆüûÂâÆ»‡Ç&1Dœ<(!_³I L>.‰ÏVë¸ däw¥Ÿ­iý}¿DÖY©îC¯ìõ†»_É÷~ÓSC´~ULrJP@2,·Þ‘I­w9¡Ijp且ÿ>’ ¤ìú…΢~tVËZB*RSÓˆŽpVZTä¬ÿâ{-UGe©µüìÚ” $=7còxMl»Äà9Ûz2ÇU\£Õ²“6®»{MÜ'SÚ¬ÌÙ­!Mßµ-›øPµ3ZùÅ5:Á;ùz*Ót»Ë×SÐTÚÏá Q¾Ý™PŸ?ùt÷—Ïd¿”[¨†2x*ð~T=Ïg1íQ¨Ô:¾ã“a?¨R~´»pŒQNb=¯‡ç3lB³Ê!$píèÐD\Ì•u-ìa°–ÈX᳈¸í×P9ž ÐÉ+Tòêû cúÒA‹¦S;kåÙ£RÚ~ÐøšØív­¹%r)=Jª5ìÀZ\ÊÒèGF2;ÄÕ’½ë²ÙÙúŽÓ‡«èÌ}æ¾…göèc‹'‡3Û›hjŽ5oô±µœ>s‰jTs†»™ÝöH­óÂ-¶ ™ šÖvµI¯[Æv§`øë,däc³Å"&Ö6H"$2.‰3Zb¾¦òÌg|å/ñ‰áÖ)ýÈÈ/.éIIe;w¨Ý5zhøŸw,íæâGοô”£Êv,·Þ°K¯w¹¡Iip唸–÷>’¨¡ë—ŠHwpˆªòп c¶V¯˜OHTÍÅ»©…¶ÊÌÄh„i$/¿¸èâíF¶žÎÀʳ«ØÝz:É:¯ ýgíW²í®PþôPÜ¿ <ôßÏ„ 6‡“šãÍÏùÚÎÌghNJÛ_hûÆptÈFMGZ?é\Jȉòú¦›ôÝ´º¸6¨êC¯U¹Ÿý’>RÂ|€ äyßeeã–I&ÜܽÝ”‘\8ñi£¯YTÉ Qì@“ÊRa)ÙÍ,#rÿ•’ÂOÏÕß:­„U¢îåþï;<¿lú×·-3‡ÜÊæ\á-jôäW±ì·.RýýWŽ-Ĥçkz¨wó_ù d|hp™QÃó‹3b:ÃqÁèÞa´ªh8¶íò¦_&¶-›Ö?>tÀ]Ýw¯<Óš¾b;™Ãérå=!ñ¢LGÀr+lH½ë MZ»À)§Ì•œ÷‘t Y¿¤’ÑCºÓíx-äÒWÅuü+sÅiì~Ž…»Ô’ÅÝî¡«{zwYÕýí@:P v¹»rõtÏõÞ<™ìòÛ×®Ú9ﺊžðþ´3­¶+¹vW*ºëíï{÷~£\.PýäñTæýÈzÞÝb9BåĆïîO(>yösEì½ÿíÎ×ó­ _ý ¯¯¡ù ÛŸ¾-…>@~]AÄýp. ­Ü˜ÎÈ´–Ÿnr_á TN8Äkù‰ ýôóÉô=ÙqƒÓû^¹"§CìÊW‚ýRg’ÌŒ©.‡»†%æNB|.ÁeC-Ý-—®æ9÷Mƒc;7 —~øƒóL!:à¶jÉn“KtÄ@&ý:¾;ãf);ÕPèú[”Hz²«‹šÈ·íq“u÷ÌÜÛŽ–±ª5j¶ñx‰ u¢u*Çã|,G|’"ò58¿ìþÐzž=_ˆÄÁ#lã:L$}é9V´æ%åçÊl+Ž€ù:pùL üa¾ö°&ãÎ/í¡åî}<šY)ª©?Þ’óÄk­ûrï7¿w¶å ó8yRVïõiíEþ*rõ=zëtð}Äkp½Ûšäv¯²…Ê;¾€ª~IYöˆf0ݘYù]¼­PDû ˜ŽXH(U¹ù…¾¿.yõô¸¿yv»JOBû°þ´CyyÌk÷N˜?½$ÁË#8O^.|1‰è¹<ýü~à©‘l) X=µTŽÏPbÜâ“k?nÔbò‹Ý¿ŸíÎLPåýbOà¯P=®Áù ÛŸ&Bg$€€ƒ€ì¢2#sγw›…žÛÊû3dd«–g¦8¿@»ùZ´ueøpz,{àô›®ÚCåìòø×71ö#}âé™9̯œ=]*jÛ*Æ·¿ì—òÔëêCkŸNš7Yâá½¹Ñz&pž8>CYµ,KÃnyuß¼ž¶íÞÈÇ/:¸¹”¾f=^¯q¬ÖpOÊ”•Ù!C#Ít‹{3ùbçŸÝŸ“#}bû‰ù:QüïÍ­¬÷rþ:àþË ™û۶¯¹Ðìs÷†÷‚D•#7i±ùž_ŠÈÞ£U5L´aú´yYú>wï¢é ÙDUq¨qQa©mu0_ƒó°üãs³C°ÝÂó !éö†ŽMPGRMv.Ȫ±OX7û¥«ßµ¨iu£#ã—숟隘ò GOÑããNLË­€q€õ®#4‰í‡œ.Ä”wB€ï# ~rê=cn£ºYµlj¿xF¥Úc»/¿ìkù6PwQbró‹¨HüãIIž]ÅîP=Áýÿ˜R|(]$v4O±ýh?Üa0?¼YÏCí•sp‘xŽÏOåAt~±§KªÝý1&:H=­¡í lÚ3þEH ¸Å\*ÙünNa¦V‹Š(Ðh£ØáxKø¡ëß?ƶ÷L Sשÿ¹tF5³uVdÿQê)S§ÅOº÷’ñ§3¥ §~üÉTVUoN¢3vLtÿ ûÑúÜy—þÄù: •Nîµþf¿à ÛQ™²öHÒ/Mgß»2vö:vÏ_ö5r Î6çƒuÂo#ïM%õ«y–™ã‹Ò“±S'ÆOºó>KõÅŸ¯–]¸Øz¹‰X{%¨OêaŸ)õŸwž¯äÆ åÂlƒ‘µlOÍ{›§%ÅÆ Øüþÿª>ü×Çu¥UaÖaãï3$Ž9^ˆÔŸ,¬Y̳%œáö›Õìr&/vpyTô)šy°n†>¬‡nÈ==íþÙ§GêO•-Iƒo I7¬WvERƒçYH.ᬹӛ¯åä—ÝKV™ÆìÛÒ|kLXÄð9Þüñåý_ü`ÔÒº÷öÔ1ݯ‹V‡3[¾‘½Ìq8_Có°üh|{`ýBÏzâö„8Çé·VU¸~ü,"óV¯ú`픤(íÍ“»×FíJÏi°¡ƒ– žAg¯k,AXny ®wÛC“Ü.àÕBŒ#´¼y‰Ñˆß´~I#9[—Æ%_.mù÷©ïšÏþRn®o 'ÇÜ6aXR Ó½JÛ¹SèêJþx•q•›_”Ñ’‰Eiž]Åî0=Áýå ÎÆÔUògGóÛËSúûAÙzj¨´8@ã“k?»¾bó‹Ý¿d»CûcàzV2éµ'°ýiÏø $ H@â!Ý£"CÃèö žûiˆ.:Úe«ní_±+.ZZI< ‹ì­½aDï^7Œ¸ÝE!kc¹ñã‚õ——–¸œ•s o\@ì瀄ٯ¢ºÁDú±c&ôPà æã<ƒCŒZàøêH-ðLP‡ª{%_Åüã&ÓÚRiú|צËÏä‹^=Å•ç½.É%wå˜Êw¯˜Ÿ}]øÄY™ 9«N¾]s÷£ã]e© i_g_Gĸ|qî#Ma[_´¤ ‹‹ÑÄ Œ?þsøµkã/ÆÿÛ´ŒÐu8ã… ”#±ùšUœ_JÈ¢©jóÞ}Â:„:Éã@òÃER?@3ÈûAÉzj¨¥Òñ¹ë)5¿H¶;¸?&£žÔƒ6.°ö¶?ÝsÞ#$€\ 0šË\ug Y)êúÄizEÓiëáµ¹±Ö|ú«ƒ¦…û\†\5€Ê¹†‚wEÀöÓ“¬•Y!#L!ÅùKZ íûñ& Ÿ!m&=|x¨¦ÿ¯bB"ÃÃÕ­UæS_}`Ê+,ö’?y•àhKÛÈþ=µ&S³µñÒÙ¶Ã{_0íòšF Á»{5Ì$ÏN: wdH %*sõÜ‰ÃÆÕy»=?»Ë⽟ HÉ×ö¨áùÅž¥ºçö!¡q‘a•¹Åz®äŸ­«ó½Õ½ö8ùLVùÄHUçeÛUôT–JÐdžå6èM,”@EßGDZý¢7¤‘1·Wê—Eß—¡*UmÙÓGÿó‚©ÈO“)„¸£{Çñì*v—¦'sά?Œ¹ËiêHž6Û‹ëßú#­Ê†!­ž‡Ú*e¡t|\=•É/þ˜üz^j=èä"-ŸµËaûÓ ¯@ qbÅK$€@H $€@H $€@H #àqhy‡i‚#$€@H $€@H $€@H (BˆÁŒ‘ $€@H $€@H $€@H óÀ¢Îc Ô $€@H $€@H $€@ŠÀ"E0c$H $€@H $€@H $€è<p€¨óØ5AH $€@H $€@H $€€"p€HÌ @H $€@H $€@H $€: ê<¶@M@H $€@H $€@H $  R3F‚@H $€@H $€@H ÎCˆ:-P$€@H $€@H $€@H (BˆÁŒ‘ $€@H $€@H $€@H óÀ¢Îc Ô $€@H $€@H $€@ŠÀ"E0c$H $€@H $€@H $€è<p€¨óØ5AH $€@H $€@H $€€"BdÇ¢74}< ¦’•ˆN”œž¤¥éE‡ÙTZD”2Þ¡r¢£ ¢ìО\}*™7u´úæAýµI½º‡jµZÊXo.ûétËÁ·Ö˜vñ™Ÿ‘™>^3ü†~Ú„^Ñ¡Z Q›®¶ÕW_4}uð-cÞî«_aã3¤¥&ûú9ó˜wŸúÔ42,ƪª9¹ÏjË“üþS2—«fO¸¥[o6De6ZªÊJ[¼½´µð¿Öb{pú™ä…gÓ#†$F†›ÍFksí%ãן½Ûœ›¿Ï¿v°Çì;Ч”r˵(9hý©´!þ.·\TAq”ù“c™ŽJG¼”G ã©õê #oÒÅèT!¦=Qz²eÏÒLÞ^òbìBÒàúº‰4U6%|2¹éç«çÅÄ•“«/! v–#ÚT²lCFè-7ÆvëFÝZi;­©þrÛÏßm};w»Ù„ùÞcMM•äÂÂviº¸^@å\C{ç/ûéI*í×éh´•´ÏVâ-bUóá/%ã)ÕŒñ¿ Oî¦!fÒ\[c<ûñÖßÊ3{mŸå|¨#üXTy÷‡¦Ï3$~h>ƒÊñkщ]•l‡Èéÿ±%Ôg þ4_=!l;¾>5¸¾VÒÂIòý¤£ô[¿t݉ .RÚ‘|õŸÑøò&Ÿ?tCH MP4Q†ŒçU+çOìIPY~´¬QQ$"0Ñr©«ÈÁµ“ÂD„Éx©ø`õ¥é+ö·¨œÈx‚Å›h;з?ïØÜmò€îÝ…Ón&ß¾µ¼âáŧŸT²½øù¸Áá–P§›ëUý©÷j'g®kvu…ÞAãK%Ÿ¬‹×k­_1;ò˜7iëÉÁœql¾öo /ì\9¦_d4_PŠ·TÍ\Zhr}µƒ-CæfÕúy†D¦cîþ3Ui\<ýéz|ìp;Xï;ЧørëJ^´´þTZŽø¹ÜºâêòwA›?Û-ÓQéëò£³$@ŸA^ûËü˜›¢I¸§JÕdÿÚ»ÊW‹iPz …‹øúz9m'Oh'›ÉÕ²Ó ûÿç…†—‹üô%>TN–5!í,g„)Y›ÕœcHˆr:q®ÌäÜÛËÿ${$Óû{¬­ñ’ñøþWknÜÇi[3j@å8Iré/û¥¿¤:²ø¶D&jÓÙ·¯Œ½áª5$ùM}š¼±øžžc4|rêóïÕ¼o]£Ç3¨œG@âD—wnŠè ÍgP9n;ÿµríyý?†¤´ú ØŸ†öXSÃëkåì /Ov”žâë—Ž°;ìý>!¹é½^âZWøû ×^#$€‚p‘äl]ž6,.ÆŽDe4››ì7‚%Ê5˜ˆ‘†åk€ÈLý0_öÛL*Û*¨œ ÞÁö@¢èÑ :8¤n©1:qòÊWßž2ý|¶ÜJ'¨’a“ghÒï×C­Qß<ë Ù‡ŠËs£ :ÚÖl½TúMÝá/¿lùîô #ÙÏ š5;=ê× ‘ÑCîê¹wåÓô{ÚäS†Ç×fQÑηU£²˜,­mVÞÕ4­FÓØÔÌûÌ©{*ymQjl¥ÈüyÒé^éÉËïþ¥Ç¨8«Ne¬4zgwÕþCg,$þVrß#³z Óêú¤Ì{ý©3n,á|€ÚF™ñ’jbÊRëùÏê_|)¿±”ô!Òæ„̘4¨·.aTäË;WXÆÜ·Ò³³ì¢;Þ°:„§Ôrk·•D9hý©´MžÿÊ­Uü æüɘ¨CÒ$y£S$Ã@òþ²™ÃÍUß4½ù궺éøÅ° 3Ô÷ދׯj¦.Ùºhvå®N¡¯’JH­¯I{;ÙLêÊÊ®´·_´Qq¡‰1ºˆnÉC¢fæ¼5ô†å´=ÁÀLmÃÙÚåãƒÊÕ„·³lNYùfÈòIý{3wõ¥ŸÕåìj:q>úþdЯ§Iu]´Û °¦ö÷˜±æBóųIe6[ÕQ±¡‰qѺÈÞZìe ¯“&ûAå@ŠúÉ~ªµÇ¯íóëÈ4B®d8mù gb’mp¯|óÁ;—Þ-*i«$Q¤ß-·¨nK™ fW„û*Ç CÒµÄòn[A=¡ù *gOb§ÿ«h;DFÿ‚”^ŸûÓÐ~¸_L§¨däÊÑSjý¢´ÝåØÖŽ´×Kò¿÷ÈÈ (ŠèÄ$e­{-tÚ¸Á½¢ÔVµÊRmùö{ë•!CâzZÕÄëyF ¹’ÕdÒ¨ÕåÞùÑò®½)Ò¬m¹zÉöñ*ç=¢ x ²Ýäb÷–5wznCVRrÀ¼ýóUЕ^Q´ãõÛÉS5¤dŸmt„‘&U{€+)±ïΫùÝCêQq]âø»{¥’=•²'bú!¾ŸÞ]Qunq»þšûtxlkv8“½yLY¶JÃYÊ,ùãÒ+óžKÈ¢-u¹{[Æ&¨#oJ_Ü{æÆû*œÈ vH#îF¬DUu¤é‘ûž¥ƒC̯””–h+©{½bó¬A !ýîˆ~=kÓƒyÜA)‡rxá  ëõp:8¤²œ·¬¿û‘:ûâÒÒËîÓ«*?¦í 6Y3‚~=ÞeØ©Re@õµC•&rpé½ ¹¶—»ÍÕ0³6où¢Ãi;kЬ… ó÷—oá>wÈB. ñAå¤éogÑxè*—¥íƒCÕ‡ò«îZ²Ý1Dó(m§í2çR+M#ß¾Ë?}¡þþÜNûsfÝ«ûžî94†D ¾;£—acq•cþ'8¨' —rìg ¿»±³±%Ñªí§™˜¡W–ú˜x%A=Ö+¿xr\±•ñgsþÃ÷Væsò=í·XwçoäY¹•“ªŸÍ?¼¼+«§=uÐ|•³ÇÛ9ÿ*Ýöÿ(=P}ì¿ûðúZi;@s£òzÂêeíNd´çå¶#±ßÍË(‡@°ð:¨ã™ø426å¦8fpèÊÙ#WÖŒ¾«â…SWZ=ý¹»@åÜÃñ¼OÉ~XÃ~¯ù¼yµËj O¿\¨7Œ®w µm˜ò 9Òà=r®QctÜ‹¼x³ø§z»W¾mÏìÏüõWL|!¡24ÉØ¤Êì ú±¬…ηäûÈýã0»2’_þ¹¥Ê98äô›½ý³z¦PYÕýÔ÷d§p¶½ƒÙÁ5CmÛ>¯ì{åé:N?™´w·f«IöwÓ3x·¼³?Ç¿t)¼â<¡å*çÛÊÐú3Pr²Ê­ïäv)Áž?•O_—2—P69&Š}ç˜~9Ùè1þsà 9×¢¦äÃHò )Û¨]"ùJÊ­¯5DÛÇ-è’]$ëîMu?Uô‹|ù¯…ùZ[h|P9oº¸?“ÓÎ"dý£»3 /KÙîà{,þ¾ e,q‚ÝE¶}zŽm'[Õáêþœ'ÜK¨7 ñ×2ì—z¹žN RY,Û‘†Ü<&ÕyÒ–Šëž µmmm&_n»÷wpÈ[:¡rÞÂ~/ïÊêéL4ŸAåœ1w¾+åÛ!°þC.õ™˜þ´Õ<ûðúZy;¥Ê»»òzÂëo)ñ¯Ýåõ§å¶#±ßèÍÒø k™€ÄÎw%ùöÐÁª- G•ß1ûiv[€dmˆãã²0H¨œpˆìý|òô´þñ„4ý/-®uÿð-( • °«<”Æ>í«fê*.q¶DóÎ¥o\7vðƒnîfñ½=¡÷°Ä< l|3ÉŽ‡GöfôÃ?6U®Sño™gH%ýYV ääû+•Š‘óì2Bú&ˆ±ÒóÛaâèëÙý×55ß7ÿÃ}™–þiòØÔ~´ Ù~Ö¸!ºùzûþå# ƒÊq¢îÐËN×èÿ‘Õgàþ4_?@F}Ýéì +•×Z¿$ ÝÙ¯v§aÊâ‚íHïÆÂ§H  ‰D%dÍ’?š ùö8ðªTÎ[ tïÑs{ÆR/‹·V­vÿð-( • ° =„y&gŠŽYÃlåðA~‰ÈÎX™5:‰=êùǯE›L[\|m¦K ž)˜¯ µj˜§sòŠ-‘tÓEÞŸ–=/‹95+”ÿäc*ÕDì£Kš¸º™¼áx:òÛ!•\ŸÆ2Uÿt¢É}uíºQLºTZZ¡ã‹°@IDATg[òKÆÌâ®ZòŒçÚvéžÐr •ófahýX9h¹õ–Ò®ù ž?oûÃúˆÍ›7'm.8˜´9SÏ3ñƒ‚¿ÇøYÿèxΡßÐ|‘ƒ§¯kÚ38µ.ÎýØ\A“fÕÐ<³s÷[!Y›=5Šy5ZÊJœç'×TAʃkBw{>:nb&áXµ šáþýÏ%4>¨œ§ðvÖìÙ£´LþS·ühÚ·[ìà‚§þr‰Ð…³u±ÚxÕ\)!P¨œ„(<¼z·ŸžÜvK"[Öë>Üœÿå/-L–ðþ¡ãÓ<‚‚;¤§¨úѶ8³ÝÉ=ÛVòó•ã Jœ°¼+®§÷Ô@óTλ6J=í|íþþ!©ÏÄõ§=­!Ô€Ö×Ïžif\:BO`ýŸ€vWÛ]¹íHì7z56>DHà& ð»óY´uMøðsóAþž¥{ûƒûÒ*ç+ÜkõyJöšún=˜Ù–_n[~Éy^Ž0‘©™«U{ŠÄõe:q5Ç›Wen’21R8`'RâKýlÔŽ;ºí(Ø®{eå³!3S½N§gcÔgmSÏЇQäõôŸRûó&!ŸzIdgP3tb5CE|дmëjÅOöq'VoÃS¯«S“ÕQê–“¦5s šªØmh˜¡+ü ¸ÆyBëÏ@ËAÊ­ »òùsSæsÍGk­‹Ãˆa^n¢ûJµ»D  õ’¦þxËs™Zg š@FúÃÄ@ Ÿlû ŒFϾ;ôn]Ù¢'9éR“C£˜É&ñ.íÅ»f”JI5û~בÁ&€@ãƒÊñXÚÎê—Åž!i¬ü±Ù1qIŸJæe=¥ÎÎ~R“™1•gðœG¿8e’‡&$2sxÈ™ýoÖˆŸ›•“©´7ûéÓÈMô,%fàæû/vKó¾°T³ÑéÈðq¡2cvˆOÔWmÛ³®•”—‹?Û*çˆX¡‹Î¥'4ŸAå‚ì+šNÖìÿÑtø»>“ÒŸvÇè­ª¯;™ÜÓë¸ï*z:ö¼ˆÝes‘׎Ä~£§Ñ $À銘Û÷1g½XÊ,R>"@åº"#%tÖgnV­˜60ž‰«‚ä»Hà Ùj¯Õ³nH0ÍfUH˜*”žaEç ’ªc;/ßýÄ&gXIK $¾V'B´q}tâlñ Ð&#'M'UnÚ÷êóu/¹¯¿aüeu³‡Òã­ä?o­«È÷¥jÉqReœjŽÒê4·¤M !%û]mñ‡Ž c)jË×è§W;Ðoö Þk9«»2Èâô›¨Þmä‹íV—ÐN-ºÙ±j4ºfàØÞ^o×ÿ°®ažÐú3rðr¤ùYVþ,!‹ž*¬Ý[‘@Ï+™û—¼˜£“³Ø’3Ö½Ê|¸'¤šì\`s낲Ò×!c¤ö¯HoKÔíªzðö>qš¸áºœ#ìJWRÿCKþ‚j äÐB œ4¶¿ß•ÙwTΉŒv–±ÕLÛA!ÄØX˶r¶î ¿sXR wâLæÃ›íÿkõüÜ}k'¥Ð‰T‹æLìOÛ¦µ'wÖÌÙ(n»E¨œAà­°ýR¦4¶Λ?d·}ÛBNUÝß4.N£‹vk”žÖðµ°¥*2ø¦ØpFFe¬0ŸvŒðù*ç;dÿúè,zBóTοe†Ö‰Ú!^û4™rë3Hš®×~´¾îDvàK³Ã­«èéP˜Eìî.v$ö9†ÆK$€®·‚ˆž™ò§Yƒ˜ï×Ç__Z)ú#TŽ:Qi«ÈÏ3$2ƒõ´ó:}I¡ð8çœ*n';fhZÿ}åI­ï5:‰Kޝ”~ó]Ý©S'j;vùdéÙº‹5MŽòº¸Aº™9I…˦rÕg•Z±óÑÈdÚo;ÿ¯ú9Kè‡_¿"rô‡+ì¡ÃÉ“ï½*Ýu+§+ßyhDÏ^*c³YÔ—_v «”lá4³%Nýž)ÈÔõ£z·–¾Sç¾G{€ícJ¾sí=¿VyBëÏ€ÊÁËmÐf\¹ù³t ÉÞrô"Sg˜£‡‡¯Ï<‚¤®' Ré°¹™|ûÆªŠ—ýñj¹éƒÆ‹r!°ýËmµìÀ…3øêï4Š=TÞ)…WH€KÚÎ2}‚Ž`(?ÕК»÷ptR7–¿¦ç¯Yu®ÆØlÕöÒüfÚ²ø7²=Û„\-¤^÷™º,þÈ‘#IÌ¿uó&$ÆÓUöŠ·TMyt»›PxP9¡ðá>ÎЗn¾ðïÆ¢ö>=^ÑÈ\š£…OçkçT–6Ëe@8P9@T²D:BOh>ƒÊÉHáÎÒñÕÿ#~¨Ï$÷§yÀûìëëÎbž$»8u=¹J+aw?q‘ÖŽÄ~#×Ìxà#ÐÅVéɦ3Ùs‡šNíª}<_ìöP9>dèFÒ–“ý9“˜}Úkýýò”'þêuPqîóí¹¤ÜN.%=K5cúT݈1ݯyoìßßíÛôÀÝO×ù뻣ôøJÈÚ'JÜÓÐDôiµÏfýA;eäu±ÌˆÉõSŸŽ_õï}åjïÝžzC}G¿hf%ÛÖûV²]{½ýÝ”™Û|ã¾µt‹Ä؈‰‹ o}¾±²ÞÜ•Ð/<1ZÎl¯“¿áëÊ{r¦%qWy„)ÑùŒMªitKðºa b @óTN¬^²ýÒHæ- Þ·Žl¹Hò ÷qvap‹Uévˆ¨þŸüúLzÚ Ý:VÌwX}í½WÂ]1¿ð ò椔Ý=th?éíHì7z0G$€€.µ‚(cÃK¡·Ò=¬Õ-¥¦έʹ±Â[†€!›¼—3…¸¨þòïÕ¾‡ø ïγ>1{êÕ…o®`#¬q£të×ÍðÛäîq‚ã+-"/<ùã#ÛÿÍΨ'DG&d,µ¨m˜OW² ô¹’­=Ú]£$kêÂÚ¢“¿Ô4ÓÙÓÝúEêõz$F“ðË¥ŸÕ­woe>=Ø>zË F¬h—ܶìIGúÞ¬VJ%ó~˸ýðî–*¾xßžptàÝ5¿æï¯AžÐúSi9GÞôVnž‚ôÂOù³pÉ]¦Ï·²+Õt¥¡¹êHÓ‚Gÿæu»"Dý”>EtÅH„ Ð÷×Jvpˆn6[ñicæôÿWŸ™žÒPTzµŽ MõÊÞÜháð‰$ú›HLû¹†’ä ž¡ñAåxõ„´³3•F¶ýBh4ß—¹±1mz4¯å,{¦SOòÛÉþ;Óéü¿þX3qâÄê””1U£æ.,Ïß÷u%dM¢õ“{lß¹&Rhµ=TŽ›Gûé³Fªic™þ*Èaî$ƒ’½ä{öÜ;Bú gÛbRNüTÖÚ¦b?â[Õ!j)Bådª+Y¼#õ„æ3¨œd8@”É™šyóæ%zý7Nbš=üŽn‡ˆíÿÿ×gRûÓâû€úºƒìÐåò‹=ßÊø»ËµŸ?Û‘×r¿QF¾@Q$€‚“@× ¢K”ÿ@g43ÛÜ|½cmµ}‹ŸfÊù øZôAþñâôøXšôê/ó«ïzò¯F9J6>hù¨ÌÂôIŸ[Æ v~åÄÁ•…ÆWšÿ¸õÃómìÇRMü©4ДÉã5 æ7xζޟ|òI<÷ß ïÎ<»îî5qŒû§‡¿HøüÃ×bYÛÎbytVKêèßUää¬-_»vmùÜQ·—§Í}¶‰ÍÛñ= sR²ÊRkùÙcu v¸PClK„4$*ª»*ý•g´zú¡HE?ÊÍÉ-æ,J"ÝÚgÎÚ5Ä¿<®5žÐúSi9Sñ•[oÁåäÇüyülcU¥&,Rݧ3òcú:Cr®MôäååÓ{°«cë¿iY>=»Þ¾zxíÜ MoŸª¯e¸¨ÆFîeóÄŸ\}bˆm´ÍLêj. Ï‚—]TίÇ_éí,“¹ÍÁçü'ÿWË¿Š­ˆüûBs#]xl’ÇÖÃjˆt ¥ÇBÚ¥%dûšùæI/}~‘iÃ…ôû}ô³ ¼}6¨œ=*¿ý°ßÝ#o`·ík;_RïzNg)yç« ¶`M9_hL‚‚Ǿ»È¾·¬ÚÍíŽ/ú¾€ÊùÙ¿>:ROh>ƒÊù—œpheçŽY¾+e¶?U+ôïûcß\¦óöl¿m‡HèÿQmUŸ‰êOKîH¬¯;È]+¿Ø3­þúÕî²ì˜vä5ÙoôOÖÀP"öE >I-žÎ|PÐÔkÞ(zk9B rˆâ ¦’Wß_ÓWkÖ4ÚY{דÛe ÙÕ¯¬ki#É:b‰ŒeÏ"²(²?÷÷_h|MìGNq1µÐ¡JúŸQÜQAÞÒqà;$äâå¡;~Ælk§2^1Ÿpy"Ñ¥GIUã\cl¤Y—²4ú‘¸žtRe-Ù».›ðr>\•@W 0÷-¼«ž>¯í‹kŒ'´þTZN(Sz”[!Áâî¯ü™þ’ÊvîP;˜è¡áÞ±´ÛÙë®v(*¥¯CqmG®Ï\¢g¥ï!39ºí‘Z÷ù24÷ÙWάïuËØî©d{•»Ÿk› $õöuÈõä{ÎY„ÄÉ@ãƒÊùÖJl;ËØlq–¤s¥Jd\£´_Úü©Ø½Óúã£cŒCi®ï-#è€i‰¸•œP9^%Ä:òÙ/ ïNçŠ[‰&>5âý÷ǹ új´ºö¶Xò»©õ–RyÛ˜—ü`nšÖŸ®÷×ýmtg‚¢=Âç£r’•ã¡Èe§ÓšÏ r \Z¸Ú:¯°}.˜ð;¬"±ÿGÓÈúÌWÚ`L ª¾î ;tü"&3K÷ã7»Ë°_ Û‘×\¿Qz@ $€‚œïl´Î—æL2áæî=½.œø´Qü T®óèhúïg†F›ÃIÍñæç$lïçKom¨†Ý÷Yei±x†ãKð_hûFmt…ݶ‚ÝŸ—®ø7n\%ß¿ÿ;Ûr…Qï§w—U1ÏÇÒ•B·M|¨Z܇®T2zHwvÂ說Šë¸3X¥Û¡„œ(¯gÑêât´—Nª½Vå¾g~úH}3 EKyßeeëˆÿs¸–xBëO¥åÆñ¸p/·‚ÎÁù“ÎP]0º7S4ÛvyÍ;çØ‰³¡îê¾{å Î(yGÀóGú:BoŒÓN 9!Šmwª,–’Ýô«±Ç¯”~zŽÀÀlÕËã9:H%°tÞønÌv[šúÿ´qRéTN¤ZnÞøÛY›þõm‹}i5ÿÁL0zò«Xv©þþ+q6n±‹¿-!µ&v*¼W‚}F„8TNDÐ^xí—ž¢ê×¾:]Þ-4:::œû¯[ûYKLýGN”²+¿’5,¯>#~eà÷åé •ó )°.NOh>ƒÊ¯¸Ð;¦"½ÿGH ë3ïýih?@È|õuÇØAHCa÷®¢§p ¸Oügw8—@¶#¯½~#׺x »xø´eïS.5‘ôdW74‘o?7ŒMTΟPºPX‚vÐÏ'ÓGôd¿ÓœÞ÷Êÿ}_0ÂØ­'ZËO7yÝ—~ÐÓÔoÉyâµÖ}¹÷›ßkðNž”Õ{½„m{\>ó™S!9¹éˆ#`[0`UkÔìËŸ'ÞÈPç«Þùòâñx 9 •ŸÒÖ“ßeßïgþµ·Nü+Ÿ!ó{€Æ•ã×§«`;k÷‡ÖóìùB„$a›7ãÚDÒ—®p#¤•”Ÿ+µâÈ#ÑóÉà5{öeýOÿ‘0•­˜«Gû=4~¨–-ñ5G›ŽU>ŠçßÎSMì¶’¡¿9Ó5TÀÝòæG?²á™£‡‡/Ì{FT ¢áòÞ¹ô$šÏ r"à)àůí1ý`ÿ¬>óÑŸ†öl'T_ûÕqûÃÙ¯zŠÉ/>”®_|ÿÚÎ%PíÈk³ßèËêø k‹€ì¢2£m¿n•¥ÍâØŸWCIr Fº‰íçöeÛ{LP9ï¡ÕSQvèßþ‘¯œ=]*º3lÈÈV-ÏLq~éq#·hëÊðáÑ„~#j"ßÜ ¸uQÊS¯«­}:iÞüe‰‡éÁÕBÛ”ƒã3dU˲4üᦑW÷ÍëiÛ~­|\ð¢_:éù##úÌͪeSûÅ3¨jí¾ü2÷kÐ¥…¯Y×k?,LY™Âl_ÂlùóÅÎ?³ûê»™ o9üÅSl¾æDí¸Un¾’ä õ§RrPn$;ü™¾aoèXöcd5Ù¹ «Æ>`Ýì—®~×¢¦¯_¿dG¼¯x’ò¥99éãD…—D øß?šm‡[%ûó—Ðìî¿ ’9±,ëZs¡YÊ„ ÷ºú½˜òÀM#wy‰ž~DZöÊÿj?ΗÄ| ÒÔ—´¬ÞX,ºýÆ WèTNH!wP;‹‘½G«j˜0Ãôi=òxÎýÉÝû‡èú\Uq¨qQa)Ï*8!¼»·™.¹xЧÎ'¯½Ÿc+ ¤ä΄!ŽO¨'I—âíg ¿»±;¹ªšîþ`Ÿ¸G¶é mÕ–UÝGš©ì3¸Ë Ýç®0©R±mõӖįJ'¼aê ® q¨œRÝÅ–÷ŽÒšÏ rRù)éß_íÑý`ÿë3pÚn@?R_ûËvµõ×_zŠÎ/< S¿(mw(p;û<9@®$n“J6¿›ÓcX„)¤Õ¢b;šm;Œo ¿1týûïÇ´±á‡0uúŸKgTÛ¶²‚ÊÙ”5Ü~³šía¸êîó*ç3à.ëf‡à Ûl“(2e푤)^Òo:ûÞ•±íçTDö¥ž2uZü¤{/:SÚpêÇŸLeUõÖèä!ê1cÇD÷Ѱ‡Î}wéO^¾9оI9=¸ú·‘÷¦’úÕ<•Ç¥'c§NŒŸtç}–ê‹?_-»p±õr±öJ:PŸÔÖvBþóÎó•|ñzjâË%äl]—|¹´åß§¾k>ûK¹¹¾%œ sgØ„aI1LºJ9N¡³÷¹!Aí@÷¬'YËöÔ¼·yZRlÌðˆÍïÿ¯êÃ}\WZf6þŽð1Câ˜ã½HýÉšż[þpµÀkñ›¯ •[¸œÍÆÐúS19ÅËmWÉûÀòNÏzâö„8&•§ßZUá28M?2Ì[=¼êƒµS’¢´4Oî^µ+=‡=\žÏ ù˜¾®b¾`׳è9R4ó`Ý }XÝ{zÚ7,ü³OÔŸ*3Z’ß’2nX¯ìŠñϳò‚š ´<Ø¡èÈDÚ>›Ho™ U¶ùµ¶g*c™¹`ÙÂî|»ü/4>¨œTMaí,&–ÝKV™ÆìÛÒ|kLXÄð9Þüñåý_ü`ÔÒ¶ëí©cº_­g¶H|#{™ëYŽRUtóßïŽçcÞOµkiUëÔÝ#CèÄÛïÇ}›*…ÚÉP9{ØÒþJ°_ê]äzvòQ9êm÷‡ÂCÖ²‡Gšûj5ýïî 'ù¥2–’§ŸÉ¯ûǶ̰¾Úžš‰‹%þúŽÏk‹¿8ÙRE¢I¿ú!#~Õ§á#ÓØô?·¿Ç P9im¾å”w%õt¦ šÏ rΘ;ã•Ú!bûðþ¬>÷§ÛM%½­¯ýc‡Àç0ÿè)6¿@ÛåÊÛÈÚŽÄ~cà³:Æ€@—' q€ˆîQ‘¡atû+Ï}4DG÷–æéÆÕÊ1áEjCÚgÙ×qc¾†Ê ‡ØõŸÈ±ƒÔÔ7V\´´’xÙ[{È޽nq»KÖÆrãÇë///,ñ:³¢ºÁDú±cDe¼`>Î38Ä ޝ¡ŽÔÒÏu¨ºWòõQÌ?®¢Ö–JÓç»6]~&Oúì[þK'6ªÕênÉ7Ffþq#£[–œ;ôVÕýKò$-–s ‚ï¦$—Ü•c*ß½bV|rôuáge&0’쿪“o×ÜýèßWÙýáßv~à)6_31BË-TމZ*&Àrˤ¿Kÿ$çOû¹CVRjgíƒy ?°š<ÿ΀ÊÕÓÅk’S£önÈh™¾Ä6£šÏ rDrúº´5ƒNùç>Ò¶õEKÚ°¸MÌÀˆñÓè?G*­ÄÚø‹ñÿ6-kŸ`äxôàòàFÆ68d&­õ—ZJ¿ø¨þÅymþrTÎ5v¡;9í¬²hê†Ú¼wŸ°ÓêGLê5oÄ$GDæšÓÍ{êÁÚB?CeÏè 'Ž:fc£ùòÅóW?/Úz5×K;*çHð—ýÒïÎn²¬©?Óò/v»-ê]ä« Y}„w¼þ7‘tSù+Kóɽã**_(xLw›¾W¸!czÎ2Æ%¥¦ê«.“°Ø‡P9—ÅÝÈ*ï êiO 4ŸAåìñvÚ¿~h‡HéÀ9H¯ÏÀýév%¥÷dÔ×~°œ­I?è)%¿@êåíNù¹€Ú‘Øo”aÑ+@×*fà¥ìZM<¦[ ’‘•¢¾¡Oœ¦W4v®Q›kͧ¿:hÚX¸ÏëÀS;=ÉZ™2"ÁRœ¿¤¥PhŸ VŸ!m&=d¨¦ÿ¯bB"ÃÃÕ­UæS_}`Ê+,©§Sc_WzCsûpõ ~ !Q‘ašˆP•ª¶ìŒé£ÿyÁTä箺ØXŽìßSk25[/m;¼÷Ó.¯L]CÀ;.9<¥äknœxÍ% d¹åÆÛ5®åäÏ®Â`O_W°  3ɳÓG‡èB¿‹«Ì5Ös'WçífW¨ËE‘ñG;Ëž¥ºçö!¡q´¦2·XÏ•ü³uu¾Ø¶+¡S íí''Ö üUïÐÒLj._4Ÿùúó¶üÝ>ÚöP9¥ÝUôTš‹bñÉi‡(ÛVŸÁûÓôòëk9v€h •‘£§ùEY»;)¹Ú‘ØotRÇ+$€€; r'‚÷H $€@H $€@H $€rê O& $€@H $€@H $€@HÀ¹Á[$€@H $€@H $€@H ; v cú@H $€@H $€@H $àFˆÜ€à-@H $€@H $€@H $€‚»…1}H $€@H $€@H $€p#€Dn@ð $€@H $€@H $€@ÁNˆ‚ݘ>$€@H $€@H $€@H ¸À"7 x‹@H $€@H $€@H `'€DÁnaL@H $€@H $€@H $€Üà‘¼EH $€@H $€@H $€@°À¢`·0¦ $€@H $€@H $€@np€È Þ"$€@H $€@H $€@H Ø àQ°[Ó‡@H $€@H $€@H 7!n÷Òoõ’¦§r•¤¨¨D¼¼(9=IKÓ‹³©´ˆ(e¼CåDG<EÙ¡=¹úT2oêhõ̓úk“zuÕjµ•±Þ\öÓé–ƒo­1íâ3?#3}¼fø ý´ ½¢Cµ¢66]m«¯¾húêà[ƼÝ%V¿ÂÆgHK#L.öõsæ1OŸO­WOy“.F§ ±0\JO¶ìYú‚逧W§‹~&yáÙôˆ!‰‘áf³ÑÚ\{Éøõgï6çæïÇEŠý±¦’e2Bo¹1¶[7êÖj6Zšê/·ýüÝÑÖ·s·›ùÌèÅ Wríçšø;Ýið¢ääן)™ËU³'ÜÒ­·N¢¢ù«ª¬´õÀÛK[ ½{ò%æOH½d*ØÿeþtM^>s†ƒWGôÞì8u•‰Zn¡rÐTAãƒÊ¡žüáÉ×.h"M• ä@‰øV£å½ÃÚóüÖéª'©´¿«£¾+i_¶„íËúU‚§úÔ42,ƪª9¹Ïjë{ ùlwÕþôF +RŽ8 €Æ‡rˆ2/ýÑP*_Cíî†Èg¹~G!P9Ž~²ê3¥ìÀÑ/‘@ÁH@EUM˜!ãyÕÊùã{ÒT–-kFgT‰L´\ê*rpíĤ0a2^*>X}iúŠým*'2ž`ñ&ÚtÀíÏ;6w›< {wᴛɷo-¯xxc±Åé'•l/~>np¸%ÔéæzUê½ÚÉ™ëš]]¡wÐøRIÁ'ëâõZ«ÆWÌŽ<Æõ¨Ï ¯ýe~ÌMÑ$œël»®&û×ÞU¾š§`27«ÖÏ3$2B÷Ÿ©âHãâéO×{ëv‹·Ÿ3ô”¬Íê?Î1$D98WfòaÎíåõŸ#v^ʵÄîL\¢ådÕŸòÂÎu‘cúEFó¥ïBñ–ª™K M|Ï7iùZ/ Å\îA›?Y3ÉËgÁeé.šà{³‹¦V´ÚÐr •­˜›Gh|P9·èEßBãƒÊ‰VÌÍ#4>¨œ[ô¾oS—ÓþØþ˜™\-;ݰÿ^hx¹H`dC±òÞ1íyß}øHIudñm‰Œ/ÓÙ·¯Œ½áªW Åx h‘¶žÌÇæÞ~‘›˜èö§›œR·Š•£öAãC9ïýbñùÅ?ý¥ò5Ôî<|–[øwYß{dÖgJÙÁƒ': $€‚p‘äl]ž6,.ÆÎDe4››ì7‚%Ê5˜ˆ‘†åk€ÈLý0_öÛL*Ûª ¨œ ÞÁö@¢èÑ :8¤n©1:qòÊWßž2ý|¶ÜJ'’a“ghÒï×C­Qß<ë Ù‡ŠËs£:ÚÖl½TúMÝá/¿lùîô #ÙÏ š5;=ê× ‘ÑCîê¹wåÓô{ÚäS†Ç×fQÑ-«Fe1YZÛ¬¼«w4Z¦±©Ùí™äýe!2‡›«¾izóÕmuÒþñ° 3Ô÷ދׯj¦.Ùºhvå.n3^Rm ƒCLÞn=ÿYý‹/å7–’>dBÚœ“õÖ%ŒŠ|yç ˘ûV6rÅl×Ríg“š²òÍå“ú÷fîêK?«Ë/ØÕtâ!}ôýÉ _ÿN“2êºhÁ/÷¶ ðÿv²ìgDê_˜Ýéдú\êÉËïþ¥Ç¨8«Ne¬4zgwÕþCg,$þVrß#³z Óêú¤Ì{ý©3n,á $Û8HÏŸÐzI*÷.è?˜ó'}ÉÉg]КA¨2ð½„$\’-·P9—È%Ü@ãƒÊIPÍÅ+4>¨œKän ñAå$¨æðJÛî¶þ˜™Ô••5\io'k£âBctÝ’‡DÍÌy-jè Ëéû;QŒ AÙò®x{Þ ~ñÐø¡Z»´¶Ï¯#Ó¹Ê3¯¬Ý‹²<íz9ÿ¦’ץƆ¦÷Íé{;=p®$¶?9’Š]*YŽ˜DAãC9/ýb©¹EnÿAÁ| µ»1åú*Ç()§>SÐ<Ñ $œ$¯ ÊZ÷Zè´qƒ{E©­j•¥Úòí÷Ö+C†ÄõTKÍKÇÍ­Z|•ó¾ð>\{S¤YûŸ·VÌáùðÈTŽ?´®â ³ƒž¤gÜ Ú](°í]qð]éŬJ¹°oMåÌ5ûl½P^~÷ý˜¬¡“½çÁˆ~,ŸsÆÌ¹w–VÞŸ[,J&b}Ö6uÁœ›T–ótÝ}®+è(—)i%Ÿ¬_þœ£·—FW,-cW,©ªŽ4=p÷ÓuÜ9—†§^Wož5( ÿô +Ìs~L‡ÙDg'¢³™ÔêCùUw-ÙŽcA `Ðn?PtTjw¨œo==ëÏ”e;5ë¦ö‹WYÊ,ù£Ó+òÝÉÝ{8zl‚:’)+/Ѳâ2` ÊŸ©—ÜÔî‚·Á?eå³.hÍ`TöÞ FÜ4AË-TŽ·”kh|P9)ºqýBãƒÊqã–r *'E7Ž_ÃròÁæ)´ß@Þ™;©<×¥Ñ:“ä-_Ôc8mÏÓ½HáÜéå[8Ï•-ïJ·ç9ŒÀ—òê‡[b‡Ò~¬-39ºå¡‹‹ KÝ&¤Ùž*ËÓ3Qm}?|î°hÇQ¡~_àÚŸž:Á].GÊ õ‹a¶‡÷”Í×P»{R[n=%.ÂßQœ~ø®¼ÉAë3eíÀ—*tCH 'µ´d¥‘±)7Å1ƒCWι²fô]/œºÒê; ¨œïS²Ö0ƒC¤æóæÕ¢‡èVF@9ßufP;”ÁÁ!&¹Þ#ç5ÌäBI¿7‹ª· ðm³f毿bâ •¦IrL3ÈJL¿œltŒÿØ>pœkQÓ˜0’|CŠ£¬²f¨mÛÙ5}¯¸1¢½»E°a2×7Ý1ƒ³UÔ~„¬`twfpÈRv ‡²ðÜ~Ð8¡v‡ÊùÖÓ³þ4ûÇ `v%¿üsK•ûàãž½ý³zæeaU÷Sß“â²#,¦^btíÊ¿àΟòòYW¶k0éyoSúùÒ-·P9>ĸAãƒÊ‰Ñ‰Ï4>¨ŸbÜ ñAåÄèä݆hû¸ù(ÙE²îÞT÷³QE'W%ÿZøËÆUÞ•hÏ»‘€Ý¦ÞE®§ýX•Åb±ÍNӛǤº0äÜQ”êC¬ÎÈ@ûÊæk¨Ý=¨ˆ.·’.b¾£¸´ßx“ƒÕgÊÚ/Mè†VŽÖâXI¾=t°jËÂQåwÌ~š]þžLÏ ÷- •ó²~>yzZÿxBg´íiq-gšwA¨œ÷P»ÀÓ@Ùa éÓ>ó­®â’ÇÖQB`úÆuc?ÓÍÝ,¾·' E¼{@â3Ù&ø…&éF·„pý äWìùK ´Ü8·Ü˜8úúÆ£¦æûæ¸/¹Ó?M£«0ìYã†èæëíw@ûÑ™Ÿ¿¡Û~ÑÍìÈ;sx¶¬³‡Å€ÛOLè|~€v'P9>8n|õ§!•ôgë€rò}xE‡ÈyvÀ”¾† ΑØ@åO=¬^⤴K^Bó§!Õ@ ´Î28ê¾äëm~¨?çšÏrrò™Sa¼êh€÷fG«èø¡å*M4>¨êÉßTš§o;ì"o®ªaüEý}—öpW)ï¤çŒ 7Û¦¦]>ÑòyikÃ0RoˆJe.ø~¤'!3ÉŽ‡Göf:n?ücSÕá:•—­Áïw¾´ØMéråøëÁ€eÁþƒ²ùjwW.RÊ­«¤ûô;ŠW9P}¦¬Ü9à=@H ˜ H *!k–üÑTè8cF,¨œ·ð鞥çöŒ¥^.o­Zíþ¡]P*'`z;òLγt@eüÙüA~ ï–ž2ȬÑIìÍ?~Ý(Ú|ž‰t_›é’ÈðlÞŠs?6WÐK«v€æ™+"¹Âk³§F1ÛîYÊJœç2¥’ë“ÂØãÕ?hrÔ\»nF“§/•–ÖÙ¦æÅ’1³ì«-`ö›={”–ÑCÝò£ißn"Ò>ܔ൓€û9C‘v³;!P9oÚ ÕŸZö8æ4¸P&³ñþšˆýk‚&n nf»Ÿ@åOX½Ä«xr„çÏÛþ°>bóæÍI› &mÎÔóLü Ìâ7â?ëÏrÛÀ@óDžÏºƒ^UéïÍ`G-·P9(Oh|P9Ô“¿=¨4OqvØóÑq3Ù˪MÐ çŒntTy|{^ï¾ôä¶[Ù¾Cýχ›ó¿ü¥…ño ï:Þe”ÍJGñ|¦`¾n€Öªav"˜“Wl‰Œ°zù†y¿;Ө̕ÒåÊñ׃Ë%Âý%ó5Ôî®\¤•[WY×;qßQ\e˜;ïr°úLI;x¦]@ÁLÀKã®s'{ÑÖ5áÃcÌLCõž¥{DŸ§•ëÜ4:N»”ì743ôÝz0«S¾Ü¶ü’˹"jMÍ\­ÚS¼ ®/íhšãÍ«275 xõ‹³”ø’F?µcÇŽn; ¶ë^YùlÈÌT¯Óé©~ùdÛeì¨RX¿;¢½›GgNêINÁGºÔäÐ(fÐì¯é9ÎmèÌûDvU=¶â'û÷r6ÌÙC©Éê(uËIÓš¹MUìvÌ'wy¿~ Qì¾æÆÊ›qúT2/ë)uvö“šÌŒ©<ƒåÅ´Ò`¿ÎÄÒ[ýi?¸ËäÌí®ªëyßªÕ mÿ€ˆü ©—\•í¢w2òç¦ÌçšÖZ‡üÜDçÊE‹µ»D  u—¦þxËs™Zg{£ÍgÞÂÄgJøÞTZ=¥ãƒ–[¨4}Ðø r¨'{Pižbíp ”T³íVl°Olb„;¦¼¼=/–‹7ú4rS ¡.Ìäû/vKó¾°T³þudø¸ŒP~Qåy2ç„ÌЇѾ^yÛ§áW°k¸*]Ž ñ¡= \ÖiúP»s¸ø«ÜJùŽÂ‰žˆ“S¾>ãêˆ×H $àJ Äõ¶kÜ1Òïcö@¦‡¡»||÷¡>TÎG°×ìc}æfÕŠiÙíÐ*åW ¨šBíµzÖ f£Ù¬ S…Ò3¬èü8Rulç廟Ø$â +iˆ!ñ…°:¢ë£g‹o€~09i:y¬êtÓ¾WŸ¯{¹È}½Íßþém‰º]UÞÞ'N7\—s¤À¶}Vý-ù ¨)äªOÇjì‹7Ö4rVódÅé7õ&tÅÛ­.!©¤ÅB7ß#VFà äÚ¿‹rCuml5ÓpBˆ±±– #gëžð;‡%Åpž2~Ü|lÿ_«ççîÇ#J™®î©ì×Yy­?KŽ“*ãTs”V§¹%mJ)Ùï2øÉ¤á¡…ãÂØCŠÚdÕ÷wþ[/u®~ÕCVþ,!‹ž*¬Ý[‘@Ï‘˜û—¼˜£“³j˜Ã3Ö½Ê xRMv.°¹ùUo±ÉÈgb£@ÊôÞTF¥Ž‹Zn£´fEÛ¨§Ûg]…§è’QNÛÛ­îçÿ(YÞkÏ‹æ"ì1eºAcÛá¼ùÃBf…ÿrªêþ¦qq]ü°[£ô¤°†¯ç¡$OfÀºÙCiÿÄJþóÖºŠ|áät­'ÐòíAãƒÖóÁ.µƒ—\Ú©úÐüâà/·ï( V¨œ²õ™— €@H€t½DôŒ–?Í”À¼ÿŽ¿¾´Òåã»7ƒBå¼…y-?K[Eþ{ž!‘ù8QrgÍô%…ö~T8çTq%b†¦õøßWžÔúZ£ã Éñ5Òo¾«;uêDí±cÇ.Ÿ,=[w±¦É1C^7H73§ ©pÙT®ú.JlÿòD[-Û1v:W¤1ß½gGWWØF`ÈÙ’:pcû=S©ëG©ZKß©[ÄvíOè‘¿n´r:о2}‚.œñ^~ª¡5wïáè4:8¤n,7~MÏ+.þ²ê\±Ùªí¥ùÍ´eñod §Qt”ÁìQqûu˜>ëÏ"rô‡+õŒ¶É“ï½*Ýu‹²+ßyhDÏ^*c³ÙuÒÏùSJ½ÔIÐúU ¹ù³t ÉÞrô"c#sôððõùGÔõdAJ"67“oßXUñ²{æ×ø šÏ|…‹Ï;‚€è÷fG(§dœÐr •ƒ¦ Tõäo*Íj79eÊûÿgïlࢪÒÇæ•aTysÅX›JW]×\ó%!_ZÁ~šh–˜ÿ’jÃÔÒÌ]Ñ5_0ÉÊt7wK´ŸnnRö3p³°Ò¬¨,ËÒ©|)A†fæîæýÎ̽çÞ¹3À3}Œûöœç9ßóœsÏË=çˆXŸ÷ˆÉé­Úôem¿j)í àÃ5-Ô¡9æFÕL×íþ<ˆÃ¡µûŠJÁ퓎 oëçou¶[<Ìéz§bç#R} Ç\ íqáÖ~ M÷N.¼ò-ç~”N¥¤rX\¬òLh·ð€Ý@›A¤A۶Φ÷j=µ¿ñá"Ë IC*ç/Ì|/k :”?9™Új¤ñ‹]™öÈ?üΪ(œoWˆªíÄÒ³ó$³ffªG¥Åö¾nô]qÿ:8°õÞ;–5 ÕïÈ]_%*x¤Ò3­H“ÕøDÞ=Êi£¯‹£Fh~¹,aýWeÕµ·â:#¤ÍÛ!Ý:d¢ ]gª9Ó¢3§Z‡¦¨¢ãFß÷aÉ æåÙ+›ýnÛ•³M2/Ý@͈+Z𠵄»ÛϽCÝí‹“hA-凃îx¨ß`•T¡?õFãT÷%¢—¾x¨mî𾱃g,JXY^VíÜ3‰…ŠžþHPÓ/à²+?·å¶ÝPV€—þŒ‹œ¼|OÒÍó.´ÔêÍщ©ª¤™ŠZn±hË—µwæÏHvÎ$Ð?9–Ká@V8ú§®x©õŸ#Þª[4..^=ôÞ¾Ç6HzKqÙ¦?YÜðÀŽÐw‘ù™(¤A ¼ß›tuÉG9æ[GIåp< ÕG*ÇÑ<Çã¤úHåŠ9ê#•ãhéãâå÷×ç9ÊE#ð²Ò”ÈùcG¥*­ìxtJ ŠÆÿi}ÌÈ‹§ö±W¤·§Êc¨öÉ‹s×ÑWœ¢ØÕ;‘ê9a=««´X¦;ß|˽Å–¤rb•gÂ: „€èžºÔ ¢œ-Ï*nÆk5K :ÓVûÖÊuÏ$ç+íJôVþ4ºƒ·þÓÕbÒVQ²ÃúȼÌkK^;]C ~XãǨ7ošåc­m¦¸]#Ö§+EO?zñÁ]_Ñ_Ô#¤F“rVÑ›É:,À<ÖуCxѼš[rgþ?}nvzs©îZõŒ"eBôó cÏ㦠m’ AͲÈ@{þ!ŽºöÃÁê˜fÄÕ|ûµ£áè‡õA9:Sk¤åå*¹BÖòqµûàÒ¶‡vÎÒkÇ÷E¿Ÿêºvóò!~íbàµý@šîAÈ·¤ý(¬äÄ*Ï<’N@€™@× ÂK݃¿h¦–¹ùroA½Ç$æØQWIå|‡Øƒïä ÿ<33!¨ÿ´¨~ú£ÿ0òQ¹õ>Ë{U<‰7‚FLˆ|©9ãHõ銶¾{¡ƒî,•%Ü™áWƒž[3³=BÿaÍÌ•zû,¨‚“Zß8¥o¤•&Nˆ:ôüB%-v±ÙšR2Ý[’ýüãJ nPKðàÒü —ÉBɨWç̇:“¹Ã1ÓîÂÿ×È<›©}u±þ:P—ìs)=BºXÒ/¤ð8—Ÿøë݇æ2Æþ¡&?¿ º   zÁ˜qÕY žh¥Ë섾ˆÊK£åçr[Ìøû§°åRHyóU. ž8Ûà˜U)‹ˆ’àk› òÜýLPõïMÚº„(i¾%•#…BªTìì$àQ›'Ût‹l_C™QSÃåÎzgxåwAëól¹øxîŽÑ×ÓË?w\¨Ô»ïë£Co~^C·¬‰C¢¹5ŽÄã™>u¢ŒjïQ¿!ówöÿàƒ\ÿýOšª7uïº;6ÆS×?<öIâÇïîŽs¶‘¨»aü;‘ê¹N'ò(q­0n?¦;i¾MgÁ“´Å·œxå‹èÁ#@ € t™¢?-Ÿª¢:âe _´me½´B¤ràž2ÐK‡—Äă­§ö5Nt¯Á!{èµMz3{KTœð{Ù•¸ü%Õ×ê2ÈbN“»B2&ÞŠ¿î3£Ïv>ØØÙßm¿¶ä.nû¬ó+À~#&ô¦MºÏP]‹ŒfŸ¾*æÁÑÔŠ‰èÀ¦•ô”C8{¤$¹Ox~gl³8ö:r„Ïp`íÐ ú¨øä ÍæbPÛµ.… ýB ˆOùY^^ŠJKK‘}ДŠÇý·ÿ.‚Z®Qb¼jþº3büü38åR§i]ïPþ™ý¬Ä¶ïP'‚˜aª'÷®êŽ@ØúY8ÚÞm"zovwP¤ù–TŽ”'©>R9°ÓFÀ³>(6OÖé`¯:êÑ÷{l†c~¬>Ïš ÓƒYhä ž#€Ûµ ‘‡Žuý—?!®s%Þ8ô‡L­£­.*O“·nÌÈhôØ:’):]ñšØùˆTÈټ˳äísaÞ~ M÷ ç[Ò~&9QË3Þþ zûj?aÛ\4é7½ûàÅÈÐů?lqípôo8©œÿP{âÝûÿþxݳ 5œhû3‡åý±R*dx™5jFÁ"Æ"¤ú Ãá!©}½‡”ÄhºÑ&±ÔX*K°szýt¨øÃóú›g Š´JåÒ~ôýJôuµ¾õ&M/¥:>‘ªþèî:Ï=²GkäTG:BÑa·™EôENÿÛöö·†ÙCo¦cà{) úUÝwê¿ÿ“«\b€ÑE. áŸø‹ÊÅcûGà"­ù‹W¶ý2¹cõŒA Š´é½KÖiÏ^û:=¨¾@˜ý,|ííY–‘½7»;#ò|+n}ì¤*y×zÞ_¡¤!£lãN^LFñþ^µ£êóU¬fyÑC.š~øµÏ| =Ê \~¦¯~P6„ÞŸ Uì,vú<©­\ .ÌoóõÏÂÇP3Eeú†üGv·—Þm~ë¬á*í”)yý7gqÐÏ|G*çÓÏ|èËb {oŠm¥ØúHó-©iüHõ‘ÊÌõA±yL‡¬Íè¶4]o=óö&ç‡|á–ß…­Ïäâãû'SÒd>k[2fLõ†ûNµÒËT+~5Oªä˜ËAbgRû“_Ñ_Øp!É·‘ö£ø’ NyÆ)ØÀ‚g€=ˆï¢*£m‰¥Ã‚÷gýã$×lÄ“Üm?g¯" U¤r,‚î.°J‡ ƒÍèìiëÁmÎJÉšÜt牴¥/®SÄØ#¼+Ï‘W·\ó¸í8MìeéÑ‚eÉ ­N:v 0Æm9nÇS¸ÚBªO›ƒÖ¯Î“1‡›…^*[Ø×¶Ü[3zÏ3މN_ýd¶mÒ‘ˆî.ZW<9(wò ÛÞ ÛìKºâÝÖz™ÏY:ÓÖ­”‹2ã­ZÌè“}OÒ_ z†l?g•~¨ø¬®’‰ÐdõÙ‘ç\®ÂNá{b¨Ír%5G[–ëfCÙŸ„¿B¥[¿f"Î.ݽ%9É”ŸæL„4¹Û%«3S(‹¿(¹òœ³÷_!ôOÂrÉ›J÷ºÂÇ?³·PLH”Fá]æÐ¾Åy ö6Í{öÚw)~ýªÑÄ{œUÌì8ù™KlåÈüÌE†Œé{3d‹¤˜4ß’Ê‘F‹T©ØÉ\›§k:¸NuÑàNÎÕÏÿ[ù~þ­ÉT§œL_iذµÂÑN=¿‹\ŸwåÂþX‹þpCú£³z¼*†ý=ë)¿íÈ·ªík•fäjè¶”è<=âqÎöýÎCgQ¡òÛú<©>c.9'¸]@Àö‰_Û_ìÑäú—´…TNÈòŒ$¸òç=Uá¬bÑ ´ý`~Ÿá‘&y»EB7dÊhY/•·̨UͶ¡ ’£i“ô¿«fÕÛ–Î"•³Y¦}ìéö9ƒqÿu+:”[õ†rv“ʱ ½+>E–é+_•mÂK ±‰±éì[W'ÌÛDö¤¯~S¶)3!¡£å²ñÜ]ó©ŸÎ™ªêôÖ˜”¡ÒñÆÇ Š•Ñƒ*çßyæòÝ~–-Zµï£¨é©rÛÞ·~|€X_Æzt¤`r²Êb²Ô_úùZÕÅKíWZ‘µ_Jšb°&¹ýK”ß\U;ßc…Ç÷QÏÒDàåqhø±í£ëOU-ÉCn–§ß:¼_zæ[3zsÉ”j·eä´+Ñ[Ûg$Ó£~iKÉ@IDATGús†wß~¿IWa>ñvÕø¡ñôÚãú“{¦>ôO—$²ô³¥›m+{¡ïͱfÌÜŒ.}ñþ•CŸü`Tâ´—1¾÷u12µTÞ+÷ͬyÁ­óžMª÷ÀgˆÒÏ[¿Fˆ4ÝIå:=†s¹›…öT¬ŠO¹¢3|uê»¶³¿T›õ<þ“†'ÇR߉]ÃåäÎòÁwÿ$-—ÜõvÓ3ÿÄûY~K5ÅðôkKjîÛZéèä£)e¬AïLK¦zµ,UåÍc³óéM´Å÷O>~ÖMÓ»‹E‹ø½ÙÅâÉÙ\’|K)!•ãl`§©>R9°y×ENw-.ÿ·ÛÊ{rPƒ¶ï¿mW$Æ*ó+g×¾à1â!j~E}Þ„í_lãû¸Í¡öÓž±5ýçƒå ö½_oë\Þ[Tž~âd_ªêbÙÆÚÙËìßqvJð«úQ+ü-Ê%öõyl>©>c. <‚¼ý Œ_‹â/>¸øË·¤ý(¤r”‰då™0éà\@ôhœ÷ ꥈÀËy¯S%C꼊²Ë¯ý}”í©%¥”wÎBñ¨ºèb:$•c «»\ã“\´Ô\²´£Õ_yý¨þý®5Î-kKµñý=›¯¬)®ô;c¥¦¾Ù„RmûµJŒÍ'| ëknBxÀ3QªöKùu4õÏÕP«¡ÖôñþmWßáü*Ò~ÿ™¶F¼øŒ%kx|¬,vpäÄøŸý&ÞÃÃÚò‹ñÿ¶­î(uÜÀˉ¢éù¦ê’µsRb®SMž“›8ÙåvÝÉ7îp²Ý$O¿J´4sK㎃XGÆ+ÕI£¦ô[8jŠC£¹átÛ?»¯±‡Lü¦Ÿk˜lýš’!MwR9J'÷òO®“J¥½RnˆKý£qüÚÑù£¯Õݽb‡I àŸTBpöOç¾CúSû½‡(›Ê7 §ÞL«Ý0ãÆYJFô-9†™+lK’ú™?.„Á—ñ{“¯âp—çœo;#D*GʃT©ØÉX$­G’âô”³ ™Q»þ²A÷É{úgÖîè`ªBŠšßCQŸ÷à<û#éEÙdú3†·}´glAìGŸ_Ìkˆ÷ù‰úõï¢ðê®ôJ¢ò 궯–9Ùû…B¡ \âRŸ'η¤vvw9¡ý!@xBøµ(þ Lù–´…TŽ2‘´<" ‚Û@I€ã ¢É"Í‹€åä¥K¯/ë#U©dRsK£ùôçGL[‹Ëü 9ÕjPÞº<ù¨D“¼¢h…¡ØãëDçsÔ¹>mÖl4vè0Ù _ÅÊ£T*i{KùÔçï˜vW¶S;=1s¬"­”\Ž÷š•˜¬ç¿>fܰ£Äý+|wcñ™-n£õUšLmÖ–Ëg;ŽxÚ´ßo½átA›'¹sÜPE|T„Lb6XÏWþ·}C۴प<Ì'ý¸øu×@©Ñf¡ñãFJoLM”GcÿŠTH$UgLïýïÓ¦R¦ž#†h2@!¾ÄÇ?‰•]P? º‘  0â÷fà »ö¤ù–TŽ”©>R9°“™€Ø<™­xUÄüšú|@Â> "Oa ×Ðøä#›,»vª=þ¤ú@ÎN°ëþÓ_¸R"íG!•ë´Ê3® Ï ‚Bˆ‚‚@ €@ €@ €@ø†¯i`@ €@ €@ €@0ÀQ0¨B˜@ €@ €@ €c0@Ɖ¦ €@ €@ €@ `€(T!L €@ €@ €@„1 ãÄÓ€@ €@ €@  0@ ª&@ €@ €@ ˜ …qâ€i@ €@ €@ € U €@ €@ €aLˆÂ8qÀ4 €@ €@ €@ƒ ƒ*„ €@ €@ €@0&Daœ8`@ €@ €@ ‚Aˆ‚AÂ@ €@ €@ €@€¢0N0  €@ €@ €Á ç¨F‹²4 8˜ZTZZÉ>8Vr”•¥af«®•ë¨ÇIåX«ê>²J‡Îèj2ÐÂ̱ÒßÜ8H™Ü¯·B©TÊ$F½¹êÜiÑ×6šö3%?%3s¢läõ©ÊÄ~1 ¥ I­×:ôõ—LŸy͸£¤Ò*(LB}Ú¬,Dyq ŸÓÇlO’ÊÙõ¤ç®‘Ì›4¢WµR.1-uUºöò7Vµ—ÛŸ`øK|íd°.Q4³ÑÓOdGMŠR™ÍFk[ãeã—l+,*Ö¯=isÉ·®²¬ä„)?sÛ,4ú&u¬Z"·På„î¤áõUO›˜\[hÿÔdd¡á±VIÃÉ2«íà ¡wKÿÄéçðãiÙªC¥=Úð ƒÛ\ʉ007¨&0•ƒ­­µèby%¢«¶,´‡„§#?hÖÏXDÛÿ#$å A=Ë¿¾ï ‘îTèé9IfMü½*¥t„ ™Q[cƒñì_´¿ûڳŠQ½Õ5úlýÅU†Ã±P<í*ƒUŸ ¶ÓÁÏn¡¿½ÿHí$•ó›ð½LR¾›@þÉ”Lê=Û·LÏP×és•#}±—¦½âjsÐÅòÒ÷-¡/?ãó¾%áÉG_Ð BK@‚ÕW‘š ÍyJ²nÑĤ¾8‰å'ËÆ±95¥,c-—±)˜œÁ"Lꑚw6\ž¹öP"•c©§»<Æ:ð€Û“{·÷ššÖ»·ï¸›Ñ·¯­©y`k…ÅùLÚUñTü•Eá¼æ~¤?õVãÔÜMmîWIÏHõe =lJÐ(­²@š>F?H*G kÑÓû6EOŠaÒy±â…ºÙ«ŠMî÷ÈÓ,~îÚáÌ€6w»dóBm’Úý2}fª9Þ²|æ2=Ó˜)Ããœ.±Ï·îÁ²–ã[~jrÐî¿-н)©Ü- ÎêÑ¡‚éÕÜ^|ò‘·”µÉ¿•~o¸çW†g»ñ¥nëŸ8ÍÒWï—mÊpL_Qu¸ù÷ÙO6wãdîºQã\Ntݨ²³Ü9ØÑrÙxâÐK K¶–¹Ô±\BOÖïDZ?s‰#Á!÷r´žE`-Â3Ý©02–¡W–ßÙwp¬,’É é…·ô£çnjaºÇíI½Õ]{q—c&OWeA«OÛ)îûÔNR9Wøá̽|8NýÓ:¸Zê¾P_gˆ¤ï#®r|Û+®D8Ï_Hß·ärdý üÞ·ÜyòÓ'‚‹€ €@È Î Ò¢üר²†ÇÇÚc 1šÍ­öŸ9Ê5›‡h€ÈŒŸ¡zö;LÛWû¤r>íîn78¦ ºI ¦S_Ÿ¼úù·§L?Ÿ­¶Öân·áSgɲÿ8*¾T&ýÍœ¿$®câ­j‰±Ö|ôÍ’ºCGÏXPÂÍhîƒsú ‹Wª¤/Šù±35÷m­té "Mœ7ãÇ?Mºi9ÏJ¶àÁ!ªlj¿ð‘þ™g‹Zthš”5_>kÊýÕ‰c¢žÛ·Ö2~î::eì ¹æ[B9^å§íøÛ<8dV™ë¾i}õ¥MïâO߇Oš%͹kb|‚2N–¹boÂéÒyµûíæá¿ÂùgÚ½4#.=Mýïú¬ý¯;û'•Œ&ûëÂŒšªªš¯2”Ù¹\Ò~îCJõ.U²r¢ EÈT{9hl¸Øv©Ùl’˜ÍVitœ")>F-ê¯ÔÎYø2jÅõ×q(U¡àÉõ}D^?#‚I •ƒäõ,R;ÉÓkÌZÞÉŸœM+oFß¼óæåƒ¥•µ(¥Ž!¹%}’z8©anr¤õV{ \ýÅ.Çý//žnê‚[Ÿ ¶Sä÷©¤rnIÎ'Då‹bçŸötàÚ¾õ¶”>ò÷Á{ŒW{Å;†A½"ª¿¾oIåHÛq<Þ·D5>YÄø³¹è»j‹\ÊB\?·–m½Fj«y½•°⪜ð˜;OwEbÕ'Èí÷ýGj'©œ{j„Ûiù"\<¸ú§XõkÒ÷‘öŠp)Á&$±ý…´?„TÎÉ€›Ÿ‘¾oIy’êsÆŽ€Ý€ßAïÈg¡ é7ÅSƒCWÏ¿ºqìôš§O]m÷~Îó ©œg8Þçé+Ñ‚ ·mp›máý¬ëR9×0ºÞ1i:à*Ãà#þåo¡ó-2£ãœåÁ«çôöG™–é²ßê/}r™%ìå´èî[Ó¨UÑ/ÿ}¡Î98äŒåÊ]é©Le•¦Jï\™î²ìÿt`o§Ó8r' Í›%µ-G،ʞ_ÖäÒC?Ø¿W$µt'ý»éöYŒKÚï³ûKšoIå[å«üL‰¦ãnúåd‹×øOùtÞ ÅË&F ”ëÓß=¼ü3g›$gxL,5+ï§*C]V¬gù§ )öWx"¼ð-'Â+6Â[#Wô÷t?Úùáyº¾d•ª¤ƒ<îŠË38ï6õ3hû=%/ù׳üæç&×tŸµé1…m g3útç]—]‡ü¨!¸Å§Þa ®<ݱ>An§¸ï?R;IåÜÒ#ÌNÈË"BàŸbÕ¯IßG¤rˆúj¯’ò~ÈýÅ#2¤ï[6rÜüŒì}KΓLŸ>8@tkŒt¾c\‹¾=z¤î…%cªoŸ·ìÕ˜¢”;:C…—ó"}G³-›1ïCÐŒ=»¼Ñ³£Ö§4©œÏ»Ê Òô ?Íx4 ó«ý¦šË.K¢ù—ß‹üÀ‹»Y/Oè?,6wÅÖÇh“6 ¢Y5£“‡}ÌT*=Š.Ðé ÔNb?bE˜ŒvÂEŸ&ý5½Î¿¬áû¶ÿxN{Ó,CÊLuìbª^¤ñˤù–T.€YþÊO“m§"ih/0º?U üðŸmuÇš$ö5ȸÕÅ%HýS›¡EZœFZ¿þª±=ƒŸsþHýŒTΩŽº(•]”6;ÊÅt¯MEåœ|+týŒ´tÁÌ|(r=Ëwºg¡;ÆÚ–ù¶ÔkYZŒ§4ëÇ«Þ!ªož®!†¾>ÁÎNW›CsLj'©\hbé­5hå‹·*†+bû'G}¤ï#R9BŽKþÚ+އ‚ZñŽéû–TÎÛ–W|¼oƒÆÓ‡>–ÖÂc@nA€ãQ%Ú¸â/¦b×µ-Xa •ó8^«v낾qø‘K/Ömðì¨õ)J*ç3À.t#é€ÐãùÓÔÔ”j‰‹wŠ*Y6RsМ±ÉôVm?}ÙÂ:ùˆi³Ó×aºL¤½œ’Þ/‹Ú5Ka[4žA_+²÷nËâ«g3<Át‰M:°·“I\£–tùur=hWîëVÏAé‚M³¢©2é²N×d›Â‡ÆÏqFÂ4ß’Êù³ÑùYQø¾¹‹[•i²Ç÷­uí@+3£)—·TU6;÷)s×EêŸïY¤NSZe–ªòæù;*,Q‘xÑÓù#÷Ï[îÙ¹}ûöäí{Ž$oÏÕ0|ø; *^‰§žÙüÐD—ÍÐIýŒT®G&l·Š4ßr¢[Á`™HµŠÎ“Rã5s­‡Œ¸<ƒ‘oÙÕÏ<¢í甼ô(}‹M=+P\îûL÷ìtI*~ç!dF'_ßä³|ê­Áð.ÝŸõÉÓå±p¨O°±ÓÅä’ÚI*²ˆº)^ùâ¦ÆÇ ©ŠU¿&}‘ÊùÀ„/ûo¯ø–úNhýÅ;6¤ï[vr¤~æm§¯þ¥àñûýÎg¸€5.Û‰¶ôŪ‘±æHªCðÎU¯ãe‹ØýH娅ÞóžJ_ùŠl–¦W„Úñk.;÷ËñÍ"3wƒäõŠÅñ©Æmɶõ¹Û¼>ˆõ-Íý}ÉcŸˆÞ»wo¯½{v©Ÿ_÷„|v†ßÏéÆp‘³o,`òÕ¤×hQ=Ó‚êh“ Ëp¨ñyÀ6¸ØéSYO¾gNØÓæZÍ9û8MDûØËÒŒi´ÔpÒ´qÁžÖ:£„Njzš\7a¸ü,B;ß©¢GY#ðLGîè“…4(Ï{êŒE45ˆüì|_žHüS“·S:KË ô²Ÿ°»IøÿÜ–ûç¶Ï.‹#vaa’çÌ·‚’ÅÑi¸\’éOþœ»%¨e¶ÿHÂÝ®O€_9ÑõãÏ5¹èþIIÔ·èÌ¡W¼¿Ñêº<¹ÔÏXSãQúÓÁ¶žå/ n÷|§{æ¥t`í¨ºZÇòÃ,nÚ]ŸF½Õ5|qŽ}ó´ëúD`;íö†ö/©¤r¡­C{ÊGø~øø§xõkÒ÷©3°Àíf9Á¯†Ð_<ãBú¾å"GâgžvRç>ß·AâéS“qp  Ð È»b܍ި¹Ô^–*‹¿ÎFϸ‘Êy†ç6šÜí’µ3'Pg5G‹ê–37RÓqzm˜s}¢Ùh6KäÞà Ï#@u_ì»rÇ#ÛXìaÅ8‰>9mBÊøê´x›¾4Í4zÊLô§ºÓ­e/=Õô\©ç|„8ËUž@uÆLs´R-‘5MŽ*¹ 2Pšï_rk½IQg´~²IÎvvê†?¢•¸ûÜökihqé”ÉA˳oÂGt Ov=T_‰g,xñDd•ÉÔ±Ô@¼½Å#À®sʶü<´6»#I½¿î¾qâeñ#ÕùÇ÷Ø–IÔÿ`(Z|oC1C”Éý3mš7 s·¢_ÛTSÄvºÄË?+ÑÒÇŠìɉLD‰hÁßvÄ~65µé 5À‡P=Ú·Øv-\¸öIË”d¨%V›“¹ZU‹JK½»Ò]Ÿ€ãÐ )'Bgmè4§ãj–ΟÜ?×QOîk˜¿•yyή“¤~Æ™>¯rY›z³$ÙÕ@é>ä¦8²ÄXc>ì)øA¨·’Q!— ÄÓrèëììtrÕû«v‹Iåìòañ7å »x‘ùg(êפï#R9O~lÛ+žrA9™¿àAÂþ9r?ó¦î÷}ž~õy›W€Ýš@× Â{|üuΉT뉗WÕ2u62¦©c`pe­G_¨M¢:Ëõ¸ÓbæŠbßã.ûT¹Î¦ˆ–ÕçßÏKŸ|ôy£÷Ð Æœõ5#Ý7ß5™TF©ÁÐaQD÷•ÅÇ%F$Ūée”Ôñ7ªgçïQÿî·ks6–¹tô“È•¢Ï~X¬OÓ7eÊÃý×ó㥿–8Öf­{E~ÿ¨¾ý$Æ6s‡2RæÊ‹‘«t ±“Q\Äs_lÐŒÎVVâ Ûïñ=¹êTÜ×®{³És/€Ä´¨lâ;Ø ç¿ËÏ]Ÿ~Ý1ã–_Yâ:^©¨Õ¼…ymrÿ\»ï¡¨¬£ãÂÛúù[éÎ(ƒj_ÿÔ½€V¾ ¹´{ÑÍI(f¤jsÑÑ·ý;µmqz67£o_Y_󜠅5_jtËÂÕI·0s¡Ò¹ÕÔ^‰ð OÜʉðŒC0¬¹:áxæj— ­èbÅ u³Wù©gá§»OÎõ3 lù–ƒžzXÕ³<…¸Ÿ“¤»ÄÒa¹Â]G ë­µ“>Εg¨ê\ítò÷ýGj'©œ3žav$tùÂ2zdþºú5éûˆTΑc{Å!¬ƒù Ò÷-g9r?óÂè}+4Ï@ú¼ „ @îM ‹ iж­³é}‡ZOío|¸ÈÙ±î?™Håü‡Úcïf­A‡ò''Sû‰4~ñ¯+Óù‡ßY@…óÍã QµWzvždÖÌLõ¨´ØÞ×¾+î_¶Þ{Dz&¡ú¹ë«DTzÆ¡i²ŸÈ»G9môuqTÿ¯3—%¬ÿª¬ú¯ŽG2¹m¹…m7”à%ã"'/ß“tó¼ -µzsGtbª*)F¦¢–á*Úòeíù3’]gÙù9þ²N2;zàÀ?œm’x‰3jFcÑ‚gZ=vQô¼ÕEι•ŸÚ¼Ò­óG&Êð¬SÍ™9Õ:4E7úÞ¸K5/Ï^Ùì>¯ƒÌ?µ½"½=UCqq.S|39ú§®x©õŸ#Þª[4..^=ôÞ¾Ç6HzKqZêO7<°#Üą́©ê|sC»Â"“YÝöM’´ÿdñÜ«E|ø Ñî儯ºßu«ášéZ‡Õ*—«$*•\AÅp@ú¢øÃ{7-^ð¤×ÞwÔý®Â“{ýŒŠ?Žå C#ëz–C‚ø€$݉•q¬ÞÊQ/ŸÇ¹ð e}‚‹î<Ä}ÿ‘ÚI*ç× ži³PîˆD·úƒ—6Ã%TT\æ²j€Ç¤å‹G0¾NÉý34õkÒ÷©œ“·öŠSŽÃQð{lHß·ÜåÈüÌn§ã/éû–4ÿ‘ês @îG KíA”³åYÅͱ(RjЙ¶rØ·†T®û%·1Ò®DoåO£.ê?ýW} Á!&%;¬Ì˼¶äµÓ5Tç¹5~Œzó¦Yt'Óó|¯ëÓ•¢§½Çøà®¯.Ù:ùÕhRΪ¨€ö”+Gy™KKOþÒІ—!똥ѤõIŠAª+ºš6ÞzWmîÙ´Þ2‚ P@;Æ´ç=€GEm³ºÔhà nPf = ÿG]ûáà uL3k¾ýºKïשüÄ~¹Ž‹HÖ|Ø’;óÿés³Ó›Kuך(gQ¤Lˆ~þ@a +ÇñçŸÚEx&éà€3I;L^ãu¬TwÙ‡òÏâÓMï_h×S¤x†–¹îxëâ‡þi?.­èȪœæyóîº6wîÜ×w-Èouˆ ?ë{¬EB–Ýâ…·ÿÒ0yòäúôôñuc,©.*û²4‹b4SûìÚ·1ÊkgÄ.Ì“¸~æ/Ý*æÊ·¾ëÏLÏ{\ÒÝÚ!¡;«­R¹Ô{yMÏ…8 Þ*„Â`Í3Äõ ÖvzÅ]Ü÷©¤r^Ñ Ò…ô©¹²… &ùý·h~R–]¿På‹=¼@ƒáŸÁ¬_“¾Hå\øqj¯¸Èq9 {ñÒ÷-©§~¶ï[¡ò[}~xÂ- €@w$Ðuˆð”á{ðÍÔ27_î-¨wLâ”*¤rÂí‘÷sО™™‡ã^ÿiQýôGÿa䃡rë}–÷ª,T¿0b‚w§ŸÀdIõ銶¾{¡ƒî,•%Ü™Á6Ó%ÿrøk›‡æ2Æþ¡&?¿ º   zÁ˜qÕY žh¥};¡/Râ@%–FËÏ^ëË ›þídŠY¾v±Ù†d(:º·$ûùÇ••E!Áƒ!ó +\& %£^JkÀÞ$§òSƒž[3³=ëMÿaÍÌ•zû¬À‚“Zß8¥o¤â+Mœuèù…”{³ú1ùgúÔ‰2ª¢~CæïìÿÁ$¸þûŸ4UoêÞuwlŒ§®xì“ÄßÝÇ6ïR²]ò' ž8Ûà˜U)‹ˆ’K 2¤ OÃÂ’Vxœr"<â&ŒrÞVÍþÓU¢]™§<ûñ%êÝ#O½-æ/yZ—º{÷àIZ?³crû+H9(l=ËÍ>'\Òý‹ï.Ñå³U™(çè¹ö°`—ùÔ[3‚u@ly†º>ÁÖNûþ#µ“TÎ;¾Á¹Ruþ ËwºïšN:Õèëß÷_|sÅ1#Yò…}\‚éŸÂׯIßG¤r.9µW\ä8†»¿°‰éû–TŽÉÏÜíäð¾$ÿqÐçn(œ º=û$…°èŸ–OUQ²†/Ú¶²^Z!R¹°"ºè¥ÃKb*ͲÖSû§?º‹×àÝüÚ&CJQ#KTœ’ú*ÖÞ¡l¿/ô_R}­æüµ&÷ìÂF®¼Ü{¸óþÛA-k'1^5í!8éÀÆN73zê‰î3TײÀeVƧ¯Šy0¾/þx·Ø´’@t`É)IìÜÇÐ…g±p)?5¹+$câ­˜‡}¶óÁFÏqÍ-¹‹Û”íQQ³@û˜Ð;íªó|ÆÁÏãÀË?M¬ÿg4» ÊyõÄS¡ü3ûY‰mß¡Nˆ1ÃTOî]Õ«|Þ¦k=+ÄY8Á,'„³2 C*Ùgýé¡ñÆaøÝ3pÄ(<À^IÏèëNoûâéSÀqCÜú¹ƒE9 µ“TN”HTB\¾0…,@;€ –Ì?…®_“¾Hå:rn¯0%Dð®…Ÿ¿¾oIå|øáû–˜'¡¾ày„ €?¼ˆªŒÔÒ[Ô^)Çú¼,âÉI®Ùˆ²ýmZ¿:OÆnz©la_ÛraÍèý=Ï8':‘Êaã5ÌÊ&w»dufj¿Æ/J®<ç:]Ž0;™8÷ôkºâÝÖz™K;‘iëVÊ©e€¨¥Ö>Ù÷d‹û]ç[¿vJ8Xå[çãŽ#NrËÏŠ¯~2Û6­IDw­ˆt(uä ÜɃl[5\ls ´‚: qÀÇ?³·PL ;¡ëѾÅyŽ/Ò7Í{öÚw)~ýªÑÄ{f0”“Ÿ¹„E*ç†9âr"Ìã%¤y¦ËnÁi2¡Ý‡sbm…g3ªüÀùáH8ðd“o‰ëgn$ØŸ—ƒ¤õ,ö¦ù|’KºST®5¯“ÐuÒÁ3V$¬ÏFŒõmÖG…Ó§%Ì7ˆê­ A±ñ1Η¸òä¬@ îngW‰—ä$._<”ðixÅ|*rýšô}D*çˆ4ÇöŠCN¤±ý…ô}K*GÜÏ@ø¾%æI¨O$75@° Àq‰¹ ´ý`~Ÿá‘&y»EBÈ”ÑôgÕ ŠÍ‡ÇÚÖž‘£i“ô¿«fÕÛ–^"•³1ÒŽû”ž¾Á©G5]èq²tH×^/³ E£iÇ“§ù‰±éì[W'tîS5hŒtZ挄)w]6ž;£k>õÓ9SUÞ“2T:~Âø˜A±2ºùü;;.ÿÕÑ[ìø˜ÑƒÕöO#¥‰¿º+é70L7"Ö­A2''Lùã\Ký¥Ÿ¯U]¼Ô~¥Yû¥¤)k’ûØâŽÐo>U릗Te¡üWŧ\Ѿ:õ]ÛÙ_ªÍzƒ ÿLjIÓc©¸^çá¯÷]i¦"¶ÓU;; T¢¼Õ¯7¼µ}Fr\ìÈÈí‡ÿ-y÷í÷›tuÖáoWOm—†ô'‹–3.µf ‰­_#D–oÉålöq.?KÿŒJgiš¥‰è£zgߣeÃU}x\ªÊhIr³<ýÖáýúÐ3A›Ý÷lÿ´ìÿ„þ‰÷zd\b9i¨C1(5M#:ê÷Ñšß3MÈ~²³¼öÖËî Y½•o=„mÌOqçÉN°¯vw;»Jü¸¥3Yù⩃};ÀS’幨õkÒ÷©\'Îí–ø„{L\!}ß’Ê‘ö3¿oÉx’ëÎ $ €@¸à8@„Pïè(E^þʶ¿†kôdHã¶²P/—QR9JC”RÞùUœ}‘«^ßǤr¾Cìúwø¤ר·Ô\²´£Õ_yý¨þý®5Î-kKµñý=›¯¬)®dدÄùhM}³ ¥Ò}îHb¼h>Á08D=M¬¯¹ 5âÏD©BÚ/å×ÑÔ?§v¼ó•¡ÖôñþmWßQá>{ŠTŽÚ U*•öJ¹!z,õÏUjGç¾Vw÷Šœ&˹áyBl§g@pî PYˆ¦ç›ªKÖÎIH‰¹N5yNnâdÇM„êN¾ÑpÇCÿô9ˈz”­_SÏ’æ[R9J'IùùÌ‚[#^|Æ’5<>V;8râ ü ŒþY‘µåãÿm[Ýùá@çå ú'·7F§=Ýágÿtî;¤?µ¯ñ¾­•îeŤ|zêÍ´Ú 3nL¥dDØ’c˜¹Â6“ÔÏHåœIÔcS؉  •]0ž¤&KT½¸6Mí3DÿÌÆó•K®}\úâµB†ú’Ø*Ñ$¯(Za(ö» ¹>mÖl4vè0Ù _ÅÊ£T*i{KùÔçï˜vWøµ“DN£ÍBãǔޘš(ŽŠE*$’ƪ3¦÷þ÷iS©ë²rN¼Hìä­´Û`óÍуú*M¦6kËå³Ç?òšqGI¥•Q˜TŽ10¸èE€múQ‚TZdŽ•þæÆAÊä~½J¥R&1êÍUçN޼¶Ñ´Ÿ)ùÅN?õi2²ÐðX«¤ád™µ\çEÏq!=wdÞ¤½ú«•r‰Ùh©«Òµ—¿±ª½¸Üñóf6zú‰ìÈ¡IQ*³Ùhmk¼lüò£ƒm…EeÌùÁ3–é§ÍÊBT. ôkÕ•"ñ $ßcï³LÞ|xùKZ½%G1↸^½°!íØO[õW:~þî³ö7 w™½²/I~w‹ [}”•¥q“ôwâê£à×þHá{¼ü%@ØþnsɼýŒŠ'Ëzˆ?›á^Hä<¶Y:iôMêXµDn¡êº“†×W=m ôê ‰±¢*e[~b£þÀÀV*åý‚'/¯5Ú,D7˜©+-E~ª[¤·Óçà ãTÍ툰ÞÊôþkm­EË+áç B;]Ã#¿3qqµÁ~ìZ—°_sûìt§”ñ|ÿ…Šg`?c*'ZQkm3*¯ôªmºaÙ‰Xõ%žùˆ¸½é–UûVlÿä©Ï#ŠÁ;ÓNB¬ì¤ÈÊ_ˆs“ãPï±ëâ‘oÅ(?ífÂ_ €@W! Á†V‘«ÍyJ²nÑĤ¾8‰å'ËÆ±95¥Œe ]OÅQYŒ·ñEý©·§ænjs¿O*ç œ1`Ÿ~ôäÞí½¦¦õîÍuÕŒ¾}mMÍ[+,ÎgÄN?õemFGòoMŽÀªygÃå™ku8ãf?Ò¢§÷mŠŸc¿âú÷bÅ u³W›\¯Ùµ¹Û%›j“Ôö .M5Ç[–Ï\¦÷׌bŸ~hÏ›4J«ÌEã¡ïx2>1öéÀIÏÛ.ýË|mb4£ fônþ¸ê¿:zdIó»3pNú2Ö£#“é|æ Á÷‘ÓGÁ¯}SÂ~ɳ|ñ¶¿{ìó?£ì`¯ÏŸÕpOtš´ûo‹boŠA*oÝõèPÁôê ÌJïÇ»ÙNå'Ž{úêý²M™~¢¨:Üüûì'›yá".¯Zµïã¨é©ƺ’Ó&Ï÷‘ó×#!ô¿|!­·úÿu´\6ž8ôRÃ’­e.ur®]Ÿ'µ³3 Ñò».®1rÖ%\¯ÚŽƒŸî<ßaÂÓ§Ÿe¬Áõºi>êuft­êtó¡ÿ}ºù¹R!†‚½ÓëñêK|òy{Ó‹GÀö­ØþÉSŸWƒuAl;IýE˜rÐA1 ¿8žt?à ǵÞC)"η¢•Ÿî8à  ÐÎ Ò¢üר²†ÇÇÚ#)1šÍ­ö¯¿j¤èh³^Ö}ÓtìÓO ß>cÁ¡¨T­dμìèß&FFÅ Þ÷Àº3¦™k_wé„'•ó2.¸àš~t#’L§¾>yõóoO™~>[m¥ÒpøÔY²ì?ŽŠï#•I3ç/‰+VT:F5ÄN?!õe ÝK3â"ðÀõë0IfôhÐsÿÖgL¼U-1Öš¾YRwèè J¸Í}pNŸañJõ€ôEñ/?v¦æ¾­•îôœg%[ðà5øÔ~á#ý3ϵèÐ4)k¾|Ö”û«ÇD=·o­eüÜu-´nÿãš~Ø~‹ë·Ê$“¥½ÃÊ„dJ™¬¥µñž›z8é$À=ˆÑñð—ië^•¯™2¨?¥[¯û¨©hÏþÖ¯/"4@3ÝøÛ?ÈÒÇ\ã>‚Išßm±ã¬¯Ù„ŒX”Ê þ~TN¤F8]ó"øµb<üÅGˆ,.sÍüü 7 9ÖCXD‰€íøÛ<8dV™ë¾i}õ¥Mïâ~Âá“fIs Œ“e®Ø›pºt^í~‘, 5œËOÊp“½ÚlFMUUÍWÞñ¹\Ò~îïxò(¯Mæv\¿P!+®KþRÝÒj•Y©ÔÜ~r¹ABÕ-…øñÓ'VùB^oµ¿ÿŒ Û.5›M³Ù*ŽS$ÅǨåQý•Ú9«_F­¸þéúá)Yr;©²ZÌünçBVß+Ýù¼ÿBÓ“ŸáüÕnj‚ÄRe)›]SäßÂÇb&$J£$– –gÇέqvteá=«é=’ºã­÷Þ±¬Éõ:íc/K·Ï¹1‘ îô+KjîÛá\"K?çHçß\U{wa«ôñˆœº K—8’û Ê~Vrtù-IÔÀJýÑ¢ºé+v¹1ÚÁ#¿éc4Âã"nh¼»9î¦(³òÇ×–Ô̧\Á¯= užòðæ^%Ëä~F¦/`4à‘hòvJ÷ÌÿM"õn܈ßn…p}â}\ŸP£vôAÁÄê?»ÝÉÀP©!,?ÓW¾*Û4cžAÔŒÞ\0¥ºÐµB’¸0•×­Ø[ÑëÎ4UoÓÙ7®N˜·åZ°M#ÕNå‹ïz«ëûo ®×UºÔëf£—Ê–õ‹"¥†ïL¤/¬s|·$è¾íÄ«¨‰šß]¹p«ïŠ›îäï¿ÐñäàgÚ5èíÓp»¡LÒÎF;Ö,í3·ûñú ¨xÁÌêBVf‰__ò—}å#òö¦·66í[œk‰ÛýdþI®Ï;†Á¼^vúò„ÈËAOzìüÅS !ÖrDõò|KæŸÞñƒ+@îJ@Ê-bYhBúMñÔàÐճǯn;½æéSWÛ¹…áýô«çôö«LËmÙïyþ%•ó §çœ“¦Ÿù¢à•¿…ηȨÅ8ýÄN?Öúr¶Irðà5+è§*ƒoYµèî[Ó¨ÕÑ/ÿ}¡Îspˆº¾r×Gz*sX¥©Ò;W¦;–wÓæÍ’Ú–{kFeÏ»Qrý{E:¾ª½éöY.˱¦ªí'WpÉav)øëN€:¸‡çÿŒÜ_Ú|ïØÞ”ãYªÊ›Ù Q¶çw2}þãOÝM_ù€ŒB ·mðœ‡ïƒ_;òñg(\ŽHó©Ÿ‘êã'x6˜Rb£éwœé—“-^ã?åGÐyƒdG ”ëÓ9ÖQƒiuðÃæ_~Êr@ðí ¤!Py-‘)uœ@a qŸ›¾ð*_ØÔ[å z‚° ªýhç‡çév•Uª’r¹¬Cv†*¿s«ˆî¤ï?„BÇ“ÄÏʤÊý(ïŽmM?%xP3ýÏ’ûM –Û"ñëKþ£ÂœÈÛ›^ÚXµo))±ý“\ŸWƒz!¼ìdöwÜÊAwYÄÚ_ÈåHê=|òm¨ÊOBp €[ßµèÛ£Gê^X2¦úöyË®Q û¥œwCo`|/ºó/‚eñ½L7CR9ïzÊ•à¤ÒŒG¨Î[ükª¹ì¾”š´b§;}³ÑÞF÷§ò‡ÿl«;Ö$±¯ÝâmDǹ<ìcFNéQtîèBh v’cdfòØ_GRɾoûç”;Í2ô'<+É®Ì?T½Hc? RúÙƒ‡¿, ˆ›Äþ‚¿àü^þ/bˆ>Ù—ßÂ2ró•߃¦oZÖùuü¡g—7†ìCÓÀdÂâ RÑfh‘V‹ÿ9ʦèhlÏà眿 å_~†‚¤Ï!8 6“m%SEÒÐ^Yžº°oýŠÞ¯²×7…XËSA˜ž«ü;ºš®^^‡Wù®ÞêÈQ.—<6wu¹#Ü¡_;»D~¯t÷Û® #žä~¶½v¬®òÀ˜a·õñzçš~C"­/ù ”ÇMÆ|Ä£½én Ëö­»ó™Ïú~<þéO³…¡¹*²Œþ"XÌIý…ƒa½‡W¾ † Æ@„žÇ¢J´qÅ_LÅ‚®UƒæŒM¦—òjûéËÏþr߈Hå|‡Øýï#ýz<šššJ#1þl~§¨’å6b§;}ïY¤NSZeÔŒ‹ù;*,Q‘VyDIï‡B튢 ÖÖcüµ"ûè’,~°z6ýLúur=XTîëVÏÎî‚M³¢ãðs—uº&ÛÔ¥84~Ž}öÿôë0]f´.r!À?Øk#÷—yóÆ()×”~2•• –ù2°e¾ò{pôáµ¢·.èKå‰K/Ömðñ‚¿¶§¹¿ÜrÏæÈíÛ·'oßs$y{®†áÃÜè«x%žzfóCéAn›Öàä_~†PpôÙ Âßà¨(|ß\ƒÕX•i²Ç÷­uícD+3£©rËRUÙìÜÏ0ø6…ZCpÊO±cÅ®¼Û*nú©|aWoeŠ_¤ZE—áRã5s-Ó‚^óog¨ò;·zA8¥»ÿvU¨x2¹ ?{ý½&ê£P«2Q62ƒ)ô`_#¯/Ç2_ùˆ´½én%ûö­»Ó™ïúBÁðOú˜ì Õ5qíôå/î±çV:eIý…‹Y½‡_¾ †:©Á@ ëðÑù-NÄ2s7H^¯X?wÈ£†mës·±úÐTNœXõ,-é+_‘ÍÒôêCÍRøtçšËÎ}v|s;ýØê£Ö¥¥‰Àq©A/gçûXZÎ/û‚ï&_Oj´(‰þšjÅɆQ üu´ýÚµšsöñ#:Pji´ÔpÒ´qÁžÖ:zùjJ¸_òØ'¢÷îÝÛkïž]êç×=!Ÿáwº€pŠ!$2<ü%51šžÕg¬ý©Í1®¢É@ ó“®\ù¨,7'“aÀ¿™þò{0ô-}q£jd¬9’°½sÕë>÷O¿îL7þ²-÷ÏmŸ5 üŽ@Ú……IΙ‹¶° JG§áòL¦?aøsîVïjÿÞäû®??ó-wº"´ó*úk…ˆÔÛcŽÜ¿ × ü=ï©3RÑÔÇ&ÿ`ñî:ñ li0ÊÏÀZ…}‚my-¬ÖîÛz+sìsÑý“’¨ï*ЙC¯6úMŸ‡Bvv†&¿wÕzAà÷_hxz$=>åégå:TO·sÔhˆÖþ!œ·– ]áQ_Ú¦@ùˆ¨½éb$×ö­‹¨×¡ØþXŸ—‰!¹ ¦üÅI9Hê/\åˆê=¼óm¸”Ÿ®©Ç@ð! Ó”tܾaÎõ‰f£Ù,‘GHx/#ü(ªûbß•;Ùæs/#R91ãÖuir·KÖΜ@ŽæhQÝÒbã,±ÓL_Ú4o^`ÛŠ~|mSMQ ­<ꌙæh¥Z6"kš¼2‹j@IDATUrì¡Äï_rk½IQgXtï6î³·/¶ÝÒÐâÂ+-Ͼ ëï@Ÿìz¨¾o0i°àE‘U&SÇR¹ööAghÜþÈ鼆2~€:-Þ&›¦‚FO™‰þTwºµì¥§šž+õœÏÄM<<üÅØnÆþ#GÆ–FÚwò_|]õÇáɱ®޹"mo:Ôslß:ä¼ÄöO¶ú¼-÷J°íää/Q'/Iý…»Q½G€|êòS\ïm@nD B.û¹vRÆËêóïç%O>ú¼‘±]H*Ç<Í…@Özô÷…Ú$j°C¡3WûüºŸ8ݹØãú,¿¬Ý÷PT nPw\x[?k%îXô+EŸý°XŸ64¦oÊ”‡û¯ÿæÇK-qÍZ÷ŠüþQ}ûIŒmæe¤Ìáïx¶‘­'¾­têy|O®:ëo×½Ù´´Ø}9°Ä´(̾ù25#Ý7ß5™TF©ÁÐaQD÷•ÅÇ%F$Ūée¢Ôñ7ªgçïQÿî·ks6(¨ޱ¿hMšDµŠò¶êSÍí…ŽÅLH”FY[ª_~¥»zÕ‰®12jPl¿ÈßÍXð Bµóý ÌïZ$¨>¼×_çܘHÙâåUµÌÅà×^ŽFì/å‹î´òͥ݋nNB1#U›‹޼íß©m‹Ó“ð°²}ûÊúšç_Ò^–]ègdÁ‚TxØõé×3nù•%®óÊÊúï·ÓÇÂ…På§ݲpuÒ-Œq¼€PéÜêRÆ{"&¶rÔçÃêà_ÃNNþBE™¼$õîr„õò­Øågð4 „! êQEá|ó¸BTm7==;O2kf¦zTZlïëFß÷¯ƒ[ï½cY“gß©œ]ü˜@Öt(r2Õºoüâ_W¦=òŸ³¿(Íb§W}ÚÇ^‘Þž*¡f*¼8w] [ZÛr Ûn(+ÀK`ÅEN^¾'éæyZjõæŽèÄTURŒLE-“S´åËÚ;óg$»Î$ò ?g›d^ÚŽÒ_´àjIn·_À©nO3T¢‚G*=Ó¨i²ŸÈ»G9môuqÔÔ¯3—%¬ÿª¬ú¯AéAb² ®`å/Ñ(‚ZºÿÝñP¿Á*©BêÆ©îKƒ5.}ñPÛÜá}cÏX”°²¼¬šqÏVù]@}x©©m[gÓûµžÚßøp‘sàÕøµ;g¬üÅ)«+^jý爷ê‹‹W½·ï± ’ÞRÜá¨?YÜðÀç ¶SB #V~&.&ä´y;¤[çL”aß2ÕœiÑ™S­CSTÑq£ïû°dPóòì•ÍÁ›ïòè{ TùiFMUç›Ú™Ìê¶„¨¤ý'Kpö¢a[^;£l5ÔšÎU_k•Édî6Ê%’‹¿Ôñ¯ò8UÑGbëóPÏê”k½Õ5P«ášéZ‡Õ*—«$*•\Aݾ(þðžÁM‹<éµ×¥«,×cR;ÅËï]´^Àñý'O§‡ˆégN­"q¬/‘ZÇ5‘¶7IÛ·^ñÛ?9êó²—ÍmÊ‘èöò3\BEÅe.«}xjÚxë]µE¸GÆ> K;6U³Í&R£#¨à3О…ˆ£®ýpð…:¦™5ß~œý>ðR.O?zñÁ]_]²õȨѤœUn†{ÆÎE&@ì/åèL­‘ö9î0’µ|c\í>8DGdÛC; gé5àû¢ßOeXžu~H¶*gË³Š›cQ¤Ô 3me¹/[ªôd¿&ö7‚¨xÅtÓûÚõÔU)žÝa®;Þºø¡ÜŸðŒµŸ ¨‚ œÞëèÁ!¼Èp͇-¹3ÿŸ>7;½¹Tw­‰2Jg˜< 0&tŠ­Y¨ò³Y•ÓË{Uª=ƒŒ˜Àº1C*g× ¹ÈAÿyffµómý§EõÓý‡‘k®Ï‹~LúÒ§N”Qñ¡~CæïìÿÁ$¸þûŸ4UoêÞuwlŒ§®xì“Äß݇WÏïüá¯tšcÈû‡šüü‚ê‚‚‚êcÆUg-x¢•žˆ“Ð)ñ“K£åçr|p±Ù¦ÉPttoIöó+5¸$Ádó +\¾œMF½:g€Ø5믮èaë»:èÎ`Y ‘θK#„Ëš1™;m>ø¿FæÎÁRôÕŶÊU\²mìÒa·üÎ_VŒ—*ºÏ\¡–3ûroA=‡öp;è‘~ÍÃ_<éž8Ûà˜u(‹ˆ’ð|@°sn~&˜Z(D4è¹53ûгjõßÖÌ\©·Ï/X0©õSúFÊ0iℨCÏ/¤^Ÿ=â'Hù‰??Q/£z§ay-‘)üµí­‰×±õñ2ÖC˜©Þêñ’+ðö•öŸ®íÚ¸È<åÙ/QuMyêm1ÉÓ½­çÛÎðÊïáW/àúþ OÁýl@,²}€g>6\vÔWí®ô¿Ö—„²Õw>¢4pkoòoßR:ÅöO®ú(É~Uç¿°|§û®éÔ©S¾þ}ÿÅ7W˜gÞŠg§¿Øù÷ß’Lå ©¿Üã…¨ÞÃ+߆®üôp ^‚Þh`ÝÚ&Cõ¬%*NÉåk7R9¶vÁsvè¥ÃKbâA‹ÖSû§?º‹×à=T±ÓÏKŸÉ€»¢ÍÈh4» ÎØ­ãö·¼¼o]Šì]”ôý·ÿ.‚Z¾Mb¼jþšº û ÕµÈhvñé«bM­¤ÕˆlZIÐPп쑒ÄÎ} Œ³—ì ó·Õe0A˜!Aððc›…Å^Zxæf‡„n˜GÅ'»ÌÞäžßùé³ÑúÓò©*ªãXÖðEÛVŸK˱'Ûãüš‡¿¸QÍ~VbÛw¨ójÌ0Õ“{Wõr{Fî~&ˆZ$d4¹+$câ­jjø³6RßM¸þ¶ä.nû¬ѳû˜Ð»§|° DùéÊQŒc¡Ëk1lîŠ:¼ê­l"Q²ÏúSg]sàˆQ¢ ´2ÙŽù=|êÜßaÇ“—ŸÙ«œzô½Ëž¬lÜ[g„ª/ bŒ3¦|ä¼k;bÕÞäݾÛ?¹ëóäÂå\W¼ÁºpÁÂÖÜÜÜ6_ÿÝûã:qí '6þ†W9Hê/¤rØ(¢z|vå'SÂÀ5 €@ˆ ØW¿ ±xV…m-r‰Å`ñÚ„Åu¤r~‚„[ îÿûãÃbÌ*Ôp¢íÏ$Ë>1„I];ý<õy®ëëi抽½îijˆÎ\]w·Û Ï'™Î3ÐØ¡½ñrtùóŠ&[%³}]­o½IÓK©ŽOÄdx6ÖÑÝuž{¿dÖÈ©%<å欗äô?EçÂwV)’ÒFq’†‡ƒG€Ü_¶½ý­aöЛé”e^"‘²Zƒ~GaâÍá?w,!F’ßùè³ñËE“~Ó»½Áö×¶¸´’òíy~Mî/NÆøËÈÅcûGà½aš¿ØyeÛ/“;VÏ” H›Þ»dÝ™ö쵯Ós8Ÿ'?"ñ3rm R£é“$–Ke v2¯Ÿx^óŒA‘V©\ÚÏë~÷¼À¿ü›‹ð嵨1è*ú<ë­ìì®D-&#Š’*Uý©žxÇû<÷§˜ì Çü.õ’÷_øñ$÷³U 'ö¢Ú2ý†Rï^xîÈYBˆúg¥˜òQ@!¼\¹W{ÓcßgÏ0µoÅöO}žqã<Üì$󼔯G»¿”‡¿üÛeqÏ4ðçgåDíTò|~å§'-8@„ž€ 3ˆÈ;–µè†Ä…£½út«ç¥¾1‘Êù±'ßñ™~šEh樾t?Íé²ç¯ Wç~³QnN&ÏeI8èóp¹Â''§é«” ¡××nD;‹Mö;ÿ}÷çžBxÀmýŠÇ=Û3Z4å· ôÒv–ªSÍLûÙÃrýËÝB»t.ÒRâU}qÂùošù,ëe±'ÿå”,üšØ_JÞµ^ ÷B(iÈ(Ûx£WÂLFñ~?¸äEÕç«l3ŽHó;©>»MI¨/=k®}ûÞëyÂþ—¿=Ó¯‰ý¥má‡c¨™¢2ý Cþ#»ÛË ï6¿uÖp•º2%¯ÿfŸ ²3§Ïü@êgÌjW}ês<¡%`[ÉÒ*•IéJƒ1Q.+9_– v§K|ËO±Y^^‹2}â—/¤õÖEhH¢”ÞSRîÇ !äËÎpËïdõÁÓøýn< ý,k3º-MA·sμ} Iˆ‚Hr4ßú’›Nõy·çO|å#Ƈ}µ7ø9`lߊíŸÄúüD,·„´3„þ‚Y9H!eô¬åë=äù6ÜÊOàà €€ÈxUmû\H,æuZq³!g¥dMnºÏÎý¥/®SŒA¸¯o°ûê–kv¤rvyø˜›ôC­qԌΞֱZ¶ŠÒ,Tú¥?ö²ôhÁ²ä…‹V'ÃWûZ‚P(}©9ŸÐø0F“»]²:35z²ñ‹’+Ϲ´~tÅ»­'ô2Ÿ öiëVʇE™ñ’ fôɾ'éýaœÝX¥Ÿ6­_'c65 ½T¶°¯m9»fôþžg¸Làs7¦Ÿ±J>lýšÜ_JÑÏê(µš¬>;ö!(çZ^Ûž †Ïª<#Ô/D½µÃtÙM»&cÚ}8'Ö–‰šQåΔÜäpBj§èù]ÀzA0Ó´]%:O!õ3ûBrTPÜ)¾úù+ßÏ¿5™jWÊô•† [+X·+]ÌäO}ÉÕ¶õyÒ|Dé"ioºÚÈ阰~F쟄ú8ÅIˆ‡²3èþ"`9(6ßaÕ{Hó-±úŽÜ@t;—˜Ë@Ûæ÷i’·[$t…N¦Œ¦‡ã-ª›޵­=#GÒ&éWͪ§–Ί4F:-sF”».ÏÑ5Ÿú霩ªNoI*?a|Ì XÝIpþ—ÿêÒ@*×íRI°‘¥_ºöz™m€(M+8ž<Í=¦³o]0o=È'Tú=XmûæƒÚ¸ú÷Qwe ý†ro#„Ò粯+Y(ÿÅUñ)Wt†¯N}×vö—j³Þ BƒÇÿ1bÒðäXÊæk˜Ç4ü¾{•(oõë omŸ‘;2rûáKÞ}ûý&]]„uøÄÛUã‡ÆÛöï>YܰÜm ²ôCÑ4!sr”?εÔ_úùZÕÅKíWZ‘µ_Jšb°&¹-múñͧj™¸ºÛg/å@Rz’cë×ÔÆ´dþ‚PÉŠõ¦ñe/´Ý9rþÖÄ7†¼åÐ'?•¸ì—1¾÷u1RµÔÓ++W;öÀ"ÍïTüHôÙ¹hÇýFJOc³_ôüÚ!BÁû=2.1ž ôôkëk\µ©Á¿…FÖ½S0-9Z™&{´¤ zv~³Í²ü@îgdú|À‚Ëb(ý3*}¤i–&¢zè}– W}ôáqý©*£%yÈÍòô[‡÷ëCÏ$löÞ›Ol[EÖǧüÙTĹ¼v1Pž:=æøñé¶ýé]®Û›Ñ¡ü)ÕBÖE¸é·|¢ÞšzûS±‡3lûhZ¥jiï(9þÀÈöû©l[­k»Ê~ë_b;ÅÎïÄõqÓøý'6OG!ó35šŒÛ“q8Ô@ö¶¬ÄXeÞ³zIƒË÷sÔe‘„õ%+ÙÖç‰ó"mozÊòTlÿ$ÖÇ2>B=&”A÷ârP(RìÃ!«÷æÛ–Ÿì‰À“@Ðà8@„Pïè(E^6Ë{½"RÇĸ­Ò«³·¯¥æ’¥% ˆ¨þÊëGõïwý¨qn±¶¶Tßß³ùÊšâJ·õèIå܇7$é燡ү¦¾Ù„Ré1Ü ¸h>Á08D™%”>¦(Úg6¸ßÓm¤Ri¯”¢ÇRÿÜn¶£óG_ûÿì \TeþÿŸ¹2Œ€Š f6™¦æº“k^a½´‰ý5ÑlÅü—tÃÒÔÌMtÍk¢•i?Ù5±þnøËÒ²5p·,±Ò¬èjÙ*­¦%‚€€0Ì03ÿsÎ0÷33çn«T' ›ØcÞ°‰6MŒU§ÿ¾èê¼€}¡ÓÇ¡”·Ì2å¯m6¥­'(×Vˋ}ß¡ÚS{«ØRä>¢÷ÈZòÜ»}Ë×Ní'KL‰<°9]7m©edz êƒ{"<»„:>Ïšà çç>ܶãySêàØhYt¿ðqS™?[@fb®ÿMÿÏ­+¸F6çNqBß~Zðl;ÀRt{€8CD(Û—@¼·JT]Ì×—m¢†Q_o¼réµÏòw\Ëvù®¢eèž!­ï~¼„2ßió• )OEý-gã‘4Õ^Öþaíó«ršöêé §èSÑïKî1}Ÿ§¯G~|oº«ëäè§Fk•O§Dµñ‹ —?ÚA_èhË‹g9Ê÷Êz‹òé+‡q@ ³`;äJBAKÒ3“¥7õŽ•õˆb†­«dRc}µñôWG [ò œ CÎúÐÊ9‡‚«Ö"ˆüÓÌÕ™òañyaîR]žuÝ#Þ$">Þ€y5ÚT2zÔPiÿ¤xydD˜,\!‘T—œ1|øÿ6ò}ùXÒ6¼Ow¥ÁÐh®¿|®ùøM†}^ÓÈ«ŠOGmê fÓA²>×EË#T*iS}…ñÔWrò ½Ô?ŸÁÂ51åÚ }yѦeJî5PË”S‰Qg>_ô¯¦µ¹ÞÚ^kœt¿¡ŠåÚ[þЗo¡â„€vyzÚHEßžr9Ó¿-1V™Ï\¿6g¿»2 ¶Ÿ@BÕ~¶"YÓо·Ò“ôSÏÖ÷Nñ^Bžôe¦=Iúó¾$æ}ž®ùÿ½â¼@ùô<øå…¼½µƒtï=”õåÓKùÄ-ÎL „¢ÎŒi¶C@ÚvT&            ¡ Q((#hC` jC™U@@@@@@@@@@@@ ` eÄ           mˆ Dm(3  €€€€€€€€€€€„‚ D¡ Œ8@@@@@@@@@@@@  €¨ eTP€(”€€€€€€€€€€€´!0µ¡Ì€*             0…‚2â6D¢6”P@@@@@@@@@@@BA¢PPF            ІÀ@Ô†2ª€€€€€€€€€€€€@(ÈýŽD£%©š8&˜r’Ÿ_ä98M ™7mœlèMIÊøQ ¥ŒHõ ךk+/¾:ú–>g‘™W˜VŽ708ºš¬ ›“GJoíßGÙ«GW…R©”IôµÆ’_N뎾µÎ°/ûCŽO“’JG›%U' ÌGŠÝèÙ’3VJfÒ¥§Z)—õ¦Š’â¦#ï,oÊ;bóâýDL>°!ifMO§…LˆPzscõeý7ŸlÌÎ-à©G’šªñ¿Ã݆â|â-­^qj% 6ÿ¬rbEå»kà)dÅætÅ›cºtan51å´¡öJó¯?}ÙôNö.£[õ¥¨ïÚÔTÂ> |Þ˘=\ß}éÝîîûU^üH­˜ú@QÎ8ÍhåüHDO }ÑFéøá·¨£Õ¹‰}Ÿ(>©{{ù&ƒÐGgà5jC! ¬G|ínCC9¹x¤ˆxym¡N¨F›J¸×~!çç{‰_D;ï#a·5$…yR3žË™wœ"!`BÔ~Òæ­œ0^Þ}‰ª·!~NûËÅï÷yïè|ÞõùÝÑÎxZœœ¾H2}ÜïU‰=#ÃdÄH««ôç~þºéð[9F|sX)á@@@Z€„‰º„6zmús’ÕóÇ%tg˜ÎšÖL/Ëç ,…ì*|.v€Ê¤à½Í8Öžz¯zRƆFçû´rÎ¡àŠŸ€ðüÓg÷lë2©o×®ü!±®Fòã[+ËÚRh²û uþ8¾ÔähÖØ^aL‚Ê>X{yÚªCÍö´YÏ´dÓÞ £“"¢¬.Ž¿ ·WÌXžgpts=žImÆ6ÉÆyÚ¶£Ãõ0”¨_2mq­SgÊrtý.®þù®=§•Ï7ÜÄæ-1ÑùîQræ6é3s´ñ‘nöS#9œ5ªô¯¶Yúú¾ûã q¥Yf›ÿÌS§g€ë;¿ªíÖÕŸòâO¢…×ÚrF+çOª pštòêËó£o‰"*÷°+É¡õSJ×ò¿Pº{ï€.ÂëQ ñÖî6×_Ö{蕪[ ÞÍü¶|ïgS’$¼ï<ö]Ÿ+ö;âÚy»œ_gi/HN,¹# Ãpî«cfo¾æ-¼ÐµŸ´ùG+ç-Õ·¡~NûÃÅÿ÷y½{ñùÝÑžx¶$5e1y}É=ÝûEËÂù/½ð^íðYêùîÁ @@@@ t(giIÖŽ•ªÔÁ±ÑVU%z£±Ázáö«&ŠæFóåâjŽñ…î§ÓgLåu„D$i%3g§EÞ5pJ÷«Ï¦­zÛ¡žVÎM88›ÒŸ1IuU†Sߟ¼úÕ§ ¿ž+5³y8xÒtYÚŸ†Åv“ʤ·Î|&~Ù±ÂÒl›u"ÔùÈøRÈ« SbÂÃ{4$¼3s^<ør·±fµD_n<öîþŠCÇΘHÜídÖÃ3» ŠUª{'Ï}mÑ™²¶ñtΈÍF‘ô$›ãk´jºðiíó/äÖ“Þd|êùô‰ý{ªãGD¼¸w•iô¬Õö­:Ñ3þYo›R¶gŸ?­Þ$;ë=Šü£EE“ï-qݵú ùʉ}z²—µÅŸÖäîÞ×ðýEBzkúþ·ýA–<â†(g &m}gÊŽI”s³Lb2˜ššÍЖ3Z9ú”A2д$çåŒqȨ2VüÐðÆ+;k33:Ÿ.M¿w\lœ2F6y鞸Óù³Ë÷:ê6žØzdowõU/Õ £Ñ,ŒQ$ÄF©å=•Ú™+â_# Ì{ˆãzcÓ~«ˆ™y'ü­´¾Á,3³ƒÍœ¹\'aß]ñí¼kt׎¤´J*{ß‘JÈ5öÇ·ŸÖç¦Øü£•³rÿKSoCÿœ¦ã¢!þ½Ï‹§é.!代½ðlI]êòAÖ„^–ÁIuä‡Þ½|0¿¨¹œD’¤!C$w$WvV zQæ†WSÇè)5K%¦JÓÿ1_80¶»D_l\>vn¹mºˆÄ¼xðÓÉ.c:ÙÅ…A+'Bµç•.ÿ4$-ý&Éþ<¾åËDÌ •˜*ìÀÅ‚uå3ÖX¬*>è…:ÿÄÄ÷èŽ÷UsGÙ  |éJ^±W¶arRœÄTbÊ™V–ë’ÞìÇ£ÆÄK#$¦ ¦FÎ*sìè¢Ë‡Tf¤ð n††¤âDÃýw/®q\%E»è5é¶™ýãY5N¿¾ ì>£”‹’¶KæÃôðƘ["ŒÊÿ¾µ l¯AËæ¹ÓŸÐå-6?ò5}Œ5Íþ*åVLYºËÙÄ«m}·l=ÿîòòû² µœ Tzò*osSßmBâÄòB™~ºú@[Îhå(±€Ðdî”îžsk<ûl\Ç<:ê™÷‰˜÷ 5i"¯Wú§›W¥MHWÛÝL»[äÐîÎ ¯,î>(š„Ku?OžWa¿ãGÊ—î)ìrO_UW!3qœ¢ B;ï¾Ç -yåðö˜AÌûÅ‹‘|¹ýÁK óŠÝ*êö“6ÿhåŒl9ôÂ’j ðóÁ‹Ð埯P=ݧÎwíJò;fùCf1BòùÞ¬zOá‹v§¬ïã ’žÂê»G­Úí Úò¢MÑ­–ùóÚnh,~ö#Hõ¶œÑÊÙ„³`0X&n(va–úr>˜²u·_eó¾˜%Ñœ#h«WÁ©GÉuÙäÓáNNƒÔÎ Ñ|úø[-C®|¯û¬¸©†•‰Ðh#Sx„iÛOž âD›´r^•B½ õsš—‹_ïó^‰ ¼)ð»C@hm‚'§g*¹{¤ezSÙñú…y„g¶ž€Á €€€€@Ȉ4‘uKŸ1äb [ÓÉÌ‘½¸¥¼Ï~SïÚïmóævB+çP'rFþòTÖ]jv* »„À¹E?BÂâ{j÷|u_¥YÆÎ¸˜“ShŠ7{¨#Jn¿v×…eqmžrÔ@¬Ö%Yl?õ ›š|H!7ö ãŒL•¿|ßàjÄY¿azd þåââË”§2z¦ã¬%[ä.'Ìšò[ævge/î¨X+¼º„Ó™.iò–}¾Ïž=BÉM©î¬¡`à>Î…Ô÷fÃeÁ ŽžÂê»`%ÛGúòrÇŸ7†oÛ¶­×¶ÝG{mËÐð ü`:± _eýl|dœÃfÓÁ©BÊ_¶ÐÊñ…·à(ÌþÈXÆmVö•=µw•cŸ-Y¿lr$Ûn™JŠêìûG¶jpêQ¸ZÅÕe©þš±¼œv^H‚4äŽ! \«ýõxcî¿éX)“ªb\ª«<}ûéR ®ióVΛޯ·¡Nósñç}Þ1a÷„wø ¯­ðdôLK–$1ßR„ÉÉ·wyX‰ÁWzp@@@@ ”{=ûYõm㚌­‚8ÒÊ…&U+–äe¯Ë¦kºtcg)|±såeÇ}v<‘uþ ]_}º&ŒIKy--Ëçu¡ƒ'Ÿ-IàFB³a1²A|ÃU=ArugFU[úVö‹ÕîÄùb÷JI”FJu' ëæîn¨ÐK8Õ¸iy®á¸\/ܱN54ÚÎÄîYþ¶€ýi\Àep ø‘ïIñ‘Ü~ úò³6»Ÿ&…ÌË\$]¶ìIYFúd#€÷ä­ï½F>¹gÏž.{vïR¿´úiùŒÏÓR­§Ðúî=¥íô®åekÆ_¿¬"Ì38Œhçe'¸Î@\¿ÿ‰È¾L{&«ýV÷—ŒÍ‚žÕ´…–3×ðiå\ÃÁu° ä’”pVä°¤;£ŽÌé–J4$k÷‡ê”DE$;ØäožÁÁÖ²ý‡ŸAŸÀŽÿ g½Qб]"ẽ&•ÜÂìÁÄvTÿçó=úâœÏM•œ°š ›®p ÇöÓ)œ€]Ðæ­œ/ÅWo[ç9í™KHßç0‹ýîpu:mk<'÷¿^jYñ‰”–òíõå¤>.@@@@Úy(uHf:²×μ)Þ¨7%ò0‰‚ÙˈÇG*¾Þ{åîÇ·zÜˈV.”iëŒqi2¶IVMíǦ½ìXnÿ†¿„„:ÿèâK'fbð7“ÿ¾µ¡ŒoO!§<.ú–Tè'#•jÙÔ»ä¤è“цõûà‚±aÜ&E-‚~Y_˜¾~ë‚ùõUõ³´ÒÉ’´[½›É绩,")Dgbk$f™LÍ€­ß½-ZØXÃÒ,v¯%S‰ qv.mêÌ|×7™r 'úúj® díx[õ§Á½¢ ‡=füúÐß*çgx,'VB껜kÓ QÆöV÷µHöÕ Ã'N#Vœn(x幚óç¿ù«']}·¦ªƒýúQ^)" åUØOâÉÜ—s¢¿œ”Éu*OßðŽ‚í¸'¤’ì}Ââ,rBÊ_Ü´r|aÁ-ø­JkNPï«x`TïXYìPuÖ‰ÝÜ YRû³.÷‰û«ò‚¯B‡Ž!™€µp΄žqL›\}roÕœ-_®O*ï*Ie–ç"q–¬sÚPœOŽ84õþ¶óŽa‹9Ož¦•Yf¸_0æ–¹ÚNNUÜ×06V¦Ž|{¤†äUÙÔô«ý£•o¿´ùG+ç[#‹ÚzÛÚÏi¯\Bý>oƒ-ò»Ã&úï*‡¨¹S¯<n‰Q±%ú2ãiÛ%Nÿ€€€´Q!5‡ýŠ;)£¥vûß—$ÕÏ>ù’Þö¡æŒVÎ1 œ–@êò?ó´ ¬Ñ¢–é|˜¶4ϳý#ÔùGߪ½D$2)Íþ];gKÓ±îëÈ'_þüDmßQÝ'>ÖsÍÿ½ô×ýöQrÓW¿.pX÷}£±Y.s,ï¾Bæ½ÏÌR²ôàבsEvýžÚ¡Nbôn*~·Æuïø¾7³Ùß/ÌžEÙ?ž õÛ×–—£3Ž—zë;Rç»Ö ‰W3èFRzª®)ûÀñ¨1ñÒs}©þ›ïН^5„“† èÝ#üwSWĽNHùoF"Aõ½ŽÿðSA¥—êtÍ&EdwYlL|XB´š[ŽLÛ_=#k·úw·­+O_g5Hi‰ßzRÔ÷ÖÏØ i@]^ZÚ‰âídÙvÍ¥Wçßž@¢†ª6æ>þÇÿMj|"91÷ɯ¯){‘÷! ô*g­wòüØ÷w÷«ybî³n{ú«YWnø¥ôZƒL&sZ®T"—H.þVáð â;O§kÂ,¿ËÊž?~Ô¶,æ¡ü¢æ''&’HæŸÖà p[|"ÛO›Å mþÑÊQ¨Hhëmk<§Åp õû<íw‡5ÏÚ:O«žøh?Ø%¨Zí(ÜŸc~|öäk Þ:]Æ~IšcG¨7n˜î¼&8v´r3“¦ŸÏ™4Í7û “´#$sò‚êü“¿U52˺uOŠÐhúvKˆ"ª+ÅŸÖ¬{oy.³+´Õ ë³`óÁ²º1]–YHjrývù²{ÞbX·Ÿn¯à›Töã÷¶k0ìoúæ·3kòKuņ-÷ýr”Çy Pçûr¦\Ï応é(”Õÿ _álâ±õ‘Ý9nϪîä÷“’Ý'º ¾f©¡MOþYÿð®ï.Yz Õd|úò–餧C–x­ïþ:ä)uyq¦‘·tŠá£ Mµ¬«”™Ýa¬8ÑðÄ#ç6wwö +ÚrF+ µ %&ßVsÆ!f‘á²Oê3¦ýßÚŒ´äºüâk5lˆ ffÊK²£(Cï´bþýLÕ„ *““GWŒ˜» 4·à›rfR ‰ÒLê¶kïºÏ;ÁÑ!k.=Þ0{öìk³fͪwü»7íÞº%¹EKá¾¢±&s¸”y¹cŽ2rÜѸ]t€ü‡ÛoÞƒÇÚ×Ç Pû)D7>?´ùG+ǧƒW·ÖÛP<§Åq áû¼_ßü9ÔÖxš›%\ý7KåR{ã×®    mƒ@«ˆ¬ж<`ú°ÄÄ~Ç’ÞCÆþˆ¥•³Æ‹_±ÒÉ›ÏO‹cw<®ü"·rʓӋ ÁѨó/¾äIãdlzØcÀœ=?þøã8Ç¿ÿÓWÕ•½wÃÝëbY÷OŽÿÙáWc˜U÷[fÖÄ#3u)#ÿP–•µ¾týúõ¥sGŒ*Mût7A"®;Q2>%¦jÓ¯þ¬Ã}±ŠXLT2ÙU’öÒSJ ³a¼„é\›“]è0R·éÒ2sĪ¡Ó/³´ÜŸ™™ìrQßìY_ÉéèämŠ€ùn06Û:è.|üÏjþÑøù介õlšU1½\ D­ïŹ™_h挲¸›Ã­uÈ=ùsŒ¯¾óûì@®~”W ßž«²Í“…EH{»zØ5m9£• ˜âˆŠ€†¼¸rZ7nVmíº•Ó–ÕZg¯Ÿ;¾áSµÕl°Òø1‡^šÇ>>q$ W0ÛZâ"²kÝ|ãÄ>»Ä¾;È“þõL¦6 ïü™Âiæ5j¾ß`µó|qYÝî~·Jó…¢Zç}%‹É»_•qßæøó­–³¶ŸVÄüÒæ­œÝ N½ æsZ<—мÏûÿÝá9çÚ Ï¯ºÄ½?˜•ñ²Q©žõŶC  ‹þ$«¼F×ÌÊ›"b”Öo5!áÑÊ ~ ¤WÞ_}=c|h8µ·zÊ“»ü2YCuþ¹ÅgÐ1¦#ÑëF«vâ~É'ùùùÄÚÙÅJ?xçïÂØeµ$ú«ÆïÅçì»øKRQ/ã˜Ç&/zx8»B\59°a×ánóœ6Tß²ŸƒŽgÖÓ£K&©ØŽ9YÕ×[°´œ [›=ñ#ßõ&{i137[FzFÄör˜äœúÞà`´²2÷OOk(ü¿nõß[Çqõ£¼8AH{AbÙw¨Å5jêÙ=Ë»8ù Èm9£• ˆÒÄšŒ¥’±ffP¹‘|¹óáj×q›3žhü²evG!cºZ É~DÙ¹E÷ï5Ÿmyw¸~ȰV3¸³çÏàT2´Š™ļïÄ¥„¿ÿþûÑŽYcbZVþ!˜Üb8 Tûɯ+mþÑÊyÐ2˜õ6¤Ïi\‚ú>Àï¾ìj < ‹~6Zµ©‰æß+ƒð¥n    ¡%`]ý*´±òĦTXÖ0—˜t&ËK%''Z9ž àä…ÀƒÿóTØ (£ŠT}Ûø—.KêüsÏuoWK÷v¹‡™EôËÁ÷9ÍÔqõÉwBFìÊ,“c"—¿*¬áŸÁÁ'ÇçVD¾/­m¸EÓE©ŽçVl¨<öj…ëž1iÃ5rÖ EÈEò¾›¾dü­]»1&rñûOê Y|1­- Ï÷­ÿþQ7càíÜÒ„üK$²éÓëb8&³9üW¶%Ä‚Uß- %š¥Ä¶ìˆ?zúÊ!×úîËû¿O_^ìigfæ<1²gÓNÔ}½óÊÖß&4¯˜Ú'NÑwJ×ý«Ï4¥­z›Ìa÷OF[Îhåè5…d $ÆGr“$¦2SÑ~¦¹Å$ï“óµ·OíÎ.OÔÃí>Ä("Õõ=‰*U=âÙA¶v^\8þùf;Ï«YZ²$©e6µDÕE¥" œ%ú ŸÀ¼S13iÑ~:‡íÿmþÑÊñkÌzÚç4-—À½Ï÷»ƒ6ÁóÈQr¶þNý £²÷°?FjÉÛUþ}ñ—K¸‚€€€Ž@@gѯ3¬%7LJqKA4•žnpQê9¹´ržCìÌw<æŸf>™6¬;×Osºà¥«{É‘)3HFúdÁË™ð磈ø\+<Òqñi¿L^ñ°l³ ;Ó§pgžÁ~Çû™§˜þuøgûžBŒ¡nÍÒý.ajÉÄÛâ¸%ñL%§êÜö%JI ݹÙE äÇßv‘õ®î 'à)ÿxCP®©ó}ÿaón!B ³Ø Ý”˜@®gö£"¤‰”ž/±Ì8 Z}Ï Ú>JnD·îüu¶å iõtK‹«}}w ©=]S——–Dfx,Š)*«ýV—õø«MÙ÷ß;§»ÊÞNœ˜Ùs£Èåb<ÖÚrF+מ2±CëjYÉÒ,•I¹—>ž´F8¬\fèñxìDNë‘OóÉ€x)·ç[í/ÿmã§bÐÚy~ޤäJZÕ— FŒ(Áó·÷T·œ¡âºÁ3Z‚ñ·ýäׯWÚü£•ó¤k°êm¨ŸÓt\hßç=ÑâNóÝAH[áy„¼ñáY®~£†ª,ãÙãRø¿ D%zË>S³©ÜƒÚÚôe’•É;÷îX­E˜¾‚rôÍ׬ÁÐÊYåñ뛀ü#½ãˆ¥s¢Žœ;],hÙ*6æ@å_ò¢×¤ÇÖ/î5oþŠ„ãÌÆÕž– T|¾©Ù}h<(£ÉØ&Y19)ŽõYýõþ+/ú˜®#$Šó^5[+óØÁs×êerv´»tÏç{Ÿåö•±kÊœÕé™;–Ö!'2~_É?×H„–kú|Ï'¾¬¨bã Ó¤vËáÙ"ûÀŸ£â™û’²cõ óŠ-£ù)ë;SáÉš™2þ*‘J^)˜×ݲüaùh÷óEéôlúmñš¾¼’¶ù€b ×™\Iö>‘iñ»aö ×~ÒI™fCMÆ-ÝgíLõ”~Aõ¶œÑÊyRî!%PøÝY£es«xr_îRÆ8íz¤“Œ }˜%T™£êb£Íìê­\ ªGš —®˜ù¡)óÉ«ï§G[`Ö‘¢…Tq ( tí<]ÔZò‡›»qƒ*™ÙÒž5m=ú£Ž}'2K{KS24Ü7Š?í'®v)Úü£•³ÇìûŒ¶Þ¶æsZ,—@½Ïû¦Iï£=ñ,Ì^eÑ2®“àüÏ_¾ÏaùZ9áéél>)óoÙ² ÌCBhνwuÌì œ‘/Pù·|ï§S’äÌRmìÑ@eý±t-Ï4³@Åg‰Çò¿u‰¹‹ëÊg¬+°ÚWZ¼¤’Ý…Ëc¯ë¾;õSã¹ßJµ:é7úOaã÷ŠfÇ[^cxŒoáa—.8yí2òÞ¶©½¸ŸÚ_t‡ÿýQMqE˜yð¸;U£ÆrkêמÜ]5é‘¿»’´‹^—n›Ù±xfh×gž ø‘ -לu¾kÉÖ‚íÝo62m¬‘\úú£+‡>ÿY¯dÚÞQ)£»Þ%S±K=½þÀ´²í-FÌdÊúNRÖ£ë'ôR™ ¦ÊK¿^+¹x©éJ1÷Hì«è§éÕÍ:þ¿ï./Ÿã¶ü!…ž”χ,踧4å…Ùwèè’;Ø©f§ßZPöÀ–"çÁ)+ÉëïêÅöºšJŽÔLËâ6y'„®>Ж3Z¹Ž›Ùí/eOí>ªž® c–;eZ¥ªÿ6~úɉÚS%zS¯·Ë“ÇîÑ›éZGÞ]0±ÔuÕö—Z¡ÓÕ#¶þí*|.–­lÖ]3Ôµì§h–ª¥]#äÌ€Ëq–y‡Iw{‡±Þ÷k}/ò.UǼ«MtyWßÎ{ÃÃ]æYôó,Rû|×™AÞüxIœuoÍ?Z—O¦i?=¨âÛ™6ÿhå|käÉM½ Æ{¹'ý,î´\hßç½kCs×Z¿ø¾;ÚÏ–”k2È›;3¸:ƾƒVœú¬ºðó“º E’újä‡ý>²w݇†1i϶¼OЃ €€€€@ ˆÞƒ¨kd„"Œùu_¯HFÔQÌ*ßGnü!õe—LM$Ž„EôTÞ4¬g›†rðŌޫ/Õ´{ã••yENëÑÓÊ9Ž '4ù瀈‹@å_Ye$Yö–è/¿å1±j*>¾$ºX†Z¼0ã¤Ri—Ä›#G²N‚Mäü±·*î[šÃ;Y‡:вɔ,CéþU3ã£nPM˜™?Á!ÞŠ“ïTÝÍcb½D(å-£÷øSã N} Î?‡p…–kN„:ß‹ÈÂÉ›«s>n«T' ›ØcÞ°‰6-ŒU§ÿ¾èê<3ÜlÞNêjH53p ^ªöH¼1’ýsônÖ•>Û·õÊS9…ΆΓx=ƒYßõn—ç¢Ë‹}ß¡ÚS{«ÝŒC,„#kÉsïö-_;µœ,1%òÀætÝ´¥– ¨í’3”¦"ðü܇Âvn*óg É̼þ¦ÿçÖÜ#›s'8ñ·¹îµcÔׯ\ºpí³üײ]Þ¯[§øvžFÏ´? å–ÕžÑýÛÃû¢%Ü}ä«‹™õ×3ûLFÜø»fõLËŒ5Ñí'–î2´ùG+ç®wšzÛšÏiq\èßç½S£¿Ë÷¦Þ~x¶¤»8—Ü;¶¬|ÓîGÕwhzt‹8ºûÌ£ *¯Y&•:¹â@@@@ ÔDÎ òG=-IÏL–ÞÔ;VÖ#*JªRɤÆújã鯎¶ä8†œc¡•sW­E ù§!™«3åÃâ òÂÜ¥ºÿýqýÚœý¾ìuþ8>MJ*m–T,0)v£gsHÎX)™=~H—žj¥\bÔ›*JЛ޼³¼)ïˆÍ‹ó ­ž´rα3y)°ÞºÊ᚟@¨xjfMO§…LˆPzscõeý7ŸlÌÎ-ào?´M!+6§+†ÜÓ¥ ãÞĔӆÚ+Í¿þôeÓ;Ù»ŒnÕ—-k"ë»65•°O_GCq>q¬O´rÎñˆLŸ³pǼò«¼øDL} (gܳˆæ}Â$A48Òm”Ž~‹:Z-‘›Ø÷‰â“º·—o2xztG‹¶ª†¤¦j+âÚ†: &§/’L÷{UbÏÈ01’Æê*ý¹Ÿ¿n:üVŽÑ±Ýu”s˜öš‰QL;!FÁ¿|z64”“‹GŠˆ—×9Ë»n(ÛÊ÷:êôQ°ä¡Í?Z9^%\ý¨G6½\Ãt¹n(&ù¨H|ùçwéZ×iåøÂäÖ^˧ ÄÁ€€€€€•€„9)±^ˆýÕ¦?'Y=\BwFPb:kZ72½,Ÿ7²«ð¹Ø*“‚÷6ãX{ê½êIïÓÊ9‡‚+~ÂóOCžÝ³­Ë¤¾]»ò‡ÄºÉo­,{hK¡Éî'ÔùàøR7’£Yc{…1 *û`íåi«5ÛÓf=Ó’M{7DŒNŠˆ²º8þ^,Ü^1cyžÁÑZ=iåœcžïÎr¸â'*žÚŒm’ó´ j5 e'ê—L[\ëfäiñ›œ¹MúÌm|$,[wg*ý«­G–¾¾ïþxCœFi–ñFãàè\ŸRœ=@qé³Ëuä3Ê‹?\„×úrF÷>áOª pštòêËó£o‰"*÷°+É¡õSJ×ò¿Pº{ï.)kÈÑõ¸÷ !ÉqnC[$R“×—ÜÓ½_´,œ/ é…÷j‡ÏÚPÏwO¸›ÿí5—ðvB¸fÎ>½ëÙ\Yÿí¡Wªl)pxgeCÌ{–³.Þ®hã£MŸ7]„ߣÍ?Z9ÁšùQ’Wì“m˜ÜÛçEÉûu¿O{¶N°N¼½çŸ£ˆs]§•s QÌyû,ŸbR¿    ”3ˆ´$kÇJUêàØh+H‰Þhl°^¸ýª‰¢¹Ñ|¹ø‡šã_|¡ûéôS9ój‘¤•Ìœy[|xDÔÀ)ݬ>c˜¶êm‡NxZ97ààD@lþiHÆ8$ÕUN}òêW?ž2üz®ÔÌæáàIÓeiÛM*“Þ:ó™øeÇ K³m½Ô¡Î¿@Æ—B^]˜Ætž³G³AÂ3CCC^<ør·±fµD_n<öîþŠCÇΘHÜídÖÃ3» ŠUª{'Ï}mÑ™²¶9tBÐêI+gÍ|±ùn•Ã/?òLA²™1±ÆÊ¦ ŸÖ>ÿBn}1éMƧΑOŸØ¿§:~DÄ‹{W™FÏZíÖùw×ê7ä+'öéɦ¡¶øÓšÜÝû¾¿HHoMÒÿ¶?È’GÜålÁ¤­ïL=1I˜rn–ILSS³™§Î"SÊdõ N÷håØ4‰O+ÕÁ?Ê =±õ¶œùÛÒ§’" %9//`ŒCF•±â‡†7^ÙYs˜™Ò1xütiú½ãbã”1²ÉK÷ÄΟ]¾/PQ¶õpê DÏèȶñÞö„µÀ»½“¤®!dMèePG~øàÝËó‹šËI$I2DrGòxõ`o‹¸çO{͘†D~?ˆPÌÅ«UO}ÕÅÆKuFƒÄh4K#c ±QjyDO¥væŠø×Hó~æ8°)Ôí }|tés$ú’6ÿhåD*èO=2X??¤¦¤¤î*Ï;ŒD.—4ýò›N¤V¼Þ­ùÊ÷%^E¼:¶·òé51¸     à…€èD™^UL; G¤Ô,•˜*M?þÇ|uàÀØî}±qùعå¶Aè^"u½õâÁcL'»Œéd­œküéš.ÿ4$-ý&Éþ<ËX1#ö>`F¾² Ö•ÏXW`±ªøêüߣ;ÞWÍe3€ò¥+yÅ^f´aRœÄTbÊ™V–ë’ÞìÇ£ÆÄK#$¦ ¦FÎ*ÚÑ%FOÇ(½ÉÑå»cè8w$Zž©Ì ›ÜÌIʼn†ûï^\ã¸<ŽvÑkÒm3ûdzú~}AÙ9ÆÈ´$Ç–Ü‘Àv(VË­˜²t—³-È1Q¶sÚúnizþÝåå÷e jGl‹“c¦JŸ-¡ôÄòBI„®>Ж3ïJzk½Kân¨h2wJwϹ5ž}6®cžN…˜÷‰˜÷ 5i"¯Wú§›¡Ò°­ÆÃ \9¼1æ–£ò¿o-(›cxbo{%ú_¹Ý[žëøhrìq‰m¯éÚ Zåõ\À<ŠžG3È+‹»Š&áRÝO†Ç“çUØÆ5ùˆ.Ôí‹çø‚“>oɧÍ?Z9oºøw¿%/{C¶ajfQywîÄÒì Õ!V{Çü Ñû’Ðx¥ÛRùäUŽ    ‚ Hûä<¦’1ɷIJơ«çN\]7rJÙ¦SW›Ä…áîûÂ_j­®|Ë'Yï¹þÒʹ†Óy®ió¯˜x4±ð޼GÎ×ËØÁ¯¢ŽPçŸàøÒ·JÒã;+èl‰ÎÃ2Zrߨ¾ìêŠä·m¯p5±îËv}ZËV³4IzϲdŸËn±2ì!XO‹wÛÿžåhóÝ4Nœ„–§6sºÔ²l[)xÉÙ8ĪճK8kèçŽ[îœî´ÔáÆûGve ž©äH0ãŒÿõ]®Ó’sªsÿ‰•£KŸ=¾ŽxæOy¡ãA[ü/g|úznù|í5$FGrm–á·“õnöŸ#GÉy”1d‡‘Ä›’E¾£¶FjBgò²‡d¬qˆT}Ö¸Öf"dú†E ËÎFòÅÎ{/Ï8äœVqí5m;á'Í•\ÁM uÝGv~ržûî0KUÒ>w|†º}_ Óç9ý´ùG+çYïxªGöpeDÙÛ~ì3qõÈ® ­œ=ÿÏÚNùô?-@@@:;‘KÌ•“­ÈëC^Ëp»d¥ÜÖ9I óúØ.\ç9³8‘Éó2uî¡Óʹ‡ÔY\‚“D3šôf;-˜£¦ì²ÃRjÞ¹†:ÿ„Å7ƒìyhxO1“ŸßÜZñÙïV…ݘȓm éÃ¥¹Žœ|ßÃL‰ücäÂ’dƒ†Ù{ëzíx¦Ç¼Ðƒ±É9|az:˰Wžå‚”ïî*t—Ðòœ0òFn? YÕßt¢©YLef±YÁ›cªçkHÍvvä«v%ù³ü!³(ù|o–ÛÒsVÑ¿”õ]t<¾‚•>_ñ¶ñû´åE›¢eNrµˆy9­!Z­e+º¢"ë˜û ÕÊræ¹lã×™Ô3XV˜T$ ì’Jˆ³‘H«%×qûUÖ1Ku&@Û—é¼o8õNõ‹ŠZúUƒS„”3wìÞÚAwßpi…Ù˦Î#ñʾ²§ö®ŠÈwØ;mý²É‘l»e*)ª³ïgØ:z¶X™=›¶ÌíÃì‰x©pGÅZÇå´dIóÎB˜{'ßÞ%hJ Ò%¦½&$8ímZÂÕ*np›TÍX.8P·/ôñÑ¥ÏÚü£•ó¦ í=/õˆ6Èȉ«Göiåì!ø{֖ʧ¿i<€€€€€HQ`MÎX+ypöĘ^J“ŒT}Û¸&c« |´rÕ¡±’—½.›®éÒíTübçÊ˾ „„:ÿ„ÆÇî‹0]Ƥ¥Œ¼––峣ź ½Á“O–$p#¡™±½Ì¦ÛƒRÙçØ±ãR„„êé"rž®ñã:ˆ˜ÑôÖ2t­ì«½‘‹Ý{(%Q)Õ4¬›ûfÓoˆŒd: ¹é˜Œ¤øHnVŸ¾ül£­ØiRȼñC¤1‘fÉ•’ŸM¹žöó$¡õ½×ȧ#÷ìÑH³Î\qþŒþøÇï6ï;âjÞrDŒ\0Òç®Q;sñ£¼lÍøKcß‚mªÛ£Ãµó²æ2­”›‰Ö‚`ýþ'"Yã¬ö[Ý_26 zVÓÒZÎçm?ÃÀy¨ä’ÜyyåÄÄžaIwF;'ßx÷K5Cvç¨S‘ì`“¿ x‡JÛÖŽgáŽuª¡ÑÆpvàÊ=Ëßv¤5¹ÿõÒ0NÁ&RZêjÔ ®æbÚëàj"6ô òàøfl…™œ9ôF•u.¤·PBݾøŸøôyK{G¹ç­µfië­\ ÒŠòŠ@@@Úˆ’™͵3oŠ7êF‰¹·jÎþe Cݾ*>¡éN¬cøôU\SÙ­ïdIŠZ®Ñër”“ü|!&E1žKÚzD+Ç£‚`'”OÁ¨à@@@Ú-ˆˆÃ~EŽ”ÑƒR»ýïK’êgŸ|IïÞuȰ¥•k·ÙÒO]Cþgž6í¼®e>²§-ÍsµØêü£ˆoÕÞG"™ƒæ ÿ®ã°ù³=®gùäËŸŸ¨í;0ª{âÄÇz®ùá¿—þºßn ›¾úuùƒÃº÷èÍÊpÛ¬§P(ôääiåœ"ÇE» ÀÌN³Xnêȹ¢"Æàc9žÚ¡NbÊkSñ»5®{NÄ÷½™©–Zƒ&^ÍtI驺¦ìÇ£ÆÄK#Ìõ¥úo¾+¾zÕNn24¢OtðßM]÷:!ås¼‰Õ÷:RüÃO5•^ªÓ5›‘Ýe±1ña Ñjn%ulõŒ¬Ýêßݶ®<}£AŠFNKš>+ØöþK]^ˆ¥ý.ÞN–m×\zuþí $j¨jcîcáüߤÆ'’sŸ‘üøúš²yÒ'¨œµÄ…v0@Ð[/˜]_|ß<õŽëL1-†eV“Êÿœ¨Ï fk½äŠ™Ùcî¯3ûdzuïÛ×–—{3šILͦ+âc  i¯)¢  HïÉ+âNL^ᢙ\,Ü^1cyû~oµ&ˆ*}VáÎð+¢Yp¨ÉóV$ÜÁËæ!ù³Jóyï‰q¤­G´rbtãñëÇó哇'œ@@@@  ©¨0{ŽqT6)µrHNË”LŸ6Y=¬ot׆ßóƒ×7Ü÷â×¾Z9k<ø 0Ô•äPÖ„^ì>Õ_ÿãÊ]ÿÍãì/6æPçŸØø´‹^—Þ™$bGèîpØ Áµ­Ù7¬g–~‰ Ÿ°dwÂí³/Ô—×›#ã“T Q2»LNîæoÊïÉšÚËq&‘5\±zú+g•Ço;'¾U2•Y ‘-¯¹sŸopMÅ I¸})és÷#=ú©¤ŠZfߘIÎKƒU/Üq¨qÖàîÑý¦Î[v¤ ”wÏÁõ½ˆ¬¼Èµ-h šÔê§3ÿ¬¼kø 1¬AùÆÉ‹ãÖ|WPúW[ \Óç °£] */öDç-4ÿ}È{óGÅĪÞßýøZIW)3³²öd^ÕC9v#¥]"@g‚Ë™%>Úö3@Ú"? h3s¤[æ —1eËPv¦¾Ø˜d˜¨ŠŒ~Ì'ûûÔ-I[V˜qú~*Újâ²uË fß!BNí«~ÌmO°ÖRŒ¦½n-]-ñšu× ×šÍf¹\%Q©ä ÖµwòüØ÷w÷«ybî³n{û±÷CݾøMúØ4vŽƒ¦IMÉùºª&…I&3s{UYYIšÎš„ïYe•âû¥­G´r|:wCùÎ >A@@@ ½`—"jµ£pŽùñÙ“¯-xëtÛ©iŽ¡Þ¸a:÷ñæM)Z9oaâž@Úe佬»8ƒGåÿ¨ôeâ 5Ôùç5>í|f„n?Ÿ#t› nýðLÒŽÌÉ ªóOþVÕÈ,ïÕ5>)B£éÛ-!Ѝ®Z³nì½å¹Ì—¤Õ ë«`{Õ“d‹­œ— q«­`¬°–Ù–jrý ÓQ‘BvÏûC ëöóÁí|#ÊË~üžÙæ9S®çö‰‘3b²úô+œC\ ·>’£;§—0ÍowòûIÉŽ;-PßIq>ÙôäŸõïúî’Åx¥&ãÓ—GøDìU.@éó©D;ó@]^œÓ™·tŠá£ Mµ¬«”™Ýa¬8ÑðÄ#×9û àUÊÚÁæG°ƒbò{5gb.û¤>cÚÿ­ÍHK®Ë/¾VÃF­HùÒì¨`«Ñ–ÃOßü‚âöh.Õ¶xÙŸÓÜ,á–5KåR÷å°B˜B¯íuõà‰ê¿Ÿ©š0aBeròèŠs”æ|SÎn¥™Ôm×ÞuW§P·/bâ Dú\ÓÛQ®…Ö#çô6£ËÓëfϾ÷Ú¬Y³êÿî›ÕTÃ5m=¢•sN¸à+”OÁ¨à@@@Ú V5Y)myÀôa‰‰ý^#½‡Œô±Æú¥•ceqÐH'o>?-ŽÑZùEnå”'ÿ¦§ Å*êüã‹/yÒ8›ö0ggÏ?þ8ÎñïÿôUueïÝp÷ºXÖý“ãŸÇvøÕ˜Ö‘;˜Ñ|ÌÔ¥ŒüCYVÖúÒõë×—Î1ª4uîÓ Ü‰¸îDÉø“˜ªM¿ Ü€OϖȼþÐÊy 7[—ÀÅ*b1MÊHddWIÚKO)5*“BÂtªÎÉ.´Ø[8 {‘.-3†¬ ŒÍ¶=‹.|üÏjþN|òÝÅÆzVFÓËÅ@Øú^œû˜ùð…fÎè ‹»9Ü^‡¬óÿz’ó?}üñµkW?Ê‹kº¿=We› & ‹övõ°ëÀ–3´ƒ˘ ¤!/®œÖ›U[ûƒnå´eµÖYãëçŽoxçTm5±4~LÄ¡—æ±ÏÎw0Kbý™™ÁÇ.-÷Ížõ•Ü»„ _ÿt‰«§fe¼lTªO!töÔ^‡P·¨ä f»>ëQ\Dv­›oœøÂg—Øg«<éQÏdj …º}_ ÓgÅÔ!~EÔ#çôʈ2x<ç¨<\ÑÖ#Z9jøtFùô‰@@@@ ÝüQì•×èšÙ8L1J!£ù¬úÐÊYåñ+”@ yåýÑ×3Ð §öVOyr—_Æ!k¬¡Î?·ø :¦ ÆHôz£Cg»U;q¿GŽä3›×ækg+ýà¿ c—Ւ诿œ›žeiåo¡&Pü%©¨—qu-6yyÔÃÃÙ‡ªÉ Ë8C‹M´¡’ø–}––+,úÙhD &š;|ÏÀE’øÚëPÄ+*Žý{Íg[ž­×&Êêö…*>?Ò'Šcö,¦µÅdÐÖ#Z9Z(Ÿ´ä    m‹@›1)2ng‰Ig²|ì E+',tø²xðž eT‘ªoÿâe¹«¡¿¡Î?×ø¸uµ™?cÇŽ-çûûç9ÝU6-¿\QÁÞÃ̺cƒ•®ZüéM!#vå–ɹüUa ÿ ~IW=ù}¹»Òʹ‡—¶A ˆ|_ZË5‰êØx5»ïWå±W+\÷ J®‘³†HB.’÷[fmý÷:«Õ“‰DÖ¿†\ÃÙ0™Íῲ-!¬ú®hY0Ï,%¢–Câ“ó'}lÊ;æA_^ì<˜=OŒìÉ–§º¯w^Y÷îynËEß)]÷¯žn]1Óîݳ`•3´ƒ~dJEã#¹÷N‰©ÌT´ŸÙ€Èí(&yŸœç àì²i=Üîwt‡ 2þÖ®ÝØT^üþ“zÇ'¼)?r”X ½‡ý1RËë)´Ž|íuh5[©®7pƒ/T=âGø– uûB}ú|h>DÖ£6˜$ÚzD+G‹å“–ä@@@@ m¨ˆ~ýs-¹9>LÅ¢i*=Ý ¬óõM+ÇÊâp%à1ÿ4óÉ´aݹ~šÓ/]cèpÃùZDþ¥Ì é“6‹uKÈ•ˆø\‚“+<Òqñi¿L^ñ°l³;ã£pgžÁ~Ç×­žtrâSæKÿÎ}_Oåú_‡æFÓsT횥û]Ê’–L¼-Ž[ ÑTrªÎ¶/ÑþÃæ ÜþB„$ f±¹eÍr=³ÏÓò’Òó%–GA«ïDÛGÉÚ¸ˆîüuÞ–MrVÓƒmúœïpWÔ奅DöǢؙ¢²ÚouY¿ÚT}Ÿñ½CyâÄÌžE.cå±>­œÑµƒ® ´ÙYV²4KeRî¥GÏ…ýQooüxâóØNø£¿=Ÿ ˆ—r{áÕþò_Ûàßá…º}¡6}¾ ðù Í?Z9>œÜD×#'é6pAW¡•£Mrû(Ÿ´©ƒ€€€t&~ˆJô–}.$¦f7̘‡ž6}™deF²ý‹ßÅÏ«UC£ÓWÀl úÆækÖÛ´rVyüú& $ÿHï8bùˆ«#çN[:‘}M•É‹^“[¿¸×¼ù+Ž3W{Z‚0Pñ HšÍ‹Æƒ2šŒm’““âXÕ_ï¿ò¢Ã0`Z=iålÊ:œÊwÿ8õN€†§Ðr]œ÷ªùÛZ™Ç¬»V/“Š02KäÉç{Ÿåö²h›O|YQÅž‡iR»åðì³}àÏQñÌ}IÙ±ú…yÅ–Ñü”õ©ðdÍŠL•H%¯ÌënY¯Ž|´ûyûDQZ9B™> œû?}y!$móŮӴ’ì}"³Ê:`Ãì®ý¤“2Õj2n鞸>è ª”å,í dàv~wÖhÙÜ*žÜ—»”1N»é$cBf)M樺Ø(ÜìN;½®Ó3-¹å`â<f¯2ž¨pmj¿©KãÖ¤Þ÷m–¿uEŠº½vEP;á.&Ú¥ÙpÙIF“2Ÿ¼ú~z´¥Õ‘¢íxBݾ">1ésáçmþÑʉR—¢‰ ß_Ï´õˆVŽRßö\>)“ 1è´D.“B¶Ìê68Ü o2I8CLÉ 5©nVl|ÿýhn#!"'aÒé¿–O¯d—BŠè3Bz×ä©qャÿåLqÝ©³¿J*jÍQ‰¥£ÇŒŽê-ã: Îsù¯½´r67}&œ.ÿ’µ7É,¢Hr×ú½îòáÜ{WÇÌÞÀù•#†÷S[ƳWÿ>âÞR»–gšY âó’<—[©$kÇòØÄ+źïNýÔxî·Rc­NEúþSØøÁ½¢Y¯1<îbFá; ÒêI+G]¾;êŒsGá)´\RD2W¼]õÞ¶©½b¢‡†o{ÿ%‡ÿýQMqE˜yð¸;U£ÆZö{?™WµÄeɦýK×Flo¼=:,|èœ-ñï øèÊ¡ÏÖ+™¶wTÊè®7DIUìRO¯/[aÛÓˆ¶¾“H 3yBÜÄ?Í2U^úõZÉÅKMWˆ¹Gb_E?M¯n–6„ÿ¾û\¹Sý¥•c²„&}Ž9Ù1Ï)Ë ³ïÐã£âcY&§ßZSæhÔ&Œ1nÞÚ¡¬¿«W¤²¯ìÉýë#÷¥eÕYøÑÕÚrFßvÌÜnw©Êÿ ÉŸq´fº&¬›zà=Ý V}úɉÚS%zS¯·Ë“ÇîÑ›ASç¾×Z»K¬x…µ£n•rÓ,E‰“ÅOåÖ¼¹3#ìzewÙ„%Çn»ó³êÂÏOê*HIê«‘öûÈÞuƤ=ÛRoEE`÷LÝ^ÓµöˆéÏ’î|.úýË>“f©ZÚ5BÎ ¨°g ¶–·æwG Ú31鳦[ü/mþÑʉ×ÐQ‚®9†äsÚzD+G™œöS>)1‘"BºFF(˜e³Ü×+’uT”ÓŠ!]Z¾rëË.™šH ‹è©¼iXÏ7 eS€=1×—ê?Ú½ñÊʼ"§õèiåœÇ…šüs @ÄE ò¯¬²Î@’¸>p"Ñ_4~ËcbÕ T||I´Žèu¾Ç Ø•J¥]oŽÉþ9Ýl"ç½UqßÒ·AÀ´zÒʱj…2ß0tЋ@ðZ®9„EÙdJ–¡tÿª™q‰Q7¨&Ì̈ŸàÀ¶âä;Uw?òwžYFEdáäÍÕ97Uª†Mì1oØD›¤±êtãß=Pç0ÃÍvSìI] ©fÄKÒ‰7F²ŽA˜uå†Ïöm½òTN¡ó,DZ9.ð¦Ï11mý\ty±î;d&µ§öV?°¥È9ØôYKž{·oùÚ©ýãd‰)‘6§ë¦-µŒ¼D}ŠÔŸvPhð\ÏÏ}¸!lÇó¦ÔÁ±Ñ²è~áã¦2¶(ÍÌ;áoún]Á 0²9w’“¥¼eöÿ[‡G ŹäÞ±eå›v?ª¾CÓ£[ìÀÑÝgíäÝPyÍi°ŠÓM¡~´×¡l'“#QuQ0_'¶}†Œúzã•K®}–¿ãZv+w¢=“>G.bÏióVN¬~Žþ©ëˆÈºç±ÐsÚzD+'T/í©|º¨ŽK‘ØÑ‘2”Þµ$=3YzSïXY(fغJ&5ÖWOuÔ°%¯ÀÉ0ä­œs(¸j-È? É\)oæ.ÕåY×=âMR âã ˜×Q£M%£G •öOŠ—GF„ÉÂIuÉÇÿo“!ßk§;­ž´r¼êñU ˆ)×VE-2ÃûtW æúËçšØdØçµNXdµi™’{F TÄ2åTbÔ™Ïý«im®·¶×§¸_mê 2rà YŸë¢å*•´©¾Âxê« 9y…^ÚyfG9J9«v¡JŸ5¾öñK_^Úvúжíü¨vyzÚHEßžr9Ó/1V™Ï\¿6g¿»R`ðÆ`ÞKžœ4RÖﺞŠpÒHª®\2žùæ³æÜýÞÛ`1ìüm¯ÅÄz¿¡n_B_è‰"F~´õˆVŽ_ _®(Ÿ¾á>€€€t!4u\H€€€€€€€€€€€´ÒöŸ¤@@@@@@@@@@@@@ ˆÄЂ_è` Ꙉ$€€€€€€€€€€€€€0‰¡¿            ÐÀ@Ô2I1` C ~A@@@@@@@@@@@ €¨d"’           bÀ@$†ü‚€€€€€€€€€€€@ QÈD$@@@@@@@@@@@Ä€H -ø@¢‰H€€€€€€€€€€€ˆ!‘Zð            € D ‘C@.Æ3¯_–¤jâ˜[å$?¿ˆ× ç¨I!ó¦“ ½)Iß#J¡”©¾áZsmå%ÃWGßÒçì/2ó ÓÊñG7BódóbòHé­ýû({õèªP*•2‰¾ÖXòËiÝÑ·Ööñe¨ó/ÀñiRRÉàh³¤êdùH±=›CrÆJÉìñCºôT+å£ÞTQRÜtäåMyGl^xOÄÊiSS [Û| ÅùÄ“¾é‹6JÇ¿E­–ÈMlþŸÔ½½|“Á‡ª¾¢ìÜ÷ÅÔ#HifMO§…LˆPzscõeý7ŸlÌÎ-ào?âJ!+6§+†ÜÓ¥ ãÞĔӆÚ+Í¿þôeÓ;Ù»ŒnÕ—¦¾;Ĉræ½þiHjªÆ!Fï§Þê„wÉv|ׯòâGºÅÔ?Ë™£–ÞË‹£Oœ·h'ÚJZüÕC£M%Üë´€Šóó ïëH¯ï|ï/ åäâ‘"þôøà@{Û{;úç -¿Ë‹H€|zòáú¬ µžn:‰y¹ ³Ÿ>¾xD©œ¼ÇúòÉ}ûQ|¿·z¾Sч€€€t^&é%´Éצ?'Y=\Bw&‰é¬iÝÈô²|ÞÀRÈ®Âçb¨L ÞÛŒcí©÷ª'elht¾O+ç ®ø Ï? yv϶.“úvíÊëj$?¾µ²ì¡-…&»ŸPç_€ãKÝHŽfíÆ$¨ìƒµ—§­:ÔlO›õLK6íÝ1:)"Êêâø{±p{ÅŒåyG7Ë9\ Ùýñ†8Ò,sÏÙ…W_M:yõåùÑ·D•³oöª’Z?¥t-v÷áõÈ&Bu¢ÍØ&Ù8O› æ‘6”¨_2mq­›‘§Åoræ6é3s´ñ‘<²lÝ=œ5ªô¯6 !m}o §²‚ ÏÄÖ#Ï!ù¼“þ‚d3cb•M>­}þ…ÜúbÒ›ŒO#Ÿ>±Ouüˆˆ÷®2žµºÞ5¬»V¿!_9±OOÖ½¶øÓšÜÝû¾¿HHoMÒÿ¶?È’GÜålÁ¤­ïl *gê_è™Y&Þ¶³Uþ:ìM²ßó£¼Ð§Zl}𧜹j) ¼¸Šàº ªhÅ$!jƒ±‰yn«ˆ™y×ú­´¾Á,3³ƒ¸œ¹\'aß½œŽvQßíï/úª‹—ꌉÑh–FÆ(b£ÔòˆžJíÌñ¯‘æ}Éq ‘SJý¼ÐN´ÂsÅú^'– uy¡¤hÕSìûg¨õ´$Oì󈊀òÂ'Fí& ¾—OúïªÖÉwjøNO@´(sÃ«Š©côˆ”š¥S¥éÇÿ˜¯ÛÝ,%^ö3Ê'÷Oȯt£]Td.ÜŸSûâÁcÒ±2u¸»{¤·ËmÙ ­œ[Lph!@—Ådÿöu—öç¹/cUTtĸë³5e0#ù#I$ùý¤É2RT`±ª„<ÿW^ݱLuK„Qé­à$¯X#ãŒC¦SîØ´ò\›ç"r${Möã¦1ñÒˆ[Ò–ôœ±eV™ÕðB+g ž9ùåઊû² [8;Þá?×d>,ʇ$¦ ¦w?\c(T\\dÚzMùGLþ©•‰²a©„ì³Þä ® ºzD‹.•ì~hdÏ0b&’Š Ïzš1±G1).:Ò\TóZÙ¶™ýãåIwF½–y¨ácdÚ ’å-Æ¡Êc¹S–î²Ù‚˜¼gÊé>c!ÕΚÑÖwf)–•3!õ­%G¬-uÖÝõŠép9¼1†­Ëºk—]Œ¦®~;ʵå…]} /g®j */®B¸n5j'Z-Aޏ¹ôhý³7_M{©ïöÔ”~²©ö¾ì"‡÷—5¯,î>(š„¸;½‡vKa…mœ‘]Ìï3AíD+>Wh¹ˆ+/~cýþi1TzÒ=¬ZÚ•»w¿ÏÅòòéÿwU¨òÝï @    ÐÉ x1êð‘I%c’o‰eCWϸºn䔲M§®6ñùãöFá/µVÿ|Ë'Yï¹þÒʹ†Óy®ióéÈã1Ù¸yœ¯—±ƒùE¡Î?Áñ¥o•¤ŽŠfg-ѹŽÕmI£–Ü7¶/»º"ùí_Û+ìÆ!;‚e»>­e+‡Yš$½gYr˲p´röpÙ3¹BLM!$1:’‰løíd½›ýçÈQr^'5°s1oJÙ&8ëÕ9®hëmæt©eYÁ:RðÒâ‹qÈVÏ.á¶Qæ·Ü9Ýiy¢÷ìÊk\ë4‹ÏÝoGqñ§¼Ð1 ­ôåÌIÏ–§pq4i'‚¦]ë,‘)lmº/mÚO}·§D®à&´ÚÈ>²ó“óÜw€Yª’öq¸°Ó¶Áz®ÐrS^ÁSìû§5ÎÐèIû<²jÙòÀòâ2ÿeã VùäS\ÈwUhòO;¸€€€ˆ! ²3¸œüxìhÅö#JøÛÑœ¨” þõ¤Øõ±]¸Îsfñ,“çeêÜ¥iåÜCê,.ÁÉ?¢Mz·Ì¶©)»ì°”šw®¡Î?añÍ {Þ“-?¿¹µâxÄaÉC‡ôhSH.Íuääûfòä#8à !×kÇ[,:´rQS,“' »0“„œ­–\ÇíVÇÔï`-íâeû¾ R=òeÂÈÃÙ[²ªÿ4¾iŸ^iñ­YLœg5ÇTÏ×´\iW’ß1Ë2‹Ò‘Ï÷fÕ[ýøýë­¾û]ÎÖ?!‰ÐÌ'‹§öaØÔ‘C/,©v5¬ ¢=ú¡-/Ú-Ñ2mÖZ~x¯±øaüÙ ÕoåÌyË‹-LœüöÎ.ªb}ü³o°¬¼²²€‰‘m¦©™wóš¯/]Á~šh–˜ÿ’ꆩ™7ÑÌ×$+_î/º&Ú+Þ¼‰Ù5ð–•Xi–T¦eÙ–o%‚€€°ì²»ÿ9gÙåìrv÷œ9gçøÁ=/3ó<ógæÌ™WŸ\Nø\ÃN#€4¿“GÐ7ù=˜¡Ëf¤Œ'¤§"–~~¯ø– )ÏŽìO ûÑ^8¡QžŸí“Ûw'à €@  ðì *Fk–¼`Êuí‡T4cD ½—QãÙïê]Û?Ýó!õç>Äÿ‰/Ò¡ç2'©¨©4ãïæƒ9Å—qòwúq“÷\îH‡§ü.Ôθç?o‘Á{œlœN±¹\´µb5÷‹·€;øsr{¹çáõA[¶l‰Ù’{8fKš–eànÄ*Ú©¦Ü¬r,Ýiiƒá›üàÉÎì‰ ž½ØC„_ZNøCÇÎ!ƒ<¿“ÇÏ7ù=H¥¤Ë©ñº¹œ\9VŸâ•þ¯ø’ +,7ùÖ?9)¢áö)ž½p‹–xòümŸÜ¾«¸QW@ €íMÀMã·ÔJJ[-Ù[4_Ý7È£ª«Ò6s8HêÏ?±êZR2vʦi»u§f)|½mùû>;ž(ø;ý¸ÊÓ¦o“NÓ⸔¡·S2Ý,-×3ûú&w.µ:MÏÌ¡:f"em~IýµJF(fÄó!»víê¶+w»jÓÊçåÓ=ûÇ^sжƒ%t¯R Þ«æÈþìîÉH‹2s?Q%Æ*B¨Î½79Ä™©œûž©a·¡ëeçíý´`Ý¢·¥‰±Ò©á”i͜܆ £„6-z:&v§  ËÏ6:úG´‰hnú"iFÆ3²´Ô$–N:h·ÿyÏïävÆ7ÿ¹U?X¸urH„9ˆêè}`é^¼|b9ØËæ´¿5¯Bøˆts³¢3ÑZЭ͟Ë3Yí ÃßÒ6pzW“R÷ngÔ~WüÊkR]ÀŸ/—¾Ð¦Ó†) ¿w¬8§¡ÇÆESýùè—ïT‰9MÌrÂÿïßq’þüëŸB¤ùׯ˜öÂEs1åùÓ>¹~Wqan€@ :¹?ÕHÀ š«gܪ1Íf‰NΖ:“V£RR¾KO×5eí;:Z# ¶Ö—¿û^íš)Ýç© {ÿ×8?!wG›Ñ;W•½î˲‚£‰f/.æ—þ%À·œð¯ví'M;:$sËhÖÅk+Z®ZÑ2 Eh~o§(öJZu,iCº]*z£búRõH†k®§¢•~z¯rál/\Á±º^ÿôž¬Êsº)š½p’†hòüaŸßUv =ÝízÂ/@ º:¿veÍ6ÌB¥vè )é’iS“TCã#Ânö`ä?÷÷nxäþgk\ÛŸHýÙåÀ¯È’—£™ãc¨Ö‹êoÿyuÒÓoºýEIöwúñ•§[´Sz_œ<”šq°uæÊz®´6§e5ÞV¸/e4~qnôݳ.֗ך›C4qÊèP™’Z¶-gÃwådN‰aÎ$"õGð_ût±+ë¤M®~>ýá€IÃnޤ:ìnIz6jÕ÷…¥/8ÇD—ž-Ý8{ˆF†ûLe¿ÔëÍqÖ±ÊÈaD~žß§nqJF˜K»8K‡+Ѥn–LÁK!Röš3çÕ×pmJ!(Zº}î²G_¥TQ{ú½ê‰ÎKƒU/Üz qæ ðˆ¾SæEe*,e݃Šg~çkg¤ùÏ5ÞxÑ1´yãtzß¡†Ó{ªŸÊií°më¶ Ýád/­<ôy ­ÿüAż‘‘jÕ€G®–„Iq™Q{*¯êñìÖNÊV"q´3ñìE$½!"|Ë "!Ô“ÕPn:_z½A&“9-*‘K$—þ¨ð<Û“g~oDVÃuÓõf«U.WJ”J¹‚Ò¡WÂ<õG¹}kæÏy©Í^{$:ŠWNøï½BÊE½p†+¬þI‰ñžœ#ääP<{q Öí…xòücŸ|¿«˜ïÈéÎÔÎ@ ÐÕ PKµÛQ”Ÿm}zVÒõïž)£¾x­êáªõë¦Ñ‹ž”"õç)LxÆ‘€.}9‰îð¨üúŸ•Þ:‡ØBõwúy”§›‡gôõ:ã ÙÔ¦GíJOZP]pêªF¼¼W˜&.X«ïŠ”Wõ_Ô¬ó`yÞmÙÞ ÛjؤþØhâ{xÉ™WžyØøÄöï/ÛZŽTh\êÒ`'×8ÝVÒCxQDzÏëÓ¦þ¿Ú´”„ºýõÊXÞ´/+ÔÉ\´?Ü k›}¦B½kqca"ÊûçHêÞ¯ûߨ`›!SöãI¼?Ì!ôK¹‘Þ'FŽàdõ?—9wÑqÛüd¶á½wQ8úÓÄ›(f¬ùæw¾v&(ÿ1E(uÃkŠ»#PÔ 7m丟s7À±½8Ç=oÉdÓ§›j©»Rq¤Û|Wq@ :1ƒˆ °­µ.±,l‹y¹ƒFêÏ]xpŸÀcÿû\àÀP³Uhü›ˆË7ù;ý\å¹®«íû%»Šº=€gWœß¿¬â!§®.Ù®шaxÙ6 ºòMQ û 1ýá¥âZ$³J‘÷ÑG¬&„î–XÊ,ÅùÔ4"×Cò>¿P{÷”>AV©\ÚÃõ1\·#bt²´¶ávm·•ZC'iå‘®{¥ ÓÊ©ŽH„.¡Zìtó‡?¦¸›¶ö%)÷ZtS$݇‰*þƱ„I~'±³=.ûÒQ1nù/ »#¬;^¤]:ùy½ëèUfx7þ9¹½´²Á3zæèˆyÖ}»íêæ?Æ7/›Ò'J?9,å/M)+öÒƒ9ZÝ“Ÿñµ3ß–×äñŸÜ ”ÜCïj.ÅÈï…Y1ª®7Q°4@ÙCC Vp¼øj(N9ÑQÞ+âqáË‘¯{¶ú'ß0Úý8öÂ]sqäuû$ÿ~çN \ €@øƒ€¨3ˆì ÒüסÛ4JÊ_Sé™×îÃ#õç>Ä®üÄmúiç¡©CÃé~ƒ3…›®qïèðF“Gú%NGi©IÜ–]q+–‡<—0ä ·t\\¶^&,{BÖ/FÍø(Ú–gj}âùŒÔBiH×'ïJ€[V.üP׺̖mk«T&¥3‹ø`ÆŠ6ôT"7p‹^–ÂÁ®ÿûñ¯­I‚;hW-Éw±%špgT¥¥ätc_¢ü­éý…Šî?ÔÖÔ& ãQo¼o.yQé…ÛŒ#âüî;;ó˜ÿ£Q8={ªýøÉ^6m"|Ãß ¶—2Yûž ¥fŠÊjO2ŸÞÑT˜õùƒs†kÔãØ é=×'óCè6?Û™wùíÅ»wpáS¾+'|ªv \h~;Znó»WAóP”Þ;±öüoÄC^Å0x,':Ì{Åÿ\ˆxœº«òÂNÉí/ØKð $Jåuû$ÿ®Âü €@ˆO@pQ‰‘Úç‚Úc¥ÙRîF?]j†dyZ‚ÛÆý…[W*‡„"ÜvÝ€¿³áº=Rvÿðë—ôC½¢ð(ÔQ‡ÎÑsZ¶Šr-Vú%,z[zdí³1sç-‹>º/+ÔÝ„bÉ£tçzhÝ(£MÛ"Y–E…SýmþÕ×]¦5ùÓ¥¢UËÒeì"“Ñ[…sÃmˌաOs_uLÄ+úþ¬¹‰Ž=”³w¸©(m|ÛVLU—[;–\ÝÁµ;œò‘‹g®v­ÏÛa=Q+sÛ`6ie†|`°/ÉcF_í~©¾ULÚw¼¢ŠºÔ&wÏN×µ)ï³ö=ªÁÏ%eGêæém³Ëó{»ÙYÇÜvtùÞ!ŒÜ^JÙ°O1šn¤­D»ç§WÙ¬›õÚõŸ RŒW…Æ.Ù5½…·»NùÐÎÜÉ„ûƒ@»•o-…äwÞÂÜxà”ß~›MWWxkâ<´ã£Ô[%¤Æ}@S@b^´Ã{¥Cs!¬Š™$¤añµOR9~õç'ûlï*¿ra@ €<—˜KD[ögvd’7Y$tG, „jQÞ¦XÿÑG¶µgä(PZ#ýïÒi•ÔRHÁ}†K'%M‰šðàãù_ôu§Ïž7•TÔZCcHGÚ'BF7Z_8˜}åEFë4©?GìàÄ…Yú%èn•Ù:ˆBФµÇb&¹„ʼ4ûàÚèYëèN>±Òoø°¾*Û˜c„¤š??˜ˆjW³L3K3>žÏ“QæÖ¥êØ«zÃ÷§j<÷G©¹Ö D}Gý%pÜ ˜Jçë˜Ç$< ß9B!Z4:i|Ô„¿Ì´T^þýzÉ¥ËMWµGl¼¢¯6¦»-úíý—Ëøü L?\3MØ]5àð#…ƒ”_|~¬öt‰ÑÓÿny˜A=ºÓ30êÚîmã¬8\ÑÈò‘+<®vP1J_¶·êƒ-Sb"#†mùè_’?ü´F_h4ö>å¨jjûT{*¯j±Ë‚ùKV™F¾ÑxwD`ÐÙ5ïõÿôê¯~5à²wd⨰›C¥JjéÁË{‘æwÔNv¦y‡”ž6ç ¸Ë^Ú Þwèé‘5…íÌ»«Êœ;µ ÐÜÕC*®/{&mÈž”Ì:b²ü@lg]6]oˆ·S9Ñ™èÉã&‡;6/OËvÔ¡™J[ßñ„ù-hN÷Èò;3è¸û^Žø(Ѷï£Uª’†ËñÛq¶ps9ó;À~ßß¿íñ^!åÂÏ^I’Ö?âü¢'Þ?‘ä;•¡f§8õ—}Šñ]åŸtïÉJ €@ CàÙA„PXH°"/›Õv½"R…†:­`Õ­¥Õ®¾ì²¥ E¡Ààž·íÙãÖ¡# XëKŸæ®¿º<¯ØiRNÃ…’ôs €Ç…XéWVYgBqt8’/™O°tQj‰%-Šö ÎÏð$©TÚ-ö¶ÔŸÓÃ&táÈ»-Éf™Ô@诮UãŽYT!í{KõÇi5”›¾Ü³ùêsÙEmfy½:牆À­¯Z’©#d}ƒÆNÁÏVd­ÿÃøŸÍËè]Çm8qK@Œ|ÄÕ®i%гÐäLSiþŠQ±¡7+ÇÏHÓŒghWq꽪ûŸüË,£b´0iCuöþ§­CÔªè¡zÌ:ÁáÓ\u¦ñ‹­Îs™áæpÀóÄWvÆžÿlÊÈ[f§zrÅ3"Ý9o{iÝw¨öôîêG7·)CСÕèå÷ãËWOé%‹M Ù·!Õ0u‰m¤¿ùALä` bÒ?,_•âkÚIBäß…ÅKh~—(»)ð×µÏ}˜õæ«—/^ÿ²`ëõ,—ï»_üz*'Úã½ÒQ¸°²Pÿd χ7…Ú§;Õ<Ù‹;?Bî{’ç/ûôåw•6à €@@|TÃZ‰øÁ²…¨C©é Ò[{©e=Bñ°u¥Lj®¯6Ÿùæ°ic^¡SdzoRΡÀU{#ý´(}eº|¨Æ$/ÊYbȳ¯{Ä%1ä±ÌzS«KF£F‘ö‹ÓÈC‚eA ‰¤ºäÓ'ÿ÷Š©ÀC£;©?J ]òt4bÀ@YŸ›"äÁJ¥´©¾Â|ú›ƒ¦ì¼"ù¨E}ÝtôüÔŠøžÁr9nŸ‘˜«¬N5®ÎÎoÛ Ìc¸)>vm—jó3¬Ox€ÉÔh­¿r®ùè¾WL{<æ ›_]Jºä‘jl§³Áz¡ø¿M«s<•½v™¿`gÐ|á…Ü^|¡ „ œ@9á„Cøäwá !OÕ?= Ï:0ÿ~Wu` @ nh~ì º¡9Bä€@ €@ €@ Ði´Ù´¼ÓhŠ €@ €@ €@€""là  €@ €@ €—tuÞ´Í@ €@ €@ @D:ˆˆ°' €@ €@ €@t^ÐAÔyÓ4@ €@ €@ €è "ž€@ €@ €@ Ðy @QçM;Ð €@ €@ €D ƒˆx@ €@ €@ €@ç%D7í@s €@ €@ €@€""là  €@ €@ €—tuÞ´Í@ €@ €@ @D:ˆˆ°' €@ €@ €@t^ÐAÔyÓ4@ €@ €@ €9‘/¦'­%k£ðrTPPÌ|â|®MDs§Ž• ¹5.@Ó#T CRcÃõæÚÊ˦o¿kÌÎ/¶:{h¹"õÇÜlC€kúQ©´H!½£_Ÿ€˜aŠ€€™ÄXk.9ÆpøÝ5¦=lÉïïô#”§KNF”{;ôèžÅ•v:zåù” ÑÁJ³Ùhm¬¾büî‹ýY9…ìvíÇt¬§‹\mb2a•T*´²ÆËÅ=\º!À1ýÜøæ~[%¢eRƒo‹ìÖ Kl2- µW›ÿéxÓ{YÛÍm²/I~gÄ$uÑzé¸a·«"T¹…*'ô§ {—¾b:Äpãö”'Ï„´å’Yãwë© Kp¼*JôM‡Þ[Ú”ÇI˜[-:ÿAö" ú|ÒÀÎÄ.ļ $ ¨œ(»£y×ê’]ö¢˜¾ ±UCÞøä?‡'Ò-JLÖ"ö^ŽëGÅž#¬Ÿ‘jÖÆ!—„ÔE’icÿ¤Œí(CfÔX]e<÷ë·M¿›möE½‰XaüÚpâtƒ{º³•× åèÒ¡bÏvÌIWGZ”Œí‘ëÁ¬Ó³éÉÓÛs’{äå ÷t Ñ‹òÃÆ…Kú‰Vž‘*þ€@ x`×%¼|0ëR_–¬œ76:ß“XÎZÖŒH-+`—îþ2xrœ„µ,kÕÚµ¼n}BqÏÎþˆ¯R^“[|O4åßtî½k£gm¸ÎiýŒ=4¾w‰¸$>‹v.~ ¼o„,ˆMžôâµÃf®«g{FtO€<¢ø)Ùâ‰Gº{ª_7×_1ž8ðVÕ‚…ŒoŠ%®B‡×ާëµ\Bi­û¶Ó{Eh9È9¸Ð`s㙋§ô£[•É'Ÿª•äéYœ¯ŸñÕœ ží´x¢:YÄø»9çñËsKçáz¯5?g£›™R|µ¤Ü“É#‰ŽL?|Ò½Õ_éç¯Ô>”Ų_O¯y«ðÙð(¨ÿý©=t‹*ãËZ½ñ;+^& _]êÙ õñúHªl¸~¥­úë½"¼$KÏlÜ?%M?¾å™{ à @ €€/ xèÔa›ŒF'Ü®¦:‡®;vm͈Ée¯œ¾ÖÄæ’ϽwŠÎ×Úݳ-ÓeæúKêÏ5œ®sMš~¸!¥sÈÁíÐèB½Œ´Çëðwúq‘'Wp·@]ú4©mYº:T¸éÙFûÍ¡g· ÇèßÛï›ÆX6†4ZñòѳÕWËYêfIê ÐjÖÅÙëXä6~àƒ€ðôcæõ”ÜÎZÿȈ0j”¬¥äP³sȳPòüBÛ¼éSõŒþ›¸C‡ÑƒwP¢Ø[ïž:ôИxjuSôÇߨhíjYÆö/j©—“U'} #Áëò‘­>;÷™{!‹9IúQ’ÈíÌ®§ rÐüúY9áw5ÛM D¦pÔ¼+Ašÿ¼‡ìÕEâdt nd—X,[«¿ Ý1*ÑÛä Ö`¹ÔÏX=º½IÎeÚºE Û’Øfôõ¶¯0;‡ÜŠð€Lyü¨jóJ˜îr=‘™!~ÚöùúûÏ*UJû0žøò4!ãq=@ªêËÆÕ,³‹ýõ^\¦)[ÒôãWž‘jþ€@ „`4Òq ªýxäpÅ †—Þ7ëYz‰X¼'8ŸžÜôVw£ïð"_÷ËÔµ Ô_ÛºÊߤÒŽB½Zf£Ô”]á¼”“¿ÓOlyãGÜB¯K/«ú¹ñß­ÓÞlƤ}ý5).ÊnYVõÕ<Ǿ¹>J»0¿ÓѮLJõ¤2ܯÿÞ\q´FÂXÒÑ£Gxè àßô#¶3Ýrt^~ /~ˆ¾ÚYïP_艧ün² ÆUDè†' 9:º‰Þ‡®¿G˜KÉðÔ%¢>t™S‡N}äfÆ_Át‘îB¨·n÷ž_g­;Ý©½èuH‡ÓHç(§Ø¢®µ¹ÁîZ‚ôkõìþÌ“¹÷O:¢r¢3D¬=tôQþã•iãî° ©¹zÒ𥾩†ò¬Õ…$rðëêDìúB¤\’Ñý#lËg[ÊŽÖ/ÌÃSÄ}zÊ#ŸðȈ™îÁ u\6¡e<ñT;=;¥®›×¡¯-®vØ%¢$ïA ,ÅLïʲ»ð{ú±«w@ D À³ƒ¨­Yò‚)OðLÍSÑŒ1ô^Fg¿«wmggºt>'õçJ׺òEú!ô\æ$5”ŸZŠã`N1Çi§7yͦ+M"ÝH7:Wž?Ùàú‘¹vÝ´HÒ½¾Æ6E'šaŸÅ <¸ëéçrç©â¬2jFÉìì"Kp^ž„§wäv6kÖðjÿ©á¬©0_¼F.Où½(ëSs–i ˆ—=·{³í­ÍH ¡ô±”×µîSF‘ á@ï@í" °mAär4 {ï§LÝW5ÝåéyIn/÷<¼>hË–-1[rÇlIÓ² üÀËE;Õ”›õOŽelÚN’~Þé{²3»oÒrÐî~Û‡Y9Ñ>ºv|©¾ÉÞã­E÷ Ž¦ËøÚß6æ|ý‡òcQöQŒMöîÛÙ·ú™³oW„\R$q¸ŽD-›wjïvßϰ&–G?oؼ>3Ý R)éwÔxÝ\îU¶PxÏŸs©ºù墭«Ý|púë½"¬7HÉú7ýHµ@ €\´kãpRÚjÉÞ¢ùêÞÔÇXÕ‰ÆUi›9 #õǸáG !c§lš¶[wj–Â×Û–_á²Ï‡¿Ó¼˜χìÚµ«Û®ÜíªM+Ÿ—OOt3œ ¦gCà™ËÎÛÛ¡ixºEoKc¥!RÃ)Óš9¹ F ½ú =MŽ^·®9ëÉA›¾M:MˆÓª ½’éû††l8%$ ÀÎâ4!”TcùÙFG;ˆ6ÍM_$ÍÈxF––šÄÒ àYOïù=m;XB÷²â½·ŽìÏ´(3÷Ub¬"„êD~S$Û³od`rgÉÚÖ*ŒIæ•lpò$9*>àÔIK‰xlÁ˜@z“¢yn[ƒÄЧ£„!À^¨™\ åUïËM Ò šó÷ìˆãÓéF»iëÞSP|U¢Ýóm÷|e.vF^úJk—/¿”|•ê î¥ò0I2^FEÙŠN¦Z útˆQa>óçyÂTÌ6sü¢ùcz¶7Ð銇ƨeª¨Aw‡hQ^›š$õ3Æ«ÿí‘JJžÄXf>ãYá; ü-OhLHÓÝUn ¸pöøžQ¸î]}jwÕìÌeg]] ¿¦nͤöÞ´”XÜ Ri÷ i9(V:’å“~¡<#åþ€@ p#ðkbìWÄl¤Œ˜Üý_›$Õ/=³ÉÈöAIìïFJ©Ž—äUèçꢩN’Züq7uIžûöWÒt'3oyuHÿÃO5&¥Qj04[!á2u¤&0:BE/£¤R÷SMÏÌUÝuçšòÔ5- éxÖ‚­E½+.Æ ñ¶ã¹Ü4UþàmÒ¿_ãºv½&þ6 —{Nö@ÜþèÙÖŠÝOÇb½š/~X;›eS^·"áAû ¶3I«Qá†.3*=]×”µïhèh4ØZ_jüî{ýµk¦ tóà!Á}"zÝ5eYÔN¼aÃlOD|ò;&¶ýë“ÍSî¹ÉÙÒñJA¬üùX½x›} ã¿Î¯;ᩞ«~øíò‹ù­£½§­Ü)lhx‰±ÑÜ$c¾oÚ7A},Ø^ZÊ%ý(ã íåóîŽF¡C”ësž º÷_qó¢q·¹ý¸sUÙë¬/i‘âÅÉÎÈËA‘´„`D"àûrB$EýŒ4vtHæ–Ѭ‹gV´\9´¢m‡¸ŸUDct½éÞ«ÆKß×´ÿüDYý˜ ±*sh?åT¼M™óR¢-Žx×Ïü3›<‰¥ÙrÕ¢ý-4jÄéŽöJZu,iC´]*z£búRß ×ħxOÐgôÓPï°o/-g¤Ò~ï’rPH:r$M¿ÎPž‘2@ €¸‘øµƒ¨(k¶yd*µLHI—L›š¤vó°#ÿ¹¿wÃ#÷?[ãÚþDêÏ.~E&¼ÈCµ^TûÏ«“ž~Óíì/J²¿Ó¿¼b´öéb×84 mrõóéLvs$Õ³sKÒ³Q«¾/,}ÑÞBEŽy¤n–LÁK¸Q#sæ¼ÚÀ|D{¢áê¡Í5™žºE;¥÷ÅÉC)½¶Î\Yß&X¸Ñ¹p²³HPŸûŸìÑW)UÔž~¯z¢óÒ`Õ ·hœ9(<¢ï”yQ‡ KYôxæw]z¶tãì!ž­f*û¥^o޳ˆU†D{$òóü>u‹S2êÄXJfsZVãm…kñ’1‘AãçFß=ëb}y­¹9D§Œ•)©åìr6|Wþ@æ”æL¢Î•Ø"hËÉ^ZåèóZÿ1øƒŠy##Õª„]- “â´¬=•Wõxvkgx«‘Î8ÛY9(’–ŒHüUNˆ¤®_ƒ±ÊMçK¯7Èd2§e@%r‰äÒ«‚c“†ãet©`.=ìXnò@Aqó3bQþ§s3³“ýL°²€hÈÓRÁj¸nºÞlµÊåJ‰R)§—!ì•0OýQnßšùs^j³—§8jkÑæÓé}‡Nï©~*§u ‰søíó^!+…¥ƒs¼¹_‘¦_Ç/ϸ3—@ €¸‘ PK^µÛQ”Ÿm}zVÒõïž)£¾x­êáªõë¦y]»œÔ_»EôF¬Ë@dN¢\+¿þg¥·Î!¶¨û;ýˆåá¥\^yæaãÛ¿¿lk‘Q¡q©KéM™qû²ÍJP¡Þƒ© ÝQîÜ?GR÷~ÝÿFÛŲO:Rظßó¤§n9Ù×ËÈI¼ ž©M±:àQDÄvvýRn¤íMŽbdõ?—9wÑJn~2ÛpŽÞ#+ýibBÛ‰6|ó;v¿’–}^Ÿ6õÿÕ¦¥$Ôè¯×Pxdü¦}Y¡â:„Ò“Tœú£ª/㦉 Öjã»G‡"åUý5kÆLŠ+ø(CG™ÆÅûÐÏô>fx¶È 1m×ÇcK\?c KŒ[Öf Í×*•K9E@ PË¢®Ðt¿øá UãǯLHU1|΂ҜÂïÊ©-Cµ»oß½&ØÍŽŸBTF©^SÜ÷Ê’ô¦÷¹uèË÷ a9(4œâÇã‚4ý:zyÆ8@ €À M ];ˆìd‹7>jù¤ÄB}' ^ƒGsþH õg— ¿| ¤¢¿:5ŠÚQ¶òëœÊÉϼiäÓ½¿ÓTž>ç)ëÇ›éÆRYÔmAxg„.U![—Š …„„IR6= Å¸Kp£øì¬"ÆßÔ­e&3î¾8gÓ3aâX•^ÔÑö¶žŸ}öYóïâ•aÔ³›ï_£¦î~ô+Í—ãH=€£} °3“¹ÙÑxñ³ÿT³ÏÚ)@ß_j¤g•)#c\:ˆøæw-z}ùÔîôlÚ ˧fÔÚgƒ®3®á½ÓµÕL©ftðMsÄ‹Gý>9Ã8âÏe™™kK×®][:gøÈÒä9Ï7P¢Â%Hb©¶üî‡ý$ĉ“€PØ‹«Ô窳*eÁÒ^®D»ækgž³•ƒž}ÀSÿhr¿1*M"S8ÍžØþïv+½OOóÅâZçý õèýoÊ躼UÓ?xÒú™Øqûö§Ët¹g ÐÈF&‹zÛðü-¯­ÜïMw¹oƒi?ôÅhûšyæ ¯}y™ªKËãî }!]'î7)^Zîa<–š¿ÿÝ®µ•tÀ.Ÿç¯øïòrPh:ðŒºÃ9iúuôòÌA8@ €@' ne\Ìò½É¸%82€Ç7%"õ'@Õ.ê5½õÑ‚ˆÞ¸³£áôîêÉÏlÔ9d‡èïô#•×Àhl§u×Gõ2š:aièè,ªÑ¾utG’=~(eˆDÓ²‹Á³tÚèi2àOc32ÍŒN+‡vpÒÑ °3c£Å±7–§hÚG0«c“løçwmÚÉpµº6£ãÛž¨víÙ6¿ñxËèòƒG‡‰Ý yèP*((@öN)*ÎÝwW µ<¤ÄxÍ|Ò„å™{qBòšÄ¶ïPËÝÐÊ—v-íæäF” þvÆEl›r‹'pãí]Nø%’7´d4¤’^^N•ôÑGE0ÿ2GG¶¬è‰þœÄ¯ÁŸ´~&&î¢â_ͶÁ?*¤½ÇûŠBeû[¹¾>J÷üÝÖ³-uéÞƒ‡Š4pÄË¿.ž¨¤ŒQVõmãF·KËq'"æ{…¼ôQ:pÇàìÒ‡éç,®€@ |M Ãt(lk­K,‹íãŒ[ÔIýq \Ù <ö¿Ï 5+QՉƿ‘,Ó`Èå×ßéG*OѲ œUŠZ–)F'KkiSU©5*ªµ¤òÈŽ ×=\R†iåT5žr„>ršYDßý?W=éõþñŒŠ1cÆ”³ýýçœá¥ÄùýË*¨ç£ñLŒ{Æ?VéÚ¸/º¢ Gäv¶ùà ö^A÷KjÑM‘t ªüùÇb$ù=VB¿O$–2Kq>Þ´¦Í¡GyŸ_ ;P©å{z´y.öD4b@½œÝ•oŠjØgP‰-³½Ã#·—VÍñŒžù#zRåVÝ·Û®®yÿ^¨/?9,å4ûŠ}­Îœ‘Øq®å ?àÆ?:^9áŸxß0RR$q-³¢%ÊnŠÐÐP%ó¯[ËÞ2T|û Ïk•6Òú™¨lFö‹^Cï щ8K`þ–Ç¢§[>K÷bT]o¢[){hƒT8iåÁQwGXwÊÁ¥“Ÿ×3Žxðäñ‘˜ïârÐgéà1êú*ý<ˆ„G@ €>! j¯/A§èèÐmš@zÉŠ¦Ò3 ܧIý9 ‡‹nÓO;MN·çž)ÜtM¼†Vé—8¥¥& \v…‡<'«HCº>ôˆYÃ…êìËTü÷ã_[÷Âg«–䛜¼!špg½„›¥ätÛ¾DÎîmWnÓͱÓ=v=œ¸¹+È¥º ²ËÞæE’ƒ]ÛYþÇÖ‹ôþBE÷jë§l“*ãQo¼>?BM¨ôB‰mÆq~·­Pg•ʤtaÞFBÁŒ•“Z3‹CÆ-^<þ–=!ë—}¤fömËsÉ› ‡7Ø)±½´pÈÚ÷T(5STV{ÂùôŽ¦Â¬‡Ì´t$ÇNH﹞ç²KnÓØÎ¼%y9è-dx.ß”bhv#†á6ÿFö±±è¬:Þ¸`øðÒá,»O7Ðˉ*n<³ÒúgNÝs9„Þùä,­¿9tˆrAËÞ|N! ½ð<÷ñ#Ó×wé>õ×Hé½=kÏÿæ¤B¦%ÃWb4 §gï7 ?Ù+Âû_ì÷ Y9è»t`°ãuê£ôã¥8@ €ƒ€à¢£mŸ ‰¥ÙB3fÑJ—š!Yž–à¶qáÖ•Ê!xcq„wu9üΆëö HýÙýïw\ÒõŠB¶Í:tîŒÞÖˆì=h$Vú%,z[zdí³1sç-‹>Š7¸w·!±<]*Zµ,]Æn2z«pn¸m™¸:ôi nú¼Öµ2·´“VfÈ›ñ’fôÕî—ê=!㔄zz’ ÏÄ!À)ý\Dqµkr;+@ûŽWTQbµÉݳYÖ÷ÏÚ÷p¨?—”©_˜§·Íú!ÌïEߟ5Û6­Ñ ‡r–àN'×#¥ïƒ—bÄGÕ¥F{G««+êš+O-{¦EÚ´-’eIqQTXÕßæ_}]ŒáÃT`à ·„R6ìSŒ¦ë*ÑîùéUöÁëf½vý'ƒ7²©ÐØ%»¢¼5úrJ?B;Ã/¢òº$]—PQÌr¢K#ˆ$§üG.ƒ^þ|[wz°L%ž•a/\ƒÚ|Ø6{Õ*í%MLÓÒuâú™kஹr)ÊZa>V!¡ëz}§,‰Z•‚X¿_´:7/ ž:Š%küxª‡“§;SV³é óiç¡¥FØ*u¨ø3rÔqÍÛvpêòó{…¬'œÇ…_Ó‡^à €@@ÔGO ÷ Ñ–ý™Ý™äM ÝQ ‘uSJð(m3j¨½nÛHÉQ ´FúߥÓ*©%·–½/[—Õ\Åxþ}Ýé³çM%µÖÐØÒQ£G…ö‰Ñ‰¾zå¡{齈(HýqOWsI˜~ïÈÖMéC7¶z#f:÷ÁµÑ³ÖÑ|b¥ßÒÝ_OŽ“ÓKEQˆ2ï-]Í2ÍŒX^â*txíø¥Åd©¼üûõ’K—›®6 kØxE_mLwûHÌßÞ_Z>Ûu™8]ú`Ë”ú·ö¼áã?­ÑWZ½O9j€š^‹¿öTnÕÄ'ÿÁèH"K$DO7 ·dWQ·â•a— ×”O_ShÿžvãnÛ¦Ÿ >®vM{#²3ʧm.|#üî3.cÍèò·Ÿ^=ðÕ¯Æ\öŽLvs¨LI- ·óÑ©eo´t¢$æwJÚs¹‡UÓ´ô².æªß¿øüXíé£%¦ÿÝò„1ƒzt§GôÖ¡÷L(m]Ž‘”g2Ê-ZªŽ½ª7|ú§Æs”šk JÔwÔ_Ç Š‰ Æç^ÇåѸ–òˆÒ¯Ë$ö‚÷:¼øžhjªÙ™w”=º±Øy0@ârtpí¤ªuØRr¨nDJ&½=BdéGlg>(»Œ]tˆ’•Dyªa{Q‡ë@u ²üçY†›§8ï}ŠëJ*õ0›Ïéèߟ-޲ïYy/^–˜¸~æFï·rѦ¡oK£ã@½;+NY]ôÕ)C EqñZù€¡ éU÷‰itÊK-å w<ºà-O`ü<*ãòP@ºSï‡íE/«©Ù¼VÃuS]Ë~˜V©J,ǨlÇY\M±ª[´SºeF_<þÅý7ƒ]6ýÛïÞå  tpŠ- òô#+Ïx¨N@ D%À{?°`E ®è·]¯H†Tx-r¦vÝèq†Õ—]¶4¡(Ü3àÖ¡={Ü:t$Ó²Ö—?Í]uy^±Ó¾¤þœ‡ '$éç ±Ò¯¬²Î„âlûKŒ—Ì'X:‡(µˆåÕÕ jÜá©‘*¤=bo ¡þ˜Ñ´ÊM_îÙ|õ¹ì"çSÊQqšœi*Í_1#*6ôfåøišñ ϧޫºß©sÈö(„èÉЉíz†Ø¨¸¿G”~.ÁqµkÚ¡aE “6TgïÚ:D Š:¡ÇÜ¡š˜«Î4þcÑ£Õy"ͰyuÎ [_µ$RGÈ"ú‚ÿÒ¬¸¬ÿÃøŸÍËèŽÛø„Œ'à-•J»ÅÞ2‚úcˆ—Ì»päÝŠ‡–ds<ìäõF¸àm/ö}‡¬¨öôîê6C“C«ÑËïÇ—¯žÒ/J›²oCªaêÛˆo²ô#íÃrP#ðÆ“i9ÁSL—qî¯ü—ò—!ôb´²Ú_ º©‡Ù ïAß\J¯ïŸßrW0^•²±œð;@H" â¢ÏAŽ)+%÷¯ª{´=º«Œ Ÿ1`”“:¦Êë¶I³Nw /ä Š5…¤;s¦0½g•á…¶Ãl¬7_½|ñú—[¯g¹|ÿÙÝþÈ[f}q¬Ý¶Ã{…o9(V:2õgú‘êþ€@ È ðœAD.ˆÉžšž ½µ—ZÖ#4TªTʤæújó™o›6æ:u 9K!õç \µ1ÒO‹ÒW¦Ë‡jLò¢œ%†í\m:ë`25Z믜k>ºïÓºÚýòû¦'?YàÚ—øØµ]r;Ó¥¤K9@¡”IÌë…âÿ6­ÎñTöÚeüꦣ秎PÄ÷ –Ëq{Ä\e½pò¨quv~ÛNV‚àí^´ºd4jäi¿8<Ç+H!‘T—übúäÿ^1ˆÔée—Õ9Éí¥£ÇÊÁŽžBôóS9ÁApâäõ3¿¨çN~Ï<3q„¬ïM=A¨U]½lþå»/›sò¹Ô Ýê᾿åyP¥«=j—÷ ”ƒ]ÍÌ ¾@ €èüØAÔ!ãJ €@ €@ €@ Ëv¹C„@ €@ €@ ÐÅ @Q7ˆ>@ €@ €@ Ðõ@Q×Ksˆ1@ €@ €@ ÐÅ @Q7ˆ>@ €@ €@ Ðõ@Q×Ksˆ1@ €@ €@ ÐÅ @Q7ˆ>@ €@ €@ Ðõ@Q×Ksˆ1@ €@ €@ ÐÅ @Q7ˆ>@ €@ €@ Ðõ@Q×Ksˆ1@ €@ €@ ÐÅ @Q7ˆ>@ €@ €@ Ðõ@Q×Ksˆ1@ €@ €@ ÐÅ @Q7ˆ>@ €@ €@ Ðõ@Q×Ksˆ1@ €@ €@ ÐÅ ÈÇ_«CÉÚ(L9*((vœ6Í:V6äÖ¸MPE€ I ×›k+/›¾9ü®1;¿ØÊê™Ôk`p³ ®éGy¤Ò"i„ôŽ~}bz„)dc­¹äüÃáwטö°%¿¿ÓPž.9QVìíhРCzWÚéè•çS‚D+Íf£µ±úŠñ»/ö7fåŠj×~ד%ªp‹…Ÿ|Äâó-¾væp"Z¶!U1ø¶ÈnÝðý&³ÑÒP{µù÷ŸŽ7½—µÝÜ&ûòÎïZ”œ¬u’èéÂ]^J]´^:nØíª•Dn¡Êý)ÃÞ¥¯˜¹ Œ·žîºï ²<øäÁéÇÓ®D ¼ŠO€w~_…Ž¢#ßxQ©A qÊ]/9=Ö&&£AVIÕ©B«C=¦OÂú3A羞¿W׳ø*IÈE«KFôç—yú‚ÄVmõâÍãcîù–Í>PCy:TܦÖáQ&ÙC²÷÷ø‘iÅê‹£}2ý¶‡ž ©‹$ÓÆþIÛ3$P†Ì¨±ºÊxî×o›>~7ÛÌšïí ÄÏî~@ |O@‚E”ŠÑ¥¾,Y9olt8@b9kY3"µ¬€5°D´½èeu¥EÁú߬=ýAõÄ´uÎÏIý9‡W츧Ÿ½´kK·‰ñaaì!QwÍèÇw——=¾±ÈÒêÆßéG*/å~¶.J`•µêÎ~Vvpõ•©+43ŸêÒ¶HÖÏÕE«˜7[ÎMeÇêO}¶Öù3¸³èÉ!¸Õ†÷|ÔÆ+¯üí¬5ø„ô-Òfë4!­·gfôqæÈÒ=0„ù=q:¼v|L #dO§mò’6íøû¼ˆÛC‘²­¿Jt`íäÒÕN/B=Û~CÞb/B€pÏÂÓŸ] ‰øïü.º.À„e{dë’zy«¢(ù¨îO)/ÕÑZîŠE!y=:œ9†.ÿÛ”í6E ¿ÄQ{¹$¬>È_[Òú BKw<9NêY¦ëûݳk¯OùæÛÄå¸^0ÉM½ÀŒ®—œ©;ð¯Ô½^ vBDï¾ñó Œ›îöÙ^{è™ø,Ú¹øð¾² ¶XI/~P;læºz¶g¼ãÇÜ@ €ð)ÂD:”¹u¹2y:®Äh67Ø/Úüª¢¹ÑzEÿCÍѯ¿6ütæ <†‚ãt’³RBîÔ‡˜¾oå/¦©+ö2ßIýµQn8à›~ZÔwI U¦Ó'O]ûæÇÓ¦ßÏ•Z©44qš,å/CÕÝ¥2é3^Ðd)*Írô†ø;ýÈå5[$¸cË*“XL–¦f+ë¬Y€LVßÐèü,õ5ÉÜ9D5Š7]ü¢öÕ×rêõ¨—<[>mB¿ž*Íðà×w¯°Œš¹’ñÑÔYôt2¸hC€o>j÷Dvf ~ÒÊwäË'ôéI]Õ꿨ÉÉÝÓpòB½´}P¿;ÿ,K~s¨ÉIÂü^gBFŽ·"3vCõÄ6›$Œ¼¤CÙ_€;‡ÌJsÅ ï¼µ­æcÜ^4hÜ4iêƒcÕQ‘²¤%»¢ÎÌ*ßãЕPO‡ÿøD€½Sᛄ¥»&ø›I~[‡žÉ^ý5£š’’ºk,u‰\.i:ÿ‡Á¡½ r׊À“D´cabd (DÎe»=hòz=²_¾åÖŸ´>H¤ 9“¹ ¿C•ÈŠëæ”Ö7XeVjПÓ!—$T]]œƒ ßbÙ¶z³M„¨Ñª n±B¦gîxëò²G˜ Ó˜ìý@?ajbßüí“òÿ¾$PÑäUè`æøÛ £:ôÃÁ÷¯ì/(n.G!(nð`É= ãTƒXEÄ5 ¸ €@ àc¼g¥¯Û¡˜2¦©U*±TZ~üÙzmÀu¸Ä¨7/3§Ü1‡â¯ï?Ò}¸Z¦â©?ªÝpNÉÒO‹RRo•äç¹Y. `=ˆgP— ×”O_Shk%ðBÏßéç^^ëÎ ï/-(«ˆ“þ%ã™GËè™G’Šc Üÿl s ¤nÑÛÒ-3úi( gv.({4»˜1»Ê=œÎ¢§ûÜøOÈò)v–òšäÈâ{¢©™Ê#9“—lwî bUÉ7ùÝ& 7$~¼>òö`sÀoï.(›½Ñ–'´éÛ¤¹³ïÐH,ñLÔ™Î3Qqùò)._T¨ }¶vléß³ˆ|©'+˜NrS€½Æ,?H?"»&ŒxY~]`BÆ;²uSúàDuèý9J³˜ AÚ²—»‚‚dxþëšz¨"@IDATÖ”s…:Œñ©Úƒq_ï±»àÿKV.‘ÖùëÇŇ'.Kvu{ ^f:÷޵ѳ6\çž7DùV·Ü2 °Ø´n:Ê^¾°ûüý‡PÊ›3µô 1lžðý@?@Éì¯öMT_ (jÍãïæœÇ,ÏáN¤ñ¢)ø@ € ' åç5N¸]Mu];wìÚš“Ë^9}­‰_m]¿St¾Ö~—m™.û3×_R®átkÒôÓ#·C¼C  õ2#_ŽþN?.òä î¨KŸ&µ-KW‡ 79wQ,zv rŒæ¼ý¾i^–i¥×YôlÕ¸«‘æ#2NBìlý##¨Î!KÉ¡:nC”޾ÉïTÈ ˨Î!Tõeãê–Î!ê~lDWLœªwôÿP¨ãÐatÁ Å[(öÖÆ;ËwzÚwÎÿ…Ø YŒIóyú‘Ù5YìÀ—øÈò»øztÜe( —xÚ¹+wE‘ºY’Š;‡$ÆróÙñ\.õ~ú’–K­RøÔ[}‰{Æ…‹D¦pÔ5ŕ|ËbÓÅ{Púý›k~7Jð , úŸy›€ì¬›+Ò÷ƒ°ø¹QÆímrûô¯žM[·Ha["ÞŒ¾Þöà.CÔ:_´¸Å €@ `4¶q «ýxäpÅ †—Þ7ëÙëTC^l€\ð‡Iou7zï¼È—Åý2umõ#õ×6¤®rÇ7釴£P/ªÑ5eW8Í’¡Üú;ýÄ–7~Ä-ô:ܲªŸÿí:uNû,úkRœc/«z€jž–е÷£³èé=&7ª å#7¸ˆí ܽKmÅ=žMè«Ý™Œ%Ýâz›0¿#í<ôlËèø¯-®v€j²­6§ˆÐ-ÙUÝDï_W‡ß?Ì=Î\º\“êéLg»$µ]¢é0kÇrJksƒÝµ>ÊîÒÏWvÝ!8ó5_äw_ëÜYÃ÷Tî ŽÓt´ëña=© ü¯ÿÞ\q´Fb_#wÈb×{òQ¹Ä;fÂ<ˆÏE€>>É·{лG+ª(­BÞÛ½ÍûŸ¯ºBÞ>‰Ÿ»°O¿ê™Œîa[NÞRv´~ab, ì.nÔ}ñó,<@ €ðžDÅhÍ’LyŽ=fÄÐ+ÍC/MÑxö»z×vv÷Hý¹ñÆâ‹ôCè¹ÌIªp Zzà`N1ǧ7yͦ+Í ÝHO7ª<²Á©±‡°vÝ´Hü{E¯¯± ©D£f$Сžt==ÇâÆ~ê›|ÄÎŒÜÎfÍ@-û(5œ5æsý¨gׂy—,¿ã5ó7Î §òÄ墭«] ú¢¬OÍeø™5 ^öÜîÁLyk3’B¨xXJŠëZ÷7cº`?'Ó“=¬Îs—Ü^îyx}Ж-[b¶äŽÙ’¦eøƒ‹vª)7ëŸËؤÚ7ùÁ]úùÊ®;Ow~M}‘ß;?_ÄÀs¹+Tâs¹óTñV5Cuvv‘%8ÈÊó›Â®·zÝ5·_áå÷ú 7ø»òþZØ}ø*ßîý䄉h ÐȆ$Ú¥‘ý y?ø*~ì1!·O¿ê™’ ‰Ãy!3:µw;‚äñcçw@ |M€ðcNµ’ÒVKöÍW÷¦*ŸU'W¥mnä2©?.aƒ~2vʦi»u§f)|½mù•Ö ä݇ãïôã#/fÄó!»víê¶+w»jÓÊçåÓÝ §Ç#è£éY ]/;ï4j–Ú{(1V"5œ2­™“ÛPA/Ÿ·Þ¡Î¢§û”…'¢`gqšzVŸ±ül££?F›ˆæ¦/’fd<#KKMbéð’üN…¸pëåsÕøÀÒ½,û å mKèÞÙÀ¸ûBìÏÆ#‰µ(3÷Ub¬"„ê|~3%“s㩞žcß ž °—Íik<^…ð;8éæfE»Îx\›??$—y²Ú†¿¥màô®&%æ)ý|aפz‚?RâæwR-ntÞË]rÔ>(Ó´¸îW†ÞæQ6»JäSïqõëëkÎõA(Ò1¹ø(ßÒ£Jºž¬Býu\R¹.ìýà£ø¹W—ð‰ÿôLê×[j[÷¯ •–ê9$Œx@ €hWrJOÀ ç«gܪ1Íf‰íŸ$ITI¨5B]ŽrTPà}?×r×%pŽ—©hݬ¸žcE¿½»®,‡£/ÊI½‡Gð¢8å]Aª.Ry˜$Y‡§ÞDµµ–}Âý/¢¾É·¥¨¾¥ž,tß'¡ïßÄO4üŽ€ü¥gÿÛ#•”P‰±Ì|Æ1ÒÈ¡œ €@Ü@üÚA„û1)#&wÿ×&IõKÏl2²~Çú»ªÃE%yúß¹ºhª“¤öÔKòXf´híïôã-¯éø©Æ¤4J †f‹"$\¦ŽÔFG¨èe”Tê~ªé™¹ª»î\Sžº¦¥!Ïe°µ¨×¡sÅŸ!Þv<—›¦ŠÃMMú÷k\×êÖÄßFájåÔYô´G~ýO€ØÎt&­F…?ìͨôt]SÖ¾£¡£5Ò`k}©ñ»ïõ×®™‚Ð̓‡÷‰èt×”eQ;ñ‚ñ³=uñÉïLJx/®gôÓPzœx{i¹·Nží_ŸlžrÏM–È–[*¨ÊŸÕsÛ;&Õ“©sg>'¶—–rIÿÊxC{yǼ»£Qèåúœ§‚îýW\ãü„hÜmnF?î\Uö:ëKZ$h^ÓO‡Dµk‘Ô†`ÈÎïdb;/ºgî²è{X5½ˆPÁÌRjP·Ïr×m8n¬Øýdp,.£›/~X;{ckýÇsçÛ¼ë=ÎÞ}EPC)\¤±£C2·Œ¦VbmsT´\9´â€Ó,÷6ŽxÞè¸ùVœ÷CÇŸsBùSO‰¥ÙrÕY<\ €@Ü`üÚAT”5Û<2 •Ú&¤¤K¦MMR »y؃‘ÿÜß»á‘ûŸ­qm"õg—¿"H^ŽdŽ¡¾F«¿ýçÕIO¿évö%ÙßéÇ_^1Zût±k6¹úùô‡& »9’êÙ¹%éÙ¨Uß–¾è®e&u³d ^r…š)‘3çUjIu§ÃuŠFgÑÓ)pÑþ8ÙY ¤×G¨ÏýOöè«”*jO¿W=Ñyi°ê…[4ÎÑwʼ¨ŒC…¥¬{üðÌï­€´hóÆéô¾C §÷T?•Ã>ÃÐî^—ž-Ý8{ˆF†G¥›Ê~©×›ã¬b•!‘Éü<¿OÝ┌:ãæ‰õ´kpƒþr²—Ö¸ëóZÿ1øƒŠy##Õª„]- “â4©=•Wõx6ÏÆàÖ`½ŸqJ?íÚ»Fà‡çwêÖþA›QMÉ…ºª&…E&³:-*i:k)÷¨ ¿r×cP,u‹vJï‹“‡Rõœ­3WÖ³8ñx‹½Çcp>x(R}§fB¸X å¦ó¥×d2™³­È%’KT¸V=yjæì¼cç[á¿Ö´è,z¶j g@ €@»îAT”Ÿm}zVÒõïž)£¾`¬êáªõë¦)¼A#õç-\x΀.}9)&;­üúŸ•Þ:‡ØBôwúËÃKs¼òÌÃÆ'¶Ùö…­BãR—Óq½c¶Yp*Ô{0µ¡{"ÊûçHêÞ¯ûߨ`›)QöãIûvt=ÙÒîùˆ±B¿”i{“+å YýÆeÎC´Â›ŸÌ6œ£×þGšÈ²ö¿€üžºá5ÅÝ(HjЛ6zÛ_ËYIwáEGË>¯O›úÿjÓRê ô×k(Ex„ô¦}Y¡n) ÐÓm˜ñ±½8G6oÉdÓ§›j©»RsæÌzæßƒs2Æ­$âzÛ}ôÀS}Ð"ùpi.=Ú0kÖ¬¶¶’ò`ÝâœbÆÈõU¾ÕÞŽ"Zöô¦¡À÷ƒ¯â',Rm}ûQOk³„¶«T.m»€a[Õà@ €@ç%ЮDvlŵ|Rb¡7 ï5xt°ÖþÀË/©?/ÁÂc·RÑ¿_‰ŸW~S9ù™7nrxàïô#•§ÏyÊúñÅfº±Tu[^é¡KUÈÖ"C!!a’”MÏhñ®7nÏÎ*bŒØŒAÝZfrp@B;é,zr¸@@€™ÌÍŽ†¡‹Ÿý§š½Q±}©‘®ŒŒa®ü‰•ßñGã(Ô²dßíZ[énÒŒ½¾|jwªÓÕþ`X>5£Ö>‹tíœq ï®­¦I5£ƒlš@;ôt¨ó_ °×ÈŸ8Wå˜U) –öru Ú5¿ôn×¢)šß‰„v2O2@’áx•»ü‘$L+£êÔÑö¶žŸ}öYóïâ•aÔ³›ï_£¦î~ô+Í—ëLÔi½ÇC>yÄZô‰$[ \¸Hd §™C¾QLJù¶W²þÀ3窮8ê-$ñ ?ø0~$qëÇ¿z~ûÓeº` ÐÈF&»U  €@Ü:Dű¼Æ@¯‘m Ž àÚA$Äß v~ŽB"z룽qgGÃéÝÕ“ŸÙ.¨sÈ®T2\ø¡Î¾\Ö?þµuO!Üq¶jI¾ÉÉ¶Ï wFÑK®XJN×±íKäìÞ~ÕYô´ë ¿LnóÓ‘ýœƒ]ÛYþÇÖ‹ôþBE÷jë§´ËuüŽG½ñ>A¸äE¥Jl3Ž„æ÷ÄhNÏšk@?~²×%O83Nl+ÛY¥2)ý`<±Ÿ3VÐqd:¡zÚ¿Á~‰í¥…CÖ¾§B©™¢²Ú†Ì§w4f=dþ ¥á7vBzÏõ<—™q›HÓÔ®o°tî¼Ñ!Ìï7ÂþÑœw¹ë;µä ·¹ÞƒPÒz‡ =<"ÑÐ{}Ѓ(üËŽ²>Ê·Éëѽñ ºžüˇûj¼ (q¯_Ëâ÷ƒâçUavîíÓßzBï|r–^æ×:D¹ ƒe¯Jö(x¼ë>~½ÁC €@ÜATb´ís!±4[èaÆ,ÊêR3$ËÓÜ6î/ܺR9$á¶A¼1ï;®Ûƒ õg÷¿Þ pI?Ô+ Ù*óuèܽ­Ù{ÐH¬ôKXô¶ôÈÚgcæÎ[}oTïn BbyºT´jYºŒ=ÜdôVáÜpÛ2quèÓÜWÜôy;¬'jeŽY®H&­Ì 6ã=SÌè«Ý/ÕÛŸw=íú¯wœò‘K0\íšÔÎ*@ûŽWTQbµÉݳÓumÊû¬}‡âÇ‘¤ìHýÂ<½möa~wD¯Îˆ-ÞvpèBEߟ5Û6»Ñ ‡r–àÎ*×#¥ïcÛú¢êR£½ƒ–´\r ýF»&·„Rþ?{çE‘-üšG&Ãä„„¼XAÄEp]îè*‚$—‡+Á$àƒ ŸK|0»–å)ˆˆà…]ר_–peÅÅW] *øŠ/P\ˆ ¨$$$$! Éd&3óU÷d2¯î™îÓ=ÌäÌïé®®Sçœÿ©ª~TWõ¦½QãRÔ±t>$ÙýH^½ëe€õ³7_üά¦á4ñKw%Ï MP{×3`½b3V†¸½+c^øjÙï*í(øºGFCõKÀëA¨™=‹Ûåh·®…ä}FúrÌògþW÷^ÁÍiÌý…¦©Ü¼fK™àû ~›aç9üã·IØ!õ³;ì,Û¸Òöq­Š½÷6miòêlÂy?o4qßE¹¼âŸ+/þEH $€Pžs‘W)\m&Ù¶¯ ß¨>Vm»]Å^Èktqš½Š^÷ÛHkÓE燄ˆ–D«Õo-›QÇ,¹•±ü Íú)ÉÉ-ç,§NT4ûñ”µ²¶ÉŸ>B=vÜØø! ö¡àéwž:w×Êרo16Aå„ûÓÛrã—ÿ²fý´!ÉBhYO¾yaÜìõì Ÿ\ñ[¶ûÃØ©ƒµÎoØÒAÄýÿ]µæ€¿5`}™«ÉÁuÓôv«½îìÏ+Ïœm?ßJÒ‡F 3¦õs½éöÃËjæø.gÊ'on›–Æ>½n:e~÷_ï5VÔF;F¿E?vDóÒt´¨~òíH ;ý cŠ“¬ùÒZ¯Y9@=sê3‘­¥Ûû_—`£}¬œýâ½óû?ùÞ¢£}ïM™cû^¯Ñ3K»í¼wzõöÎWw3€íÝåŸiÑNõ¶YÃè¸[uåuý]RtÐ0ÃÍ.Kg«ÿ¡íÃ>n:Vi±§]u6ãæQú±3’šÉ &U¹–q”j§KwDþ…ÔúÝ¡ƒ‹oLe¦šeAõ½[ʽÖe® כּ5™Ji¯<Ð<&» ÙÉÖ¤ÅO|½ŽÈ8‡©Sö¦®Š2ÛÝ&„÷.~×%+×ߥ»Êbnªï{¦tmÍ̵¥®÷ØâÁ×=`ã`ý‘r=°U ïÀj›é5ó$ÎkæÀrþGAíÖDÏÛœç W‰LÅp΃q¦¨,•¶K²k¶»ÞHpeÿ…@þmÖOªOY;;4æ’<Ÿ›ÌÌ.f®%k}ÔPöÉQs-‰'ƒ‡µ#FÿWÜ æ[ÇeÿYÒu' "$€@H H& ú{}ãb£¢õö(ÿõŠ4ÄïµBP »(!-Õgíí$™DÇÔ]>zà€ËGßäe¸£¥Êò^цó+ŠË½¾?•ó*w¼@âçU€ˆ¹âW]×l%ƒÙ±¢²œ±}Å18ĘÖ×ÜHè€gŠ:J= ý²8柧›sõ£W·ž_²ƒãíÆòdjµjÏÊYÉéñ—ê'ÎÊM™è!\{ôõúÛ<‡ÂÉN7pÓ‡€íHh½fUê™Óär²pʦ†ûv\›¤3¤Žž4`ÞèI]ÞØê·ýuѽ Å’×ué*’Äê´o—z=tgàØzjîý­ÑÏ=eÏ•” IÖgü4ú¯+Ÿƒ8Z~±üsërö…ƒ®dÜà' º¾¸¾;ä MÇv7ø 1š¬!O¼1´fÍ´áÉšô̸½›rÌÓ—³“ÄähüÎpQ¾^sYi0ØÞƒqÞwºJ‚ô».Y¹ÿrY¾>“`¨_’r=°µ;¸ÌdEäj·ÎÁ!io:g®øäßMO­ÜÑ!ã%µv~Ë?¡|Aõ“®´¬?…䎛«kž,zÐp£q@¿¤cûÏ1ÖËUkÝEçdðÎT¨^…â@H $€€bDÎ ’b—‰ääe¨/”¤¯Öë5j[Kƒíøç­[ŠK½†¼µ@å¼KÁ½î" GüŒ$oUžvtŠU[V¸Ô\ð-C¸>SÖL2fÄHÍ_%hcõzu{K­íØçïXw—¨Ÿ.®N¯Ò_gµ¶9ZÎì8¼÷I뫼¶†‹.ÿð¯üÄÔk—v±õÌ%G¿Ø–§ºý¦QI±Ñ•Íì8]þVûšÂ@}¯[V±-ÓLòøô1QCÆjµ$ЍlõŽÓG[ÖìØã=›E1ƒÂ]¼¾„‹çaQ¯Ã¦Òvb{Wšx7ëƒ_÷(m¸´ëA±Ö†Ö³0j· óC¸ø×]vš²È£“Çh†ýj`TÒFêÏŸµøò£ŽÂ=Bî•Ķ Ì@H $ ˆ”r õ $€@H $€@H $€@H "à÷Ñò@™ñ@H $€@H $€@H $€@øÀ¢ð!z€@H $€@H $€@H Qp€H.ÌŒ@H $€@H $€@H ð'€DáCô $€@H $€@H $€@¢à‘(\˜ $€@H $€@H $€@áOˆÂ?†è@H $€@H $€@H $€DÀ"Q¸03@H $€@H $€@H $€Ÿ… Ñ$€@H $€@H $€@H ˆ"€D¢paf$€@H $€@H $€@H „? ÿ¢H $€@H $€@H $€EˆDáÂÌH $€@H $€@H $€8@þ1D@H $€@H $€@H $ Š‰Â…™‘@H $€@H $€@H $þ´’]0šH–1™SCJJÊù‹3f’yÓÇk®½|°.e@|”NCÔ–Ö‹Mug­Ÿ|ŲcO¹ƒS*ÇY&ú?F‰Å”1꫇Ñ¥ è¥Óé4*K“­òÔqóÁWÖZ_å ¿Òñ“YŸ13‹ŒJp¨ê–:TøÑs'g’'Ïî3"5Vo³Ym ç,_~¸¯mca)w½vIŠ•“Ë?1qwÙŠù (ÅSl}ñ²8“,ß”u͉114½Ýf±·6ïøù»ÏÚ_ßø‚ͯùBÚ»‡¾œEÔ®¿Ò`PiíL?QqÔüÚ²'­<ò87$+Ëè—Ê—ÐZQB¶E*(¸Ýò)‰”tIõE‰íApüºË? hPÔ›€ð~Â[.÷LYY„¹šöóí¦,Â^†¬()!.c‚ˆûÎÈ]¡š=ᚘVEÏ'µ•í^_Ö^ìßɳ²PÿüCöKáÂÓƒÈó»·° =0—.îAÔ´V’`'÷ Ex¯ú ˆŸÒç?¨>¨œg0C¹-×}ÀFÑç?Èu¹ þ‰¶“a;TN,¸ˆUéÊâéîüô:YªÐ8(-çÃ%è®T.AðgwìTT_O{gXÄ^xGpžö.÷@XPQ++¡–šržP­š?>µ?-@eÿѾvLNu ga™ä…²'’®ÒÛ£8ÓĦco6LÎ]ßæ}*ç] îq?#ùó®m1“‡öíË]“j#ß¾²¢ú¾-evw¥ã'³¾¬ ä`ÁÍiÑÔ¡êwÖœ›¾r‡Û7÷–)w›jÃj"Oî^;vp,§Î3eÛkg.+¶z—÷ϻ؞˜~)Yå`b8jò MöïF'õSkÔWÏúcJþ¡²ª]£!JÇON}™äÅ…™‰Ñtà‹ùuXUÜ3r6«6ÑÁ!f©ý§›žÚ\ØRA‘ Ys´3& hH¹!öéÝ+ícï\ÕÂäú$'Õ?±qw‹¹ (ÈT_œVߺêeíŠIC2{M6½Úzä !ƒŒCÈð_ÿV“qÃ¥ñÞOò íÑ`";ž]@‡lz[í7­/ÿíùÆwé+ë£&ÌPçÜ1>)Y—¨™²tWòñ’Ù5¯2Ù™_³•Xè¦ ú1-‘yrÊÛYaí6¢H8&¡¾ÀÝ—£=Œ_·ø'ƒ’¾ý„o¸ßaWÑl•Ýjoïpp^shtMKk›×1«­î뉃^£ýRÕÒêÐ8˜—¿¼~Z­YÅ\³IÿÉÓûžíwC’à²Ôؽ±§vÿ¡v’|¹óþYýF&é ƒ2æ'½´èDõ½[Ê=^¢}7Ð?i6‹ï—Â…'ÃEüùNÌÅ꺭³‘ÆÊÊæ u[¥ÕªÚOýb†[ç’ ¯ú ŠŸÒç?¨>¨œ+”Šü•z_1rþƒ^—Kñb'å;T"… H!òôS'ä:Y‚Ð8(-çÇEH‚.BŠç̉»;Öq‡_0!§9ë&"ð zQÞú£¦Ý|Õ€8µC­²×Ù¿ýãˆIýU– Û²›çÖt½„.Âÿ§÷¢7›z³)® ¨œÓ".+,~F’s¹jO1ÏritÀ;t3;áLéÚš™kK£*Aè)?1ú|îmýÜQñ] Ü~eÑ7~—³oüªj?n½ç¶Ç=—o1-zI½mÖðÃñ ªïÝázX• 4°¸Ö×›*ËSB}ÉÞ¬:´øÆTf`¥îPaíÔ¥/xqÞÞyÏ«‹æ\¢²ÿDg”Þé=£”öïÑ~Â@ÚÉûëÆWýÁs§ž‰ô†èÝ ‰WÆÚt?¼² zŽÏƒGWNaíÖ•;RÿJ¨/@$rµañSÞ? ã!º~‚GaX$»ß=ýƲš»6– ºŽb\[º«,æö¡ú¾Ö“¯_7{ÓÅPº›±|7 28Ye¯´ŽÉ®.ôQ¶qïáøq)êXæ°™žº^ðxc[¬>*ïBû¥ðàI1€Îï‚ñùe„rÉÈY³~Ú:ƒ¨™¼1wRÕFÏ e?-Ò©~Ââ§ôùª*'-þrKº¯‚ê‚ÿà×åì äÌNhÜ¡r¼ƒ ÄZ*Œ§¿6a×Éþrž)üþAã ´œ§7òmósë+îž²SY}áwøu¥®ðu–gœq tµ8ÅYd\Æ•IÌàÐ…“_X;fjõ“Ç.´‹+Ã?÷Ëe§š\©\Ët¹Žùþ…Êù–Ó{ö¡ñ« ¼ƒC ¼o’Ó-f€¨ŸÒñ¬/g«*‡1oÇþXiæ}çÖ”7Cí\¦™”>ã=8Ä€Ó§ë-Þ+o™Ñµ T.\~ÿ q¦±·W–§”ú²áž1}™Á!{åfaƒCLLáí==!Ž­óÖ_޶øÿ8HN›Õt€*š¤_ž!êÜ“‘Ÿ†"õµ­á"Ûm¤×Z)õÆF¦ö 0~Êû£‚RüBÕOðk ¯#Ú(1WÂnßTš¨®kwªœ[&r×ÍC™U¥É/om¯õbÒó_ø°‰¹)p¨«oÏÏà\.êS¾ðŸô~©§ó„ß…äË ç¢!ºA|¥Ê‘Nõ“Hü”>ÿAõAåä¨r–Á_×;ÿÁ¯ËYÈ?ˆÐ¸Cåù&åX .Ðr!<ýt ¼Nö“óIàó¥å|Ü‘m—‹²ÄÝÇ€@v*©/<â.íºržö î"°# ê!!5äÛCk·/¸¡ê–Ù]d¦ÓoÓJõú’¤ö&’.®aç_¦Î_ Tο¤Þ’šøãX2ˆyxKÕç¼– DVéø Ó7“ìºïúL…üþ[k7ª\kcø¹2qÌe}˜DMýÚþá;uÎøy¾eër$0Ì7:÷ r®²øþòû¢¸óñéÊò×Ó òº ]ü|²»À{‰C)1 ÔޭΕ¢RGÄdùê0™È¯ØïÐ5Óóˆç·Ê|3úìç“Ç:ß>Þ¿yq÷ËÇÂÛ­Oé· ­/¦L1Ñ™:û)n0FgšÏý“£=Ô?·½¸ÕíBÑOt»S½ÀS&Â^ë5“£oóÌp*9D~b_ äÓØH—,(åè—d1„¿)´^·~F\"uþ\EE£s R";‹y›*ÇOÒy$¡‰{0‹"÷¸’<áõeöìt̲jóÖÒ=D`» µ@í½lã{¶jZ„C7T³d÷ÊXÏÒÖåO‰cì±W–7»¿S晃k›®¥¼en¦--{®v Ï Bx»åÒIiðúrãÝúlÛ¶-m[ÑÁ´m¹FŽ?èÍiÙÎ$&φƳƒãNrÒÛƒðøÁý‹¤(‡»/ò÷áNÄÛþë9§c¿Ç| .ŠéÌ9­ÄõV&i˜a&Geü“Þ/q˜.sœg¨Îï2;¨pqpžž†*Q?añSúüÕ•óŒBOØt_·/ç¿@×åü–öO¼Ð¸Cåø=“v$0hÙâyzk~ì-ç¿Çç4JËù{$O i¥K»¿öÀv*§/\â¿.€§ý#†)H Üð<üVÆ)¹kT¯•=’t } Oê¿j[»µMˆf¨œ²18ù;53Œ1ý˜Y Ÿ>¿âœ{½yþr”ŽŸP}̺­3ŒÑÔ—jòRvïÒr¬gô úTv6!«O¹ž‡8Ñoe¦«ãÔæ£Öµs‹Zk-*ö[ì49¨?N"Ô¿E࡞J@B}œÇÎê³ÔüØÖ5®bÌ$óò©óóÕäæLá "x{/$Ï¿SÉ>ÝŒ|Kü¡};úe#)(ú·!3=*ŽDþK°¶åaÂÂçÖê¯M°õalo_öç÷“Dµ[²#rSB}Ùšû‡¶Ïê =GÓ¼©®.Nëö<7”öyš¦¯ÌÈÝ$è\í’ ôWTü$øÈ<¦4yû ¥­µ¾´1ÇíÚµ+fWÑ †gV=®™pZ_¨Íñ*ßõa$+ß’Ñ}mäÐ%jFfz‰³;=Ù?kC›åŠó{h=U¦t(OO딨Ÿ ø)}þƒêƒÊy¡›·C{_%ïù/øu¹?Laþ‰´w¨œ¿[’S„qªÉÓC¨ëd9ßÍ€þAã ´œ¯S2ìä"¹|xÜ}U ³S!}awèuè<í4ÜGaH@«¤ÍôÁùšY—§Ø,6›J­Š¢ß2¢ï““Ú/vŸ¿íá­¼ß2‚Ê)é[oÔeÌݦZ9m»ŒZõ¡ÂÚ…Åœ³”ŽL_Y?{ä@:÷üðÊz¿/ûÅ—>{îLl©oñð;‡,ξ’–ÓA>yáºr:cÈl§‹'‡FcHP“8 $GˆëüF`þùy€ á@ZÏh}±´Ûh½ÓKK[w ž{Mÿ»Qi ì@e§ï¹÷=dûbÿ_êæo,íª_|X„¶÷ý+³;R ¯ÖÞ{Ó $MÒµ†‚‹œË 5}o.|äžúb>>é&z¾¸“ùý:ÿ ’Èvë£#âv%ÔBÊÉÂEÅ {‹rú¤2÷Ù ŸMΫg& ÏXÿz3ÀGHÙýˆ3Mv"ã'É?y,ÆRä! W?!5=£-{MLˆ.iah’Ó¦¡Æ«Èõ“¦“k·–þí‰Æ§K|ç+»mWkûª²èr$ÙÙåºÒZQBð‹zfåß.ÿŠÔZ¦ØâtÍ5Y·jIù~¯—cÁß/¸9šýHQg)ž£úRýã7,4Gz2O¹ÏïbJáÒoèU¦AŬ}ëó«!%%—§£ú ŠŸÒç?¨>îs|*GÈw•¾¯’ëü'ôºêŸ(;ð¾@¹@+¤(ž]JD^'wÉqÏ ”Ž_7öáw‘ñóˆ;¬ž‰Ô§t}ñxæájðM × ótp‹0èñ "ß+ò|H™02«ßÿ>£jøó£ÏX8ï_¡r=˜µšüÏ¡?Rýg«ôÜ=—§‰Èz~‰ ÎÅ@nœ·<õFN}?Rrgóm[ø/\ê'0~JŸÿ úä¸ÏW˜d7ÜWI>ÿ‰¹.—àŸ`;ñ¾Hà«hâïD_'{&Æ?¥ã×ý„.ž<%l nGž:$Ør}J×Ïç`žŒ‚nC¯ €çé ö`$Ðó (:@T¶qŽí¦¤Ê…%#;O5cúÃè¡ }/½þŽÄ¿ï»¤õžÛkô}þ•séÁ¿2ÈZAöLLcžB4|ñ÷ó·>üÞÙ_Œf¥ã'VŸiÑNõ-ƒµñÌL…çî\Õ¦•³U5.QÇ”S8÷©Vßrx§hˆ”럯¸æÕ—8Í,ÝICn{`À0½:ªéØë “½—kXøÜþ¶;GõO6m~rþÒ*Îo‰l寮ê-s®MÑÐñQkõ‰– Û`Ljt}\âõ÷$~°gHóâìüæÀï ÉÖ-3Ùïµ{µá¡B÷HÏÈÉÖn= ÄmAõÅíxEñBÇ_¯y³vþM‰I†÷ô?¼FÕWMcÙt´¸þ¾îÁp·lK¶ø‰ôf-JÉM@z?!·EÝ]^9Y÷p¹ïµT+1f5<žw·îÖë/Md^ȹlÊcÉ«¿.­úÇ“t‡¹Æzªêb«F£ñZ>T¥U©ÎüRË{ "Æó­¹Û®(]G—þLì3qqQêu³j©i²uÄ¥ Ö§ÆkôÌ2¢…›¾¬¹½`ZšçL"f†¢TÿÄØ)GÞžËSÆó;œ‹4Vžn®o²k4ï:Úþ£½`‹¯HxÔO`ü|eö•>ÿAõAå¸|AšÒ÷U’Ï"¯Ë¡þI¶w¨œÈºå"RMWv±<¥^'Kö¥åº ÛÌE˜š®\bãî„Ú©´>—½àó´¾t)¼».ž§?àl(E=„@·~ƒ¨lÏÇó§\\ðÊñjæÎÕ‘tƒaÃúQÁØ@å‚•‹Ç0å“7 neoüë>ý{]°Á!®•Ž_@}¦ùt¦Â° 3:¬>ã=ttÌùv¬\r óA÷LR4ï·‰LÚ÷û¶×rÍx¨þöHÊqìL è_9<Àõå9Qca¿£Õk£4-ßX–{±Îo}`‡ù$û¬þä¿&gx¿ðÍäÛÞiþUìà]<´úƒ–Üéÿ·)7;£¹¤âb#S\}Ãý™½ã™m¾_ΦÍQ×%>js…u ßwé í–Oi¤¤ƒë‹7€â¥S­ïýÔÞĤªé,0[íÇ­<ðW³w. {ÐøÉäŸËQT2ôr˜eÐ¥áž|ônËý/|}Ö9Âc r–ÅrÙÞQu¸uöìÙï¼óÎÏwdßѼ¸°Üc)\.i¡iHÞ” %G©o£ËçöMk4í—Oôç+>l\{ó5…ôI¿ëí³ ô"üj¡\ùz.O™Îï@Pp.­äಜæÙ³ïð¯£s Zåy®õ?¥ÏP}P9`} …XH﫤žÿÄ^—säŸX;¡q‡Êqø%5I¨±<¡×Éì è4JËðz( h¡.9±qwÉqüd§RúÂ*îëàyš#n˜„Â@·¹`•o¹×þïJ;¬HÈ kÆÅ ý/TÎ¥ÿŠ%CþñÔôäD*V÷iaÝÔGÿb[‚g~¥ãÇ¥/còx ãó»jÎóßÿýdÏÿg¨¾/sìÒÛÖ&1éþ$å£w_LÌÓÆÎšÓ'¦ù ‰mïFòôŠéýØ·Æ›¾1¯˜žßäš ºnî„Ö×550¼Õ)ãb÷?3OÇÉž.-w7¹Â,göå®uu/ɳbàvË©4‚%Ô_ _¬ïšÍ ‰ŽUòÍ a?ý“`>ŠJ" C?!Ix W>äx÷§vÐV“|Eú¥!¿ŸJå5+Ã/ƒl t6г̙c~[]P°®jݺuUso¸©*kîã­lŸÜŸ0¼ÊÞ`ÿù€0¥BüV’|¹z2Oéçw8'8 ÑÉy"áu¡ç×OPü”>ÿAõAåxãÙ}俯’zþ{]˜¿;¡q‡ÊvMÒQ~.ÐbÅó_' 0‘Ó?h”–à4 'ha¬œø¸ QÇo§‚úÂ.î⯠@çi!Äû§«„ìkU)ßa13³ r]Þðó/pv<ÚÓ H¨/–6{ðoiQÿ*v )6)Íãeoñíݘ»TuCóíiùìùû|Ÿ nÊ}¤í³zÂÎjp͸¾\8\ÿAõAå„¡òÈy_%íü'þº\..ÿ@vBã•✄<\\ ÅxB¯“éç4JË ôšÍ ´ *Š»@}\v*ª/Œã.ôºtž?̆z2×*Ýn£.ʹfºÊn¶û,æÐ6¨\ÀBñ ßÿÏ’è‘ñ6=©ÿªí|Ë>ùIOP:~¾ú|×wõµx鮲˜Ûé,¢Sû–×Þå53ˆ‘UM­Wct†¤úPœÎª:ôb­ï7\²¯7j™%têy»SþPŽ-&ȾþÉŽ‡{Ë#uÿù¼k 1H{OO‰c_8PÙ«íå{èGkü~¤øƒÓM×MÒǡ֪øÏ%®îÛY‘3G>hñ|àè›UJ»õ-+²öáõÅ;¡úȘÑ4Í_<~ë/;–O’5tjß=«N´g¯|}™Ã_ü–”øAû]ñV¢D(Hï'BaUx”Õ¹°­CMÔìEG4;“ŒÑ—.#j'ç>/käž¹ÊmxxøÇm{èR¹yJ9¿‡ÎÖp(™›§Ë嬟°øÉq~â©+\ôºÕ¥¹'ý•ó¾JÊùr].„#—0;#«¾pq“+„ç«>ßíö-7Ðó ß¼\ûþþ)¿žØOøsá¢', wa%Âe§²ú”¯/BÙˆÏÇ}];O‹×ŽH §uü†ÕD®H‰Ö3pÚ«Ž·ú¾yÎ *Ç_bo>Â?ã|2}töyîñÒg.ˆ¹áÌSDü2g’Üœ)—O¡ÏÇpm”?·Þýž Áf¥g«—î±z‹™È¤_'³KÔÙ+5»¾K•ó.›k柿g\ecšP¢x ¨×àú²ç]ÇOì÷…I½j´sœÒω‰äú½Úó’ªÓ•ÎGàöî\¡Î¡Ö¨ÙÎÜO!±+ ¹OgÆÌTÒŸm×J¾ý÷k>m‰£0I\íV€XXg×—N¯7î}(ž™)ªiúÊ\ðð‹í¥ï²½yÒ|9œ>)oà†,qxDµŸ¢¹â'Õ?¸«8‰ý„âöö…¹Ä4DGW}'Ä|ú›f¾å7»ÛÚŒå÷k®¢Ëí23ªËž/Ñ+럔~IIƼ<¡çw%ïºxyµUæú ŒŸÒç?¨>¨\Ð0(žAÄ}•€ëy××kE_'ƒ¯Ëƒãóvž†Æ*Ì;øq>.%†2îê|“¸®“}óøïsûƒÒrþþÈ•ÂÍ…³ôn;Ÿ°vËéŸW"·¾H‰;ïuð<í…w@<@Tiq~çBeï°ÓïÒrþL9ùª¹¼÷>·J-ýÀ-¡_u9øò¦‹®B r.yüœ€ø‘AÉÄy3ÝLN¯´l£Y®øe,zI}hÝcióæ/O=L?pÏ·¡\ú‚Ssæ¨(~ÑñU“¦kÖ…¯Ü­«òµ#cmt)~ùd÷Ÿ[\Ç¡rrú'(î.ƒñoPžBë5´¾RBö~V[ÏmÌê·#Ïä×ßoÜ{w| =®ª>Ô²°¸Â9ëØÞ˾þÑæühM ¹«p)tòýå܉CèRŒôW¦Íïg³…¶çOÄSÅN üã"¯/„doÚ5.EKçC’ÝäÕ»^X?{óÅïÌj¿tWòL—2ž¿öÀS”_²ÿü ÃÅ Hî'·X!…¦²zyž†ûú&‹ü­t^çrµÍä½¢§ÄL´—Ý#·‘t9•mªåS'3 ¾ØsþiÏi =À¿PöKR ƒxBÏïR YOÅë'ìúLéóTTNé*&×}•Ðëyðùx]õj'4îP9h}rñÕò¸û*¸õ¥åbðËåâ[P¨ãµÚn¡úÂ%îLü@×xå[õq¿—`m*…ûšI¶í+è7ªUÛnW±]œ&F¯¢o ÚHkÓE燄ˆ–D«Õo-›QÇ,¹•±ü Íú)ÉÉ-ç,§NT4ûñ”µ²¶ÉŸ>B=vÜØø! öaâéwž:w—Çò5P9áþô¶œÀøå¿¬YO—BËzòÍ ãf¯gùäŠß²ÝÆN¬¥K–0¿V²¿à¿«ÖpL3“KŸSó×î3¥kkf®-u=¿vg1å“7·MKcŸz72¿û¯÷+j££Æß¢;"‰ùœ i:ZT?ù¿z$äàþÁâîv·¼ ÈÃSh½fuê‹ÓfÙZº½ÿu 6ÚÇÚÈÙ/Þ;¿ÿ“ï-:Ú÷Þ”9¶ï¥ñ=³$ÜÎ{§Woï|˜—l%E 3ŒÑt™8ª­þ‡¶?ø¸éX¥ÅžvÕuÚŒ›G èÇÎj&o,˜T廣iÑNõ¶YÃèxgÊò Ún…Îy õ…~wèàâS™©fÇ_YP}ï–rï—6yj@IDAT2WwÖÝšÆLa°Wh“]ÐìD$O{ðÄ4~ÿ<àv·ÒOt«á¡Tž¹š\71Mo·ÚëÎþ|±òÌÙöó­Ä1 }hÔ0cZ?׌—ÞXV3Çg¹[W{ l^3½všÄyíXÎ÷h)*[–”~¾Âüõ±ïÚNþRek2ëɰ±¿‹ž0*-yõ"½œÐyØ%-Á¿®2DmÀû¥°àɲ~…Ð'3”‹ûšBú¹ÝÇ$ŽÝp©ŸŒéÀø)}þƒêƒÊqD5TIðû*o‹Ä\ÏCÎî6ä­—kO®ûpˆ¬=иCå¸ I —¸rÃÕs=Ÿä4JË‚ÃsL2CÞÞÏM!íV—0ˆ;!Àë6æÀó´G}ÁM$nDƒ¨o\lT4]>½" 1ÄÇ{­,Ã.†AHKõY{;I&ѱu—8àòÑ7yqr´TYÞ+Úp~Eq¹×w+ r^…ãŽHü¼ ±#Wüªëš­d0;ÖB?z|ÆöÇàc–\ú¸\ôêÌU¾‘L-°VíY9+9=þRýÄY¹)= ¨=úzým¾ƒCÌq€œÿ”Œ»‡û»)O¡õš…¨/Nøådá”M ;ö=ì¸6IgH=iÀ¼Ñ“ºâb«?Þö×E÷6{¾éÝuTüÆSsïo~î){Ö¨¤M°>ã§Ñ]Å8ˆ£åË?·.g_èJî܈Õi;g™ò¶6_‘ ûò•TUÏÊ º¾¸¿;ÔtlwƒßàãÝ5ä‰7†Ö¬™6ôJí]KwøOíÿBÕ/y¹,yȓիìù]²«]s„¥—Ä_g7ÔOz#»>SúüÕ•ã®ìG¤ÜWy#æz^ÉóŸÿÀvBã•ó „Àm)\Èó,%´¾xÄAø&ðºÀi(ì<-Ü8̉z‘3ˆ¤Øo"9yêË%iÄÇ«õzÚÖÒ`;þùAë–âR¯!o-P9ïRp¯»È?#É[•§bÕ–.5»Ö=âtI}œItÚxýþ:«µÍÑrîdÇá½OZ_ h+S¤X¹îò/ˆûx@@L½v/¶¾¸ä軪ÙyªÛo•­QÙÌŽÓåoµ¯) Ô÷ºeEo™f’ǧ‰:0V«%QDe«wœ>rزfÇžn~¸)Ú“0€×—ðp<Òý (€­Ä~Â)k&3b¤fȯ´±z½º½¥Övìów¬;ŠË\'ûÒ£)‹Œ½éZõðÁ)Ú8z>é¥R5Tž°þûÿ=i- ò²A8øRx…Káé*NÑó»Kiý+…gwÕOXü”>ÿAõA唪`rÜW9}vŸÚé—bç?‰þí„Æ*'¶¾H䪋ซ~>áâTÎ¥Wèßp‰»D;E·[‰ú¯/BãíÌ'åºÀ¥ vžvIã_$> (h)@H $€@H $€@H $€"™€ßGË#ÙYô $€@H $€@H $€@H€®$Ž@H $€@H $€@H $€z ê]ñFo‘@H $€@H $€@H $€3ˆ° $€@H $€@H $€@H ·ÀD½-âè/@H $€@H $€@H $Ðë àQ¯¯ $€@H $€@H $€èmp€¨·EýEH $€@H $€@H $€z= êõU $€@H $€@H $€@½õ¶ˆ£¿H $€@H $€@H $€@¯'€D½¾ $€@H $€@H $€@H ·À¢Þqô $€@H $€@H $€èõp€¨×W€@H $€@H $€@H ô68@ÔÛ"Žþ"$€@H $€@H $€@½ž€V2£‰d“i15¤¤¤œ¿8c&™7}¼æÚËëRÄGé4Dmi½ØÑTwÖúùÁW,;ö”;8…¡rœ…a¢¡ñc™XL£¾zø]Ú€¾Q:N£²4Ù*O7|e­õU®ð+?™õ3³È¨‡ªþh©ã@…=w‚q&yòñì>#Rcõ6›ÅÑÖpÎòå‡ûÚ6–r×ëNɌܪٮ‰hÐiU6‹½¶²¢ýÀëËÚ‹¸‹öÚùg$YYF¯bí´V”€¾î­ÇÄ´#)Œ€õÌ©2“,ß”u͉114¡Ö·Ö¦ó?÷Yûë_°ù5_Ñí]žz–³hƒzÂõW *­é_*Žš_[ö¤•¯I€ú%)1'YIõE‚£Ûƒà~×e¢D}®bðowÙ/u‡‰Jë”Ún•j½ÀNÑç#)uE$OSVaýBsM'¼Ýv›"yMY„½ ´¢¤„º"އ{:¥úOõ)ÑŸ)ÞÞA÷Å.ø®¿Âû3—ó7,xŠì»ü‹t¹.Gq $€< ¨èN¥g‚˜mSΪUóǧö§B*ûöµcrªK8 È$/”=‘t•ÞÅy˜&6{³arîú6ïãP9ïRp›€ðøÉŸwm‹™<´o_î’˜Tùö•Õ÷m)³»ó(?™õem  nN‹¦U¿³æÜô•û;ܾ¹·L¹ÛTæ™R -kõÇ-‹§?Öä÷ð˜È“»×ÇŽß•ÙcãLÙöڙˊ­Itè_æjrpÝDÖïò¸÷ùÊ-Ñ»S…·#iœ`õÌ©3#o›úsL)qœ&ØÈ»7Uý©kØÞ¥Ö3cyñÙù Wƽ¿™udÿº©Uk¼N0@;ý È)õE ÉíA`¿ë²Q²>WAøWqâú%ÅÍë…RÛ­Rí!âí}>’V]ÄóÌ$Eï¯O6êš`šå¾¦×n»ÇNñ< Y¶û£Ø©ƒUœ×änƾ×Kî#¸þ”ê?]¤Ó§X¦t{Þ»@ÿŠëÏ:Ä'¤d<Œt¹Î(â$€à œAd"Ï­ÐgJJp•©²Øl­®¿¿ÕÑæ8WñMãáO?5wü„½¦™ØÁ&Õ¬ÙÙq¿Né?bjÿ½«NX§¯|Íã!œ6î=?.E«²ÿdß<æÎj÷qŸŒ>»büó¥»ôÁ컯Œµé~xeAõ¯)ÿܽ=ÖŽ Ô`õŒÕ–½Yuhñ©ÌÀ_Ý¡ÂÚ©K_ð â4)4íÝ©Š»žóžW͹:…©óki÷š(Dû—÷hÿb íäýuã«þÐu0”vr‚ “D õè¡\íAX¿Kˆ\ú€î¢˜T ~IªÒž.o·Ê¶‡È·v>‚Ö/(O÷›ó§ßXVsׯ2A×ÝP+Y9P»UÚN(OB–î*‹¹}¨¾¯õäëÆÍÞtQ+ÊöŸÊ_¿(ÛŸ)ÝÞW³€÷Å þŒ®¶º_ l'ÿQ(Oh?érü¤ñ@H 8 ¨ÅÈ"ã2®Lb‡.œüøÂÚ1S«Ÿ®í@÷ÅÐþ,xBûÁH—ãª#˜†@Þ<¶yàÞ«!ß:X»}Á U·Ì~ì"ó /]§•|!}IR ûœ.–`ç_¦Îß"¨œI½%%4ñ#Ʊd3¸@Õç<–D ÌUéø Ó7“ìºïúL…üþ[k7ª<–<ôögâ˜Ëú0)šúÿ´ýÃwêœñ1ò %ä’p$0Ì7Ò=S&²j&Gßæyã³äù‰} NÈ%¦ ‚ïü…ùç²Èã¯q>ylÚjk3Ù¿yqƒç,(\¸ÙE Dí¨«|ï P=cŠ0­ ¿¡ËÒÅÉ'» Z¼K•°lï$P=³:WÀ‰J“åkšÉD~Å~¿®™ž<¿qæ›Ñgj§O1á¶ ­/¦L1QÖ&¦Ÿâýyh>÷OŽö ¼ß%D}nëqKa¡ê—vCnuÐv«t{ˆ|;idCq>â©0pž<†*9LÚmØð Uœ°\‘”¾žPZÅ¡`&~ȳóÞKéÏ€'´Œt¹W8T€ˆ"ˆÊÉÚ¥´w}cF9dÖ˜4v)¯¶¿lñ}Îί*Ç_bä EüYRp«™£²ül{§°\àZçJÇO˜¾%Eó CéG™sv”Ùcû8xÚH&¹,-š¼©;u¤ÕwPeÝúq‰”É¹ŠŠFç¤D2v3HÇ~ç‡ùÚO³&篕¸F¥4Ià 39óø& óÏWŠ]KyËÜþŒ­gËž«]#¼úÕkRBÓŽ¸ñAë!³gß cª˜Úü£µtØ.¹­ðL…µwºfw€zV¶ñ=[5UâÐ Õ,Ù½2ÖSߺü)qŒöÊòf÷÷Íf]áÆhêK5y)»€wi9–}ƒ>•Õ@ÈÅêS®ñç!úí¡ÌtuœÚ|ÔºvnQk­EÅ® ÏN“£9\ Å[ù4Ýe;t‰š‘™c"Ô?®R>·Vm‚­3 vû²×|Ÿ†«L  õlpJ;«ÏRóc[׸Ÿ1“ÌË[¤ÎÏT“›3…c °'öΔ¼ž’çß©dŸrE¾%þоý²ˆ‘ýÛ™Ç >ÿ%X›ô0j§Gá¹)¡¾lÍýCÛgõ„žƒ£‰iÞÆTvÆ£…u{‰Jûâ …L<ÓÆ<·k×®˜]E/žYõ¸vffÀi ¼æ: G» ¹2ñ Ä!ð# Pæ&äíÝGŸçn°ûbiýYç í#]γ‚à6@H ðÐò Á úà|ͬËSl›M¥VEÑoÑ÷ÂIí»ÏßöðVÞoAåBàéAÀ˜»MµrÚ0º4R9TX»°¸‚s–‚ÒñƒéË!ëgHç0^Y_Íõm × ¡ÏÞ£;Zê[<üÎ!‹³¯¤åtO^x ®œd³.žH!AMÊ¿²ÕZ¦ØâtÍ5Y·jIù~¯Á%¦Èß/¸9šýHQgù¾£60ÿ: óøc¢íñNæ[KöJ»˜‡ïEàf¨ @뇴´Ûh½ÓKK;&YðÜkúßJKp T2¦çÞ÷í‹ý©›¿±Ô5nÉë‘Ðöî[€Ðz¶evGªáÕÚ{o”¤IºÖPðq;C4}o.|äžúbß‚yö¡vò^Éê 3aá¢â†½E9}RH ™û쎄Ï&çÕ3†g¬=Ѝ#¤Žì~Ä™&‘ý®]â;¿= E¼¥´[Åì”ÈÓå¼ZÛW•E—ƒ&ÉÎKW:ó·µ¢„©g±¸BJ@‘þ¬ÓÅÚ»1±÷ÅRú3Fmæ íãt6Ðsp‘s¿ŸëQsp $€| (;ƒÈã{Ež)FfõûßgÕñ¾ó•óõ÷å#µšüÏXò£³œOÔ›ÉÉrwþ%E¹†Á´œöŠ7{/ë•2ô Š«„|öý…&¦ôôI \í½”ÓŒU;µ¿Ý€ÊÒfã}bðÏÏú¤?ÍžÂxñÕKËj„>|÷+BK\ÏLĘbÐ3ÆUkn߸÷p|R·TY¾¤ß‘++û´öt½¥Í¡ ùÍ´åÉ;ó§xvÉþ>‰iïžÒ"ëÙ Ÿéh`TÝ…Ôýçã–B¡d vºÕ…÷¸¾tº]±äoÿì,Ó÷Øâ¯Õo(|¨ÉÜ@ÉH¥mäÛ««Ÿ $E÷»ÊÄ,=™€ÌýROvUŒmRÛ­]Ròö2;%Ÿ‚±–ij™T|ó]ã±cG¾øâ‹óG+N6ž­oíšÙiHn˜YP”V¼<ȹ=˜ìq)íVA;%ñtƒP§‹+ض.­  ÀïߢÙôÅ.ü!0$òþŒe¢`{÷Œ¨ûb)ý™[iå í#]Î:ÜBH ½Ð-Û8ÇvÓFRå²'#;O5cúÃè¡ }/½þŽÄ¿ï»¤õžÛkô}þ•séÁ¿2ÈZAöLLc¾ ÒðÅßÏßúð_xg1š•ŽŸX}¦E;Õ· ÖÆ33iž»sU ˜VÎVÕ4ºDSNáܧZ}Ëq ølÍÝØvEé:º´[bŸ‰‹‹R¯›ýSKM“­#.e°>5^£g–Ó*ÜôeÍíÓÒ–íÙáxxö”‹ ^9^Í\q;’n0lX?#Ê'›ß.Tί LOÀ”OÞ,¸•¸¨ûôïuÁ‡¸(¿€úLóéLšaAgÒtX}Æ{èè˜sÊ…\r 3 (“Íûm"“öý¾íµ\3rª¿=Òùvç’7eACÉÑ_êÛèl‰¾)ƒcÆ¡ýRã‰þ|Ňko¾£¦°†YÌù Ö úÇ€œM›£®K }Ôæ ëßýâ(“” ®gȉ [ß´zm”¦åËrïÁ!Öú­ì0Ÿd¿‘ÕŸü×ä ÿYDÚ»¨zFõ¬b‡è¢£Õ´äNÿ¿M¹ÙÍ%C£è½ÏìÝÏ‹\‚¼e†ãp}ñv¶xéTë{?µ³3ÕtF¤­öãÖGø«Ù;—„=h¿+A%Šö2õK=Á9m©ÝÊigY½ÅN©ç#Nx‰¡àI—@{òÑ»-÷¿ð5;”™³,–C»ˆ¤´ÛPØ)ÏŽªÃ­³gϾxçw¶xþ»#û޿ŅåKJ‹@ˆY‘@wPª? ä_(Ú{}ï‹%ög='´Œt¹õ!$€€›@·¹Ì(ßr¯ýß•v:¹•A׌‹å]jÎ%Ðù*çS î &CþñÔôäDš¿îÓº©þÅ"X”#£ÒñãÒ—1y¼†ñ‡ù]5çùï¿ÿ~²ç¿ÿ3Tß—9vémk“˜ô’òÑ»/&fž©'Î!# ‰‹ë«Ê~f‰ÎH?஢·çl,óxÃ0ÄtÎä`Êqÿè[VÌ2gŽùmuAÁºªuëÖUͽᦪ¬¹·²/z&÷':šYeo°ÿ|À-h‹Ë?¿ütɯ»éÌf¹¨/w­«“ôR©_ᘠ; õÌjëèzñÓûÿlàž}SB¾>ÓÖÂØ­OLó ’ÐÞEÕ3#yzÅô~ìl¹¦oÌ+¦ç7¹f‘®›;¡õõcM Œ}ê”q±ûŸ™Ç4 ŸŸ;}J û] õÅ×÷¯NÖw½®‰ŽUòÍ aÜïJЉ¢=ƒ€ô~©gø!«2¶[Yíò-¬WØ)õ|ä -À~yV>äx÷§v_“|EúEI¿Pµ[Y픉§Jå5sH8FÝJ@ÁþL€Ÿ²¶wúøî‹áýYð„öƒ‘.' ¾`$€ ÏÜz „šFsc‹=6‘ÿ[DÆBå8ŠÂ¤€2ÉßÞ^p ìh=¶»aê£/Hr©R:~~ú¬f:Tb# ÿ'\¶zý­øŒÔ¶hXIËâ￞Y±­ì]ŸÏÞwå;V•Òù!a³ï,¤ÎL”’’âz(Î$ÿþ–ßD3˃¨,lG:ó ùãçŸÐƒ‹'ë™ñšú/Ú¶àÒr>tz஄zfi³ÿ–uÙÑ¡b’b“Ò<&«Ikïbê™1w©ê†$ý´|öüý ¾ã¡›riû¬ž°³¡\3®¯÷ƒ.ivöÀˆK3IB}ñRœ½YåüîPgjüHýŸw-‹ñÊ#eÚïJщ²=‚€´~©G¸ ¿rµ[ù-ó.±Ø)í|ä+è^ˆy¶z¼$Ô– BÙne³3Ä<ƒ ÂÃH ÇP´?è½lí] >®ûbh<¡ý`¤Ë ¬/˜ $ÐÛ ¸V±êvº(çZÏ*»ÙW@Û r Ń~~ÿ?K¢GÆÛô¤þ«¶?ȸ,™ÒñóÕç»n±¯ãKw•ÅÜNgÚ·¼ö.¯™A„Œ¬jj½Ò£3$¥Ð‡ÛtVÕ¡k}¿á’}½QË ôr†¼í#Ï&sþ—IÆŒèK—Ó²“sŸ—5rÏüà$¾þyçÊ%®îÛ 3G>hñò·{=‡@99¬g[ÿõ­yæˆëØ¥ý–HìrÐH~•ÈŽE’ºÿ|Þµ„˜´ö.®ž¥§Ä±/*¨ìÕöò=´rúý*Hñ§›®›6¤C­Uð8.ÍN‚"f^_Ü茬GÆ Œ¦¡hþâùó[™Ø±|Ú䨡SûîYu¢={åkìËîüâ·¤ô»âµ¡DO" ¥_êI~Èk‹íV^‹¸K‹|;¥œ¸™J -Ϩ΅j¢f/R™äX(Û­|v†–gDx ô8ÊögÂÜ—¯½ ÓÇu_ íσ'¼„Þo†‹œ°ƒ¹@½›€¬3ˆà7 &rEJ´ž E{ÕñVß7ÈùC•ã/±7áŸq>™>º?û\öxé3Ä Xæ)"~™3InΉË>ˆÐçc¸6ÊŸÎ[ï~ßùM!š™œ­^ºÇê-f"“~Ì.Qg¯<ÖÌõ]"ïüνŒå÷k®¢ËÕ13’Êž/ö)“K•Ä¿ÌTÒŸÍÔJ¾ý÷k"Êu•…ð¯)¤Ôkp=Ûó®ã'öûB„¤^5Ú9NégÊDr ýíyIÕéJçŒ#©í]t=s®lçPkÔìIÀÏFBb=V|éjtRíäÐ IàúÒéüƽÅ33E5M_™ ~±½tã]¶7Oš/0‡Ó'å Ü%Ž’¨öàS4W¿ë“ÅoWŠ>¿Â0A~Ð~I~KzT‰RÛ-Ÿ3r·‡È·x>â @ôPñ$$—˜†èèW%1Ÿþ¦YòrÂ!k·òÚ:žA‰‡#’€Üýg0HòëS¶? æŸìýRP…<÷ÅàþLFžîÿ‚ºÇÓÏCûÁH— Îs $€€ä¢J‹ó;*{‡½†‡§)'_µ"7ƒ÷áþÂçVé¯'ôÙ`+9øò¦‹®b r.yüœ€ø‘AÉô3·Ì¯™œ<^!hÙ*&·\ñËXô’úкÇÒæÍ_žz˜~¨žïUréclò«(~ÑñU“¦kÖ…¯Ì­«òµ#cmô›)6òÉî?³ßyqå1ò8aÌݦZ>ep2“¯á‹=çŸö˜æ#Ù¿f µÄùÃÑ¡N2ýÔŽ|t ­×ðzVBö~V[Ϩ6fõÛ‘gòëï7î½;>…WUjYX\᜽lï]ge_ÿhs~ì&…ÜU¸”VùþrHîÄ!t Gú«?ÓÖõ Kª¾j"d^_ÉÞ´7j\Šš~мŽì~$¯Þõ2ÀúÙ›/~gVÓnÃ@Æ/Ý•<3+H{RdÀÃJë h  BØ/)5ÜKi·¾¾‡²=Dºàó‘oîƒyšrÈêåyîKÉ,ò·ÒyýË7“÷Šž³0åÀv«°`ž<^crï#Êþ“‹f(õ)ÝŸÑEû%ø}1¬?“‹§Ðû?(Oh?ér\íÓ@HÀ›3hSéh/“lÛWÐoT«¶Ý®b 4º8MŒ^Eg;ØHkÓE燄ˆ–D«Õo-›QÇ,¹•±ü Íú)ÉÉ-ç,§NT4ûñ”µ²¶ÉŸ>B=vÜØø! ö¡àéwž:w—Çò5P¹@ôîcÀøå¿¬YO—ÂÎzòÍ ãf¯gùäŠß²ÝÆN¬¥K®1¿V²¿à¿«ÖpL3“KŸSó×sgJ×ÖÌ\[ê_qg1å“7·MKcŸ^72¿û¯÷+j££Æß¢;"‰ùÜi:ZT?ù¿z $e‘¢²eIéç+Ì_û®íä/U¶&³ž û»è £Ò˜÷“.RŽ:9º”IõÏ´h§zÛ¬at<€Ÿ¡Kþ DÖŽ|KZ¯Y9P=c$Mdkéöþ×%Øhk#g¿xïüþO¾·èhß{SæØ¾—ÆkôÌÒn;ï^½½s02ØÞ]þAêÙ’¢ƒ†Æhºü!µ²þ‡¶?ø¸éX¥ÅžvÕuÚŒ›G èÇÎ|k&o,˜TåZÆQª.{#ò/¤¾Ðï\|c*3Õìø+ ªïÝRîý2@æ òκ[Ó˜WÒ핚Çd4;ÙÉÓ<ã¸ß•_Ÿ§nÜV‚€ø~I «º]¤Ý’nhm'!󑤺ᙹš\71Mo·ÚëÎþ|±òÌÙöó­Ä1 }hÔ0cZ?×L„ÞXV3GðòÆÁ¼´Ûî°“ºî:ï¦ÐLïA&qÞƒ–ã=“€Òý§ÒúîÏnïÒî‹ý­ÄrœßÿIá ìI¤ËõÌŽ­BH ô¢¿AÔ7.6*š.å¿^‘†âã½VŠa7 ¤¥ú¬½$“èØºËGpù蛼8Zª,ïm8¿¢¸ÜëûP9¯ÂqÇ‹$~^ˆØ‘+~ÕuÍV2˜k!*ËÛWƒCŒYréãrÑd¨3WùF2µÀZµgå¬äôøKõgå¦Lô( öèëõ·y 1éËœjµ:&ýЏ1Ì?üÌR_§½R{×Ò~“|¤ú«ÓvÎâãõÆËÜá' G;Z¯Y+@õŒ‘,' §ljرïaǵI:CêèIæžÔ嘭þxÛ_ÝÛPì1S­ë pRÏžš{kôsOÙ³F%%h†õ?þëÒï Ž–_,ÿܺœ}á +7ø ˆ®/îï5ÛÝà78Äh:°†<ñÆÐš5Ó†'kÒ3ãönÊ1O_ê\SŽöÀå _O*}\6`Z((ß/… ÙËÝn(Þ"ÜNÅÏGžÍ¤¾¨—¢ŽRH¿,ŽùçYæëG¯n=¿dG™÷@¿g&ÑÛ€vÛvBxŠf‘B@éþSi}Šög ·wi÷Å€þŒVz9x ¾ÿ“ÂÚFº\¤t\è@H DDÎ ’b…‰ääe¨/”¤¯Öë5j[Kƒíøç­[ŠK½†¼µ@å¼KÁ½î" GüŒ$oUžvtŠU[V¸Ô\ìZ÷ˆÓ%9ôq$ÑiãõCúë¬Ö6G˹“‡÷>i}•ÇV£)‹Œ½éZõðÁ)Ú¸ØhMŸ(•ª¡ò„õßÿïIkIÀ‡õÝå_÷ñ0€€˜zí*^\=sI1MÙyªÛo•Dë›Êfvœ.«}Ma ¾×SZ¡mÓLòøô1QCÆjµ$ЍlõŽÓG[ÖìØ#ãC.…|éjàõ¥G˜FD<°è—B¸´Û·Sñó‘xž¦¬™d̈‘š!¿JÐÆêõêö–ZÛ±Ïß±î(. p_%½B‹m·Ýc§xžÒÉ` H ‡P°?S¶½K¿/ÛŸ±–ÄÓÙ7 {®Aïß$õóÐ~0Òåzh;E³@ÝL@Á¢nöÕ#$€@H $€@H $€@H °ü>ZŽ\@H $€@H $€@H $€"›Ev|Ñ;$€@H $€@H $€@H øÀ"?$˜€@H $€@H $€@H È&€D‘_ô $€@H $€@H $€@~p€È & $€@H $€@H $€@H ² àQdǽCH $€@H $€@H $€€ òC‚ H $€@H $€@H $€ˆl8@ÙñEï@H $€@H $€@H $àGˆü`@H $€@H $€@H $€"›Ev|Ñ;$€@H $€@H $€@H øÀ"?$˜€@H $€@H $€@H È&€D‘_ô $€@H $€@H $€@~p€È & $€@H $€@H $€@H ² h%»g4‘,c2-¦†”””ógÌ$ó¦×\{ù`]Ê€ø(†¨-­;šêÎZ??øŠeÇžr§0T޳0Lô# 4~Œ ‹)cÔW¢KÐ7J§ÓiT–&[å©ã惯¬µ¾Ê~¥ã'³>cf•àPÕ-u¨ð£çŸ †'•ÎÈ]¡š=ᚘVe³Øk++Ú¼¾¬½ø€ÑRBmg ÝxŒw03ãLòäãÙ}F¤Æêm6‹£­áœåË÷µm,,åî?½e’å›r¢®¹"1&†¦·ÓúÖÚt¾ãçï>k}ã 6¿æ+º½IV–ÑKc ÖŠÂݦBmg «"오ú"…Äö ¨?]?%øƒ¢!#³hƒzÂõW *­¹ž¨8j~mÙ“V‘§ÀÙ×­‹iGÝÑdê_µw)j§˜8H±Ó% Òg$™ôük eÔÐsk¹ëU—>±Ã…§(;åº~ Ó•_äu#&Ê?— ¡ú rL•$ hÝy yÿé‚ àâüWòy ÐŽÇ“1¤\º¯_’ö|¢âÀLFH qT4{¥8wnSΪUóǧö§I*ûöµcrªK܇=¶2É eO$]¥·Gy$zm6{³arîú6¯D•ó.÷¸ Ÿ‘üy×¶˜ÉCûöå.‰Iµ‘o_YQ}ß–2»;Òñ“Y_Ör°àæ´hêPõ;kÎM_¹¿Ãí›ÿ–pžŒ¬‰<¹{}ìØÁ±ñþ%r¦l{íÌeÅV®c~i!µÓO&øwa»¦Ümª óL©Ì ߟµúã–ÅÓkòäé̘‘·MýÇ9¦”8_AvßFÞ-¸©êO]Odí=s59¸n"Û^8Õø$rµ)Eìô±#Rw¥Ô)L$·‡ ý°~Jq eå'`Ì!/>;?áÊx¢÷/¼Žì_7µj ÷¥öLÞŽº§=ÈÖ¿mïÒ‚+ÕNáqf§K¬/{³êãÅ7¦2åXO¾~aÜìM]eÊù7\xжS†ë(gq×=N-¢ýƒ×)Õ•“h.X\tûëîóXˆûOHÑ\\‚‚ÿJ?AÚ‘`óx2†œK·ôKÒžOtGxƒÉH $ œAd"Ï­ÐgJJpéTYl¶V׎ß_‰êhsœ«ø¦ñð§Ÿš¿;~Â^ÓLHì`“jÖìì¸_§ô‰1µÿÞU'¬ÓW¾æñ*çg&x?#N‡Ôæzë±#G/|þí1ëÏ'«L GMž¡ÉþÝè¤~júêYLÉ?TVµ±ë)µÒñ“S_&yqafb4øb~VU€ây>½ïÙ~7$9 *KíÐ{j÷:a'Éב;ïŸÕod’Î0(c~ÒK‹NTß»¥ÜcÀÍ+ˆ;¡´“K¦¹ ˆ»[RôVÎfÕ&:8Ä V¶ÿôaÓS› [*È 2!kŽvƤá )7Ä>½{¥}ì«Z|˾uÕËÚ“† dÒ›*>l,,zµõÈB‡á¿þ­&ã†Kã½G"í½ÙJ,Tcc Ó¢4ôŸo›RÌÎ@ÆEÊ1 õŽ@Žö ¤?ÖO¸c();Ùñì:8dÓÛj¿i}ùoÏ7¾Kg<Œš0CsÇø¤d]¢fÊÒ]ÉÇKf×¼*»îž^ ØvÔ íA¶þEH{—/IvŠƒ;YQiú~?~¤ÎenЯc³¹(ûøj¸ð„Ø)ñúÅÅ^ì_ñ×=TÄ?±†yæ‡êƒÊyêVlÒþºû<âþ“eá š´ó¨AÌì’Qˆ‹âý’‘Hy>¡|º‚H $ Ñ3ˆòÖ¿5íæ«Ä©j•½ÎþíFŒH꯲TØ–Ý<·¦ë%t>½ï}X®¡ËÅ••aZÄe…ÅÏH²s.Wí)æYÆŠ¾áò9ÀÌN8Sº¶fæÚRç¨JzJÇOŒ¾Ÿ{[?wT|×(Ÿ_žËwkÖOœ¬²WÚ ÇdWúpÚ¸÷pü¸u¬Êþ“}ó˜;«= ¥>fá®HÜ=ÄEnf‘¢÷—'uªöãÖ{n{¬ÑsõÓ¢—ÔÛf Oa =¾sAõ½;<é[Ňè[ÅÌ€LÝ¡ÂÚ©K_ð â´$4íÝ©ŠÞо»!ñÊX›î‡WTÏq €ö8;9Á„I¢„úôP®ö ¬? eý@1QŒyÏ«‹æ\œãÖÒsœ×ƒlz=ñ½ž0vòþºñUð:(JMØe†µ#¥Ûƒ|ý‹°ö #ÜNX v"]Ÿ‰üíÝí‰#éyÕi…|¶ý÷gWx±I¬½áÂngp"<×/Á¹s€®{Bé—™P}P9.B›mÝ} mÿ)G¿$&nÎc v$Æ6ï¼Ðúâ]Šœ{òõK’žO(9 bYH $à& vo ÙÊ"ã2®Lb‡.œüøÂÚ1S«ŸÉuÌ÷/TηœÞ³_ábàx“œnÑ0“Dý”ŽŸ`}9[U9tpˆ™Ýóc¥™Î“âûAxšÈ]7eVe$¿¼µ½ÖwpˆIÏáÃ&¦Q9ÔƒÕ·çg0Ïö¹!µ“[%¦2 q‡“3åÍP3ƒC„4“Òg¼‡˜RÆôaúÙß•·ÌðZ²pÃ=cú2È^y YØàSLhÚ;SrFþ}fpˆÔÔ¶Æ58DÓ{šŒ­áú“R_`>ËÔ÷g¡«Ÿ0ÿQJ,ô„8¶Ï²þr´ÅoüçÀArÚ¬¦ÙÑ$ýò ‘רb-éIù¡íHÙö [ÿ"¸½Ãb·˜²\OdN%—ÑóªÊn·;ßÎÒ«Çf›Ì+Êàpá ·38¾ë—à’Ü9 ×=¡ôËJ¨>¨— ¡Mƒ·÷n=…¸ÿ”¥_8øy ÒŽD™æ•^_¼Š‘qG¾~IÚó eã #@, $€¼ˆ¼ù®!ß:X»}Á U·Ì~Œ]¾ ]§íz8éU²ˆK’b؇à*;±ó/Sç_ Tο¤Þ’šøãX2¨óÍÅÆêsA–Ds³V:~ÂôÍ$»î»~ S!¿ÿÇÖÚÃ*%ݶ;·¨!L–Ðþºí<úþ“ \B-¾ó°ÁMìi\xî« Jy>¡x ¢ @H ! r€¨œ¬]úGkq×7f„¨–'‡Ì“Æ.åÕöã—-¾Ï?ù¥¡rü%Fþ‘PÄ%·˜)1*Ë϶w Ë.i¡tü„é[R4ß0”ÎÖ`f\ÌÙQfíãÐF ;B™oÝu }ÿÉð†s E´øÎc°v$ÅžÄEî~ þ|Bù8H‰!Ê"$€@ ~“çØ”Ü5ª×ÊIº„Y>©þ«¶Õ¹[Û„” •R6æG #§f†1¦3KáÓçWœ ô½WÉJÇO¨>f=éÆhêK5y)» ÀÒr.O`]Ó†¬|Œ&’ʾAÍ<@KÔŒôy T);aÞ¡”¬èÛô®ºp±ú”kÜUÁ|{(3]§6µ®[ÔZkQ±U‹ŽIs N‰c¿G`©ù±­k<ƘIæåýöÎ>ŠêzüwwóØ,I€D\(¥ UžIyX~@U úW¢Ô "Mjy–ˆŠÐB¥ý¥„Š b1Á7A…ŸJDE1V„JbBB6!Ùl²»ÿ;³ÙgfvgÎÌN²Ë‰Ü™;÷Üsî÷Ü{gæÞ¹÷.Sçæ>ªÉΚÎ1àÛzH}gR\ºs½vDœ%Šx½så~}º“¾sW%”—­Ùl9^Gè=8’ä';g¢ud{þÅ1ƒh»¤1ž4ý1{³ {µbr¶gÐò)ÄNŒ#'òü;—˜#Ü{ôàŽ^DOò ßÓ¥§†Ç0›ü=€÷`9sÒÓ’½>Hh_œä¬ïŽ4;ýÊ`g§4»k€>ƒÜG耽…|óÉsùŽO¬µ¬­:2bBV¸,f ÏÙéëùÊôÜ üñæª*ÇkHw½ ü}L‘ö³›áöuÕ£n–?¨9h— ýײ þC9$€@w%¦¤ai´CsÝÜ’,f‹E© §{ÑïÜH͉½—ïxd+ï^FP9%óv-êÒgoS=1s0]2Š©-¨áÛWiÿÁôe‘ó†ö¥C2ä?¯l¬âÚH—$5æé–˜fxÆ´0RvÈ£ÓŸÑñÀ’ ‘ì&E =zÓ‰BvÊ’YLD2:ÆãØH ©®ÉmPYžy3-¯íä“] kËH:1Yé"ĦÑè☋¹ÕBÏȹ©ž}æÏÛ¹_ûÛa)qŽ$ƶì¶œ8ô÷ÚEù%Ž÷^“…Öw»˜=½¬V®Nßîb§·ÝAy.¡¼0_Œ.]VT 0+*‰$‘ûþº#îøÔœ:fÂð쯅3÷„Ô’½‹íaòð‘¯=ƒ–Oyò©ˆ%pè‰ÌödÝ«5÷í— I¡Ëû¸)IŒß™ ß[W$6AŒïA õARû˜'_}÷Ȭ÷‰d;½ì¾çi³ û þ –w‹˜™ÂÛÉ™š»›'$ht‰ÃFÅèIQ÷Ìcѹ ž°Óßó‹h– çžäϧýP}1ès«O{ºáEeïc µŸÝˆ³¿û¨u£üAM H»$¡âZõÔ(‡èΔAä¶_‘{'eÜÐŒ^ÿzöÑÞ­ rÝ™|°Û–±–üm!™y 0žÞ[7kE‘ç8†{þ”ö@ß{F§ÒËö oço)£ëú+&Ç¿»bdROòpßµ™žK9Í^³;쑽û¨Ì-®{åì Tþ1]Qè,3{9h$çÊ\åòñÂlÝZ^[Ë_oXÊv ¹RMt#­–¢OÒi™ÐÊ3­ùŽÅfÐÁ!uS¥ùsº\ié§5çëÌ-¶ˆ>š_Î\•¸;wº{“ìJÌq$¦¾;d˜_ºGÒŸæÞ”Ääâä‹+«;wúv;ÝmæcpyéÈtùv’»ýøOL™³ÄŽÐn*x8Фo"‹Ó’~µ{mÕ3’{]€ekÏ åÓe u]Ÿžj¯g¶]Êk¿ù¸©@Æ2æJù: T}ؾÈVßý¹R¢þ’ïN×'ú³«-¿h*î0ìÓU잃–Ø›´³Ü·‹ƒ,<å¶Óïó (ð¹Gîüù3ª*çÏžnz]©û˜bígwáì÷>¬GÝ%P;Ö.Aû'®Q?@ý‡rH nN@ÑD¥ùó-cóI¥ƒIZfŽjö¬éº‘ƒâz^7úwñÿ<Ø¿ùÞ;kðî€Ê9ôà¯Ì2V“Cy“S˜}êOüóò´GþÎ;û‹Ñ¬´ÿÄê3,Û­¾}@X,3Ãaç]kØk™‰y$·5;¿åÆ’ tÉ­ø¨ÉË “GÍ»ÐTm´´Ç$ Ð&Çj´Ìò:›?¯¾3ofŠûL"¥íô0Oº¬­ª™t)D¦¼Ü÷T³·aö¥É,ÝIÿÞ±°Ï`­:Üxæµú©žKƒÕ/Ýy¨å®a½ãÏ\”˜{¸¤’sÏ‘õÝežlÝ2‡Ýw¨ùÌ«õ”»Í€rÄêv:l Ñ_AåÅ•÷ò¢¥¶ç†¿Q³hl|‚nȽ½­SõTÓÓ§‹êÜá¤tIÀŽdkÏÀåf7JÉCÀ³C½eþˆ$ -[mUß6•[؆¤jcâGßÿá¾Ë3seÝîR³»*J×í‹lõêvB“ï¹l2œ.3Ëè>ìˆsÙÏCÅeíNI%1ô?ÏLuÉö O°Bž_ Ï=\êÀùãJL@TTN€I]E©ûX—·ŸJCtÖ£ ~°d»D¬âZôƒÒõ!$€”# ì "¯|•îÛa{dÞô«K^9[ÅtjÚnÕmÚ8ÛïšÙP9/õx !`È%oäMc.k"ž@IDATj?ýg­¿Á!.Jûϧ>Ã":Ãa°ö´·uê‡çÊšÀ°Ã$gú’úâÓ?ֵЯ§{& ˆÖëõJŽ%ÚËå5¬Ÿð»ê‚jfq0û[!ºÄNÙÁh#@»~ìS{t¤ÿpf¶Y:)\ðëx&컃Ûk:ÏÈ¡Ë=~uŠv&ßV›Ù£0mX¸¦éKó*ÏÁ!Öæ­ w˜Î±{õ&¿ššÖy‘„úžµùéðQtoµ©¼m ïþr]ogàœ×)ƒË‹§­E+f´½¡•騦3Õ,57/^ø»ù¹gLà™\홄ò ´Åä @ý¶†¢‹ W}Ø”=ëÿ³3Ӌ˯60ɇ§Žyö@~¬ª®©4] í‹\õ]¨3¡v M¿›ÄÓçŒVÓ‡WúWE޹Þ— ß°ûÉÒoØûÒRlž2Ú)ìù øÜ#cþYÕ•dT7ФÔ}Léö³« ¾ëQWçO‚þÀ¶KŒa€þ ¹Þ7%pAQ$€€£Z¾)•m¹ßúÞ˜cSé—pý†Ö“ýõÞ³ˆ¸’…Êq¥…aBd‘—Ÿš•O¿ø­ý´ vÆ£»ÌB¤øâ(í?.}©S'jâ; ¼eþó}?˜ïi­&"‚í4¿îŽõ Lk·1{g…5ݾjòµ‡=£Š<+#Î5m oöééDG_áË‹‹‰³Ü'ö&4E•µÞú_ª(mUWÙ)2[]^ë34©£ÃD11=U™Ï>®×ZÃU´Su~~©}²«1…ôè˜1ä0 ÍÒNgìØ›ø ü»žû£¹bòÅÅåMƒi{jãS˜²î–¦„úN—@¸‡Î@a’û|φZÇÒ7ÛÜ»ÔNwCBáXByñÎþÉsu­¿Ìk"£Õý葳}òŽ,òúг LÓ$>gÈiy÷NKúl_ä©ï"èí¡¡[D½cô ì2²íÊŒžûf–“×?«j5%)Ê–tKô"=1nwT2ˆåÁÂS.;E<¿@p22 çž‹uèó ÈN(O¨ÈÈ®Rî>¦xûÙUHY½âîc zäñžÓ¥™§\vÉn¸þ Fæšòƒ8¯al$€@ÐèÒDî´ªLí̹5:ž/"wŽc¨GRä“@:ùÇÛKâúÓNèæ3{ë¥9T)í¿NúÚL´ ÛBÌfÎ-fô÷ðábRì>8Dµ=pû/#™ýTæ+–SŒön`'cþ)L ü8©iÒ˜­ i+cͬØVOlÌegw8­É¡J¢3=˜sSÇl7s‹UÐ^Z¶v»ô[tBŠÛìMiõý÷˧j™å5u'Z¶p.-ç´œt¥.+BäHByñ ù´Ê¾ïPGhìPíŸ÷¬ìáGʉäöLZù”b:ÊJ# Ï^¡º5ÁF?‰°ãÏ?Tïý¡ÅæìÅ-Ç;f?ô>¾gº4u׈´BõÚ¾H®ï"ݵS¤š®žAF ÔÒ¹ô>›˜õöÛoǹÿËß±Bq<ùõtƒ´w½`á)“bž_ eôÜ#SþÛ Õ•lX×GTô>¦tûÙexÅßÇ@õ¨Ëò'M±í’·…‚ú'¨ÐµäoFxŽ5Ýb5"\C—ObfL˜¬bó‚Ê1ºðO8þöxäÐX‹–Ôlù#ïrQÂÓsÄTÚÞú¼÷+rØåø]±§´ÇtvÅWÕÜí1cÃ#¿édÌžty+¹ôYi;óÃkÿ.o­]c§·x.?2rªÒØ|³¾G„.!‰]*¦öè 5Þ{eŽÖ‡1Š„\$ow”Ó­o}eš3d»Dÿ‰zò³xv,’Ô~ó™s 1iõ=›LúyÏ^tÑPrñÔ‡Mþ>\î:;å÷V×§//.Û霋Çô¤þk<ñüå­?Nn_5s`bø =÷­ù¶5ó‰ýìÇ®øâ¤¶»Òʧx{QB>©I1lgµÊZe-ÛÇL#òþ+'Ež7Žš90ʦS÷ñ¾Œç(W`íK))%îûzg@þç˜ÞvuëóÌ4Õ€ŽYÃ*mðX-qûÀÃÓò£'Óg‡2 ûk O9ì÷üâIZøì¹GŽü ·‘–ðó'ô¹UŒu]WÉû˜Ô祮ä$F7ä>«Gb¬ê.q•i—üç–£‚ ];~ðOc $€‚€´¯Ê¼rÏö^z… ;5“"Ù¥Z+Ï6{QÊŸTŽ?Åkù ¯ÿô‹È¬‘½Ù~š³%Ï^á^ª BN„ÿÒçì¬éì "D“]F„>/%aá¼t¼bºNÅKØeÓV=¤¹….#ÆÌ)}¾¨Í•¢ÿ#%íôo͵C”ß”ë7ßýιù43@»vÅ>¯2a S~‘Ø“¡m­8ÓèÜ—hß»¶ ìþB„$ß2Ò>~ÔÉ%“IºO!­¤ò|…}Æ‘ÔúžžLz³³™šÉWïí÷²µ“„t•¦„B¸¼td>ÿÀñÌLQñ¤)ï‘ZKòï¶¼qÎt…¹œ:%§ï¦ q”DÕ¯¤9Û3©åÓKž*MÀ¾Õ™M­Q³}ê£Ã]·zWãÇñ â­G שí‹/—qÖw_>®ÊN^?ø°EÊ%>}Lj_ÿ¸îxË’[o­¼•ãßÞ3ÍõŒî🠋ž#Å*,<%Û)öùÊøÜ#9"í…êƒÊ‰4/àÑùêŸcwÐît“³ýô–Ÿ‹?IžëÐû°ñX!9Xv.‹”j—úx~yû'º™xÌÇ`$€@@òQ…™Ùç‚™ùÓn­æQhÈÊU­ÎNs½ñ{Å[ºsvD,¡}ÍäÈK›¯:.CåòøëŸ€ÿ‘~‰t毑œ;[.hÙ*&¶\þK[ö¢úè†ÇR,Z•|Œn\­gçø“KGÒ‚ƒñ¤©éy2¡ÏÞ¦Z5}@"£°þľËÏø›~!Ø2ψBíô”Â3>žBËuyÑ ¶“Fsv· ÓÖä† ¶Ð-«,䓽vûJ¸˜8^SÇÄÔgôÚ‘Óy™™ü÷Ä2›\«ªŽ6--*·Í¬ïN»ÍÔûŸÿÑ!&^ÙÙac¨ýÀË !™›„ORGRKö.Ωs| °qÞÓW¿6©©;udâŠ=‰þ:!õA°¤–OÁŠ0b ”~ñ½¥•M8‰Ü]°‚N{ÿe‘ìÉéRšô¯îbK±÷åkè\P=R¸>Hi_”tœv òƒŒ™ó¯Ï@~}c/vy¹Z:K×ÑN{›°õÈW&æ^lS÷S§gëyßÁ¼å¸Îƒ…§d;E?¿pÑ{?!¦¹ÅêƒÊ¹©î²Cÿõkñ>&„ Øiàû¬íä (‡>ÅÚ%hÿD×ûÁ ‘@H@æ…¡BxédÛÁ¼^âÚÂZ­*v @£é¡UÑÙÒl¼jßHˆnŒ©nP¿¹rv-³RÚª×5§'&¶7]2ÿðmyã™ïh«¨1ÚbS‡¨Ç;0NÃvœç©Kw»-_•žŸk-&й/i6Ò%†„Ðj;÷Æ•ñó6²ƒ|rùoåÞ¢g £K®1ÍäPÞo*×qL3“KŸ]ýÿŽ¥O.–¬¯ž³¾ÄÑïÝÆ“ RXº2!õr¹é‹3_·œû±Òb4iÉàq¿œ4,%Žù¾ú*å8©ƒ£»=|DZ“OÛµõ»'7¡åš•2ä’7¶ÍLa{M?˜Þ}ëý†òšHÛ°‰·kÇ I`÷0ž.¬›ºð9¯$ÙZ²½÷¨8 mc-ä§ï_>ôÉwæÚöŽM×óºX–Yêi÷ý³ª›X§ë»#w†e»ÕÛæ¦ãNüuÕ×õ«¼.Ý!x)/tß¡#ËoKf¦š}eIÕý[ÊeÍ–§‰5q&ýç4ÕFŸ 4ÿ{ë*ö#gð5p¨z$;:Ñí‹0 d¯ï@;•öƒX}™¿Á.z¬1~kz‹çyØNüUòÙÅœ¦þtÍèëMW•6#/Hx  3Øó‹°òÝ9ð¹GBþ:Û ª*'À$9£ˆ­ÝÝí>&wû åâà£Ü/° ì .ʵKRú'”õÐ}(†@~ˆœAä'5Ÿ— $+'M}C¿MŸØXµV«Q[šê-g?;Ò¶¥¨Äc`È3¨œg*xÖUäðŸžä¬É ™ÔVZ°ÂTÄ·ž›E9ôž•ÞAÆ¡¾i@RXLt¤&*\¥ª¯ø¶í½ÿ}²­XÆÎúÀç5À ˆ)×-v™Ñ{G´µµØš.k?vàɶW}Ö »¬!3GuçØ!á ´¼©,&Ûù²7[×øj{:•ý ;•¥Õ//P(‡0Ì!˜5&|Pßè°0NT–:ÛùSÇÌëvìóœ½&8AŒ¨,`i_‚ÅNe½×,<ƒÅN:é ô|¦tþ ú rðª¨$ÞÇÅíK¬ùJñÚ»&GÿúáÚ+7˜c$€B‡€‚D¡ s‚@H $€@H $€@H `& fãÑv$€@H $€@H $€@H ñp€H<3”@H $€@H $€@H $€@PÀ¢ v@H $€@H $€@H ñp€H<3”@H $€@H $€@H $€@PÀ¢ v@H $€@H $€@H ñp€H<3”@H $€@H $€@H $€@PÀ¢ v@H $€@H $€@H ñp€H<3”@H $€@H $€@H $€@PÀ¢ v@H $€@H $€@H ñp€H<3”@H $€@H $€@H $€@PÀ¢ v@H $€@H $€@H ñp€H<3”@H $€@H $€@H $€@PÀ¢ v@H $€@H $€@H ñÂÄ‹xIè $CŸH«Iqq™×E·S}:Y0k¢fÄ "’úĆGhˆÚÜ|µÝXûSÛgG^1ïØWfs‹í:„ʹRÀ#_„úIƒñÅô1êŸß40"¥OÏðˆˆÊl´TüpÖtä•õm¯r¹_iÿɬOŸžA†ÅÙTu§Kl‡Ëy@B¸t$•–½Z5oÒð}ua*‹ÙZSQÞzøµ•­E‡ytñ ²Ó)›NVmÎ ~c|4¬•êm6^nÿï×Ç[_Ëßeár£S¸ ˆ©GÜ) ÕÏ!Oþ!3jHr´Öb1ÛZê/™?ÿè`K~A wû鑪H¿‹.×z’‘¡÷Ðè뤹¼˜ØëTŽ#u¥üÀ¡º[I*/r$Ñ~Û3™Ûy 9EQ‰²–mRO}³.N§ ³2Ïå§MûW>Ù&ò(ÑŠn&­·P9hö¡ú rh'7¥yR+àõVOÒés‚ަQMŸÊøž«¹s*‹¼ð×Eq7ÇmçDjÉ¡ 3*×q?PvŽB!Ðz •ƒ¢ƒêƒÊ¡Ü÷w¥y©õ6óiÕÇËoKfüÙvîµ+ãçm¾ õ-·ðùEÒó<·%¾C¡v¦“Â6&ê#lßéó½·ø“â¾.[9ó{çÖèPÙò'ÐP¨>”ãnbï ÚžAå:[ ñ[ í‹ÝœP/g0è.)±ï9PžŒFqïï.¥)•?(—`‘“â”E]I€yÀ\.ÞÉÛùœvéŒ!}£:„Õ­µío¾ÞügbCHfÖ(åüï:ÐðÚ+EÆ}ÿ~³ñ£¯k›ú Ò«’¢Ã#"ûÞ•Ñ¿¡åå#߸ 0@å8À@'±þ»•ü~Åä„8S]Û×'>­ëí’+Åûÿݸï߇+¬½› NÑiU*Uß!£¢ãOïn¿¨´pBõ]GfÜ7I—fÓ¨¬mVs›Åj±XlÞÿ]¥ãÒ—ï48vÞÏ;„ûe+gBîïì‘;ŠlùhTÊq·ƒ±wŽmÏ r-€…©GÐö…Zêå ½C ðžåI5Š—”9*¬`þ \‚ENª+P t!Ñ3ˆr6¾>sÂ-}bÔ6µÊZkýêÛ•!Cz«Ìå–•L>xæàÑ^·&htbÓ€Êu!ï.W óŸžðÝ ÚWijŒð9ÀÌJ¹X²¾zÎú¦ØïŸÒþ£ï÷;ßÖÞ7,6Α î|Á¸¤­Ú«Ù8}@¢ÊZa-“YUàPÒñ›àXìø$u´ÊzÁúô˜»ª^õºî~*ÌN*A¿Ú”ãn…QçŠmÏ r\6@„Õ#hûêå BÜ.{Ïò¤:AïïÁ’?(—`‘ƒû%‘@w À|È-â/ƒŒO»9ºrîã+ëÇ̨zòÌ•V pF}©ô£ã×òIŽkÞ¿P9ït®s¨ÿÊ ïàïðä|“¦ÓÌ\•öŸ`}Y[UYtpˆ™Ýó}…©‘?.r÷„A̪ŒäÇ7·×x1á¹»>22•ʦ ¾37 Áv²éÞ1=™„¬‡qpˆ¡,åZ`: 9³ÕöåDIɳžƒCLŠ}{D1ýìßÍ·ÏöX²æwH¹vXàû7-÷A 38Dêþ¯eàÁ!:ÅžSNY?øÎY÷¹*¥¼Àr!“D´g¾ìÜÎûJ¯”@j\ Ûfµýxº©ÓøÏá#ä¼IM?`ˆ$©7¤‰|F ¨ÙMZo¡rÐÌ@õAåÐNîû»Ò<?H®·é3Èõôþ¯²Z­öQ ùù¸t“ŽEèó TN¤yÎèÒõ……‹ycv*u [9“éþ.Êx‘eËŸ]L¨>”ãnbçŒmÏ rœFˆ \`íK¨—3±¸]ñaï9PžŒ^Øû»ËbqGÊæÊ%XäÄ±ÇØH ûùò]M¾:z¤fû’[+oŸ÷ØUæÅ>5"ÌÙ9 Í^ÿ„l'¸ÊJ¬Í"ʉPbQã?¢Gúu|ØPuÉ5{Á=¥ý'Lß²çÁÑ}™ùÝË[kŽ5¨¼öò“)÷Ë\\ éd ˪‘œ~›çË¿â£äÛAFHÃ$ž7@vV“_&Øh:­ä“½yMî&â1„@€ê)“Ç\Ϯ䩩û¦åeï)šúÇÈïél4‡¨-aˆn‘¾ã,P~ç*×|ýê‘Çf¤¶6’CO/¯wŸåKŒðÊ)ëŸ6v£‹ÐòbH7ƒþs”Î<éíqh<ן~Ñž¹s kç9E1P)mö áÉCzdxë¤eëgì~•ôyÓ}OCu­·P9(=¨>¨ÚÉ}Wš'ë‰õvö¤ŸÛ‡4.Ÿ2ý_yk“f´Þ“u2Düü{ϘÈÊ@í+ä”§œÉwç¶*Oþ„ë‡êC9îvP8yŽ˜Ðö *Ça‚¸ ëOûêåLo÷ذ÷(O¨÷w÷,y+›?(—`‘ó@‹'H  ˆ *#ëWüO[ßNè Ydî˜v)¯–ï?oòîÿäO*ÇŸbè_ „ÿyë,P~ç.×ÜÖ»BéšÝ[îëÍØúSéΚu‚z_rJúÁ•“î}//·Ý³)jÛ¶m)Û ¤lËÖs|øA_NKw'0q6-œèØ~âî1í™oþÂÚyßiàÕ@(ÍßRE•Ø"ißûD´»¾ ¹Óc˜û•µ¢¬1_ÖgMw-ÝíZo¡rÐüCõAåÐNîû»Ò<í~Voõä¶áÉl]7þ÷XKÁ§?š˜T­Úá;Cýî_öü}Ïño_ !v¶·]â—)\žr&ßý]¦l9“‘'Îäü@õ¡w;è¸ÏÐö *çÓå¬GÜíK¨—3y£@Þs < Ôû;oö@ïqÐü…º?e¼‚‚…¸ó[Ž NÏ^§Ú_º8¡?í'u'[Öfom’.TNHÚG´ÜÝšÙú½˜Ù)Ÿ>¿ú’¯ýr)+í?¡ú˜u…gë#i^ªÈ‹™y>––sä„ÿ×Ç‚ám|ô’Ì~AÍt Åk†z}^)ÖÎI1ìzïæêï[œýòút² g™:7÷QMvÖtŽÎ`þ¼á ЯéeájÕŽqCÖfï¡ôTuŒÚtºmý}…Í5f[´ì„Âï¾Êµ/*Kw®×Žˆ³D1¯w®Ü/xÿ+¨œ/[Búš„ò²5û-Çë½GÂüdçL´`ö-ŽDÛ%ñ¤éٛݫ…°Ûžñ¥)´ç“Çp% çß©`{7#Ü{ôàŽ^DOò ßÓ¥§†Ç0›ü]â=XÉÜHÖ­·P9¨ÁP}P9´“ûþ®4O§$Ô[}¹9ŽÐ ,ä›Oö˜Ëw|b­eÓÕ‘²Â*x}~ÊA³"T_ʘ?ÄìÙ³§ÇžÂ]ºg×ü!lNºÏé¿âÍ‘¡œÉuo¼ ò'@‹+ TÊq·ƒ.²À#h{•šIÅä¬G¼íK¨—38~˜$”'Õˆ÷wX&|HAóêr>á%$,”44vh®›{C’Ål±¨Â"Uát/#úý©9±÷òlåÝË*§dÞ®E]úìmª'f¦KFÑ!•£5|Í*í?˜¾,²qÞоtH†üç•U\{ õ±O.e'Iyº%&B§ž1-Œ”òèôgt<°dB$»IQ‡BÏÞtñvš[-VBˆ¹©ž@ÈÛ¹_ûÛa)qŽFMöƒ[Nú{í¢üÇøU‡vüéRtlϱ@S]“Ûì¯,²<ófZ^ÛÉ'»Ö–‘tb²ÒE:‰M£ÑÅ1ÿ¹ýî³\û€Ä dÝÅìée­°Šéô…Êù0%ô/I(/ÌL ¥ËŠêfE%‘$rß_wÄŸšSÇL☽ñµp¦ãžZ²w±=L˜âÛ3‡^X;ïÆß®&pè‰ÌödÝ«5÷í— I¡Ëû¸Ð¾œªñ;SÁâ{늺Ú@%õCëmL„zeíä½ß†4O·ÌAëmÚ,ƒÆ¾ÒÀË»EÌLöíäLÍÝÍ4ºÄa£bô¤¨Î{†´›ZɇÐç¨Ô`!úÂØwgB"úé%Ø5 ÒßBFO™E~_s¶¹äix¦XšÐúÎŒ²ðû;”Ÿ(9Éù¥¨>h;êrÎr&ÒnÑ¡íTÎMµˆCùê‘Ïö%Ô˧ åE„Óàõ=ïï¢ì9ÔË ´ýTºœ õÆC"(;ƒÈm¿"÷Î鸡½þõ주ß>AåD€À¨" d¬%[`Hf:'Œ§÷ÖÍZQä9ŽážœÒþè{bïÂèTúÒÕ~á-ãü-e´£øç—K19þÝ#“zꔇû®Íô\ÊiöšÝaŒìÝGen±pÔˆ·Ó@ôI:-£¯òLckþc±tpHÝTiþœî'VZúiÍù:s‹-¢æ—3W%îÎî^51üëJt–™½4’se®rùxa¶n-¯­å¯7,e;[\F& º‘VK™ýî·\»ô{Ñ=’þ4÷¦$&'_\Y-¸Ó*ç¡ü<——VåÛIîöã?1eÎ;B»©àá(’¾‰,NK¦ÝPòÕîµUÏÈÐïäðŒøöÌ!Ií¼›4v»>=Õ^Ïl»Œ©ýæã¦˘+ån|­·P9( ¨>¨ÚÉ}Wš§— õv‚¡?;Ürñ‹¦âŽô>ójýÃån3 :Çv…@å\)à‘AåÅ¿¼h©í¹áoÔ,Ÿ roïcëT=Õôƒoã颺w¸)]°#X{æÒ%¶wIâQw `ÈÙ¡Þ2D’†–­¶ªo›Ê-lCRµ1ñ£ïÿpßÀÆå™¹×ÌD\YoI@åœ ˆ<€êƒÊ‰4Ϫ*çT,òª*'ÒŠî9 6•·m¸¿“TÎSû5z./ž¼ŠVÌh{ÿB+;ÓQMgªYj>n^¼ð9vSqϘÀ3p{ƯÏg;Ï/†Wº‚mWÖ°ƒCt‘᪛²gý?cvfZcqùÕÆœðÔñ1ÏÈí ÓºD'´ÞBå ™„êƒÊ¡°÷w¥y:¬Ö[}Îh5}ȦUä˜ûGeÈ7ì¾w„ô6Á¾Ä¤C—¿Ðç¨Ôf9ô•“'½ÇüЮ/ØÀ„èȤ¬•ÑP“X9h9 Àý]R>ø„¡ùãKÏ_8TÊu"kÏé,.Øž¨œ8ëè(”Âý¡^ÎÄò—ÊS®÷w©öû“‡æ/ÔåüqÃëH 8ú »ÔÔ²-÷[ßs¬q*ý¬ßðñÑz²¿Þ{—P9®´0L,òòS³ã鿵ŸÔÎxt—Yˆ_¥ýÇ¥/uêDM|‡·Ì¾ïó=­ÕDD°ýó×ݱ>áƒií6fאּæ¯ÛWM~ ö°3*„ ý pá\ÓúÆœžžAtôÕ¸¼¸˜8Ë}boAÓWYë­ÿ¥ŠÒVÁíl³´Ó™öª~áƒ×s•]L¾¸¸¼iÐ mOm| “gûDgñ K\¬#ÌФŽÅÄôTe>ûx¸^k WÑNÕùù¥n>J!=:fŠ9ì”îwH¹îÐN—ˆ»‡Î@aŠÑç{6Ô þˆ*çÈôµþ+¡¼x£;y®®õ7’Ù`Md´º=r¶OÞ‘Ež§ÉÒîr+åjçå²›[#†Š# 'ϬžÕ«7³ ‰ñKÓêY¹F‡6Ü7©Ù\ð¶íÎ!±½ÕIã£=»À4Mâs†8Ûº(6´ÞBå Ù„êƒÊ¡¼îïJód­€×Û;FßÀ.sÜ~¡Ì蹿g9yý³ªÆQS’¢lI·D/ÒãvGcõ½Súü•s*y ¯¾ò‚‡mïNúÈÈ¬Š I¼1*&×»ŠHÓ€å,÷w‘9ð˜?߉ú¸ Õ‡rP½ÚA¨ý_‚¶gP9ÿyǧ‰h_B½œyô9”'µKúû{ 3GÓ‡æ/Ôå@*@  té "÷ÌU7˜Ú™skt<ÿ^DîÇP9ޤ0È'tò·—Äõ§ÐÍgöÖKr¨RÚôµ™h¶…˜Íœ[þ8Ìôñ+ËáÃŤØ}pˆj{àö_F2ËD¨ÌW,§íì4·Xí©dkW±K€E'¤øÅǘ„ (?Njš4fFSBÚÊØ‡F3+¶Õ“sÙÙN 2G¨’:6.6uÌv“æwiåú÷˧j™å5u'Z¶^Zލœ“õ~ ¡¼x Ë|Zeßw¨#4v¨öÏ{Vöðˆ#åDB{&Dm§v^ˆÆQ„€>{…êÖý$ÂBŽ?ÿP½wçåæìÅ-Ç;fô>¾'íà ý?h½…ÊA‰BõAåÐN;ïû»Ò<©ðz›AF ÔÒo†éó@bzÔÛo¿çþ/o||ÇJÊñä×Ó 2½“BŸ_ rv7‰ÿ`ô5³…‰·¦“´œøþÞÉNh4JëƒÚêrP?P9h{•™*¹‰l_°¼€ÜÄ+åI”öþÎk‘¼ ù u9y)cjH Kt‹DLÎ#Â5tù$fÆ„Éêg1/&šó*çLxàoGµhIÝÉ–?ŠX.Ê_âJûÏ[Ÿ÷>Þö®ØSÚãN:«æ‡ƒ«jîö˜±a.édÌžty+¹ôYi;ãÇkÿ.1v~ë+Óœ!£Ø¥Êø—ÊÓ“ŸÅ³cR¤ö›Ïä[JÊÛP<I Œœª46߬ï¡KHb—`©=úB÷Q™£õaÌ€"ý¤‡¼ÝQN·Jð»´rM&ý¼g/ºh(¹xêÃ&áCåD" éèðòâÂB¿8\<¦o$õ_ã‰ç/oýqrûª™ÃÍè¹oÍ·­™Oìg?æpÅ$µÝõ§Ñ»÷¯+G 5)†íVY«¬eû˜iDÞå¤èÃóÆQ3FÙÔaê>Þ—Cò^o¡÷F´“áÆu¿ mž„€ëmfšj@Çìf•¶Gx¬–ð~€4pôdúŒSÖcé’‚>¿@å\šÅJ_xÇÂÄ65Q³âÌr‹ «ï¥¤”¸ï7ì– {èï½Ê;~àÎaùƒÛ×mçC]ê h{•ƒØ)õ9Y|ûúå⸠œ§”÷w¸½b%áùÃvI,kŒ”% Ó×Zv£á¢rcR$»AkåÙfï/Jù‘@åøS¼–¯ðúO¿ˆÌÙ›í§9[òìî%Ê äDø/}ÉΚÎ"B4ÙeDèóRÎA'@\ÒV=¤¹….#ÆÌ)}¾¨ÍËŸ§œvî{×vÝ_ˆä[FÚÇ:¥2™ô§ûÅÒJ*ÏWšqÔ) ` p”~2Êõ›ï~çÜÔ™ ]»bŸW™0)¿HìÉ(±VœitîKõ»ÔržLz³³™šÉWïí÷²•Êñ$)ʇ@å8,P^8¤:qÖ#`û‚å¥^A|ï9PžúþÎe­ åLîüA¹‹—0 ÉDfffæO»µš'熬\Õêì4׿W¼¥;×hGÄÚWÐL޼´ùªã2TÎ!¿þ ñé—H÷@aþɹ³å‚äò_Ú²ÕG7<–²`Ѫäctãj=O¶äÒÇ“|ç` &!=O&ôÙÛT«¦HdâÔŸØwùáÓ/ž¿bràxMs1RŸÑkGNçe<òÜËl"¬ª:Ú´´¨œã«nž¤1˜% ¨y±Z®Ë‹^°4jxguM[“64ÚB·¬²OöþÙíë[ ß%”k6‹fj‰ýOøè•ëÐÅü@üà&‡ðòB¿Œß| ||’šnl]Kö.Ωs| °qÞÓW¿6©©;udâŠ=‰þ:ñéÅÛù(Ý'¥_|oieÍI"w¬ %xÿe‘ìÉéRšô¯îb‹ÔNïÔ»ë9´ÞBå  ú rh'÷ý]iž°zk ¿¾±;XQKg;î'Þ>Ýzä+óÌ`S÷S§gëyß½å8Ï¡Ï/P9N#Bõ²ÈÚU9îWˆ ò’½íË 7’÷ Ÿ³ §ÑJ—3N#(Wþý<µ3Ôå EÖž•ó¶Shyñ–|l_°¼&,è}Ê“àû»—ùRÊ™÷8hþB]ÎË xŠ‚Žó ^!Üêt²í`^¯aQma­V;P ‰ˆÑôЪèl i6^µo$DÂH¤ºAýæÊÙµÌRHi«^×lœž˜ØÞtÉü÷åg¾ÿ¡­¢Æh‹M¢7~\ìÀ8 ÛIpþ§.Ýí¶| TNx~®µ˜@ÿ徤ÙH—B«íÜWÆÏÛÈòÉå¿•{?ŠžA7\µëo&‡ò~S¹Žcš™\úÜóéX ábÉúê9ëKýÞl”4 B2HaéÊ„ÔËå¦/Î|ÝrîÇJ‹Ñ¤%ƒÇý6rÒ°”8æû¤«”㤎îöðû²Ó.c [K¶÷g¡uÍB~:ñþåCŸ|gŽ uplú¸ž×Åj´Ì’?»ïŸU%ß&Á|Ö{8¬yçZh¹få ¹äm3SØ^Sã¦wßz¿¡¼&Ò6lâíÚqCØ5ü§ ë¦.|Îk I¼ßáåÚžCòÝêmsÓñFþºêÍ‚9/'¸l ú0Hy¡ûY~[23Åðì+KªîßRæù1@újòΆi)LoŸµâpã˜Ì¼F;'ùýà«= D;ôþ² <^xD7[I—¡¤w£ºÿ´|ôáÇÆ3fkÊ-£ÂÒ& ëÓ‹ØH^_2¥Ò{9Í Ëª8s!õ–Ñ•g+6TTÎ¥YÜTTNœu®ØP}P9—fQG¢ëmúZòþ†É):¿ÏsÈË,Otìqú ËXCŸ_ r¢ºEë£LP¦Zk›µö§ÿ^­¸øSëåfbë“:(|°>¥—ãKïÿ¼¾²z>DzØn&?”¹œùº¿ 7JƘ2äO‘çy¨¡., ¢Û³=P9w3E•wA·c_õܾ0écyq£ì8”ðžåIÄ¿¿;¬uü /g]?(—`‘s8‘@½QϘèðHºüUçuª4DKW—vûëÁ~7FHSÕOÖV’H"£ûFÜ0²oŸFŽu‹E¿kª4¿_¸éòê¢2™ P9ÄñăÄ ˆ8‘ËUµmd€}[•ù¢å$Çàc–\ú¸²è12ÄATý¨O­V÷H½1f óÏC¶•œ?úJÍÝ+vˆš|áH‚ßÎ2²túæú±HˆÐ%œÒgÁÈ)1ÚIw¶å¹e÷×É2cÉ™lÈÈQ„–kbY>™‘×V¹ï‰¹‰©±×i'ÏÍNšìF·æôkuwtb"(ï÷舰Ž/€ùK£›éÎCˆœ~pJ¢Ë‹kß!㙽õ‡6‡×‘¿¼>¨zÝÌ›5©é16g™f­°/(?p• @¶ó¡Tºs^žºï¡æÈOY3†%ÄiâGMœIÿ9 ¶ÑgÂÍÿÞºŠýÀÈ|-ˆ®·P rP¦P}P9´“ûþ®0O±õ6ó·#ØÅ™5ÆoMoñ<·Û]û*ùìbNSºßgôõ¿Œ¦«˜^33EíÆRO?ÐLR‡«û¤^ÃüsOÃfªnû¿W·^~|G©çî‘ĨœqÝßÅš&K|ò§Èó<ÔÎP—±í™C TÎ!ÏüŠ*/î‚Dz×#,/” ¿ç@yÊðþ.¦œ)ž?(—`‘ã,Eˆ‚ƒ€ÈDR2e Y9iêú%húÄÆªµZÚÒTo9ûÙ‘¶-E%CžZ rž©àYWÃz’³&'ldR[XiÁ Sß:låÐxVzC7v„ú¦Ia1Ñ‘š¨p•ª¾âÛ¶÷þ÷ɶâÒ2sTwŽž@õª,&Ûù²7[×øªƒçqmjS®„ì2£öŽhkk±5]:×~ìÀ“m¯ú¬vYô»ƒáµô //Ý›Rp´óÝ›a7°Î0‡üaÖ˜ðA}£ÃÂèÞõ*Kíü©cæu;öÉ×¹Ù ²)Þh½…ʉ·Ð.Õ•C;¹ (Ìë-· 5dÌ!c† Õ üY\X´V«nmª±œùì¶E¥>Þ§¥¨p9“j®hy)ù³Ë {OuÕ‡r‚²üBÛ3¨k4¤¼È’[‰„z9B–¨PžtR¸ßFÉrÍ_¨ËÉRx0$ (ˆÍ*CH $€@H $€@H $€à! æ Ç`$€@H $€@H $€@H %€D!êXÌ@H $€@H $€@H $€øà GH $€@H $€@H $€@ˆÀ¢u,f $€@H $€@H $€@|p€ˆ †#$€@H $€@H $€@H D àQˆ:³…@H $€@H $€@H >8@ÄGÑ@H $€@H $€@H $¢p€(D‹ÙBH $€@H $€@H $€ â#ƒáH $€@H $€@H $€Q8@¢ŽÅl!$€@H $€@H $€@H€ñ‘Áp$€@H $€@H $€@H „( QÇb¶@H $€@H $€@H $ÀGˆøÈ`8@H $€@H $€@H $€B”@˜ä|é $CŸH“©&ÅÅeüÉéÓÉ‚Y5#n‘Ô'6;òŠyǾ2§0TŽ31 ìD@¨ÿAÆÓǨ~ÓÀˆ”>=Ã#""4*³ÑRñÃYÓ‘WÖ·½Êå~¥ý'³>}zgSÕ.±.ïDÏÎR®;’JË^­š7ix¾ºˆ0•Ål­©(o=üÚÊ֢ú˜ Yò—NVmÎ ~c|4ÉVª·Ùx¹ý¿_o}-—…Ë<Ö`°ƒ€˜zäüêç'ÿ5$9Zk±˜m-õ—ÌŸt°%¿ „»ýôÐ!Òï¢ë»žddè=4ú:i./&Î:*×ôù2,”®I*/@H¬~Û]Ó r<Éa°²–mRO}³.N§ ³2Ïå§MûW>ÙÆw TÀ¤®W!µÞJ¬b¤e-SÍžø+mjߘH ±–ú:ó¹ïN´¾ûÊ‹³wOTjþÜÓr,VŸ“ŸŸÄ›ËI1gýÈ ¼,®=yhg4±<‰@åòb¡ú rbísćêƒÊ9ôŠý«¯›Ô#±Ù$N»ýôkˆNØ·€àú.ÚÀþßæú¾*úýÁ-9±ùsˆ†ºœ#Ÿ‚~»ðý(Ôý tþù›#ÔNޤ)­Ïa”ÀöÚ‘A˜Þj}þ"ãu$¢T4_м²þ¢Z³hbroš€Êú½uý˜¬ªbÎÄÒɮҿ$Ü¢µ†s^¦Æ3oÔOÍÞØây*ç™ žqî?=ùóžm=¦êÙ“;%&ÔB¾zeuÕƒ[J­®8JûOf}›È‘¼ )‘4CUכּ4ë‰Cí®¼1GRôÈ“{7F뙦ýìbéöš9+‹Ú<¯IÑgO)-g›úæ’b<î8³wóÆVþéšî™ãã3Px=ò™Œß‹†ìmªM É:Ž˜mU7-Ÿõ˜‘opOœßõ=}-9²a2[_8LìäªSÀr Ö×É” R^¤‘\ü¶»<ÖAåx’ÃàÐg‘þº(îæX¢í¬©–Ú0£r÷eçè!"µÞJ®bX¦?Fv/¿³÷à8M—˜úÂÆÑwmlr¿&5îi 9†èK[õªfãô~~ûÂ+ÞnüU柅Ø!:ŽˆöLÜý]´%žLP9å"N ú r"Lóˆ Õ•óP.⢯[Ô#yd¢*Ú~ºÛ&°¾‹÷ðùÚÝ6QÇÀ÷‡âóg u9Q.`"wÑûQ¨ûAéü‰ö{‡ÔÎ`Ñç°Sx{N ?ؘ¨°i²|¿®¾ ¾ŽBŸp‘äí\­Í–ç@¤2[,ÍŽ“N¿:ÞÞb»TþeñO?5}}ö[k5}¥Š`PÍ—󋤨èØ!3zXómÛ¬'ö»uÂCå:€ÄúOOn¢ƒCjS]Û™S§¯|öÕ™¶ÿž«´1>6u¶&ó·#z©5êŸÏýŸ¤Ü£¥•ùÎ^j¥ý'§¾tòÂÒôøH:ðÅüµ·©8fh@õéÉ3ÿÚëÖ›Ne®¶}}_Í¡£ßZIâ(r×Cs{ MˆÐõK[”ðâ²o«îßRæ6àÕgwþ´5/…­ž2°/sf,ÿ¨¡ ðÕæS é§Hnúů5i·^ë5"eÄÿóŽN@IDAT[x’œõ´j3b+[/|d|ê邦rÒLʘ6{ÊM}uI·F?³÷ 븻ÖxtÆ1I‹÷;°¾7¶3ÕÇØèë©QÌš«NË5XŸ/ëBäš„ò' G}ÒîrY•ãJ ÃOÀ@vüu ²h-5_6¿ôçÞ¥3t‡Mš­ÎúÝĄĈxÍô{ÏÏ«~5ðÆt ’ê­õOŠŒµä¼É)öMÉ—ï¼~é`qY{5‰!†WÝ–6I7Ì;9IùóNLÀ9T_›ã5ÄB**¯´Û:=ÿ©ÂÂT­?üh` ŠðöLüý`ŽCÊ*çÐ+öª*'Ö>G|¨>¨œC¯Ø_¨¾.¯Gb2ªpûéašÀúòðùÚÃ>1'À÷F(×€œüޏ]ñ~„þã~‡rqøRìo¨ëcyˆo¯Û­*ÚŸfÓ¨¬mÖVŽg:&YM„FÓÔÜÒéyO¬ 0>v¢gål|!|æ„[úĨmj•µÖúÕ7¶+C†$ôV™Ë-+'ÜW ™|ðÌÁ£´³\C;ËÅ¥• v§I±æ?=É̺Aµ¯ˆg+ú¥Ê;tæÓQp±d}õœõ%öQ?†*í?1ú~¿ómí}Ãb bòåÈ6Ÿ¾´U{éשUÖ kÁ˜Ìª‡@Çoþc±ã“ÔÑ*ëëÓcîªÚAƧM6óiÕÑå·%3óµG jf¬Ø…cA^ÜÅœÂê‘ îq3è—/«Ø/_T57ß{Çc î«–½¨Þ6÷¦$Fâìî%U÷ïpTù=0õÝž#ú"üî¦ø›£-ÿyeIÕ|P÷<»Ž}–kW4ž#ñúx ¢` å˜K¹ê´Ý…ʳ‹b èsžWÎÿys[Oïq…èóÄûôyBGZÉ&VþÑã¢DÅÝZ^oåªÂñ¸¾JW™ÿk)xðwÕî7%΄àùãLÎo \_ZîKš3ÒDäõû¦TæûÍ›_cDEÜžîï¢Lq‹ å •sS-êª*'Ê8·ÈP}P97Õ¢áúºº ͦòí§§eÂê;ÜžÚ<Ϥ=_{¦e?ƒ¾?@óêr\Œå “óý(Ôý tþ >†Ú,úµ×®gÖ󯯬¾;¿TP?%” Ê!`' — 2>íæfpèʹ¯¬3£êÉ3WZÅ¥Ñ9öK¥?¡\Ë'9®yÿBå¼Ó¹vΡþ+'¼ƒC ¼ÃoóM³XŽJûO°¾¬­ª,:8ÄÌîù¾Â^>„[ŸÜ=a³*#ùñÍí5ÞƒCLxL¥²©¨ïÌMó;–‘aþ¸õÙ¯mºwLO&!kÅáF²3ÿZ` 9³ÕöiѤäYÏÁ!&ž=¢˜~öïæÛg{,Yó{`ê;c`ZîƒfpˆÔý_Ë:ƒCŒŒ¯rÍ\÷õÑç+½`¸&¥¼Àò'S}€¶»P9XfQJ©q1l›Õöãé¦Nã?‡ó&5ý€!’¤Þ&òUãº( x½•©þ‰È÷ìËÂíKF[ȧÏÿî’ÿÁ!ºt“„û˜ÓœQåѧ!ýœI*s ¢=ƒÝßaÙ€ò„ÊÁ¬„—3´“›¸<\º qg‡#TùöÓÃõ]?xhfO¤<_wN ½?@óêrÜŒå •óý(Ôý tþ †Ú,ú‘Þ^‡…‹éi†’A9$ÜD¾|W“¯Ž©Ù¾äÖÊÛç=v•y±OsvNBQôOèÁv‚ÓÉVþeê:§•ëœÒµÿý8Òéô¥ U—Ü–DóÍUiÿ Ó7‡ìypt_¦@~÷òÖšc *ÇZ#¾3Ãq•SŸ! dY5’Óoó|ÁP|”\`;Èéo˜$øNÆ©±Ë°šü’.gG'#ŸìÍkâ0ƒDP=â±aò˜ëÙý4uß´¼ì=ESÿù=æµ% Ñ-ÒwœÊïÀúNô‹Èc_ezzy½Ð²y˵#Ó|¿@}|ÉK8´¼Ò Ä` ÿå‡3Ãz{Ïõ'G}€¶»P9—õxÔÚì+8„'é‘á­ž–­Ÿ±ûU6ÒçM÷= ½#†Ö9´Þ"GýÃ2ƒÜ1ƾ¼´µêXÓÒ""h9xþÄØæŠ«´>—f)G"Ú³@Ýßẏò„Êñ˜á7ª*ç× žP}P93ü+­Ï¯A²GPºýtÏ€ðú(?€Ÿ¯Ý³!æ˜çýš¿P—ƒVT\™ßBÝJçO”/Ý"CítKBÔ¡Òú”Þ…##! r€¨Œ¬_ñ?mEÎ=fäàEæŽIa—òjùþó&ïþO~ P9þCÿJ üGÈãyÓtÌ”f©‘w ÊuÐņ~‡zI˜¾Ç éÑM옙6ów”Z££l"ëˆÃ>>}ìþ+Ì.,áöÅûn¿ÍÄ1*¥I¬›ãv…ÿO!óæÝÁ¨R›¾o+Ù'¬3‡_^!$0õˆ›l:¹>%’$¬ýáT³÷ Ê†³câ©à¥òòûT·x2n®}ÖY ü«ïtÏ‘-÷õflý©tgÍ:Á =¹ææå…êsÈë/¼¼ÜvϦ¨mÛ¶¥l+<’²-[ÏñáíÌ(ÝÀÄÙ´p¢Û¦ôÒë´Ý…Ê«wCÅîÒü÷-U43¶ˆAšÇ÷>힯 ¹Óc˜û•µ¢¬ÑµŸ¡{ŒP<†×[eïG”}fšj»Ñ¯…œÞ¿Kà k)ùƒø[i};ˈiÏuïlå •ã¶Â(TTοEÜ1 ú rÜVøUZŸ‹ä!ýùj“ðú(?@Ÿ¯¡9æë/€æ/Ôåàœ}KÊý~ê~P:¾½Çj'о¯(­±Fz{ÝÞvÉw¶ð*@Øù-¹éÙëTûK'ôg^6ëN¶¬ÍÞÚ"$e¨œ´1Ž8i¹»5³õ=z1³S>}~õ%!ûå(í?¡ú˜}fë#i^ªÈ‹™y;>:óò§Ï±ðiŸ½$³_P3hñš¡éu¸‡øÓ7 )†Ýe®þ¾ÅÙ/¯O' r–©ssÕdgMçè v×€Ç]F€~Mï( W«~pŒ²æ0{¥§ªcÔ¦Ómëï+l®1«Ø¢åX“0~‡ÔwÆØ¥;×kGÄY¢˜×;Wî´ÿ•¿ríË'}¾Ò škÊËÖì?¶¯#ôI ò“3Ñ:2¿aßâ˜A´]ÒOšþ˜½YнZ7h» •bÆ 4òü;ì[Zä€ÛcÜÑ+ƒèI^á{ºôÔðæc“¿K¸ÚzÙÓ—Poe·ÅO‚Óoꯎdã´’ÊÊra)?¥õùa&䲨ö,÷w^;¡<¡r¼†ø¹Õ•ócïe¨>¨¯!~.(­Ï9¡tYT}€¤<_CýÀûþÍ_¨ËAAû‘“ýý(Ôý tþüø÷2ÔNÞý\PZŸs„^Nó‡˜={öôØS¸K÷ìš?„ÍI÷¹l†Ðd1)aJæ&vh®›{C’Ål±¨Â"Uát/#ú(©9±÷òlåÝË*§dÞ®E]úìmª'ff—·ª:ZP³´ˆ»³@iÿÁôe‘ó†ö¥C2ä?¯l¬*áPQúÊN’ótKL„N35§Ž™0<{ãkáLÇ=!µdïb{˜<Ü í.TN«1é=‘Ùž¬{µæþ±ý4 #ty²3%‰ñ;SÁâ{늤«ž$Õ[e³yËÍñZF£Ê\e9ëüâÄ JçOF}½MW¥ëT̽^Õ¤¸X®åÄ·grßß½2çy åa>¿x ð íä}HÐ3”'}þôLˆeê‘·Öîz.²¾Ë๞¯¡D}¾?@óm_‚EŽ£Aù;äò~„þãnw¡å êw¨‚EŸ£ÃØ>gB"úé%ؤ¿…Œž2‹ü¾ælsÉ?þÒðL±÷:-@e(†‚œ€¢DÄm¿"÷Î鸡½þõ¬ªþÏ>k欚P¹ wN·6?c-ùÛC2óòg<½·nÖŠ"ïq —ùJû ï‰½ £SéÍ£ýÂ[Æù[ÊhG»ˆ?QúŠÉñï ‰í:åá¾k¿üÏOÚçX›½fwØ#{÷Q™[,íQ÷zâ´H”>Ñ'éh‡Ž…TžilÍ?p,v|’:ÚÖTiþü‹ò+WÚ¢ÈuÃGDŒëõË™«wÓ^çã ‘u—ÐYfö7íFr®ÌU./ÌÖ  åµµüõï= ’ÝH«¥¡MV¿‹©ïîÐèIš{S“‹“/®¬öÙé+ª\»+q;£ÏM,dÁå…ØÛïòí$w»þ§J&±#´› ŽúÍ¿´,NK¦ÓòÕîµUÏpÞ¤a¡í.Tf%JŠÀ®OOµÏ¼ígÖøŽ7FOí77ÈXÆe»¬éJ­·²#,1•µÝzYXTB”Οlútä¶«’oãÌçBŠïªdöb•ú'¾=Sø¹ʳ‘´Áž_:îGbÁ¢<σ ó$Þú”©Gb‹KWÅ]ß¡åÚÝr<_Cù{€æÚ¾‹œ»ÿ ìÝåõ~„þãnw¡å êw¨‚EŸ{Y}ÜHÊ¿üº¡MkV›LíÖð˜Þš„ø¤Èä8»\º.á&Ýœ¼BÝ/±¾:k=~(-/ „EˆJóç[Ææ“JÅ´ÌÕìYÓu#Åõ¼nôïâÿy°ó½w<ÖàÝ7•sèÁ_™ d¬&‡ò&§0ûÔŸøçåiüwö£Yiÿ‰ÕgX¶[}û€°Xf†ÃλÖ4‰¥%VßÖìü–K6Ð%·â£&//L5ïBSµÑÒ“4@›«Ñ2Ëëlþ¼úμ™)î3‰v‰ÓC"ÙýxÇÂ>ƒµêpã™×ê§z.U¿tç¡–»†õŽ—\ˆ */.åEKmÏ £fÑØøÝ{{[§ê©¦3+§‹êÜá¤tIÀŽ í.Tf%JŠ€!g‡zËüIZ¶Úª¾m*· ° Iկľ7þÃ}—gæ6Ê5?#Pyhº"ëm@m DâJç¤ÏB*Î7Öµ†[5›ÇR¼ªÖï­Õ2pµg2Þß¡yñ¤Ê rh'7 àøzÄ §û…Âê;G>Dú]úó5‡ B‚ ï"óç4%Ôåœ{ ðûQ¨ûAéü‰u·#>ÔN‡¼Ø_¥õ ¶¯Œlx¤Ì»¯²™è3êÿsOÄ´Ñ×Å3¼_?ý±Äµ_”TþIŽ/Û†‘@÷#Ð¥{•îÛa{dÞô«K^9[ÅtjÚnÕmÚ8;Ü&¨œ¿tñº†\òFÞ4và¢öÓÖúâJQiÿùÔgXDg8 ö;á½­S?˜ÖncöÎ kþº}Õäjý-¿Ï¥ÏU®é× çš6R•žžAt´§¥¼¸˜8¯'ö&Ô•µÞú_Š:LæÓ×fi§:öª~áƒ×swj“/..o4HÛSŸÂäÙ~¯ôÄgJ¸XG˜¡I&Љé©Ê|öñp½Ö®¢ªóóKÝ|”BztÌs˜(Ýïê;]Êà:…)FŸïÙP+åc¾ríÈ'û+£>tƒíDByñÎêÉsu­¿Ìk"£Õý葳}òŽ,ò< Øîþ탘ú@µ×"³€ÑÁôä™Õ³zõ¦ÏÄø¥iõ¬\££\m¸oR³¹àmÛt VuÒøèCÏ.0M“øœ6SIAëm Í>ñõO­³õ‰-"I36ƒ®²&¤qW:²éÓ9>/ç@ÛAæùSúýÝË_§PžP9_¶øºÕ•óe‹¯kP}P9_¶øº&›¾ÀÖ#_YèN×Àõ}щZè{€¿ü z¾ö—çuïÐrêrœ\~? u?(?€‹Y¨Á¢j§¹ò‚‡mïNúÈȬ&¤I¼1*nû,°ëM@ê .A䎫ºÁÔΜ[£ã#ôîüCåü$‹—;H'ÿx{I\Ú Ý|fo½ÔÁ!GòJû¯“¾6í¶³ÙâÖÙî°Núo'}I>\L;Y܇hœnÿe$3ÝUe¾b9Å!ÃÄ¥ÏÜb´§’ãËàè„“–øÔc¸ÜÊ“š&™I6!meìC£™Ûêɹì짺̪¤Ž}÷´ƒêXByñÈgæÓ*û¾C¡±CµÞ³²‡G)'Ðv*'ÅV”••€>{…êÖý$ÂBŽ?ÿP½÷KØæìÅ-Çë;ëµÏðñ=é‹ZèÿÉUo UZöÅ>ŸZGô·ùŸñÏš¤tþ”Öå.¡=“vi0”'TN¤yÎèP}P9§b‘P}P9‘æ9£+­Ï©8D õ=À~ð÷|-Þ"ß ù u9ñà9%þ~ê~P:œ^µS@ÒœQ”ÖÇi„|ÍìÇÔò¥‡)!`&Ð-f1#Â5ìúÞ*«É*|1/¸\0;­+làoGµhIÝÉ–?–‹â³êw¾ôü…{ëó^—Ù[~ÅžÒwÒY5?\Us·ÇŒ ï˜ÜçÞú¸cy‡¦“1CzÒåu¬äÒg¥ Ü3~¼eìç\ú¶¾õ•iÎQìReüKåéÉÏâÙ1)ºIøgò-%Åm&† &PFNU›oÖ÷ˆÐ%$±+úÔ}¡Æ{¨ÌÑú0f@‘‹äíŽr*ÅïÒê{6™ôóž½è¢¡äâ©›³g™#"W¹vE“_Ÿ+í`;‚—WNé—Ÿ‹Çô¤þk<ñüå­?Nn_5s`bø =÷­ù¶5ó‰ýìÇ®øâ¤´»ÿrÛÇÐ[³ÔöÚ;=<—Ÿ@jR ûa’ÊZe-ÛÇL#òþ+'Ež7Žš90ŠYƬ÷å<—£Þ*æðò}Óíæ¡Ñ–ˆ~#c ûëü?£(?¥õÁØKi+ú\ç }~E;n\σJó„é m))õ}(ð=@QßÏ×BRðŒ#þýAùz m—”–ó$ 9SâýýÇx†«Ý…–ˆ§ û!8ôÁ¬*Þ± ¿MM„/Ÿ,4qŒ‡‚Œ€¬3ˆ¯GÞ ’ܘ©e‚[+Ï6{QÚ)º3*çLÜðúO¿ˆÌÙ›í§9[òìÿn‰ú<á¿ô9$;kºÇ&Á>“æ¼(BŸ—|X8/¯˜î§0}i«ÒÜB—cfŠ”>_Ôæž¢ïc}ûÞµ]`÷"$ù–‘öq„N M&ýé~1´’Êó‚fuJX¢JŠ€rýæ»ß±_Ó³‰ÓÚµ+öy• ™ò‹ÄžÌukÅ™Fç¾DP¿K­ïéɤ7;›©™|õÞ~/[Ù\ˆüO¹v¤"»>GÂÁù ./ÙÍ?ðp,3STcôqh‰wÝê]GÄ ’ZoùPH©Üi&/½÷}=sÍ;B»$WØž…Ê·„(­Ï9Â9Û3èýh”'Th&Øïh'7q¥¹p[Ñu¡ò·ŸþóÂUßç?Ï×îæ x_!À÷hþB]Î?èXŽ÷#~u?(?¯©ÔÎ`ÑçÏNx{M #è®J„˜ÎÙ(dåd¶àu$Ì$U˜™ýM˜½RÚ­Õ<$ Y¹ªÕÙi®7~¯xKw®ÑŽˆ%´¯€ndùÒæ«ŽËP9‡<þú' Ĥ_"Ý…ùk$çΖ <ËiË^TÝðXÊ‚E«’Ñ«ù– ”KŸjöRôéy2¡ÏÞ¦Z5}@"£¡þľËϸM¿€ë+&Ž×Ô1iFê3zíÈ1tª÷ùî‰M¢×UUG›–•s|ÕÍHãAõÈKXh¹./zÁvÒ¨áÕ5mMnó57³dÓ'{ÿÜäRô;°¾;õ6š©%ö?!£CðrÝ¡D¤>§!z//ô ¸ÍÂÇ'©éµdïâçÌ€óž¾úµIMÝ©#WìIœã‡¤>øI/‡Ò/¾·´²yI"w¬ %xÿe‘ìÉéRšô¯îb˵ò¢&¥Þz tý+ÍÂòqŠì?xæŠÄµ™„óù^op=èÈ™?ïür+­Ë†À†ïï@£ <¡r@3 TTíä{þ„’éz¹@·ŸB˧äçëc…¾¯@û  ù u9HYñ‘ø~$Ôï¡î¥óçáC'P;E¨ðˆª´>å'‚ÚkCY»*Gãz"uO)ƒü£dAoû2ýäý§Ä,dåž#!À¼ÔUÏM:Ùv0¯×°¨¶°V«Š(ÐDÄhzhUt¶ƒ…4¯Ú7"a$RÝ ~såìZf)¤´U¯k6NOLloºdþáÛòÆ3ßÿÐVQc´Å¦Q?.v`œ†í$8ÿÎS—îv[¾*']Š‹ˆ¢XPq¥ °¨źrY)¶´´¥-½¥Iþ3IÓÜf’™o¦) Ÿ¼^™3çs¾ßó>ß3iæäœÓ²ïÓƒ Ç*ÚMÉ7Ü’>âÆ~},3Ù»3ï<뺜f÷zÖÃ¥Sú-S¾ÿI¢ Ëao®ÏIàgòSTûg]égG[«Y ª I»ùÿE_ÑøÃð¬?tÞ'¸RIõ“äp&¢=ûg ´Ï0aã¾§z¿ŸÉÿ|÷É+"Ï@iwø)Äv¿Tú‘H­:“{èþ)à”×þNh_ÿ¾¶¹)õûнÍmJñwÇç–\„ú]:q„^¯Èý>æZ Ôv¿,ÚÁßñéÚRÏ©~J-ß5Ÿ_íï׋ٞüQÉ&ƒ©æ—_¬8óKÛùffî—’z.¹mæÑ¿Þ_5™°„+œƒ@ ½Qïè¨Ðpnù+÷uª4Lã´bH¤e²cM•¿˜ÚX êvíÍýû]{ómNÜÌMgÛ?)Z~~aq™Ó̪Ωpœ8 ´ŸS2N”j¿ÊšF`yÎTígŒ‡‡x·”²'TE§‘¡Î t{ÜÔjudÊuÑÃøNÛØ©ý[ªï›»ÖmòÝo Œ=9æÅºµÛŸ0‰Ó&Ý|g¿©7ßÙeÙX{¼åÕ§ª+ÆàPOJô#©qmñ£¬€Í3œÝúü¤„”˜«"FMÊIåà`õÑwjïqâ3ø¿Ý£ÂB:M.Ôkœî<ô-®“kÏ݃ L‘/ö}‡Žm®sâí^ÂþønjÕ’q×'hR2¢·½˜Ý:~®u L%úƒP+H‹ w%Uç^RºƒÀKSm_÷’)óÆøXMì5½îÇýë2df榟Ûß[µÀò£®äËá@v¿µBé®þçyy!û݈ʪŠÓþVׯO|Úí}'¥Ýî$1Ô\´N³¥ëg“Ë~÷ÙÞ¥q'÷ÂÏŸïTžTìïPíQuðSäïOñ¶åèÉ÷¹z¨°(-B|úú÷µÍMYßWl"¹ï„úYL»N.G‡ü¾~?’ÕîÁÞþ®ŸC;Ê:¤ú)ˈCf?Û#ݯëY7±!Qªî—ru4ÿÏ¡ÌÜZeøç[«ÎÏY[êüÃHÇL8ˈ€ÌD¾Ñ³ìÜtõµWÄkúÅĨ#"4jcSñø—{ +Šw8 9[¡êœKÁYOP¢ýt,wQnÈ͉†Ò¹­Å7ARžV4{:}&»ý¶!êë$†DG…kz…ªTu?þñ/J<ÒÐì9ÖHŸ•«º÷¶´ÐxÎ®ÊØj>UöAÛ’BO}ÐQcåȉk›U«fèÀ¾aC‹¹é܉ŽÛ^0¼å±OXµ—v»û×6Bxw$@ÇRp ÝB@?‘=3~Xhjÿ¨ÊTÆZó©#Ú—¬Ýz™I °~Ëý=óÔ]Ã4×üªh/ÖÂjÏÿbüá«vn-ùÛÞßõó·½né- õïç;•'Uç±ê.RíQu\ñx‰jªó茇‹þ¶çÁ•Ëú’ÜvPâïk«MißÃ}m¹õ³Ù v­žþ|§´{°·ƒ¿ëGmoªŸbO¾Ÿú̉lXÚ`ÍÀ_ņDED¨ÛšªÇ¾ÜeX[,ö·ª|P€@0ðãQ0àB@@@@@@@@@@@@ ð ¸mVøUB @@@@@@@@@@@@<À‘':¸           AHDAب¨€€€€€€€€€€€x"€"Otp @@@@@@@@@@@‚ˆ‚°QQ%ðDDžèà€€€€€€€€€€€! a£¢J            à‰ˆ<ÑÁ5B ÂFE•@@@@@@@@@@@@À y¢ƒk            „0@„Š*€€€€€€€€€€€€' òD×@@@@@@@@@@@@  `€(UOB<]”tM§g™º.k+))—è2ØÔñwh†\; ,±_Lh˜†©Û›/v4ÔübørÏ–öµ[ËÌ‚bªN°0$ºÚ~¼o‹1ÃÔ¿¾~`Xr¿Þ¡aaaU{ƒ±âäñÖ=[–Þj~·ŸÂöt™ìÆX³ªöèóîr7z¢ rtÙO/W:H«U…˜xžåG[ßžÿ‚a·h錥ç,T=0ò¦ÈþÚ°•±ÝT]QÞ¶ûùmÅb"…¹xpíò¼$§ùBH7‘½ðLV¯´¤¨£±ÝÜRw®ý«}Û[ wß?le°/f‡Þt]\d$—ÞÆÅMsÃùŽ÷EÛ;ŒnÝ—Òß}±×¥•é'§“ݺlùOñâûƒ·û§>3“ñux{5——09÷moåáº2Ð~^8Rû-UçÅÑËT{T¨#^.PíQu^ܽLµGÕ‰:âåÕUçÅ\Eø;>©ö S¤¹» ¡òì*@æÕt2A{ÉNåé¥X\@' â*PA­„>ûªEÓïHêË 2ýdZ:,»²D°° ¶¡ôñ7D˜B/s‰ ÇÞ¯»+gY‹óuªÎ¹œ Þ~:ö‡M«#ïJíÝ[¸$>ÕȾݲ°ò‘¥&{·ŸÂö2—³=y#’ù UîZrnüó;;ìuóp$U§Ëf¯ýizì á^Z Û™?öì·¥g/l^uû€¨w cgJ×TOœ_lp¾¦0çÂ/û3éýÈ7TúœÕªåSõIZb •›fŸÕà6ÈÓ™7=wµú'룴|ßý8ï¶³Ïu .Rû»½pyö|ÑQúƒÝ^0ù/¾pñ¹?x½f°¢½Ëtaf7?eÝ·½†ë @ûyIí·T'_<]£Ú£ê<ùâéÕUçÉOרö¨:O¾xºFµGÕyò×@@)þŽOª=èÄ¿çPbÊ“b‹×PíAØíNè@@ 'ðXfË7¬gyë^xrlZÿ^bu[MLJEï6Ÿ,,eeߢ5žúºq×Îmõïl)nØúÞû¾«iê—ªS%F…†…÷¿®Wæ•õ-oîùÞa€ªt‰]ä¶ß­ì±¹£âc[k ßú¼îÃv\(yû½Æ­ïín¬0õmN½&Y¡R©ú§Ýwtcã³6Cþn?%íe°×Ö<—Øù²þø¾¦·>ýQÒ, i:=[ûÆâØÁ1æcõ7Ío¬Ì¯~yÃ'š´¯tU¯(V­ûM†öÂÿ½sñ;N¦c¯l_ßgXrX”ª½Êxàí¢sëÖ7ìþê|cÿA×k"5¡1WÝy[ÌÑ‹ï}vÖÁW%¹t9ƒ&·ù€,ûeÕÓ~“ÄßoÛNïk(xî¹ó>ø²±I“ÒríÕq‘Q¿ 5ê óë[÷¶»Z½èï!‹ïMKà:Ê÷Õ¯yååÚWÿöAã—ß}ßx¶ÑÜÜ/.LóËÁ7[?íºySû»Õ²|{Tµ?¸ Âsâ…NC‰þ å¾{;e¤6>ĬQ™ ¦vƒÑd4Í®ÿ7KùÜ7»š¶8åp/¤×J¥ ýDIRû-U'ꈗ T{TwD/SíQu¢Žx¹@µGÕyqGô2ÕU'ê.€€‚üŸT{Љ~Ï!E•'É'¢Úƒ.°Û/Ѐ@=ƒ(wÙk¡ãFÜÐ/ZmV«L5¦o¿7_HK‹ï«j/7Î1¥ªëGè2*ôÊöý}n×hå–AÕÉp-è²ÒÚOÇ ð]«ÚZ,²ŒUÆb¶+T2?;áÌŽ¥U—î0Jçïö“cï±uEL¹1&ÖV©õ’ªÓå®WMþu¢Êtš›y÷{ç™wÏO8žZÖÆöæßqöÙÎYDé 6k– 2U˜ ‡eUÚœë|/Øv fx¢:Š/óe®Ì·\®‹Êá"VÆå–NëGTJ™ÜŒ‰–ªêƒÍÞ3«ÞqµCýÓ¯«WOº>‘/ýøÆ™•­-³²g½¬Ú?û·Iü/jöV»Áev™O>ôw’=΂®»úƒ‘ÀJó!^ˆUª?H»ÚgDžzw~Õ}¥’>oˆUƒLqh?a¤Ô~KÕ {á=•jªóî‘pª=ªNØ ï©T{Tw„sPíQuÂ^ ”%àïø¤ÚƒNô{) ¨}Þ†} |g4«¨ï—îuù%^ÿ$s±fÇÿÜúÝq«Ï ¶.§ÕÈv¬tâ5ý#{Yb‰?t÷§¥—?8¬7¦ŠÝÒ‡øRèýf1ùºîë<@~ù/´z+ÔdÜ?m~†„Êù‹Á¦Âû¥Bígo j¿¥êì–åQíQuò¼³ç¦Ú£êì–åQíQuò¼³ç¦Ú£êì–qÝGÀßñIµø÷JtPyRlñª=è»Ý©ñ€ô$™DUìÛý{ª×̼õìÝ̺È?ØN éz8I­È•ñ‘–‡Ù*35Ë(„ª“a"ȲvOû1ÝíìŠ(c«¾òœ}ö‚zþn?iö&²M íÏäo®ª>P¯’¶ï“©3XW= MJ‹Ìtå¤×³_Yöëjäú[çžNú 6и‘ýHäó%ûÙiËÀcWêGJ~r*‹«“—óy7õ#¤£†]mYÉSSû}Ë›®S4u³Øcܬ2›ÔŸ¦®ë<Ó/dÿoæâ }¶9¯É–Ççw±þNµGÑucð™O@}†žé¹{Þ?‚õÐYópùì/%úƒÌû§Ý8Ž@ (Pû-UG…FµGÕÁOáÏwð¤Ft `'ìýˆZ¿@ÑÙ[RÞµ~ò¬ØsSíA'üùg'+ïˆÊSžäÀ& s€¨Œ-û¿†b±ÐI,²Ù¤aÉ–¥¼Z~úªÉõù§x‘Tx‰Á¥;Ú±9y£µüÔUû¿» Ë$î÷àïö“foNÑtm*·ï?ãbòÚRST/³¤>"WWZð‰±’cfKÕÌÙü|”cìåÏÍ/×gª(k,èêkaÜ–üKÃBù‹‚¯ffÍÒÄ_£(˜Ç5QWÕå}Þ=ýH˜i»:9Ü2ØWsòH³ãÒr|þüe¢ã¸÷sååõÖ©nqìöIÖÙcü,…Ï×/<'eß·ŸT{ü¾@tá\]*ÙëYy’—–£é Ùú]–§›áîŽÙ¿}mŸL¦cyEÿÐf¤„FóƒmqñÁ¶Ñ†AÌ3ž%YfñOqšÁžÛR*Ï¥àj·àfjØÚôbåIÛøŸÅ$¿÷PFŠ:ZÝzÔ°tJQsu»Ê"ÖDÆ$F[fõµWýÔÒ5ð®Ë`SsŸVÏ›÷”&'{ŒÀ €çÚxêïT{TÒýÁsÍäªñ²*çÙ–/j÷ÎôS ’ºf¢uV=ëŒèTîþ¢i8Üúl΋’>«¥P£Ý?­%'{&zÓ¦M‘›Š6hW.z&db†ÇéORÜA?@ûu¦ö[ªŽÚÆT{Tüþ|Ojd@vÁÞ¨õ ½%åQë'ÏŠ=7ÕtŸv²òލ<åYAnx!þ¬A:÷@sɤkíF£*$\ÊíeÄÍ“`Õ‡6Ÿ¿ç‰U¢{Quþ¬ÛåhK—³Zõü¸k,Ë[Uî/¬~²¸\p–‚¿Ûf/›-{`pnh…ýk˲J¡=~„Û˜ªclçóYIÚ·ªºíŠxMümÞÁ"ËLÖðckáŒk‹ –fÕícŒÑaZÍM™£CXÙN§Á>ëÃ3G„[6)êÔq›9½h\œŠÀ‰¿ pc<á6›j›úW6›5ˆ‹×öÙ†i5eÜ/ÔZMÜ"̬Ñhcùc{›‘;aíMu–±”¼uoGü÷ɱ¶$¾ØœG7Úù—šé;lã-ÖÜß¼õwª=’Nþà^à Hñ!^ø™@O>]\·­(»W"KdSþ´6ö‹»rkùIŒ–½Ê\3VÃ6ϰ¦)C‹vÿ ±üíÀXXüÚÔx«'©ºØÐ;dzǪ7ïøëë_)qo§ŒÇ(Åwh?†Ô~f¤~>¸x í~Š~ÞJè’ <•åé‚§ à‘µÿq_{,Wì"Õõ>ì:·ƒ¿í{ûQëçïv Ú» @.qþAä°_‘ãCÊØÁ™}ÞXùT˜èo©ºK~@»—¹˜ýyª>‰8Ñptsíø¹Å®ãöêù»ýöžß<-*…{èØqúÆÉ+ʸëÒ^T­ô Ÿ騳<Ø·¥p`¿?ØTèöl³„}ñã…>WÊ÷_œå¼Ô„EC¾¹o?U{‹Qô› ‹Ý+õn¶˜µ=Ù‰2{\Î)ÊÑàâµ­üÝú'‹—KL½Žë–z¦KÔFð>Ÿ=ÖØV°í@L&78¤n:Ûþ·\iéçÕ§jÛ[Ìaý4ÿ9nAÂÆycoÉîUõÚß©ö¨:úƒ{-?…/U/_Ãæ­ùâ>æŒ1C"–>Þ‹e,g3Ò“¸a#ûvãâÊWÜîMtl´ûg#+ÿæ»úcÇŽÔ:tèüÑòõ¿Ô6wÍhÒÆ_¯˜W”\¼ÀKLÓ݆Ò'h?7|Ô~KÕ¹9 1jª“è–[6ª=ªÎ͉ T{TD·Ü²QíQun º€¿ã“j:‘ï9Ę ò$šcT{Ðv»Sã:èa~ATZ0Ùx[;k«szV®jÂø1Ú›Sc{_5ôwqÛ~eóƒ÷̪w}þDÕÙìà]a™ ÙμQÉüþ&u‡þv~ôýÅ[öwûɵ§z£úî!1*S…iÝï5I¥EÕÙÊ×ç®U¯˜<$QÃ=ß7TþÐTn`NK‰ˆŽú`ܧ[6ÎÎš×Øµ'Z•SÐrÝŽüˆ!±q½FÍ.JºåÓMU ÆŽèÄI1š~YºÂ¿ªº7o\²ãL"›=¹\l:¼_b²W©ÆqK!òñZ8å¥fWï¬JÑ,œ_º“{ ¼gZ¿k"Ô¡ ÇÞ©»Ëyi°º'×ílùý}c¯7=aÞîgí{^9”*©¿SíQu¾÷‡÷¡¤x±#(/~ÒüêMïWO¿-.^›ö`ßKT½ÕÜ=ªáhqí#k탔víˆ~ÿ,cùO”¹~æ43]fÝ3¹÷‡zUÿÃ…«ÇÌJXüõŽ³Ï•Ðüƒª» ý$‘•Ùo»Ê¤êº y@µGÕÉt¯+;ÕU×eXæÕU'Ó½®ìT{T]—a€@7ðw|RíA§lPyR½ ÚƒŽJ\XGå)\RA@ (øw‘ ²Ò­kÍO<0æâÌ-Ç+ù‡šæø[µË—MuÉævJÕ¹„ùôóØûy£-5Ÿÿ­ÆÛà·ŸG{úéì¹I×$ò¿Ž?üúü*§eÝœï0¸<‡§êlerY‡¸E+?mÊÿ? 9Yé%åëù,¡)ãWn+ˆ±e·¾ïf¹cfÖ•ý¹¶…›uÔ;q@”N—Ú')†Eœ/ßW¿tÄïª «øEŬ/oÉ#gÃ8ë)Ü(¬uj–]y?k,ƒMýMŸöãö5ÕBñZùín6ÅnöCU»eVEHDH¨¦é›ö΃C–­š¶¶õ„eìÿÝ•î>‹Hr§Ú£êx÷•í þ9^œ+^ÿìdåQyʳ‚Ü  ðzt‘#½ªúÖþÜ'¾‘£ ó˜ª( I d°¿~43öJî!tó±Íu¾ÙLù»ýÜìZ¹'âFÖÞ.¾uÍW§wªŽ+D—3Wuk¼™Ú1²/Ö?ZçúðòÅœ-_Ô2Ëì~7 ïÍ=à|íÞ]ÂJ‡¸\ßýŸáüòJªö Æ#‚*áD7.ÂÙêoå_°ê&M;o6>}~Ì£Cûrã’ulÛ²y–Ù]îd Q%r3=øóÖÎÙní-&I{i™;TÜ@cQñÉ“Îä÷wª=ªŽ÷Ùñ¥dp,7 Ž}ˆ§zf½¬²î;Ô™38â›æG:åñåćû§³Í–ÁQ)9‘çR$pÙµµßRuÔF§Ú£êà§•€ëç;xR#:°ö~D­_ èì-)ïˆZ?yV칩ö ³2týü³“•wDå)Ï rƒ€@À¸$fñÃB5ÜòIü̇V“Ëb^|²è‹ª- <üç9áƒcŒ¬öp˳9«º6Ì,#ÑßíçjÏu_W×çn*¼—›]qrû‚êûœfl0ö†Ã~Zrté‰Ñ–ù*S¥©l+?ÈõUΊ?=Õp˸½Ìêu?×Ë¢çlXZonY:;÷ei½ðŒa±+á\Hõ?2välCó ]d˜6>‘Td¬fÿkÕ®{e Õ…ðƒŒauÆéª¿m˜v‹e‰:·%-yùÿtìWq–1EVóý—]KˆQú;ÕU×UÑz-ò’¿@{Õ¸™c3†õçnM‡ÖŸ_õó¨Žã&„¦Ží½uÑmYÏ¿mù1‡=¿ü#_î»R¬…v.ÌÈ ™ª-FŠy.—_ûÑû-õóÖØð“ç&ôy žÂ\üŸ´V€êr%@¿ŸÑˆÑíQûQ°ëüÝþ¶ìíG­Ÿ¿Ûf*LŠÎ ¢?ˆÑ³ëÃ#x„mg7»Î¨GKÕ‰—x9_m?Ýt6þæ¾–qŠã;V^3ðà™§Œö˘Èr²ÇX=—ééª {.Å„„ŠÒqÉé|*¬³nõbVkÔ– w–X΢BíU•:—¾àQÍ Üòcü “ÒõÅbE’è\D ¼¬“eEŠ„¸þàãí!À Ð.ž»Õ¥mõìÎÿHèÍC7UkìÚ—hëÇæÓ–ý…Kºáfëø‘[ËŒbWƲ^Ü—=UaqDíïT{T[]œèýÁ¹œ@;#ÇKgE ¶=ÃÏÕ4nÍ{âµ¶÷ß?Ñz¿œrgnÿå™òˆÈê.E ß?]2¹æ0ýÀ0nvn6Ý©oKÜ®#áÒ&py¶µßRuÔ Ú£êà§ðç;xR#:°P´uãßóT?ƒ]goIyGT.‚VÐîŒÊ“ªl ‰þ¶'Á%dKŽ€ÏDíü>üÌŸS•HõôÙóT sÒíO¼]ò=¹nQÄÆ=+of{þþâEÛeªÎ¦Ç»wRÚ]‘Àí¿Ù‰ãå’–­âs+Õ~éO¿®ÞŸ?+yêôI¶ÄèøÂ^JÙ(ZѤү2¶YJLd÷Îåλ¾²YΨÖ-ŽjÏ´8>àÔ‰T^—³Zµ`Ì€¾¤ºC[Ï¿â°YH pq¥Hç’ú‘K…¤ÆuyñkæÃ š®Ù=.Å°Ñ‹æ… Ž2r[OÙg›ÿÐd¿^¶}Q]ËŸ‡ë2û¬ÍÕ»Ýï ¶Ý“È]WUîoz²¸Ü:›ØßùýŒHöÈ:nþ¡?Øùç=^¸_€¿¸-tx¢:Š›§Æ6ÏÈ­µý`Ù/_ü®UÍ LjÙs7%Lô‚ŽÒ¼i¿¬Ïf‹äj„›>“ýuÇÔ¾ÖåÙ'E/É™l·£î#€ödKí·T ©ö¨: . f¡Ú£êHµGÕIpI0 ÕU'èA@aJÅgwÿ=Oõ3ØuÔp rqµ‡v·¡ò¤ê\ÛA깿íIõ ù@@àR"ÀÚTHw(ƒ­Þž×çÆ^†6“Ê2P  ‹ÖDF¨¸Y FÖÜpѺ‘·1z¸º^ýÁü 5üRHé ÞÕ,“ÐÑt®ýäåÇ~:i¨¨n0Ǥ¤©o~{ÌÀXå!ù©]/»ÏaùªNz}.·œÄö›÷wÍ2n‰!)´ 'ÞBÆ›@IDAT¿0üe–A>¥Úoþæ}Qc¹ Ç­ö›Ùμÿ:»D`š™Röëi[bîÌŽ¥U—î0:^ótìM7§hv‚.¼_†±ö_-û>=Øp¬¢Ý”|Ã-!é#nì×DzŸL#{wægíˉe²¢Òùñ)çË[¿>ö]ˉŸÏZ#Ø5·ÿwøÈ“cùyI9þ#;ùÛüë.¶²/ÏwZ?re%5®-:ý<öþêqÉ–QÆ“­øI}yu¸ùÆ;=-¾/Ÿ§áhQí]Ó^uHÒ³U;Öô½%ÖÈÝcì—CŸœßùÙíaܽ÷¶ŒÛ{_£‰à—:ÜøÐøÊ5ƒŠéÄþn­Ÿ|{t­?Xíùÿ”xáöÚ3û·IüT³ã[fV>´¢ÌùÇ Ù®üÑÉüÔSÅîÆaYyVŠÊôÇñxÿÌXÌöäJŽ0L5¿üûbÅ™_ÚÎ73s¿”ÔÐktÉ}l3–þõîüªÉ.Ë‚:ÚÀq@û‰ƒ§ô[¾4ªNÜÏW¨ö¨:ÏÞˆ_¥Ú£êÄ=ñ|…jªóìøUª=ªNÜ\å(Ÿ~ù{žêg°ë¨‘@åâ`íîƒÊ“ªs0-ëÐßöd9‡Ì  Ðód•þ1^gYÆÊ›óÍìcîAþs܃|}Î_T/Ný˃'!•¹élû'EËÏ/,.sÚ…ª²4ž@7À ¿ý¨Œ•j¿‡ÿ¼3ü‘Î%îTí寥#¦T9Ϊ±µ­Rölåñï¶•§¹¢ßˆÄu:–·î¥ˆÌãcíÙŽÍM?·¿·jAMA‰ÃT ¾ýö.KÐqË?ÙòÙßÛØ©ý[ªï›»Öeù1zÿ³—#g´~ä\cRãºK—1‹m}~RBŠ@ûW}§öži/º Ù”ÙÚíOôf{vn»À Noyõé‡êŠÂŒÚß» eòìÑu´þ`·äG²â…Ûwhï üÒr Ç6×Ý%²Ï\ú¼×5KÆ]ŸÀ߀*÷¯©?—_ÊR™þàØï»úYlÛÊI‰ÖYBŽ*ë±¹µÊðÏ·VŸ³¶Ôy€Ë=+Rz‚ÚÏ3uYýÖ¡(ªÎ¡Y‡T{T,ç2SíQu¦eRíQu²œsÈLµGÕ9˜Æ!tãÓoÏSý v50¨\:í¡Ý]ÀSyRu.æ%ŸúÛždÇ@zž€Ì"_Ö³ìÜtõµWÄkúÅĨ#"4jcSñø—{ +Šw8 9[¡êœKÁYOP¢ýt,wQnÈ͉†Ò¹­Å¶u«¤„=Á‚»'Q?‘=3~Xhjÿ¨ÊTÆZó©#Ú—¬Ý*øpS§Ïd·ß6D}ý€Äè¨pM¯P•ª®âÃ?þïƒÓX’›·ÆÅÍÿ`L×¶ú[5Cö 3ZÌMçNtØö‚á-}ªÕgåªî½--4ž‹•±Õ|ªìƒ¶%…žî½6›´wª=9:z Õ)ðTôx¹ÔëªÏœÈ†¥ Ö üUlHTD„º­©ÚxìË]†µÅ¥þž¸Ôkuùø‡öóÔÖÔ~KÕyòÅÓ5ª=ªÎ“/ž®QíQuž|ñtjªóä‹§kT{T'_p ”"àK|ZµÒ¾§Úü¥ÚƒÎFP™w*OÞ:Úݽ ¨<©:w¤¥øÛž4¯ @zš€ˆzºª°            ÀpÛ´X@@@@@@@@@@@@‚›ˆ‚»}Q;p#€"7$Hà&€¢àn_Ô@@@@@@@@@@@Ü`€È @@@@@@@@@@@@ ¸ `€(¸Ûµ7 rC‚n îöEí@@@@@@@@@@@@ÀˆÜ @@@@@@@@@@@‚›ˆ‚»}Q;p#€"7$Hà&€¢àn_Ô@@@@@@@@@@@Ü`€È @@@@@@@@@@@@ ¸ „È­ž>3“%H5——°Ýå2êô,SÇ—TÅJJÊÔw6ûéåê‘Cicµªß~åG[ßžÿ‚Afë}Ù%úó¾DhwŸâŒkL_úƒô8Ó±ÌLäÐqülñµ~’jFƧ##9Ÿ+:éñâh¨ó˜`O $õŸÚ½üõ‹Ij¿¥ê¨•¢Ú£êà§0ðT– x6Oaï½§J»{¯‰pjý æIM¥ò¤Úƒ@@dPqy+¤çÏ`E{—%èÂÌošÊ]KÎ~g‡P>}öU‹¦ß‘Ô—»¨2ýdZ:,»²D(cgš>gµjùT}’V ¡ò`Óìñ³„Æ&²#É€ôvб?lZyWjïÞr—C#ûvËÂÊGV”šì2؆Ò?Æßa µ§95{¿î®œe-ΩÔ3ªŸ¼=={aó²¨ÛDÅY?Sº¦zâübƒÐ5·´ÌålOÞˆäpî‚p? ö#_êÇ9£Ëf¯ýizì áæ3«a;óÇž]â©#º‹.ëÿÝ—¨íN3¾Y}èrã,c1Û“?ÊÒ_¤”½OùR?)–;ÿâÓ™“ôÏ•NÜxq6ÇdÛsÑã´‡øØî=äu·›¥ö[ªŽZ!ª=ª~ ÏOáÈ r¡ê„½ðžJµGÕy÷H8ÕU'ìE÷¥úÛÏ@±Gõ3ØuÔH¤r¡Úƒ@@äàzfK]ÅÆN©1kT&ƒ©Ý`4F³ë?ÆÍ9÷Í®¦mN¹Ìѳ¼u¯F<96­¯N£ê¶šŽ‹Þm>)æDö˪7¦ý&‰Ïßvz_CÁsÏßðÁ—Mš”–k¯Ž‹ŒˆúUبQW˜_ߺ·]¬¤»Û·²Ç掊m­5|wèóº?Úq¡äí÷·¾·»±ÂÔ·9õšdm„J¥êŸvKTÜÑÎÚ쥱¬ì[´ÆS_7îÚ¹­þ-Å [ßû qßw5MýRuªÄ¨Ð°ðþ×õʼ²¾åÍ=ß; ,Ùôrß©~êØ+Û×÷–¥j¯2x»èܺuÅ »¿:ߨÐõš„HMhÌU·DÞsôâ{Ÿu‰iW3Økk‰KìD­?¾¯é­OtÑPûµ~¼z¶öűƒcÌÆêošßX™_ýò†O4i/^=èª^Q­Z÷› í…ÿ{çâw®U¹;¿Þ—¨íN3_ú!Îânc÷ÿ÷µÑü€ª§—‘»È¯‰jïSÔúy²$×üŸ6fr?Wx!^læ8­ì¿'º´8èY¾´{ÏzÞ­Ö©ý–ª£V†jªƒŸÂßsÀS82¨\¨:a/¼§RíQuÞ=ÎAµGÕ {Ñ}©þö3PìQý v5©\¨ö Ù3ˆl3BN½;¿ê¾‚Rþ™¤Wî²×BǸ¡_´Ú¬V™jLß~o¾–ßWÕ^nœ?bJ•ðòV™ÜŒ¥–KªêƒÍÞ3«ÞqÕ:ýÓ¯«WOº>‘wàøÆ™•­-S`ARu6­tÜ@ϵª­Å"Ëùq3vq3¢9*gv,­š¸t‡¤¸xeûþ>·Æk´žc@jšŸé 6k– 2U˜ ‡eUº˜,Øv fx¢:Je:mzyØï+ßr¹îxúغ"¦ÜkKæaŸY%¯ÑêÇû¢Ë]¯.šüëD¾K¹:8MâÚï®ý´¬íÍ¿ãì³Nm5Á»€¿ïKÔv§Å™/ý¡ûâŒxýxyÜ (cØ¿¶Ì¬œ¼‚¿×ÓêgoÇ`=òw|2Fû\¡ß—¨ö‚µÅ­^ÝwŸ4ŽþRû-Uçh[Î1ÕU'Ç7ǼT{T£m9ÇT{TßóRíQu޶åSíQur|sÌKµGÕ9Ú–sLµGÕÉñM‰¼þö3PìQý v5æ¨\¨ö þÙ¤WH¨Ð‚obEe²áéƒâùÁ¡ '^X:llå Ç.´‰å¶¥ës'¨­ËÙ5²+‡ø<ý#{ñ\–× »'. f»Žwž­+g¢ƒC|±»ßg§š4²gpý½ôd/ç_r¢ÉªúŸâ§žÝ7"•_íýüÁšj×Á!>}Þ†} |°šÕÔ÷ÎK_^1{•*›âg!ýTÑÚÈk½½äõ#Jý¬¤ÄF[úŠáç£Mnã?»÷°S­jnù¼p–rm:ùžà­®ÁrÝÿ÷%z»Û˜K3ßúCwÅYú¼G4üà«ýgËËà­fÖwéõsÖã™ÿã“ú¹Â-^èö‚±½±N´vÄšJ÷™Úo©:éž9ç¤Ú£êœ­K?£Ú£ê¤{朓jªs¶.ýŒjª“î™sNª=ªÎÙºô3ª=ªNºgÎ9©ö¨:gëÝæo?ÅÕÏ`×Q#’Ê…j: ðÓÃà*öíþ=ÕkfÞzöîf]äP§„…t îˆ9?jØÕ–•è4µß·¼é:ÅH7‹=ÆÍú°iÍñiÚéÒ÷9·É.³wZ;x…¤»]Á?¼å^õ•ç$Ïâº2>Ò2Ø¢21S³W# dòSŸÁZ|odG?™W²Ÿ¶  0v¥~¤ÈXÖD¶é‘¡ýù ýøæªêõ*Áý·¨…xBõ³å6XW¹ MJ‹Ì´¥ÙÞõzö+Ë>Q\?uÜCÊ–ïŽ.¹û’§vwt\ʱ¯ý¡;âL7Í7»×7²/Ï®sœE*¥J—[j|ê3ôLÏÝ ô?GuÖ<\>ûˇÏR¼ø`Ïî4Žz’©Ý{Òáî·Mí·TµFT{TüþžžÂ‘AåBÕ {á=•jªóî‘pª=ªNØ‹îKõ·Ÿbêg°ë¨‘HåBµ€€P ˆ: çdØ,cKçþ¯¡¸L†„[>èêäpËÃøš“Gš] æ/›Çw®¼¼Þ:U#ŽÝ>ÉÃì9¦ƒ6/¥¼Ã˜“7ZËOÁQµÿÛ¸«°Ìe¿1}6›4,Ù²[ËO_5¹Žÿ‰©|Iö3ŒÛ2‹iX(¿Fžà«™ÙF{4ñ×h' ä™S4]›Êí;dªØÝ8ym©)ª—YRß’× ;$ ×Ïš¡´àc%whKÕÌÙü|”ƒŒåÏÍWÝTQÖX «:–r¹_z÷%Oínkéqæ[P>θ½JVLéËßë)]W½DäF!½~6"ÁúNÏßÞ¿¼×êÕ«“WíI^£ø7^º1žÏ³|Ú¶m9ôÏZ¼Ðík«Z½híhµ”ã/µßRur|sÌKµGÕ9Ú–sLµGÕÉñÍ1/ÕUçh[Î1ÕU'Ç7ǼT{T£m9ÇT{TßóRíQu޶ýqìo?ÅÕÏ`×Qc’Ê…j: ô[¨øäaÏDoÚ´)rSÑíÊEÏ„LÌðø³c¡"<§q¿PN²Ìj`ìbåIÛóy‹†ß{(#E­n=jX:¥¨¹º]eÙóF|í/Ϧp•N }ÞFÍ]dÆí_óùú…ç<íÏc³2&g‰êíÒñWr*¬öpËâœU-¶kÝõîÉOÛ†I±EátöX4‡Åig8{Éï§0AÎ1¨d¯g剕â,êàî˜ýÛ×öÉd:–WômFJh4?¸÷™¾ V(Ø/±û’÷v·6ˆœ8ó­?(gO®[1$ÖØ‹x½wþÛÜ2ˆÂ/9õ.!HR}ˆÏU9϶|Q˸{q8ÓO-Hr‘›¿uFt*÷™¬i8Üúl΋ ݳ•— iÅË hw§F¦ö[ªÎɸŒª=ªN†kNY©ö¨:'ã2N¨ö¨:®9e¥Ú£êœŒË8¡Ú£êd¸æ”•jªs2.ã„jª“áš"Yýíg Ø£úì:jÐQ¹PíA  >=@Âí#ÄÛ ‹¿B›ššÚ;UwCŸ¡wŽï?+¿(ù“í¯÷™•©Ð@Qt÷˜Êújªmr˜•’Ífg êϘ‘}¶aZ ?á¡ÕÄ-Rƽ4ÚXÙõ±ZÀÿºœÕªçÇ]Ã-ýÄ ì/¬~²¸Ü¡ì%¦szûîOÞ»wo§>K\0udR2÷ ±úÐæó·ŽÉ­™`/ÀÇ#~–fÖF-»)stˆ©‡gŽ·lRÔyÑù)u6[öÀ`.û×–e•B{ •©d?òX?ã;ŸÏê(ܦšÐÄÑæ,JÎä÷~l-|äwUÅyq(Bàº/IiwÙqæs`L©8ãð{~O/S…IlðRvýDš5h’}ŠÏ2öäÓÅuüLCÆÙ”?­µ-$7aÙ;¡ü@2c5lóŒÜZ%'*/AÓ†—IEÐî Mí·TƒiY‡T{T,ç2SíQu¦eRíQu²œsÈLµGÕ9˜–uHµGÕÉrÎ!3ÕUç`ZÖ!ÕU'Ë92ûÛÏ@±Gõ3ØuÔ£r¡Úƒ@@| s@¥‘•ó]ý±cGê:tþhù‰ú_j›»~I¬¿^;1¯(¹xÁß'ópó0¬¿dod'ÊÊ,@|=çåhpƒTmåïÖ?YÌœ$S¯³)ù€RI2³?OÕ'ñÀŽn®?·ØyÜı‡ý¦#vpfŸ7V>¦Ð¢£Eû±W?KØ?^hà)w>Þq–óÒJm yøæ¾ýTí-FÛÌ {áŒ=¿yZT §?l˜¼Â§ŽyÜìG^ëçl}ÃçG:ê:TmWj¾?ØT躆£í"Þ \*÷%IíN‰3ßúƒ –ÏqÆí1÷ܤëùOïϼ¤ÔÏæa¾ûŸåkؼ5_üÂßëŒ1C"–>Þ‹e,g3Ò“âù¶øvãâÊWºá^ás¼is{µÐî-Lí·T5°¨ö¨:ø)ü=<…#ƒÊ…ªöÂ{*ÕUçÝ#áT{T°Ý—êo?ÅÕÏ`×Q#‘Ê…j:ð€àŒ ñòÊXþem.×›™.³î™ÜûÃF½*Ž0¸z̬„Å_ï8û\‰KN_O³W©ÆqKyñ¿(/œòR³kqBð]óà\™ ÙμQÉü¾5u‡þv~ôq '#¥“·°³¶Äô¬\Õ„ñc´7§Æö¾jèïâþ¶ýÊæï™U¯øsG‰~®Ê)h¹nG>·”U\¯Q³‹’nyàtSUƒ±#:q@DRŒ&‚_~­ðůªîÍ—ì8“HÿôFõÝBbøx\÷ûEM¶úyW¨I¬ŸÍ}îZõŠÉC5ܸª¡ò‡¦rãsZJDtÜÐã>Ý:°qvÖ¼F%gØìý»¿ïK’ÛgÔþ`kgßãLÇV­˜hÙw¨ùØ[u ÏLä÷¾éÑÏ#[…/õw™ñY^ü¤ùÕ›Þ¯ž~[\¼6íÁ¾–¨z«¹{FÃÑâÚGÖJ—Å÷x‘n 9/hw/m!³ßv•FÕu ó€jª“é^Wvª=ª®Ë°Ìª=ªN¦{]Ù©ö¨º.Ã2¨ö¨:™îue§Ú£êº Ë< Ú£êdºçsvû(ö¨~»ŽpT.T{Ѐ€€D2g‰”Z^Â^xêþöG7|mùå1cZ62{~”HniÉÜèƒu¶‰–]y?«#ƒMýMŸöãö5ÕBËaU~{¤k6“4#È%›€~{?o´e ¤æó¿Õx*¿tëZóŒ¹8sËñJ~PÏ«vù² ¡ByÉi²üÜÍrÇ̬+9úsm 7»¦wâ€(.µOR ‹8_¾¯~éˆßUV1fMµ8ªŸÎÍp¸ÆË Æ: nã˜âU’ÓdÕ3Éå_dbÌTùiSÎøÿiÈÉJo,)¿XÏ;š2!ŽËSóyaÍØ§þÒî1»—‹e+2ý£ÂÄM¾f슛†G)·ÔÅOn6´I­Ã~S™——6??ÿì”[o;›9å™fËD¸„¾,ŒóSeª3ý›Û4)ý®;4<þuÃäõýùý•ÿý©½ùkWݳ4Þ¶÷Ò??~-NJŸðÞäÖOÇ^Y8¾eöSÃ7­ ÇÏk°ÍÖÊŸ2²ùc u¼¯êÄáQ;WN嫉—½/Émw±JXÓ=Ç™¼þ`-Q8ã––»Ÿ›¹Â/göÕ¦üKßó\ Ñ«žë'* ì Æçáµ]3C5áQê+'£@¼(î ì~hw7ÆÔ~KÕ¹9 1jª“è–[6ª=ªÎ͉ T{TD·Ü²QíQunHL Ú£ê$ºå–jªss@bÕU'Ñ-ŲùÛÏ@±Gõ3ØuÔÀ£r¡Úƒ@@|  èïG³±Ãi_ ²oå_°ê&e">}~Ì£Cù‡êضeó,P]åf Q%r¿pæÏ[åÌÖè*Òd°¿~43öJn0®ùØæº±OmðipÈf³ª¾µƒ?6EÅ)´‘ï~îÞ]ÂJJJ˜m…÷ïá»ÿ3œ_>QÕ~Áx„O0´r°¬½]pk">‡O/ñ~$¿~ºœ¹ª[ãÍZþ¡ûë­ãÆ·œ^/æÌhù¢–Yfßõ»ixo)ƒXN\N'=v_’ßîRšE<ÎìjIýË®Dœ=6û®~ SS{¨e…èÒrvß¼I©Ÿ·2êºRñ™õ²ÊºïPgícGüaÓüH%Y(/Júƒ²üCí.À™Úo©:$%QíQu’œÈDµGÕ ¸ )‰jª“ä”@&ª=ªNÀIIT{T$§2QíQu.HJ¢Ú£ê$9¥`&û(ö¨~»ŽzT.T{Ѐ€€ í\޲QsO¤}x•±#g,“ˆ´ñ‰Zn†.«ÙÿZuË&)YCu!üƒ{ÆÎ°œfYñŸBþóœðÁ1ÆV{¸åYʲO"~„…j¸åù™9­&‹±‰”Æ ät‹ŸlXZoËòkç¾,­çCв¯7ÃhĈUBÿÞ;ÑzwòäöÕüõáṲ̈ߎz¸ÆupF¬"býˆR¿”ÄhK?W™*Me[¹ÍDÜ^嬸ÓS–W³:DÝÏí:ìzæ¾Diw»ÏâGbq&®à¯¸÷>Õ÷8Ëa#Ý»_Ö™#Ÿ69Ðòi”­~K—ŠF‰øäfªÍÖŸÿ\m<´þüÒwOq lrËP¦Ží½uÑÛJ›>WØ÷xñÙÐÐîBЩý–ªòAJÕU'Å'¡ å¡Ú£ê„|’FµGÕIñI(ÕU'䃔4ª=ªNŠOJæñ·Ÿbêg°ë¨±GåBµ€€Ð (<@”ÃôÃø±Özê›F©Ë‰ $}ðñö=…¸‰Ås·œ«ªgwþG‚e)/SűF¡}‰œóã̱v`ºélüÍ}-ãÇw¬¼à2Fç©H/×ôìºÄð>SÛÙãÍO2&²œì1–Á$ÑB»ÉÏôjnà–7äg°•®/v‰AQo,BBE©zŠô#rý¬+0šÕµ¶€å¨P;Z{§Ȉ$¦è}©ãš1‘8óÒÆâýÁÇ8ËHb}-³A›Ù·ÿx[V?v™V?á²'Õ×ø,Øöx ?STÓp¸5ï‰×ÚvÜg|¿sÀ;åÎÜþË3屿ú/"nˆÛ ÙϺ§Ýý\ ÅÍQû-UG­ÕU?…¿ç€§pdP¹PuÂ^xO¥Ú£ê¼{$œƒjªö¢ûRýí§¢ö$| ÚƒNø¾KD*Oª=è@@@€J@Þ‘>›-^«Þ+&“ýuÇÔ¾ÖåÞÙ'E/yœRÑn]ŠNeê0Y~ž,Pƒòâ×̇4¢c^4/dp”‘Û3ÅÈ>Ûü‡&"ä…€”v`W$0ëC·Fvâx¹ÉK‘]—õÙóT sÒí#]W¬O®[1$†qcÍlÏß_¼èr¹ë4ýé×Õûóg%O¾ éÀ¶‚áøã²ýä éD Õå¬V-3 ÏSwhëùW”˜Ö@íGÄú•~ý“Ѻ™H"»¯pn/¾.ίl–3j ·„#÷ª=Ó"u`×¹ŒËçL©ûR·Ç55覤ôŸã¬±»“[_’F‡|¨_0G«/ñ™õâ¶Ðá‰ê(n¾.Û<#·Ööc€e¼|ñ»V5×,ZvÇÜM ½”ò¹âs¼8ø ÅžCvö %Û½«¡¸ij¿¥ê¨ Ú£êà§ð÷ðŽ *ªNØ ï©T{Tw„sPíQuÂ^t_ª¿ýTÊžÔïT{Ð ßw©‘HåIµ€€P ðï+$‹3³=ù£’#LSÍ/ÿ¾Xqæ—¶óÍÌÜ/%5ô]rÛ/wÿõîüªÉN˽e°ÕÛóúÜØËÒfRY4aÑšÈ7+ÃÈš.Z7¢a!,\]¯þ`þ„š®¥äôóØû«Ç%[ž^7œlýøÃOêË«ÃÍ7ÞqwÄíiñüv¬áhQí]Ó^H’\¿ ÏHk‡ôy×,7Ð2Hâ ‘áÄû†?°Ì2Ø“¾à]Ͳ1 MçÚOþPÞxì§“†ŠêsLJšúöá·Ç ŒÕX+NízéÜ}Ï¿mÙ‹H¨üù›÷EbYâLÚ™÷_g—L7¢úÉX&+*Ÿr¾¼õëcßµœøù¬±¡5‚]sû‡¼19–ÿ½óE®^#;ë%ä£kÚÜM¥‘÷¦Fô>³ciÕÄ¥;lϽ­Ùˆýˆ^?ÆæíÑNÐ…[–ï2Öþ«eß§ŽU´›’o¸%$}ÄýúXfn4²wgÞy¶«ï¹V çv Ü—º=®‰qæKð%ÎôOoT¯žtM¢§>noîˆ\?§R‚ó„ŸÜ¾C{fÿ6‰_Zîø–™•­(sþ1@ÆB¶+t2?EØT±»qXV^£ís…×Òâ…nÏê/þïi´vïi¯ý`ŸÒoy·¨:j•¨ö¨:ø)ü=<…#ƒÊ…ªöÂ{*ÕUçÝ#áT{T°Ý—êo?°'õûƒÕtÂ÷]j$RyRíA  òˆô³Ø¶•“­³„Ü­™[« ÿ|kÕù9kK,q{V•þ1^gY¦Ë]çœÒÌ>æžsȘŶ>?)!…[öÆ9/cÕGß©½gÚ‹r#xNkêÀ„>ç/ª§þ‡å£;榳íŸ-?¿°¸L`_»âá?ï ¤s‰;U{¹qéˆ)UB³\¨~ò{ªí]– ˆ/nñ;vjÿ–êû殕4©Áæµm€è47@ô{×"b?¢×÷JÇòÖ½‘yc|¬ÍGÇwsÓÏíï­ZPSP¢Ä)Ç’ƒøØÇûR·Ç51Î|ëô8³Çw#7|§à °S4‘ëçTJðžÈŠOnß¡½O$ðKË5Û\w—È>séó^×,w}ÿA\¹Mõø¹ü’›´Ï+xJ¼øb/x›;°jFi÷Àª!Ù[YýÖÁ UçP„¬Cª=ªN–s™©ö¨:Ó²©ö¨:YÎ9d¦Ú£êLË:¤Ú£êd9ç™jªs0-ëjª“圙ýí§ö¤~è"Cµ²Ï—¨<»   нä uú¢ÏœÈ†¥ Ö üUlHTD„º­©ÚxìË]†µÅ¥ôûVË]”2t`ß0ƒ¡ÅÜtîDÇm/Þ²­ã[áPw=ËÎMW_{E¼¦_LŒ:"B£66չǰ¢x‡Äx±¶ý͉†Ò¹­ÅÝÐæ:}&»ý¶!êë$†DG…kz…ªTu?þñ/ºk̤Gú‘~"{fü°ÐÔþQ!!,”©ŒµæSG´/Y»ÕeP·Û"È öå¾ÔýqÍæęÏýÁqF©_¡‡êøŸŠUú’ãEi×QžÐî"ð¨ý–ªqÃk2ÕUçÕ!‘ T{Tˆ^“©ö¨:¯‰d Ú£êDÜðšLµGÕyuH$ÕU'â†×dª=ªÎ«C g𷟾سjå}/¦ÚƒNÙ@£òTÖ ”  BHDB! @@@@@@@@@@@@ 0¨ÃMx               )E倀€€€€€€€€€€@€ÀQ€4Ü¥`€H)’(@@@@@@@@@@@„ˆ¤¡à&€€€€€€€€€€€(EDJ‘D9             0@ 7A@@@@@@@@@@@@) RŠ$Ê!€¢i(¸            JÀ‘R$Q€€€€€€€€€€€ HCÁMPŠˆ”"‰r@@@@@@@@@@@@ @`€(@ n‚€€€€€€€€€€€€RBä¤ÏÌd DÍå%lw¹‡Œ:=ËÔñ%U±’’2;/é&²žÉê•–a4¶›[êεµo{KAá³w1rˆÓº 6uÌ0õ¯¯–ܯwhXX˜FÕÞ`¬8y¼uÏ–¥†·„š‘׌¿C3äÚa‰ýbBÃ4LÝÞ|±£¡æ×{¶´¯ÝZ¦|ûQüt”ýôrõÈ¡ƒ´±ZUˆ‰¯_ùÑÖ·ç¿`ØíÇÛ¡.#“ÝkVÕÝaöÜäÅ5­ÿéXf¦Î›Ë]×½öÝ®œ8`þ¼/ù׎­%5>ÓsªySdmXˆÊØnª®(oÛýÎü¶b/A®qíØ: J|úê§œÏ1ñ¢(ß (ñyë»—X Ôþ@ÕQ«OµGÕÁOaà©,ð lžÂÞ#@@@@À w½ÂK‡Ë¬hï²]˜Yã(xX¹kɹñÏï캨Ïþ£jÑô;’úrU¦ŸLK‡eW–eìLÓç¬V-ŸªOÒ ä1Tlš=~VƒÐØ„@v$9Þ:ö‡M«#ïJíÝÛAîrhdßnYXùÈŠR“ýBÛPúÇø"L¡ö4磆cï×Ý•³¬Å9•zFõ³Óž.›½ö§é±ƒbX„»5lgþسK<ªM”¹œíÉ‘Î{ì²ãšØÿ2³=ù£,þØ\ôôîÉgOºËíšÿîK>ƵkÃHŠO={aó²¨ÛDŸÊùó3¥kª'Î/6¸_£è×î}O ”øôÕOéŸc¾3E PêóVA—.…¢¨ýª£Ö™jªƒŸÂßsÀS82¨\¨:a/¼§RíQuÞ=ÎAµGÕ {Tî$ÀôÌ–nà*6vÊHm|ˆY£2Lí£Éh4š]ÿ1n–ȹov5m;pÊevˆžå­{5âɱiý{uU·Õt|XônóI1'²_V½1í7I|þ¶Óû ž{îü†¾llÒ¤´\{u\dDÔ¯ÂFºÂüúÖ½íbE Ý•€Üv¸•=6wT|lk­á»CŸ×}øÑŽ %o¿×¸õ½Ý¦¾Í©×$k#T*Uÿ´[¢âŽnl{_n×HíG…äK\»Ú”Ÿ:öÊöõ}†%‡E©Ú«ŒÞ.:·n]qÃî¯Î7öt½&!RsÕ-‘·Å½øÞggb›ªC\»¶’ÏçŸ>ù)÷sÌgª(@1J}Þ*æÐ¥Qµ?PuÔZSíQuðSø{x G• U'ì…÷Tª=ªÎ»GÂ9¨ö¨:a/     ÐÍdÏ ²Í9õîüªû JùgÊ’^¹Ë^ 7â†~Ñj³Zeª1}û½ùBZZ|_U{¹qþˆ)UÂ+er3–Xf,©ª6?xϬzÇUëôO¿®^=éúDÞãgV>´¶LAIÕ ØL´vÐq=ת¶‹,çÇÍPÙÅÍP‰æ¨œÙ±´jâÒ’ââ•íûûܯÑzŽ9¨é~êr׫‹&ÿ:Qe:ÍÍhû½óŒ6®~ŸpõÓ²6¶7ÿ޳Ïz˜Eôغ"¦ÜkóZ˜5®í3²äö?›?âïÜÀÁÇËãEÃþµefåäèK⬨í'^¢ç+ô¸v-WJ|¦/جY6f@‚ÊTa*–UYèRHÁ¶1ÃÕQ|_y™ë+ou^§êC\» öñ4Pâ“î'ísÌG¬+F@©Ï[ź$ ¢öªŽZiª=ª~ ÏOáÈ r¡ê„½ðžJµGÕy÷H8ÕU'ìRA@@@ºŸ?a€ô ZðM¬¨L6<}P}Þ†} üÍÛ¬ ¾w^zçr£T_¢ý…¸¶³ J|Òý¤~ŽQ‰B§4E>o•vª‡Ë£öªŽZ]ª=ª~ ÏOáÈ r¡ê„½ðžJµGÕy÷H8ÕU'ìRA@@@üA@üa·¢Ö«Ø·û÷T¯™yëÙ»˜u‘ŸÂíyîÍĨaW[V¢ÓÔ~ßò¦ë#Ý,ö÷+w[æø4ítí ïÂhí \–Cªîvv?¸À½ê+ÏIžÅue|¤åá²ÊÄLÍÅuÛ¡'? Ö•²B“Ò"3]ÐëÙ¯,û(5rqì¸Ç’cƉlÓ#CûóúñÍUÕêU‚ûoñŠK.®uÓÙ¬q¹¾ÔÈv¾<»Îq–žc ql%p鵟”þ'1>õl ¥/7²£‰Ì-ÙÏN[L»R?Ò:¶KÕugP]¦qMO}†žé¹{Þãç¨Îš‡Ë'ù%rߥúÉX7}ŽI®2úLÀçÏ[Ÿ=¸ä  öªŽ €jªƒŸÂßsÀS82¨\¨:a/¼§RíQuÞ=ÎAµGÕ {T uÎÉð¯Œ-û¿†â2nÙ¡«“Ã-kNiv}h¿lBtWܹòòzëT8vû$Û¯Ù娹œòRÚÁ;Ÿ9y£µü”Uû¿» Ëö$ñ¤Íf“†%[–bkùé«&×ñ?OJê5O~–|b¬ä 6‡¥jæl~>ÊÑFþ¼1Ñüòy¦Š²Æ‘žS4]›Êí;dªØÝ8ym©)ª—Y¤o)×òúŸcm\¹½ VLéË÷¥_J×U/ñGC¸ºPçÊ´Ÿ’Uö×6;Òã3ŒÛBŽiX(ô‚¯ffýÔÄ_£hÉCÕ9@\;óFÏßÞ¿¼×êÕ«“WíI^£ø7ÈXº1žÏ³|Ú¶m½º(Ÿt?ëžÏ1¯AÅøúy«˜#—LAÔþ@ÕQ+NµGÕÁOáï9à)T.T°ÞS©ö¨:ï ç Ú£ê„½@*€€€€€ˆ<Äön_¿ðœm?O&Çä,Q½]:#þJn@…ÕnYœ³ªÅS~%®y÷³­ßUaõ pwÌþíkûd2Ë+ú‡6#%4šüúKVžà²qü~ táƒJöºHž®:(×Jõ¿'×-kìÅlÝ;ÿmn=¼<P¨ý<ÚqÑ{\3&+>9Û¶ Ä ‚ÑÎeÐÙïÍæ°8Íà «ÃTcu׎4Ç>Ä窜g[¾¨eܽ8œé§$¹ÎÈÍß:#:•ûLÖ4n}6çEI÷lÑøôÁOH.9ôÏÛK®*J8DíTÕgª=ª~ ÏOáÈ r¡ê„½ðžJµGÕy÷H8ÕU'ìRA@@@üD@öQ·ï[XüÚÔÔÔÞ©ºú ½s|ÿYùEÉŸl½Ï¬L…Š¢Ã¸ÇTÖWSm“ì”l6;kPþ1æg¦Õð:ZMÜ"eÜK£•]«üO! ËY­z~Ü5ÜÒdÜÐÈþÂê'‹ËÚÉ^b:7 ·ÿàþä½{÷&|zà³ÄSG&%s«m>ë˜Üºîž´"ÕÏÏguî?SÍ?èÖÄÑæ,JÎä¿~l-|äwUÅö*9e³e æâ‘±mYV)´g‹CfÆ|Œk%û?Ðú{~Ï$S…IlðËÉwœøÜ~J"”×2ã³ì0³¸kÙM™£C„ü}xæˆpË&E-£ŠT]gˆk!Ò„4Ÿî/eìɧ‹ëø™”Œ%²)Zk[Hn²wBùrÆjØæ¹µ")öŸ>ùéd'J€öy •õæ6µ?PuÞü»NµGÕ‰ùá-jªóæØuª=ªNÌoéT{T7Ä®SíQub~xK§Ú£ê¼ù#vjªóé    ~! s@¥‘•ó]ý±cGê:tþhù‰ú_j›»~I¬¿^;1¯(¹xÁß'óp¿^·þ"½‘(+³ ñDæåhpƒTmåïÖ?YÌœ$S¯³)ùÞem$s1ûóT}¼áèæÚñs‹ÅgŸ8ì7屃3û¼±ò©0…†…›CŽŸ\ >?ÒQ×9àh+°æûƒM…®kv^|~ó´¨.;NØ0y…=NmZ·wŸâZÁþÇíáõܤëù^vøõù"ƒ_nÞ#Á§öSŸÄ¸–Ÿ¬„}ñã…ÞÓ”;ï¿8Ëy©± ‹6†<|sß~ªö£mƵVT¯F\[*ð¿¯ñY¾†Í[óÅ/|Ûc†D,/|¼ËXÎf¤'Åó÷Šo7.®|Eä^èä½·øôÕO'c8 Tr?oµž^ý¦öªÎ«C"¨ö¨:7¼&SíQu^É@µGÕ‰¸á5™jªóêHª=ªNÄ ¯ÉT{TW‡D2PíQu"n @@@@À?!.nºŒå?QÖær½™é2ëžÉ½?lôЫâøƒ«ÇÌJXüõŽ³Ï•¸äôõ4{•j·”?ã¡pÊKÍ®Å9?°t½ŠsÅd.d;óF%ó[”ÔúÛùÑOüÅ5&œL•L6ÞVÀÎÚÓ³rUÆÑÞœÛûª¡¿‹ûÛö+›¼gV½”玶2$½ËôSŸ»V½bòD 7îh¨ü¡©Ü8Àœ–7ôÁ¸O·lœ5¯Ññ—óú§7ªïÃÇãºß/j’ä“P&Éq­TÿÓ±U+&Zöj>öVÝã…Â3¿„\EšÉí' ¥$IŒkj|®Ê)h¹nG>·ô`\¯Q³‹’nyàtSUƒ±#:q@DRŒ&‚_n±ðůªîÍ—ì8“ˆªã÷”Qæsq-N2ã³¼øIó«7½_=ý¶¸xmÚƒ},QõVs÷ãŵ¬•0.1>Ý|•é§› E@îçm@UN g©ýª£úLµGÕÁOaà©,ð lžÂÞ#@@@@À™3ˆDJ*/a/íÇíkª…–ûªüöH×l&iFK6ý<ö~Þh˃ášÏÿVãmpH¨üÒ­kÍO<0æâÌ-Ç+ùA=sü­ÚåË&„ å%§Éõ“Ë¿È28Ę©òÓ¦œñÿÓ“•ÞXR~±ž÷!4exôÊm1]þè§s3p®ñ:§Ãà2ŽÙq-³ÿe¿ørè-±¬—ºµÜ°Âû?u1 †ƒîh?9\¤Æ55>-¾ìf¹cfÖ•ý¹¶…›M×;q@”N—Ú')†Eœ/ßW¿tÄïª «³ýºÀÞq©:ˆk0’ŠÏâ¹c Ÿœn³Ì$Ss3$Õ›gL{µÕƒeë%©ñ©Ÿ^ýA†K“€ÜÏÛK³ÊyEíTÕsª=ª~º°|ÏO7.–*ªNØ ï©T{Tw„sPíQuÂ^ @@@@ÀOlÏø1W^ø¸ùã‘ûøYš„ëze0ÖDÞ_æL-ã­k¹a¢èèÞª¬•sBuܾ5*îáýä‚R‡ÉBÉ,2Ìì¸r™"uA!B²Ù›/Oˆã~M^óyaÍØ§6´ å’šV¶â!Ó?†h¼+E}ÅMãtìí:efÉõSÇ^Y8¾O_~ņoZŽŸ×`ó#ÊÈæöÂÌ÷¦ÅôU'Ú¹rjëh®ÞéwÝ¡‰ë¬è “×÷ß;Ù¹Öš°0KL^uÏÒø½£;̪pUHów ¦ªé®¸–Ôÿ¸¥åîçfðËE}µ)¿FéI~΂ð¬GïKÒ㚟£®±Þ³¹Y=Ó&µæsÛ‹edd2­–±ò’fë,¡/ ãšWeª3ýÛé&OÕ‰Ç âZœÛãóð‰Ú¶ÿd1¡ R_Áuµ¿›a>Az|2ýt‰—0ùŸ·—pe”qÚ¨:ª×T{Tüì$àò=<…#ƒÊ…ªöÂ{*ÕUçÝ#áT{T°Hðef98ÛlìpÚÈá’¼Ãò/Xu“¦ŧÏyt(¿"VÛ¶lžåWÍ]…e Q%r¿pæÏ[]gkteÂï2Ø_?š{%7×|ls¯ƒC6ªê[;øcSTœB{É÷S—3Wuk¼™{nd_¬´Îéy7çÛ‹93Z¾¨e–ÙiýnÞ›ødÌÐÊå6²öv—­Xøkž^Ý×Þúßc³ïŠà—ÓÔjY¥å<µ”ðµnn?a£|ªÌ¸¦Æ§€»w—°ÇÁ!.ÏÃwÿg8¿œ¨ªý‚ñˆ€†O¢ê„ŠC\ QHS*>³^VY÷ê´38â›æG XìL’ŸJù)î®\¢HŸ·—h]s‹Ú¨:ªãT{Tü´pýžžÂ‘AåBÕ {á=•jªóî‘pª=ªNØ ¤‚€€€ø‰€¢3ˆxŸC;†ã†lÔÜw^eìÈÙ†æAºÈ0m|¢¥¨šý¯U8nÕž5TÂ?¨dì ûÈif‘%ÿ)Dàá?Ï cŒ`µ‡[žUpY²°P ·| ?¡Õä²ÉsŠŸ)‰Ñ–F•©ÒT¶•ŸFäú*gÅŸžj¸eÜÀ^fuˆºwù-—}•\s7•FÞ›ÑûäöÕ÷¹ÄåànŒkÏý/‡üuï>Ü¢~ìÌ‘O›<Ïp­έzæ¾$7®]÷ýrm=Oñéš×ý<ƒ KëÍ-·hbç¾,­w¹%»gïJ¡ê¼}® ®»sû9ùþ¹ÉÍš1¬8wŸh<´þüªŸGu,70!4ulï­‹~hËzþmË ¾Ý&7`(ûóA ?=Àq  |ÞJÝè~Òûƒïý]Ž×ð“§¥Ü÷ðOyßoÑßåܯ@@@@@…gå0ýÀ0nõan6Ï©o¥._%6ôÁÇ?Ú÷â&ÏÝjp®œžÝù ½ù4SűF¡}‰œóã̱v`ºélüÍ}ùqv|ÇÊÿŸ½7¢HÿÿkŽ$ÃäBB.VqózAº«ë©ç©wÝ]OWÕyéÂÞ´ñ×ôì²ø0 ÔZ~¬ÉuæÞñK™Å2Ò§ ΤŽ0ײ¶ ­J•R0Æ5]î<"¤Sug¥‰è¤q§¸zÝEûKI`…ÙvMìëÿ¾êÒ–\ Ç©G~-¿€ÖkYè¸ V?;.z8·{vv@IDATH^öGÕ•ÜrŸüŒÎâç $×#ªc¨×ŠB4Ø×ú™»ë¾(~¦¨ªþpKöý/´åÞn~óDËy^YÒ™ƒ×¦º¨%ö»¾ÚébEÇ©{Ûq =‚@àî·="{D#¨í*G4“QõQå`§ø{xŠ× *ªœ¸]‡RõQ庶H<UUNÜ „‚€€€ƒ€<‘>­\–©Ò‰Z–ÊþY4 m¹7{/ÿI¯BÊŒ¶¥è–6 ·ß¹è¯´àëáz•DZ§¬ÈRŠ0s[a˜ÙGÛÿÚ š½RlH·ÿ3°ÇJ-^t¸¨OÏR,ÏHîô¬8\ãm^¡Ãm|ϸݦö¿´®ÑårÇiòƒ/*®Yœ8Á²„C»r£ÄëhgñÇÍ­‚¶xv{Þ’~Š;ÒYÆäa܇ܯæL³TÇg‡¸Ë¹^ûÚþ F®¥Ø~’Gõ]lÇ)·‹Ÿú¥@×k_ÊJç¡‘é26(–Mǧ]ûÙÎsO»LC#É¡^ûRTn²¾ÔÏ´u»BÆÇ+#«fÛȬ± 3ç©ÆoZ”\·¡e—l‹›å¨•Øïúb§£zþXÒ}ÌUçÝB Ø÷ÛnÉ$A)µ=På& "T}T9Ø)þžžâ5ƒÊ…*'nEסT}T¹®-AÕG•·¡    Á ÀÞ—IV”²’í_39Qc1Yªþ±±ìÌϭ皘uPÒðºÄö/wx}iå\§eµR؆ÝÙF÷3©[- ÁÁ  T…kÜWèfÖTßhÛˆ†©Y˜²NùÖÒ™ÕKÉ鳨›¦' £óõ'[Þ}û½ºÒª0ëè‰7kÆŒå·SaõGòknºç9Ž$Éùëóiåœõ’*‡[bH Ó‰7ÏŸ“#8{’—½®Ê™×ÖpÖxò»RÃÑã'MeUõÖ¨¤‘ÊqãÇE ‹V ΘS{Ÿ<{»È²Ev}K·ˆ˜6TÍ-iÅÿšØžìß–¯™nDµ“OõáüýÚ™º0nù5®FÖüÐ|àƒë–-‰W^£Nž0zÐaæ½¾ðÆòŽºÉGöð³/áu¦huå¬ÕEv¿LglJ½&·?›Zýƒ[•fˆ÷ưÓ@y%@)?—ƒQ¯]Tvœz¯Ÿ©,¿xilÒ¹Ò–/Ž~Ó|â§rs}‹†÷»°I££ùïÿ¹v>©½w$ʈr¨×ýuD©ŸÜ¾Cûº>_²õØŽ…w>Sâü1@Êr¶wÍ”D~а¥lŸalZ¶7×—~—Qìäöã"?Oðã×íü}¿íö ùËR{à”Så¨vSõQå`§ø{xŠ× *ªœ¸]‡RõQ庶H<UUNÜ „‚€€€˜€<‘~1ÛõììxÛ,!wˬ-•¦ÿ½²þÜÛŠ–¸üâÇcu²DîrÎ!Mì]Î𨣠e1ÛùØì¸$nÙ縌Uy­æ–{ÖÁ9ä FôœVÔ@}Æ?ëæÿJp3ÇÚPn|/í¹å%"ûþtJÜõ÷=aw·/q§0–šWO˜W)6‹‡j§M“Žeo~R“::6ºSs瑵á'ãë—UçºL™èŒâtd€?Í9ˆnsñ±åÖkrû³™ÖÉÇÀ9Ùnu²9e'Þ È-?—Ô‚S¯]”¶Ÿz¯Ÿ\?ñ~NœN¤¿åƒd§}É&‘IhD9ÔkñBò5TVýäözÿþ8~i¹ú£Ûkoò°Ï\rÖ‹ªUÓ/ãoÄ7VÍXR`êìWº6Øñ‚ŽØ²ìä¥h÷±}8èü{¿íòŸ ²ÛC»jªÕrª>ªìÏOñšAåB•·¢ëPª>ª\׉Ǡê£Ê‰[Pç j7DŸ:‹Û¤|”jØ/¢Õ²µ¡Ê|ôÓ½¦MÅ^ú}ˇŽe®ÈT_;l`¨ÉÔlm8{¢íЮ'L¯Ø×Àñ-qHŒ€ž¥g&+/«¥ÔhTJsC­ùاûMÏI¬/¶²¿:Þ¤.Î[ÒRÈ2×ÏbÌ2|p„ZÍB˜Â\c=õå!ãªM;]œžþ&¿^wOûóW~ûZ:ò˯“@ëu§RIG:}*wÃååCãÕ‘aª~! EmÙw¦ÿþë “7)UŽ7 õZRÑÈŒäKý”©Ê§è½ÅNŸ2 aWA¿ßºÐSÏ©í*Gå@ÕG•ƒâÀÓ¿\À³wó·¡    Þ DÞ“ÄUžL@Ù“ƒm            þ'‘ÿ™"EèÑà êÑÅã@@@@@@@@@@@@Àÿà ò?S¤           =šD=ºx`€€€€€€€€€€€øŸDþgŠA@@@@@@@@@@@ G€ƒ¨GŒÿ€ƒÈÿL‘"€€€€€€€€€€€ôhpõèâq            àpùŸ)RM¢]<0@@@@@@@@@@@üO"ÿ3EŠ            У ÀAÔ£‹Æ€€€€€€€€€€€€ÿ ¨}K2…-[—rÕe1áá\B­f£¥©þ\Ûß|ÒúZîs‰CâúÔTçpîé°©´í+õtá~' Ó³T_2•¬°Ð±ÄD4éRØü©c•¿¼|Xhâ þ!¡¡¡*…±Þ\vòXËþ«M¯x§Ê‰˜ 9H7‹=ñHZ¿‘ ³Ùhm®=küüÀîæÜ¼"«h¼3&ªÆ\:44~PTH¨Š)MmõÕ?›>ݿøig‰¨œÏõZ®íÆ'g,WÌ™tUø`m¨ZÁµ»ª²ÒÖ}¯-m-Ø'š;§Àô×*']{…6Z«P[øò+=ÒòêÒ'LDÒ¹àOº£^»@×¥¤²ÑÑVEÍ‘"«·~“Z_dËÛ‘=[²õÙ¹¿¨×0ì‡ÄþÅ..ë¯íÁ§ò“s“•)Dö?KMÕINö‚|&”ÙnÅžCšš*Ù™}%, Ó2íì(tª\G2äêëèOºÐÓTÊ ½Ýx»w»,×N{T9»<õo'ïï:}*^3ºÐSZXèßúJåB•ë"/ûªOb9xÔ Î¨<©rÎÚ¥ŸIÔ'vSâ·{­ïÌ×ö –9)ayv$Eµ“*סXæUäd‚Ftè\6Ê(YIÎÜ üË\}|¤¨°™½›}Cù£#Î),ÿýœ8]¨U%Ý!°b荒3ÛÓæ„ÃЧ?®X±`bÂ@.}…å¸eõØôŠBQ]:ö×mÂoÞ¿¿èe!Ð̾ޱ¼âîgŠ-q¨r)PŽôkçë´"¦Šš±¸ÞÙ—•¶?{¥Æ"""Õ}³ö¦Œœfçë¾ÕkùvòÚõì‰í9ã†FD9Ûb;;S¼±jÖÒ“Ø5¦Kg/ümAôQLã~½šíY3­|•xp~A‡tO½vCžº–íÏžÆ]ðÜoRë EŽÚŽøœQôµA½náü‡Ö¿8§!íÌÇöàcùI¿IË b˜@ÊJ¶Íd¡ß’¢Ésß&Eº÷Å‘ßn½?‡´5œ5ÞóÏš…Ï9<›ùÎE¾6T9ªÅ}ÉË^QåLÒå7m!eïþ/í¯ªmŽr;yyªœ£nʱœ~wéöÿELª}fíÔíúÞØy…rDåB•£ØÈËøªON9Pm¼ä¨<©rT¶Òõy¿?8ê÷Ͻ֗÷ßÛƒc~äKçiK•Ún©rròâ—ªr®ãDŽTq  }›ï°yHn§¬xI½òÖ‘qüÀd}éºO?UóÜ¿ß2|úÍ·†rƒµiPL¨êç_nùà¤=å‹Ù´y“´±j«Ja1YŒ&³Ål6[]ÿ1nÖÆÙ¯ö6ì:tJt¶†=5üõ•€žeo~N³hÚÈÁýÚ“R¶V·½ÿzSG‘9©¸ŽÝ»drltKé›Ï>®}û¢ó…¯¾aØùÆ>C™e`Óð‰ZB¡<òšˆ˜#[ ‡ÊíÂT9»<áoúSŠÿÜó›>_­§Ôç>úè¹-o}jhP%5_zIL¸&â¡“'±¾¸ó}cgê#YZú5Zó©/ {÷ìª{mGAýÎ7Þ2ø¦ºaÐp">"$4lðeýR/ªk~yÿ·ƒ,>Ôk’:öôîçŒM P+͇^Í?»ysAý¾ÏÏ_q¹*.\uñ5á7Di|ã£r—6¤g›þ³2zT”Uc®úªé?Ï®©zjË[† ÚÆK®¸¸_„J«Ôý&E{þ_¯5~Ó G¢º¡^»Ù‘Â^ØxwL|»Ó½î؆W>øÞ¥Ì©õ…*GmGT}<Ôk·ªÁúÑ”$úÒ|)?¹÷1 YA”Àˆ¹ýáw—FòÏÞ~fî"¿²xßæM²_#µÛÎçcÍ™æ3gk›ëkjZ m*KxxXˆ:4\•4r|Ä Q'¸ç?=[“ìäÊ…*G-R¢¾‹¯»UùÛËD0ffueg •µu­çÏŸwúWߨh¬8ùYË®w;< %ÚtžBöä÷»¿™‘rÅ@µÆÊ½CüôcUC]}Ñ•gcãYã×û^7–t¼?Yòb½…'ÕNb9ø@ô•_¯mP¨rT¤rõuÞ‚3þB}àxøÔ‚ÅÓ;ƒ?ª>ȉŒQëä@@ ÷?ƒ(í)ÅÁ‡®Oà=KÕóª¦-Ù">[Á‰Eç%§^_Zy{n1ÿî_7ÈÌy!dú„+E*­J…¥Úòõ·Öó#GÆTKÍK'Ì«Ü'j“Žs \ªØYàay6î‹à½ÜÁül²3E«+g­.j/_ªœ¨S¹™jË„™jŠª›î¸eqãò*ú_Tn˜}y<ŸÐ±­ +îÜT"éÅþéÝ\«Òº3¢ÖkšÉ˶s_µSXÊ,ycÓ*ò\ˆäî:5>^¡°œ¶<5ö¶ŠW®ë2ŸWæÏýe<m5wÍi¢W~ïqå§e­ìý5ËÿìtÑ!¶v½vïæw4óFGEÛ¯8·;[(µ¾Påì¶xúë©ù¢õZŒ6­KIZ½=PËv“–Äê 8ø»kc®ˆ0‡þ°caÅÜg¤Ý«{‚åt¨íÖñ9d!÷|]âð|=‹ý³hñÀQѬŸ²åÓýÉó«œgOS¬¥ÚI•£ØÈËÐõ%g½¤Ê™>Œ›Ad`¯Ï»±<×ñA’jŽG9ªT9†tyÚï.ÙV~ëpMÓ‰×Ο³®±KE>E r¡ÊQ¥ë£–ÕÒ¾.GåI•£ò¤és¼?tÿø‹§÷_úëàò¤¶[ª5wT}£ŒQK r  Ð ðhÊú­½clÞ9d)ÛgærN^"¶ð—sœŠ@*Ÿ|E,ï:âÃó«ÇN«xâèùÖ®µ•2Î!^xß›ìTƒÊaFŽ=Eªœ]^Þ_}æL¥mC+zÖÙ9ħ48¼ï~WÜ<³‹å.ì1{©ød½ýÌSí•S¯ivêÙí†ó«²ŸÞÚXåêâó¶¨ç Óªª¼5+Ùi9ǤèH!烈Ž4¸ùöíg§Z”œ£7Œ%]š,»Oàu_X¿àÖk7¶éëéœsˆŸEv¼¬ÅÃò6ÔúB•s³Ò-@¼ù¦õÚ 3£õ/îéH¡·ZùQïcÒs„˜ÝK 9ënïb5ÿk^uA8‡¸¹~x~Q‡ v)¸WØóœž_¬Jr˜ËUÊ)ÕNªÅF^Æ?úT,tÕirT;©rÒ¬‹å{¿«P…t<ƒ‹iðG• UŽj3]Ÿïå@µ¹oÊQyRå¨}×'ç=•jeWrâïþ꯻ÒîxÆ“Ún©rŽË9¦êƒmœHNÙ .€ôtòƒõËÙ¯c­Üy+ûh{vCOÏìs%Pɾ>¸¿jãÂëÊož³¸‘w$…ª}aÓcCøÁîWWqVÒ¬Á2ªœ ìþßä±—+æ©j¾m~Ùu*”n1»—›}c—²ÆŽÔ.¸OöE±á‚³Eaa–&{>ü%Ù©OaÃÆvä3ð ²Ó‚£‡±‹ô“œ}Y&Ûêc! #ÃS]m×ëÙ/„ý— \ýpÜCÊ5"Î%ðs½vÖ9‹m»ûÚÁ|…üþåõU‡êâûµQë UÎÙHÑ3Ñvä«>Ôk7Ö¤þ…KEŸ¢gz®/Ð{íu¶8\<É?oíT~ºIÎ"”€n[Ü>{cÏSÕtòF@3"/qj»íJ ·NZÇÏeÅŽp9T;©rrlsŒl}ŽºåSí¤ÊɱÍ9nïèw©\¨rÎŒ¤ŸÑõõŽrN¢»cRyRå¨ù ¶>ªÞåDß8z{ð®ÏóUOªT9Ïö{¿BÕ9Ú8‘÷ÒÀUè]d9ˆæÌ¹.”_FLÙrÜT´“¹ìw!-ãm¦³Ò""V”°ÕKþb*ð}'ÛΞ¢å§¶(Œ?š÷æ•H®T9'å')ì’Ä0Á)R}òË&×A¥593#c¸¸gKKëlS.bظÙγl:’r:Hg³Ç& Ky5ÿ¼ÁÕïd*½^Sí å¶èâ*Â7BÑ_³{ T±#´³âç¾g®àέ¡ÃUoÌq̈­ÉšÉ'i)+1äú¹n8˜pÁú·^;c{8v8·ï?ƒsî¦bKD?«‡>œZ_¨rÎvºŸyjG¾éC½v%Mí_»þkûmذ!qCþþÄ :‘8çdñÖX>ÎÚ{&Ú·¯s5ÀíÜ[{ •_`îcn†# p{R=3o ¯þ¹xsÕ*O7Ün°,°*éí¶+»úq;Dòq”ÆFseW‘»¼Nµ“*×¥A"[Ÿ3º ¦ÚI•ëÒ /zC¿KåB•ó‚Ëë%_ôõ†rðšùv‘Ê“*G;ïú¤¿§RmìJÎÓ{€/í¡+ž®SxRí¤Êy²½«pª>ÈÑÆ‰º*\ÞEÀÃà¢x&†ÆG ³DŒ•Ç›;ÞÛu)l~æƒÊ¬¬?©2Ò§Š *9§•8ö‘ÈmÛ¶…oËߢ}vÅ#êY)^?WvÆY#œµU5S>€ŸUöñóËÏ:î{ãÍXªœÇ4¹/Ú„Y0Œ5Vœ´ûI„èüÞC)IÊHeËÓêyùMUF…°F¿Íáâ1E65c•âÕâb/âäYÍáæ•ë=~€+¹^û`§}c“‡EŘ®“54F5*Å1oyìù½e‚w6lèÍQwoÊt,;ÿ¿Ú”¤HÞ¹÷´lO);&„c/ü^¯tñûµÌÔ…qm­‚½(¡¬¨õ…*ç`ªÓaWíÈ7}¨×N°}è_Ögü¹ù“ÆõqaL??7Áu†åšDçúXUýá–?g¬óØ:ÚÓu{@ù9òºÐm^­mîÇ;Ào]úª„ý-û1Ú­wì®I ü˜ûnÏK5>ÿAµ“*ç=sž¯[ŸgK¼_¡ÚI•ónMï¿JåB•£ ¶>ªëS$¿§ ×^ßzK{ ÚI•£–UädQ‹r  Г ¨ågl5[S3cC­0¦—½ùUÍïF'F;´gÜ}Ÿù³=ÿ¨^[d÷T¨¹}oøƒÐØ!Úá±6­ÃuW²koœÁî­:ÖTôÏÇëž.t÷a‹‡ÿ{&]ÆÅcÓGÄñÖUÌ«ZTP*iöUÎ+ÎwÖ¡¡¦ÁÁŽtöPÚÜÂümì£-÷T—°Öbá‹cV•JÍ×ÉŽzšÌ9’V;4Þl4›ê0EˆPg-¬ê³íçn¹½è^M²ë5ÕÎ’Ãæ*ãTsd¨VuUê5+Ùãäã³~× aÂ&Eí\G×ö<–Ö– }¥êΆĪbÇh³?Ì·-CWÿ}KÞwÔ´Ëá@@êu‡)é,gÎ(®[Ù;r*ò:Â=”f¤úB•s0CV;òƒ>ÔkøÔþEèKØ¢ jwå§÷‹gñlÞß6ErS¦0¨<3çµÞ‘ÌX5Ûþ€-ÌA«è¡Ôö€òÅwÁòrÜÆï­f)³\p+øÔnÅ«J2÷Ë¢¹“ÇqÏ1µG¶×Ì}ÆËÇRíŒ 5ûú|&žK¡T;ží)>U‘¢Uðkk»ü*Ya¡.7ªÁæé’sê©RÝ_‘Ê-+ËâÜi6•²}¾¾öžT;Eê'µ, wáýžê4²ÞzK{ Úìþ:ØvRó×[äÐïú¡G@ ½‰€ ‘žéâµ¾Ÿ,?jhÍÝu(j|¼2ÂÚPnüü‹ÒóçMýØÅW‰=¨ß¯§/‹ÛÊXåÜ'‘•~õMIcT¶´´YB"ªbcââµÂ25ÚØËµ³²óµ¿þÕêÊôÕÎŽ¥Þó‚²5u%ûû|}ÿÒ_Ï >ÌXRàêÇA•O­3”›ûbóô؉’Îdû=œŸ¡Ê ´–¾^·¨ÀyYÄøá—ñæwÚí°“£Ó3zTê€ÿ<«¨ý럞5:¿¿ê5ÙÎÓ'ß?P?|dÔÀ¤ï¼ò«~~tg§Cn抭껮8Hal6·…öS9ÚogÁÿÝòñ—mÓ¯ÿ…%¦ÝaˇUûaCžsÆø`üäT½n·á±í÷D$qeÖvúíú¹’6m/d´úB•s€%«ùA§õº?¹iïK7²¬ºŸ_XpM‹£Y›w_¿ßþghóÉ ÜgföõÖ•OKé+d¶”ŸCû¹¹=}y<_Ç¿¸´ò‚ûXÁ×vÛ^g†L]÷áÔe5ÈÊÎo¬šµTâ󙃤è!ÕN3ùü|&j‡@ªŽÏƒBÒZvýüe ׋ª9ÍXámå…¢×$Rí 6O‰Ùé*š2i|dö†ñ¢‹$WﵜÝ÷˜û‡O]¥ét½·ð¤ÚéV?r!@xOIEvœ÷€ÞÒ¨v»¿¶Ôüõ9ô»²›?@z7¢HÆ/µÅý†ÝrÏ eHýÑ×jor^j¦vÑæ=Í·=bú‚¸¬}Eå¶=MJØšûK\g`41]jí#™ríÅ1üHý%SÇ­ü¢¨üQŸÞ¸zwô ëS—³=Ù“ù·¼ÚÏþ}nÊýÿp-[ñlPåÄSë:4}½b:·$ÿErÞ¼'›\:¦µ_(Îk¾!—•Ûã%§e*fΘª½zxtÿ‹¯ý}Ì¿w_ÔtÇ-‹ë:ÇGýT¯%Ú¹>#·ù²¢5Ü<1ý&?”ŸpÍœÓ •õæ¶Èø¡š„(•†_&.oÝç•·fOOtœIdÏ>s“ò™¹câUœŸÌTñ]C©y¨ud’&2æÚ;b>Ø9ÌðPZ–ÁÇïaíª.¬¿®×ú·*oªŽâëñæÛV4H…K­/T9»]rÛ‘¯úP¯íä=ü•ؿإK YŸ»êͪ7ÄÄjGÞ1ðÐ*E%×gÔ)¨¹{S§óÝßí¯Ìö€òs#xèØúgf û5}¥ö¾¼Î.0ÎÙ•ÙnyakK£©±ÍjU«5 F‡ I^ûNþˆºæýÕmoFþºÏ?‚‚NªÕ`’>3«+;e¨i ±¨TV§%´­Ç-¾ïé$’’\:T9dm©4,olR©TÎ,Õ Å™Ÿª\Éýc• UŽju°õQí„\/#à§÷T™¹–ûà–|oiT;©rn $PõAN"`D¾C@XöMZvö±ï*¾jîÅSÕð•q™³sHHfý=›ZN{¼ dÿwS²§‰ 6•Ü’OüéÆ?nùâgÛ›–MJ_!ÍÄêú,öföÁQýñ¿«%;‡¨rR3Éy«l•MË.ºŠß`=…åÏÿM öýîUb_$W|ý¥×}4Šwn²Þ?gjãÂÇ*øúi½N»6g¦0èâÕ,oõÚ';÷±Ì© k üTÓÌ-“×?~h„N7|@BÓœ+=P·zÂï+ó¸ »××ÉPŽÿ Á9Ę¥âƒ†Œÿ_}FZ²¡°´±ŽÏK÷eç³»r£¼æ Ý º^ëp_ÖèòËú6“›ÿ“³•Z_¨rîxø®Û‘úP¯¡ûÔ¿t&U°dšé½Ó­õ|ˆ’›¹f®ú°é{žkéŒááHn{@ùyy᧯{*äšhÖOÙRjzÆË>}šˆŸÚíé·ÿR3yòäêääqU×Í[XžWôy%÷11‹ÒÝ4`ËöÕ>ïøIµ“*G-t¿ékbû—¦æÌù}ãm·ÝÖàøï÷ó²›|þ †j'UŽÊÓOrm凚æÌ™ãÎ2í÷†‡òJ–†&*¤r¡ÊÍdÁÖGµr}—€·÷ÔäÚë{@oiT;©rÔr êƒœñ®Æ‰Ü }€€},YRVLæ6îÞ&rúý7jÅ_Ž Ùgj>\Ó_“ÈÏwùUXiÞ}Öw'¨ç¿’WÅ]Ö[¡ºaŸ$‹)¸ÒÙËOΈ‹á¾&¯þ8¯zÚŸ¶¥é§ÊIK]ˆu¦†ñCäZÎMÙ_‘öìÃ!:nCuç ™›[ìPYxûL8©©—O@ô=5€¹}è-íj'UŽZT}k'.œˆZTžH@Æ "ÆŒÍ–Ž½]¼eÆÚ¦¾‹ˆMtšÄàM¦Ip>y‹kÝK …ýó…ÑqΕ¦£Ûk¥;‡¨r2s[ú «jPy©Øä¥Q¼–_±¦–íÊɾ‚ïH-mŒ"¾}ÿÑY1*ëZÚøKDL¨œ¯pÝêµíÜ·¯Û$ÙÁ9ÄÙw×Í¿ã—kTÏ›¿ä æ~ºŒ%Šëbù=–Íì“çÿXÛá7²]fë2hþ¤† ³©]5¾?ç Å¯KAª×¦®ÔÌÌh4;89»4N4‚Ôúâ*L•sM‡?—ÒŽ¤êC½!ì¯þ%í)…mß¡vQ£4ݶ4\Dc{üö€òóLóB¹rïC7iøåPU5Ÿ5?s!/-ç¯v+Vqvn·o6ºèª«ùïGè?ªT9ª¥ÁÖl;{Kþ¨\¨rT.T¹`ÛIÕ9ðBÀí=ÕK\\r{vû£f‚j'U®·ØIÍ_o‘£–ä@@ —å Zÿö×-öQJñ%x :ö‹aŒšUûi×KÒ´ƒ i_ ̪dJn$¿Fி?6*ʬa5‡›ÿ,cªœüì—°/Ëë…u¶´±ñZn¦4«>øB•m¬ÎÔÒ®Õ©y cgØ;N3‹:㈅†ØÖLWXZ,b‹y‰Éðaîõ:v¦°±#û ËÄý´¸Î>Ã/)>Rhç K…¥d'?ÈõWÊ >8%8Ò¬Jµrëeœ»V½Öñ¾î†ò &TŠý{ãDËyÞ¸“»—Uñ×ÇýMÅõ³‡ÜÌv ¯/.‘DN©rŒÑÚ‘¸>Ôk‘¢áf~ùÞr3;˜ï' Ÿ=nõë§„­6B†Oë¿sÅLÑYÇ”ö€ò+¿ ),ƒMúeÿ|ŽÏ|ùAƒ÷Ùi}‹?Ú­'F%¬¶Á$|<£/ù£-ñÔ¨vRåÄ­è:4Øúº¶H<ÕNªœ¸}'”Ê…*G%l}T;!w!pO l®ÝßzK{ ÚI•£–UäxâÔq"jiA@zY"¶ó]ëia!Æ®¼Ú6Îî–£Éì"n=yÆZYù©2I3ŽË`úa¡ü˜>k9õ•á‚]fÄep<:æt ØŒ« ~ƒcEÏž·;º´Ž*'–pÊ,–‘>Õëòo½û}çžBœ#kå’&ç¤ôìÆ_ÅõçÃ,eG νœéÙeña>Bkù±&×8žÅëu ìL^öGՕܲzüÌ©âç ònÛɪT)…Lˆá°òG'D‘ˆâ|àÄö ÆNB½s S‡xl½®Q;Î=×—Ž(¢T9Æhíȳ>Ôk±òµÉÝu_?STU¸%ûþZ‹ro7¿ÙîˆLº1sðÚT­äö˜ò“ß\òƒÓàHI`…Ù¼Mìëÿ¾êp¿ Žúž¦Å×vë9? Ø•ñJaoÏú“?HþhËSzT;©ržìè*<Øúº²ÇÓuªT9OvøÞSú]*ª•[ ôõ”r réirTžT9jþéúÄßS©vt-'þ¨öе=â1<ñ¤ÚI•µNÂ{#Uä¨ãD¢%…@è•ä9ˆX!ÛõIU ŸÓ0]ê€M™z7ùÜ]ˆâvTgŠŠƒ ‹ Jm³ôélå²L•øÒ\©ìŸEóÚ–ý2°÷òŸ”3A£WBïIF—ù}¥ø=kÚ,ÂgâbÆ ‰ãööávâX©D§*'èêü/ùÁ•×,Nœ¿`Y¡]¹QâõˆÛ£àëáz•Ç)+²Ô£"ÌÜ+föÑö¿6Ø5èÓ³Ë3’=:Ÿm^¡Å8ß ·añKëírŒX¯©vòzu2¯ËØ X6uh§ö³çžvø»ø‹ãæVþ‹g·ç-᜷®¿t–1y·$÷«9Ó ­+—ó ×kí²N)õ…W@‘#·#¢>ÔkñªàKÿ’¶nWÈxa0¹šm ³Æþ1@Μ§¿iQrƒøZ6qɶ¸YŽª‰íÁŸå'é>æh3Ž»Ÿ€ÁÈ݉m¿ Þ;Äað¥ÝÚ ³ÍtÖ~(üÕ¥,`/¼“m»¹XÉûŽŽ8E•|Bµ“*'Ù0—ˆÁÖç¢^ò)ÕNªœdÃ$Dì‰ý.• UN&Ñ(þÔ×ËA4Ó½$Ê“*GÅ"Iñ=•jõ=ÀŸíj»žT;©r®y ôxÕξ.çZ8¾L€/“—A=[_´qà5Ñfn ÙÌ~þì½s{>úÞš4RyCʸþG©4üRV[ïœQ±Ñ>H²’í_39Qc1Yªþ±±ìÌϭ皘uPÒðºÄö/5~x}iå\Ë~ɳ±KavgÝϤnµ(G*4R®Qp³N̬©¾Ñ¶ÑS³0eò­¥3«ù%Ú’³^RåL&8º¢h:ñæùñsr' UÎUÇÒí"¦ U K§ñNš=Ù¿-_åi>‹½¹az¢0 R²åÝ·ß«+­ ³Žžx³fÜÈX~»V$¿æ¦{žëp$%/{]•35.®­á¬ñäw¥†£ÇOšÊªê­Q\7~\Ô°h•àT9µ÷ɳ·?öª°‘`£/õš`'c©,¿xilÒ¹Ò–/Ž~Ó|â§rs}‹†÷»°I££ùïñ9þ“Úù 6¶ÿ÷pþ~íL]˜°œ¹æ‡æ|X´ÌhI¼òuò„у_rØë o,w]–Ï1ÓÛƒ+;YõÚU¸ý|ɶâð[‡kúŸ)Z]9ku‘}¼µý*µ¾ÐäÈíõÚCéúLé_¸}‡ös›ÙóSƒíXXqç3%Τ,g{×LIä§úZÊöƦex }éçiýí>ÆÛŠ_Ï! p«rÃìÜ÷D]ÜÓ{ŽÉ·„Òn¹çº-ÅÇò³‡­-&Cû~uV¥VÙ?BÍ}cûçîén÷ûU™Ivr:¨r2ÍëˆNÔ×Ù§©ní .Oz¿kNé(Ñ÷l£çg{Q½‚'g;ÉNz9x uSyR娸‰ú|yO%˜Jà”‘ÚÁHA„È“—¥ÚI•sÈ¢¬÷Fª>ȹ9A@ ÏÝOÀ{®KØ¢©ëj7í¾ß:&6T›põƒæ_}c‡ˆ¹æXósÞY[`wñW u¬–sHÄ+C”ƒ’.‰äÿupÖ–JÓÿ^YîáMÅÎRŽ‘pìý##B¸÷õULå´Y¸S)ùE=)‘Šjƒ‰ |;LaìÉ9ħ^’˦e›Êw>6;.)êbÍäÙñ“´Vy­æç©¡âgK+‹caƒC/½zð K¯¾ÁA‚«Ÿ åÆ÷òמ[^Pâ¼/õš`'?Æ”JexÒe‘cùNV¶²SwTݾd“èÇØOÎûcSØæ'-©£c£UÑ#úMœÎýë·ryüÉøÆúe‚C°#% «^wa‰‹g¨=6µ¾ÐäÈíõº‹Ò%\–Ý¿Ø÷²²ú£ÛkÝœC¼ ûV±Ç_^¹júåqª¤”È]ëÒ[f,ñmFµ_ê÷1B)öi‘ˆPuû¬]ñÞ«OgÞSæd·[焚ðî)ŽûàÇö3Ìç~>Ýø¿Â͹®Ï/öH”¿T;©ryŸõ©nRí¤Êyöš~—Ê…*GäI­Ÿ½¦¨\‚,GåI•£f¤Ï—÷T‚¡ô÷NYÛ‰'Ï„j'UΡd½7RõAÎmœÈ¡p }žaQ'}Z¦âÖF†ÄF„©æë©’·ZWå9¢wFgúÔYlìÈQªa¿ˆVGh4ÊÖ†*óÑO÷š6{”qÇáK@Ç2Wdª¯Ž7©‹ó–´Ø×=òÊÃ&sí°¡&S³µá쉶C»ž0½âQVÏÒ3“•—‰U ŠŠRj4*¥¹¡Ö|ìÓý¦g <×iÞßêµ<;uúT6î†1Êˇƫ#¹v×/D¡¨-ûÎôß=a*ttÊzb£ŸÅ™16døàµšGR˜k¬§¾X&Or~»»_’s#g‚!–­K¹ê²˜ðpNA+×Ï4ÕŸkûñ›OZ_ËÝb{¬Œ=(Uj»¥ÊQ³NÕG•ƒâÀÓ¿\‚ÍSÜz„‚€€€€@P (8meÒ5¦°ü÷sât¡VUW2{WñØž6±xúôÇ+LLÈ]TXŽ[VM¯(‹Ø¦ÏØ X;_Ÿ ‰cªø°á¡‹ë/ÈAr‚¤—ƒŽýuÛ†ð›†÷ïï9}3ûzÇòŠ»Ÿ)¶tÆIa[нRc é s>ª?úfíM9ÍΡÔ3ªíútéì…¿-ˆ¾"ŠiÜ-¨f{ÖL+_å­¢Ú…RײýÙøsñv@µÓ7žhGöòÏßàñ¤Öùì²~òrzöÄöœˆqC#¢ÄR9S¼±jÖÒ“Ø5FlGòyúç~$š‡>(Ÿ'5ÓÝÛ/I¿Qó¹@HÎÜ üË\}|¤¨3{7û†òG%8£EÅ{i µÝR娘¨ú¨r°Sü=<Åk• UNÜ „‚€€€€@ï!À;z’nîÅlÚ¼IÚXµU¥°˜,F“Ùb6›­®ÿ7KäìW{v:å2;Dϲ7?§Y4mäà~íJ•­Õmoç¿ÞtÒ“éO)þsÏoøø­§Ôç>úè¹-o}jhP%5_zIL¸&â¡“'±¾¸ó}£§$îJ@n9\Çî]296º¥ÆôÍg×¾ýNÑùÂWß0ì|cŸ¡Ì2°iøˆD­F¡P yMDÌ‘­†Cåv}#YZú5Zó©/ {÷ìª{mGAýÎ7Þ2ø¦ºaÐp">"$4lðeýR/ªk~yÿ·Ž%»¼Ü¿T;y=z¶é?+£GEY5檯šþó욪§¶¼e8Ñ m¼äŠ‹ûE¨´JÝoR´çÿõZã7^ÍJa/l¼;&¾Ý‰Zwì@Ã+|ïÒ¨vúÀíÈk©É¾TžÔú"–+)õSÇžÞýü€±‰¡ c¥ùЫùg7o.¨ß÷ù9Ãà+.WÅ…«B¢.¾&ü†¨#o|TîR·‰íˆÄÓ×û‘Ÿ>FâIÍ{wõKrïcÔüA.¦¬xI½òÖ‘qü‡õ¥ê6>ýTÍsÿ~Ëðé7ßÊ Ö¦A1¡ªŸ?|¹å‡°ª›Ó¤¶[ª5»T}T9Ø)þžžâ5ƒÊ…*'nBA@@@@ W=ƒÈ>#äÔëK+oÏ-6KÍmfÎ !Ó'\9(RiU*,Õ–¯¿µž92v ÂXj^:a^¥øG¢©ÜŒ¥eÂŒ%EÕ‡Mwܲ¸ÎqÕ:ýƒ/*7̾<ž·áØÖ…wn*ñƒ“AjŽzg˜ü!U´§º>ÿB©ú`^Õ´%[Äg#’î½"ÔvK•£’¢ê£ÊÁNñ÷ð¯T.T9q+     ½€’j°:DlÁ7O©¥²ñÉWÄòΡó'><¿zì´Š'ŽžoõۮϜ©´-gg`EÏ:;‡ø8ƒÃûñ.áwÅÍ3E—B²_Ç_ž­+eC|²ûÞd§T²gp½T|²žçrj“MBìºIÑ‘B]2ýt¤ÁÍÿ³o?;Õ¢ä°ÂXҥɞÛLúzE:çâg]/k1ˆYh £Ûé9MÆ<ñD;òFMþµàóôS}‘T?õìö ÃùÕ?ÙOom¬ruñáY[Ôó·U9TykV²Ór£”väžòîG|.úîÏ<ýIÇÿýõ>æÏ\!-_¬½cl¾ã°”í3À9d#Im·T9jùQõQå`§ø{xŠ× *ªœ¸ÞGÀó`·_óRɾ>¸¿jãÂëÊož³¸‘€Oâö<ïJÅä±—+Ñ©j¾m~ÙuŠ‘n1»—ûÊÝž†5v¤vÎ~†¿âhå ž–C¨naåCê*ÎJžÅuQl¸0¸¬°0K“Cr;ôf§É¶RVHÂÈðTWôzö a%W÷XrŒ8‹m»ûÚÁ|†¾y}Õ¡:…èþ[޽ÙéQˆ1O<ÑŽ¼@#\êq<%Õ‰õSŸÂ† mÙÀ޼ãa†háAvZp˜ruN?ÉÙ·KhG=Ž'¡Nô$*O}Šžé¹¾Nïõ>ª³ÅáâIýù¿_ Ð}Lj†Ï7úåì×±V®ßhemÏnð-±¾#Mm·T9*9ª>ªìÏOñšAåB•·¡     ÐûDm¦³2r[ÂV/ù‹© D†Ka—$† ƒÕ'¿lr\ZŽOeMÎÌÈîïÙÒÒ:ÛT6n¶ó×ìr´]q)åÐ5™‡³§hù) ãæ½y%.{’x’Og³Ç& K±5ÿ¼ÁÕÿçIÊ—povç¾g®à·†W=¼ý±G=k²¦FòËçYÊJ ¹êðÃù ´Ã¹}‡ø/¢çn*¶Dô³’Û–7;ír>öÄíÈ™“¯g=§”ú"½~†r[Èñ? ß9ž»ÖÄìÞOUìí,!¾í?ùíÈ?<åÝ îs‡tž×ÿam¿ 6$nÈߟ¸!C'òçd,ÞËÇY{ÏDû6‚] D¿˜ûXÁe?˜3çºP¾kQ¶7ídŸü¤¼Ç&Cm·T9*ª>ªìÏOñšAåB•·¡     Ð ±Ç>¹mÛ¶ðmù[´Ï®xD=+ÅëgÇòÙp_('³6k¬8iÒá÷JIRF*[Ž˜VÏËoª2*„=ol›òUA‚N 9k«j¦.|ÿ5ðÇÏ/?븉§T§f¬R¼Zü@ìEœC…Õn^™±¾ÙS\…wmg{~o™àõ zsÔÁÝ›¤2ËÎÿ¯6%)$’w~ý#-[tÙ8~ß•™º0ŽA{ÑC©ùèÚN÷”¼òD;ræKHã)¥¾È­Ÿö ÄL¢µƒ§ëì›­¡1ªQ)Ž@e¶#?ñ øýÈ1‹=ùØžë3þÜüI ãúâ0¦ŸŸ›à:#wÍÎ"‡s÷dUýá–?g¬ë²ÏF¿Ô“+J÷Ù64>R˜ml¬<ÞÜñaˆ.…ÍÏ|P™•õ'UFúTçd÷ÙÍÔvK•£fŠª*;ÅßsÀS¼fP¹PåÄ­@(€€€€ôJj¹V«¹}„x™ÐØ!Úá±6éáº+Ùµ7Î`÷Vk*úçãuOºÎ÷‘«…‹Ï!„µ‹5Ô48|ešÎJ»b0ã¾aÿhË=Õ%ÜL£ ·H³ªTÚhÞ6ûø&A)DäÐelP<6}„°Ì_·Ñô¢‚R‡rêL)™sè­š}i¼Ùh6+ÔaŠ¡YXÕgÛÏÝrÿú.÷¢êL‰v$ÕÎ=¥µ%h_©ºó†!±ªØ1Úìó…l¬þû–¼î¨)UŸÎræŒâ꣕ý°#§BlÏQ1‘@©vÊâ‰v$BÚ‡ ÄSZ}‘Y?K³*ãTsd¨VuUê5+ÙãäœçÉݵpB˜°IQ;F×Ýåeµ#yí~äC• ª¨O'ÃNÿ¾w€ç…ÉS¬cD€€€€t3™3ˆ ¬ô«oêŽý²ö³Ï>;w¤ôDÝÏ5M_kc/×ÎÊÎO,X6Õñ]Ÿ–EîëuÛÈ€()ál¿‡ó3´C9Ckéëu‹ œ—'‰~™ý]ÙE u%ûû|}¼þÈöšK \lj;5;ì7åX1¢G¥øÏ³ õóܳN½ü‘;¹è[>þ²­Vp8v&Sýí‡ y|žm¿'"‰«m§ß®ŸûLg=í”–x$ÇN9<ÑŽ$€Äh=…§Äú"¿~²O¾?_ÏÓHºñ¾Á+Óœ—›¹b«ú®«R›ÍÞFn%·#Ÿxñ~$±zt{4ŸxrÖ—ndY?ù™/[sÔÍÚ¼ûú±”µìäîs3ûzëÊŠ§=ô… ýR·Ï7@ÏtñZ ogùQCkî®CQ©œsHÙPnüœÛ§²¸øãªS5Æfkè Õ¯§/‹Ûšå‡gÉž…1j»¥ÊQ™PõQå`§ø{xŠ× *ªœ¸^I@æ ¢¶æþ×ML—ZûHæB§\{q ï0¸dê⸕_•?Zèg&éëÓ¹¥¼–2KÞ¼'›\S÷6`éç>H]ÎödONä÷¨ýìßç¦Üÿ×:á”xqî\ó ¹¬Ü˜œ–©˜9cªöêáÑý/¾ö÷1ÿÞ}QÓ·,®ó4îh—“ýW¦úÌMÊg掉Wq~GSÅw ¥æ¡Ö‘IšÄö”½@IDATȘkïˆù`ç0ÃCiYÇ-ˆônUÞ¯¼5{z¢ãL";#¹íÈ.×ñW2Ïn¾uÜÃ$ó´å£´`‘õ¹«Þ¬ZpCL¬vä­RôWr}bý‘‚š»7yv‚£_êáõ G˜ÉÂø¥e¹ß°[î4B£ ©?úZíMÎKÖ.Ú¼§ù¶Ñ£GL_—µ¯¨ÜÓÞ="K2Bf»í0ƒ*ב€Ìª>ªœLó:¢SõQå:Ë< ê£ÊÉ4¯#:UU®C±Ìª>ªœLó@@@@z ™3ˆ<˜]ZÈžøÓŒÜò…ðå1cZ6)}i„‡ØÒ‚9ïƒm¶‰–]tÿ{ ËŸÿ›>ìûݫĖûªøúËŽÙLÒ” –lú,öföa`¸úãWwåK¿xç&ëýs¦6.Üq¬‚wêYc¯Ó®Í™"—&×N.þ Á9Ę¥âƒ†Œÿ_}FZ²¡°´±Ž·!$i|ä³»r£:ìÑ/`ÎÏUøÅ¥•bõ‘Ûfrócv$!ȵÓYZ8óÊíH„˜AÝÍSj}ñ©~îc™SÖù©¦™›M×?~h„N7|@BÓœ+=P·zÂï+ó*ùE¢l?§†+·‚g îG>T™ Šú‰gÁ’i¦÷N· 3É”Ü IsÕ‡MÜó\‹œ¼ _’CëB‰»}WižÓÔuˆªá+ã2gçbý=›ZN{KdÿwS²ãÄã¾ ŠÚn©rTŠT}T9ØéF@xÏO7.B• UNÜ „‚€€€€@¯$àQ{ÖKóî³¾{ºMTRÅ]Ö/Å$gj˜mh]Å"#û+Òž}8TÇm­àïçæ;LJdáí_¤ú¢²R¤³—ŸœÃE­þ8¯zÚŸþa”"å)NÉ3wZþ[fáw`lÈUã#ü·Ôœ\;uìéå3³!ê¿jY>#«Þ>›iͼIM¯­¯åmTÆØóì|aƒíä›&ªxüïʹÏ~ÿý÷ãÿý¿ášþüµ‹oYˇpè£øÿ½ûBŒs›k'Ÿ¢çŸ(O´#ÏÀ(Wº•§ôúâ{ýäfçÜ3»%eìo*²³×”¯Y³¦|Þu7”§Î{¤I˜7ñ Aa©µüعӼìvÄÈÓ¯÷#J]é?ò<|¢¦cf¨*,B9„˜ôKDp}TÌdnëØ«ðôûoÔ:ÎÊíÌr!ûâL³0+W“Ø÷DÔvK•ë-*'ÏºÎØT}T¹NÍòލú¨rò¬ëŒMÕG•ëÔ,*'Ï:ÄMÀ¯">§M/ÿ>å¼ôVÕ ±ÉK£þxí@n<¾–íÊÉPi§QÄs_8óç-]ÍÖèÂ|)ìŸï,Œ¾ˆsÆ5Ý^;íO[|rÙõWÖµ´ñÇ–ˆ?íE$ßN]ÆÅu±V-?è“çÿXÛ1ÞÝn二š?©aÂWσ®ß_pò˜Z¸Øff4zÝŠÅžM‘¿òíIÄ-È'Ú‘#Ÿº§Ìúâsý줴o_!+,,dv§)å®›Æ/'ª0ž7Ù•ÔŽÌÓo÷£ö<öø?þâ™ö”¶ïP{Ž£Fiþºmi85ÿè—¨äúžœ±ÙÒ±§¤·ÜYÛ‚#)"6Ñi’¢7™^{Ún©rTPT}T9Øi#àúžžâ5ƒÊ…*'nBA@@@@ W°¯ä7ãCÚ†ã\6JnÄ݇_ û²¼¾é ]x¨66^Hªúà U®kѧ]«Só•Œaï8Í,òA5DÝÜõ÷‡ÃFE™5¬æpóŸ3Öûm)¿Ð·| ?¡ÅÒÅbln6‰PìLŠŒ K…¥d'·Ù†Û¯”|pªþšéÃúY•jå îú+.û*¹Š,ÙV~+7‹èäîeU·‹ÔKŠ®:ÄÎÝy¢‰q¢‡uO¹õÅu?×üvU?]ã;Ÿ§°±#ûsË-ZØÙO‹ëì3(툱ÀòôßýÈ™@Ï=óOn¦Úc‡q]¡á³çÏ­ÿirÛ²éÃâB†Oë¿sÅw­i½*8õå0@¿$‡Vߎ»þí¯[f¼FxRô¼«Žý"FðA³êo?•µ´aï¤Go·Á}N†|ýòß{x^˜<{g/«A@@@ú6?Ï Ê`úa¡ÜjÎÜlžS_„¥ˆ$ðóäHzëÝï;œcbå’&çäôìÆ_Å KyYÊŽ<íã,ƒ3O<•Ó-`3®ÈûEر¢gÏÛ„=¥#=\Ï.‹Óðñ[Ë5¹ÎÜqJ'eËHŸ*8“œÂOÈvÚV°±*UJÁÇ4Û#B:UwVJ‘ˆ.Aêªd;]w;ç‰väʧ¿ò h½î:›¢õ³ ±äeT]É-÷ÉÏè,~¾À¡O¦µ#¿òt²v?rJ¢žøÊ3w×}QüLQUýá–ìû_h-ʽÝü扖ó<Ф3¯M• %¸ý’H+×`Ä$ïZO û 1–påÕ¶ï{ÜôMfE³~Ü“+?U&iÆ‘[½,€Ún©rT]Sé8'ÚIå‰vÔAÞ/þâèzíKfu™.cƒbÙÔ¡q|ÚµŸí<÷´ÃºsÔvDæéÇû‘/¬zš,™'—‘´u»BÆÇ+#¸]æØö2kìäÌyªñ›%ç Ô²‰K¶ÅÍrÈtOè—$ÝÇlÆaw(d»>©ªá-ӥؔ©w{ÍÝõ‡¨xâ`â‚R‘Y½Ýi`tSÛ-UŽš ª>ªìÏOñšAåB•·¡     Ðûðƒ÷e’ÍNYÉö¯™œ¨±˜,Õ?ÿØXvæçÖsMÌ:(ixÈ]âû—»?¼¾´r®Ó²Z)lÃîì£û™Ô­…à`P…FªÂ5 î+t3kªo´mDÃÔ,LY§|kéÌꎥäôYìÍ Ó…Ñùú“-ï¾ý^]iU˜uôÄ›5ãFÆäm¯?’_sÓ=Ïyt$IÎ_ŸH+‡ä¬—T9ÜCRð˜N¼y~üœÁÙ“¼ìuUÎÔ¸¸¶†³Æ“ß•Ž?i*«ª·F%TŽ?.jX´JpÆœÚûäÙÛ½,[´tûˆiCÕÜ’Vü¯‰íÉþmù*‘éFT;ùTÎ߯© À›k~h>ðÁ‡õGËŒ–Ä+¯Q'O=h€°Ï•½¾ðÆòŽºÉGöð³/áu¦huå¬ÕEfÇhT;}â‰väX¾ûg0êµ§Œz«ŸŒ¥²ü⥱IçJ[¾8úMó‰ŸÊÍõ-6bÜïÂ&NŒæç 5rí|R{;wÔAnGžäû‘£Å}ô˜Â“ÛwhÿC×'ðS:ŽíXXqç3%Τ,g{×LIä§[ÊöƦexzÁï—h÷1ÞVüz =[_´qà5ÑfîÀÌ~þì½s{>úÞÊ=Ü2®ÿÅQ* ¿äëÖ;gTltpB÷ëf¥ÝòÆP娡ê£ÊÁNñ÷ð¯T.T9q+     ½Š€<‘~1ÛõììxÛ,!÷|Z[*Mÿ{eý¹‡7;,±nÀññX°,‘»œsH{—s<êèHYÌv>6;.‰[öÆ9.cUG^«¹åžup¹‚=§•Õ¡¡Ïø‡bÝü_ ŽbæXÊïå¯=·¼ ÄëÂwý}OØÝíKÜ)Œ¥æÕæUŠÍâ¡Úi³MDz7?©I-nëOÆ7Ö/«Î-”6Ze€?Í9ˆnó“ƒÈgžhGbEKó‘gpêµxö¼ÕOÆ÷×ïçÄéDú[~ɧSwTݾd“ÃÒrŽ:|hGry’ïGŽööácY<¹}‡Þ¿?Ž_Z®þèöÚ›<ì3—œõ¢jÕôËãøqÅÁU3–˜‚ß/Ñîc}¸¤{iÖf±M»ï0&6ÔþmQG>Ì5ÇšŸ{ðÎÚi·Û¹>q «Ý:ä˜*焬Cª>ªœ,ã"SõQåTË:¤ê£ÊÉ2Î!2UUÎAµ¬Cª>ªœ,ã@@@@zy¢vûõ©³¸MÊG©†ý"Z¡Ñ([ªÌG?ÝkÚTPìu ß·ìëXæŠLõµÃ†šLÍÖ†³'ÚízÂôŠ} ߇tÀèYzf²òÒ!±ªAQQJF¥47Ôš}ºßôLA‘Äúb+û«ãMêâ¼%-,sý,öÈŒ±!ÃG¨Õ,„)Ì5ÖS_2®Ú´ÓÅé0`]$ì+O´£.˼ì Ï Ök¹¹Ò§²q7ŒQ^>4^¦ê¢PÔ–}gú￞0Iò‘’Û‘|žÝs?’ ´Û¢ËçI3ý¤ôi™Š[oËõ3 s‹õTÉ[­«ò¤>ôU~ÔvK•£r¤ê£ÊÁNqàé_.Áæ)n=BA@@@@ ˜H¢`]            þ%à¶9°“Gj            =D=­D`€€€€€€€€€€€˜DŒäA@@@@@@@@@@@ §€ƒ¨§•쀃(À€‘<€€€€€€€€€€€ô4põ´=            `p0’žF¢žV"°@@@@@@@@@@@L¢Fò            ÐÓÀAÔÓJö€€€€€€€€€€€€@€ ÀA`ÀH@@@@@@@@@@@z8ˆzZ‰À08ˆ Ƀ€€€€€€€€€€€@O# öÍ ¶l]zÈU—Å„‡s µš–¦úsm?~óIëk¹[Ì%‰ëSSYœÃ¹§Ã¦ÒB¶¯ÔÓU„û€NÏRu|ÉT²ÂBÇѤKaó§ŽUþòòa¡‰ƒú‡„††ªÆzsÙÉc-ûw¬6½âIœ*'b‚ä Ý,öÄ#iýF&DhÌf£µ¹ö¬ñó»›s󊬢ið6Θ¨séÐÐøAQ!¡*¦465¶ÕWÿlútÿã¦%¢räzl}¢™fL—’ÊFG[5GЬhw y îŽzíb‹ÔòKÎX®˜3éªðÁÚPµ‚ë§«ÊJ[÷½¶´µ`ŸK‚.§T9—dä×39ý¯Ln{w5°¯ž‹ ±?sÄžþàZå¤k¯ÐFkj _)=ÒòêÒ'L]TQ[rë‹£bw+ŸÊ½[-÷¿ròó„Ý”`µw?ë“z³«•ý—Ê…*'ÛÀvª>ªÕÎv¹äô3'þŸ&ipd˜Š™YsmñÄ÷Ÿµ¾»c“¹óyRÇRSu.ššXS¥í+ñôÒàÝ×SÒýAúû­¯æ‘Ÿ_‚]îT}T9ŸÁ"9\ä29ö¸É™”™«´8ý5³w³o(´cd'…忟§ µªœ¢‰œTì]uvÆc{ÚD.!ÈÏôé+V,˜˜0KWa9nY=6½¢PT‡ŽýuÛ†ð›†÷ï/zY4³¯w,¯¸û™bKgª\g ”#}ÆÅÚùú­ˆ°©âƇf,®w~-Ma[нRc ‚ê¾Y{SFN³óuj½¶>g«;ÎRײýÙø´»*º§^»&©üôì‰í9ã†FD¹ÉsgŠ7VÍZZ`r¿F•sO‰I²³SNz¿d“‘ßÞ;uõå£àq¡ögíôuéì…¿-ˆ¾"ŠiÜË£šíY3­|•øIˆ.·¾¸ë@H·ð±Ü»Åæ€*¥>OØŒ ^{÷³>™÷¹E@åB•“kŸ=>UUή—ô7e1ÛúЭGD«ú‰É+O¿Yím9 µ”ålÿš)Âs¦{\3k,;fØó¯' OæË@ÊýAÞû­{®ä„PË*'Ç6ǸT}T9GÝ8Ò ¢)+^R/¿qØ`ÞÄúÒuyù¯4}y†±!ºaìò_ýF•|ÝÅQ®#Žmç8°ª“¥µÍ*:CªR545‹^ Ž E‹žeo^®ImϱÂh67ÙOÜþêØåœsHÙRc:úå‘óŸ~}Ôôã‰r+÷ }ÓLUÚﮎ T)9û/ñY‹Ës;¼/T97¤¤?¥XÇ9‡x§GëéõO>•×Pʆ°I©sÕ3o¼|°6þºˆ§·?fwÛ ÛË«²–…´5[Ï–~Uwèã[¾9ö…Ï[ÄP½böœ´È_Å÷‹ˆ9mà®ß™f<öª“ó’V¯ƒ­O _ {aQJL÷Õ'ÿk3)ÐîÄ0‰†uC½v³CJùéØÓ»ÿ6àºX«Va¬4|}gÕžƒßYXÜ5ì¶?Î0*6T;$yAì‹~Wqç3%NŽ]šœ›‘\€;írrû%NŽÔÞíúúðß r¡÷gŒéÙ¦¿-äœCf¹ê«¦—þù|Ý»Ü8áèI3•鿟£šºd[ܱÂ9•¯¸¡¾¸¥€î!àK¹wÅÁÐJ{žà, j{÷§>9÷B P¹På& "T}T9ª¼\êJ¶7{r¢íã@ûjïëgw–´U²H6ôª«×'OÒŽvLŸ{–6rçü³f]Y™á|ûû_hdlHB´¶_xÒÈÈYÙ/DŽºt9÷âø™c"”cÚýò~K±N¡–UŽj(UUŽj'ä@@@@|" QÚSŠƒ]ŸÀOª>˜W5mÉW_ˆA_Ÿz}iåí¹Å¶Qi‘˜ ,ÌœB¦O¸rP¤ÒªTXª-_k=?rdì@…±Ô¼t¼ʎI_NfèXZú¥Š–gKá^ר^Ï­®œµº¨½|©rNÊeœ¤r3Õ– 3ÕU6ÝqËâ:Çoõ¾¨Ü0ûòx>Ác[VܹÉqPܳš§wäÙUÜ »+£ÀÔë`è»wó;šy££:„Îåæ™®ð‚]¯Ý©K)¿äeÛU9S‡Æ),e–¼±iy.Éäî:5>^¡°œ¶<5ö¶ ûE—Ÿ$;yZ¿¨öî’‹^wÚÓ¸xëÏ’¢#…>ÙôÓ‘ÿù¾ýìT‹’û%Œ%]šìð¬B«/½® û°Á´rïÃ@\²&çy"ØíÝoú$ß\àH<¥ÚI•“h–[4ª>ªœ›2fæ<b[ŠÙÌ>~þ÷g»t9¥­b¡Cœ+y…eÞ²¾îG£‚û¨,žý¿…wñ“ÿ}üÑï¾¾ßÊ1œZ~T99¶9Æ¥ê£Ê9êÆ1€€€€@p 8 ºHPÌ} ökn¹"nñ.öÑöl‡%º$È"J Pɾ>¸¿jãÂëÊož³¸‘Kâö¬÷Ù0Ý86$ÂʧSWqÖa©ª.R¦ÊyHvòØK„õÐU5ß6¿ì:J·˜ÝËͦ°‹ZcGj¸î›k¿èò÷¢Øpaðœ[$Ñây>!N«oÛv÷µƒù }ÿòúªCu §%ó|0¢v~®×ödm%–Ÿ>… Ú¤yÇÌ̓ì´0ÏØEúI6ß'UÎÙHîL¢‚­_ T{wËJ/  rѧè™^ÏýóÚ/êlq¸xR^û3“meË„‘á©® r:~!ì gàî[ŽKÑê‹kò8ïF¤rïF{{°jj{§fÉ?úäÜh–Rí¤ÊѬdŒª*Gµ“ÿã–±¶e©-‡0?-Kü Ûq¨ª†·+jÔo¸ÝdL¼?ùý–Z~T9ÙÛ¨ú¨rT;!    à;Y¢9s® å×V¶7í¤½´™Îún5R (a«—üÅTбG1±‡³§hù© ü’{óJ$¿4Rå\Ô·Ÿ¦°KÄAîê“_6¹®R±&gfd óliimÊL 7Û>kBÎÚ{&ŠnNîÎË{Vœûž¹‚²†W=¼ý±Gù5YS#ùªk)+1tîkÇÇ ÔÇ”qÜÝhåÞÝVO¿ôç z{§åÆ?úäÝ(–Rí¤ÊQläe¨ú¨rT;9¹´dÅPîÙ‘q{ yu‹_gž¿úßÃ&þã+kh¼jLŠ6 ¢´ûƒ?Þo¥[N-?ªœtËœcRõQ圵ã @@@@ ¸d f‰+7w ”ëRØüÌ•YYRe¤OTrÎPâØG"·mÛ¾-‹öÙ¨g¥xý\ÙYg=Ž@rÖVÕL]ø~VÙÇÏ/?kßǤ+C©rÓå¾6O¾6g¬±â¤}Ü[ˆÎï=”’¤ŒT¶1­ž—ßT%,gÁÚÐ=¦È¦f¬R¼Zü@ìEüKqÍáæ•ë›=ÅöG½´>~߇™º0®¬*Ø‹iÙ~}Á÷ÄåB ÷{½v(·üì½™<•´®³ÍXCcT£Úf¨rvSåÚi—“õ7í]–þžÙ.ë3þÜüI ãú¸0¦ŸŸ›à:ÃrÍÎ"‡s}¬ªþpËŸ3Öyì íh¤õgyìù½eÂW#aCoŽ:¸{÷¹ŽeçÿW›’ÉtðôUv¤}è/ÊÝ[aJ~žð¡½{Óïñšôõèûƒòç‘Øª>ªœ˜ æ^~‘Ò¶þ[++//•ü!˜¤ä÷•²já¹\Ë®ÔKùpKRª²"ùãýV²BjùQå$摪*碧    Á% –£ÎØjæ–S3cC­0†˜½ùUÍïF'FÛ¾T·¥”q÷}æÏöü£zAn‘}œQ¸ æö½áBc‡h‡ÇÚâ×]É®½q»·êXSÑ?¯{ºÐuÞ‡-þï™tM!,ÛVq0¯jQ´—FªœW œïÒ¾xyCMƒÃËk:{(íŠÁŒ›+ñÑ–{ªK¸/6[,Übq̪Ri£ù:ÙQO“9GÒªÙ—Æ›f³B¦ꬅU}¶ýÜ-÷¯ݫɗz\}é,gÎ(Žƒ•ý°ãÿgï]à›¨Òÿÿ“¤MÛÐZZzc+F”—e#_AÚåâÒâ¤à…¢_¥ÊZDÁîRX–«TT.»te-ú«–Ä/v½QT5"‚Ô…¸‚(--mIK/I“üÏ$MsOgN&iÓ~æõ‚™9sžó<çýœ3™Î3眵•E^aâ" ¿´ëCúO}œTë2 Qr…ì–ÌÉ!D}À!hÊûðw„™)j×A{¡ƒ3åÚË D rDèï5GvŸ¸¨É‚§JêögG$Òõ ükaì“rk¹§Ó×¾Êl©!;æ[Òœ°Üϸ2,ÏjKRì¬~èöñ²øŠü£Å–éµßµÍ ¶ÄYÎ{øÝÕ‚Ÿ'|êï®ú;MñY_7ÿ}ˆ’|}Žì”¡}Vž¶“Ú|Óqáœé]¥átÇ‚ö•ñ市4¶?— YËβ¾ü}ë\V§çÁâ÷`±³SàÈ    À‡€€D*¢LT˜ÿ@¨(oh-Øs$:“‡¤º¯èº6eeŸWÿP«k6ÉûË~=uiÂëyvq£¢ùæÛúòòuÇŽ»|Rs¶þbmSÇÈŠø¡ŠùÅÉ%Kíeø˜<]F s%ùÛU÷Ç´öäŽÚi‹KÌï—;µ‡U®³‚é( K¤§œU«iȲ-*ÎQ ¢žVÍ;õÎs¦'¦Þ`}`Él·“]ã%±7göûçÆ'å®cÝ|l×Ô·|ÇÜÈÊ¡íÇkgo°ñ±rÂÞGþj×íf ÷_)ùâ»+ZNÇ>êëö¿>ÖB‡<¬úX唳HŒmÆËl¢ÝXÊ—¿oªÅê?V9Í"¬úXåXí„€€€€€(Œ Š"aæù§ |×ÜþCÂ¥¡Úò·ë&9N5S·`ëæ{‡ÇÄ™:/!ïàþ ËÚj²æqµóŒ&¢Ì¬{&÷~ùäQׯqoê¯ËX˜°òëý.¥n(Ä_2—‘ù’¹õ!ꎽvyòãwö­{ͬrîKë<5{“d*RMb¼`,zðynŠs‡ÍñÅ8!e³ · k¦´¬\ÉôiŠ‘©±}¯uOÜk{¯izà®…õ¶÷£¾µë@éS=õºôÎA!ч­÷®h´Ö{‘ø¹]³úoSNAó ûׄˆ‹˜ðtqÒ­³~l¬ÒÚ¢…'E˹黊ÖUuwþÔdû‘D¬r¬vŠä:xIXMow/H MÉÓK·ì«žw{\¼bØ1GVIúJéÈCíÉ’ÚG =—…ßÏ,àT¹…Ò ³G$ʨ}å™FaiXJxTܨâ>Þ5¸á鬼‘—ÍëîëöÁïÎnöíy¢£4ý½CŽõ€§¾ ý}àY?V|.r¬úXå\ è ¾ü}+/Vÿ±Ê±šÍªUŽÕNÈ€€€& `ÑAr¦Jgõ*küF·Ô18dV¾inaËYó\Ò1ä7“:™KZSJž{ò~Ý£Û¾6±Lˆ‚ŒÏ^â°PµàAÀ¿Tyd_þdó åšÏ_«áb•ã[­²ŒúQknáFK¤“â9ÿÇ¥}·wKµ»iŠ*OèÅæNMÙ®BÓã³2®>ñÖéJ.˜dŠ¿M±níôPwyÒÛµ_ô©æ‘?Ï’È}ýüÕ%Uî8p¶·™—v¨Nøðw»öÉInÆu¥'®m¦£3ú&ŠT*Sû%E“ðËšOêWßqOUQ7i¨e³5l9ŸìäÚ)ú»“†à<‰KÉâ)úl5@“Ò‘‡†ê£Móç¾Ô" ¯ûí?+ÌÁ!BŒ•7æLû_mNVZC©æj=§+4elÔÆ=ÑBô"o€ßù;ÉÛó„Hý·1¬ú‚å÷µ~¼:edÕÇ*ç¤^È©©MbžºÙ$ ‘Zæ"ÝI^å$¶} ÑNrúé²þ¾õf)«ÿXå¼Ùâí«>V9o¶à€€€€€ß Xß òR¤7´Ñ?,"?~ôuî¿ê-%_Ÿº155¼ox\2÷~Þy †‹.MÑc¦÷Ç¢åF9ÈnˆH'¤Qô)®]´"A8lòæóÓâè—Þ5ŸÕLyr›Ž_¬rüJ7ç:_K¸!B &ŠŠê+ÉÚ¸(TIÿà”Ð—Ž³ ÊìÚ`2éÓ>Žoéê ?}¤aRŠ4jà-c#•dwm‘çRXÛµ˜úL“ÆÉâÚM¼iöË>šíh¯L.7ÇÕ®½kuüG“ÛLÜÚK!Mß¶-ðp ú #+×3ÿ·ë4ŸýG¿JŸ;³e !•éé™DAßìhJKIGûMˆ!rZ1‰±Îø“ƒÃ…É¥- p;ócwõs¥ˆÈåøÙÚÖß J2W^)H:Ú$žïgJòâ²iýbèï Ñ~Ó²lZžÖZþšÇ7éŠÞ5Ý=,:Fš86òÀÆ9-“yÿÞ0Y»€üÎÝíó„ˆý—MŒú|ÿãe-£„UΦYØ«>V9aÖ9ä>öíÅÖéÊÁÄ$O”ÝžI}ŒoK,_H}í%»5DÅSÑYIþúûÖ­^Vÿ±Ê¹5‚G"«>V9&! €€€€€ÿADˆ®Ùر¶‹7“¬_šEÆ'Û>J÷&@¯5™ƒOdÂå.$Nþñî±×ÐàJSùŽ:þÁ!V9UÕ|Aªe:N*>mIô££bh\¤ŽìY›gþ ¾£´¬’DúEI­Ï™ßüE-1òìËØ¾ôÃl=€üÎîD—ç ±ú;_“XõËïkýøòsÎǪUÎY¿€ó2õwË<Í ¢ü-‘ôʦcEÛskÉìÖT„™ýù÷­‹i¬þc•s1€g«>V9žf!€€€€€A´éß§Zf »Õ<•—ç)©”äqæwޤæ?_òž’&´}‚0úê^üé üîW•úðß…Ým'µÇ›ÿ˜³ÉëÔlö`XåìËàw¬&'*´M7*ûÈñ‰æ0j¿RmYËVBÖ(e÷Bœóä]‡‘E¶<îŽä¡2:m7Ò¢Å貘‘;ö4Öv-–¾R§u•œM]¼½¬ÏÝt´ß¹½K«ïÀùœÞv¨ví¼®‹3gßü—NFëK?Ü5’K_–Õ»ꬑ;w#ðvæßþî®ÖÁ‘&:2nþèatdOñ—/oúyBÛÒ©ƒBS§ôݵâLkÖòÝæ`¹îîg)‰Qæ@½ÄXiTïâ†9oRòñÚ[§Žà¦5êï|çAI~gw›ëó„ý]ˆ=lúÊH±_ßÑY£o¿cÎ¥qçlvr’þ|ŽäÊwÜ‚ÅNjõÁCäûÆ;u7GäGþ.JEv×òfp¬µóÙ’9ãúpí2í[JÅ*ÔYI'çþüûÖUu°ø=Xìt%Œá "»Þ7ýh^_ˆ¤›FZÞ³»èœ@®‰%„´’Š.ðqDHQ –ÓY‹é¨Ž¾isæóà‘€9ªâîªr™62Æü~îôþWxÿýÆ*çΆô$';äqw™Kû×ûßÙW4µrñ.½c^™ø«„¾\šñByC‰ãE/g*rCbX8—¡µât“ó—îžYÛu õщ#C=zßsõzë•·k>˜Yü—¶ôQÙMæyÿëHÙË%N}ųVV9®D;=µLÿõwÏu†+¾r)ØóX47RT¦=Þ’ÿø+­û î3ì;Ûr…«{ÊÄÜëèôBÂ6O÷3˪q&©Lj¾¹º)42ÔvË·ÝÜÝd´KòÔ^ì²à°K øÇï]Z¥€(wÿ<ákjº?õ±ü>x²ŸÕNV9Ovt–ΪU®3{<_?HÞøàû:îº!zDøy¬1ë¹ Ç+™ëÈïRCÍÏågþ½§Þ:ͨc&ñÎ<þ>øíï[÷¶³úUν§²êc•ëÜ"äða"RJö|Q]˦ÌìW˜«r‘/Øst"½.©<ܸ Dcù*X•MV.Í•)ÝÖ"“ücÿœË´_ äÃâç… Ðp["ù¸ ãÖ•âFÆ´ézõî· tmnk gOkxýhvV9³.ÛiO½*=¼faòœyK“ŽÐËÝ·#º>FÉ+¦ãZ™ÇQk“Wä…p_?rS}¶ã/V ªì<ɲœ4Û›Hë…öý‚­+ÂGDú³‰zcýÕŽËŒí:Ðú:ìÅ8Ü®}1Z顳(s6K–f JàÊ®;¶ëò‹NoeXå|±Õ^–Ï}‰µ¿Ûëé‰Ç¾pÉZ¿'tl¢4’²c~nÇâkg½põÛ) "*ȸÅÛfØc½Ÿ•}ý½¡Õ\N"¹¯h1ý¨ÄyË&9Ó©BéV{¾ÙÛ‡#|Ú‹sé8ïbú½kjà'­ŒÏ¾ôw–šZ‹œ «¬r=ÝN®~eË G«%æ¿Ñ†L]œ°2‹¸}nVªÜ?xX'’ãÊRÒ¾–nü§üÃü;’¹¿/dZu˪ eüÿ¾à á¹ñû}`üû–§ ÎÙXÛ«œ³~¾ç¬úXåøÚ…|    âàî/+VE6íßsk¬¾Ð1‹Ç>¼|à³ïtò”aÒÛÓÇô½6ZÎMóúCÓ*·X_:¦¯$‡ÖLH7ê5ºzáüÅÖËMÄÔ?%5tˆ2¹Ÿõ‹®ÿ¾³¤j6¦¹æA¹ÓÉæ½ùý†GèCZób2y”¬O¸„þÝf MÚ«–…vH “ÖKÿµdz 7E[ZÞ²µtŠ!>ªôg÷];k­9ˆÂ*ç¬gÉŽO"§ ±¬aKƒ4òW±ÊÓ0UÙ·yj²ù­¢ö\Ëûÿþ°^Sf>îÎð1Ãâc¸²µ'‹k'Í}©#”¶ôÙÚŒ„„¶ÆKºsg4 åߟÓ_¨Öš¢i›3vLôàX™ùååï=é>ûé•Ûu õ9ó´?·Nír~ÿꪫ÷ì¯áØ=.i×îM!Þý—IŠË–ħ\Ö´|]þmóÙŸ+ Ú–p2dÌïÃÆOŽå¾ã¿JûëøöþjSÁ*g+ÁùÈ»l÷%³†þîl[0ü}ëξi¬þc•ãk—s>V}¬rÎúq    ‚Ö ²X¤& 2Ö×î}Ü4"^®H9±ÿœ‘;Œ5Ôžn~驇êJ¬Á!îJC=©£‰Di¨´ÊuQÜ¿z`j©ÒºsÓåE…þùzÌ^Wo?îF§•rPFÑÑ3ýôqðRב«¬iГAæØ‘èÎŽ{ q&ª È”|}Å®å3R¢¯ Ÿ03'q‚éÕ'ß®½Ë.8Ä]j¬¼hl% $,r€üú‘ú_?òv; Ú>+t¯»¼¬Dí¸Nc»´>‡Êx8AdÈ?& jרáÞôC_©TÚ'冨ÑÜ?‡2Zɇߪ¾oq¡›©åXå¸=qo'!Ì÷%†þîÖ°ž–(˜‹mÝ!mùŽ:—àÇçà*òì;©U«¦M¥¤GíYŸÝ2mq‰žù~F‹|þÁG›Â¶>oÌ+‹1n*ýÇé2o&zïýY÷›–š?T°¦r{æöb_Ž»Œ«ß»Ìà@(f|ž0›&¸¿ûX!?éóôûÀl-«¬r¬†²êc•cµ““Ó‘{z®øŠß*û÷‹6&fæ°1%êk®Z‡:¤ÚN,Á!iÕ^jÑ|ööùå…mö2Úr²±ÿ>0ü}Ëf¢EŠÕ¬r¬¶²êc•cµr    >`AdÓ§ÊÊ•Ü}û°ÐøÈ0™ÄÐbúAý¯ÖUEû_¢Û²Uæ º(úͲÁ¿ˆ ‰ —¶6VÊ¿|O_XRæQÆN‡½–€’ä®È ™¨)+ZÜRÂë+C‹Ì¨Á1r½¾ÙÔxélÛ‘=Ïéwz”U‘ìÜ4éõãeý££¥áá2©¡±ÎpúËCú %žÛ4ç¶vh}½¶ñt㊳´kaÕQª2ɘÛGH‡J ‰¢÷éˆP‰¤îÂýÿï9}©—72¬r¬3·Ðþ.¦îî\V ¸°ßÏÌôT3È3ÓF‡¦ˆ !¡Db¨5ýpâˆnUá.ÇQLÝ5lN~waÆöV9«^Æ=}¾xrÒhÙ_  ͤöòEÙ¯>m+ÚüÓ ýû–‘`»«ÿXåX­eÕÇ*Çj'ä@@@@Xø bQ®% íZõÐ            hš8ô€€€€€€€€€€€@@€¨‹õ            hš8ô€€€€€€€€€€€@@€¨‹õ            hš8ô€€€€€€€€€€€@@€¨‹õ            hš8ô€€€€€€€€€€€@@€¨‹õ            hš8ô€€€€€€€€€€€@@€¨‹õ            hš8ô€€€€€€€€€€€@@€¨‹õ            h!>+TªH¦2SEJKÕÞ‹S¦“9£¥¿:XžÜ¿o¨\.—ItZÃ…s§[½µZ¿Ó¸*3“p¥w¶5iJÉAS.}N%ôüS?ûp>˜6N6âúAòÄþÑ¡r‘êš®¶ik.ê¿<ô–®p—ÚÈÊôL2<Ö$©=¹ßäÒN8D¶³S}ÖJ+gçžÉŠ–n0èLÍu—t_}²·¹ h¿.J’™©´Jvº·õ V¹NU ƒ ÿ‰ˆKH¿åÔ²Ú9ÖöÉ*'¢º{Q¬þT/üà«Bûƒ ú!³ß ÀŽˆöŸž“5ã @@@@@@ Ð:_`­·*ûYÉŠyã’bhã÷ÆÕ£³+Kݦ$Ù¾¹Ï¤Ô¾}Ý^6'È©·–U>²¡ÌhË“NŠ?Z› ”›d¶4÷G•ï­º4mù6ËUV}îËî©©ðß¶²gão 7†zb¨-ßW7)gm³§ë¢¤g®#‡òïH£…9¶kééDT;;ÕgÑ«ÊÙ,Y7G•¤°ša·×Wm|zÚB­CÌ4}%9´f‚¹vY=vÔ•UÎcɸÀì?‘°ñï·…¬vL޵}²Ê‰ä‡î^ «ÿ×ËG?øj§Ðþ ¸~ð+øÏ¯ðþÀúœì¨g      ½—ã"Éߺ,û! `õKÕ|ñƒOv2ô–úAÆOà?°Œýí9ÙE;@@@@@@z)Á¢Üµ¯„N½ã¦þQR“Tb¬1žúéʰañ1&)ñ²ž‘†ìÚ²úâ®×i³ÔꃆmŸ®¬|ŽŒˆ"Qä7“2dD½ßò6ßÎ)çö.¯¾¯ Ì%Ý.‹Ý¡ïúì ëQ‡õ_)y`Bi @µÚT¶«PûâÞÃÒÛâeФqwõO'»«ºdô=á[óÂoŒ4Ƚ—$žüôe’âGF#&"©>Úôè½ÏÐà·iˆF}°M]ÿjåæ™CCÝýj Õ–QuêUdâm«*¼×…¨Þ_ÇÕ¹åê%K0ŒUλ¢^|•Ñ>cë·¬vX޵}²Êùà‡àeõcí˜ýÀn'[`¬ÄD'ÿ¹CÊÞ¬¥ {N¶Ja      ÐÛ x ê¸C“IƦÝχ®œ=zeõè)•Ï•_iu—Ó1l܇:òÜG~h”qƒ#{“${xt¬DWeøþB »Ä¶ñ¶“§>Uît©eÚIJãÂz祳ô‰à¦~4o7Þ9=ÚzÌgŸ–÷ˆÌ«ý´yÕ†öÀAV9E÷¸,þôŸ{Xlý–ÕÎ@˹¯³c*kûd•sÔ\g¬þóg-ÝùÝN¶þàÏú¡l!à?w´Øûƒ­4aÏÉ69€€€€€ônDUäÔáCÕ[ž¸­âÎY ¯rë ¥ÈC:^f3£TŽ!ÛGyÔW^²[ƒˆ¹Dï‚ÖçÝš^í^þ»&¾ym):‰ Ñóô„¬xfíŒÀ)øîÍMÕGê%ÌSØñ³“¿¾ £¯‹àj%«ýOó›Îæ” É2%XkmЦ˜§´žu²WÎ# §¦² äÀ O×9žž(s_–NW†Ñ6UI^ÍÊgžZޝ‚ôÑ/ï“¡\¯VžsÕ¤zêUizŠ4JÚrR¿úÁâ¦jļæèY°uuøˆXC»{Én=_„¬r|Ëïqùüä?Ñ9±Úh¹N*ÎÚ>Yå:1§û_fõ­Ù¦œ?6QKè½8Œ¨æ$9\\³k~T*½wÉ´Ç[þ˜³ž×=Û£|°³û;‚€@"õ±ž“Zì      AN ¤+íWæl–,Ÿ:„N‰E_å.ª^P¢q=B×;â®Ëã*Rã¹#BR•7‘Q§‘?TŸnÚÿgë_,u‡aÉçü?}Î28÷L€/Ï4øX5óúDƒÎ`„„IBÍ>5’êc;.ßõø&kXy¶ÁõJ6Y;ëæ„˜ÈßZ[YäšÁc ›õEÉéëWËÖXÛh×Þ³ÉÓY7R»ÛÈgÛæÖ¨I:i1ÒÉ÷ˆI&SÄr}À,rg<Xº—[kÉxÁøw1V9w6ôš4?øÏ/ìX팒˜Ú'«Úµ¸îgõ»Ùj²à©’º=ÅÙ‰$‘<ø×ÂØ/&åÖr†§¯};4=%4вc¾%­3ýÞ_|²³3͸AFÀÇþ æsr‘ƒ¹      "èºD™+Éßæ¨’¸ÀU/'@IDAT—‘Ú“;j§-.q3ê¡h¾ù¶¾¼üDݱcÇ.ŸÔœ­¿XÛÔñå²"~¨bF~qrÉÒŒÎYðÒ'ÑÞR„žvëTÙ;*öæÌ~ÿÜø¤œm,˜{ÐËwÌL¡¨¶ÿ­½AM,6;ë£ã™,‘žrVm³oQqŽbµ»UóNý‚ݲÛSo°¾³·Km?¤kýyæÐD®Ôã¯.©*qÍá>…UÎ}i½'Ulÿù‹«–óTÖöÉ*çÉŽ`KgõŸµžš-$o˹{”!zDøº¢Ç"Hú:2?-‰~ža §^_Yù"Ÿï1:óƒ¯vZíÅzŸúƒˆÏÉ=%ê      ˜@׌ Ê\FäOH¦Ÿ#“ºc¯]žüøß=Œ"Q“5«¯5efÝ3¹÷Ë'º6Ž{s~]ÆÂ„•_ï¯øs©‡úóÖçAÉŽò,+˜m¸½€TX IËÊ•LŸ–¡™Û÷ÚQ÷Ľ¶÷š¦îZXÏç½£µ w{ÕS¯KïͤÙzïŠFwy¼¥ µÓW}¶do’L¥Sâqv=ø|SGzûÇ¡CDI6m˜a^w¨©|gÝcE®#ðœË²œ³Ê¹/­×§2û/ÀäXí ´Úµ¸ C ÿ4% L/ݲ¯zÞíqñŠaÄY%é+¥1kíÉ’ÚG mAmÏF2Þ_ÚéY?®€@ À»?ˆôœÜ¡      l?‚H•GöåONŽ¡öÖ|þZçà— iJÉsOÞ¯{tÛ׿/ QñÙK"ÝJˆ¡ÏmÁ½4Qže» MÏʸúÄ[§+¹à‡)þ6źµÓÍëò0SUÍ£#i†t:’¦Mïñ¨Ò«¬úhTÔ2ŠJA®¹…[>ÏùŸ8.í»½[ªÝªYåœõû9«ÿÜÔûøÙÚÖß J2_‘…EJÒ£NïÏ|ý ¢nLG?ö‡ÎŸ“ƒ ¬Ÿ@G¥“¼ûDì5ô¥wSùŽ:_ƒCVM†6‡õZ¬éÜÈ 賕ßÛŽü󪾥#iŒŒóm-"} •ˆNg° ²ˆç#;Yõi¾ Õ2s`4>mIô££¸âêÈžµyæ¯õ;,Î!I¤_îsç-nF=ýáéIáÜ(Yålš{λßm èHÑù£„ÑûKñ—/oúyBÛÒ©ƒBS§ôݵâLkÖòÝæ ¾-¿õHˆİӪ{vþížž“ƒì‡€¨#ˆì4æ)ç‘i#cúsi§÷o¼âô.Ü!«°“¢,§³·ÓQ?|ÓÐ1Í–ßô ³.ØrÞ*rCbX8Ç©µât“שÞÒgœì s0É®!¡ké¥Xv:•âNß¿Þÿζ¦ ˜®\¼Kï(¦"•ЗK3^(opY—(=‰Ä˜G5‘Sìv’u,ÉáŒUΡœøì?{„"´kO-šÕÎ@Ëuà`mŸ¬rŠ{Ö«ÿ¬ ö<Íô•i·ä?þJëþ‚û ûζ\á®§L̰.ÓšÓi/оÚ餽ãÔSèÈ€ƒnM ·úÏ_ýÏÉݺÀ8@ð9@tAg™âMbl3Vy²|`]s…ÛÈÙÓ£§l.éªl²ri®LérKÈ$ÿØ?'Æ2 Wù°øyÛV}nõôìDúO•'Y–“æ1¨³`ëŠðÑ„ˆšÈ¡7Ö_õD:í©W¥‡×,Lž3oiÒ‘=ÑîÛƒ'éÎÓŲ³sM–š’WLǵ2 ¾O^‘rs¤Aέ/ôÙŽ¿4º”Û £W,ÿèÍÏ*çb@ïNðÙíø|i×|ú-«–ëhM¬í“U®CqÏ:`õG!kýžÐ±‰ÒHBjÈŽù¹µÖ9ÖÎzáê·-Rz»Qq‹·'Ìp‡L |±ÓY=Ÿþà,ƒóîCþ£ë{±>°>'w÷Ã.& pйt²yo~¿áúV£Äè‘É£d\Œá7„®{÷ÝXËÜ3!$LZ/ý×’é5ÜÔYiªëe–Q™¼æhòd/•ÖŸÝwe쬵–`A”’ŒÍ˜0ñ÷÷k.þtõÂù‹­—›ˆ©Jjèer?ë—¦ÿ}çÙªUvÃO˜õy±«g\ ¬ÿ"ß&œ15aâ=—tçÎhÊ¿?§¿P­5E§ “Ž;&zp¬,‚ãúÃ{…—þÜ1üË•ôm£†(ÌŒ^’&þ&òžt¢µ÷·«„°±ìä¯UMr—î®Ý·yjr\숈ÍïþSòþ¿?¬×T‡™†»3|̰xny!¢=YRûô.:ϓӦºý—Ró°9§ôÎNYå:+·÷]÷ÍV^üÛ5[¿%t:<¶vh9 ÖöÉ*gõCÏÛ3ú®;ôøí‰ñÓo­¬|ÑaîÊR2gÕˆê÷ÖLNŽ’§ÊžÜµ&jgV~ƒ=;á~`´“®/Èòbo+Ž»’üçž>c`|NvoRA@@@@@z#"BúFE††…C-ë£Ø#“Et´yº0kj–·ØVanßPOêh *Q*íŸr]÷Ïþ²©¥JÿéÎM—–ñ•d_@/<¤ÿ+/[I ‹ ¿~ä€þ׼ݸ©±B÷añºËËJÔ.AûŒ•5 z2È3!ÝyÃq»` }>>ÇÖ‘7öyŲӾLë±;}ækê2%__±kùÌ„”èkÃ'ÌÌIœ`¢ûê“o×Þ5÷%·£Œ"å!í£²<–nW’íUÎVŽ:øà?kBÚ5s¿eµ3Ðr kûd•³ú¡Gîû϶î¶|GÝCÔ®¿©W‘gßI­Z5uh‚,%=jÏúì–i‹K:12ùA°o1÷‡éìà«üçÁg,ýÏÉ`"@@@@@@€/îEó¾™»*Ÿ*s=ìfÙà_ĆD†‡K[« å_¾§/,)óXè*{¡×ž€Šdç¦I¯/ë- —I u†Ó_Òo(ÙÏÓJ’»"7dd¢>¤¬hqK‰uÞ#{5>‹a'‹–º#×ë›M—ζÙóœ~§_êÈbd¼ðÅh×VëYí ´œÕ^ìÅ!Àê?q´ó/%Xìä_#ävÂûž“ÙiC@@@@@z; õv'¡þ            &©˜…¡,îO¢îï#X           ¢@€HTœ( @@@@@@@@@@@º?ˆº¿`!€€€€€€€€€€€ˆJ"Qq¢0èþ êþ>‚…            *ˆDʼnÂ@@@@@@@@@@@@ û@€¨ûû‚€€€€€€€€€€€€¨ ' îO¢îï#X           ¢@€HTœ( @@@@@@@@@@@º?ˆº¿`!€€€€€€€€€€€ˆJ"Qq¢0èþB|6Q©"™ÊZL)-U{/N™NædŒ–þrè`yrÿ¾¡r¹\&Ñi În9ôÖjýN7âªÌL•ÞÙÖ¤)%5^r ±ÓK1=î’. þ#œÌ´q²×’'ö•ˈT×tµM[sQÿå¡·t…»Ô¦@0U¦g’á±&IíÉý&¯íÄjŒ.œŒryˆaI‘áƒÎÔ\wI÷Õ'{› ŠöwZ¿ì§ÖIǺQ«„¹þ 9Ù²{ÉsúƒV[¼í…ÚéT–`.Nò½þÔ¿3±cÔ—–³L2kü-}(ä!ƒÎX}AÓzðí%­%4²@ËqL÷–ûü bl/Âjª$™™JÞ"n«Yì„ßy3ïö}üëöõj Àþ Ús²P;‘@@@@@@ GÐZ\`­‰*ûYÉŠyã’bhã÷ÆÕ£³+Kݦ$Ù¾¹Ï¤Ô¾}Ý^6'È©·–U>²¡ÌhË“NŠ?Z› ”›d¶4÷G•ï­º4mù6wWùÛéNºç¦ñçÂî¿meÏÆßn õDQ[¾¯nRÎÚfO×EIÏ\Gåß‘F óÖN¬ºøs±H¨r6KÖÍQ%)¬Øíõ•GŸž¶Pë&öIƒJÙ䕿΋½1š„Û‰´Ök¦T¬rß¡Ìy„Úé¢C ù^žÀìwFnlúTä¹k#Ç ŠŒv§ö|Ù–êKJô®×-G-ÜXïK®µí‰)lí…DúJrhÍóý•´ó=X¸ð;ÎÁ’Ççß±`©(O;…÷qž“yš‡l      =ã"Éߺ,qèEâm‘/îXnsïŠF«Ë^E ÿú  Õß4½ñ—ëß§#à†Ÿ.;g\|‚Êfg» ¶o.6Ùøâw[)üØô©È}w¤r³’Ÿÿµ¥Ú²éÍÛö‰–»y›¤ƒ¤w祵Oãh9‹=lýÁ?÷%¡àæ—ÒtA£çé YÉÎ Û5€SðÝ››ªÔK¼LaÇÆeÂèë"8ëdµÿi~Óyø“r!ùCÆ «õ¦øaŠyöë¸ë-ч& ëC 9n*ù…yݦÚßì×äb³Ó±p!\%qf!à“ß 2éS¥“Áæ{j9ù®‡‘—¥‡Éæ@$!רÆ[b´–³ò`êVa{Æû’‡Ò‚&™©½ÐÚ©ÒUDEï=*ûû”K­•–<4ïM9,œ:˜Þ Èž®³ÒYíìTo/õ{§\ºM1~ǺMeD3ÄoýA4 Q€€€€€€@O% 0@¤&«ÿI_b·F`åOVpŸºKt?Þ+R»]#¦MI€*ÿØ)À€nšÕ?\øøÏH6™9:Ù¼†Uó÷_5:ÇW\ó KYT¹y½nÕ—P®1¹Ýšˆ5j*‹¢˜aÎh9‹alýÁm¥:ÙîKâAzÀÚ^ùíýë"6oÞœ¼¹øPò楛?hp¹ìõx.Ϻ¹ãÌÁñÎ!ѵ¥6<ÃÝ /–m­^Õq£g·³3½ÓïQéN×}ÿëNµÇqúƒ°çdq,G)      ÁOÀËKóÀT.-ïuÙteŸ~„´’Ï_^vɺ†³öäÑÏDmß¾½ÏöâmŠ+ž ™‘îõ3ggqœû‰_ÿÙ«ÏÈY%Ù]6?þÀ!µÇ›Wælj¶¿îë±2÷eétemS•äÕ¬|/SËù ‰~AŸdåCÈÕÊsÖ÷ìæUO½*MO‘FI[NêW?XÜT­“˜×ÎjŸÃ«]iyù½ æ¨g]£èðÞÂ~™DIò‹?P¤§„FqÁÒ¿‹l{@¸ø€4(D}ö»ÀZú Ïº`›ÞSPÚÚ°I'»9Ýb[ å,ZÅí,÷%žéžÙ}h/›rþØüE-¡÷â0¢šSä0â‘ÖvÍ®ùQ©ôž'ÓoùcÎz^÷ì[W‡ˆ5Dpú»—ì¦Óf¶o>Øi-Âݾ×úÝ ¤‘úž“ƒÇå°@@@@@º. )s6K–OB§ž¡¯òU/(ѸŒ ¡ëq×åñ©©©}S•7õ5qÚ€…kŠ“?Üûj¿…™q|ºbãã?ή409|ôpòG}”ðñ‘ϗΟ”L_4VÛqù¶ŒÜºŽÊE©D6Y;ëæ\Qÿ}km¥»µWDQ%§¯Q-[cm£]»Í&OgÝHõÈgÛæÖpƒíZŒt=ºÉ±ýíÀò¬¶¢Ã竹ò²øŠü£ÅÉ™\°Tû]KÑ#÷T•pB¢mâ"š½Ý´ ü.¨f¬úÔlj%0© ·dNq§óá'î3/RÔ~Ñüö>Ðrv†‰ÕøÞ—ìT÷œCÖöb& & ž*©ãF6’Hüka¬u"¹ékßåׄÔóskù "æå÷rkÀ/]‚Ý>Ùi6Ðå¿^íwH*>ö<'•·a,€€€€€t;/¬j]æJò·9ª$î%»öäŽÚi‹Kl_wÒ@4ß|[_^~¢îرc—OjÎÖ_¬mêørY?T1#¿8¹di†ãàŒyø/ÿµk·[§ÊÞQ±7göûçÆ'åb†ø–BƒŠm?þ[;»}1t¿0 £2,#-ÈYµÚâô,*ÎQ ¢ú[5ïÔ/(!v#úÊ5õkL©Ã¤mŸŸh«k Ykþs´±ÈyÎ:ëEÆ}À¸0Ú4b"ùw}™õ•’/¾»¢åô¤L|lÀÊ,Ç)æ¯x=äá‘1ý%ºfƒuÄŦ@Ë9’ð¹?¹/9ªîgÌí¥½úš-$o˹6aˆ¾®è±’¾ŽÌOKŠçîx§^_Yù"Ÿ{]ƒíÏ3‡&r2Ç_]âìöÕNgoõv¿;óÀypð©?à99¸œ kA@@@@@ ûpûe¹ßÍÌ\FäOHæ–Æ¨;öÚåÉÿ½Õ½N5Yó¸ÚùZQfÖ=“{¿|ò¨kã¸7î×e,LXùõþŠ?—º/©"àí?‹Þ²‚Ù†Û H…ÕŠ´¬\ÉôiŠ‘©±}¯uOÜk{¯izà®…õ|Þ;ZËp·W=õºôÎA!ÑÜë[ï]Ñè._Ó²7I¦Ò©í8ýE>ßä¬ËñE<]>·PºaöˆD#é+Ï4j ƒLÃR£âF=÷ñ®Á Ogå5ðùRßYóy—sq6¨§ ô»ÏÕç©oSNAó û×Ð)¾â"&<]œt묫´†¶¨ÄAáIѲpnâõ_UÝ?5Ù~$Q å¬<|îïKV½=~ϳ½X9hJ˜^ºe_õ¼ÛãâÈ9²JÒWJïQÚ“%µÚ‚áÖü®{%Ù´a†yÝ¡¦òu¹Ž v•¡)íì(~ï@ƒD€wÀsrò:ª     ]B ð#ˆTyd_þdó ÉšÏ_«ñòÂCSJž{ò~Ý£Û¾6éLˆ‚ŒÏ^éE—Ä" ‚ÿÊvšŸ•qõ‰·NWrASümŠuk§‡úd¢jýb}ˆç/ÖÛ oÓ»ÄmØÔÒè¦e4”‚\s 7:#ÏùŸ8.í»½[ªÝMWyêDÇè7B9®0‡1V~ܘ3íµ9Yi ¥š«õœA¡)c£6î)ˆf3ÎN*Ð\ìT÷ÈC_ý.ŠOú’ÜŒ'êJOþ\ÛLG©õM©T¦öKŠ&á—5ŸÔ¯¾ãžª¢*B¬_ Ø:` å(_ûƒ÷%¡®é–ù}j/¶•,ž¢ÿðÇVó4)i¨>Ú4îK-¶ž²×¿zk,‰¶hô<­/'’\»ñùyÂsUpC@¬þ`o-ž“íià@@@@@@À ë»A/Yļ”MÞ|~ZBý¹æó¢š)OnÓùRº¦è1Óûã?Ñr£Fd 7D¤Ò(îz6¾X×eÅõŸzÃCÆFi˜”"xËØH%Ù]Ç:Š(mÒ8Y\;ò›f¿<à£ÙŽüer¹9žsí]«ã?šÜf’„„IBš¾m[:áá¦6s¾–p¡& EEõ•dm\ª¤ë*Ih°gvA™Ý`¡dÒGn²ŸYJ)ɋ˦õ‹áf Ó~Ó²lZžÖZï5ŽoÒ½kº{XtŒ4qläsZ&ûÐOÎÅ{Ï;óÉï 8|ÖG¿.Ÿ;³e ]æ-==“(„hJK‰µ½‘„"§fIŒuÆŸ:B å|íâÞ—¼Ô}D|n/¶ª?[Ûú»AIæYX¤t =êh7¶lŽGtj¹ûéÈ#nj¹¯¶¯©ñ8¨W;áwGø8 Z¢ô÷µÇs²{.H°à¢tòwŸˆ½†¾,o*ßQçkpÈZ…&C›Ã:/ÖtìÅ&àÿUÕ·´q–#ã|[‹HßB_IˆNç´¤ŠØ¬åi¾ Õ2wŸ¶$úÑQÜŒJudÏÚ<óW÷Öl$k„$‘~Ï·´^Ræ,–Üo¢¯ê ä‹—­sx/Oó­Ï™ßüE-16êËØ¾4ðɾ𠻥Á!éƒß™*(¢¾ƒKI©}pˆôð¿ã¦é”è®Nx0Ðßr¾õÿÜ—< èþÉbµ—¬$–u‡Ú«}sø_¶/éÓ€?<=)œ›®PV{¬yƒ·©å|¶~ï̸D|îÞëŠçdï|p@@@@@z;€ zøo‹ÂnŽ6„“ÚãÍô4í ƒ7BÛ'ú¢¯à¥ô;6?ð—ÿä¡2:=7‚¡ÅèËäoÎë9cX¼½¬ÏÝ©á}Ïí]Z}ŸÃçœ|ÏÕäD…¶éFe¹">ÑÜôj¿R]à´hPÖ(e÷žóäÝv½)‰Q怑ÄXiTïâ†9oRòñÚ[§Ž0IC¤ý/ 8<ÆeVv¿³UןúÒÉèa}é4†Fré˲z§¦ëÅ\qå|éþº/y©|7¿$F{¡#sæFoM Ç^¾¼éç mK§NMÒw׊3­YËw›ƒú® rÈø_öíG' %çO|Üè}´‘ovÂï®ô‘Ì|ëÕÏÉÂuèÝDAä1@£œG¦Œ1¿ç>½ãþ/";sNQ –ÓÙÛé茾ið8S1ítÊ×ÛN=rñ›ÿTä†Ä°pŽskÅé&ç‘4üÓgœì s0É!]àIH¨ÇZz,ɓĿÞÿζ¦ |®\¼KïXˆŠLüUB_.Íx¡¼Á¶.‘eÆ9“T&5WÞQÈ|j«ªM‰›ŒvIžì´Ëâñ…‹ÇÂzøv¿»ã]‹ªÏ΄´¥Ên¢Ó"r#ßÊ^.qj»vÅ—cì~»/9U8ÈN}m/{‹æFúÊ´Ç[ò¥uÁ}†}g[®pR&æX—éHz‰1–l"§>ØÝi{b¶~÷à€ž‘ìËïX0`îVší9¹Ób‘@@@@@@ Çð9@tAg™âMbl3ÒõÎÝoèZ-ÜÖ@ΞÖÝgr“ªÊ&+—æÊ”n.’Iþ±NŒeú®òañó^ ð²Ó­žžÈ‹ £ÿTÙy’e9i¶H‡Ê[W„ˆ&4FÒD½±þªÓåŽÓ´§^•^³0yμ¥IGöD»oÙE9àÃESòŠé¸VæqáöÉ+òBnŽ4Ð%^ ä³i´Vöõ÷†VóI"¹¯hq„5ݶÏ&9Ó)ëèV{¾Ù[à“¶rq$V¿;ëæÛ®}ѧôÐY”9›%K3%p6ÕÛuùE§á”cîŒ÷%g?ô´s_ÚKÖú=¡c¥‘„Ôósk­s¬õÂÕo[¤4è£ ãoO˜áZƒŽÞé,[§Ñ!šÙNøÝý NÃï˜ýAÄçä nD0@@@@@@€™÷òþét²yo~¿áúV£Äè‘É£d}Â%ô+tiÒ^µ,(CBH˜´^ú¯%Ók¸)·ÒòÞ­¥SÔðÑ£?»ïÊØYk-Á‚ô•äК ÉáF½±æâOW/œ¿Øz¹‰˜ú§¤†Q&÷³~iúßw–TÍv˜6ŒÍN>öw6.¬þK[úŽlmFBB[ã%ݹ3š†òïÏé/TkMÑ)äcÆŽ‰+3G~xïùK÷yœ¶ˆ%;>‰œ2(„N…ÅmMä@þï*VyndÉiÿ¿uйóûWWÍX½ßú³= ³°*ìÛ<5ÙÍÑžkyÿßÖkªÃLÃÇÝ>fX<·Ñž,®4÷%‡@Ò¢âCŠéÊ0:í9µÿmþäã£Úò :còM·†¤Ý1¼?ó—ø ä'&Vئ­óÁNN‘›Í;7H²`ô»=>AíšI_&).[ŸrYÓòuù·Íg®0h[ÂÉ1¿?<9–·s•ÞoÇ[ï·ÆZŽ–þÀz_ê¨fO>`i/tÝ¡COÿ6‰›óô[OT>´Aíø1Gú2òÞšÉÉÜ]ã…ƒ £³ò쪞z]ºyæDA÷h;áw{êÁx,þïX0Rpk3C ÌÏÉn-@"€€€€€€@/$ x ¢¾Q‘¡atZ"˺*öÄdDí0cVóäoöy7Ô“:ˆJ”†Jû§\Åý³/ÁÔR¥ÿtç¦Ë‹ Ë_dÑLµÓÞ¨n~H.•­$„E_?r@ÿëGÞî@ÇÔX¡û°xÝåe%j7ëðزVÖ4èÉ s¬…Htç LJl%qaL÷3u™’¯¯Øµ|fBJôµáfæ$N°SQ}òíÚ»œ‚CÜåç|´)lëóÆÌáñ±²Ø!ã¦Òr&bjüY÷›–š¬Éô€ÙNûBÜ{ââ&+’8Œ~·‡'¨]3飃*¥RiŸ”¢Fsÿì•“VòÃá·ªï[\èf°G åØûƒC•pb# ¸½ØÖÒ–ï¨s q%\Ež}'µjÕÔ¡ ²”ô¨=ë³[¦-¶MM)i-*àn"ØN[q¼üõ;¼DÚ-gé><'=/T@@@@@@@G‰¢Sp!ªÌt1õ›eƒ.mm¬6”ùž¾°¤Ìk`A°"ø€Šdç¦I¯/ë- —I u†Ó_Òo(ÙÏÓJ’»"7dd¢>¤¬hqK‰uÞ#?XË^¤ÅÆQƒcäz}³©ñÒÙ¶#{žÓïìÌVÕ òÌ´Ñ¡©"CBH(‘jM?œ8¢[U¸Ë%èÉn$ýG€ÑïfƒXÚµ0}JU&sûéÐA‰!Q‘a²ˆP‰¤îÂýÿï9}©Ó´röŒ-סý¡…8ÂÚ‹8:YJ ;YêJ@xÀs²PÆÈ      `%"«±Øƒ€€€€€€€€€€€øN@ê{(@@@@@@@@@@@@ ˜ @LÞ‚­            ˆD€ˆ"@@@@@@@@@@@@ ˜ @LÞ‚­            ˆD€ˆ"@@@@@@@@@@@@ ˜ @LÞ‚­            ˆD€ˆ"@@@@@@@@@@@@ ˜ @LÞ‚­            ˆD€ˆ"@@@@@@@@@@@@ ˜ @LÞ‚­            ˆD€ˆ"@@@@@@@@@@@@ ˜ @LÞ‚­            ˆD€ˆ"@@@@@@@@@@@@ ˜„øl¬RE2• ´˜*RZªö^œ2ÌÉ-ýåÐÁòäþ}Cår¹L¢Ó.œ;Ýrè­ÕúˆÛ®LÏ$ÃcM’Ú“ûM5öW< ±ÓC=2Yÿq2ÓÆÉF\?HžØ?:T.#R]ÓÕ6mÍEý—‡ÞÒîR›Då*‚¾ì§ÖIǺQ«„¹ö©9Ù²{ÉsúƒÊ*g.–§T™™„ëmmMšRâµ_ðÔ×™ž^]9ƒ<÷LVݤÈpƒAgj®»¤ûꓽÍEûÅm×Π…úÕNrâ´Ït²t}vè-7ÄõéCëÝjЛ´—Û~úö‹Ö· ¶\~&XîKÎ<{ê¹@ÿ±aP’ÌL%oQ¯÷&žíZœvÆÛddô7ž~÷·ݦ|ýý¡Ûx†€€€€€€@PP«/°Z®Ê~V²bÞ¸¤Z€Äø½qõèìÊR·…)É_¶oî3)µo_·—͉rê­e•l(3zÎÓ~%s9”Gr=­|oÕ¥iË´y“áo§·RzÞ5þ\Xý—N¶•=S¸1Ô=mù¾ºI9k›=]–î£>e6yå¯óboŒ&á®zkÈ5S*V¹kà¬ríJøû!´6A)7É\ísLñÖ/øës,gŽT9›%ëæ¨’ŽÉæ3}åÑÆ§§-Ôº3Üäš$Ô¬v —ó½}¦ån–þi¶*1Ê-y?ÿöŠ?wDjYïKn ïq‰ÂýLj }%9´f‚ù÷˜O žîMüÛµïíŒÈüý{ºZ‹ð~‹þÐÕ>ƒ~vŒ#ˆT$ë²ðÌáñ±VÁÐd=qÙ+ÉP’¶ÔêËOœ¼òå©rýOg+LU „ Ÿ4]–õû‘ñý¤2é/gþ)1ïpYE×·ªéä•éqaÄ`ÖÒ¦—xùR_¨.†÷С\Xý§ ¡mͦKšoê|þyË·§Ï9ŸGRIfÎÊŠúUbDdô°)1{VœÑO[¾ÛkŸ#|ѧ"…}‚‡ á†êošÞøÇËõïÓ‘iÃÇO—fß3.>A'ËX¼=át鬪ưÊq…õ!mF  šd£ÞØÚfrÛöer™¬±©ÙÍ5áúªŠì$ëipˆ R·þø‰öùŠ5d Ÿ9;dúÄ¡‰·E¾¸c¹q̽+mB¾1øÕNF9_Úçäo„,›8xGI«ù¤¾¨xgÓ‰ó„ T&Cõ?²´Û®Ö; d½/9Ò3OýÇ£AOtTë Þ6l»þf o×¾´3o6âZ ÷{ ­ë]Œýý¡K¼¥      Ðcå®}%tê7õ’š¤cñÔLW† ‹1I‰—õŒ4d×–Õw•¸N»¤V4lûteå{ô ä(E~3)CFÔû-Ñ7˜ÿ°5/üÆHƒÜÍ%‡$6;Šè‘'l\XýWJ˜PZãR­6•í*Ô¾¸÷°ô¶x™"iÜ]ýÓÉ.|Øõ)s•Ž Á!‰ñG㺻­·ÒhÔÆ]§WV}HÛ§Bž"™IÈNëEj«›lÎí]^}_A™Ç~bËi9òUŸsy½û<“?2z@1IõѦGï}†‡¸MC4êƒmêúW+7Ïš2èÎèWs4=T¨î|Td'@ÙüÇj'«œ­BÛ'ÉzA²¤=8Ts¸¨zÊâm± ÚÉÁÒ†BBêl¸#Öû’c)=ïÌwÿ b¢^E&Þ¶ªÂ» ý°ãýuqÜowËÕKÁk¶vmÓ$¸ÙDqÔ…|õ{šîGÕ¾÷[ô?ºEƒ€€€€€@&à%¨ã®Ö™dlÚñ\pèÊÙ£WVžRù\ù•Vw9Óè‹<7Á¡Ž<÷‘eÜGÈÞ·ìM’ìáѱ]•áû -t,ЧÕNOåõ”tV."ùÏ ãeç´Ö$wÓtY¯‰µ÷¦/%6Š›n‘è>Ùhÿ±¨>xˆüÐ"¥/¬ÃHÊõi}†MŽÕ6!¡Bˆù®Ï¦GªÜéRË4 dÿÆ…õ–àË€>æ¶Ä¥ÜxçôhÛÖ#6ÿ±ÚÉ*g_;aí“uŒîË.1^8Ø`²/ÓõØ?÷%W=Á•"†ÿÄ®qZÞ#2󇵟6¯Ú` ˜²µk{Û„¶3{YwßýÞU–ûS¯ýýÁŸBÙ      Ðs ATEN>T]úÖŸô%íÓÀ¥ÉC:^†2cRŽ!ÛGÕW^òðµý ²ý‘Qdô«ýïÞÜTý鯗‡]—âI£Ÿìô¤.hÒýÄ…—ÿ\!]ßǼ–4ÍèyzBW9Ö¯úô–ÚC“†õ¡ƒ„ƒD*ù…y¥ÚþÖÈb’ó“<‚ ´>†ôˆ F_ÁUDVûŸæ7‡½)’?d J°VÔ?L1OIê·8G‘¬xíÙüÇj'«¯ª¸Ë¤ZF~o¢ÏVòÙŽ|ñ¦äc¼/¹31˜ÒXý§JWÂ}vqEMÔÛ«’¨T–¥Õj¯sÁÚ)ç‘…SÓ>Ñ@¼ðt­h¶vm+GÁI~wç7Ö~ë®,¤€€€€€€€£!:T“Õ‹mÁ¡Îóó˱(²"†f•è~2¼W¤î˜~Æ^zQñuz††~èÂä J4n¾Ï&kgÝ<€Ží ÿ}kme¿¢‘+øù4úâ|ÕÌë :ƒA& ¥kXÑñ8¤úØŽËw=¾‰ÇVÂ*êïÀò¬¶$ÅÎê‡n/‹¡È?Zl)B´ßµÍ ¶Äƒ¬rŠóšbfGˆ<~ "5Þ’5Uy5qùCõé¦ýÿx¶þÅRçq-^‹ÄE!h,#¬=cm£Ýý*›åeµ3Jnð¥~,íS×j œBˆ®±ÎÌ(ëîðßO޵¬å<ò˜áØ¿×Ì+Øß)G¾÷%ŸøvWaV¿›Û§š,xª¤nOqvD"I$þµ0ö‹I¹µÜDrÓ×¾ÊÊ ©!;æ[Ò:CÀLïåÖ 4^0º®wV‚çë,íÌsi¸]LÀ§~Kïžx.èbB=€€€€€7®A”¹’ümŽ*‰{©=¹£vÚâ·_/ß172…þñÛö㿵³;·nè=Âzžþ3×Õn*û—¾±7göûçÆ'åNªûŽÇ}Û>?ÑVg~±o3£æ?G‹:‰¹°ÊÙ´ð9j šo¾­//?QwìØ±Ë'5gë/Ö6u|ɯˆª˜‘_œ\²4Ã3Ÿ‚‘‡/:~Ñ¡h gÕjذl‹Šsƒè}ªUóNý‚ÇiÒSo°Æ\¬Ùý¿gµ“UÎ\#–ö©"ÊDE8'^QÞÐZ°çHt& I+t_ÑõîÊÊ>¯þ¡V×l’÷—ýzêÒ„×ó:iÛBîKþ÷Bà5øä?j®f ÉÛòÅE®¢G„¯+z,‚¤¯#óÓ’h8Ú@N½¾²òÅNî…æJÓµ¸þ-C125¶ïµ£î‰{mï5Mܵ°žÏ{GkÞö¬úT¹…Ò ³G$Êèû}}å™FaiXJxTܨâ>Þ5¸á鬼w˲³Êy«ƒûkj²æqµs_i"Ê̺grï—Oum‰¸.caÂʯ÷Wü¹Ô})H™@ö&ÉT:&wŸ*zðù&çÒ;òâ,à¯sV;y˱´Ï(ÆM5I·ÁwÍí?$\ª-»n’ãfu ¶h¾wxLì©óòî¯p^ ÌŒLà}É_˜»]¹¼ýg±\S²ÀôÒ-ûªçݯö@Ì‘U’¾RzOÔž,©}¤Ðõ\O%Ù´a†yÝ¡¦òu¹ìYºó+,í¬óR‘ºÞýý¡[ù Æ€€€€€€@ü"UÙ—?99†ÂªùüµOÁ!¢šG¿@ÒéÈmz—÷±Aè† 2™¯ÿ¼T©lW¡éñYWŸxët%÷òÜ›bÝÚé¡^D|ºÄK­× spˆN~WùqcδÿÕæd¥5”j®ÖsÊCSÆFmÜSíb«œKA>$hJÉsOÞ¯{tÛ׿/ÿ QñÙK"}(¢žШ¶ex–‚\s‹’®“NŠçüO—öÝÞ-ÕîFJTž:Ñ1ÊËS±¢§³ÚÉ*ç­^ÛçAr¦Jgæ*küF·Ô18d.yÓÜ–³æ5bÈo&¥¹Žá¾ä­ AsM$ÿ•,ž¢ÿðÇV-Wo)g¨>Ú4îK-|8d¯!ôÖX!mÑè7øy}9{¼¶3‡œ8îE@¤~ëP)ô8ðL À¢lòæóÓâ¨=5ŸÕLyòï:O¦¥M'ãòqÛM³_ðÑG%ØÿûÿRÃûr×®½ku<—þñ‘Ï?}ÿ•¸t.›Ÿð÷Ô2~pÁH'W!dà-c#EŸjÎÉÏú”äÅeÓúqAK¢ý¦eÙ´<­u4ÓšÇ7½]®­ã.IÇFØ8GÎ[6V9«¼¸{MÑc¦÷l3¿Ô•%ܾ ._siçk‰%$-#QQ}%YÉ•áÆP *Î.(³,”Lú´ŒñƒÉj'«\çOíSohëXËéÇþ¯ÎÝ(=BJÉ×ç›Í£HÃã’DâÞ—xT¥ûfÑÇÏÖvŒV”…EJò©5Zî~:òˆ›Zî«íkjºb£§vÆÇ|ä.! b¿u¶ýÁ™ÎA@@@@@œ üÿì \TUþÿÏ<2 *‚<¹i¤“eÚºþF×õ!áçC+ØKÍó_R¦¦f´¢µ>&Y™îêfaýXqs}ÈÖÀ²6±Òµ$3MËhó¡„@†fæî ópïpçÌ€ ~îë…sï¹ç{¾ßó>çÜÏ÷~ÏiGQyãàü°[è¤iÝÙ•ŸÞ&è²iÐÑ)&#Ñëv“®ÎæãºýxØ~" +­Ò5rYMÁá¾ß‹ˆÇ>}šÔ%’af57©yüÍÇ+9É­OW¼‚X¢ºß=ª‹ÍñÂ*çT¼O/ëì&Û}Z0 ³(º/3Th¯"V}ùßüd´n¶EÌZB'¡’:¶7]JŒ—ëmŽV9çÒ¹kQí M!+—¥ÉøëŸDÞÈ›Ýͺ¬Y ù$ûe·Y¢ôñŠ4R˜ó–ùdµ¬9ŠÅÉ„éòÁFºW•‘|±óϵÎ÷m×bûµ-¿ý§˜öcµ“UŽ0÷Ï\²ïxYW¿MR×-iZ—ï¥Ì}…FÑû’’#µ r ­Q~ŒÏ%{Žñœ¹ý(Œäõû£¢¤Át—@²s^Z…íe޵3^¹þNJ>j2zÉŽÈ©|àjô´Ç[Vï˜~ÍÞÏøŒFZG ªÝ;‚¡mhó¸e~î¶aeP4€€€€€€€_à&ï‹Ä[œ@6íÏè:0Ð o0I,Ž™2D¤’Ð=!Œ¤®úºuC"'Ò*éK§”sK/ŧ¿#[K—¨£Çpþýk£f¬tØÊ°-1w9ouéÔÕy¶y©¦ÛlvÚÊl\XÛ/~Ù{²µ‰‘‘µWô~(¬9ûÓCQYµ94¶¿t䨑¡½ÃdgÌÅ^¾ò à²E„,ÝùyðÄ^òPk»Ô‘ÿ[¼Š'ÜÈ}ÏdVOÑÐå‘hO®øoý矫>[¤7ÅÜ9DÏÀî]-oÆ×÷æ+¶_NŒMŽ­HÂJrxÍØ•É`*ÿõçëE—m¸ZGÌÝcã}41]mo^ÿ÷½¥¥3–5cÔ×y‚÷5Ó¦“÷7Mбx «/è>þð“ªÂ²óÀÑ÷ªFöà¶a!Õ§³+ÆÏy]Б$¶_âEû±ÚÉ"ÇÜ?9ZZ²1os·!aFúL0’_O|rõÀ?ê•ôY1"ad—[Ce*n ÈíL.ÙÜ´vës‰ÓÖé–ö£û^ü‡h.„ëÜ®ù%l(p|™#a9ùhÍ„.DÑTt¨fxrF=GíÂíÒMÓúP?žð3Ú>?s¿öªŸ9Z€«AÀ‹çÙ0·=u²Œ[Œ‡öl!èNIÀã=ˆº„+T&…ë:@2¢ uX¡+ȲØUÛrsò 5+ëhv6vƒOÚ“Kmɯ¦I‚{(ûîѽïàµ7×ë?É^wuyNϾ?-YKÊk ¤—eÎHô—'yœC\noô½<ëñº€­/›’F„ÉÂúŽžDÿšM0sí/úm\fqx6'ÓV9¦v¨©"•Ô1%UH»ÇÞÂýÙÛbÖ•þ³{ãÕg¶ä;NìÒLLúì ǹ#‚L21ÃP¼ç…i‘±¡·ªÆNKk—£ìô»÷¹qqYÅök./sû±ÚÉ"çEÿ$¤€,H\_¹eÿSæAJuôàqÝgÇUÝr+ÎÕ¿¾ð‘Êœ¹±Íøô¸ýZöª>»³ÒÅ9ÄÕùÐ*òâ{q¥«&õ‹”Å&„ì[Ÿ¢›¼$§9X(X)oŠúVvÇÔ¯½êg®6 ¥ý 0µ{û›Ùþ=·ÔDŒ‡öo'hNFÀâNV{T§hIJZ¼´oÏY÷ÐP©J%“k+ç¾:lØ“çÖ1Ôbœ†¤­H“Ž2Èó³–èrlëµd°;óRŸv*yvòpE\`¹œ(ˆÄXa¾xê¨~Õ–=.N;¥4‚QΡqÚ¤©dxÿ²Þ¿ “«TÒ†Ú2ãÙ¯>2lÉÉÉSœäCÀÚ7‡öî¦4ê͵WÎ7Ý÷’a·Û>j+ד~m“aýdµÓs9oû§69MrÿˆþŠˆà™Ä¨3_,ø aU–Øg+ŸÎ*çyûù oû™¿ÔvÞŒ<·7c?AA@@@@@À7à ò G”           ~CÀe3p¿±†‚€€€€€€€€€€€0€ƒˆ „@@@@@@@@@@@@À ÀAä¿mËA@@@@@@@@@@@€‰DLØ            þK"ÿm;X           Là bÂ!ð_pùoÛÁr`"6€€€€€€€€€€€€ÿ€ƒÈÛ–ƒ€€€€€€€€€€€8ˆ˜°A@@@@@@@@@@@ü—DþÛv°@@@@@@@@@@@˜ÀAÄ„ B            à¿à òß¶ƒå            ÀD@Î$¥I ³‡Kïê×[Ó½‹B©TÊ$újcÑ…sºÃ»Vvˆ/U“D†™%§ó̇ ÝË¥,\'3ôu˜Z"7qú Oëö.}ÉpȽ½›@–­OQÜ}{xP½j0êMuÕWþîxû™ÛŒ˜Ûª&¿Ë Ñ’$M$5»”äæ¶B‚¥Ý9™É£eƒúöRFuU(eDª¯»ÞX]þ«á«Ã»ô[ö˜ÛƒY«ýŒÕNV9[¥5SÉKÏ&öVzs}åýןï¯ÏÌÊsË%>u¹dƘ»ƒz¨•r íÏeE… ‡Þ]Ú#0´II„kåÖŽºÂ\ÒÚ8l­Œ›ê>cû13ò‘¾VÇC“žö3[½Xå¬ò<¯½6ƒ;ë§ú‹{<’”¤qŸÅînË3†UŽ6‰X¾¶ìÊå;-ÌÍ%­ü¬àCZ{ðäwH{Ûv#ôy8nñý~# :A@@@@@ óЪ‰¯Ž†üyǦ ñq]ºËÉ™]ËKÛoÎÓt'i9œqOL½,ùhÕ•É/hä•Ѥ·þ27ìŽP¢r½_N¬™X¼*×õ—Ÿ¶Iú§™Ú¨ÞÛFòqƈâç&ÕyE:Q¢6åEÉŠ¹££»Ñ:IL?™VO)áÇÈÚî d[þ‹wªL !lÕg߯Ÿº¶^è¾OÒ[íg¬v²ÊYk¥MÝ$Y7[­æ©¤¡äXíâÉ‹ª]]vZòÒεÁ#{‡òˆ‘Ëù›Ë¦.Í18ÞK ÙŸ®Ô(Í2Çt×+·ãÐ5ûMÂÖ~ìÈ|¦¯ÕñÀÙÈÒϼ‘³rñìyíÝø³jì¼ÿú¬¿´†(a%9¼f¬å{¼µ¬Üýæg «-céÎÿOì%á}¶Øps¿·pèØgâ‡tìzøÊ:ÏÇ-¾ß}Å倀€€€€ÀÍJÀÃ" éGCR]…áì©Ó×¾:sÖðóùbsi !ÇO‘%ÿqpDW©Lz×´?E¥É/Îtݶãœ@ÞZ@Œ–´FƒD bBK¶üe>uUƲoëÞyãͪé+ÁÇL‘¦<0:"R.K\²#ò\îŒÒÝv¥s§V¼#_>®wðóª¬ìÝu§.ÒSÓ›ôûíïeñÃn ušIç²Þ‡–dl]®Jf«¬Do4ÖÙ.\>YÛ]Mõæ+…ßVýòKÝwç~0q}%¸—V2mFrÈo£ƒCûOì¶oņÉ/ìåwºØâi‚˜~Æj'«­CÊ+’õÔ9Ä9G.}^ýò+Yµ…¤'“4S>e\¿ê¨aÁ¯î|Á4rúŠÚ–kÈ«ûÿÒuX„Y-Ñ—¼·§ìÀ‘L$r™þø´®"”êžñs#Þ^øCÉ# ´& ½6Ë$&ƒ©¡ÑÌ;ÖdJ™¬¶®ž÷^‹ 8³`j?/ØùLŸ˜ñÀÚÏXå¬\<^{1þ¼h ¿õYQÛÑÓlܳÌÝÁ}ÓsêæïzV9Z†ÁØ@ŸS*b¦¿E~)®­3ËÌÜË.‡\®“pß78:*O‡tÔzøÐ.Æq‹ïw¶Š›€ÇDÉ)}%{r–¿¢oDß$æ¢u.ç­.º:ÏêýáûÄÖƒªYC›Bù5ioJ³gÞ%1]¢.Ó#\¨¾O¨>5i Ÿ®]üœ}øKò+’#‹ÿÍMH•É*›¸dÛÍé rbŸ¶ö-Ť{îì"5K%¦rÓ™ïÍ×ú÷è&Ñ—Þ3«”?˜JC|Õîö漺ÿuvȨ³Ãn{ ÏÏÅö3w%³Ú),—D#z–Y"z$eÇê¾oQ•ý2HÚ…oK7MëÅÙtnûü’G¶X=ñËvÊÖ&öŠ”˜ŠLYÓK²œŒÎÜw4tT”4˜+¯Ð±Òâ0m‰´¸øÞÒÒ3óÇ¥S‘¸ä%ÀÖ~¼E‰Jô>1㵟±ÊY´ÁóZxü‰‚îÇ™|×_|:&?^~G°Qùß]óKf:9°…õðË-Ù‘tœª‹áü»×FÍX]Xw:"¶ß!±&¾´‰uÜâûÝ—­€²@@@@@@àf$ õ¬Ò…DÐ9Ätè}r±VƽLìþHÙ(I¡Î!. â§"Ûw|cÃB,o~9]kïÿ±(8t˜\ÔI©ã'€Äöw¨Ëº‡‡wáœC¦¢C5pÙš#‰ŒŠ¿#‚s];ìÚêáK^:{­ÁvWøÓGíî¤àü Õ¶$¾eÖl÷˜?=ègît°Ú)$§M›"µ.÷VCò^stqvô l~þŽ{§4-£¤%ÞÇ­H~ù`s™³sˆKOßöy5טfi/éýéñ¼ËÉÉmBšSÓlíÇŽÇgúDÖ~Æ*gåÒÏk¡ñÇÞþ!é³þâÃêÆ§?&ãœC¤â?õ«D;‡è±­ÈIdŠæg¥ÍEQmJ€õwH›uà ÷ŸÅ÷û oF     ~IÀÁ©âu 4#IOnˆU%W–¸j){*ÙñØÐÜìõÿÜXv´Jâ~i1ƒuÅ+Etÿ ¤–B¬gZ-ùe›ræˆÝžGÚåäwt.ºxùbg†Ý]ÎÜl×¥”Óá²Íó‡ß;cÑuÎá«”{?Á&ªÝ]YßdqbÐÅÏLÂË۹ʉKñ°Ÿ¹)”ÕN!¹±Ão äÔÉ*¾¯ÿ§sÈ–fy‚F ÙÌ1GôWÏåö×&Þ–±UCNˆÊ=B.Y¦„Ü¢O ¢?™ÚÏ |£Oäx`íg¬r—6z^ ?/šÂ/DYû‹6AK´ô;UË=o5Í'úÐÌ%‹&õ¦Ï´rà•Å•öÑ’nË`•s[(nÞxmô;äÆWÌ+ XÇ­WJ!       ”€ODÏdLPs!ýÏÆ² x÷2y&{®:Ni–q‘=3·ä›‚ÍnmÈÏüÄXBË4+ãdÏì|!ؾÕÖ¤'†pËÙ™Š jì÷;š1c˜’K—ê~2äí!¼vØ—sóœÕKþdÈq»7”ç4Ä´»k©)dÚð˃õ?}]ëì'qÍïYЧýL¸tV;…äÈm1çMù…SuΓ¥kÖN §Æ\),¬²†Ö…“‘Ó¸h ¥eÿn×¹y:bó¶Ê"ú¨§òäi4\áIE’x¬í'^ƒcNßè?Xû«!mó¼Žt;ß{ùÃCë7mÚ³)ûp̦T Ï‹Ôɘ¿=‚˳nÎh‹“»u~tÁ ³ºqÏ´_ó·–­ý g•kÝ"ä¸ÑÚæwÈ®•wúÙÇ­½^|¿ÛÓÀ9€€€€€€€Xn3b áòŧo—MÑuå¢v¾|sù•–ýOZJáö𢠠yJÈÛÉn—–k‘Ê"o~Td™Õèuoè‘ý[º& ÉÈþ·:!VÂ9£þæTV¯¨K“¾ô§úæù(M™¶Pšžþ´,5%‘gò«E#ÎÄÓîÎ¥%¦®’ìÍŸq u’Š“õ+S7Ö;çñæš­Ÿ¹jdµÓ­}ó>ÚõFÈõ’ 6ŽE9·÷PB¬4Dª;mX=+»®L/±ìd[+ζqAhähZÊ6+Ãe\ë3üÙ;víÈÞ¦~mųò© nÃ\ ¸ÙS¼h?&t>Ðçéx`íg¬r¾~^»LàGB^ô—©ÏÕ¯ ôY@´³3£-‘‹vU_³g^H}vɪOêžK]/꙽`ëjÕ 0c ÷BÈýK÷ŠÞUÎÎ\œ‚€ÿðbÜÚWßïö4p      –€\lFwù4©›$/LêC—¡®Ÿ#Ye r y¢vRÈÚzÐX òß]kKøöPÒqà…äÆhõî²GFôŒE Rg˶.ŸUý£.kÞÃ9N‚ú£‰9Ñ×VZæ,3¶îUýq`L˜m¢ËžúØ“ÆþV>73Ï6¯éT .[# ®Ý©ó:>VMëeÔy€DA÷@¢q_¤ìÄΫ÷=µQÄH­YbŸ½Ÿ±Úé‘õ]4™[[Qk7NRÈâä;èøh$_l›S^@ˆÎDß#f™L&%'eúDcˆR-»;i‚œpp.qE>:ÿžË&EMåÛÏÆÊ-ÌiRDOu\„5CœæN2tÜdòDÙ¹º¼7^¬z5×9ž©© |´`m?BØž3^ëóp<œ$LýŒUŽ’õöyíÑøkiÉÎyæU) æTîËN Œ"QdÖ_¶„ŸVÁœNYû®‚{!ƒr²sž5­5€œÃ{:·× ©Èäü‡;YOä¤ò.’$º¼!‰´þ$°/·®0—Â#Í Î;*¯Æ-ýµ‹ï÷ŽÚ²° @@@@@ü‚€÷DI+É_gk£¹IïêÓ;+&/ɱŸ—n†ðÂÎ9Á±ô?±—>¬žéÁ&Õ¶¶}yª±Ò2anK¡SUß«Ír™ÒM”ZÅå*>[Ó¹ïhhuIk‹õ_Óýwòó¿,»X¡¯7+»Ë~7iYäöôD{¿QKá8sO@d»[ ±ÛçÈvØ€¤®ÿxíi¥/cX¼êg¬vz"G£¬ž‚r¾ €:€¬Ç3Ù©ê^t|4¾Wµ ÇqYĨ¸ÛéðÊ%ǼVÍåŽ÷d•ÉŽK@MY±]þèànÝ%úz£«'¢†~û]ÕÙ³§*Oœ8qõtáùª_+êš#ÔýÔS3²cr–a,45‡ðsû éöŽ—ú<¬ýŒUÎÏkOÆŸ[Øà¦—ý…n&é›ÿÊ=CŒ¡ƒT벞 $ ëȼøhêV6’3ÛW–¼êòËÃî¥öü´~QœÌÉ·—–:¿ÄÁ#aMòPN;*$cÓš˜ŒŒ —¿…3¨#ø¯Æ-¾ßý¡‰a#€€€€€tdÞM $-'2ÆÆp[¢TžøûÕ Oý7D»p»ôÞ^òPîMâ­ÓWÔz D›¶Eºaæ (77”üP[hìeî« úpøg{z×,NN¯iÙV'„pK—Ñ£÷}sº÷QIÕgß­ï¸$Nå‚­ê§ìÖgÒÜÈôCyÅö{yjßM—_d»Û¸ägÎ4ŽÈ$Ŷëøä4ɔɉêÁqa]nú@øß÷ßR÷ð}‹ªÄÌ;ÚÊàûô¶Ÿ±ÚÉ*×\‡”’ItéEn|dÍz¹®9½éÄæðÙ˜šY{ÞºdSxàØÅÙÑCf\ª-­66†DõRE‡ÊTÜr‹Yë¿.½?cRŒ}$!dÍSÎc³Žh’*ŸM{H9aè­áœƒ÷¶ÄE‘+¿É+~>×Ù\»% ²ýÜ–áÉM‘úXÇk?c“óþyíõøó„½?æÙ_lU+ÌY`~ýî÷ËæŽP÷¸ÛÑU’.RúÝ[}:§â±--Nm[~×O Ù¸aªeß¡º³»+ŸÌâ‹(v•"téXOå̺RÃ…âëu2™ÌaÙX‰\"¹üK™íÑɧ i б ˆ·ø~ïØ ë@@@@@@ ã` Ò¦“÷3&X&¢Ë¿ü{¹sˆhçÒ7‰û´ú&q£Áe^ÜJêYaqÑEÉJ>«MüÿªS“ãkr ¯Wqô â×öe†¶ >D~(Õ[¢#ä*¹BVû­~™£sÈ’uãœ-ºó–=^º‘ÿoØÒRÎ\ ˆmwWÉæ”ü=[ÌOÍH¼>×¹nÏ1L½níEs–oûNV;ÝÊQoªµ³©É-wsQ@ ${öïù´÷o.ã{Ó¾äÌ©¦hŸC$-q~eîé_*êi4]—¨^ÁM\×èP¢ºZøyÕê{(Í*åW´­¥K0½ôôCúÇ·}c‰ DMƤ, æA$¯ÚÏVˆŸ¬ú¼¬ýŒEÎ÷Ïk·ãÏô~™•µ¿8U6gÉDÃ'—,‹RÙh,;V7oÎë:§l¼—)ë_Q #R]¡aƒû˱È5­›1cÆõéÓ§×Úÿ=ü@Í⬻%·•Á÷»\€€€€€€°Í% çནBþùòäÈpúVqù—YåŸÞ¦çÍFãÇ–…7ݼsæ›=>é˜S¦TZæËo½ouħÍÜ5òºï—}´ü}£øÕå“»vãVܪþV·|rzµ-Êdͬ1uú¬ƒæûû‡v“F >ðÚlÝ„&; ÆF*`­Ú¥OÿUÙ]d¯;—|syqm\œª‹*<†³oÛãá=ßî¼âN‰1ý{øÑšñ±Òžw Ö½•¶öuÊÚê¥wýÌ}ñ¬vòÊ]® œ+TMÝD!!]$ɯ=£ÐÐß%Ôù933߮Ơ¦H8GëèÛÂs¦éÖÐí¾’ˆšn½Q˜›Kš¹Ev#J* 1Uš~>ä()tU˜õ¤ùã1ŸWsQ~²ÈÛ鎵"E…Šì¼é^·Ÿ‡hõy?Xû™çrmõ¼æâ÷»ìŒý…¯ž'ÏW4üo¯hË-Y@°´'=k~Îð pit‰¸‡hä÷uúõŽ5境å$2…CäYHMÀ‡ãÖ¹žø~w&‚kg D äƒóÃn¡“×ugwVºsY”ttªÈHôzž­Qœ­qºÖ¤.‘ ‹0Ó)p#9þæã•ΓÖëSçÕ¯ –èŠîwêB'¶-‡¾ÞÔ¼·‹S‘—æF‰å ãàˆ˜Vƒ-oÊ Û]$£Ò*]#—ÕîÝ^D^ô31¦²Úé"Wxœ”ÕÊôœÎˆø¥¡åVbª$ûÖ¦[ÞÖo¶%y$ªiãi@tÝ¡C¹$×Þ9D…½÷wÜrqý5ã©æÂZ?©³8U[ÏwÓçðaû‰bɪχ㵟‰•kËçµËøÝ3±öç*'¿"±î;Ôt#t€êÏ;–9gs¾~bñx·¼¥¬âDýÑKËÂ*ç¬× à—|5n*ïw0H°ð8‚èÑ¿>0 Ô¨"'럱|ŒóþÎÜ—ìȺŸFñ\Ø¿¬ìA‡ }bq`IL%¦‚=\‘óQHr>»X=dRï@³T.íÞt{ã‡gtSû±,å%¸tNúM¸e.”ÿ•¨¥sœµßLמ¶»X6J…uï‰IgXdPTQÞô31 Xít•+ §Š«ëîÐ)ÕQÔùIHù‘·Êœ÷ÀJª‘sŽB.“ƒNãÂ’ÌûOÞ¿ ]nÑD®|•_Å9Ç+HM ß™¥Dj1Š?Ré~Nm×~|xÙôå“|b¿ï—sÉîž»Îy]¯Yû¿\[>¯]ÇŸkm:W [qd@#Eç ï@¿rkN¼yuã/c—Mꩈ›ØeÏŠ’_Økqê;ÊpW©dÌ]]ºÒECÉåSŸÕ¶mÔ\«\s8?'à‹q+ŒßïÂlp@@@@@@€Ï"ˆ4sÉäÁÝ,~˜sy¯]ódº5Ørß´´u·³T&U l·ÂLÓF-„ìùØ|ɲ¿!Ñw¶Î³»È%·Ð}i Å‹DE¹ÑÉøZÀRÅ6kw-¹=*ÀÒ´ Åçêœ#Äð&L%©)‰^/'ÄßÏ4ñ\x`§ƒ4¿ÜÿØÜU9GëÊ%{ bDKÆý6² —f*:[“ãxSð*~Ùã²;éru\DRþ›9Ne ŠÑ©DÛ[IwA DwñÛÑËB¹+²ßóiû‰è×>ÕçÔ.,㵟 ʵÙóšü9!èt—Þö—Ì}O†r²ꓺŒ§ÞjÈË|ÐøþyÝ5T츴ë’%D“n–¨Ç:ræß{Å?XåÌ@²üâßÕjÕzoÇ­°|¿ ³ÁŽ€g¢ž‘tïî¨!ç϶¹S%ÿ›ŸŒ }QäÁ¬%Ô™ã|¤Ô±½­[U\®o™ØÎ%ûŽ—Up¹4I]·¤i]ꙹï¡Ð(z_Rr¤vAN!Ot’³®Îy]¤çökâö¬i4• U‘±Ýµ)é’å©ñ‚N[W¨…ê ª#‡ßY]H}ü·¥GÖ,Š™=wYôÑ}™¡¡ŒŒé¬v²Êæ¼e>Y-ŒZ›°"]> ØH·2’/vþ¹Ö¾ZÊkR7I–%öŠäòVžØsõUû×÷µ)då²4¿hy#ov7ërv5ä“ì—½ ä²7µÓž{Ó~öPÄök_é³×ÝÚ9S?£…²É±=¯YÇ_ku÷÷ûÞô—äõû£¢¤Á4®‘윗Va{ díŒW®§“R§šŒ^²#r*¤=}bYñÞ!šŸUŽÏ¤ù%Q¿Cü²fâf·ø~9A@@@@@x x´Ä\¼¶¯Ìê !Ö‹™À[¤5Ñpþýk£f¬œôw#Úr+÷9’;õpÕM@Wuÿû»É¨úü³cÕg‹ô¦˜;‡Èãïؽ«åå—=\ö,Yi™·¹~HX@à ™¢Þ½ó“«¾øQ¯Œí/‘0²Ë­¡R·tÝöôeŽ{¿´hï„g dÓþŒ® ò“Äâà“)C,aZ&ÕíŠu†Y×’“i•ôƒ¥Sʹ¥ÏXÛ=¸÷0é„ÄI‘㸢¿ðCaÍÙŸ.ŠÊªÍ¡´ FŽÚ;Lfqú]ühË•ç[¼{.܇ í£¶Æ’QfÔÿ?@ªW¹ 7r)Âm«¬r„.S–¶loÅû›&Å„‡ Ütð’?ü¤ª°,ÀQÄ9«W´¼×ÄÐcÇ&Òe5ùŽr c\1ži|lndÛïiqûèf·ø~oŸæèÄR™ciÑ|·óžt VÐeÈ\×Ý“uh¨ÃJ~A,³}vèjK~55HÜCÙwpî}°»Kwª¨-Ö’½îêòœ·\%å5ÒËâ3!ýeãI/œC|ýŒÕNV9 „‚L21ÃP¼ç…i‘±¡·ªÆNKkG§ìô»÷ÍyÝ)ʈ÷H¥Ò ØÛC†svù¹¥/ÙUöà’-®/ï×T‘Jꌒ*¤Ýco áþìEͺRÃvo¼úÌ–ü6 ´×ë×çLíçXcúµô9j·^ñ.¢©Ÿ1Ëq¶xþ¼öjüñÁèLi÷—–}‡ªÏî¬|dCë³àÐ*òâ{q¥«&õ‹”Å&„ì[Ÿ¢›¼¤e)Ë`¥¼)Z”¿W áe•*éŸ@{þéø4ì,ôxÜRY|¿ÛÄ)€€€€€€ nB§ˆE°Ýe´Sɳ“‡+âzËåDA$Æ óÅSGõ«¶ìqÈr2N›œ&¹DEDp€LbÔ™/|а*+Ï­S©\2Ð’”´xißž²î¡4lK%“k+ç¾:lØ#¶ 4$mEš|p”AžŸµD—c[÷ˆÙ&>AV;Yål6Xë6´w7¥ÁPo®½r¾ñè¾— »ê¨Ñ&‘‘#IûõŠ’‡Ðþ¨H*‹~0üûÿ^2ä¶âìÔ&M%ÃûõþM˜Æ‚­9<þô¬ý‹gé×ÞèsÔîŸ±ÊÙÛâÙóÚÛñg¯¹3ž·OéŒäP'¸q<·ø~¿q­Í      àïüÇAäï¤a?€€€€€€€€€€€tÒbÌh'pµh¨ŽB¢ŽÒ°@@@@@@@@@@@Ú‰Díj@@@@@@@@@@@@ £€ƒ¨£´ìv"Q;†è(à ê(-;@@@@@@@@@@@@ ÀAÔN ¡@@@@@@@@@@@: 8ˆ:JKÀh'pµh¨ŽB¢ŽÒ°@@@@@@@@@@@Ú‰Díj@@@@@@@@@@@@ £€ƒ¨£´ìv" gÒ£I ³‡Kïê×[Ó½‹B©TÊ$újcÑ…sºÃ»Vvˆ/U“D†™%§ó̇ ÝË¥,\'3ôu˜Z"7qú Oëö.}ÉpȽ½›@–­OQÜ}{xP½j0êMuÕWþîxû™ÛŒ˜Ûª&¿Ë Ñ’$M$5»”äæ¶B‚¥Ý9™É£eƒúöRFuU(eDª¯»ÞX]þ«á«Ã»ô[ö˜ÛƒY«ýÌ;Y¸4U:>u¹dƘ»ƒz¨•r í—eE… ‡Þ]Ú#ЩµII„k­ÖŽºÂ\â0ž¼©_kÊnæûš©ä¥g“ûG«ŒF½¹¾òŠþëÏ÷×gfåµM¿ö‘¾VÇCS›zÚ?m]UÎ&O®Ka#9³kyÉcòMÂyšî$­#‡3î‰  —%­º2ù…¼2šòÖ_æ†ÝJT®÷ËÉ5‹WåºÞáRâÓ6Iÿ4SÂ{ÛH>ÎQü¼Àd<¯H'JÔ¦¼(Y1wtt7Z'‰é'Óêá)%üYÛ=lË1âN•I!„­úìû•ãS×Ö Ý÷Iz«ýŒÕNV.\­´ä¥kƒGö å«ãåüÍeS—æï%ìO×Fj”f™cºë•ãxb­Ÿk¹Hi! MÝ$Y7[­nIj>3”«]YÛ]Mõæ+…ßVýòKÝwç~0q}%¸—V2mFrÈo£ƒCûOì¶oņÉ/ìåwºØâi‚˜~Æj'+ yuÿ_º‹0«%úRã‘÷ö”8òƒ‰D!ÓŸÖu@„RÝ3~nÄÛ (ydCƒ£µÑ$¡×f™Äd054šyÇŒL)“ÕÖÕÛÝc­Ÿ§¬o¢ü)¯HÖSççÜn¸ôyõ˯dÕ’ždLÒLù”qýz¨£†¿ºóÓÈé+j}BÅgúÄŒÖþÉ*g#äésÉ&gÿ)¦~öù;é¹Ïú‹>5¢§Ù¸±àîà¾é9Ïvów=«§Ä`ûº0’ª¢¢šk<ÏB‰\.i¸ð‹ŽËŽ£#ðÅxïˆõòÂ&ÆqËö»À ;!       ЩxA”œÒW²'G`ù$úFðGôMb.ZçrÞêÒ©«ó¬ÞdOl=¨š50´ÙA!”_“ö¦4{æ]QÓ%á2Ý1Â…êû„êS“òéšÑÅÏÙ‡¿$¿"9²øÑÜ„Tù‘¬²‰K¶Ýœ¾ 'öikßRLºçÎî!R³Tb*7ùÞ|­ÿˆn}¡qé=³Jùƒ©4ÄWínoΫûP'‰Œ:IÜé¶—ðü\l?sW²°l\â—í¤o¿÷Š”˜ŠLYÓK²œ”gî;:*JÌõùWhŸoq|¶D]|oi郙ù‚ãË©H·—Âõs+vßL¢‘\Ë,‘\’²cuß·¨Ê~uLí·¥›¦õ‹âÛ>¿ä‘-ŽN>ÏÁùNŸ˜ñÀÚ?Yå8lÏ%W’bêç*ÕÙR|×_|G†:î>^~G°Qùß]óKf:9¾…õðËŧ¿#[;©7 ª!ïÍWœi?… ÃBÀW㽃TÇGf°ŽÛ¶ù]à£J¡? õÌÆB"èâ :ô>¹X+ã^&v¤l”¤Pç=ñS‘Îíò/±a!œ‹~9]kïÿ±(8t˜\ÔI©ã'€Äöw¨Ëº‡‡wáœC¦¢C5pYhÑ’Ȩø;"8çеóÇ®­>±ä¥³×lw…?}ÔîN ÞÉ¿PmKâ[¦ËvùÓƒ~æN‡°,\´äÁ{â¸UýÈ/l.svqééÛ>¯æÅ,í%½?=žw99¹ÂwÄ„ëÇYƒÃ™€6mŠÔºÌ_ É{ÍÑ9ÄåíhyfqçwÜ;…w AîžØÃgúDÖþÉ*ÇQ`}.9U?'™Nxé³þâC6ñéÉ8ç©øOý*ÑÎ!º”\«r2¢ìéCCQT;ðÑxoKÛS…/Æ­/´gÝ¡ @@@@@@àÆppªxmŠf$éÉMÑ£ªäŠÃÒX-eO%;Úƒ›õþñŸËŽVIlkÅ´d±?3XWÊRD÷J²OçεZòËþ65äÌ»=´ËÉïèò]tñ'òÅÎ ß,ñä¬Û/¯K)§Ãe›ç+¾wÆ¢ëœÃ-V)ožÌf®’¨vw-ý–ˆ ‹óƒ.šf^ÞÎUN\ЇýÌM¡ÌvòqÑ&Þ–1RCNˆÊ=B.YŸ„Ü¢ã;O@™ë'P^gO;ü¶@®Ž²Šïëÿér§YDž Ña6æˆþê¹ÛÛ§oô‰¬ý“U΂ÄÏ%‘õck¿’bí/Ú-ýJ¥nû«Æš‡æ}hæ’EMÑ>^Y\):؇UN´aÈxcøb¼ßËÛR+ë¸mK›P6€€€€€€ÀÍAÀ§¢g2&¨¹Ð‰þgãGYv{ ´À|&{®:Ni–q‘=3·ä›‚ÍnmÈÏüÄXBÅÍÊ8Ù3;_n)‰5é‰!Ürv¦¢‚ûýŽf̦äÒ¥ºŸ y{¯öåÜ<çdõ’?rÜî å9 1íîZj ™6<ƲÄ`ýO_×:ϳ»æ÷,ÅÓ~&\:»ü\”–}8¸Ý8\'å=êˆÍk*‹è£žÊ“§Ñp…'•%‰½~,Úü_&Ü`qÚ•_8Uç<Ù½fí”pZÉ+……UÖÐÈp2r˜8¾Ñ'~<°öOV9Ž‚÷Ï%ñõGÝs±÷—?<´.pÓ¦M1›²ÇlJÕð¼8@pùÛ#¸<ëæŒ¶8I[çD÷Ü0«7&~ÍßZ¶JôƒžU®u‹ãFð~¼ßèø^?û¸µ·Åw¿ ìKÅ9€€€€€€@g'àÖ9ãIåãӷ˦h‚ºrQ;_¾¹üJ˾)-¥pû MÑÐ<%äíä ·K˵He‘7?*²Ì†ôº7ôÈþ-]“ˆ†ddÿ[«áœQs*«WTˆ%ŠI_úS}ó|”&ÌN[(MOZ–š’È3ùÕ¢gâ ˆiwçÒSWIöæÏ‹¸…: IÅÉú•©ëóxsÍÖÏ\5zc§;.¶ƒ B#@£%Ñ–È8Î1.àj[ÌðgCvìØ´#{›úµÏʧ&¸}íßµšâMýx ¼iä„­m®—\°ùñ,5çöJˆ•†Hu§ «geוé%–¦æ]#P,+èót<°öOV9±(„òyZ?¡r:EºýecêsõÇ+}íìÌhçÈ·5{æ…ÄÑç’¬ú¤î¹Ôõ¢žÙ ¶®V 3r/„Ü¿t¯è}Yå:E¢7/Æ­=,_ü.°/ç      7¹/ª©IÝ$yaR˲J%G²ÊäòDí¤µ3ô SÞä¿»Ö–dy øÀ ÉÑêÝeŒè!‹¤Î8–m]v«úG]Ö¼‡+rœÊÒ7M„ȉ¾¶Ò2g™±u¯êcÂì'jS{ÒxâÀßÊçfæÙæ5JÁekĵ;ÝG‚Nœ¯šÖ7ʨ7%ò‰‚îDã¾HÙ‰Wï{j£ˆ=Z³Äþ>{?ó•n¹œ$eúDcˆR-»;i‚œpp2p5ytþ=–MŠšªe?«*·°#DÑSaͧ¹“ 7™>­‚ 8²ö]÷B!ådçGö°Ã$uýÇkO+=}6Í«~æ ;[å’KŽÿx­š«Aì¸'{¬Lv\ÊiÊŠíòGwë.Ñ×]= 5¤ðÛïªÎž=Uyâĉ«§ ÏWýZQ×ü&¿:¢ŸzjFvLÎ2>í‹ú £¿9îШ/k»ÔóÔd=žÉNU÷¢Ï·†Â÷ªä8.kw»Í§dË.þÓK}žÖþÉ*'_NÏëÇWJ'Jó²¿ÂÍ$}óñ_¹>n ¤Z—õd IXGæÅGSw´‘œÙ¾²äU—ï\~t/®ç§õ‹âdN¾½´Ôù% k’Çrjò‡ÙË¢×ddÄd¸ü-ŽqÙ·PP1n€À $àÕ¸õòwÁ ¬6Tƒ€€€€€t ÞE%-'2ÆÆp[©TžøûÕ Oý7D»p»ôÞ^òPîMâ­ÓWÔzZumÚ醙ƒ¢dtÞÕPòCm¡±—¹¬*$|èÃáŸíé]³89½¦å=áÀ-]FÞ÷ÍéÞG%UTŸ}·r¼ã’8• ¶¨Ÿ>°[XŸIs#ÓåÛïaä©}7]~‘ínã’Ÿ9Ó8"“Û®ã“Ó$S&'ªÇ…u¹uèáßKÝÃ÷-ª3ïh+ƒïÓÛ~æµ"¹lLͬ¿=o ]z)’ˆÛ«eÍSÎc¬Žh’*ŸM{H9aè­áœ'â¶ÄE‘+¿É+~>ב’×õs,W6)%“èÒ™Üó-kÖËu¶dÛ§«£Ïv‡ñS¤>ÖñÀÚ?Yå)Öú±êó[9‘ýÅV¿Âœæ×ï~¿lîˆðuÿ‡»]%é"¥ß½Õ§s*ÛÒâµåwýÔ¦Zöª;»»òÉ,¾ˆbW)B—Žõ\ÎHªŠ.ÖT4(L2™ÙaéXIÃO¦R>5H zÜz÷»ÀPÀF¶%ÀA¤M'ïgL°L`—ù÷r!çÑÎ¥o÷iõMâFƒË¼ªµæTÏ ‹sˆ.JVòYmêäÿWš_“[x½ŠË ˆòÚ¾ÌÐL‡È¥zKT…\%WÈj¿Õ/stY²nœ³EwÞ²GH7ò?ã½ÙD¾EóMq&¶ÝÝÀÈß³ÅüÔŒÄëów+á&ÏÍÃÔëÖNQ¸iý–·ýŒGƒGvzÄåIKœ_™{ú—Šz×%ªW°F×5:”¨®~^µúžJ³è̦Í{Û*˜Â\òÒÓéßöåÍBÔdLÊÒ`ž*9$yT?É›ø‚zíQpjrËÝ\ôWÉžýûp.íÇý›Ëø"%JΜjŽòò˜«>¯Ækÿd•ó˜ ñú{…A¥_ˆ°ö§Êå,™høäRƒ%ÒQJ#ãŒeÇêæÍy]ç”÷2eý+Š!a$Pª+4lð`96¹:rxiJÍŒ\Ÿ>}z­ýß³2êZ^á5‰ Ð1øhÜ:T†ñwC¸¸)Øæ =¬l ùçË“#Ãé[Åå_f•O|z›^¨€øñ£eáM7ïœùfOg:æ”)•–ùÖ[ï[ñé„F3·G¼î»Æec-?Dß(~uùä®Ý¸›ª¿Õ-Ÿœ^m‹2Y3kL>ë ùþþ¡Ý¤Q£‚¼6[7¡Éƒ±‘ X«véÓUòOå’o./®‹SuQ…Çp6øüEÇšv†+ñí.¦¶1ý{øÑšñ±Òžw Ö½•¶ö#oŸÇ»~f_’ëyëv²p¡oýΙ¦[CHIBBQÓ 4 ssIsý#»%5Ebª4ý|ÈÕ&¾”¬'Íù¼š‹Ö“EÞ˜@H­ÑÖëǧí&M»\A8W¶šº‰BBºH’_{F¡Q™꼞™™o÷ ‰!AM‘Œ^‘bÔçýx`ퟬržQò¾~žéó›ÜŒý…¯~'ÏW4üo¯hË-Y@°´'=k~>ñ pit‰¸‡hä÷uúõŽ5åNAŒBRìrt*E&¬w@à†ðá¸u® ëïçrp       Ðy 0D%7λ…N~ÖÝYéÎ9dÁfÐÑ©"#Ñëy¶Ti…«&u‰dX·÷´‘óñJçÉîõ©óêWËÛùÝïÕ…Nˆ[}½©yow*ÌË&óÁ1­i¸+çæ¸ça»‹„RZ¥k䲚‚ýۋȋ~&ÆTa;½çrèP.ÝLÝÎ9D zôÞßpËÅIô׌§ÄØ”§Îâõ@ )«pý¬ý“UÎ –[>¬_K¡àŒµ¿8W=ù‰uß¡¦¡TÞ±4È9›óõ‹Ç«¸e1e'ê7ˆ^ZŽV9gý¸¿$à«q+PyÖßÅ!@@@@@@ “ð8‚èÑ¿>0 Ô¨"'럱|Œó¾'Îü–ìȺŸFñ\Ø¿¬ìA‡7ð ‰ ±8°$¦SÁ.ŒÈù($9Ÿ]¬2©w Y*—voº½ñÃ3º©ý‡X–‚\ºŽF'ý&Ü2OÊ¿ÿJÔÒ9϶œL@IDATÎÚo¦kOÛ],¥BfÙ7BbÒ™U”7ýLŒ!;Û†KÞ¿ ]6ÑD®|•_ÅÇoµ¢i4³”H©gUô!T?ÑÜ4 È©âêº;4AJuD”qù‘·Êœ÷0Kª‘s>B.“ƒNÏ5ÏP±éË'ùÄ~ß/gîž»Îy]¯Yû'«œ«m=Þ]5úK [q¬ˆœ7¼GýÊ­9ñæÕ¿Œm\6©w¤"nb—=+~hH~a¯Å©ï(Ã]¥’1wuéJ %—O}VÛj´Qs¬rÍàüœ€/Æ­0ÖßÂ% €€€€@g"àY‘f.™<¸›Ås.ïµkžL\·M®à›Î¶îöa–ʤ*‚-ûR7oô±çcó%ËþB„Dß9Ø:Oë"?–ÜB÷I ¤_,qäRD'KàkK۬ݵäö¨KÓ6Ÿ«sŽsÀ›0•¤¦$¶4¶ÃMñüý¬5y;ÛˆKü²ÇewÒe˸Ȕü7s ­Y×r?•h{+én„è.~[#zy'"P¿–‚qfGàƒl~ÔpŽò•Kö8µ‘–ŒûmdNÄTt¶†o_¢æâDôkŸêkVl=a¬ý“UNð¹äT¾K–úñ•ãOiÞö—Ì}O†r²ꓺŒ§ÞjÈË|ÐøþyÝ5ŽA츴ë’h$D“n–¨¹:ræß{Æ„€ —Ì*ç¦HÜò_ÞŒwÿ­5!ÞŽ[ẳþ..w@@@@@@:ÏD=#éÞÜQCΟ+ls§Jþ7?,ú¢ÈƒYK¨3ÇùH!©c{[·8ª¸\ß2!žKö/«àrh’ºnIÓºÔ3sßC¡Qô¾¤äH킜Bžè$g]óºHÏí×ÄíuÓh*ª"c»kSÒ%ËSã: ¶®P %ÔAD7gýu!õñ ß–Y³(föÜeÑG÷e†j„22¦3ÛÉÈ…3S#P Mê&ɲÄ^‘\žÊ{®¾jÿ¾6…¬\–&ãM"oäÍîf]Ö¬†|’ýrs@sý8#p¸(ÌyË|²Z&u8aEº|@°‘n!e$_ìüs­KM bûµ¯ô ÙÁ—ÎÔ?iA¬rÎ6ˆz.9 áÚBÀ›þ’¼~ŸbT”4˜r²s^Z…í%µ3^¹þNJ>j2zÉŽÈ©|¬kô´Ç[ñÞ!šŸUŽÏ¤ù%Œwº¿ë÷ ãï¿ì(0@@@@@@ Mx´Ä\¼¶¯Ìê !Ö‹™àÆ$Ãù÷¯š±VpÒßhË­ÜçHîÔÃUS4]Õýïïv$o êóÏŽUŸ-Ò›bî"¿g`÷®–7–k\öÙ³d¥adÞæú!aƒfnˆz÷ÎO®øâG½2¶¿tDÂÈ.·†JUÜÒuÛÓ—9îÒ¢½ž%Mû3º 4ÈL‹ƒO¦ ±„i™T·+Ö<f];HN¤UÒ–N)ç–Îbm÷àÞä'EŽ{àŠþÂ…5gº`(*«6‡Ò69jdhï0™Åéwñ£-Wžoñî¹p6´ÚKFˆ4ê‚H ի܆¹á6ÕNV.„$‘Œ­K#b¯ê¾9û]ýù_ŠÕ:é3òcÆ„qu½NÇÏúö¾ƒá!2*qlä¸?N7•ÿúóõ¢Ë¿6\­#æî±qŠ>š˜®¶7¯ÿûÞ‹¥ö|Xëç v HÚ²½ïoš6(pÓÁH>þð“ªÂ²óÀÑ÷ªFöà¶a!Õ§s*ó.i-J|¿ö>» ´rÊØ?Yû5a{.µR‰›ø6c¡û=5"*‚wn×Êç4É%³W *ûhÍ„˜eœìé=kBv'gÔØCÖŽ¸Kj _´OqÎ*'¢hdé0Þù›…qÜ2þ.à·©      7#Dm Èöæ±³Ž—g=^°õeSÒÀˆ0YXŸÀÑ“è_s&31×þ¢ÿׯeGFs²å¤€,H\_¹eÿSæAJuôàqÝgלÅXq®þõ…TæØGh4ßí¼']B‚tù2×u÷dDê°’_ËlŸºÚ’_M $’÷PöÜ£{ßÁ#ìîÒ*j‹õŸd¯»º<§ÀmWIyô²Ì¹‰þ²ñ¤Î!¾~æ+;*çö‚÷H¥Ò ØÛC†syÈÅ#»Ê\²Åõ%üš*RI{QR…´{ìm!ÜŸ½¨YWjøÏîWŸÙ’ïÝ×þõ³·ª“žd’‰†â=/L‹Œ ½U5vZjÔX»ª–~·â¾9¯ FqY=ê×>Ðgg^ó)ßxà"ú˜ú'³!mõ\â¯_sõ;ï‰Çý¥eß¡ê³;+ÙPàð ±€:´Š¼ø^\éªIý"e± !ûÖ§è&/iY3X)oŠõŒ:«œµñ<ÓÕyÜ¿jÖVãÝ¿(ðXëñ¸¥e0þ.àÑŽ$›”7¡Säu×N%ÏN®ˆë,—‘+ÌOÕ¯Ú²Çu"Ë©BÚä4Éý#ú+"‚d£Î|±àƒ†UYynNEà’™€–¤¤ÅKûöŒu¥a[*™ÔX[i<÷ÕaƱm !i+Ò䃣 òü¬%ºÛºGÌ6ñ úÂN¾rùÓ4Ú$2rÄ i¿^QòÚ/IeцÿßK†ÜVœ–Ú¤©dxÿ²Þ¿ “«TÒ†Ú2ãÙ¯>2lÉÉwÓ§Û·~üµîŒ©Ö¾9´w7¥ÁPo®½r¾ñè¾— »EõQ–~í>ñüYû'«œxËÓ3íÓ_<³ ¹AÜð|ܲý.poî‚€€€€€ÜüÇAts´j            mN@Úæ @@@@@@@@@@@@ C€ƒ¨C5Œ¶'QÛ3†èPà êPÍc@@@@@@@@@@@@ í ÀAÔöŒ¡@@@@@@@@@@@:8ˆ:TsÀh{pµ=chE¢Õ0@@@@@@@@@@@ÚžDmÏ@@@@@@@@@@@@ C€ƒ¨C5Œ¶'QÛ3†èPà êPÍc@@@@@@@@@@@@ í ÀAÔöŒ¡@@@@@@@@@@@:¹×Öh´$II‹)%¹¹î‹Ó$ىåwõë­ŒéÞE¡T*e}µ±èÂ9Ýá]« »yĵII„+½µ£®0—*t“Ë;ÝÓényÂ…¡ý'3y´lPß^Ê¨î¡ ¥ŒHõu׫Ë5|ux—~Ëž³O™z©/>u¹dƘ»ƒz¨•r‰Qo*+*l8ôîÒ†œCn¬dáb+N3•¼ôlr`ÿè`•Ѩ7×W^Ñýùþú̬<.’”¤±I¶úi?&|6ŽZÕz“eð¨ý|À†QS¿¦æú‹aäâƒéØE´7V}³ëG¾}Î×Õ•’ˇ ˆ»ŸGvÊoè©&!‰ 3K*Nç™Ýþž»¡V¶ƒòö¬U‚¬äøåü…'¿õHðcj{«ýÚ”%+掎îF ˜~2­žR’Ë[˜†üyǦ ñq]ºðÞ¶$É™]ËKÛojÉ“@²?]©Qše-iüg%­º2ù…|wÅÛÉ'ÝyÓÄsao¿mù/FÜ©2)„(VŸ}¿r|êÚz¡ûž¥'v}ZòÒεÁ#{‡ò鼜¿¹lêÒƒã=V.ÖR´©›$ëfk£ÕŽ…Z® %ÇjO^Tíà3MXI¯À“Ÿ/©eLøfñ鸙ÓÿüÕm|US+‹­ï{[x*ø7ʱc{šßÞó©¾¹7† ý±oHk"#àÖŽ¬:÷yíîÏ~¤öz;Žš-À‰KûÙdY>™ô±ök‘£ ™¸°4€ŸÉ´7V}k“ç¼¾ârýå+•õÕºšF™)((@!WÉbû zž~9ÿVºÑý;¼µù±ð¨¦—Z¾»n´]í¬¿½Çkõ`§ë¸eeÉÉù OoêYMÀ㢴µo)&Ýsg÷©Y*1•›Î|o¾Ö¿D7‰¾Ð¸ôžY¥ü+qi¨£ ¯dOß²Y”ŒøˆFF„ÐÓËy«K§®Îãæ¸éÑrñ½¥¥fæ7¥[ïºû—ÍNw%vŽ{l\XÛÏ=³W÷é:,B¦vßwÜ—áÉ]!}ñËvÊÖ&öŠ”˜ŠLYÓK²œ ÍÜw4tT”4Xbºdzeøô’ÝÍ÷Y¹$Ñȸe–È8IÙ±º‡ï[Te¿üváÛÒMÓúEqjÎmŸ_òÈ–œgt¢íãuáw•ÿÝ5¿dæN–}5W'vÚ²ýìÔ4Ÿ²écí×þ"G—f¬ö¤½¹°êƒ\Û=ççÓßKv¿—¦’7òuF¥ºï OÅÏ.sˆN½ÁcቭU³††ÙÌpühKíìŸí=XyÂNöqËÇÜ_xòÙŽ4ÎB€ 4ðàH"£âïˆàœC×λ¶zøÄ’—Î^kh½€B"èℽO.ÖÊZ"%x ”+øââÉhIbµS¨¼Î’ÎÊÅûöã#øNþ…j[º'­k“ñô“_Ÿ–ý1ç"ÿ©_eq9æðl9ÊâÊJ -Û1›>Ö~í/rti¹6G|íà/iíÍ…UäÚò9ßé»î&o~vÑò}k–ª¤½îÞÐË”’êâ¢w*ÒÕÜP[n òö¬U…ìã–¹¿ðä³i     ‡€‡¢RræÈá²Íó‡ß;cÑun¿¡X¥¼y2›‹f$éÉMjÓ£ªäŠÑBÛÈN!u~“ÞF\Ûï–ˆ ‹³Eb"¦ºv`È«O›@z[ú^ 9}P B-÷¹¤“ZöºE;F¼/K€ËØá·YVf”U|_ÿOç;Í"òf²á0GôWÏÕØ®ZùÔÌ%‹&õ¦²5äÀ+‹+í£’Z‘Äm´Yû ØÀ¤µ_û‹eÅÄE€qgJfå¢MЭ–þ¹}Þh¬yh>ÛÁªríûœ¶5ýôѦv%²žN%;Úƒû!ðã?7–­’ðî#ÉZº?ɵ÷x`e;Ç­pá)`>’A@@@@: Ddõ’?r|¼6É3Ô\‡Dÿ³ñ£¬»=^Z(7®´\´zÖ6v¶ª¶Ãgh.bÚÏM ™6<Ʋ¤LýO_×:ûI\ó{›"¤OI·°âQpkòuÄ6k%‹è£žÊ›Ç5‘ŸK¹-&Àâd*¿pªÎÙ‰³fí”pZÔ•ÂÂ*ë«Ôádä4û¨%W=Ö-Ù²aV7Nö×ü­e«€z6Ž„tÝÌémÕ~BLYõ±ök‘cå"Ĺ³¤³sùÃCë7mÚ³)ûp̦T Ï‹t2?{—gÝœÑMÛ²êƒ\[>çùzs Ýé‘K—ê¯Kù2Ü€´g²çªãè¾C¦¢C53·ä›‚Íþ&½F·‰Êö¬•€lãVˆ·¿ð²é     …À ÿÏx|úvÙMPWBÈ—o.¿Ò²¿‹#â˜áÏ†ìØ±#hGö6õk+ž•OMpûš³£0®ÚŒ€Øö³7 1u•doþ¼ˆ[¸ ©+NÖ¯LÝØ¦/4·¦Ï¶QƒAhq–D«L ®fe¸l@‚}møÏ¹Ð7ïme]/¹`ó;Y áöJˆ•†Hu§ «geוé%Ó¬,~=¶Ô[W«…¹‰¶û—îµD;ÙîÙbÙÓ`8o£ö´Ä }¬ýÚ/ä¼à"Ⱥ3Üð‚ËÆÔçêWpÁ%D;;3Ú9rqÍžy!qô9(«>©{.u½õ™ÍªrmúœwíÊ©äÑ1ÑÜÜ6ùáÀ;>~ÇÇUˆMÚ›Ò)šúÛ¯„¼œ!ôí+¢¤N¥½Ç+2ØÉ4nqû OÁ à€€€€€@g!pCDšÔM’&õ‰ä`–É*[Sè=$§ûq÷•=Õqqq]â4wv:nrEk²c>Ùÿv×EIpq|nÄ!¦ý8»â©ããȱ#1Ÿ~úiägG¿ˆZ6{Lt h,;±óê°Ä´J`æ*y¤¯à$±:bÔäî¤ r>¥Î¿'À²IQÓMAïKÓ}·\B”túÕzÔVÔÚõ÷²8ùºq„‘|±mN97§3ÑÅ÷è!S‡¹§œci:·‡ƒ©Èô7‰6Œ#+s¯ÿmƒösk«>Ö~í/r¬\ÜÂî7½âR@,Ì©,±`ˆ"³þ²%̶ܔµï*b¹Ër²s^Z‹ƒUäÚä9Ï׃ãé ï}šKKUžÞY1sC¾å{…/oû¥¥µ3X6Jú﮵%|{ÿµŸ-@S{Ö*ÃNÇ­[ÔþÂÓm%p@@@@@ 3p;ñܦLZIþ:[ÍM–WÓI‹ÉKrxæÝkHá·ßU={ªòĉWOž¯úµ¢®9ÚDÑO=5#;&gY¢˜ ‹6­ÎMW¸¨ök¢b·O•}C… HêúמVúÜÅ瑾\rüÇk–Í»cÇ=Ùce²ãÒJSVl—?:¸[w‰¾Þh‹¬pÛÖ­q¡ïI[Ë©!ç š'êžÉNU÷¢x …ïU-È!vŽ#B¢ân·ù”\UÓ=‹žŸÖ/Š+õäÛKKs\sÐŒ#^,,‰¾n¿Öl`ÖÇÚ¯ýDŽ™KkÀýü¾·\ 7“ôÍÇåžQÆÐAªuYO’„ud^|t÷Œ9³}eÉ«öëb²êƒ\<ç[únÏÄe‘ÇŽ‹áþÖÒ2"i´îåüÍeælÔµäºqg/ìœÌ9¬/}X=sCË÷à³èknïñÀZ]ØéÙ¸m³¿ðl­¸     à÷x#&Ú¼VIËÉŒ±1Ü–/•'þ~uÂSkà×Y@Ö™åg-ãÈ™©O¯™ÛÑ ‘úXûµ¿È¹ÐÉÅE®³'xÈ¥0gùõ»ß/›;"œKûqÿæ2¾ ’3§š£æì땲þÅ0(Õ6°ìã„qdSܹÛO”B¯ô±ök?óŠ‹(òþ™ÉG\r–L4|r©ÁY)¥‘Ʋcuóæ¼î}ªr.ýË—ÏùKþ©bìØ±åññ#ˆ͚_œ•÷u) V ¡šñ]·í\ìó¨]—Ú$hçÒˆ×>­D¼ÒhpyOB ÀN’ÜÞãìt!'4n]2ò%ø O>Û‘     ðÿÙ;ø(Šôï×Ìä†$@ ä€Dý³¾£«˜âBôW%,¯×We—ÃkÁ á¿°‹ݬaeÅ#àM@a=¢¢(ŠQ9”„„„$drOfæ­žÉLæè™é~¦§“L~ãÓ]ÝO=O}Ÿ§ª»«ºª£Š€«Ï[¥Bå°ÿ<6%u¹ê㼪ëÿ¸¥5Å%ywÙß÷Að6ª.õü^YŒÕ+ý=›pì‹>YeýW¼î6Û»£ö›' Ò&¾d ï´z©F©YDbìƒëã³lyÿVVV63+),dn{Rû±8ž©ÆVcûÉ/Èdp9QÍ„®/&JL죙öäý±Fþ=&Mùûõ3×yLÊ`½ù²@båp¤ñ¥ånåoø Ë>}¾uUU8“çPRö? ”ÿüsO [5®»¸œQ¡z$N½û¦†/E?p¤ºåš!éŽ]|‚v0ßr·‡®Ó¨ú ×N02í|L¬ãó>N%ÅlËÊbë–ß|oÁ•é†!×$ýeΫ·I™ æò³B3'\­О×E3Ÿ¸w¦wƺ¸8Ç5ïìV¦ìØf×ÄÄkb¿i[:þö*¿Ë®·h÷ÞS»>PiÁÎvr!ê­T¾Ý…§Ôòà<nK@ÅDYì©·æ%ŸÅ;½m« wpÈE¼ÑÚæõ½W:þ*M 2þ«¨mn,µ% Pþ[D"¤èÛ½»zñ|n¿îWñÂr†šÖ3Ö/½ò•É¥äVY¯s Œ¦d.Núýå q5lÇêEŽ·õÝYO©Iãoî ûÍ"oSÿaÁ½°Ü®ú³¦u—–sçrõ($"ç ùO¢6Þ#¯L¼úäÅu‡…]RNA.%‚-¥¸L{\ãüîP;“¤ú‡¶.îíGˆªrN”j¶óÛ·Ùl¿öœuÉ¥Âûêÿ,Íü•+km•öI?õ ì$j×j1a§“\ˆz+owá)¹@8@@@@@ »Pm€èö¿Ý?"ɪgÕšþLY+áØö»xWº–OúÀ/B"忸X_fM˜™ÓlScQš¾,6jxŸ$ÁÎSŸÕ í?ù\ŠÙ—euŽ¢RÒ |…Vµï™Êµž™ò´i—c„)ÆN°·¼f i¹lÜ/ûôuýòýz¿·ú…2¨GR)á?©º„ó"©/p\·°+ÈE’KðÒwí£Jpá3"ï5PhÌŸ=}zå+Çø›ŒÅ»¾Ïö‡§úÌ:¦êƒœÀTÝv¾˜ÕÔ[/'èû§‰®”*ØÉŸãû€W\U6vìØ ±¯i>#è?úÚÒJáø˜Q¿.¿2Úg9€«]¨^†¹àõVÛîÂSN™p.€€€€€@w$ èQÀã\6åÒ~ý@‡w>yƧ/< n¹Ì44NècgÍǾ2K]f+ aX ¢¹DÌ&v~Z¼^`×Rv¸1è2YÓYnÎ$Ç`µ }J2—þ^w_N˜éSôtÅ}ˆÈåw¾ïø¦0]¾p{GžŽÌMìÚÿIí#lÚJ™ý¾K”•Îú9f5²¯ß}ÉGÖmŒ Z=’¡ ªN Ûž4$ĵ¢úgÍeϼ•“ìüþ™ïõxÑÁëLìtµëµœ°3D½• ¶»ð”Y,œ     ÐÍ÷¥ÒmÎb^[Ò÷â^–˜›Æ1У‹KÔõÖkøì +k¬kp~P†Å°xm­öÅS«„¥³2=¯[=y¨£“=”.Ë‘×ÏŒ™±Ú9XµœíY5>Co³ØªNþÔPzâdËéFfï?hXì¹ÆŒ¾®wLxeqÅL¯e¸hv†²­û§q¡ú/sé+ºÕ“RSÛêOµý®Ä|èÇ£–ÒÊ:{Ò áÚÑcF' MÖõ˜{û±S·<ø’ã[DbŒoû áú!1Ž%Þ„Á¤]K®)[!2݈®/›å-Ntº¤ù‹Cß4ù¹ÌZ׬gçŽþMü¸‹3’…¯f7ð¸çŠËv#©\â¦Eìõ “3vuG›ßyó½Ú’ÊxûÅW_§=ê78$Èvè5óÁ²kEËÜ:„ r=òÊ;¾ˆþse#5®]ç3ÙúhqÍ„ö“PÔ—k'#›‹›htoÈâ¿;´÷îTai¹ºCÛj&øN`æ¢gu+&_*4”åû6VNYè1E–>ôS¦÷ ò ëØ´¶Ö[OŸ<ÞðßÂÍ kC\o}eÕÜw çD7÷Ä"¶Úõê`Ø)Zo©8»ßÉ„ €€€€€@W& s€¨sŠbÊžÎF ¡ú‹ä˜½^ÛR_i=ôéÛ–MEA:ÇZhõ&`b9s2µç NÑõOJÒêõ:­µ¾ÆzøÓ=–u;%úÏÈæ<<'æÒ4KLQÞÂæ׺GÞŠÚ÷húŒ¦l6úª‘Ú †¤Å$&ÄëzÅj45¥ßYÞýç#–BÏeåDu†“è,ÛåCûÅY,MöúSGÚöïxÄòbÐ2Òô¡Ѹ— ÇrâÚe…<}Ô¸î.r.*|-G¡F=êÐÙ¶ÔæBÕ¹îM°Q-j×j¹`'•œ¸\wá)n=RA@@@@º/n1@Ô}ñÂrèz´]Ï$X            I Š$]ä            ]ˆº S`€€€€€€€€€€€D’ˆ"Iyƒ€€€€€€€€€€€@$€¢.è˜           ‘$€¢HÒEÞ            Ð `€¨ :&€€€€€€€€€€€@$ `€(’t‘7€€€€€€€€€€€tA ê‚NI            I Š$]ä            ]ˆº S`€€€€€€€€€€€D’ˆ"Iyƒ€€€€€€€€€€€@$€¢.è˜           ‘$væFË6¦òl*XaaqðìŒYlö¤QÚ_^04.£ŸØ¸¸8¦µÎZzôpóžVZ^7eg3!÷P¿Æ’B¶»$ÈYrì ’MÔ’Ã…à?&ÈL¹Z7ò¼!qiý“bãtLÛÚØÐVWuÒòéžZ7m/¶+Ê4L}™¹Ë43Æ]Ò{ !.FcmµU––´ì~yqKÁn‰VÊá)’¥1+›]œl×TÜiÏÙ,¶ôÑœØKÎл7ßoáö6Önûé›OZ^^»Å*RÚ5RåD îéIÆéì‘?Më5<=Aoµ¶Ú›jNµ~þÁkMkóv*×.ÎD}Ô¸¦Ê ææÜ·F;îò ÉMŒMhçK6¿´øKèª$3>)í’‹g´ÿ%Æ  U_”ËÉ«GF–m”ìÏ{±û¥ÆÆ vbw1 v{$YYN¤·0¦«d©v} –vRɉ˧8j*xRɉËužâÖ‡N¥–/tÎâgPõANœ'5•ÊSm}T;£]Nm?¨­/Úý§vù¨þƒô ^ÖRjyM9Õ<<÷êô~<íGÛÊQ9å…¢™ÙC[7ôž0¬OÑÃŽD+ûú…eåw¬+²uœ“Åò÷®N5ÆÙuiâ[åo¯85åÁ]mbG¥Û)&½iÒ¹Ðý·¥è¯)ém±(Öz½fBîê¦@Çå¥g1º>{dÛê„ÑC’Ätž(ÚX9}qEì˜+M:O—„Ïßì5lÏ’±ñ<9X< R™s6hÿ2Ó”–è“…s×ÊÞYrUÙ"=ñT9Q5=<Ñ”»A³f¶)Ý ÂÁRþaý‚)óëÒ‰…H¢é£Æ5UŽ˜Þùß¹É&1½‘ªØ®U×—­¿PÈŒkj»äoU4¦Ðâ…N‚ª/ºåõ(k9Û³j¼ã: Å׊à÷Kmõ§ZìzªzÞº÷XR4Dèœ0Ú‰YÔ%²U»>P ;»Âõ1ªàwqÿ§xdP¹PåÄ­ˆ\ªÚvRõAN¼ÞR#ƒÊSm}T;£]Nm?¨­/Úý§vù¨þƒô4ÂÀËù…6±%›ÿ¡¿÷úá{µ k[ªÚÞÌ¥ñ¨hfW°?,Ÿ’Ü\mùæ³kÞ|kç™Â—^5ou·¹ÔÖ¯qع½F£8ü²„Ÿ3ï/ser6»~Ö8CJŒ]§±Yl­«ÍjµÚ}ÿ1>+åÔWo×ïØÌç­}¹vºôFû_¹\¨þΦå\f°ûÂüö®µ/¿PP·ýÕ7Ì|SUߘQ“–?ðü^ÙgÕ6ýgÏ· tZQõÙ¯=ÝwTF\‚¦µÂºÿ¥üS›7Ôíþü´yà…èR{ëb“ξ¬÷UI^ý¨Ì'Æ„X‘ËS,¾²Ø3ïÖ>Z{øƒúßÿ^Dc~>fùÃS…¤º’j7>ñxõ?þõ†ùÓo¾5—™íýÄéN~øŸæ÷}*#UNÌÚŸ–ó¸æßwþ:]hÿZŽP·öNoyãSs½nPÓyç è­OøEÜøñƒíÏnßÛª+’>j\Så„’šØ¦/O‘d×[+¿jü÷“«*ßò†ùH½¡áœ Ïî• 3h¿Î2œùçË ßø€‘ŸÔvÉGq4î’â% T}Q-G¬G®b·þæ¼D¡}ö³òƒÂÁ׊Žû¥ÖêM'NÕ4ÕUW7›Ût¶Þ½ãccâzë “pUÒ~ó½W ¦)ÇèíD$¬é2yª]¨‡]àúÎGõü.î?ð *ªœ¸‘KUÛNª>ȉ×[jdPyª­jg´Ë©íµõE»ÿÔ.ÕH@ö ¢9«Ÿ‰<ö¢þ‰Z»Vc«²}ý­ýÌðá)ý4­%ÖÅcgUˆLZàX| à<Íö‚Ë.ñ7fßæoÌ ³!Nì\Y1}åN¡ïƒÿ:f„{eqÅ-k‹ÚÓGƒýŸfg°£ã ÕÁ™=ñÚ¾¾W¤è Ác'xrŽÒ—¹t›nõ¤!©[©-oÔ´ò<ŸL×îØŸ4&M› ±·=>êæò=ŽÓxzdоù‡Íoég]œ”ì:â]\©üï´Ç5û\™.ŒìVíË«¼~á– ³šÜ’T9wØè Íg6.uÌlÔT~Øø»æ×z.ßdºïY톛.HÎ?üܼòÛ6‡9øIÓGkªœP^㜧µù3™&Ô••¼®xMâíü{¼7°¶wÕÕeö<³rÔõå:Ó:ƒppHÞý:;V¯ ú¦}L¬ØBN4Sí ”_´¤S¹„ï?1‚Ï­s¥Ëñ®KFî_q}&vËØaÂ*‰ìç76Vú é‹¶|P'¹];D{ã¢Lå©<…\=~9ë59|pH˜½ôci³Ùãˆßæšßê#`+Ým–<8ÄϧÊù€fš3Uë\öÒÌv>é=8$àØ»—0ðîø]xÝTÑ% ]Ç¥ü¥é£Æ5UÎY’Aɉ޲[~>Xï9þã8º{;Ö¬åšñlÐy™^×Z|F¦]’â“®|-^è%¢ê‹n¹ðêQ(od.ºC' ±êÿ6­p yKÄÄôN`/²§ß?æ¸ÞÚµzíPŸ£jïRÛ µíTSŸÚõZ6ØÙ®ï|®n·¸êÕT¹@v„J§ê£Ê…²GéãjÛIÕ¹®ÑîRãþ÷•‹Ú~P[• äÄãŒê?È@O%àÕIBûzßžÊó®(»nÆü¡pP\Œ»34´|€3Œ£Ù`¡³ƒÿjËO…ù¶½K„ì²îÖ¿q!úﬔގÁÙUà*ªÏ”ņ:bÏ̾`†Zá>vÜÑ±ÍØY¦qcYJðœÎ¶Þqù@Ä÷ÿY_¹¿V#ú-Ó2ö«;×ßÂ>Ú¶¤^22ªœd=ëÄñ£Îq¬¬©«þ¶é?¾S&óÙøl4{ÊpÃ\éß›w‰yý%飯5UÎe±Å¹*blúðÞÙ®4×_“‰ýÂñ=23¿Žx|k.RñIl—\æv׿¤xá…5e™˜‰ûÈ4^Îsøy®U_TË…[\pÅþç²ù“‡ò6ÆÌv=¾ Æsö¢Øé®´×ÿ«ÐGÿ'|ž÷çÏ5 ãßfÍÜTdKèeX'g̸"N0QÛü£eçv&ZOܦylPå<²À¦›@;'#Þ1HXuôËFßÎÙU«§&àçž*)©uNÀFßä9ëÌ‘Ä ª>j\SåœÅ)ZûžµœoÚã†éîßö gŸ4[µhR¢¿¶ÒbóZkH¤â“Ö.ItK—=/Œ]yëš^6lÈØ¿'cC®QäÅ>˜]ô\ŠpΚ;¯nÿü U_´Ë…W‡ÿvϺYý„6ædÑæÊ2.œ½ø—…|µ­ ÖŠÀ T9Bi'T1¬Ó”¨]¨…]ãúNõü.î?ð *ªœ¸‘KUÛNª>ȉ×[jdPyª­jg´Ë©íµõE»ÿÔ.ÕžK `g´ZH2=§›jìÝW˜ññÓËNy~ßÅÓ†ŒQJܺukï­ù[ O>ü§˜éYA_söÅv HõŸ§ “rWh^*º'å,>0ª4-Ï]ÑšCés}¨Áhq7£‰¥;f>ßt#²+®(â©òÛ‰ˆ›Ô™ Ô®Ô²Âήq}§ú~÷xŠG• UNÜŠÈ¥ªm'UäÄë-52¨<ÕÖGµ3ÚåÔöƒÚú¢Ýj—ê?È@&ЩDÆÜ š'Ÿ›*ð/ß—WyoA‰ß¬ˆþ½#áx\Ê`ðaÃú 3^Ô÷òk§ œ¿*?ã½×ží;?EŸÎøIñŸ`W&ï8ß÷ᾌ½{÷¦¾¿ÿ£´¥³Ç¥gðŽÆÊ϶¾bÒœ÷`‡B…¥¯øsväØ%ÙcÄL¸}ÞØxÇGŠÚÊè•Ë®=-‡­ž1Âñ¡ˆ^X].öí#_áÖ«MHk­¯qô=.Ùü’~_þªŒÜ™7¥MžüÛÔÙs—¦´·0uã¢I^cT9_ýØçø]|;ˆúêzö*‡-˜v!÷§•}´åÎ*¡¶ÙÆOä?!™ÞÎRõQãš*×ÎDø³ëÁimyûNT AªKiXòa~F¶ð@Ý÷Íywü¶¢Àã\aSéø”Ú.ù˜»Ôxq”¾˜Ý{_A0Œ±46ë7%»’›ºúåXa€±*¶íž9 T}Ñ.§@=r¸ÁãÂôÍ·êl¥6ßAVÓü63ù ¯ìÍMÄï¥jn«ž¹ÎcyG¿³ÕKÛN¨gY'hR»>P‹;»Æõêø]Üà)T.T9q+"—ª¶T}¯·ÔÈ òT[ÕÎh—SÛjë‹vÿ©]>ªÿ =˜½ã2\hÙËÙßf›Ò…ÎÖ:Þi1eaH¿»™•|õMí¡C_Ö|öÙg§–©=YÝèžmbH¹À0}I~FÁRïñpMƒ¼’üמÇwªÏËfv¤¸Ø1$p¹??×0„û³¥ä•Ú{ ¼—ÿKv¾kLI>B²>j\S弋¶åã/ÛjÚÈ\Gª¾ý°>ÏwM>¦p|Êi—\†EÓ_r¼´C(ÙÈmüä¤ãÖ¤‘ú5ywõbYkØ=™é)BäýÜòò'<}HÕírL™zäMþm³nº MðÁgû ²ºÏkßÔ¼`Ú"sÇW ƧÌvÉeoÔÿ•/.%÷ÚÿqÉë•s¯bþ»~ûWhúh¹/ëTß±©cPÔu¾ß_™úÜòQ&n=rsáK4®_7ÝñÝ¡ÆC/ÖÜ•ç?Óºã\ç–½¹ÁÒÐf·ÇÄè5z}L¬:8snÊ[ùçÖÞ3ë!¿o§ùÊ«±/¯Pâ.¦Cíú@->줒—Oq.ÔT𤒗ë.<Å­J-_èœÅϠꃜ8Oj*•§Úú¨vF»œÚ~P[_´ûOíòQý9è!ÔŸAdZÄ^_2ÑÑÑ^õñ¿ªñ@I!{ä·¶þ~ËŽ73°q9‹½>ˆD‡Â! €ÿжo²ß=cRü— çö”+ kVOutb…cZ ÙÐúv³9“æÕü¹º‰Ïzè“6$ÁhÖ7=‰éO—|P»rìo+òøW½]£©ajšËß?7ä›àmßq†Ý컊VÇì¹Þá§«ÿªu©÷à£øëïÜÔ|Äñí›~ìÿLÈäJT¹@4{x:Õv΂3°³.f›e±üÙ¿ ¤}ÿÚÆJßåÓZå_éžõ(›^Xú¨qM•ã¥ãíÃÃŽÁ!Ælåï×çNùu¹Ó2Í…% µBÙcI|rÇÚ¤ ŧíR‡MÝx+¬xé(wÁÂë-ïoq̬Ôò™qÖÊï¹óþ³O¨ú¢]Î2ŒzÔá –óèã±—%³^ÚæË:‰ßë;þæ_ªÇ_•™9ºòŠYóÊòv~^Á_ÚcIÆ }·l[™ ø¬]{%mÊn'$åÚ}OR»>PIÁN?rr}§úÁÏz‰ T}T9‰fùFÕG•ó3@bUUN¢Y~§QõQåü ˆp‚ÚvRõAÎ/:¥Ýõ³BbüçÊá?*¿Ü$&t}T;!çaµ~¹!zWŸ·J%ÎaÿylJêþ6rÕÇyU×ÿqKk8ŠKò3îƒ:a6†.õü^YŒÕ+ý=›pì‹>YeýW¼î6Û»£ö›' Ò&¾d ï´z©F©YDbìƒëã³ÕyïÏÏÊÊfc%……ÌmOj?Ç3ÕØjl?…d™®Ö9¾ÎóºhæÓ÷Îô¶Tç8û†•){'¶Ù51ñš˜ÆoÚ–Ž¿½Êbmãß¼qVÙã{_­é˜…á™G!ûâÄ‚úaÃô}ô2„¼¬T9Ï\±ÝNàD5†î |˜(1±fÚ“÷Çù÷´4|0dæÚ"ÉB¬wûŒ¯°Ø…­×9#{bÙ”¾ý„öê¾j^6eQ«þ¬š5®±5ï-ûÓúiÓÆ$ìzrvóÄöö?üøT¶] Ë_-v¼tàÀ‘ê–k†¤;tñ ÚÁ|ËåO÷YT}Ñ.çD©GnaÆøÒr·ò™\ÂÒrŸo]U%u’tL,ÿšëWR̶¬,¶n9üøÉ÷\™nrMÒ_æ¼Úx›”Ù`®<ýKk'5¡«e¦v} –v¶“ëäë;Õð»¸ÿÀS<2¨\¨râVD.Um;©ú '^o©‘Aå©¶>ªÑ.§¶ÔÖíþS»|TÿAz0ge±§Þš—|ï4m<´­&ÜÁ!—Ïæ®=üÈø¯¢¶¹M°Ù–0@ùo‰À¢o÷îBVè98Äó¹ýº_Å ËjZÏX¿ÉWr’¥™wõYYk«üOµ6ÙÜß¼ ¦ÏÞ¦á=ôŒ%¤d8&;Qå‚éè±ÇJ>a•õºV¡ü)™‹“~¹°òS Û±z‘c¶…›Ë´‘š4>óBØoö› æ>+ô†‚ú¨q-UΘ»PsEŠ­ZÙ'Oÿ¾ÆwõÑÜ{š>©fŽÙTý/Ó‡Õóóz@IDATè;~áÅgdڥЎé¢g(/Ó×8¿;Ô^Τú‡¶.îíWjª¾h—óÅçr®+X0A/,kª«þ¬i„¥åDÔv$mßfÿ±½í:ë’K…÷:åGm':ÅXµ”ª]¨å‚Nr}}§ú~÷xŠG• UNÜŠÈ¥ªm'UäÄë-52¨<ÕÖGµ3ÚåÔöƒÚú¢Ýj—ê?È@& ÚÑí»?~D’UϪ4ýYâ2)RüÛ¾àïŠÕòžIü"D Rþ‹‹Õñeº„™9Í6ßEÕ"Qš¾,6jxDzX§>-ªŸ¹#ÍZÇ÷‘®¸ªlìØ±bÿ^=Ò|FÈéèkK+…ãcFýºüJ>{Hèl_ÿæ×Í®)*þKйôÙ/8ƲXÕ·Ÿ:–„¢Ê¹rÄ_OÅì˲:G¨RÒ |F7«Ú÷LåZŸ ˜v¹1FPdì{Ëkf‘#QÆÿ"©×ârƒÒ×­ÜV¼]˜Fäû+aïs ¤Ùµ1Úþí‡Ã‰ÏHµK¾–wŸ}%â…ÏȺgÔ@!~ÍŸ=}zå+Çø›|yÀa×÷ÙþðTŸYÇT}Ñ.'%bÄëQ‡d.÷Ë>}…ý_¾_ï7{«ãD‰[Ŭ¦ÞâÜÖ÷O k¥T‰ EO£¶¢™EM¢Úõ v ä:ÿúNõü.î?ð *ªœ¸‘KUÛNª>ȉ×[jdPyª­jg´Ë©íµõE»ÿÔ.ÕžK@Ñ¢€4ƹlÊ¥ýý‡w>yƧ/5 ú¹Ì44Nè£eÍǾ2K]~% aX ¢¹DÌ&v~Z¼^`×Rv¸ÑwÆÓ¬é,7g’c0É+]ÖŽ }ùf.ý½î"¾Œ˜0S¤èé‹Ç¡ ›y•rŒ‰‘ÞþŽý¸ãûBŒ¥_t©süÁ/¯ñì,þ½ N”•+uÎ8¢ÊùåÀï|ßñM!>à½|ávŸ˜0±kÿ'µp®­ôYì»DÂ1ÇOB\+ªÏ¥—ÿ¥Æu`9ç×™ìZÖQ©=t¹6b;ª°"5>#Ö.¹¬íž×µ;îJfúêê4/¹û™–ko±¾Þ>p=èÚ9×d{s¡ê‹v9oJþ{ëQû¹Y鬟cb#ûúÝ—|ÚÿüB§Ìe¥ißj¬;úƒÿ÷¤Bg ÐÄvB!í]5µë•ì”q}—<ÁSxqRê}$5^$„¢è)T}T9Q#"˜¨¨¼Ÿ§ÚírÔРrÕ¿“Ÿ‹õƒ¨s¼Õ¿«îwEýçØð öQi«ð]aH›Íñš±GæîÍÁ©ü›ÂÏÌŽ.qvZ»Ù0å°åKçèÄ?¨œÍžÚ9»Ÿs'3{/ÿ± P$ÙÄ”h=$‰ ѦœEše¹™=Â>ïÝü°~dã}ÉlÏó6øvïfÞ÷¬vߪù³ç.MßÏ?p/Œ…£Ï ScîÍÒICRcj>Û~ú‰¯qKâé.™ÜB¶ã“ÊjA*Þ˜ÝwÓ“_ý]»ãÖ¤4~\S¾¯þÞ‚’öYT9¹öõŒóK ž±¨Óì`øð¢˜ V¾„“•}´í¡ú@T¤Æu8ú¨qM‘+úâGk‹£°iì–¼…|Ò÷—ÃrÇåKòñ_õ‰¦Ž}b|Û%_«¢m?œx™öèŽØ1ŽA„*¶íž9Õ®—9VÏx¼á›f-¤0°«nMîª/ÚåD”zäFknå-ˆó'wt¨Írʰa̚˞y+'ÙYù̬x¯ô¼2R`‡ÞN( ¼ g¡v} ¢€Ò®ïRù‚'xŠÅJ ûHj¼ˆé’FÕG•“b“’ç(eg¤ïç©vF»5¨\|õÁïN"TžT9_?HÝWJüÞ9~WÊRãç@O% tÞ—J/|ÛðÚ’¾÷²Ä´Ø4Ž]\¢®·^ÃgWXYc]ƒóƒ2,†Åkkµo,žZ%,½”¹èyÝêÉCì¡tY޼~fÌŒÕÎÁ‚¬ålϪñz›ÅVuò§†Ò'[N72{ÿAÃbÏ5fôuͱøá•ÅÞˆ§ÙʶîœÆ…ê¿Ì¥¯èVOJMm«?Õzô»ó¡ZJ+ëìIƒ†kG44YçèD>ööc§nyð%Ç·ˆÄ/ÞöAÂõCbK¼ ƒI»–\S¶Bdº]_6Ë/Zœ2ètIó‡¾i:òs™µ®YÏÎý›øqg$ ï;7ð¸çŠK·‘4žnq‘…[‹zß8LßçÄΕÓWîtõzœibëwnìwY²•³³²“Ÿ½wz×Gß·Æq¦Weîsv’N/,ñõÜmSÊ7z fQåÂêæWO¸ó’¤ÆµC)I5®©rŒÝŸ¿Ç0ÕïXËZýCÓïXw¨´Õ–qÑe1™c/îß×1#ÂÌ^™wm™÷²|òã“Ú.u81Š·(ñ¿;´gÁ•éÂÔÄÃ/Ì+¿m]±÷ËYËØÛ«&fSvm¥»Í£¦-1» Rô ÂQ-G¯G4÷=§ÝpÓ¹|¼?ð5ÏÍß±‘Ŷý5E˜íjon°˜Û¿sg×´}bø€µó÷#¿¶äˆ^[\gDþ/½ˆ¼mªAíú@-,ì y}—…<ÁSÎ}$5^d¥ÇÉT}T9Õªl*`gäïç9 ªÑ.G *}ð» *Oªœ‡jY› èƒß=ˆSyª-ça26A‚=@”Ï; ŒŽå¶‚g,tj¼Ã;òàùäŽ<Ó|¶ãÉ›Ò\{÷Õho®°ü÷Åõ§ïßTäݑŲx‡¿|;}ó¾}ªÿL¹×<:ûŽb,íõe­ïå¯9½¬ Xä{%·ÿmWüíKjZK¬+ÇΪè˜}Ðq]ç²wuª‘/«Ô‘›k«…Û÷Bå- 7‰¼ÄMãéÊYì¯k€è8ïÄ»9`'Þt¶éµ»ûŽL‰s‘º³²VnúÇ}·Õx ¹Så\òøëE k>ÛþàM©ƒDâ¦òàËÕ7ÜùhÀÁ!!©qíÖ)[_qMª‚¥F¶dócúì‹S’Ýv{lØën}uýÒªµ…b*/>©í’‡9ѽ)+^øw‡öÞ*,-Wwh[Í„ß Ì\ô¬nÅä R…†²|߯Ê) =f¢ÈÒç>jå¨õÏɦ#¾Íü¥ˆkE_Šð È7;ˆ¼Óù«­õÖÓ'7ü·psÃÚ×[_ÙÈì‡ÓNDÆ¢.“«ÚõZpØôú.+x‚§Oн¤Æ‹É»T}T9Ɇ)tb˜vFþ~¾½œT;£]ŽT.íúàwðTžT9õ’wÃÔ¿û¦òT[ÎÇl삈9@$žI¤SMÙÓÙ¨á#tC‘“ ×k[ê+­‡>}Û²© (èÀB¤íBþR˜XΜLíyƒStý“’´z½Nk­¯±þte]ÁN‰þ3²9ω¹4ÍS”·°¹Àµî‘¨zš>£)›¾j¤ö‚!i1‰ ñº^±MMéw–wÿùˆE´/[T·º‰¦is47^5<6…Û«±6ۿѲ"/4Sªœº¥ë.Úœ±yùÐ~qK“½þÔ‘¶ý;±¼4F]e“×Þ2RõQãš*ç²’™¦³?M;l`BL ‹ekµýØ—û[WlÚî3˜ï–po >Ý(Ø'>)ê©ú¢S.ìzDqAw’ £èNÅ”o«ÚõA¾…N ØI%'.žâ\¨©àI%'.×]xŠ[:•Z>!g§¬´çT—%T}sTæ/•§ ~÷÷•'UÎßi)áèƒßýSyª-ço9R@¼ t‹"o“±            ¿Ü‡“dA@@@@@@@@@@@º> u}ÁBP”ˆʼnÌ@@@@@@@@@@@@ ëÀQ×÷,E `€HQœÈ @@@@@@@@@@@º> u}ÁBP”ˆʼnÌ@@@@@@@@@@@@ ëÀQ×÷,E `€HQœÈ @@@@@@@@@@@º> u}ÁBP”ˆʼnÌ@@@@@@@@@@@@ ëÀQ×÷,E `€HQœÈ @@@@@@@@@@@º>˜°M4šX¶1•gSÁ ‹ƒggÌb³'Òþò‚¡qýûÄÆÅÅé4­uÖÒ£‡›÷¼°Òò¢ˆ¸);› ¹‡ú5–²Ý%AÎ’cgl¢î.ÿ1AfÊÕº‘ç ‰K럧cÚÖÆ†¶ºª“–O÷¼Ðºi{±]Q¦aêËÌ]¦™1î’Þ q1k«­²´¤e÷Ë‹[ vK´RO#ËÎ6J̱ ±-IŸ·ªœûÖhÇ]~¡!Ù ‰± õ¯ä`óK‹±H-¢wn=|Ï8=ò§i½†§'è­ÖV{SÍ©ÖÏ?x­imÞNeãÚ…™¨×jË1•Ë絉<É<¨ú¢TÎhÊfŽÛ£@K YÇí ýú v¿ÔØXÁNì.öÈ?„1*ÆõH¸¬ú /¬±ÂÌv‹ÜT‹¨“ä¾ï!ÙX Ý7æ`§Ë#Ëâ÷¿ž]n+îhø<„·©D;ùvI©úyž´ëcb~ólÐg1¥ÓˆÏY¾°âÓÝ~Kè·XSë{w‘£Æµ|jë£Úír?Èîkç+Žd[hÌÊf'Û5ÕwÚÝ·eMq‘,‡xq3SbƒÚÿâ«[²ÿ|%îSí¤ÊEýõˆZ$úKêi~b©Ô“}Ï3åüUóðÜ«ÓûñÛ¶•£rÊ }OrìÙC[7ôž0¬OÑÃŽD+ûú…eåw¬+²uœ“Åò÷®N5ÆÙuiâ[åo¯85åÁ]mbG¥Û)&½iÒ¹Ðý·¥è¯)ém±(Öz½fBîê¦@Çå¥g1º>{dÛê„ÑC’Ätž(ÚX9}qEì˜+M2ϬålϪññ.ÁŶd}®ü9ì™ÿ›|aÓ»’:þV±]«®/[!^;NÖ›€)wƒfÍlSºÐÑáû³”X¿`Êü:%»çhú¨q­¶ïL ñ¤Úéë±èÛ§ñ¤s ê‹f¹ÅÛþ›pýè5¥ƒ´•½³äª²\#ôäëCðû¥¶úS­v=U=oÝN{¬+TßÂõH¹ìúµŒßOL p?ae ¥‡Í»þùˆù‰Båzâ3—¾¨[=ipÈw·bKß2ÿŸi™í;½²y¶{…*×..ûUUN¶Jq™ö¸æÃW¦ ÙY޼|fÌŒG¨¶ˆË…ÙªÕ.)U"Γ1ÒuŒ÷ƒ§ï=ãxž¹mêsc'•/Ìø”ûÜHm_º‹5®¨åS[ÕÎh—“ïb?ù~^¾…A%²×°=KÆ:îeµ·å/AéË<¨`¿†DÿÉ4°ýtªT9õïç»K\Óü\JxYü±£&¶dó?ô÷^?|`¯öÃÚ–ª¶7ó_i<*v:»‚ýaáø”äæjË7Ÿ}\óæ[;Ͼôªyû«»Í¥¶~ÃÎÍ0è5ÍÀá—% 8øœy™+“³Ùõ³ÆRbì:ÍbkµXmV«ÕîûñY)§¾z»~Çþc>oí˵ӥ7ÚÿÊåBõßp6-ç2ƒõØæ·wí¨}ù…‚ºí¯¾aþà›ªúþÃŒš´„Ø¸øç÷Ê>«¶é?{¾U ÓŠªÏÈžxíé¾£2â4­Öý/åŸÚ¼¹ n÷ç§Í/¼@—Ú[›töe½¯J:ØðêGe>1&ÄŠLž®b·þæ¼ÄPDVž³°díáê_|ÿ{½2õ &r7ý{yòˆ$»ÞZùU㿟\Uùø–7ÌGê ç\xv¯Aküu–áÌ?_nøÆq>þ”@Îãšßùët¡ýk9þAÝÚ8½åOÍõºAMç3 ·>áqãǶ?»}okÐ|¤$飯µÚr‚ªå“ ½ŸGâFy©ú¢\î×Srb/죷ó{ŸŸª¬¯­«m=sæL‹ç¿††S­_ï~¥µØußC¾>tÜ/µVŸh:qª¦©®ººÙܦ³õî×[7hø˜„«’Žðë˜ï½R¾'‰âz$ŠRŒm¿Ÿ°²ÚÒ抚ZG|5Ùâl‰½âcã’ÆsCâUIGóûÙWܨ½æ‚¾ ŒyëôŒëº††Öò£Ÿ5ïxç€óÞ®ì¤]W¸g(~u¨ÄDª>ªœD³üNS@ßísî¿4#Þñ^M o—Êù=§rC—‚Åá´ƒ*¶K Õ‡ÈódŒtóðíùÝ/ú"”@}nìˆ3õÊN|ž©õ½»ÈQ#ŠZ>µõQíŒv9’ˆý`äûy’‘„²Ø3ïÖþ²½ŸR1>È/Iñ !Úÿ"¦J¢ÿÄDC¦Qí¤Êqƒ¢=Ψå é+Ú ²gÍYýLìä±õOÔÚµ[•íëoíg†Oé§i-±.;«Âõ¬·9F>Ppžf{A€e—øûÛ|FE":±seÅô•;…¾qþëx³çØ+‹+nY[Ôžî<ìÿ4;ƒåÇh\¨þ Îì‰×öõ½"Eg;Áós4¾Ì¥ÛøÛ°CR5¶R[Þ¨iåy>™®Ý±?iLš6Ac;n{|ÔÍå/z§ñôÈ à&oØßY3àÂkÜ/Ì+Ÿ¹®ØÑÉBÕgœó´6æ/Ó„2¬äeðš(Äëß{¼þX Û»êê²?{ h`>Íg6.uÌlÔT~Øø»æ×zvp˜î{V»á¦ Ò@‡Ÿ›W~Û&§ïèÀhú¨q­¶cê–î‡î"IãI/U_´Ë1¶pkQï‡éû(ÿ¦¼ØõÁó~i¿_*ö¸_šÎžÚ9¿ßˆdÖKÛüåîÌÙ•JÎn”;¸‰#ÖÓ2öö†‰üþÙÌ^™umÙZ¯‹Ñt¶iÙ½}Gòû,ÆÊYÁ¬)e=‹™!!-sÑóºÕ“‡òD":É«n'‘'ñz¨Ø¡Ó£ÝNO&öÔ;Œà÷µÎT+ûdãí'ï-(ñxÊó|Ê6½Tµ]R¤>¨Á“zóôƒ¼çwŠ×#%è¹1œþ ª­Ôø¤=7ªÝ.©­êªjë£ÚírT?D¦ÌiØý<ÕN¹?l~K?ëâ¤d×ï~VWªÿ_irˆrôjÿ‹˜Fiþ“ Fµ“*Gí'Š~¹Ð¾¢ž!LPñËfc2/L‡ÎùðÌÊQ×—?rèLKè JXÀÁ!Ax÷ëìX½®5X>1±b 9’ Ú(¿hI§r ßbŸ/:ZçJ—ã]—ŒÜ¿âúL얱ÄUÙÏol¬ôÒmù Nr»vˆöÆE™ËRy ¹ÿe.ºC' ±êÿ6­h:ZýclPr¢0Ì,?¬÷ÿÙ½‡kÖòåóâÙ ó2e¶ ÁËGMs¦jË^šÙÎ'½‡„òìÝËÁZؾðº©!–—Î þ£é£ÆµÚr|n‰'ÕÎଣá('½äT}Ñ.çIT£‹u· žéÔmñëCGn1±;v[/²§ß?æ¸ÞÚµzíPŸ£jïâzäOœZ:rÒ±¸Á{Ž­âÙœÖ×þԪჅiìÿλ=ÔÄeŸ BíŠè %§ü«a'•'U.d±œ@ÕG• `FÈdEôe]ÏÎá÷µ›Íæ½Ö±_ŽÎR8&;Š"·ìœv)Œú 2OêuLÞó{‡ÿºÂ–øs£·ej•Ÿ´çFj}ï.rÞ”¾G-Ÿt ÞgRõANÙçpÆ¿ân?¦·g;öBÝÏwœIØÊY¯ÉáƒCÂê8?–6;—û•’D¹h3)¨”;GÁ~ ‰þ£ÙNµ“*Gí'Š~9šÿ¤IÉì ®`_ïÛS¹qÞe×Í˜ß t4Š‹ ¿ãÃ8š n£¬¶ü”KEÈNiL»ðYâBôßY)½ƒ-³5ª@MTŸ)‹ uÄž™|+À µÂ}ì¸c…±³Lã<Ʋ"Ås.›ßþvî®ÇÔt¼ð†>‹óÍØôá½³}Y›LìŽïD™yýöü˜ï‰ØŒuŽceM]õ·Mÿñ2iœÏþÀg£¹HÙS†æ]{´¿$}Ô¸V[ŽÊ“j'ÍÝJŠ/¼„¦,3ñ¶À4^Îsøy®U_´Ë¹ø(þ×èú\_ÌýSè£îüdoàz䇌Zü2òKx‘½°¿²ZHNqM_¿ë¿ßù• ¬TžT9*5ª>ªœÚvzê›:î—ÎWýNÙüß’–ZáX‚Ñ”˜åyR„·ƒ¶ƒ]ª] ]ºÏ»«Ó³}nì,«HñI{n¤¶/ÝEŽêBjùÔÖGµ3Úå¨~)GìcÄûùö8N˜Î¶Þqù@¡£íûÿ¬¯Ü_«ýN»^Òå/þôÈ)ŠõkH÷ÉVªT9nd´Çµ|$ÿI’9@TÌV.ü‹¥@áµIî_2Ñ Láдþd};¯Xt©6Ë)‰EN‹Œ2 袧F†‹ÿùÉa7ÊpLymúñózß~vÿóÃM ¤/Ž¿Ï*üt,VXãPô×È\WU]ʹ†éîs"Á“¯1½nV¿\Çɢ͕+¼ÀÐõ­}ÏZÎó´Ç ÓÝ¿íAÏgd¶jѤD¡è¶ÒbóZ…ë¶UÔld±sÚ×ϯ:úecÇà³€«VOM|wª¤¤ÖùªÎ6ú&ÏYgrAPõQãZm9µË'—w;ŸÊ“±+o]ÓkÆ ò÷dlÈ5мøÁo:‹žKÎYsçÕퟤê‹v¹HÅM°ëCp½ø—…3´­ ÖŠà§Fü(®G¾ˆ©õÁ7ñý—Þ=`^±ǥéFªÙ/nNÀTåì¤ò¤Ê,RˆT}T¹æ<¬„>#»ò’tǽgÝOû›ò>þ¹YPgÓ½ZÅQË`í`Wk—‚ׇ®Á3`Èx÷üî!Øé›ž½ S«|´ø¤<7Rë{w‘óöŸô=jù¤kð>“ªrÊ>‡{{ElÖF¿Ÿ³Á7íþü¹†aü»C¶ÒÝæ™›Šl ½ì’ú|¥ËE{œùô>µÿÅÛ.éþó–“¾Gµ“*íqF-ŸtQΔÔXP2–*“¹è9ÝTcï¾üSïìã§—òü¾‹g£þ”¸uëÖÞ[ó·ž|øO1Ó³‚¾æì)Šíê?O&å®Ð¼TtOÊYÂóª4-Ï]ÑšCés}¨Áhò­ÑÄÒ3l„–ºì`¹wóJýÈdk/á‚~ãâ—ø²oJýòØÓo—:FYã‡\—´ïµMüMb#[’ÿ®!kPl¢08û÷iKPʈ9ኅ†ò£®qCG¹„oe Ò&j›ZVÎÊo¬t,ë# =†ñ C5®U•ë„ò…á®/Ïõ¹nú¤šñ¶8ž™f¯M÷ù¶jû=‰Ãx;¨«;ÐüçÜGm6U_´ËE(Rèׇ\vû¸tá™™}·ëùêÎ×#¯¡Ö¯L‚ìì.aUŽë‘]d ç…… :”8¤”TžT9jÙ©ú¨rjÛé©Ï˜Í.äß@cÌʾýhkkɦlUŽã6rlN¬ç©‘ÛÕv±v)X}è<¥yª;>¿‡znô,¹zåS)>©íKw‘ótžœmjùäèð<—ªrÊ>‡{úDd›Ò&dC¿Ÿ1Â'Iø^ÙTc<ï[-gÏÊèÛ‘%íqæÃT]jÿ‹Ë6Yþs þRí$ÉE{œQËGð›‘9'+}®1wƒæÁÉç¦ ù–ïË«ûPi ÿÞ‘p<.e°aXаŨ0ãEìòk§°?TnÜùÔ_kŸ(ô}ßyþYRü'XÉ;ÎWÜt^šµÕjÕÄÄkb>µ±Ê϶¾áîõ¾a%¯²ô`•­“¬‰qÝ%ÙcXñ.¯NAóíóÆÆ;>RÔn†‚£6^nÖŠµ•Ú"1X³ëÁimé†+o»jpŠ.e¤aɇùÎåòê¾oλçwÕ^Ö`G”@bï>wþê«ë=f;æ°Ó.äþhcm¹³ª˜e±f_<‘Ùu:C²Ð†¹®‹¢ÙL¤ê+>`%Å5µ>PåÔ._@ÐQr€ÊÓŸÅìÞû jväçôJãß+™õ¿›’?™0Ç1˜0uõ˱Â@2cUlÛ=Î41ª¾Ä8+©u9Ÿú®é£ÉæÓëYªÇ ¥í!×XRÈx?`ÈõúÉ_ȸwæø©üº[sp[õÌu]cQ\<\N­G>qæ‘£Ïf«o¿)ý½Œ¾Ã&i² »dW°ÂB¹C‘ ÙIåIm_$ûÁÇ-Ñn§—Ì)&s¥ˆãÖw ¿wÚÈUÞÒ86EgH½ø²D#+¨–Ð ú”¾+µìZíRàúÐ<å^ǺÓó»¬çÆö°ëŒò©Ÿj·KÔv—*çÑ.IoAø™T.jë£r‰v9ª‚‰Ô~0ß,¨÷ó¾ùˆïç°Õ3Fðþ;ûá…Õåyâ'‰¤Ê”£Ö‡îgˆèIÔ~w2ýç–“¹Aµ“*íqF­ŽÏÎ Ê^Îþ6Û”.tÕñN‹) DúÝͬä«oj-úVmss›-6±Ÿ.e@Z|z²Á±¼!åÃô%ù†_ýÏÊŠœ•;i°2ëNo' Éíçz|§Ês6Eòˆì¾ÿ~RSóПlUôÁP–¾BöÉ÷÷Ô žÔoеw \þÕ'Ø^âîøŸúðs1·_Ú¯¿¦µÉÚ×Kçi¿¢±À¿]óÀM¤ õýÀ³‹+"5X³åã/Û&_ù Û€öW¡ Uß~XŸ§¨%Óµ2ãs¬œ ™).æ@Îßýù¹†!œiKÉ+µ÷::?\Gø§Á‡/4s"í[Ç9·ÈúV[hqM­D9ÕËtt ólÏ’lÑFãÉgæ^–Î’Fê×äÝÕëšiº'3¿žae_?·¼ü ϶‚ªÏÌ,¤zÔ]ä|ê»vИÄ%ƈ.bZõ¶íÔîý_Lð H™×‡Á“–¦~8i©Gvv¢hcåôÅb÷Y§©¼‰ëQ;pj=ò‰3•ÝÇÕØ•³—¦_)ªø8c…7—Š‹p"•'µ}¡ú!Úíôà2Öt–c ±éÄõ®˜xÿ@yýØk¬Iè§ðÏÚ)½Ä1µìíRgð”wëfÏﲞ…ö«óÊñøT»]¢¶»T9vIÖ•ˆÊEm}T.Ñ.GõC  ‘Ó晇ÌûyOQ)Ûn»3aïh;þfÝÌuý¡deËQëCw‰3¥ã%”±¥=_Ùþ iO ¨vå¢=Ψõ!ÂñÙ9DÙËØ®%ã3„Þ’šÏþuzâÝ0‹¤˜­º»Ø÷X#3f×üiέq/?{€ÐózΤù©Ë¿ØYö€ë©#PL#]’ýçTW´v¦õªµ¬Ì¥wmÓù;Wñ¥Ýô¿ ?ý²Çë+ê¬m‰iCôéI:½°üZÞ£ŸWܸdr†çL"Šmâ2F¶~ÝtÇw‡½XsW^Ç•øù´TÓœMÚu3G¦éø[%–òïêK¬CìÃé\þ»ïoj^0m‘Yîû¾4K¢L*g½f2ŸÊ-ÌüÊ›õ˜ð©¯Ÿâ#×õQãZm9/XÂN„Ëç§/Ú$òta()¸×þK^¯œ{Õ€ÃðßõÛ¿BÓGËÛŒºƒÕwl’ð°!SŸK¯T¿»Ïwmt}öæ ËѲ†FNçõm'MŒFsâçÊM„ü냽¹ÁÒÐf·ÇÄè5z}Œcù¦Á™sSÞÊ?·öžYù};Í…RÍ¿¸… MëÙ*{ØÊjK™«[bm:Ý;¶[~´uö·®¼ÊJåI•óR.c‡ª*'Ã4¯SeéËe—ðåwùcû÷¸—”ÞUXÜöÇk±DþŸ)À ~/2w(í`÷h—:‹§œëX÷z~—ûÜ(|ë¸3ú':->eÕwŠÚ]äÉò vº_J§ö¿(æ??ŨvRåü¬ˆö8£–Ï=Á±|]œ iZÄ^_2ÑÑÑ^õñ¿ªÉ›/ÉòÈomýý–/N:{V l\ÎbÇÇOƒHáð_ÑöMö»gLj˜÷ÂárÁö”+ kVOØä¡õífs&Í«)<øsu_†¥OÚ£qXßô$¦?]òAíʱ¿­Èã=®ÑT¥ ÍyôñØË’Y/ms‰e]¤¾ÇÄýö°cpˆ¸üýúÜ)ÿ¯.wZ¦¹°¤¡V‹Xþ†û“;Ö&)"QïâpÎ"3°³.1ò ËŸýëBÚ÷¯m¬›ùUþõ—îÙlÂÒGkå:¥|²½Ð}ÂâÙQÌ‚…×[Þ;ÞR'¤hù›hÖÊï¹óŽŠwœÅ·¨ú¢]Î _x²lãŒ3n¾ùæzÏ¿ö[ó‚¼b÷Øc—r}8þæ_ªÇ_•™9ºòŠYóÊòv~^Á_ÂbIÆ }·l[™Ðé_pÄõÈÛÕÔúàKà=ã…,¹ý;ŠO¢id{ç˜gÌø­lÏZÒ(û…¥ì¤ò¤ÊQÐ 2T}T9µíl×gœs¹–Oç¿r¶ßó%ƒâì[Çwï|ñXÿU Ûå©d·ƒ]­] P:‹g8×1·»Éó{èçFw‰¼7"Y>µâ“Ú¾t9oIߣ–Oºï3©ú çÍ‘ï…õ‡Ô~LÊý¼¯ú€û¦¹|%šsC®DÓfñy•*íq´´™ru³gÏNúoîÌôl¯ìý/Tÿyé•»C°Ó¡‚ íqF-Ÿ\—É<ßÕç-SŒzzûÏcSRð·‘«>Ϋºþ[Z©9 r%ywÙß÷A0Z®K=¿_á¿~w8B6eýW¼î6Û»£ö›'ð7 _2†wZ½T£Ô,"±‚×Çß»ó¦æUü>"++›ø£jIa!sÛ“ÚÅñL5¶ÛOJŸj|+S_X¾é󭫪"3 ÎÈžX6¥o?^ïXÝWÍ˦,ªs•kÕ¬q­yoÙoäKìiÓÆ$ìzrvóÄ0ë¥û¨I;QÍ„[+&JL죙öäý±FÞñ¦áƒn3×yÌÈ`½ãìá¯H¶>j\«$g —'ÕΨ‰Hï‚„/Ù8RÝrÍtG‚.>A;˜o¹Ú ÷YT}Ñ.çäÜÐèbƒ¿Eæs¾{—x}ˆ‰åË»~%ÅlËÊbë–ß|oÁ•é†!×$ýeΫ·yvÔºÎUå/®G~˜©õÁ/£ ƒ“™óí>ã§úTÐÉ9HÖ±8ц!Àé¡’•²“Ê“*ª\ŽSõQåÙ*=L}7\~ž^PÑv¼¸Îû{%ì•OËÍ—]›ÖËžvQÂ\#«Ûèw‘ e\àãòÚÁ.Ø.¨Å“|qQwy~þÜ(R°ö$å˧b|Rë{w‘ ì¶àG¨å žkà£T}kgªÐs¸—‡Âè#ÞÏ{©²“9ájÝ€öãÍ|zàÞ™Þ'ëââ}gß°2eïÄ6»ðMð˜ÆoÚþ¶7±†"·tîgU¤þîŸÞødï•ûÌöMÉÐZ»Åðž[Û|Td¦½¼~Ì¥4¿/{UxÝ™òìì(SŽÚOÔ]âŒjgЈl©8@”Åžzk^òYqV]ã¡m5á¹h4ZÛxÅS±.Å=îodüWQÛÜÆ˜-a@œðV³‚φ¢’¢o÷nÿašÛ¯ûU¼°œ¡¦õŒõKÑœi‰X0A/,[§«þ¬i]„––3æ.Ô\‘"|CÚÊ>yú÷5¾„Gsïi¼3_/Ìbêɘ>YlK¥ï9´ÒE¡TÉ'¬²~Vë€k\Jæâ¤ß§ôã\kØŽÕ‹³-Ü%ž6R“Öþ§fß·uÜ'IØPP5®#*×Ê'Á Ýç¥xN{\ãüîP{Ñ“FèÚº¸÷`PõE»œ$úޢׇíÛì?Þ9ºuo»ÎºäRþ¾C±ÿŒ0º©’%q=AE­"Y‰'¹æ=×±o=¾'~ng¦*d'•'UŽŠŒª*§¶}ÙläP=GÒÎt©Y½Þzk¬ð®•û§‹3´¿H3€ýz’I»±DÂ2¦niÂF€v°k¶Kbõ¡‹ñ$¸À%Ò]žß¥<7ºÊäùWÉò©ŸÔö¥»Èy:IÎ6µ|rtxžKÕ9'E¥žÃÝ> ¯LÑûy·M–fÞËÃÿkµz¼¬êq<Ð&U.Úã,/‰é%+ì³ ïK”ð?MJÿKÕþêÈ)RìË\’\´Çµ|b@LSmdåö¿Ý?"ɪgÕšþ¬à2Z±í >ÙµL«øú ‚îîYEÊq±Îo2hlÍ6ŸI¯AFÓ—ÅF ïÃ_Àµ±SŸÕÊ^6%`IrÙ¸_öé+<8ŸøòýúH Ž JKt,%©±•ÛŠ· Óˆ|%¬àýcu—MÚË®Ñö÷=Œ}Åì˲ºÆ ½ã )iŽ&§jß3•¾Wžv¹1FPdì{Ëkf‘GV’6#©×JÊuÅòIrL=I žü ¹{F ŒçM…ù³§O¯ÿy|ÛÒÉCSc‡]ßgûÃßµL{𥶎ÂÓõQëQw‘ë`DÝRúúPÌjê-­,A§ïŸ&ôúídÓ25CÚgSkô½c“ôÌ5êá‡lèåãy˜×ûP4A¼ìŠí’h}èr<éÎé.Ïï´çF¾t·‚ýêÆ§úíµÝ¥ÊÑ¢–ÎEm}T.Ñ.GóƒS*¼~0¥ïçýKâû5ß3n-ê}ã0}Ÿ£¯-­¼Å§_âßß —#7‚ØÒ]âÌ—Eçï‹ô¿ø|çÝׯ`~÷=W¹};%e.&Gow»KœQ프”x’¢ß 8@cœË¦\ÚÏÑï|xç“g”{>Íe¦¡qüÍ4ÞÓqì+³ÿ¼q*í?½Ç¤ä1ÿ™ØùiñŽ¥'ZÊ7µ’5åæL¢-Óãö  }nÆ2—þ^w‘cýþVôtÅãPÐÍ€<]RY鬟c–I#ûúÝ—$çë÷ýXŸóM»V§uÀöäû + Ñ?˜#’q&½ñÎ÷ˆø€÷ò…Û}|gb×þOj¡è¶ÒCæ‚` $ĵ¢úÈÉxuŽOb¸ý`JÜÏKˆ«EwcbÕzÑÓ݉brÑgîÂw‘ jÿ‹`¾˜ÿD‹¥@œQí $íqF-Ÿ¨ÿJ {€¨´UXâMø6K›È:ŠíVNåßì~fväp‰­=5ôS[¾tŽNXzÌÿ—ÍžÚ9»Ÿs'3{/ÿ± P$Ùé¯$êS$q!úÏ”³H³,73à Î½›ÖLb|Ì‚èøùG½—.ò Ÿyß³Ú}«ægÌž»4}ÿ޵IâñÀX8úŒ25ænÐ,4$U0§æ³í§ŸÑ»"‰§«læV>Øùóapò¯}E_ühmq䔯nÉ[ØË?Ó–;~¨s ÚêMRZýóé)%ÏØÔév°N|xQŒ°Œ“°¤ßGÛ ø6¬Ô¸G5®Õ”ëŒòEs¤†ÃsÚ£;bÇ8ªØ¶{æT»^æX=ãñ†ošµ¼™2°«nMõìÄ£ê‹v¹°c,ŒëC›å”—zcÖ\öÌ[9ÉÎFÞÌŠ÷JÑÁ+#vp=‡H­ž¹yNÍ0ò‡¼¥Oþ;î½%c3„ûo]]qóŠuEÒï¿=3Vx[ ;©<©rTDT}T9uí4±_Ÿß×ñ_Ÿ%ﺞøÚ°~Ï×ͽ°];X›•k øÌà+j_N;Ø™í’ôúйH¸~HŒóË|0i×’kÊVˆL7¢ëËfùE‹S.iþâÐ7MG~.³Ö5ëÙ¹£?îâŒdá½­—ã\qé6ÆÓ%nºï9톛ÎMÈ•Éu®ó/]ßýù{ Sñ|9;^S«húàýë•¶Ú2.º,&sìÅýû:f2™Ù+ó®-ó].ÍÛì9˜±×7LÎpt¸Öm~çÍ÷jK*ãí_}~ôðá³R¬î`~õ„;ÿp Ij\ÓõQãZm9^BOª¢Ñý? OþÝ¡= ®L–F<ü¼òÛÖù| "k{{ÕÄ ¡·ÏVºÛ 1|ÀÚùûqçÊŠœ•;]ï&¸’Uý‹ëQÜ”ú`âõrƒ³^ºrœë|ßÜ™¢i-µ>wÿ´Šzè]‚ÿvÜJ½wáw‚ª·/ùùFñ» UÎω rõñg¸÷ø3œ!ä=îtöŸ½ R…™«Â7j¯ krþMb;¨j»D©“1ÒuŒüü.1:üܨPùä<Ðâ“þÜHn_ä¶._ª-çÒ+÷/ÕN=rüõ~ ò¤ÊyøAêfÇ=Oh ¯~ÌöÓåßÏ{ë‘/Þ¢î=W;~‚?L—ñ RŽê‡î"ç&¨Æ†òý!ýçQ,éqFµ“*Çì.ñ¢¶þSrSö7ˆú$&ÄÆóç÷5a`Üy—ìÞ¥Wyѱחµ¾—¿æô²‚b‘ïâtœZ^e¶°!Ž>w¦i=a= 28$œM×Ç'ŸiµÚÞƒÎO%üëPÍ·Zر}/TÞ²p“è$Ÿpx&ÄÅ´¿))½¯Žªï±Y¿oŒßü˜-ûâ”d]ò¹½®žÌÿ¹ËigöúŸ[_]¿Ô1 ëNÆF`ÅkÙõK,eÛ¼)uPÒÙúñ7å¦÷8»òàËÕ7N•׎lIú¨q­¶/¡ªåsîÿÉæÙñÝ¡:ÞAç78$ÐÚ½‚ýõ•a+&_ª”•¸ãÑœæ) Ûg¢ÈÖ׎?Úåˆ2ÊõÁ¥Î÷[ÖÖzëé“Çþ[¸¹amˆë­+HþÅõ(]j}ðÉÎ98de-u§šK>z·î±7µ…˜ü쓃Ô]é÷.b9FÜN*OªœX!¥¤QõQ夨$vŽL}Ó~3Ò±˜®î»æ7Ü·;Õ¼È>=1§þ,þ}„„s~•ÀW1Ud&»Üv°³Û¥Põ¡³yŠ…DÀ´0žßæäçF…Ê'ç9€ŸÔçFÚ}9w’ÌvÂíVµåÜŠenPíôP#Çï݆'•‹Úr~Pk3œûyÁFYñ¢PÔ»¶€rjûOm}!x*{˜ÚÿÚŠ€þó•gT;©rÜHµýÞ]ôyøOÉM™3ˆ”T-=/Söt6jøÝÐ_$Ç$èõÚ–úJë¡Oß¶l*( :° ]Ό˙“©=opŠ®R’V¯×i­õ5Öß+Ø)ÑF6çá91—¦YbŠò6} –¦ÏhÊf£¯©½`HZLbB¼®W¬FSSúåÝ>b)ŒLÏJäËÙ4ýiʨØabbø'T5Öjû±/÷·®Ø´Ý1#0˜(މpÆæåCûÅY,MöúSGÚöïxÄòbÐuå#'®½e¤ê£ÆµÚr®Ò1&'ÕÎ}Ѿ%gø4¨ú¢].|²Q™®GÜJ­²ëñÉTžT9*pª>ªœÚvRõ©,‡vI1àÝãùöÜ(@ ¿|κ+íù¶Ý-ªÇ'µ}é.rÔp§–OÐGð»Ì磎RQíŒv¹B]‹/j— ñ¢ñÎí×gT;©rl£=Ψåë ¤ÄV· R¢ È@@@@@@@@@@@@ÀI@             =‹ˆz–¿QZ` B€€€€€€€€€€€€@#€¢æp@@@@@@@@@@@0@„FD=Ìá(.€€€€€€€€€€€`€1           =Œˆz˜ÃQ\Àb@@@@@@@@@@@z õ0‡£¸            €"Ä€€€€€€€€€€€ô0 êaGqA@@@@@@@@@@@Dˆèa0@ÔÃŽâ‚€€€€€€€€€€€ˆ            ÐÃ`€¨‡9Å !@@@@@@@@@@@@ ‡ÀQs8Š             B €€€€€€€€€€€€@#€¢æp@@@@@@@@@@@0@„FD=Ìá(.€€€€€€€€€€€`€1           =Œˆz˜ÃQ\Àb@@@@@@@@@@@z õ0‡£¸            €"Ä€€€€€€€€€€€ô0 êaGqA@@@@@@@@@@@Dˆèa0@ÔÃŽâ‚€€€€€€€€€€€ˆ            ÐÃ`€¨‡9Å !@@@@@@@@@@@@ ‡ÀQs8Š             B €€€€€€€€€€€€@#€¢æp@@@@@@@@@@@0@„ÿßÞ£FE¬´³µñ¶ÁÒ+ÚDï[,V væÛ,ž`µtF"DðÉ~oáǤsÞL÷– @ & Ån\ @€ @€ @€€@ä @€ @€ @€1(¶pã @€ @€ @€"7@€ @€ @€ˆ D±…— @€ @€ ¹ @€ @€ @€@L@ Š-ܸ @€ @€ @€È  @€ @€ @€bQláÆ%@€ @€ @€Dn€æú2ÍIDAT @€ @€ ˆb 7. @€ @€ @@ r @€ @€ @€˜€@[¸q  @€ @€ @€‘ @€ @€ @€Ä¢ØÂK€ @€ @€ˆÜ @€ @€ @ & Ån\ @€ @€ @€€@ä @€ @€ @€1(¶pã @€ @€ @€"7@€ @€ @€ˆ D±…— @€ @€ ¹ @€ @€ @€@L@ Š-ܸ @€ @€ @€È  @€ @€ @€bQláÆ%@€ @€ @€Dn€ @€ @€ ˆb 7. @€ @€ @@ r @€ @€ @€˜€@[¸q  @€ @€ @€‘ @€ @€ @€Ä¢ØÂK€ @€ @€ˆÜ @€ @€ @ & Ån\ @€ @€ @€€@ä @€ @€ @€1(¶pã @€ @€ @€"7@€ @€ @€ˆ D±…— @€ @€ ¹ @€ @€ @€@L@ Š-ܸ @€ @€ @€È  @€ @€ @€bQláÆ%@€ @€ @€Dn€ @€ @€ ˆb 7. @€ @€ @@ r @€ @€ @€˜€@[¸q  @€ @€ @€‘ @€ @€ @€Ä¢ØÂK€ @€ @€ˆÜ @€ @€ @ & Ån\ @€ @€ @€€@ä @€ @€ @€1(¶pã @€ @€ @€"7@€ @€ @€ˆ D±…— @€ @€ ¹ @€ @€ @€@L@ Š-ܸ @€ @€ @€È  @€ @€ @€bQláÆ%@€ @€ @€Dn€ @€ @€ ˆb 7. @€ @€ @@ r @€ @€ @€˜€@[¸q  @€ @€ @€‘ @€ @€ @€Ä¢ØÂK€ @€ @€ˆÜ @€ @€ @ & Ån\ @€ @€ @€€@ä @€ @€ @€1(¶pã @€ @€ @€"7@€ @€ @€ˆ D±…— @€ @€ ¹ @€ @€ @€@L@ Š-ܸ @€ @€ @€È  @€ @€ @€bQláÆ%@€ @€ @€Dn€ @€ @€ ˆb 7. @€ @€ @@ r @€ @€ @€˜€@[¸q  @€ @€ @€‘ @€ @€ @€Ä¢ØÂK€ @€ @€ˆÜ @€ @€ @ & Ån\ @€ @€ @€€@ä @€ @€ @€1(¶pã @€ @€ @€"7@€ @€ @€ˆ D±…— @€ @€ ¹ @€ @€ @€@L@ Š-ܸ @€ @€ @€È  @€ @€ @€bQláÆ%@€ @€ @€Dn€ @€ @€ ˆb 7. @€ @€ @@ r @€ @€ @€˜€@[¸q  @€ @€ @€‘ @€ @€ @€Ä¢ØÂK€ @€ @€ˆÜ @€ @€ @ & Ån\ @€ @€ @€€@ä @€ @€ @€1(¶pã @€ @€ @€"7@€ @€ @€ˆ D±…— @€ @€ ¹ @€ @€ @€@L@ Š-ܸ @€ @€ @€È  @€ @€ @€bQláÆ%@€ @€ @€Dn€ @€ @€ ˆb 7. @€ @€ @@ r @€ @€ @€˜€@[¸q  @€ @€ @€‘ @€ @€ @€Ä¢ØÂK€ @€ @€ˆÜ @€ @€ @ & Ån\ @€ @€ @€€@ä @€ @€ @€1(¶pã @€ @€ @€"7@€ @€ @€ˆ D±…— @€ @€ ¹ @€ @€ @€@L@ Š-ܸ @€ @€ @€È  @€ @€ @€bQláÆ%@€ @€ @€Dn€ @€ @€ ˆb 7. @€ @€ @@ r @€ @€ @€˜€@[¸q  @€ @€ @€‘ @€ @€ @€Ä¢ØÂK€ @€ @€ˆÜ @€ @€ @ & Ån\ @€ @€ @€€@ä @€ @€ @€1(¶pã @€ @€ @€"7@€ @€ @€ˆ D±…— @€ @€ ¹ @€ @€ @€@L@ Š-ܸ @€ @€ @€È  @€ @€ @€bQláÆ%@€ @€ @€Dn€ @€ @€ ˆb 7. @€ @€ @@ r @€ @€ @€˜€@[¸q  @€ @€ @€‘ @€ @€ @€Ä¢ØÂK€ @€ @€ˆÜ @€ @€ @ & Ån\ @€ @€ @€€@ä @€ @€ @€1(¶pã @€ @€ @€"7@€ @€ @€ˆ D±…— @€ @€ ¹ @€ @€ @€@L@ Š-ܸ @€ @€ @€È  @€ @€ @€bQláÆ%@€ @€ @€Dn€ @€ @€ ˆb 7. @€ @€ @@ r @€ @€ @€˜€@[¸q  @€ @€ @€‘ @€ @€ @€Ä¢ØÂK€ @€ @€ˆÜ @€ @€ @ & Ån\ @€ @€ @€€@ä @€ @€ @€1(¶pã @€ @€ @€"7@€ @€ @€ˆ D±…— @€ @€ ¹ @€ @€ @€@L@ Š-ܸ @€ @€ @€È  @€ @€ @€bQláÆ%@€ @€ @€Dn€ @€ @€ ˆb 7. @€ @€ @@ r @€ @€ @€˜€@[¸q  @€ @€ @€‘ @€ @€ @€Ä¢ØÂK€ @€ @€ˆÜ @€ @€ @ & Ån\ @€ @€ @€€@ä @€ @€ @€1(¶pã @€ @€ @€"7@€ @€ @€ˆ D±…— @€ @€ ¹ @€ @€ @€@L@ Š-ܸ @€ @€ @€È  @€ @€ @€bQláÆ%@€ @€ @€Dn€ @€ @€ ˆb 7. @€ @€ @@ r @€ @€ @€˜€@[¸q  @€ @€ @€‘ @€ @€ @€Ä¢ØÂK€ @€ @€ˆÜ @€ @€ @ & Ån\ @€ @€ @€€@ä @€ @€ @€1(¶pã @€ @€ @€"7@€ @€ @€ˆ D±…— @€ @€ ¹ @€ @€ @€@L@ Š-ܸ @€ @€ @€È  @€ @€ @€bQláÆ%@€ @€ @€l º` @€ @€ @€È\62ã” @€ @€ @à´èž @€ @€ @€@Fà~Ñ13®A  @€ @€ @€Žˆó¾± @€ @€ @€¸zmB‡ DçywW?®  @€ @€ @€¶ _>8ì÷½šwóð» @€ @€ @€®KàËŒóyGúˆöçïó^̉VÇ @€ @€ p=‡nçýÜ‘¢_óû×y?æ½™÷vž @€ @€ @€ÀóØïú4oÿrèOÚQö/†þ÷Ù8ôqÞ‡yïç½›÷zž @€ @€ @€ÀÓ¸Ìí4o¿^è8ï0ï<ïŸÏoê«™¯ÎkàEIEND®B`‚python-can-3.3.2.final/doc/images/wireshark.png000066400000000000000000015002241352572415400214220ustar00rootroot00000000000000‰PNG  IHDREªÚ§õa pHYs  šœtIMEÝ0ŠkÙ” IDATxÚì]y\LëÿÎÒ¤™Ù"“lùM¶ˆÊš¸¢k+e'ûîÚé"û.î½ÄM²E7û½EB"†r²„-ªÓ2ÍÌùýñN§¹)„®Òy>óá=ï>gžž÷{¾çyŸ—§ÈÉ'œ”€´6nZhÙvšò”X|˜ÏÔÜãäSÂgÿshhÀã Eræw0ªØ˜3Ľ뾭cŽÒ±€€ÔüÙL0§•wï8ù¸ð9ÙEÙ­b·& ræ¯P·.rq÷½¼Ø-çêüÃöw0„›™€P: Àñ… V§Pf°Ë½j‡¶’>º|!ç „d¡’Ó·üÝí-NFw—X‘â-©ÔÙUÒîöÕ3F˜ËÇþ³¤~'(ŸÈ£‡ZÛì"u €tÀã µ·µ…PDM¦*îl¬ì0ôô? ¬%Öæ+Ÿ˜T§ÿæÇ³Áª¤Ýä”÷íšnƒ«¹¾ ë‰»a=££2–ýyI Ð×v©ö~ÓE2 > š†½?×ÕÀ–§~ÅäÍðjÜkI›o{kTŒêJŠÀó‹Ç+Zw~›’\©ºiN­oXQ¨£SÌÎÔ,®åìVñDNSÖ…=NY?ýºµAóR~_reÄÃHý ‡¢.GZÍXï·ÝwÒôY;¶þæ1xè™ÜWY Qwéè¨GÎ]«¢ËB_©fîúϼt+{ôúMÓæX·tà Ÿëxplýò~<}«¬»ê5yêQfÚžYýl)/ºÕ¾õ:µ“x·GÍŽùǹ €­³¾Ht™<³½Õ°WÔ ŸðóÞ“!¬n¨~"àáLšæqRØH,Ú­ÚuqöPQ{mm=¢‘œ¾3}ÏSõÌŽ™•¡|ðäow„-óµ.ZNS·Ÿçnôù§‚iUÒJÂÇÑ(﾿¤Ÿ;éùRnÆKžR^µòôÕØIþt3"'Àî·Qs^óù…ýµ'‡µŽ JÙ¸ù,}N«P¼`5þ}Üé­ÆÉi Ì;ëŠNP¾ æaSÕRemÐìãºuòN€§w¯×·n—ô ÑÌ\š‘–¦'+•¹…6‰*(ŸI– ‡Ã[EêVÌ«Xî>|ís⦕}å4%§©¥íÅvq—ËbÕ ìP Çq°Kó>ÖÆ°‹<ÔQó‡"®Çfo§)ìƒ'ËÛiËÁ§÷dS6éwÚÀÞ‹¡¶IzÛµ :º9¹ª_fÍ!™b}C¶m±>¶è^ܶ($$ÀÝ»ñtDºb®ÉÕZkøïÖ7boRÓ´"ý¤g*7îN.#*•lúíá©l:óÒZU|À½e®E˜žŠá/x™éJ5Ôà«Á½Ný*ÝÒ¸r€MÏŸe=~:²SÏz2)p`þg*}[9Mµkÿ?9}Öt¸С¶°]¯~í:Û[5·2`9Q=àî!uèÓ?*¸»³³ýüGÔq횯>E@‡ÚB¶hÛ27ˆ­‰¶Š´ø=g¯mËÜY75îGÞœÚ}äú¹s¶NÝœí%mf0îGÆ:¾°€vÝ[¡Ý䳡‹Y7tùûŪͺzöY7m˜‹M#ëæÕ)”üÉ*@æ7gÛr‡Œ3ÓÀ3 œðÔ[HQzàr}¦®4o MÓD±üýwmô]¥¹q|þ•«×IQHH¨HW÷Ñ£|Þ.33C©õK›&{~`áÓ½ó¨T*cýŠño#4Ú£Vÿê½D{zK=& —>?øµÎE^žâaÂ^¾ñs×.}œ”?J?odÓÏÎÝzw)¤Áü…j@NvædLPíÌÉÉTäælݺÕ××À»Ô7¤‚žÄ@ObJ.—­Z¾xÙ’B‹¾nMT†êMIØÏŸyý½hIi[=={ê›VJIľ=b}Cw7{iÓvs¦Î ]jbRÃÀÀ°~}s7oÞ‰DÙÙ9ÖÖ2‘n®"'ûÄšÌëÿèŸÿ:%¥rÕê pãZtÇn½8,ÿßéVvvfI Ç0Lq›èéIÊ–tY,Bßb˶¤R³ÁÚWžká•D,/ÊÖ1ÐBÊBöi¼ÉT•†îRÍ?í$-ØV¤H7ߤ(xz½@š uršòJ¢D²Ù Ø7@r˜ËÄÒ‰õ,zw?ôŠ‘v”‰¥Ì-o¶ŽX*K×Üfdbi˼ÌÖ­¶ÈÄÒÎݽoµ½¡Ì‘Uue[‘¢–b©Ll)KIÑý]ãF&–2çÇ·K†9ôŠim»}@%M‡2I+vÄC¯4cÅM´“‰¥²c™óã{V”2 c#[ÀV‹a™ÉèýöMeb)Ã0d†äÏ0mÄÒ¿î>Él¦L,em{$“ýì}ùÖÏ”'á¸Ó"¹ÓhMd´Øùÿö9Qd1œŒ¼´½¸ÇqÍέ³.òlrá–?€W”ý­€ÂÚ†| @ü½ä4MSÖ‹v«4¯€¢ö’àG"9MuÜvVþx- âWïS…ÿ/…¸JSA ×xyj±sjý Ÿ¡% Àèô¬°4E)ÖÇ‹X!(Þ¾Iô²s·àëÐi&É!™_)!¯Õ»ç~¢RÎ]–w[s;›¼rsõ½0¢‹«ï}Wßûö®¾÷¡L†2yvÄ»ÙïØ¦®¾÷ƒŸ«XO$­óa‚lÃds8¼ÅaùïÄo•ç=ûóÿ ûÈžý%õÜLÅwwÝÝatŸõ·:N<ô\E.Éç›ü6Ÿ´[Ì»pž{ïiìVîC·û9Ž]“¹ &sl§Ž b2¡| åÓΗw˜OÚ-ˆÉô ¹Bk‚wóäߢ{Çô×Îù„ݺž¦»î§ž¹9ê×–ÚvÊ’o"Üi×m'GÖ*OÙ5±[¿-'7öœø0y÷¯<å‡ÚÂ\kÐ/ÓRS]¿¥á Ú;ŠûyH“³¬Wxd¬ð§›mþ³‘W»õM¯ÏrAi[[È´ú™õlSs̲dÊ¡Êà… îNü{Vu 9}æÊFßÝN“MOÞ9:ϯ¶NÝ*ëdyÕ†¾¼Út¸_ò^o‘âaðÂÎÞ÷Ú¹Îݲ£Ý»‹WÇÏý«ë®Ã>Í4«äQšZè²zû‚*l8D7ßv˜ååW§P]‡¬kÏÛ±¤w ÏnÖ&cÀ3à3é?› ÈwN¶®=oÅ/ÿÆÙ­;-Qù2¿S˃5‘ì,å+Ä;3ò׎©ôm4r1¿µ^0M'P¯~R¡i³Æùï|ò‚š<î¾æ"M2+x§ó†Ò¥}›hûË_>?kjc¶´B¡¶[@êFG-íÛ;–Øa£yCéÌÀã\FÈŸú]¢£´#²zÂè¨~]LØiÈŸoØNS狹XË;tšÙÝa´C§™Ã–U,Ÿ}—Ãò–/kX¾äöì¯ï,Éæhs:ÕÑì£u$ûô…Zл,ˆº–gQüÊ(–wš\RX¾”p§œÝúíVÉq§{†Tƒ°2`¬ñÉiêd*AUÍ5 ácº‹)1f'S)Mv…Æ"àÐôzršºšt\‹Îiÿ}Bêè}ú €Y‰ùÆïM]¦‚O[€ƒ c¨¬±¦A­ÞF|ü³´Ñoo4ÕŒ¨ÀÊeÂÇæûþ6S§}mL, @3îQënkIQ¡vËÅ~È‘ó:Ú>6szî›ó‡QnrªIžRK—ó±AIûŠêvV< çWïÃúØÈß\ ìÖ‘ø‚j çcóc®‰%çwºûöVù‹MÚã-Øp‡ø‚ÊC[o:ÏVn–‹ýû!ú¬¿ÕÓ+€Ýx’ô\Õq⩲ˆåYÿ]±|)äN‹8|ª€#kÏ9w¶¯äìÖÃÏis‘Ž&‡O‘Vl‘fý÷¹TäÍ @(¦)~yEÍJÙVÁ´f,â/]©<Ô‘„‚%Oò'ï2s°•ãèÙ-+Œwµ2Ï‘lÑêja[½ëiT¼.¿èÖë\áE–ÿÁ±üwÇ[.öCþ0ÑC§™0k±sõ½ìÜsùú:êŒc‘û´è9,ŸÝÚ¸E íÙos7¨bÌ0Ã&6:ÿ=&ŠÅþXíü´‹äýqðôz}×?Ü2¡ñÄßâØNøµV{¶ÿ… l–dG{‘X#F¹ŒÙÿ’0®J@Òq }n!˜ÔöÕRT»2¨á–óLR‚’Iº–ÈI ±FnÚn Ó_tÕú×O>7pkb©°[¥‡;ýÉïÄß#z–¨ÝÚ»w„¤v‡>ëo½:üGdäïÝFëõž4p`ãýûãR<767É:ºÜÞWV·¸=ûœÝâð§[_Œåñ}|l¸x§ŸÏo%œZ€xÔLû>>Ä»ëfóõcý þò%çwÚ¯êã‘¿ñ®ÏÒD-ï=iøÑÍ;Ûör›ÔèÑà kïè±qõæ[sð­èМžmjŽ™<#óžät¼µ¤¡œ>s>«¶½^–µ¤DõDЇ$n L/äý›wu³·ø{þçp¬·-˜tízõkÍdbéý%ƒhæMËf+ÙVlù¢'+zœJ×ì}•‰¥- -ï3Ló†¿:hªõiîĶºÏhÆz²¢»÷µ¹XÚÂÐòØF{ïë`—Õûí›úÒÂÐR{ïë©t&¸³•ZÉ4K&?Ÿ‘/ðº¢)²Ò«Ëí}ýþ{_9,Ïaù"±|y>+êüý5ùD]agEXI¢–°íÊ»¾ÜÞ×RÊr{ö0)Y¿SC¿S€'ûçê6D!v'Ƶ˜¼–m%áãôeïݶk\R%OµÜçä4%uìáêÙbòZíÙ«ßÞ".©!¯¨•7¯CTC[íÎÅüAòŒ˜¼i`Ñé´í4}qP‘´è=û.öCÈÞ×>ëoÙÙÐq⩎OõôŠ$ä9Ñ“ßæGØûÊá-Žƒ({Ü©¨ngÚû|äo.±ûèµ¥ììó)‹ò}|l8¿Óâñò°¼C§™½ìÜ:Í´à»íÊh·)KX¾Tì}-÷ñN¹5±˜D‰ùšQoü-J{Mԩןø‚ÊC/Ò—ØV.3—»¥ÖÆòAÏU¿Qá Ñ ·÷•ÃòœÝâ¸ÓæN·%\ý|î”ÃòÅŽ;ýàÙ¶hîôy.LtrÖ_Þn€¯ñós©&"ŽÐËÎý]Õ6àüå5TaNvëÿ-#ïªO86›žC^Ü^^ÔóÈ”Þ÷/ÈÄÒç43yÅi™¸±Ì°£½¾´£”}™Ã02±tÂæ‹¤Uæá!2±T&nÌ0Ì´ÝO¦ÔÊ mdb©LlÁdGœZèA¢&ßz¦9çÛª¾ôuì~G_†aRr™Xzìmþ+d™éD†a˜óã†9çˆvdeÕ›Xå«» Ã<§™P*MV±}þ‹g†yw'Œ$ujÞ4¤¶i Ã0ªLí~>ü4áÞUsïªËÞ*oRÞãN¸M+Þ)'¥…;-ýgEe¯TΊú>Âq§E®‰1¯bKó/WA¬Ÿ™Áq§e’;ݵ+ ‹N¿!¿žE§kÎð& ‡Ön¢/³ùa/Ó Ôüðc?î¸Ck·s¼“â 4ì¹Nþù݆½LO}õ<ïòÝgö\ ’¸ï¾vþˆŸüŸùá°|‘vëtB8IgÃ&­Ï­Ùå]ÄüðÐãœQc@¸ÿàÎN΀(<4¸³S/TîYõýñWJ€g²·³“kxh ÀCÆÕÎýÿzü''çðÐãÎce>ÚI¸MC0U…x¥2l4aÃÝ£g÷»~¤ÛnNÎÆ_Qçª Ôíà¿eÆONÎM›ÿ¹øã=oéYRg'çðÐcn={½RâïÐãSÿ~ý.4 •:«ÂCwî>(¿Çî}ЩN½´—«®fËCì~s“hZ•Úø[Ïž=ãþÒÊ'–¿S£ö³>îw*§©~§×ž*®ß©˜‡í4%O/.Nçu3„0»¡hvCQ2Q,B3 œœœœœ àVˆgrrr7C$›@”OÅ÷®ºXÜiÒîafƒý“vcsÌû¿ùÀ»øHrYh)£V#‹º|©]™\’tÆSJ¿Ö'–퉑ÛœãN¿w ð?Ÿ;5s[Aþe?D:ÏD:ÏØËBKÉç#—*“K"WVŒP¿Fî‹c£:ø½ŸæßÜÍNlP§þyƒªó›ç¾@î‹ïi·ÊóYQÍgüÚ\ò¿ÿæ¬(nMü>Üé—KÉïÙdï²çü‘ÿþ›©T*@ðÏhû¾çô·³l©@Õá©ï3üúEø?øÓÍ|d`ú þ :·Àƒ?ݪ¶ékФ?}ë·aãƒ"#Xî´ôÇ;=272EÅ;ý.Š@  Š (2²×Ž3EøEFþáÀ|d ƒ&ý‰b‘ƒ&ýH¬&|_Åâ°üçbù=í»n?V ó3]Á mKÌÑËä|#»Ub~§?Uû§iHÎÆ]OÜeGÝ6°‹¯ƒ§×°eBcíNøµ»UÁf òθÛ6P³!ˆT“tÜBŒnûê»2(¾iS¶ ]KäÅßb§!¿0è ö«iƒëÿ\„È}ÑcP€šŽ×ÀsÀÒÒ SÎm86ªSÒïƒ~ïg—tÄ;éˆ÷ïýìÔt<þ¤­:ý¶úí%ä¾H:â­Ýoʹ êÔíKIG¼¿üç⃃à¤q§òÇk‘ö»j¢‹Wi*(á/O#wN­á[ì}ýVŠU¨ ²wùï±<€FÛ4@èЗþt~'¨‡á슖~'}ë·þvvwZö¸SNJwúcìÙ'vB[®/rÒ¾Ì786®§RÿÒ-nÏþgrnCAù87÷űQ´±0€nóæq*õ¥kbùãN9›¯ã ÊõYQù tQÜ©©©éÉ4˜ššLQÇ]Ñl‹eÞ‡“üqóÖ¸˜5ᔉÃòœÝú„ðŒº%äwºÉ,D¹åì0“! ¯‘V¤H(!T´}-xz½\ïSn y¨c+§S14uø5VöÞQ7~Õ=r@,ÏL*Ñ+‰Zbf!F˜¸û=‡aùA¾s¯SÇS©6Ö s5Ç̶ˆZu5[NSkï€}WHSÃ$¿nùkwFÕ¸9ùv+î—q7†Üpoöë–¿|“5GÄÔ¬Ysˆ]÷€Èí»Æú´TlhG¼kôS8ÔBI³uŒZäìÖ—È¿gˆÝï>Õ;LK9·¡z‡iû<åb`õvnYwvè5Eª‘´ß¢…#ykòuLû<ëÎ=ÙÂrª[ÜYQ¿Åá­ï¦[×9­§[êìN4 :·óبN½vœp~‰‹½×îv©[—¶ýj?i%Á[ .d},žŽ°6”O>¿wQÝΊGáüê}X»%s)°[ÇUW³ Ô,µû|8ù*‚ãN9)kbù>+Š“bÛ­òÌž¿ÅrÂaùoŒ·¸X#ßD·Z”[îtxßš3-4ù¸Sa5ö6- >;@úÉ<³¾ú åé'­< àýœn:=VÈýg®A7s&-#ãÒKƒnæ¤ò‡ ÝÌÕMVÒët3gsØjlN! yK¼Nc ÎŽ[ùÎ/>ësz«P˜vèiø¦q  Ò*ðÀÿû­¾`þÙ·ZuÀ¤¹NØC.®¤ªT/C‘srâüz9'÷ñÔCÉû'»#÷q“7UÀ¯ û'»çcüïûwW½ Õž•çŽÄn£¦{þewOObP²ÜéÈ‹®ƒö© |#$¤ª@Š^*ЭŠ-T¯ˆ>Æô2]$YêøÒæ·nÆ€¤¢ì¸ÀéõêyŸR½ŽTi˜GÁ‹È=%ÿ…EŸ¨’êsB8ga—N³©ÕRŽ^ )ᳺ5e* ¥Ä‚XVR4ÝÅtý‘d9M!y绋׎µÝ²AÖ[”§V=¥æ¶˜6ÿâ†ö/7HGuãÔy”a²ÁÓ"VrB§^ iüh/ß%ÊÛjÿd÷ëVB§Îóg©'1Þõ{YÂ[|Ãfê´¯},h`Æ=j]‹B‹4Ú&—Q1ŒÆÞêE™ •k Ïãó9ÙÜà¤DÔK&–~fÕ¡MõŽ5×cܬ=Õ¯"¸{ÇÉ'Ö™•wÏðŒò÷è õ °z¦³œŽ©5>˜=B À®ÛYŒ.ÒüæpŠÅÉ7¶[%';·´>ñ÷cü€û.¹æ¸ã$—œÆV’?ß`jcó†Ò0:j—{Uó Ö&DüêŠ0à®—¨eÉÔE:Z{ó†Ò¦Í‡ÑQKû6¹HkˆPêçiŠÌ@Ö¾gVœpvë‡5Ô9ê\†»_¦U€._‡w‡a<$ •°ö—Ç ³ž²tXðÿ§ hsBcoP[eaé1Ý Zé´ôš¬gT@N­«'y›’lZïs9^•‚r¼£ãU›|»U<ÇbaM(Ë@d˜Õó›·ï¢»u2£VçNø}û¶?&OŸ“•¡R)¼½²É¸õ”é“'Nµ72ë³|F•>ÝëÒ£ ”wUÐfòêXŸY™Ð²7øl0kÙºÕóg˜6Ù{ƒÏ!¢E–ùvk]'Ià 1쯦 ¹¢Ö©Zñxè-¶ÛóþgSctðyk‰åîÄÛMMt¬%M´Éñ ·ü%æíH§¹xÓZÒ†¤ zí=»Ù0My³Sý-&¯½æó Ù™m,ÀÜ©6¶ÃƵ·v•¦Öì¹!´–4©NÿÍå40Ö’ÕøxmÔzõÕÏFíµ½p]5k]4Ñf9MYµò ™¡c¿Æ½×ï_¢)2¶‡â9€¨½¶AylÞÖÒÌyÂíÚ—FÙOÎP§Ýþ¤n5nÞ&'ýaUiiú††IkÔ4ýúû.é*9?¶nµkØá‡Â[óáª;¿•ÝjïÔ—CN_,*Yð—ÇÞb@´ò—ÎÉaº-½ Í££ªÙ¯Ó¿•›Ö. šTä‹-¶HNßûã-ůþ©°ÞÂü!.†8}tížÜL@¡|zO6e[@¬o¨FAÄôˬ9š› 'a3CBBܽ_踉÷ªÁ¿~Có¶*éIò[e`uÿ3ž'ø&°qÇ¿Þ?˜ŸïTù︟z1ªÜü~¨=Ê8ö2ýÔ’Ðéff¤+Õšâc¯ƒÇS1<ð…ŸpmÿL¬¾˜Üæícëlî¯;ÚiŒœ¦Î†.’'naÏ­ð\CNG¶ël“}[Ç(\2îGÜ‘5zú¶VͭⲪ¦ žfgßøs'lº qïºoë˜EäÕî÷®Ä¿Y³X•·nÚ®³ý”~s¤º¯tj7o¾ú Û €¶/uëMç¡|/ܘ7²n:cSòþW÷Èé˜áÑ]àøÂ¬›N=~ÙZÒ×'–/uÌ83 <>ð³™`ê‰-ò'«AšßœmËØ""®37lô]EÒ9¹*·‘®4Mµ;uò¶¨^íZ7¯_W*•DÏnݺýèÑ#vÂ>|´¸z|°Æ¸ ×ݾ­Y”gÌž5}ÖL’öx9ï¯Ä³qo‹úµ¦Œ4i×w&{iÚ??t¯@ xûú5I×r[òÚw[to{À›¨³ìe6•ô‰"7g o÷$fŸÏ—ú&';sÛ¶m[·nÍÉÉdë,[µ|ñ2¯žÄ`Ùªå¡á †ÇÏÊÉ)•DîÈ¥Ë;öîîf/mÚnÎÔ¹<={ê›VJIľ=b}Cí¢›7oŠD¢ììkkYHH¨‰I ÃúõÍIW{÷pz´CšQqõ%“4€ê™Õ0b”§PGèûÇFúŇ-–z"€›·îøŸU~$Õ^§„„ÿ£¡!ßOkc´á²ÆV=~\«Nþjð~zk£õW ýjï§¶2ÚCìÖӤģ‡ … &ÜÙÊ®CС“'O~‘üÐÐHsR.@RAÀÅèhÙÿdÇŽèêZ èÃ51ËË/wÿ—Ë­l>pí©ßÚgv_ÛTd.Œ¼5ÕVþþh_›Éúîû"÷­ØE”›D1„¾mSów.íèjØŸ'17wSFLÎa4O‘Ý'\}á?P{àãäÀD‹qMë>^%é-­^]ºœ VÌ·+x+ñî­ÊU«3`xÀkÑÖ-Û0Œšø|~ÅJ_µ?¦Q% Ž;-\VÌ·ÿ@·T*en®â›Å0Åæhõ´Ð^éÅò{i  ˘²tX-ðïsxÇÞ „¥ÇðÝ–^^IšƒÇö0@Ž+ ££ 4íþ÷]ö00yZ0ÙèÁ´‹ `yí÷KA“êç 9}9ŒŽÒméåŸvç_§‹v¨õä!§©)¼|pJ]6?xz=9Mg½_Sÿz—÷K›}±€[þj¼2bU‡ÊZ¿w!`V™«4®\ý›*U©QÜP¨#…::|à›¨Âåûß~ÝøÏ¹Ó¢;i#±Èùêq{·2>“Z<¶©°ØËw-èèÔjªŒµWõ©DfëÚtzz•5KƒUÈÍÉV(rÀãñÇãñúZ|p·—xóâå¦ ™¿ö­«ÇÃØ€'[‡ämWÎ}št«®ZɯVØxÐÝm€š/8&×Ùº²Z`_àß"s[ç¶Õ%S—ûåkb‰r§g\ðªÞ¾Êú³gÇtt»Lv(¡¯‚1½L»ÏÝV¥©elâëCIG'»•*“¾|ׂÝûÈ|—úÖ¤–Y©Ð-EvNV&Ñ-¾@X:×Do©[Ýû ý²¶IÔ3‹ò~LF]Ý%ËJºn#¤¥ÕYxD Û}„V-¹QÄ ŠÓ‰ó?…ª92Ñ94ùªh°aæˆB‹n:P çÃ!"$‰5®Îlæð÷T“LU)“çN/édëÔÍZÒ7 ’Ó M"Jôž4œlÚæb3}’³v+½{Ø9üä@NÇê4œH_wiïIÃX5·ÐÅÍWŸôù€ßà¦RWíqv¶ xp©µæ¸ wéêÊÖ©û®¶×éÖ —5j T*üâÒ”J…ö§ûºƒJ¥‚V*Þç* ”*• f]‡º¸ŒIÜ5&`´Ë²}§.]»FŠDw/]»¶g®kØ7™JEÌí»‡.ÄÜÙ1F™E±ÍÓßf(³(—1Öæ‚u‡"]\F®;ùúÚY¥Rs…tuãÆ¥˜ÈÐÙ.?+• e¥Ìzìâ2æÃ™|ÇÏ÷àNùP²§ÔnM@äÌ!Æt©²íôë¼ýÙk"Ç=ýrë>S¸—¦JŽ;í1óxüñiâOo´¾©X|üŠ­ôÒ_רÂÓ©øài5dDwµýýpB‡¶’>ʈÉ]‰·ÎŸâ Ǿ>Mrã·Kó†Òñ‰M›5¾×Å‹ŸF·“ØŽMŒn6μæ£ñ‰º-½ÎDto'i«!ÙS¨­ÝÄ'êgöµ³u¿ø9wÇ©ïàBóÄd.m%^“YTÃÁ†O,--¿øWQÓÃß¾Þ´nϱe©æb?$Mçí™ð䲓ÝÈ3‘èî0ÚnÕšÈÙ3 wïºs_XH„/€.ÜöBêww-èìy«Uw‡ÑB"|µ¤Iw‡Ñz½'šn¥3"ðþ&6§h™Éaùoå¾F·~,Ÿo·JÂïTžlm4 L*P MÙ¢ãêôßüX›;µv:ÅbyéÊpk‰…œ¾üêž¡ÛθŽh´ˆt¨ÊÓ@šrË£¸ä4u/#˵z3ÂØôˆåNͽOYWtDîÃ_S.qرäq¿Ø6^Ë$®îÐÐ>³ÏåG€ÊXð…'«g¦«2 ¥çgÖ_𠀌¥kÿãq9î´Hî´í•=…Ö7t2O }lè¤yžM ´MK¿dhØYó:èzp¢TòåXϯª™*%åãàÐpÕö´Ùž WnO›ãYqΈw+ýTœ?>}Íï3Çx·ì÷ŠóÇ¿[öû‡Í+Ρî»ÅØ çlRqþx蛾›;_;';èŸì{Šê–Ù¦[wZäšØ*rÇ—µ½Ÿ òð]ž¥åVŠÃ[ÅÆ[ÚX~i+ñšàáçC7õeÑ}™ÃòÙVýÎnqü¶X¾®n Þ?‰ô¼fÍÅP)k¹oýO.pº-½r®.)”;4.)% ߦ+£ ˜÷$]}È~¶ˆ8ÅÚ9[$§ï]ÎáMh4Mrâc³A©ârÂ6–®E¯¡Á;ÛºûÄæèwÚqf>0ºKÕ­§_8øôÞò5!‰·Ô¤ˆÃò߀—/ç~§á/*}ÄïôÇ;§%vNKþûq9¿Ób¬‰ê¬¾^uWßûF›¹ú&p¾1aÐï¡®¾÷Œ®ïê«q_â ü»•¢BÖ“GuëÖÈû,rMÀ‡!#ìøF À¾Ïö}“=Ý}œ?4Ù¾ÏùC“?lnßLJÉÍŽ<>˾ïÝ“ˆ3kìûl¢]ÄæxÌé9¦µyQÝþkMäüN9~«„ÖDËK·2ýX~ï˜þÛ‚œ¦·Ô½Œbyž[,; #[ÊÄÒ–b©çÁt™XºsýÒž¥2±tÍmF&–’ÏÖ{ŒL,}¥Jm.–ÚØzÅ&qídbi‹F‹ebé+æ¥ÌÐaîÙÜæs2”ÊÄRFyS&i%K›‹¥ÚEÔìNlÏ2±”9?žMS³;1 #Kæõ+æ¥}À eÛ!û±Kebi<“?C†aÒ3IúÞÜ.lþý]†‘u•‰¥‡_3Úc1¶¶KÛˆ¥!~7Ü}’Oö°a‹þ òg¾Tâãã™r/f¢êwZ$wúì‰ÈG†zý×ω¬¿üºNâ/5íœ÷é3+o^o·JÙÖ˜7ÎÉDNSwbœœ¦òé ¬%nù“ä4u…¾¬=ÆáŒ VtÜv€Ûe ’–@ÂÇtÓ°èršÚuóRoŸ@ëb*€Bº¸Š ¨Ãî ‘œ»\}ïJWßû®¾÷÷ŒwZqSÞ“Ñ –ôèÑ'=6\ì5«Û‡!ìø² =!ö}|6·ïãêõ¡bÙ÷ñ±s^­I ð% ¶ [Ç¡ÓÌ9Û®<ÐÎ)­Ï‰e“;å°üçÚ­iÏþå„]C Ù³?¶KU’þpÏ~QBPü‚˜L–ˆß;¦?¹ÔÎü,?5üí ^ó?i·:uο9ìF² }ùå÷ÝFww}p[AèË8ÏVë¹$†$®¼U‘©Ì6éî0ºÏú[r‚ž«´s>f·!æ«~]§ÑºÐIN}C·½‹Ü[QZeíÛn„ƒð\ÃzkÐÄ^ó/ž§ömîå1ïAÍÞ“÷z‹YªAú¨S‡¦Ti ä€g&ÀY:r~ߥÒJj'{s÷±þlQФ:ƒ7?Ά¸wåg¦MkD|DÀÞIu¼.VªTI ª²ð¯_z:„6ÐáúìÞ¤C¦¥¦>º~+h½éü•)ö" Ï󛔸RÛ÷XµœŽñ¹]q§….ð׳Nˆº-ٱѹ  'µ³v:žŸIÿÙLk =2ºö¼Kz[Íð²‘ÈHÑRÎn•=¢ìørXþ›ayùå!möÆ.˜ÈŸú±ï|l* ¬6F¿?jÞPªÛÒ«àa`ú¶$¨)¦ ,€å =\Ö±<›ÃayË—,_¢{öÔý%ôrÒêÊCðš‘Ìàéõi †]÷¡½Å¾4Kn’,Ï¢x;ûNeË÷ôŠ,,_J¸SÎnýÈv«$¸Ó4u5éxdEZ±EA“ê?–È ê*M%\À¯9€å òÂPrš‚°rU–ÓT4MàåéôÖY @lM.{ûòMz°<-€+Ô3÷—ÊïÍ J¸HµzññÏÒFÑ´&èYe>.þ‰-ú‘¤\úØ”€Œ<{÷ÏŽŠÕ¤Ð3É ·[ " m›UŽ‚ºu뮸™=÷ʰQˆ¾½M‰úž‹ÝóòÏì–è™!+)¿a¤æÖÄvM,Q¿Ó›¯Ø”ç?¢t]<y¾ «S¨vÝ[Y5·Z×I"§cÊÖsš `[¢‚$ìÓŸø¿Ç}ÕI ÿ=–g!|©Ãò_ !HK”;åìÖÃ:ÖÒÒ¼¡T»H› -p.U—FbPÀ.²º-½.ÒÑl‡Dš6kL £6A* øÆ¶$=ßFÏã|I_Ø@ zôÚxÿ+nàE·E©…mõ®§Q|Àß­Êù3sX¾Ìá-¥«o’ó OƉӰaå¹–]Drß<:4·sÂò,NG ùË—Äžý*ƒþz½×Lj£ ˜úsµ1û_BX»&žü}qè¬WsÎLX®JÚ @Ny¯MuÛÿó¼·ó·’ðoÔÏÆézânXOÍc`c Jº3̰-`K*5Ñly8Ðméµ#bð༇’ƒ45@¿5˜T Ä¿Í|#¿ˆŸskbI¯‰?wz<ÔÛÙiá`·¶%*ÆHEÄqžøË“|Bʧ?¥6ýü¿¯Áò?ÈÞWnÏ>g·J¯Ý*¯x«ÌèÖwó±áâcµÊJÑÆòÐøÛ€8Î#ÏÍfî¡§_3ÊïcÃ:Ò|c›õ;•ÓÔ„¾£BO¤QV‚,kI3kó”Oj \Ý™€Œ¨a.6•jWK¼~¯Msâ’ÚóãÞ=ìÞñ*Gü}DNǶn᛿EôóÒ•ìŽnÞiÕÜêÖõ[]Œñvî™ë³zñ‘±cp Æ'ò´otÆßãÇÏó*umµÈëÊd;îRÙú#C'F…žü©«­÷‘ßG®üGî=[Ì5±Ìr§€>‹åIÖšàÇ6íë5Å}fßQeË—ÐÞגݳïXCX±ÞƒøDó†ÒT[´gb>Ñ0ÞÕÖs¸¾vÜ@·?’UJYd{:„ž‰øÉñ§h6áN“bãÒ‹ô%6¨©@(` lÔ©Q„;}´æÆ^{Kº¬¸¯RŠ€,½6ÞQ‹"óã^tƒÌûP—f?ŸŒmiháçVeXàkÎnqXžÃò¥Ë—ó³¢ä±“ =+ªpɹ«å÷Œwrõ½ì»ä$NÖ_¾ÌaùÒ»÷•۳ϭ‰Ÿ°[%áwjÐkïÕ¤ãgî/ÐbòZ–ƒ0`õ › ·ü\¥)×mAkï G‹ƒÓ”œ¾ |ãÄ%5j¯íê6ÈóJÀº¤Úóy6‘§ßXt‚È„EíµÖ«æÕ¤ãö'ܾà߆oØTû.cÏ~žlKÌ?EÑiJ0ù ÌúØ”ÔÞ× o ̇«ìäðVi±[%Êž‹Ýó¯= ΰ˷ý>ßJ±~0ù^>6œßi1„ì}e¯°Al´á|™Ãòlδ÷µ¬Å;åÖÄ/Äò%áwJ`uaû Lìt¥M›5^×I2ßF¯LÜ/²÷•Åò{Çô'Þξ“}§²‹åKïÞWŽ;åìÇÂÎr­W î”ÃòÅŽ;-wª  ²ÐÂòB²ëuÏx§Aë7¬H¨w#:eÐ_¾¤ö¾–¨ß©A¯½g7¦)ovª¿ Åäµ×|~°6”OŒ˜;ÕÆvظöVîÒÔš=7„Ö2ò^œøØÈi `¬% ªññÚ¨ô꫟ŒÚk{áºjÖºh¢Urš²6jå2CÇ~{¯ß ¾DSdlÅsÂxä±y[K3çý ·k_e?9Cv›[KzMä¸Óo¯[œàÇ‹wz1Äé£kh!ñNÙïûùñN9)Üié?+ xóßõ½„ãN‹\;tïSj¶¤Ä83iãÒ¬X*YäŸWý}Ί²—γ¢dÑé@. óïÜXè5Ëã8ð¡J z1˜Ñ¬ÛÕ€ Z ?«Ûj&µ³èôböü9¢„?„Ý*Ų|×k»<ÝRf^]^¡¥@úEü;¯ê%Õò.òtQýü*€ŠG™ÿ«~úEØ<¨^B•‘y!\T·PBõ‚…Oúã=“))@h~•Ò'VÚHm¹x§EJÚæjZPA-Я`³‚ jAuÅÎj’`?¢:Z—š„N-µ ‚Z Vë5.X¿bgµ@OÓPSjP°NQÝ ôÕ¢º…TþœžÉ”ôçÍ­B~ŸEuøpñN?ÎA<¹¶*¥ÀΧ»µ†ȉ[¡Ûx.ûGŸ·B·ñl€¯|¼C•ñJ·ñ\úÒ¤ µ[ j -Ü&•±­×¼´øØûú9~§Ú¡PY¿Óü¢Ïö;ýafâ!¨5”(¢Xò‹ØnrÉ ¬3ŠIÚnΫ\ëÄ[%ÍNíæ°ñdÄÔnlÎÆ“ûŸ*DìL. -%2°–°¨Ë葵+“KͲPãöJ“¾;µÑ>¿è‰‘Äú“ø ÚÌ —ÇÞ,¹x§ý[żg¹S¶ˆ¼Ø)Š;%ErúÞåÞ„FÓÔ)'>Á*ß³ÜiËáNw¶u÷‰ÍÑï´!ãÌ4rëcÞ·¨Ô—p§Ëׄ$ÞR“"m¹Ÿ›÷Œè¸€ý—•ßvÐØÅK»NR2EFuIš¸$2yÔ¨ÞŽ5Bv =4EÒsÑ-‘‘vvv"cóðc»î碾²dÞÞL†¶ëܧqÍ:÷ üØ®ïc·ÊùYQóâÂùo£¿íYQœ€Û³ÿ™kâ‹ø?j4÷ßÏA¥R ‚„„„´š ZðìììN,²zÿ<Íc[ÒÞ1fuí!/Åíììö«[Ë}7€„„„Q£FEFF‰~ºî—‘‘‘ßQ·Ê{¼SǰOÇ;ý.Š@ °´´leÀiÔù÷:ƒöDFFÖ´‡‘|¢X$‡è“‹M­ï¨XwZ ,OÀòw™É\g»Ç j‰~Äâ ,&ÕÎÎnÄâ ‹ƒììì†xx>žmû玑;Ftî5””ófgg·oÏxÿ̓ÈX–––ûöŒ'!J…Ý*‡ñN9)žÝ* îÀጠVtÜv€ÛeŠ=¿iº‹iXô 9Míºy©·Oà7ù>ßJ± •ñü÷Xž¬VäRAme×/vvvO÷ fsˆA:ý”$8î´Ìà-N¾ÄnýH{öKHXËñIÙ6¢§U¬p{ö?-–yÀ9‹I%8—`ê÷áãý7²³³{>ž â“zr*õ×IJÂ>{öŒS‘/“ùA”OîÀG¸ÓÜG[óAÕyû(5ÑDrâV §I–çìÖj·p‡adbK™XÚR,õ<˜.Kw®_Ú³¢T&–®¹ÍÈÄRòÙz‘‰¥¯T©ÍÅRû€C¯Ò$n¢L,mÑh±L,}ż”:Ì=›ÛÜbîO†R™XÊ(oÊ$­dbis±T»ˆšÝ‰íY&–2çdzijv'†adb)ü~ż´±¸¡Ìa;d?vb©L,gògÈ0LBz&IߛۅͿ¿ +Ã02£®2±ôðkF{,æÑÖÞFÒ6biˆß wŸä“=lØ¢‚ü™<éÞÞ‰ù·Lq´'ÿî{’;ÅÑž|HzB—ölºSû¡$Í”?1UçöìzϾ﹧úO—ÿ±íÖ¸1V6®¿××Á˜uaÕG¤üwd ë£Ig¿G#’~~t¯Io¸#K¾û«½ïÂApgEqüV‰é‡·>S·ˆ‹KzJz-÷ÝïÃÇuþ€Ïˆ®Í6†u0änÇ~…âÍB Àd?EýÛ IDATN±8;-ÝgEqRœ5±œs§ó¨OûrÂq§ßØnq±F¾FU²(ïñN÷.¶)*Þi·ÁþìGOb '1ÐSžÖSžVx÷Ó‘o$ =ÁU=ÁU…w?æ·ÌoÞýô”§õøW4 RçƒI«Öô' 6‡­–Ÿ“±¿@~sUx÷kX÷™Â»ŸfVRZ¬Û¶„>àâ¢8ñNßÏéVªlƒÑÊ“_<1¶m ò[wÊaù’Ò-oqºURωwÊI ÇròcqwZ.ÖÄòÌðÀ¯JŠ„õ\÷$à¤TÛ-Ë—»•§YXûËc†YOY:,x‰ÿS<®P$F€±7¨­2‹°ô˜n­tZzͼÄÌBŒ0q÷{.0¬JÚFGu5êßýèé“£½LR‚’•P÷—ÐÀI±? ¹ó&bߨ™ú},€àéõr½O¹™ŒCÚéu$µ­ªØô¨´Ý!sRL,ï!±T”@Ì0k›ø?U«X¶Ê,t5h¥r®.YbfAš¸û=—Ó”*i7€®[(“C~j¤NÖ(€GkÚ˜Íz± Q,}×?t“X í4€gèR¨X®^¿Ñ¶€û Ø?ÙY±‚¦ºkjä>À£¶ß#§^ª·mc¦Û°O‘”`À@/ω$gÍͬán$þ…Ôo× u÷‹ÏRãö<ôÜ‘8/üÍš›YS%“úãÎä©r€ý“Ý{ öè`„[~ ©îÈI„Ö¦2nÀ‚¡ñÒ+eÛªß8ª¶‚’PF¤IeË o<{÷ÏŽ>³² ‹âðuT` Ù¦d“›,žž"'»µqSînp 'eÊ„ò¤`!i€á¿ïmRMÝã ½&lm ?ëvpJÝí45ñÃ.´`;’G=JÇ€QW’9“¢4^!ûÀy?îŽs '_ ¹>޶´ ®b‰IןŸ‡ÖÎqÚ:¼/wÇ9á„“o‚¶à\ϯÞÇJ‚*|Ývþ#M]#îímmáÝ»*€È J\¥) A צ»˜²]¶)8™ÒjtsíÅY+Tf–´N݉Úk{cß©k/ÎòMz\¦‚À¯¬íÉC:ÔIZÊiJ’×va=©×+“Óx®¦`_…À}Ãrú[¤=V‹ÉkWϰáI,¢óÔ “×|mæòôXäÈ ïÓg¶Îj(u<ø>^ÓaÞ48á„“2†¶8áäCaÀ€ 9ÆÉo­4ÿòxŠœìÓOT’–L™sDNÇ·“X\¤©V‹EíÅGG]ŒÖ\NßûÂ<ÂÚP>a¯Š:¸¬( ££ºJlµ.+ ršúÝ¥ýö°×Pi;+Mª3ñýª¢Z*@úG§QÜVD,dÔÏ:HCNß³–4(ýz££PçÞH½Ëý qò]äüß'ú•À¬¾XwàJlz‚Ÿe=¶­óÓ‘›ûëêYOí4†};ºÈm€¹ÔýÆßÌ÷oÒÞ¾Mû2;3#ãíËLúýŸ×žfgf¤¿y™™‘žþöUzrDFFZ‘™1f¨{VfFvfšçÈqþWŸfg¼ñêùèuvfšçÐiìd¸Oý´îØ#‹Q”äC¢ 2ToJ}gu1\GíÖD΢SJö…|\æÿbµlí­™€ìo:J.£Ü°û×f6öž];[ûR0““Å70fÆoÌÊRðù<¥R•™ö6';«^Ãÿ üÔ7oD:ù[fÎX¶fÝü™3¦Ot¶Þr2±‘*½G‡J5z,˜9cæšuk4¼†Ñ]4cú¢uëO§0×Í0bõúM‹gI=–Dü1oáê §žæ^>~ÇôÕžÜj6/Ä®]î]éÅ7|ÛʼÜÄÝ:ÒÁøcît¯5ë_)y›çNÓk9iÉÀz3g¬Z³n6XʺØÔ·å)r²)‘®‡~k0iÄ©™\¿<ää쿎Œ¾<¦·Þp}+Vùù€?õ»!±;Mao§¡Èˆ"E\FFîêR_tÌ=|‘gÕ¾ kËßl±6êmÞPÊä¾{f<>çê’`šê+±€ŽYÓF’{±qºÀ>r1ykÙi(r’IÑßäéL` U2ÏÐÖëÖ®µCCª¿ðINHÌa`¸ûšÓ†óUÜÂãA¼ÆøôFëžSå ú6ñ»“£ÉÖ†òI+ ÞÔ–2¹ïFʪûÝÉi¢=ùñ®¶Ý¼v^õæòé‘›+xVÕz;³c8U[ÒÁ‡>7¹µWh˜áØ÷r»ñWöÎß@êhítŠKx3 ¨;±5ëÔ-ªÈ¢q³ï8çF•,øöÒ  X!°´½¸•¿<„Ö??Øåã3kŽ'•tâö›½ïŽÞÎ>z+{ì¡ÇTR¯¾}^¼z} W¹©ÉÖ–½yû¬À †ü¤[E×—k|,¥RYnNvùòìóË2º>?Có_”§§>ÿ5-óÀÔOg&ª• Q ¹B¡PÈ=rO9úà ËÅ……ˆ´ÇÇw¯ïþ}üöKáòôärùÅGÛ¶›+•J-Ú•-,..^±zµT*566^ºhuàk‚ÓÖ i FÙU ¯`Ô¨QAÀ™3gŒ õÕä€i³“ìi+—ˇL>rJ}5ÉÿߨwY:f«kœó´Ï€æü²‡: "?ÈKžš,“³²’r;ž¿¯Æ•³£oÝ!j…‰º´pë+{Åâè.¾Jމšý.‹«§ÇZV‹¬¯H'ïãû„{·ÍÛZrõôŽŸ:Ëb±˜Lfaaa¿~ýš6ª—pïvW—¾Ô‘‹+<žžX\xàоYÓ<(n6®P Ëò¤ŒŒt3Ssìyêß—/–!•ÅÖmÞK/¢j[JÛÖDÁ&)v‚´mmwáK‰¿§Ü®W‡óÏÀvp??ÊÊÀy}xd½0Ï£J|Ç^ç/ÞÚèj¡¼!ÙØz33öìíâ×ý(' ]@žeÀÄ÷¥>ñ4o™Ôv"q2:'-ä™Þcl¶KK‹¥¥ÅÖâ°´8l-ŽG+ïS½}j°»iòL{¨+·EÚõéMº€¢¾4r!OTà )Ϻ’kÂÛË+ÍD¡½¶½/]t®"ýWÛÛ·¶WKéÊ×Î;¬Õ´cBT”R U_¼Î‹Év*²Ížhû¾Ö Ï{OŽjzQ_sâÂìÉ€3Ù©”å2¾>ÀÄ»˜eÏ©àºcž¶JxÄs/Ç€7|™È$¿í=V9O”±ú,&@¾ÿÒ?LX~›œæ^ñ­:© pŠÅ >1L†"“!OcJSÜÜGÝÜvõyñ"‰ò¼x•)FA?`å+¸L.“I¯^½ªËrEI‘˜œRñ}g1ð\7÷ñàæ> dÙS–îK Ûï•»dÚh€`ÁäQ ¯é/aEÕb›ÃbkáLÖåó瀀Às ú¦Ôz.ú-Eç•Fð£‚<Ð ¸ø€Zñ^.0Yìà sÅ3´‚n£f~wÓŠ Ý$ijeý׬ººfýhU²Iô>±Æ¹¯+ƒÁ$œÁd8l-ãÀ&“%—I‘­Z\PP·aczÒÊL ´D&•Npçî};ÛNÀ`f¼H51mÃ`0ÙZZ “JŠL–NK¹LªüëªÅ…BÎb±Q![‹#—IÑë’šô‘R>r™ŒÁ`2™l‹ÝÕ®3“¥Åd²LLÛ )•I%èõÁjB®Yhzå2)ãd!º@õårú”Õéd¸B®Kq… W(r)A(¨kà¸pÐSÈ¥r)+djk(äR…BŽ+dhÍRµÿÓ´iÚ$O㋵­Þ®?aqÏxñ´i«6?¢2š…–ºk°»iÿúܺcþRº›’JŸìhä7²~Ï+O©o³•b ’šð€<6±õH ßYmË9©RÌMG@C•ת5©c»N«µ212®#áˈ¡B#àuóU o@C4½Ç 10è¡æ¿Šæð¤msµw¢Ð^çĘÚlèˆn¹u¬óa1ætñÉw³ÎàŠ!+㮽‘Èp…W [s Çÿú<é0.y‰K^â¸ÇR\¡À›T…Ǩߙ®ƒå ¹G`ZÀŒÁ;F–e]89m0Ž+$¸B‘¥VyðÒh…B.ÎÂqEQÒNWì9Ç%¸¢Wìy,ÆqE1®áГӝr¬OCï¡óg<ŽDT²w\5|À4òz²?¦ä’ÀI©$/q\¡ø| ÇxÑ#WL<”2yðèÒš¨_JûUœ–ßð´»iµEÿ+3‹öYY=m[ÿ}×Þ¤×oÜìGTþ­ñync 8Dÿ¼¿Ñ¶RII2AØtØ(àš ¸|—/äò#t¸ÒËr깂?#$¨P.Ïpù—cÓãÖ Åòƒ½ÏÚ{»ðÅ-DpùoÅ„‡±©çæp?W·-Aƒn®™£?é´›>Ÿ ‚ ”$.}KÂFÕÙ Y¡èâ8t-%rܶ$iÞÉ —ïÕïà~W``+Ï~*àòsß ¸¦.Ÿ(¹9yipØÊÑJÙ º!.$"© /'{=þæ“¢œÄ3Þ §^‡È¾ÞKl‰ ªv)—PɆ“¼½ôøãÙGÑ‘ÿ'íA _F Uƒäµâc")<"¡9DÓ+¨Õ•P–ç"BPËásòujaÑÅqþ鸻#Ù ú<Í(±ãñ ω'ˆŽ ‡Š"’ôuŸvºÍÿ :Fü <{öìUþ%€wí½Võý‹Ã„Ó€¶mU_°ZNT¼¼¹·¹¹yûMII©zåªà½° --í©^³¾u¥'ÓYc›i}ukCÇ__Ú¥Ö77§qçnày?.¹´îD̹I¤EM×”Z—l÷‡¯:Q:u [+úô8åÄžsvg»É’›Ÿ·:ÕBßå»Fõ½öÍÚ=mGÌåÅd j3ú‚g%%èšÚNôO'—E7#½+©sbç kðé6-5Öù 4×nX³£›nr¶ ŠÏ+OªˆK-Måˆ t¶sÒÈ…‚‘ÈÅ.z- “ Ú&DE}åM0èEñ¢+¶Â>aeÞ•p[Ümél>B­úa16Uu;–Xél½_& ™²D$>/ä õ´ÔöITÓsÙU9¬y.3Õ½‰ ] XšH–^{:į>¯³šJò½•ŸþSÒ*ÑJôÝ—-Õ͵²À¤·`äXLu7lðî¡«ÝmO©»©gz#tŸÿ‰%›æ'Ô驊·…Hö];Lnñ^xð {Àl¬yú±Û7_V#†ìíéƒÓmUþ)óœêšê²'n)øÓ‹¼–]J~üéÅÖa°;Ž•'–(Ø: ­¦:juľsòõªzlM\ˆW½rÕÁµ4*Jü¤·|•ìÐ&I¶ü«ÛÑßäW°1À`é¬ü•nÀsâ‹o>àé4ÓæÌÜ‘¿Ò䯕¿CS]öÄ-„ŒP¬\FNŽ·’Åüõò{â–‚•Û@‘…‚Ó,Xò7Àn ò7ù{Ô‹ Ö¤çOpøDÁÙµ[C­CÞšJêüé¥7¸]áßɕԑfÖ"ÎL’~Rh¬óu ÝMËÂiwÓ*lmãŽÿ÷]¿­xŒQ™FÍBǽOØpZŒýè¦ ®(ÏÿÇE7½° …ëŽWIØÔ–Щå’ú}‡ËOŒÌÁËŒP«ÅpÙ« ´™B!L‘Je¯—cßh%àêk³ oA¤x¹­nóEcéeë_Q{{äßivJJí*ïû¾¨ò/¡Ïú˜Ð•}ÖÇ„®úÅǺ·!m’§ñÅÚ֗ضpt¶¢"“<²ÎŽ?›õaÿZGŸ;³'¹YäŽÙZÞlO›ä¨I~ZÃÆì¥Ö©Î&y¥„€ÛNÀ5'=¬¸|äñ–(Fo¾îÜ àòÔR¾¿%!¼Ú¬%_Ïna.àò_­ï{0•¸M σlÅ'—ß‘Ë'’ÖÛ:žpùJ—/àò­¸|.ÿÉlô_jƒV\~6ñAÀå œ\þ²2kߎ¦Ë\~~÷¾ë\þãv„üÑC¹DÀ³ÔQ_¹¬¸|l‰ éç!àòI.—ÿbEO"ÚãÕÛ ÚI‚-qAo^‘ð6v‡ "Ç­¶RB4.$ÙÕi ’!?#AÃd_hzQ_¶‚)êþ ©ËzÄ# MpùgÛ— OAx?&†=ÉúsÔ8Wg._À凸?pù£|²ˆ´ƒ.?sÿ(¤kýlg©‘þXŸ@;@Р ¥™ŽnZ!ª[tÓ/Ò¶Š{sÛ/€ñEÎ ¹yˆ¼î´}7*é6;ì†o/j×ImZ‘uÐ÷îC ~¢¶…”ƹ¹»»×3hyoß5ߨm]¼4¾ûÐ]‘W`êéÔãÍÄHÛ ™9+2r\M O›ÙqÝÖ"–9!&,Ìe„GbÇþÎ ‰XEj[ÝGnbh7!$™ í&áÇÆ©uZ¾tÊ…xÆ•UÖjÓ~a¾Eù¤vû¨í”ç*_gLëOœ5ñ4Öù:m‹ŽnJG7ý¡›ÄïÚ‚F™e‹¶mÑ —-Ú$_ƒ–-:ºi…ø¢›0t¿$ð©ßƒ[_8¼Ò:ëèê '¯Ñ÷)>––æwï%”<€ÍJ9Œ¢ÖQñþL¼W’3$(9™.û–Ö†8ŽI™3önNホ÷ã·Ch¢¨SwbR”’2Sç8úDéÄʳbBW¡ï%7?úÖh’wtõ9ÿVá0pµDy (%Ôi/ È'—E•×)ßò·ßå&± f˜´6mÏÏz’R¿•éêîÁo‰®E·®~íõ’âc"¿ÒÝ”!/u7w³ëjXuwSïì®W߀ÓN®ƒ4º›žWßøÀùÝM3Xå¹ü6º×~;üH*º›ŠÄ‘¶<—½Ýk¿‹]uË(}E‡\@~üÈûÿÛÜM7‹ ®ØêPs7}pðòíýó˹›Ö ~ ÈÝôîÍeŽeÝM;ú]¬÷þãîU÷W X£»é¡u®!GþVº›>N)OZüäGòXXÖÝtãÂ^„… ­mÑøu7‰´»éï½I$>GVçÊMòÚ¬¶aý¼¨ÕÁ7"ë°€6Éÿ÷&ùBâ9š|¨A&ùânÊn*úè[­ÝM‹1uwÓÈÄ©´Iž¶mÑø}µ-ô²E/[ÿ~?“| nzj\}QþyeQí†ój®4ɺÅ$~~ Ä5úFn.`u:†GãBµ7ûþm·Ü=YW¶Ûh$mu®Ó9 Qdöç…/ú…>–V¹IÙt©†ùòÆxÚ$ÿ˜äÇŸÍêë4­&™äiwÓòÂÐî¦I´¶E£i[Ó‰ÔÌ=;\xHÛêw9ÞÏ€õá‘·Þò(aÍÔvö[ßJ:F¶’Ù1WœÙ§G$ƀ݀iÀ„“ÏŸ±”J„’¤znïŠ1€g*ä™’ ’bOÛ¡ë{â8Iêæw`‡ûŠ IDATœ @Ði`×¹ÿú2D¾ØÀQî‘NžÛ·-°Ui8M‘Ô„¿/ÆxLá·~{28÷>,QõuíF:@¬ËÄT²•æ.¬Ï0êÃ4ê$cÌÆnHoê7bjìi»2b¨,µòæ&‘Â#šC4½Ài(*xk¢îQ[‰1à4ŠŠ?@-Œ=m'*ŒŸ7¨1٠™”ÇkÂóQ,y¦Aû»·ÇTôS¨hͪœôovì<¼$´Î’ÌÑ5Yâº3Éûüÿîå*еßs©ƒƒµ•÷g™LçFäÀ˜AË¿]Û">G¸t€þ;õ4ú9)µ-‡É {EVFÃÖkƦ¸<ê„ÌpévÎ/H99òL@ßÝGnê1áú.ß5ªïroÀºxµ[s·ÐxƒÔnŸZ‰ëΤÊ뜞><è­¢¢:5XÛ¢¡¿@tSZÛ¢ñ£´­ênÊiÞ=*ñ²ø0¸€zžD]ÑÇ; É-QI ‡¿z°?ÕmÍ¢QA8ôY§úþõÁ“V\í‘[€Ý´ðѽõu…¥ÑMA•í]ôÜ÷%½+"Ùwíà?¶¡H|C$ŽQ%ÐjÄP%¸—¾¼c?hX%™å• ªH(ºéûœ\‡@ìù¾dªúåiœ||póÞû¢w{Üö 8l’„Ðsíô»’¡lÒy”ÞU™Å^ÕJïŠRÕÓø®O“Ò¬V‘I¾¼ÜÑ&y’ôߘäÑájÉïj’¯~î¦Ó{Ôõ Ïùo¸ª M^¯• r‡ØvS—&ÞBoéM⯿I<-Æ€aD5É‹âÆmqâv>x´S½Wéf¢Lÿ£m ¡ÍI¶uXËmt-vÇžG[-W”÷7´lÍoѪ.Ú$*Iª,ö´-IéÁ2†Ýê×ÏÙ§ek¾¶*Öîù¥{5dÝßmÙšÏæOA…¨¯Š¸z´á–ÙŪ¸zAsš ß›^EöØ@g;÷($üw_ 5Î!êKÚKØ'L¤P@›äiü’&ùênzà}Ä­`—ŽÛ"íúô´fÈGoÏ™HŽ³Ë wR DRóÞ@ž¨óç ?€ÞGcɾü6ºS§lp?`:õÂ(5Ì%ŠÄÏ´ZÏFÿՏоŒªq!ô0®Ón•ðzí¬m™ä>÷=ò t)iäÖS¤hm|b¦ž‰& Q_°í=F΂cO»? ăŘpå¦îs÷Ñ?zÚ$O›ä+Ýô·7É“é]‘Iþf¤·ÓÄs7º’I^‘M÷¸ÿ,dµurY4µuÊ3ê䲨¡û Ú$O§wÕ¼I¤£›ÒÑMéM"´I¤Mò4~ ¶E¦w…r&yd£rÄ÷ÔĹN;·“Fz÷¹Îd m’§Ó»V mñÚÈEâg(¯*i’_7œÝ—g^&ìYq¬ 2¥¾Ÿ°;_§x}µÕµëÖ{ÅÅe¦×FüSßÖ™˜»éõOzê[3Üßy–‰äþºU¯±u&Ju†   à7©Ñ(ÿ·HÛ"d„ m‹m ò¬¾WŸF,ö“γ‚ŒÙPb?þãÍãýësïö:±}› †]PÒk£Ó{éêiý5úæõm”&ùÆlx'‡wÇßÛò×è›õ볩ÂÀùù-ZΜ$4]9úÖåø`Ïàv¨¯÷r8SÖ$Ïl:Ï8ÓïÖ9‡hzõµ`|ã™L}#$F–@e’?)ÆÆÖ’Ô&i’Çö)¤ÔÙЈ¾5FüüùÓá'O…ÉnþÑ–Ö¶hÐÚÖ÷ínZýý¯Ìh,Øg%½I¤—­*à·Œ%_£›žWÿ¬#ãyÆb(í«<—2N)«õ<0âBÑMƒRÌb¬T©TqJ©ÑM•Âë´€HŒ]PqW‹SZ†¬œjžéõ»W@u”M/"µs4誸}°Oà-1ÆlÔ/ ž•HŒñTÂ#Œ¾‡ÝÃ΂2Ö+ˆRÿ ÇÅV“Á`È„:LøgCfí®¢DO¤¸‹ý÷}ÄÔHFU>K=ÄmOJÈáÄiâ9jT”Ò• dîàvHy]òÊFPYv!ó'>*tzW:–ü¯ÚݔֶhüXm«†F7‰±áÖ†IqQô¦Gl sE\(–ü\¬×Ø!Ì::;«[p«¾fô¶!$§ôï ·E\ÊYP[³¨‡½ËGm}SIx<-µÉ5KÏeua:—™ª C”è©‘$ðÚ3Þ®–ÉïÁ­ª+ÔØ,@‰O–t›F dŽ"œT¸fÿ“’Ÿø¨üòkдSKªsàå™Ä¸lBÀ5nÓßN?¤C_Ñ|¢èA !íb¿wjïiäyºOѧ¶LèE¼ } !¼‚úãHÒ¬^C¦w%ˆ ‚xÛVô¬“݆B.ÿÉ ï¹æ­…MfÎr_ª$Õê9¶ë6\¾—Ÿ±¹yžNPIºYDl›ÚGÀmç5f™€Ë/ ™#à WŽ˜$àòƒ>èLâ'âí$ßt×YnëSfÚ¨úÒÈuw× l‰‹ îðÎ¥§ü”\»GÎØÜˆö+(=QHé6*®‘öCFÚQ Ïmí9t±€ËÏ&>¸|[Ç._)†ª/{—Cd;• yÚá7³&pù„â™jzQ_þωY / ¸ü§bœ"Ò§×±'‰7x«€Ë—ıU ¸¼Ç"r(Ç-ÐG4.âãyO(àšwäòïo_¼¾¹€Ë'žûh$IˆB¢$N²Êƒ>“Hã—>“XMÜM™ú€Áï1‹Ê¼6þ±ÑM¿–/´Ø¸=I­P‡j[¢Mò´Iþ3É×Äè¦Gy÷[t…%Åß-ÔØ0´]i!³Xó”b ’šð(@(pêÄE/næÔe®³Q%1QyÎ>`ÃS™~z µ_AîAÛ=$|1TãB@‡{Há^&çMïq,ôP²*’êjSÔ×°¶½ÇÔfC @ôvWl€=ÚZFÿ‡ÑÄIžLïZÞ$Rº¢oÈœú]Þ6L›äéô®´Iž­mѨéÚÝ”Žnúݵ-JzW&y2~<ºFVáò\Ú$O§w­ŽÚínJk[´¶E㋵­šèn*Jßœ‹…·˜ \-xP—©$!¸Ça æ–‰|/Ký<ÅtçèÜVÈ™“þYШ ×РñÍÚ–2p ‘ T¢¸ÅŒÏÕnL%ïàv(æÜ4·C1'@§ Kþ«À5}WO#oDÍ\SC£›ŠÄØ&g« ø¼ò¤Š¸¾"N©F.‘8UÈ3;‹]ôZ&´)LˆŠúÊ›`ЊâEWlÕb“2¸-t6¡Vý°#C렀Ʀ´‡WÊ“,½ötˆ_}^g5•ä{?*?9œÞ$Òøù›ÄÝ4y¦½GÔUiÛwò`k£¿ã?}µ$Ûz,¾ž®9–‹¥‰š¥ª" i[Î}]é'‡ÆÏB›Ú¦ÊXò›¤Ø 2sÏv^±”ø{Êízu8ÿ l÷ó£¬ œ×‡GÖ óø<: Äwìuþâ­ýˆ®P[!ÙØz33öìíâ×ý(' ]@žeÀÄ÷¥>ñ4o™Ôv"q2ŠX/ä™Þc£áÜ£_Ôµ£Àj·Å`¯«”Ÿ”6ìà0<é\ú2—Ÿ%e}_kTB‘6¤@`ÚåìCë:÷èuý 0jI)s(Ï šy¶Éá]ªÕк¹M v7å4ïvi¢³å˜s^ÍÝ;âï/ÔeB™<‰º&¢Ì@a.åÝ2 z@~¸ZÕ™“FEË–…Uz*hü,t5w¬Áî¦'ܼ÷¾èÝ·=¯Ñ2I’”dÖN_±+ʺe"ßK¥Ÿ§ª/9sÒøWŒ;yäØÉMš›19z·ž¦19zÔÏõ=µï—ò»üÇÅÒ^c9“£‡¿ ¬¼e&GÉÑ®ˆþü’ ÝM˃v7ýWm‹t€xóæM3cãô¬,cãÖYé7€Õ€aeb|ÿuVÀظuVÖ³aŒÿz”…¾³²”T¸1ͼۡ”<´¨¾qVVšußñ!> Oÿ»q/`7C\V&Æ÷_§C~tG-pA E6Hã—‡]‹Žªô®z6@ä“&ù„¸q×–ü<-nú`݉zäŸ €ˆ2ýòÂ18í2 c•æý!“ bŽ÷hŹ4*bÍÔzCy¦Àn*úè+4ܲ5Ÿ}~cä!¹¿î¼Ê3-”Å^ `¥ÙÀõ©HÛ:í2$Yˆt¥weƒ"‹a`·*éøöñ! Þùd¥<—Gy¿7n½|Mý±F¿|ö‰¾[8`®hÅÐvþÉe!»)È3¬yð±)Ÿ}ž,hàŸ,ér"„*¼Ç»¾f9·~Œ Ÿ¼Wgj½Å6‡a-Ù—Ú™Dž³8ÊÓ†÷Ä z ³÷¸wæbùô®¨b¨†ŒÞ?ô0‚XËÝ×ÿé‚„_xÙÛ} šÃƒ?ä9´ædwi´Š×quÈh£}[|ÇžçPLÝM‹B{]î³×˥Ά>@ôÛ]Å7þJ|l*Ï4ZŒ9~Û˜öÛ¢ñÓQ]Ò»Ò¨Y¶­ª,[c‡l?Ô»aë™äõÂi×Ô¾ÎdÊG6aŸÉ”_5LZu^µï¯ ¢Þ+j™JU(Àb)} &8MØ9U¾Àïõ;€EæZN#[vߨÙ8ÔcÀÈÆÁÃÉá@LL(ÊAY~Æâ ˆ=ýÿ Gš¸çl¯Q$Wi#Þ4xó[-[ÊÌ=n;×åà!Š˿ÒËr깂·D1Êstç—? –2%Ì- áý˜èÔf-™$fv s—ÿj}߃©Ä…lBÀå ºe+> ¸üŽ\>‘´e¸Q’¸|—oÅå;pùOf;™{È­TyqN.Ù ™µoGÓe.¿¿¿{ßõ(s!ôP.ð¬õF FÔ—F.+.[â"àš—&¶Qq ¸ü+zÑÏJæžh$ ¶Ä¥ AÂÛØ&ˆ·Úe2÷ 1Ⱦ(¹s*ò3‚4œAö…¦õe+X‘RPDmGÀå§.ë$l4MÀåŸql_*¯<©".µ4•#6ÐÙÎ=J#—Hœ*ä™ÈÅ.z- “ Ú&DE}åM0èEñ¢+¶Â>aeþžp[Ümél>B­:5þjù¨­£ïa§mL@$>/ä õ´ÔöITž­ÔsÙU9¬y.3Õ½‰Ù1¯”'Yzíé¿ú¼Îj*É÷~T~r8½I¤ñs7‰58ºiòL{¨+Ê,öÀ7ª'GÕ—F.¿î\¡eeE\ÔÀ§$Mwà*ŽŠ ¥ªW‹í5l)ðµ³ÃNk5혥CÕ¯ób²J†¬ ²*Ï{OŽjzQ_sâÂìÉ€3Ù©”å2¾>ÀÄ»˜eÏ©P6j+‹—ã@È >‰L@ã*Œœ'ÊØ } ßé&,«¶ë…ô¨œô§?“)G×Ôoj9xõïQ¾|Ú`ÏAލåôóLo¿hwÓ_´IžFuѶhwSÚÝô»¹8T„KS\ÔKf:ûMr€¨|zòhTm‹Æo¦m%¬éã!މ ê>t‰Wý §‘­õ;N¥œ’TÐ6PäzíˆÚ³ØÕÍ}”e·+¦þºñZt½rzÿÒ’É[No´9½îöP«Qº¨Ý¾™§^éèìÔè×Ú$V?wÓé=êú…çü7\U…&¯×JP¹Cl»©K“oùÑÚ®mÔ¸IShmÆGåè3@ 0Ï}LǺ8— ƒÇ·ãZ޶QüãWÖí3Ï/h2È ´šM?öÂ×én†œß²yC´IvÞðÑ-“D_I=9ߊA×rû?\,;êd$>zniåâ6zú¹S[ÞmÚ4~Ê|¯y«Zß4®^IQ!)ÿÂ#‘%ÅѾ^Û¶[7ÓÆ Æ®³7ÅÊ3‰G{´ž ùd±„¸q×–ü<-nú`݉zÊeú?ä9„«´-e[C&ÄïÑŠsiTÄš©õ†òLÝTôÑWh8¸ek>!ûüÆÈCrÝy16”g Z&íÛðRŸhж$YˆtUÛ“g,cPd1 ìV%ß>>¤Á;Ÿ¬”çàüÒÎ~ÇâW¿ˆÛitºÜYþü€úz•¦­‘Kít!›?qyŒ°ëk–ƒ±Å ”ÊJAsš¹È€syφòL™ÍFãé§²àd~lOžÚüÞßÛiôû†žT *òmñûF+!?õ…¦—ÅfÀêWÏÖXŽÇ?ÅRoØr[Ýæ‘‰QðÄ ;’¡Í/~Èæàûì´%@±r—Üy}qÜJQh/4®•]t×ß)F\ˆÄn1¢}ι%ïRGêÛ1›ôBãʳV'ž½üMM9VæÝ[-«Û©^Þm—užXºˆBà&ýd¯ÿaÖ6?ì®"¹ü¹p¹ÿÕ²†~Q*” "Rg§“Bžéhž)àÓÅIºzÖ‰ÕÕj^Ù8ÀˆîÚˆ¯k-S"õ®óÐd[0ê‹çì3´S_mô6*=E¨^…ùS7+˜L‡kónõ9^œŒWŠò.æãÊ‘ôïƒêÚ?‹Æƒ‚¶LÒø «lz"h|Ñj¥ p9¡À^µhü÷»B›Ábƒ*x2ß„gÉÚ½ 2ç4q›©6ô¸ßØØª‘±à ª±ä `(V½ÆÖ™(ŸR6€.€ß¤F£ü߀ÓÅ'7ÿhËl:Ï8ÓldJº<ìËKž`؈Oˆ± 2¥¾Ÿ°;_§x}‘ôU ú~Âf«LQºµ8ÐF¦÷4ÒÕÓúkôÍëÚØ4`ÝgÕ¦lKT®)ûÀ½ÑL’ 5¨ß¬Ö»E—T² ò€p÷†;Žkuê~|gµõ n‡gkÒ;Éq½S<ˆ‹¸XÍÇ+ÒŽSg£›EŠÃ¾…t‚aW+‡,csŠ 2›ŽŽÏÑ-?‡Ö]œ ±–Õ_É’ »^Cä2)Èe²ì{¡Ú-;èÖI±Xœÿ¹vå«•Ü÷Y<ƒZµêÔûîbà “U&ªƒ´¤˜££K?Ï¿öŸÚÀ€ö¶§›ÏHv³]›}”>9mikÿRññÞ¢×€k©pdM ™™îõõQÔü„àîs÷á™ÿ8õò^'/­qwk Dñ­ÏÁ¤»)J2ŠH¢ç¾è'¦øø‚*¾±>IÜÏÀa)`ÙlîåO6ÿ ç^Û[Vv€‘=¦±£ÞŽÙ Ò açÿÞÚ÷µ&¹PƒMæyS‚~âí¬m™ ükmrˆ€ËVÿÃß„è˜%Wæ‹%÷s Ç…@r)r0õÙH/„R[{OÀ¨®Œê»ÏªOÖ}Ksè|5â@ŸÄêÿs!p ä2©\&•ɤÜkþM_=¨v(÷Î¥÷¯ô 41áééAðôô41Ñ70LKyŒêËeÒ"qqQþgYqaqQIQþg¹LоgN™0sÎn²ÚÌ)fN™ N‘HŠöß{÷⣸(ÿ³\&)*ÈG,¾S‹ òå2‰²<ÿ³×ìE¨©¼ç·fzî—ˤWL˜9e‚\&]8EyQ”'‘JÉ^èO ý@u°Á/°Q!û€k¯…I?¢ýŸ°}Ý;ý•OÿúVˆ\›v‚Ð>0G$Ñé¨+e·w"úLöÙ¹•0eúLW0™,&“yòø±)3fæ!öyž³¡~øœ±kûÔyžsz.Ú^ Áã®<…’Ïðæâ._²Úr×&»/d63kªuë Åpßg±`Ǧ9;Ÿ&‡÷¶7l6hÞü…kvlšÎàYÌ÷ší½Û—͘·ôÄ®-ãVû¸ËÇ_´ëš÷¼¾„ø1pÛ3ôm¬ÙH¸þmðG}»Lœ}ç_«y›šzÿÈA^[÷Ç-Xê‘Ñ¿02ßO2N®>ÆPù·@J0ÛHÞ—0¸Ù†Æ’Äx÷QcÙl–X\¬««%Õ©;~òô´ÔäÚõê#ÆmË1ë:'ýsd³,4ÔeHp ð&‰Ñ[Q³µìX5—Çí\„ w¡’-ÛV-\¼¡øÝÓw/“ XZ,pêGÈ¥z‹æÎöÞ±UÞ:öìYCµž=Ø:¶Xr¹¬;äRúÅÁ/†€Ëgü½Ú¼éâ•BÞ˜Óbl¢Í>`q ¾‘>3:V=¦"ŽHœŒ¬õBžé]1æÀ3•*™ö²„ú–"qªg¶><²^˜‡­K3¬‹[ûû/ŽYµ]+úp¦+Ïtixd½0Ï£J|Ç^ç/ÞÚèj1‰‚\÷(¡Äw,suð@#èdºüÿgaŸë„(÷È”5ŸFh-ÞqwýàzÛð—Ç:”O<ÍÛ~RÜÇÙð¤HB¥9éÝå K®?sÿÅ1+“„oÔ/6zbgÓሤpdƒõÖ#Fh-9˜¹«§íÒ2U<~é³qíâ×} ]ï¸[zwãÕߎ#Ø*ä™®ËÄ9QʧîQB‰ïØ5‡“@ÛrÖjN+gL:öü‰§yÛ^ûƒ¦vxÖ«×YÕbBžé¹Œ”¸I]n¶ù €g…æðDænl*e_†.¢¼H!ÏôäóÒÙ}ó2J°i¿ $)l€ËÙØz3³ØO_ÿØ"=+ò‰ÒÍÍæ¤%ÅÕkÒÒ ^#(ÌÏÿ˜óÁ¤¥Rmýòyºõµ8_N”ÃÑ‘J¿L·Ô,ÿOâ”kVBÒ\hi…Ö¬Ñúvœ¶c¥wòµáµî½Þ 4Y•†Ü€h1Ö·ˆ8ÊÓ†÷Å€ˆnì$X#¾;¶Óè—Ïž£÷†•;ÕXiÖdúÒ‡<‡‰Feâ…†ï˜+Z1´²äå³çÀlìÖÖ„Ÿ·©¶9Ÿ}~õ"4F4…ö÷tÍÁi,j(QA ‘‚". ¼ìí>peTÒzg‹ CÛù'KN>8‰B‰"aÐ+Åå6º—FE$͵fÓQ³g¸¬´Ì™· RŒ«*õ5gŸ2bdú“ãâõñÕõÔ¥ð]@‘¤„‘Kó`W2ä}Ýä¹N®ÃÐô’}yO\~|¥9£‰êÍ!vÂ[OKúòŽý aHx’˱§]П—JU’Œ­ä¸Ö6³€€Yéãã¢QðXéÃ^ö¥–T•4sÁñ”½¨A·…;G/Û;aÕA‚ z¹—Ñj¹z111GŸ¼uNDĦ + <és~¾T"Á ¢Q£†ññ÷©¤ìœÜ›7o}x÷.''GDB,º´%7xCnð†¶ndžXL’ôôô´´´2Þ}NMO•J¥OŸ¥¤©“'x÷áÂß Ô­Omp_DfüóÜIöõòÄÒ‡¯4lÒ+z®,xum¬¬¤%Å3Æ™³éœºâ³é·"ÚoÐÈkT§.G›“ÿ¹L§µ]&×vÝõ6öY½–BÂ50¯EàŒã>Î*O•çæ*Äò ö†rƒáÉ´"?hµ"I,‹Åb‘;DDRƒTZ²nÃêuVäUTX˜ÏápvïÝQžT9~}ŸÒ/ƒ®…(ç|c Ru¾yÈÚ–Ó%‰~_-Çr±4qùßm= _×ìªVÕOîþ5¯× iíØxêšÂvz µŠ ‹©$m]Þ»wïpw›6Pôðá£÷ïß³Ùl}}}…BÞ¥K*©¨¸ÈÜ”ÿâeš‰Ä‡œ\Ãô \"–}x'OÉJcè­|½x¥§§W(.ÀDíÚµz÷,Ý“zÍ[€ àqõ¶lÚ@–/L-,Áý&´Öô‡ž=lذÂÂB`q8ãÇŒv6Tݹ.ÀŲíðA¦l¹ò¿eLf™}þË]‹j3°Zsƒ+ºq™¯Óš˜4W+ü|lìˈgÍÛÔa­VWÄŽŒ|ñO²õyõ¿¦}ÿ`âÄ‹¨¦¶M —ü£¾Öæó j—Ì*ýµÖ>ªÿñý]ž"8p­Y^^^€HåvÊŒàˆ tÍz“Õ´qc5º(OÊxó¦e‹–!aWÍMÛ¨‘Ô°}çÎ…óç“6ø¸fUѧô§Y¸5åˆF®4*0â”®YÛ¶{¤§¿Wã3S®SP¯¸¸80à”rû*ÒóçÏ‹‹‹' @¡Ptì(üW‰ÏžÕº8p‚Y,eå‹Y¹…¼SJ}*-=“ºƒ+))ic®üƒtábphØÿÙ»î°(®¾{¶° K±¡"`IX±Ë~v#¢(vƒ± ˆÝ{MŒFE˜¢¾‰%[4FcŠ+lˆºØÅU£"EUÊîÌ÷Çf rÏÃ3ÏpûýíÎÝ™³gÏ=þÕô?,Yj!“®_³FØæ×»îg3L½êÖ®5¬½VÌyŒ½§<":ujʤ ¦á:y!nââ3?s¹zùܲåk¤Rƒgý›Ím+É\‚Í\ ñþ­ ·©ê`æ§š©‹ºâeªÝÒÓ"©±ðíå÷ÝãNýÛúxœñ«–­™ß‘eÄvK¢LL{ù¼bUÇuëÖ‰õ?~ü³ÄG6¶…Y,Ë®Y³æÖ­[$ËèÞ93[§ct¬¬¬Ä,#ÒÿÚ pYyƒ[³Ê¢¦4ðo@— &fLË–vZ–h3Bäãx ‰ãy€Tý7 Í]§žÙÆmœêÕy¥\q¨c«)„Ìw–ÝšÃò9¯7o4•«Ö ˜i/_$?{âè\›eEú’ + ™k9 Õ” šÒkJy¬O¢R>aa!c´ZFÇŒ,LqÝß=R-øóÿëÒ¿hQM)Õ”JSúmŒH$·%þÆY¾~ƒøú 1©¾~c&¬¿E—§<ž@†aṯã'Ž?Á0 Ã2ÂnŠËñ¿èéãFþ—®Ú¾ì»ÈÔ©#³€¯ß`°o|‡OÛ=e0t/F}µ\Ä<÷õ 0ÛËö'Dbqrüc0š½Ç/¼RG†_yú$6êäCƒºÐ{/ü²/î¹.þRDHh ØŒÄ3ûŒ?ÚgÑ"±`¶ÿuä¿3ûÌë½Ç/”Ð’E5¥F šÒܳ„¼ï·1{¶ûÇ#±Tleg¹´ÁßIòž5²X‰3OfUªR.RvÖƒ»·jºÔeY"‘ˆeY‘H,‘ß“ªVsŸ°fÜ–ø‹U×_ Zµ=ñ¿gVU÷~ÿÅç ×úÒ¿šîŸg×ï\.Ò%ñÑ6Â_’´ªzùàî¯-ºöéqèïêÖ¬¥M{ 7Ñnß¹¯v'ßgOÒ:hO&<ÍlÚ»tiTJ½~Ô¾qOaƒb1›rCÃV¶«è˜x6äÜ#tíÓÝF^üG÷QM©¨¦4¯çÁše!³ÌÎÊ´Y², –Õê´2­6›e©ÔB«Í¦k–ù5K}ÓÑ¥.XæEÊK¹­½¥…H$–ˆ "!%e¤²Ñ¿Ý]?¢ŽD*ÍÎÊ”ZÈtÚl‰Ô‚a±X$‰¹D–e TšŸšR™N— –•H¹ê«ÓfÐfI¤²¿b’û·¨{`»²ï6K,‘„ÝÏðª-L‰D‰…N›%µ°Ôfg’#©^"k–€8¸ÀM¥ùÀ6ZÖhïëСªà6çöˆ×«4£5j~7i±]cÕ««Ð›……¯ýº¾»«íîÔÛV¹øðä-Tµ\ŸE¶ªÿdɧ¯mæGCîb/®é«:Ö•HCT/66Ÿò¿¥_¶äã 'ÿ‹‰`÷ñ¨–›U\Ïó¯4j•F-vìy^½â*dðÇSÔ]X“¾Ä•šëçu‹ZóäÙY™ä¨ÍÎÒj³Á²ÙY™,ÃÐj)£lR X€e¶bE{™TÄ2 A#ÁÌÎÊdY6;+sí0†Ñ‘ k³³X–Õfg1:­6;;'‘aÈRE`Ô—N›EvÎÕi³V§ÍÒ¾.dÅÑi³>SÚ1:mÓÞ¾$…Ñé ,,K²´Ù™ü±D,Çe@ŽV8ëÖ6YáäÑñ\2£z¸XY{p{Ä[ÔÚÖGt‘+öê5¥LÚõWâ òŽ«”òz­äXÐÅ‹Tƒ‡úÙ×?£‰ömÍÝžM4ÐgM‰]RGöm‡óý’«ÄÆ. YI¡wZé °a+”m+ž×¿ÑÚ™$ñšRiïF^ êæ>íL À‹à¤aË›µñÜJ4¥c&þ±µR®Ý*)öL®Õ­JlìÒIÔJ¥\!ï¸J)o@¥E++ëìbò2.k¦îüxYFçTçcþŽž¢p šRŠ‚=ƽ‰/P­‡êµÊî¬Y–p»žüO¹¬çýãè_Ð Š®\ 󪔢Ou‘¨X§\¦ƒS"(«>¥Î“ð«ÍÿîT’Ïa¼¶Fÿ |JC5o¼ä¸›r¡ÔÅ4-à‚º˜î;X]2˲‹úû°ù©âããããã³`÷}öÀøøøä»lŠO_Æ0M˲!AÓ…)?ùû°,›™ñÇ&g5e™êœ*³O›-2qo›õ¯Aãú’>ƒjYŠ·¼Êª¦4ùÂe•&òê3NÌI¤=ß’5š&v@¸‹ýÈ‹j2 >K8x°÷8C(×Ñ«)Q…Øÿb\,—^5à¯KšCÝD?yÉ¡W¢rŸ&Ãàç%÷^>Ň$ IDAT}g¯j"2x•:ˆ!^°gr-³"U :égöóG =,êÂÒ4ؾº¤ˆÖ,†e™¸­“,èß—Íú—¤äöGªìß¿}ß¾½^fÚp§ï –ú÷׿¿ö¿ƒy×5þc2þ¯ç(æeË2© £e™å×_g²ÌÂ}Y–™wòù´¾ƒ…³÷ï߻ԯ/I_#¤¿Š¿ÿçØ¾™w7²,³}\_~FY,3ðÛ3£6ÜÝwˆa¿,Ë2¿íÚ±àóoFm¸Ã÷β ™>“zš?N`FGz'ÍŽÝr÷«¾ý¡oSXrÔú¸Ñ}‡Tîè/´Oÿ̾ʪ¦4ãÚ>¥ÜûîNÌÉ=ëöj±(ŽßÅžCÍ–S¼³'ôÀO™€ÄpñÌ>}{”OäHa Óöí@æ½Ú`7 -‚ÓètZNû±ÿÏ—´ðíQ}ßʲŸŸ&‰fÿôUt £££e¾p¶G¿Nö±÷dyT4ý{}g_WE6#ozùòikFûÓžS¬N«Ói}:U¹x:ôúʯ:~1_Xþò…3² kHzKQ¼:C»ÿÌ%¢<W®ûÅgÒtP~$ »™¢ÓiÙ¦ÇÀ&`tU¡6²ŒN§•ˆ%íùŒŽï}ÿ™KdúŒu£ó—Uä\K­~ÊH»wéR,é4û4dU<ðxÿïZÃà€eÀ2U¡¶_ È”Ÿ?PMi©…J£n.W”*ª£p¾Ïž<ªV³VÙ}!,,,³³3‹dÊãGòýÆOeLpÞ?Ê…¦töôÆ?.¿žÿòr@#üß²2”zZÒŒ±Š½Ñ˜Ù76üXäkÖÊ?¿§WEIe¸[»*­]-éŲçÝ­]o°l«–Á­Ú¬w·vXÉuJ­zîÖ®î¶mÿÏÚÕݺ!˲îÖ®ä˜É²­¬]Ý­]Ý­]ÿ¯F_V÷ÚÝÚ•ewk×Cg_Ø›œp'[ën×Z›tËÝÁeÙOôYÇÔi!S}&þr&ýÞiw}#¤A’uð˲ìÿ¹Îa#'¸[+Ü­]ÙŒS£g‡œ p·v=äßÖcÐ9wk×©Ž®×ždu²åZÈb“Ý­ò#$lÚ­½ã{qÃ0;ø§d$¨ø,k×;?û“¾”=’®ÝÎiŠe_ï6凰uý­ø)»[»ò1¼—¶Ô7Ëõe׉ÔFcÙu6+á’{¥^îÖ®-¬]5ì'?žBü5µþ¸ž•sAIÓÛ·o—7ž8ÿS.ªàÌ؉?~Ø8²g3'm3Ò”‚ÑB )….)7M)÷ l¢)·ô6jxúÙ×?“zÄ·Ûth.òšÒqKow«[{iHNíÚ·]Ï÷K$YóJ¹‚yB6,á4¥Ÿ%ü¾öðs’4—5n;çJôþ´bÎ8±µãŒoÈ;®êß¼‡%/©‰ý%Äýw2 >K8xÿ]ËÇL °ýÐmÓ"®ù΋!}~¶ÅÛ{?Âd$µ 8ëq|úéî{IJô̧|wpÉ)Mòô.#WÜSÚu@o4 2/ŽxªÞ¬ƒ_…žÕÅdð»&³ÉzEbȇ××Å­m}~ÊøöwR\Häö.$} ZYa4´RŒàÏgŒùA'.%#óâ¸ÑyA%‹¹Þ}¯ûÀàfßßðîm.ÛûÛ…:l*·E‡É‘ÚÇÜ÷ξë CÇf?Þk«ùógƒwrGöõ“øëÜ1×"3áÎ)Ó—#ï}; 3JÑÄG¼µÌëëËr+SHõ Õ”–Z¬ë[±Tm%]8Mi\\œ[]1du‹Ä¤tGûDÈê ëAÁް(Á‰Ÿ˜êÕueø”.ŸNšÓòûEWSÔ<°få[¦ìæ–w›Ãw%<ûõÛë¿äKv˜>+AêÔ"›Ä¤tGÈR“éGÿâ×zl `ÉçŽy¶±oµÑ!Ï~ët[dßMÙ›ÛÇ,K Ymün©‹/RÒ‚0ȹ¥À¢o‡a!‘[„)ÃIús)üy¡Ž vëd¾LÁqô¯?èšEQükÖÛ.à ùŸr9 Î;âè_”UM©¨²—*5¦`µLv±Ï9êP“ZîSWoW@¯.-œ>2CéPxéӞɵéŸªåæžäx½—e‹ù¦¹zA¬€×ra–Ù îT«sË"?w7̲[óû—ô²¡(YHa¬)máèäp»uÿêÿ©þÐͨ^T[ÁW«¬å8xS"Ïý7O}ÖPìâÏÄï¨!T‚ÇYœ¦tuêöíÁ¦ŠÎ2<΀àõ95v\¤{¸•¿ÞHƒÁ)êIú}wxMéXïJl,þ 8Ú»A«ê’‹Èñ)½=œIgšwÞº9ëË´ÖèNR?Çñ¦.±rÞfÒø¥†6ï¼ì½ QCÏ{Ñð>¥~Žã-[Ì?jèÅs-gÁÿÊ¢ý“"q¶©‘Oé¥èáV%#†8)ù”.ª­àû2ëSªû—»£Þ;£î`~SN{/KE{Rëþk¨NQ¶ÿzŸÒ © ™W¥¿¯£–¢ÁÜCíúö;êŸ.ÞUfšeàSªÏêyòÄ.O¯V×à ô{ýJ—n+)WUþ§\TÁ±úrÆOŸ‘ã\÷Ô§´üú”¨l 1 æSÊè´ùÿ³ÝetŒµgN"9uZ¶ÁÆê›…Û¹sseJðÏjÁߌNˈ\ä_ª°hãwy–ѽµMYëÁbk–etŒe+}¬Z1ûrç_1—NÇTìeQåª9ç§FqGÆ•êqGÓ~¹òbTom˜¢•­6óå]F§e+µ}{§ ¹–)ø¨¦ÔÔ§4÷,ÂgEO®ŸÏÞ-'ÈüÕ箆qµ¯í@+¶·a45 }iœ#´v]j§ª€ìÛìºÔN‹°0-S‚o ÙØ£YëzØ|·çÍ®KÖƒ‹ãSWÏÌ£ü] ã*ËW´¶jŠ{}siÒD¾dÅqŸ¼ÜS/Ž€Õˆím˜Ôtº’éKûü¡=$ˆÈäsmÛ8¼:ŸdÛÆáÕÕzx}ÖŸàõsU®Ð>€C$í²…íÛ-Ù6kLNŠ0칕–lךWYeI£±:Uù2ǹVC¨O©¨Oé[9øs ¶šßÓ°ËEå*PùŸr9 Î;"ºÍpêSJ}J ¸regìO«-p•²þ—ÿ)—Ãà¼Û¨O)õ)-(ª®Œ*PùçqqUËÙ×ùùŸrQç_¯v‡“ã\ªÏ¢(è³aôYý~¾öC/™Âá¸r7®‘ÇÅ•»‘#€¾†í?8¼sÿåá¡Û˜¬±U yq†/×,AÌõöø.4 Ù÷º>Z#éÔ†M]->Ê‹ŽÉêjÙÞß<;´Oº[¯ÆS¢ÿä4¥Îþ<|×Gíþ‚Àf?Þ'±¶äêÃÄÆ¶WÉ9¯)ÝècóäñýšÎ=y|¿¦KcãW«›™pç¼S=OA €tÀÆô–áµ |Š&>BîÒ1ï2¯¯/³n<Ól™B€ÓgQP×Çß[ˆm>"ŒobR:9çSˆ*Ô ÿçoí“£b«:³m„e„%K ž -Lé1}Õø–]÷6¯k{,øl<cÁ:›`÷êÁëÂM_tyÿÀd6­íh6íbM—ÆähÚ))¯ÿË©^;Ãö‘˜m#L¶lÚ Ÿ"wéwæÍÓø'i¹•)DîÖ®*Z)WN',!»Q≾“Ÿd]]ª°„÷æƒ.ç¿Yu¥M«ŽuUv?Áÿ;«…Õ’‹ÞÔÀü.ö€¨²×å—(í[ –É.öy ú°O·ø›­å>ue³˜œ}Ù«KËÃa1§Ì˜<|¥*IW¸`ÏäZs¢êªcO¥|ªöwThL¾ê¿B³l1?óâ"£\[à@¾·´ñZž>Ï2·Áýt•æ†R^ß\Ö•æŽR^O˜Åˆm—oæå7­@¤:xœ"wŸU}JE9šRUôp²‹=ß—i-Þqtêâ|ã¤Ø{ñ{ÄðšRö£'ƒ÷¿²(nR$#M©*z¸Y[Ñ<¦l¤)öeVSÊŸïQ7'ÃÞ‹¯@uzZM)?/Ó î]k÷0—e )Õgxv"æçMô²¡(YPMiyÖ”V¨m+) ¦”^3¥ßøzñÇTSjª)Í=« ü¶±e w6M»›O¨ß¾†í àiÝ òLÊÁ¿gÞˆM/§üïÁmóSl™B¡”+Þÿ‚5¶KU3·o®)åŠw\°ç‚U )¿Ë‚@¸`ÈmU*tVÞøä›e/â"OÞˆú%´.åàß?oĦ—v^Xàæòu R>d›F=²ÕjHd„ƒw´G&38ˆuI d*Í ÂÖ+åŠhÚC® `‹í_JØ®´mJˆÛ °p‡Z{ÕR·]å[å“‹÷6·hø­êÙŽörÅì°p‡^lÏêúõ’žlû&ÁD\tårFðPñ‚>•Ð\1÷Ò¦—Êî¡«z±ñó…)ƒ,ö|ýStCà߀. @L̘–-7ì>µ,Ñ&f„2ÈÇ—hÙ©zlsשg#G¶q§zu^)WOQ§Íï|ïóŒà¡‹þ²ºôx§R®Pinµ”7ЂÂ<¨ åàK 2èS*vÐo6ÓðëCnw‚º¹Û¹hJ•rgF*ДBï*©Þ–×”Ò÷å³(è}½Ï*Þà”<Õ”R#<:x=×o±O‡Þ2<%b&˜T&ãõƒÏ~ð0qm/Í~ðÔ§Ô<¨Oé»û”FE†÷õ_·qðuoïùQoåàyX‘ýp3ÀPþý{ѤDÌ,K<Ê O©æÒ¡Æmç\IÂޟV¬Ãý §µãŒoÈ;®êß¼‡%yÆþâþ;Ÿ%¹æ­eÊÁå̧´PêÐBÖÊÿ͈9»Ô·Üç+ú¦¦(|VYÔ”Š«÷#£'*ÊÞc/ýw’ôe¶¯½˜Á÷HjY˜s#M)üùý½V?WsbNy •F-ÕÃ@jXË씉]*¤N„—_}Ž|×Ш)â¤zQ£–‹ ýWùω¸ëÖ9ºQ9~^ª;sœü½Û’Çêé·Õâê½sš5Ͳj@f˜59öš¨2}|.(w<Ê ¦@—_N2zå‡}Íkt"}™­Å«C[Øuä{$µ8M©ØšÈ2 ˆ:T_K,‘J üí]ÑǯéÅœš‹;=›hõÃ0€ê‘Ç”»UÊù‘^}_ Pɵ†°yÇUJy›F ß9·^Ï­J¹B/ˆåj}áÖøÌÞ‚Fض?¯vÃ*ð^TqGƒz­\À$E“BÖæ²ÄÕ”*K ²Z8ƒM¹‘ÿ÷Ö¼˜×=<¿ÀÛ8xŽÊ¸ÂSþ=sðäçf_ ”>žjJ‹ªûß*?ZP$M5±Æµ×…¬ûåõOõÂû.M.%ó“UP>kÐú{‰Çoø¡›[]1du‹Ä¤tGûDÈê ëdu˜7/ÔQÁn]ƒFûx7·¹!2Ï—áŽ%jípbªWוáSº|:iNËï]MiP3ok‡ü°TÃw%<ûõÛë¿äKv˜>+AêÔ"›Ä¤tÎÚ!KM¦ý‹_ë±A‚€0€%Ÿ;:äÙÆ¾ÕF‡<û­Óm‘}65Ò¼µC–²:ÚøÝR_.¤úÀ¦Ad—“" »¾LßÃ8K¾î¾'—2‚—Ø\™BñYtÍ¢È/(_äS¦|!Ö,ª)5Õ”RP”>‹jJA5¥e厃§šRPMi1CÀ²<é«O!¤,9ê)ÛôÒÃÄð|ž›æRÞTSZ>ø¬–#˜Ù4mÂ’BHÙ¾†í;¾ŒP¶‰ÙpdÕ†L¼¢¤&þásð¦Œ{ùäàn;rÒ¹RtÍYÖAæƒ÷T+ßۥ꺰äÝ3¹çZ¥tÍ*G |ñã੦”jJA5¥eˆÏÕ”RMi1hJ)ÞÊOõYŪ)%è4éÄÚɵÝÜÜ4ñ2æEíaäc’yq\\¹ ŒŽÉJeÜëÜyxè6&+ElU'%b¦}Ó.âÊÝHIAùÀ\oïB£}¯ûà£5’NmØÔÕâ£1ïøÄ·lïožFÚ'Ý­Wã)áž8>ËÙ€‡ïú¨Ý_Åf?Þ'±¶†âêÃÄÆ¶WÉ9Ïgmô±yòø~Mçž<¾ojí ¯›™pç¼S=Oá ÁsL¦Ï­ M|„Ü¥cÞe^__fÝx¦Ù2…6¤(rÕ‚~Á \°ûªT謼ñç„î'ƒ9ïõ# €Älb„B\áyS”I&š8Ò”ʃ¼Q™ÒîE£Ò¨•ra=²%žè;ùIÖÕ¥ Kxo>èr.ð›UW s¯q¬«²û þßY-¬–\,0A|vgÇv~¦éΓ=îãW[²ó!Ù—+׆ñVد„ÿÛuAZ9 Õœõ–·Ë£nõa;žnñ/¾‹'×J] 5¾ý ¸ ÞÖª(¿k£|‘O™rð…¼Ï*‹šÒä —UšÈ«Ï¸MçÉ‚Õãð-Y£ib§œ’ö‘Õd|–pð`ïp[ºŽ^ €ôµS@ŠóØÿb\,—^5à¯KšCÝD?yÉ<ÝþUÎçŒÉ0øyɽןOßÙ«šˆ ^¥âcȇWì™\‹Ÿ²2@uÒÏ,7©†uù½ÂÚ Ô¶eeUSšqmŸRî}÷ ·é<·÷j±(Žyr¬OŸ ¼¾fË) ža³ll¹“›2Z¶w7N×Ò†ôõóo‰ŸôhÉïæ‡Á®uæ­«ø¤$ïßÂvÔñ$–+¡Möì7 ÞhBý*€66~b‘ˆ ~ëª ašÛ$†|xgO耟2‰áâ™}þúö(ŸÈ  ¦íÛÌ{:µÀ*oZƒ¾ã?HPþ½‚jJÍ?ÒjÔÍå ¦4 ©φý~¾öC/Yd›F=²ÕjHd„ƒw´G&38ˆuI d*Í ÂÖ+åŠhÚC®È"£±k|)a»Ò¶©JsG)¯îpbBk¯Zê¶«|«|rñÞæ ¿U=ÛÑ^®˜îpbÂË€íÁCC]¿^Ò“mßd ipÑ•ËÁCÅ BúTBsÅÜK›^*»‡¬êÅÆÏ¦ ²ØóõOÑA>º$11cZ¶Ü°ûxÔ²D›˜Ê ¢Þ`¤êÕ¡Í]§žÙÆmœêÕy¥\q ”ƒ§Á)RäÜg•9M©ØAOâ4üúP Û nî6€^nJ „-of ½Ô ,‰˜“ô%©Þ–lUO›”Ï¢ ÷Yô>«ƒó¯×»Ãɱ¼ÜgQP9¶¸'‘Íiâ#„¦ãúv&4#˜Ÿ¤ S¨ yÔ(Þ=YM\eJûž¬eѧÔyÒ!~µyÍ‘$ŸÃx+lþ·ëŸ†jÎæ]·ú°ÅzñäC©‹iZÀuÉ®YŸ|³ìEüCrnÄÁso>›€l’.$ƒ…)”ƒ?¼›^š9xª)@5¥Å‚:uêŒmõ‘ðFvI ÎP!‘[ SpM";þÜ‘ìVÁ§äK ]W†Xv°žWàæˆ=y›gå r:zj½0%ò—RgˆløàÃÒzòNƒ€ÀR˜»±o5r$+ yó,}y©K@Ξ üKÀgnЋA™BnµLʈ+Tç̳̖)ôšE5¥TSJAQV@5¥¥†¦”ƒ/Á¡|Ñ ÔiJ ·‹}ájåf¥­È]Sš÷ fUšÞ^¼žë·n–ƒ1“}ùWçÞd7Vý9R"fR7bÊK;O}JË­OéöyíPl>¥Q‘á}ý×çÁÁ˜ô`"q¡l¢Žý¦?§^47eÊË€þòµiø¨ÑÁض“5šuýgWK<ÌÄ…‡‹•µçØ«Q÷—+`Q»qù«7-íõúÝáDºG¯£šˆ)­ä¸¨¨b¿kî>7J=´yÀýÛw‰ ±3W=Þ+÷Sc›×p¤ŸÍáàë9+÷©7ð$N2a+”½§©æõo´éFæýÛwˆ«÷óš79lr§ê»²Ù/¶ ßžtFß—i­­—¶~âÈ»Êp<è`‡áÛ“"ã®.þéZøQhãeQöCâ]Â͹O‘.‘ŠtZüf¿ªûÆ;Ø‘!™Æh÷êü… ¹MÀžÉµ®ÑA›À…bÒ— 8µË«í œ[}yÇUšˆ)Rà‹AízÔKpÔ/óâ"nð'~#µlÈÄåJÇé¤J`Û A1Uɼ$m‚Þœ”ÖÔ8y÷¬ÿîøÛ¶«4`Uøï-ׯÄi¡Q–ع+óh[ R[æÔšúï•AUZǽ¾JŸ KÛ³aùÝGºØØ(êSJ×,œ2Çg•gPŸRŠ÷‰r·'kYÔ”Š*{©Rc VK }+rÔ¡&µÜ§®Þ®"€^]Z8}d†Ò¡ðÒ§=“k)Ü=MÓ>UËÍ} ðz/ËóMsõ‚X ¯å¬)M-/»}Ä…U¬›ŒÊ-‹P“†Yvk~ÿ²43Ìqðü®«R"fêÉÚtîCLÙwÊÁ3ŸîÑ}ˆ0¥´sðeQS*²¨ØÚuô*ÊKÿ rú2­Å«C§.Á7Nj€½‘’ó«Q‡’Z–-æ«4êfÖÜàý¯,Š› àpX €CóU%qÒV³Ð<¦L õõ»|xù¾\t·¤†íHêæl(v IDAT¼Ò{gÔÍɰ÷âkPB¶éáÓ­~^•þ¾ ÁÜCcšT8úêÔ?SƒÉëk;`.Kæ> xQÏÊ ëÀ³1?oÊÿ{‹§™aŽƒO̶áIÙI&êÉZ›¨c¿™°ï”ƒ/n¼MԱ߄)¥]_5¥²’n‹ô*ÊŒ6ó=û äû2­Å«CGLŸËwGjé5¥w1DJjeÝ\7¸ýgw2¸Áw<üÏšîÆ<4?Âðý9®ðyLyõw~ }áÙo /ßײ‘sÿtDÎz5²îAˆ—w{#ú¶–É-²îŸûäÓdð|­ÞíöÌ9È·.~ ?¯ok5°}â£áç#?Ÿr=uA(ï oš•ûÓÔKïddÿò¦æó_òÿÞ2”zëà-r„ÑÛFÔ¦­LðTÿtðV)¥XO5¥†¨ÐD•¼€RþNI®;jpÊ–MÇf^]WèaÈš~u5GF¿ÔÛîëÐ4³%ó“E9xÊÁà|)єΞ޸¥ß\k/W,X…Ò”êŠhÊù]°Äv¦iÆÌ.Xr[• EA9ø’áàË¢¦Ô¶ÏVžöœ˜“à‚æ< ãGH0hÖÃݸa˜¼^–I²ÄÀîÅ-”¨Ü· õÙmí:®ß#òÚî¼ `Y'ùWÎý>ícÒ'75™—þîiâ÷k7IôJÔAëö„ÄP `w|Ü ïÊ"U} ÷&¨õwíú¾Äö¤–0îcF_Pïâ#}4IÝ®’è=¿½¢ÓÙ<8xîȤ2 ާÊÁ¿žÿùA™áàQ}J5—5n;çJ·é‹òY8ŸEñŽ(U E)â³Ê¢¦À‰çj;1|BãDÐr³Ê¨Àþ„¸nµ¤fµ—öL®eš(¥ïŠ2ˆrÇÁ—EM©Ì}V×*Š4–Ÿ7l\¡ßŸàg­Š™Ç ¶þGùµ)8EmQ ›E‚îS÷öžEÎM9xM|ϸkâ#x)6¡l)Ï=¿//òS”¾,jJ³b—ŽÞµ¢X²û¡nsr ]?Ðz¹)Á$ï¡»¿úX¨½ä\"æz‡òŠMŠ¢‚ç¨^â“kȹ)/wéÀ3îr—DŠ›) åà‹Û~Òƒ‰¦a7*cÔÊ-O}JË (_äS¦|AQÎ|J aÖ ”~%AAQø¬²¨)…ÄÔŠ‰`÷ñ(ÂÁù8äðW`èç©7í$¡¤/q¥æúyÝ¢kEYD¹ãàQ5¥býf3 ¿>èv'¨›» Hß`*¶¼YÏ­J¹‚ŽŠ­‰ö²[%ô:OIõ¶Dª”7 ïþ"ĺ»Yȹ)ÿúú2¡ê]ÏÁsL<õƒç®¬÷ÃÁë_”žjJ)Š‘Ïò¹{ýìfnnnˆÁ¦Ad—˜”^ÝF£Ž þ¸a#©³y‡Dn2+r Øü`ÛàlÈê ëþXbÖ'¦zu]>¥Ë§“æ´ü~ÑÕ”5ó¶vÈK5|W³_¿]±þK¾d‡É‘᳤N} ²ILJ笲ÔÕ,¢ñk=6(' `K>wtȳ}«yö[§Û"ûlj¤yk‡,5du´ñ»¥.¾œ1Iy¼—¼9=r½XÇ ™rR¸—5÷2Ì›ê¨`ÎÚÁ´L¡ø,ºfQãšÊÁÓà)8žú”š¢œø”ª4jQ±ù”RPŸE}JË«O)kYL>¥ï 厃§>¥åÕ§Ôzb@ ¨x|J;M:1/æuÏ/x²ÖƒO÷è>DOýòfäé ‚l&•Éx@9x¼/^øÒPþí >¥y Œú”þ9¡û_ Z/ñØá ?t3åàl€ íã=õ›X%fÃÑ›üÑå¼ÔÙÏ€ ¦|qrð€yirRÊ'ÿ{pÛ‘“Εø*4{zã—àÇÆ;ýYÖAæƒR»lÆxÅi4fö ?a'”ƒ/ò)S¾kõ)¥>¥eÏõ)¥>¥Å†rx‘ÿ)Ó›¬2ÉgQä†甂¢èŸ )J'¨O)…ùgCª)5Õ”RM)Eé]³¨¦”jJA5¥ehÍ¢šRª)EQkJ)(Š TSjª)Í=‹pð±É7éeCQRˆ8ºïÃה憱]ª® K6½ídèû"Ð5«HððîÍÚ® i ½fIˆ€ Ü\¾TʇlÓ¨G¶Z ‰,ëêR…%mÅ‘É $b]™JsC)W¨4j¥\­Q{ÈYäR·k|)a»Ò¶©JsG)¯îpbÑ”úVùäâ½Í-~«z¶£½\1;,ÜáÄ„—Û3‚‡†º~½¤'Û¾ G0‘]¹œépžÕSn³õGR†MŽØò{»Ê¯!’Üqâ1ÒBÚ™Õ÷Ó²Ýä"UwN·kÕ:RküÀ ^¾³K Ö÷-E:­Vد…ÛxVKúþ›O-•Û°a»ôjýsdIljÇT³¾Ÿ–ífù¤ŽäJ~—ÑþÑõÖ¤UIºÿRe"Fû_ذ-ë¥ßtœx¬?ûÛteØœÑ&/¶wŒ0¥ÎÝûµœ‡ÍtÒrFËįÒiµÐêîµ#cưQèý®%ç¥"wkWÂOÞ',!»Q≾“Ÿ>Ë{óA—s߬ºRˆ¦UǺ*»ŸàÿÕÂjÉÅ?ÆŸÝÙ±_„Ù¬ÏÕŽÇðv‹>2`Ò³¹1#”ÂûâÖ¶mQmNæÅE¦Õ÷L®5ð—GF‰R@K—¥<ï³þ¹õ EIáÚÅsRkJ[8:¹OH‰_ý?@¾»ŸÿP½¨¶‚¿¶+ëF9Þ”ÀsÿÍSŸ5»ø3ñ;jH •àq§)]zc„}{°)¤¢³ ³ 8E}Nén%Y¶úƒSÔ“*qñêбޕ*ØXüp*´wƒVÕ%±Ž_u­¢`ùyÃÆúý |>@«ê’ O9™A­Š™Çi-«é§kïÚx±@;œ¢žÞveöí`IÝaº·Ð÷Ä[á\‡#1Ÿyòdhø«­^¶‹®eéÝK:íׄ»o­Ë°R.þgèÇ·Þ#éç.OUùŒ}¾_Tå3''' Ê/Mç­ÜgÕG^kë ì6÷l—Î[ï‘ÜþîÒ½½®,ðÝ7‡{t¨» T¹÷÷§VÊŪ´»‡»÷eÖ]:Ò»×wþí¼õž““sBÂcúê”\9ZŒ¾¿·ÍO±e …R®(¾köôÆ*/7úß²NY¸]¶3Mk4fv1õJN~²ØÜcÊV§5½Ö\;!‰ÖªÙL§^»ˆM#—^Åǩǟä¸q’—ט ’Kp6lÜ„ãž$…äÞa –ŸØC—NZîí¾èÔçGIˤ–´þ‚/ºÐ‹¹|=RŸRêSZ8Tó˜|tÕÐÑ¿†)íÄQÓÿ^„Ø>áð Î[ï é€8áèrìþÍÖ­ }H.A 1„<")$÷ï«î_á~o4·‘eBÂ)’NZN¸¿%t” i™ÔzøÏ˜õ7©¥W9§u0Ҕʅ@Sª¬=/7MiŸ ;0§)eÕà¡~öõÏh¢}›@s—×”2€jJlìÒ:j´o;œï—4è\%6viÈÈJ ½ÓJW^S:¯£µ72A4¥55n;çÊùï‰3gʽdè}Jÿ7ü(1Í$ŸÖħôW‰oó#ŸR2xÿ]ËÇLü BŸÒŽM÷½öFæég[?q äG˜Œ$s[©þÇÚ÷) üô›é]¾ ×à—Žæ;+æ|_dÝªÄÆ. ÁxŸÒ9>¥ÓÃF›ú”î™\«rÂïdÊ€O©*q¹Òq:ߤ.BŸR ŸRKNa0cÌvbqž¿ƒ,jÖ¬I¯Š÷ýlH5¥¥eÚ§tóù»m\-çÛLŽ$wÿÖ™Ÿ ]FŽ›Mró_WxD¡r7çÙ²0Wˆ]c<lˆ’µpèûzM _EÎw óòß^¸ˆ Sþæå¿%¥¥eÚ§ÔõÔ÷Ûf ÏM$·g 'þhš›ÿºÂcárónY˜«Óé=çæ,ó–K®edê,.åáæÁX6眔é¾ð²Ùˆýü™‡Ñ¬3¹¤r$íc¹ã³¨O©)ʉOéÈà( ŸÒM~FÇeGÔÃks7%äÜôÈq_ìÝú(›Msó_Wx,\nÞ- s%‰XÏ Î¾Ä¤°ðîÒ@-9†ÕçÞç߈Ÿ3²1~ÇcN§LÎI‹ |¬„3¾?jõõ×™.ýÜç™Ö ž¤aå"wkWpùÙjÈ»o¢EC$´n{„èàÕ™ü5P`M©ê¸OûîxM)ÑÁTSJÄô¦šÒ‹ð‘2·²’n‰KÑÙt¦yç­›Ó¸¾Lkî$õs´°©‹G¬œÇÿ—þÚ¼óVÀ@nÊù:H MØ©Qû9Ž·¬×îü©¡#ϵxœ…%«ìÿâäùÁMùµxÉÅ 2Œ +Ž’ CœÇ”¥ÀŽÉµ®ÑA›@ÂkÙb>ékó݃?M¸LÕ+QêïQwpäPNßoïe©hOjÝÈÓC”íÿ$U¬€ © ™Wà#õ·µ æjзßùsg»x]U¸)²Ô±M³–¼}æ³AUÚøßÉÉêy2|—§×¬ Wé-0E ?RŸÒrêSª‰±‹êSJQæî³JvÔ§4”BŸR³|nütyÀ•¸¸\Ýl%Ƽ;!7ÏŸŸ¸çîªXÐÓMø®ÜZ&eªY‰Œ÷”GIÊÁ J‰¦T°Ôy{™7×”r…Á‚U(M©.ßSÛ¥j%M¬¼_0#bC¸`ÈmU*t–Yƽ<@ÈÁ‰A¸sS&Þ,S^Ñ’{1;{x\ÏàV4Ó2|.€nC¦æÖZùAYՔЫ÷#£'*ÊÞc/ýw’ôe¶¯½˜Á÷HjqšRq¡”œiJÉàÏïïµú¹šsÊ[¨4j©~PÃZf§|¥Ž-Üùì_ý?ýfÕ²"ÍÙ¹kD°U=Ïý7ˆ]üÔèw{U‹rö£çÖšÜ7‚ç NÉéÈt{­ªK’/\Vi"¯>ã6'ßÔõ8|KÖhšØi 'Á/¿F^T“aðYÂÁ€½ÀÙ¹¸Ž^ €ôµScæ²ßÿb\,—^5à¯KšCÝD?yÉ<ÝþUNdM†ÁÏKî½þ|úÎ^ÕDdð*uC>¼2`ÏäZü”…ª“~f_K}4ô°¨Ëû:´¯.)¾·‘Pû^Þ8x×úÍ=ü6^\$Ë¢§‡‡oM‰)Ͻ&,ŽY' Ì:©K´ò$…I iÓàBЯ—‡€Îž9|?©KÆ@ðÁ°þ"wk×&­ÛT¸saÝã}¾­g-ŒþûÀú«»gNiÚ¼Îè3çc–I«e*ìµz­ª2rSG›ÏDÅ7ilwùÇÁÿ$·z­jø}åWöÿ¬œãÙ³Säáðc ×mÚ2k”+ÚN½ÎÎ*|ÉÙcÇ£O}ÓÁó‡c$ëû—«t 7ËÁŸr¹J·Ñ•>==‰RiÂ[˽~KS³S¨4WÎ^~à—ßÃÿÏk¦on˹yíØõßmŒˆç>/ÎîíÑnÀé>½•‡Er÷YWçâ㮣Wë¬Â—œ=~–dÙ ¾@­¾4oéÕÐZ6º-ZÚŒ8»pöòDבgžÙõije²:zj™ë7R¥ÜÄ"LÒÿ¼ä_†kKÏ~ŸžÚ·Ç§§Ç£±øLæEÖ,Mè}ª‹ý¿³þ»ÿ×·GÏ—Íüq_åWöÿüú?ÞÙz4‘Üpýño2eÒ‰aÐÌ>©1‘ßE¤’DŸžN< D»0ÔOŸ¯èÓ¾C§VgOžmݾÙèºOGmý¯ÐïÊgQ”>‹jJK)Tus¹¢TmK×,ŠÒ°f•'M©!ÌŠ9KÏWÊR¶`å剿÷êm¦d ÿ]Zø¬²¨)…ÄÔŠ‰`÷ñ¨–›U\ORéoXr´—z%s’¾Ä•šëçu‹~úî(L¼©ž0ë¼ÃÌî':#·ªz/Ê5 &>¥`´ø”B—”›O)÷Ô`âS:némÔðô³¯&õˆo·é¼Ç&É"›Î×éÔ®}Ûõ|¿¤A’5ßY¡”+˜'»ð>¥Ÿ%ü¾öðsŸRŽ8”6üúP Û nî6 Y|ƒ©@Øòfm<·*å ÿ]ËÇL …Øšøyv«¤@ú’To«”+äW)å è¢p0u¡)o:x¬“#áËÉ9U½!¨¦”‚òY”Ï¢   (¾gò¨)pâ¹ÚN ŸÐ8ÑG>Kˆý qÝjIÍúyØ3¹–i¢”¾# !œžç’O´Ú¦XÔý§‰:Z skVYÔ”ÊÜgu­¢Hc`ùyÃÆúý R¾•@9Y«bæñGžÓÞ‹èÅÅ‚µ)8EmQIÝaôÝð.¨h)*¼‰ª›÷,ç‹ù´yh^áMð&ýý¡0¿f•EŸÒ¬Ø¥ã‡w­(–ì~¨Ûœh×´Þ”`’÷ÐÝ_},ôóä\bÊ÷ (E!@øc¡Â›¨º  ¯§ÇègBF™ðÐB­¶“^:qdU -…1¨¦”"¿ ¥‰‰‰‰‰‰¾Ø;:„ûc†jžÉ»+ €‹×·µzqSî¸ú>Ÿg¦<û‚^ùZ³P5¥ºür’Ñïö¾Äa_óH_fk~¶ÅÛ{€vùI-#¹)Ò®#}-±D*~ð·wE¿2B2/­~ü…ÈcÊÝ*åø[qáÕ÷Å•\kÛáU¯›F ß9·žVV_ë ·ÆgžðÛjÛVàçÕnXÞ‹*îhP¯• ˜¤hªÇó`.K\M  ²Ä «…3Ø”ŽŽŽVVVŽŽŽ*Õv»<ÑgJ¯ÿsj6‹t)<sq€ 2¶bÍŠ$%;#»Wme¯ÚM9óФ899995íèìôšD•éIQø¬åÁ§ôÉ“'NNN÷' hVç¦È÷¾j®SŸcÊøY7E¾÷¯½3t€dî€Ö;?é[Ï@»YËNŸÞµz:DÁ¤:õ9¶±ýßÛ2¤›µøÄM÷ ñ°¨Mß<yàÊÙPºfQä¦k Åû_³¤„»QÊ„õKÈn”x¢ïä'diïÍ]Î~³êJaî5ŽuUv?ÁÿKöz(h#gwvlçaæþ°²×å—(í[ –]£=,ò@õa;žnñ7[Ë}êÊf1 þ8û²W—–‡ÃbN™1yøJUR!å{&ךUW{Ê(ýàSµ¿£Bc·“}¤X¶˜Ïí#-€-ð û+Úx-OŸÎgMij¹êj¦ž°8Ô±ÓÕ³#ž®&Y­¦¨4w”òz†µìÖlÌQ±Õ¬Y“^Bï{Í*»šR‘EÅ֮àwæ¼ôÏP §/ÓZ¼ãèÔÅ#øÆI-À@nJ@GI-ËóUu3knðþWÅMŠp8,À¡ù¿ª’8»T³¶¢yL™|k«¾~—/ß—‹î–ÑwºBÕëÞus2ì½øZT§‡×ÖôðéV?¯J_Ð`î¡1M*}u꟩AÐ\ü!†¹òÚL–Ì}𢞕AÖg'b~Þdö¤¾vŽ_]M|Ð9=jÈùþ­3ùsáQ˜~ùÚõ sé¶O0j‡¢œ ¬jJd%Ýé7'»Øó}™Ö"»Ø1}.ß©e$7å Möì7Ôâw–'ƒïxøŸ5Ý÷Ë"ÃàG¾ßŸÏÊcÊDÚ í Ï~Hxù¾–œûG  rÖ»ðª×}[ËäB­,_«ƒw»=sòퟋ_ÂÏËtƒ{½7zÀ\VVìOS,½“a5þË›šÏ1û6R4i»V%ôQž’NÎ{¶pâÓ…GazE+ .L¯3øW£tŠrª)5D…&ªä} ¶’.8$yn%ÿ)[6kº•tþ!kúµp+éülpŸGVšR¯¨¨p¯îŸ® 9¨Û6ÍyäŠ=?]rðÂQ;£HO§¢H™¹Ý<œŠòððøb[ø_C½œŠ"¹ä(L÷ððˆŠ2“.l“¤­eA¯çÅë­œOMiIÁ¬˜3oÅf9ÕÁS”†5‹ú”RŸR вÆgú”RŸÒwÃŒ.Ÿ¡°n3™q¿ÐR”%>‹âx6œÑ峟Ãö?gPE Þ¿†Îhbõ k1©ë”ðUÙIáqâê]e#W»»¿XºM¦á¥(À³!E‘€ºÍP¼§gCêSʃšÌ?‡íµ±oµmÇ¢-`(d8å$A³Ñ+ªˆ¹þkDaQQ"€ÞdQxÍ¢>¥ >¥ehÍ¢>¥ >¥t•1 IDATeTSJ‘_P}E‰£x9øßƒÛæ§Ø2…B)W¼˲Îû«•oŒíRµÀ7ƹƒnÝIQ.ž ©Oi9õ)­Ð&f¤oõ)¥× EɯY >¥åÓ§T"`%*˜O)½f(Ê;ŸõAâö)M¾I__Š’BÄÑ}TSZ,(ª (ü‚@¸`!÷U©ÐY…ÀûtÑ'PŸRó(>¥­¦—>—,ó>¥ä¶oTêìnôÒÊ Ž@…—HÄìMú-«|õ)-§>¥@Ķc@}J³Ô@¶™£ÁÊê H¹£ð‚¦ˆ«Úÿxœ;æ”9ÌsÚ‘5"ߨ˜o9?)ÂtHí¿ße˜»Ö¿¥5Ó2`ùÖ2 ¦åZ†¢Ðkõ)-§>¥V V¯X/+ O)“~°0=„£Bm@˹㊩³»¤0ɺýC¸#AÍÑ©³{qGƒvjl®-ç'E˜nÙ(uÎ ƒ”¼Gž[€là˜GQãÿYï‘kŠBjJ A}JsÏÊ¿¦”>ô>æÔ§”ú”TOQÖ,êSJ}J)(ÊŸêSJ}J)(ʨ¦”‚>R”µgC вôlH}JyPŸR Š2°fQŸRPŸR Š2´fQŸRPŸR Š2ª)¥È/(OQâ >¥ÅV+ß >¥¾¨Oiùñ)%µH–ÄÙ€½UÄ8²¸™—Ù¬°ó++€5½`(JÅšêSZn|JI-’¥{|àrš:•A ÇNÍȼÌfui3ðzTKzÍP”w>ëƒDé÷)5ÊÊ£–Ïê·{û‚^­èëKQ‚|]³(ò ÊÁS”†5«¬ú”8ñ\=ÀAÑéxÜo·è#&=›3B),°?!nmÛFÕæ˜úyØ3¹ÖÀ_%J©ÅÑÛpét( E B cMi G'wà ÉþÕÿSÄjþCõ¢Ú ¾Z`Ý(ÇÁ›xî¿y곆b&~G ¤<Îâ4¥«SoŒ°o6…Tt–áq§¨Ï©±sà"Ýí$ËVß`pŠz’žèá5¥c½+U°±ø+àThï­ªKb¿êZE4¥ŸÏЪºäÂSκŠhJ-«éçjïÚx±àÛ·àõô¶+³oKêÓý»…¾!ÞŠ†Ê64%…gd ª)Õ”÷<ºÿàQìÕëäß°9ƒ}ýç]eèg}Gÿ˜‡âš/øóÙ¡ÏL=ÀØÍ9ïé‹c:g—Œ øb¦0eÇ”œé¬e0µ§1{fÿrºS—îàë7xñºÈN0h1ë¾ùž2ï˜mÄßï ¾~³ Ú0¬:u׍aƒ€Mõõ ` 7a6ÕäõÊŒ»sgÇ7ÙÆÅrº0~ù²î#£d6ã šRŠ‚ñY±É7/^Ž%)-þϬYëïã³jð_µ@& n½Á¦Ã+W·I_=mÙÎÍ™À”Í÷ÖXÀ¢€1¿ÝKE)'¶ǼʒÌ[ ©ÜD¯ùÀ¬ÐçU·Nn ¬Ø{ú¯c7ßó¾xå©ÈÖ‰ýÿ÷³ç}‘ý'™7µl8áÝgôðîÍÚ® Ãæ n4l‚cýöÈŽgß<ÙµÞ1eðÇßn=:iļå«go™²i;›ãH¡s,ti›þ˜Ëú¾ Îïþ¶Mfö#¨ÿ¶l8aÇ”ÁþËA$†ì#dÇ3¯î‹-í¾ýâçy˾ºeÑæ…°¬gÚˆÿªíß4þs∡«·íš:˜aá¿jû?+Çwžº†þwåÍŒffìKXÙ‹Ïø-ÿ®bq埆¾Ó)hígÏDömÓXX‰0jé%yµŠí.>H‘Ì[ ©ÖÝt¾`^d¾‡§Ûv®.Y08pó€…E­×3&6¶’ÿ»òff³ `^.Ò?ÿ5}õ´´îëF|Œìxè^Áª!²îƒÉ {÷¾Oï^aTSš”EM©N§³±±™3gŸ²{çvŽÄŒãn‹^f²¯_fÜX=§ãçó<ÈÌ©þÕÆpm–€(3ÅÅý:Ú_`©}zYÿòeüûÕÎÔdxýøúîD§ í¿×ýnsÂÁ?açsíº¤j‹] G¼ûDÜšrß:ÖoŸýïöûE¶M.^»`Çø¡d`ʺ’ˆ;é÷nF3/£ðmИ¬—M]¯.›1Ìà‡t`]0$Ö™ÿn¿ÿ Q\Ùsðè­¤!=«_‰½a¶‘šMj®ÿ5¤‘³x¢ßtýÍŒÇÔ_3Xü¸ó䄦~ÜqÀøu×»¸  .€+ªËq¿Ù)¯^‹¶aoèyž R.ì?œ\‘tš±„l/Ê çk)¯Ø£º€o·j×üˆ*á éQÂï‚Iˆ`¥¸|í$Ö¬eÍØè“%sŸ%,psù:P)²M£Ùj5$2ÂÁ;ÚŠ#“Hĺ$2•æaë•rE´Fí!W;X±]ãÿgïºÃ¢všð$W€;ªXPAP9E;‚"X°7T,`/¨¨Ø;âO±bAD±cùì½6ŠgDé¡Ü]’ï; 98DEÍûäÑÝ™Ý$“ÍÜ›Gɇ-4ZË>0µüÒå:&wpl$² ôÐíøðuHûK…©aø‚y—.×¹09ËópaÐð‹ÆsÖô&;µ’O>™ÂeO G—D;ë@;ÁÂG{³,z^ …{ÆùgâDÎÙpo¹K%wíˆ/ÇP€ý¯â¦™´Pqô:spp;ý_‡XÙ,+5wGÆ…Ë›œ:ô}˜sµ$EKÏÉëÌÁÁ–ën_mm2Q˜{·„^ÖG„/IÉÊúenÓôQçÍ_ ÀY,ꦆYòû^ÅM3iÑÄ{½ÌBª‹—+ïòùLQÎâ®îÛq&C±{K®>ÇV´è½~ ±xK¾é]Ld¯!¸™+€vÆÓo_m-p—?Ô$>ÛÜ,_Ðó0@ueý¾\`Ñl¥ìM‹ßcé»àI'´P`\fZ«e“G7{ë–SÄí6ÑÙz:¼""S˜^•OI‹Nô^A…#±ÙƒÌµ”•z ~¨æ‡¢aӆʂMÏ:tãá_Öº€ àò:xTÓ¿/Ì?{ô ÛÈÉò÷†P&§”Ûb8PrJ- ý”å”:/ å唡Ãk5¿…Ýóhç Ø«’œR@8-6vm´‘:ÙŒ,iW¦P_76vmôhA1ƒL÷’ìP?·–;^Œ§´tÛzåÒTY2§cíô‚emŸ^••º™z°cýEPNNi°çõÄñÞJr/eWᒜҎõ ,6‚Kq™ñ!ƒÓÏëÀÉ.r sJ_)øº‚.÷ДPâPrJ\Šç”–^³d9¥lJNiÑÃerã‹¥&˜˜ÝJÙdQ_öYCl‘ÚòŠ9¥²·¨‹lÔ–ß9ñ8GÔVS€Ôwhódë¥ó:ÅRô" ëéj`3ÚñÍt›ÏÞ´8Àǘ9­íúÀÇ=/ŒY¶¢»çÂ;ÉÌU 7Ì_QRĉKŠ a/X?—&µˆ.¥A­&Ä©µøÍÎ%!¿ÁlÁŒ¿suÂw‚?á0ùYÕ‚¿2§¦>y²±uKH ×GŸ¿°¯G÷r¥ªVÄ€A™ÇBZé˜1Þ`À€ 0øéø¥Œð}üÿ`{ž¡G¾©¡Žƒ33® 0`À€ƒiu:¸4‚á4´iZÊ–D+¢£ãÚP!&ºtk‹ì äÐMÛof‰„Ø#pëG%‹®>ØÎ—Àp!?öp`Ê 4»É^›é9yÝÈ=ú|… l݃¯â¾?¥Ã*£Ô„o–…z"T.Ýݲè•H–Éî› ÒE­×÷l€)¤]9eä{ÊUŸÅŒ. 0`À FDZÿÛ®Þ¢ëé,ÑÚù]@’|çuÑð-û…)§ê°éEtu±êÌtë8÷ÁçÍ0hBÇNÚ ~; À­Ìcn ],gÜOÙÄïh:Ú‚oQúc¶ñ¸5uŽÙ© Úé9ˆneŸ]Ò·ŸG_m£Ú A½íÛmûŠåŠºYO/,~çne™i÷ê;Èrø.p‚@æ'„ 0`À€ƒßŒÊÓò¼/:i%ÈýU¶Öê½v—Ýq·ùw¾Õ'µûy1øö$3¼ 0`À€ƒ?7ÒbÀ€ 0`Päo gÄȾ‚7FÀAë ¸wv X†k£Ð`Ò)YÑ£3ŽÐ}Å^!&òu3úņzÞi(/½ˆÝ®¾¦UÚ/žÛ¾„¥Šõ«Èe­×ÁcB,ÞÏ«Íw‰}£_Źn?laL÷Êyƒ 0`P‰HëýÆžÝÆÅ.nb²W$€‹+/Ü}¿V¡êæiכ̻¿zŒ_°3o¡—)tíGZÕcðÛ=ú_Š7-ǨKîÜᘨLr½¦P´¼äƒ²/U«˜¯ .«Ðxì¶ ï€6tRœNÇ7dÓõUÍŒr‹dRŠÀ×>-q^aÂ\8…=EBr^ €èïÉø²XÓFÉ*žÃž`Á7 ~'°e¥‚2E ÝRèr8¦X¡ü.Óa<®S=ùPƒ!Çç `b¬H‹ß‹ô¹ÔÈPíbî>¢ÔB 0`À€ÁwDZ]æxz¦&Ú\Y¶ºÔÚpìË6à[_`Á|-}³vÈÖÑæ¶]®3ß/€‰ûý䟾ÁžZ/1ÔÉ~€;`ô=Ñ(×­­šrùœ’Æ>ä,>XøNt9¨-ï·´ìp K@¶îù0Ûy|È®£KÏ)(€W{¼Oµß=ÑRøcµû’³sgÞùµÉR€¸‚:.½í†z—e!+R¿¹3`ƒoÇ~eßz5eÖÄC†4"­}Ïd!&¥ÑšÜñåÐ/ÛV¾Cx­Gù.”-þ¸uÞóèÉVÛ®ó—tTh‘&Åm,|Ôªm+µâ)é—B—7îNÙ¶bpÇ^–e»Pn—eÈyM ̺úlÛ;\H:kä·Ó¾«—àóöøß8xÒ¿c×΃=šNµúÝÌŠFÊôKÁ 0`À€ƒ ð¯æi©µ¦+ùËš/(bæÕ937IÊvHÙ1 0ø{#+@AþÔH‹¥»oK³ÑSîüC¦bäe—|)½Z±[wàñìØ/éP«‰~¯v0'ã?c‘8Iâ$ޱíÐrÆ' 0øG0És!Š ,@YKþ- ã 8‚ÑG‡Þî·ô•ÛoÁF+j鳪ޮùéÞ‹5ƒünæ[†³¼,G_änu=(€ê<ÌŒ´ÒìBp—_Šékcpo©óĵ «Ÿ<îa¬qÂÇÕ׋Žköoœb+ys˱Õ(1Ý2TÓìÌëãzªÞÚÜÎ$;/Ú±ežãN7ûí1)4…1sc 4";nœNóT÷` SÎk§&Ιªí…©a2mø¬Jf(Q¥–%‰œu ¢Gvš­ÿH´nx[ô¼€ÜÇîXñ­¸ÂŒíµÆ¶›¶~÷*—‹‹‡É>Üê|Åñ¬Ç¢ih=/ŽŽÌ<…=uæ·ÅD-:ó¹€êFÆ_0Ö×<èÙect2ÂÄ$E_&fš¼+΃Җ¢…v ÿ \àô%îVoËQ½/ƒ‚#ç 3ÿú,¼›õ"àÖz{]÷Ó%'ËI='¯Èã³xyI6zìmb´:ÍÙÕóЇßªñÔ.ÛzÒ2ôŠèãEµ­ÖcFn]1’›rÛÞl¤„î^Z¿èÞ6e”qvCáé–2oP¡Óï”ïåw Œ_6ÜÖõ_9•šª-î†5¶îfÛW‘¯®@Ì\$~J˜E’R $¤ôÉ×8Æ! 0ø§ð,à ZÔjÆ6-aIü*Ú`àHXºµ¬Œ8>ÔqŒ“²Y,‹pwàNH'T…ïý, ýO+ùzsöÂ/X$ûƒcØC7v¸Íú™×Npw Œl»ñ¹ê¶§Š?O]"çùŒñ«‚Cçã(Êï²ÉÅò‚V›o[ݰ›JQÈ6={a¶w;­æÀ­Ü³ÃÛõm£Ú™¯ZÛôµkVÙ ZÑê"ªÔb} vÛ‰o+«i¡yKx¦¥ìÎÒ¡þŒK›-nô°©%àw ìŸìÖn¨ PDÂ/‡+t—ßQmÈO¾`БœÊå¿oaraí7Zp%õ@G¾4»EŽâS¥-š…ƒoM·=?ÃbEá.L„(DZG¦Nl¤âÖ neëȨ S6YÚ½XSç˜zpIMŸ«Ïrý;{øe*¯Ðe*¨Eü.ÔñºOY+æ§-mËY·|÷Ò<¿ª€ælê(ÓVøP6Kî@’Ì<>F5Y¤f2t›†O¯d%'€Ë~‹„#çàü3¨Å‚Ï8s•ø €ÄI|Û¡åR -va·OÔ×Ñ#r¾ª©›’ù™gÓOVš™öÙ¨™™¤°8ªjï^>ש£§¬H·^—ûã¦âEù ÎᩳPD±¨ uÚôùì ×sÕ5J~1#ÅrqŽêñ€)šÃ×öhUuJƒ&{iy¯nVKYqú}ß¡›·oæ°ºhQQ©Ê/þµ/‰aù€²Uxj¥ ÅÊQá©€$+Îg΀z[v¬d£ÌdÀà7cgè*/Ïù ŸÖ߃,a¿9“àæ„YRthy{û¥Ç BåþYÖ³+ïs‹P’`¡h5UðV…í{©ªñp©D–ײ›SX/+:°ß„IS`çö #G±Ø‰D1Ç2ýêªåç 7-qð¹lí¦5s|ç®í4Ó#c[H‘Ÿ—ï³6ðüüiñHq;¯UÎy;ýÏnZÚÇwúlÿMA:\Ú‡¼HI–ÏüõAas§$;ùõy³vÏsñ’›–Îðµ.ð̼iZÞk³·Í‰ÇÙP·Ç$ãÛÛoçঞKÇ6›µìHíZü³W]ó›³póñ+G™q|g.bI ¥Úöç4Ÿ± ˜Ã‚þ^k…޳æì~ÞxÓêñ²xï냨\4}S8wóºÑøº)Sêò×<íÿ©OÀD+] ¥R…5S§¶š³±·¡à9OfÌ?¾)È¿LÐÈ€ƒ_‡×Î:Í8⯿9ã5Ô5-A ¾¦°³¾y…R½¦l›HJ($T¥_S„İ\’ Y,‹ÅÇqGÐB •‘$‰åfIZX6žÐî8ÓìÄtß™7/Ù_.¨¬^¿FZPàç—ç·~ó©…>ÏÓÄ`=5 ã‹Õ.$ òhY·¤Xkà.•à 1#8>ÔæÌ¹{´:¯h6k†/4p­Ï)}®±ž¶Ò½ w­Ï™f®³¼:7Ì#§Íú6VùD^N® `=mUÇ«7\JLIŽ!õœ×x×™9ÿ ÍÔWoXùqðòu&¢mKHŲ•i-sgÕÄÀ%âÓû‚;Ÿ0°¹š\ûÿ{û¼ó¯øí3O°ú¯Ü¸„êç% 0øí¯i­|ú¤WSÞõ­ó¦Ï‹` ±YqG¾`é˸n 9)Ïô³÷A[Ï¡æi‰ŠÉa'Æ÷3™?p~à“_g5Û@xÚ´lŽŽ *í—¼=¬\¤¼J«7"ìxï`ÛÁW+/®?å”~ˆóÝ<à;;¿œþ^áMKˆEXðÝ~–7~ßþæ’f·È‘/Ý·~¨ÀQUƒ‚{\á¯Dåçai¿*=”¿øCX?¸¦efI#7a³9î_2¸sŒ(ÌTMã£u£N€ ôþºvm—‹ÅÎËJ×74’ –-j`ÐH*•Tï%•Ι9_ßÀdúôqD_1FÉŒ-[v&%³×­›ÅDZ üv<pküÐyÅñMymù‚éóN S·Qê<ÌhÐõÛ›—Uq{úß~|Aq˜UÊÕ©È„ Å„œ2¶w–áðÃcê+TøéÔšU3£Ü¢²l¢ðåð,5my½ÎÄ›ª·¥Ïfg²Üª%¯é÷ëòxBìºZ=ݧ©xãñ’0«b…e1ú¡¨›æ © º,‡œï”F' Ê9c¿M ZÞPRQÛó¨%}„Rí°¬g„Ó|ÊG~¹î¥)¬„7ÊŽßig7¸›ÎwêS¡{žÖeêÉ{ÆŠ•ÓÄ’?ÀZfc¶¿~“?^–\ Í:X{Gô21@^xt˜ < ¿yo«É«wMl4zwhŸÏû"únuWé8 tÚýàÁºÉ3Îí<ähaè'ãê ö )ØããÐI¿u— t“£IaÜÌÁ%„œ€}­ÑP x´¾  çq4O`ÖuÈϯËÇ:kämÿt‹—às0NWxL"£ÖfE·Õr•QkE¿+¥Ö<î{sƒèáÉ£ßaFÈ‹¸ª R26Q¾NÊáÐW M»yö´î‹<×Çô@ŽÈøâ4[·L@b¬vßrΛ‚s«NÜï×õô3Ç) Ÿ H?eÁwbÏ;ãil… ih`iÓ¯Ö4ÓO!RšBâ“ZY©r»<úžˆ\5ì1Ö”ËO*¡“Ýruw~sqÆî»=Ѳûއ43dªž6xYÖ¥Ž:LJ*ÒÃ&]Ìm«Ñõqî¶üÅl]…[t©{Å4…ʽÁm\v”©°V̳ߌ"ÝóªÔ.Óæá5ªÂ¨Ë…ó&÷zBÒâSEƒB‡2J^QÛÙG—:Wä¨#ò”£wyÀ†Šætv²LÛ¹ ;åóÜvÞ?¹(œD?ׄH«¶^#`À€ƒ€ù´ ³E¢¡ äûiÛtŸõŒ™ ÊEŸ½§™$Ýw鹈y;S¨o;õtc€AMÃsá½&ÍL”@’²×÷4^a¤ôÏüÜ®Šª†¶NÕ¤þY'ߌ‰úc3â6sé:`Ý_6¼¿„ïô7´õ»?3¦ï™1ß™ù/>翬j1YËñó^ïZ]øwMLžºfÙƒùy9Gï΋éÕ«ç¯oËÏ,Œ•Jq‰D"‹q©TŠã8Ž€¦¦FÏîNLTÁ ,š4k¡ÆSGÙl€@äQ’,‚"ùÇPåó_>šhëTMêwµüK(&B¸‚Ñ'—˜°„Ø¡’ò¢–>ùÜÖs:ñÀ2D(PÞ§^t®MyEêó0çjñßÜå—. 1ÑŽ9Í`õ“ÇBLä?¾%t\³ÿ&ºù,¤lªiv.M$Ì}j«ƒ@çE;„ØËI=ë+*DxÅÌ¥ š([÷૸‡ïOé°øí…˜H¶ñ«j†BUjY’\ùíP[´‡É>M €ÜÇîÊìfì€vÓÖ 1ÑÚ™d:‚¯,w©h½‡FÔ€#²¯YSÐsòº‘'zôù —^Tù¶¾à|¦èâõ n¦¼2ƒBµ-´~è®(’ º‘‰„˜h†kCÅ¢™Q¦-(žWmq÷xØöUÄ¥øðØŒÆÔñb—ñ†‚•£*£¬h<»aI¿R1ç•HxgW´¨Ø&—Àp!?öpTÁ½ô)J+¢Ã|üØ}‰ÏðŠ^wùu@q!_ørAñ¨(ŒWiKßåʾ°&I¤…‚o‚H´^ß³¦ ƒòÓ¥¦Æ>ÓA©ÕI!Ì*((À0,777+++###--­°°°‚ L5¾F‘/’àeëT ¥ÊS—à¤ló_лo¿ÊH;óæeâ˸8Q|ü˸‡©EʤnݺŸŸ×­«£D"V¨¦LŠÃUüv轊ží(¸·¬Äl NªòÔ ÅÒ;÷<Ž}ª¬õ¸øDuuöíÛ‡‰f¶ê|ÉÜñj—¾™VVVFFFMš4ýø1I™àÙs17oyú¬tìø cÆMøæCø>wþÑ7'žf_JÄöÜHõ KÜ{+u^„è[+(èÇä”É)²ý«7®)«\Ö?ƒ‰ç¯~Ö¶ÛÔ+¶oÙ¾¯çœ¨S}ÏUþž÷~ïü¢ÇÛ ïm­¼È»7o²³2Ó¾Tê]üç“;¿FLÊ<61çÄäÜ“SSŒ!‰J=j‰Ö ~>Ûîù¬NùW—äŸña«ç³i6O§Úä%>¨ŒxÁ•Å9'&=™ô«%Õ«R©Ç¥¸TR$ÁW7k¾ªYóUÍLdÛj“æ«&«&…EU_*•^TT¨ µqÓ–›7m ܸuËÖ ­ÛþÛô_жíe¥*Sxûˆ«ÊSãkP·ì¼¼Šïò+¥~ séo`.UkФÛÖ#{š6'nQ9sW*Ãç-WgD%ÛºLá;ê ÐžÎ&êydÓÞ1#odš…/T¤ ¥’N*¨Þ¤µ…²Øòˆ—âTÏ£<©¼ t¾¥ŽµËbƒÅ >T†ªòMG)SHï—º ¨ŠšŽ±€Rês~—@³ÐÑÓ va"BuïrÚ¥y~ù+j[0ÁÄ,Ô„)›,êû€cS¿’U Ûj‹lÔ–ß)ôÁĘ IDATP ¼SŠð¤NË=ÎiØ,›+ØB‘v¯¾CWt'‹NÖú“¥ÚëC dæ €TÏ œ±^ÁW‘fÎX1åSJrË`“ýÇn[²A13ŽöT€ãuuë°9¬Š¥p×ÒÒò?AÐ;÷ݸqcšÿ¤Š¥Î‹ilÐP*•7oÁápDñq¶äܹ˜ÆSoe¥ 3ã«ü²Ð¦åÇïó°A**gi Ë ,€¢¢R’0Ù~ú×4]]e‚:::¯_¿>;m¾ûà´Ì—P¨ö9v§´´¬cŸ<50Ð/çª.Ÿ8uR[G;4<ìêõëÏŸ½0lܨvÝÚA„…2xP¹mIq2òQFjŽ8»@l\›ÅA‘°[éÍh¦åˆ“³*ú~l_—~'Oœ€/_¾&ŸMhâw¼ò5i’™‘Áf³3¿¦gee5nj\AeÍfm ßj tìú§Ç" ^/îiðístŒúö*Jy%ÍÏ#r²Ôkkªk ò³uËÊ)ÉÊdfJ1iåûENHI P–êçnå_ÍØlp\$H¥R)‹…  (ŠPÀf³¤*†]Ç.¹¹¹0ÝwÊÞÝûóòòH’äóÔï>¸Ù©C§oJÑ®½•“BQô±ð‘µí¿¹‹úSêÁäi1øs`5[?Šu³h²¤FY5öJüý>¦ÏòCÓ3_Šv4`ßYT5…ß+UnžO]3##Çq‚ ‚íèêên]37üòÅz|£ãQ‘å„­ZAÈ.è0bäÈ©¯W´\çñ+’EZ2^.ùŠàå˪gV,uî\Œ¾¾>.³Y(I’A¤¤¦·01‘xjj*‡Ãmß¾]¹R­[·–J¥qqq¦¦¦ñññ-[šNV,ÅáªHÄ´Ðä̹󶶶ÚyÏðì×€ „¸ˆ(," ˆÂBÃÜ<4/7e‚ž´ôôœ\ AYg·_ÑÉÔ0ù³£É(ÇcccUUU]ûõU6|b±xæÜ¹, ‚ädçîÙ\ÁpÛû –ú›ôÜýã¾ãÆÁ⨰X¬-[¶¤¦¦~ùòE"‘¯ä`¡ÅÄÄôîÙý›þ€Þ#÷5®§¶yÅ6›#‹r²sÇÎdÁÓøñãUUU3ÒR@Ý»iÛ¥{R‰¤Aƒ.\8pàP¥*Sàªò òUÕÔ€ÍbKqéÖ Íîn.Å q¢ô]EJ†JJ¥¤$óx|UU5·ïÀ®î]{’$Y±TxðàÁKÑ+EAûvŠgúŸœ§ÅàŸ‘óÔ¢ÉÓšfÕÓßÕô†f‚*UMáÏ’Ú°}Ö]áË¢Â"²‘^-žº*›Ãê`ÖÕê³øÎ;]®üOñA’¤ßʱ]v*,(DrRššÔ:€duhÚ®) †Yàèè8qvÿoJ©ñÔ²³Å±TTU52À µ´455µ233ïܹkcc]λ›Â‚ìììÚµk§¥¥5Ôo˜—‡!úM©²kZ†©}LÌO¼€8NJ$d‘-(BòÅh~!Š•s—zþ">77×ÄÄD*•Ö®];`Èÿ‹Å©©©ÙÙÙÍ›7§®Q‘——7oÁB@Çñ‚| .ÁUyª\.gáâÅXÁÆ å'¯Ž¶køðm¾¥‘nôãT×¶ue/ÆeÖÓä´ÖWWÖµôôôììì᥃Z\ôáÇϟ+û#Ù³ûG·u_9aêm š•Uô•r°B¤.?öÁé7ð­H«îèOFu6lÆÏÚПè0±V§•Ÿ·/ãâÔxªˆ^ƒ†•ùÂR¯£™…i’_sI‰ßëÍG€£S÷ï˜4tIMgåäHó*õýU¶v6‚K"f‘…l‚4NÒ–ve×´$RR E±ÀÀò#³É“@*‘ («0S’­i•À××—8R¤¾Åfff@&¼|€¢ˆµ¥ÝÀî$I¾~ó¦2R¥Kæ•“"IÃòttj]¼|N__Ÿ$ÉoJUKKKKËo¬;Ê#-†¹´òøAæRàu=ýh7ù^?óa9¸\Lô<ÝÃcË;´Þ€;ûнZ†ߎ±H¯à徚áñWŒT3æYØÿ ý¾.+!-‹]˜h_  ~òór¦®™`Р–Aí´¬Ü܂µµÒ²ræ/ö/È+ÌþšWnjüHáÙù%RMÔþ¦T¯^=UUTTTT$ Žã\.W"‘$&¾Äq\"‘”›ð^5©rlÎÏÏyX'ñûI‚la!DŠ#b)"Å/ïUÛÁƒ‡p\šÐ´iS}}}]]]•¼¼<±X,‹322:„ì-+¨®®ÞßÕuÿÓ¦L10Ð'I’ÅbÍž;? KÚ¿o¯2#; ´mÚã÷$¤çª]‹{E ¦‚êhpL”¦¾I$ÏaC´µj±pÅT˜Ó§OOœ4qëæM•ŸE"æåäädfeeffffdÞõàÆœ™Sëë7Q¸Ù+ MÈu¼ûèe?œ]ùHëý›7\na‘X`RÙïp´Xw’‹Ne}·=Ÿ¨UùGʤ4— (¯2•3Ç´3’”ÄÞG$8«Y T•o¬GCN¾Å/¿í’èAyP¦ÈGG0è¾è¤• ßpøÁ®—†î¥±:ÙÃ'¶ºùÔ`HÔ°‡ýW‰&ÆŠ¢Û &¼¡(dÏ´M·õsÕ´ÄHÉy1F³%èïö³è°ŸvTÍ ÏòŠdRR¦rvCáé–²˜¯×™øwn¦¯›ú¬m²ÆãnÛ;_ó Ku:çjš,]û‘MÝÿ‚sÍç®Ö šñ?y˜Ï5Ÿçš¹î¾ûõm=ã4,\êê7õŠ“,Ò*‘R6T«õƒO‡Ö8÷¸ü¡üàRË1jì[·@©,$ ÇDCù‚Øh_ ¥GZ²~!ͧ¬n°oæe XG„õ»î±åi1¨údñÛ퇖Û1, Ô<||÷J]Cƒ$Ù#IB’Å$ J‰¢(‚ ,6ëÊù3.ƒFVMêŸuò˜¨ Ô·‡ s©b¼_=Ì¥âØµ ó^Nòö~ÃmqoÏÖ+1õ-ôpXßë!mÕä€ÔÚpëï4†&¥`[×…ƒ§8 ¯å¸8¢í*õ¯©]Jã •‡Iò€ t¢Q:Ã'õQ-Xù?Ç8ߺ̥ˆ þRp8*WÏŸ%\–À\UùÃ<ÊBY,`±P6K–²€©jRÿ8˜Œx†¹”ƒŸ’5­ÀCË;3kZ 0ø'q=&Ê‹a.•a.ýcÚúÓŒg˜K:¤RÉýë­:÷`\Á@i ï\¶uì]T˜ÏQQQQá‘ÅÔårJs²ôÏÂü<©D¢Œê‰ƒÃ\Ê0—2Ì¥ s)Ts)I"?÷š%‘ˆ­:÷ÐÐÒf6fS¶iÕªÕ®£#Š¢™_SQÇ%¸TŠãRB*ÁK6\ŠK¥¸DÂæ¨`¹9L4À : »Ò®îâWÑ{•[[ê¸Ò EæÒ;ræÒ9I¦ìñ= {±¤›£_0qmB1™¤‹áÚhn1/h'›Q‹™EdÌ¥¹¨Ž¢ü.vç}-øÍnöŒ²âÓ€ž½0ûø`­æ9ÜÊ>»¤o?¾ÚFµ{hm0ܾ•_€UÕ Z]j±¾ Ò,ø[ÏÛħ‹RRP9›è’÷/ljåw 쟼ϭ]¯g¾ª W¼H“UUkФÛÖ+%Ì¥%Ƴ‰ Úé9ˆéE•oëfê:'§Íòº”A¡B¡-µæxï‹á ›É™0ù½à«  Ý …¶P›%Û&Z×"áÈ= 0—Ê|8`ã[êxIé].ëCe¨Ú(+:J™Bz¿(Ì¥z˜$g.囯€‚{éS”VDo &˜˜Y FÝú$ÿeVYæR(3^¥ExÒ §eÚsDa¦rÒL9i…AùéRíõ![Î\J‰nÉLÁCeB¤¬<ù ‘¾›|8'Î8ýËŠxu²93ø;Àáp€Àq HBŠ“NNàAž¿p‘ ’ H—íPùÁ©³ô§üè̺…ä'Ä VŸÈ­ö^¡dð|R$gÇÀ\Ÿ µ79לÛKŸµ^ÒQcÖ ‘ëC—{…’Á£ $Y,vɽ°°0ŸÀA·n=æŒ`PŠ PùøNT_¿1 IŠ „ì{|ŠÈß  šòñm}}#ÅYªj2eý˜¡_ÄjkïcI>x…’;G†L<`ëá3Ӈخ‚ þC†. ; é1ë>9¼ðÝw$EÑ¢¸m‡ÐqcL¸$A™6´àᵞCç‡G¨H?Zóéðìz2U^㶇ï¬Lwˆœø‹_›ôh,Åùød„¹ë+áGº yñ×sëòìt¸©ó¸“afý†¢$I’x¹Úc"›õúèXh[×Á(žqü : öãáf®CN„™õÊÆ¿¾Y8È–ýœãÒìëÅ/ »7H?Ÿ¬Û£±2.1üô‘( A»Îm›"‚‘õïß"ûÒ—N ÒάÍ~t²ÄZ»ºä?2¯ž;6És.Êœ þ9OkZ˜{~O˜”GE¾?`úER¦¾á‡#þó”ÿÉRK|Pi½?öÞUдx8çÁ³çËŸ” ‚Ⱥ?á?c-IàÌéÀ b°X,@HH@H’À HH p’ ’ ¤ MÒ°Èoá¢YEس¤žk×®°ôBdÜ‹|$¼s:]‡/Oö"è µ*üJìkîd3ŽÇø‘¯ãï œtˆU»½ò1bÉÈw¸|åip¯zÿº´¦÷ ù jFf?˜¼3žú¯’çLS~ì‰Û/Þ}Jþðè}!)9ÒVMT¯>yò•m£‡F‡E¤|Í("H”†YEo ‡ „ÔÒÕ=<üPðñYò§ñ˜—à™èÃó»·7¯'ÿÓ;Pkl•s!üXlÏ&ªÊ¼-ÍHlfm'¨‡¹ ÙÏÎÑûZwè¸Õ]åM‘œ¹ÔÒÎQžÏk=Êw¡lyqÿƒ'ý;ví<Ø£ p _µjÛª<ÊPž…ɤrG“³®>Ûö×#’Îùí´ïãê%øü§+1—ÞÌŠFdÌ¥¶=¬J™K7øvì7På»Ì(ƒbæRE)séPOc(f.uçœëc:?UtuY¢Ï©LâSŒÕîKÎÎyæÒÕ‹Ú€8vmñ“Fvï1ÞGeÝ‹©ñ·¾WHz´ìRom¸`§»üóa%R 1—b¶‹#f5Uèòè{¢Q®Z[5åò9%õ©Ì¥{Y@¹Þwü]´`e¤£S'†¹”AÍŒ´¬»ô(*Ì/Àrú&ý)›üÑŸ°q~lz®®¡ÍãkH%bœÀ$d›ü[3,‡Ãår¸ª|>OC“9³T˜Œx†¹”ƒŸ êÛÞn#ªµ­¯â·¨!¯>cjT7iw¡|0úOrlu)ƒ¿1Q&yÎe˜KþtæRTcÞtÃÕ›žW“z»uÏQQÊóÍ\Z³†Rsá Ãë¿èÿY¤¦$IüMÔcjT7©·º ÃÓ6_ûôjøsºOd¸Y0¢³ÞŸàR×¥]öÃ\JEµ2—j8´×Ðèj¯¥ÈÕ ¥ì”ßPHñšö ¹«„˜hÑH€ŠÈ?+òJŒ)x¶qk\AÉñ‡‡W¸¸¸†=úJ’ä†!®R’”~:¾ñYÁý}Ë\\\—\L%¥Ó<û1‡$É;û—º¸ 8‘[~7ñt—y7I’$Å).—Ðê˜ïðþ.¤$¹aˆ«‹‹ë‚Û¹'¸‘äõ y..®žS×$™tr©‹‹ë¢}÷È2Õhƒ"M8b‹Kÿcq¹ô´Ä®ó3\s’$ÉQ.n¤4cú˜Á..äeú.kNaô…GV»¸¸†$Ð Èz–R¨´û$Ië;ÝÚØÈu..®ã|WÏ\\\]\\IiFÔö…Ôî(ê¤j¿•IIèö3`ð½ ­i‰_E  K·–½VŠãC÷¸Á8EæÒ ræR? C?I¦¬~öÂ/X$ûCN&¹~æµÜ]™d®ºí©EÍœ—¿¤=rä<Ÿ1~Upè|Eù]6Ù÷µX^Ðjóm«¶sS) Ù g/Ìön§Õœ¸•{vx»~ mT;óõCkûƒ%?Ä«š´¢ÕET©ÅúÊo-4o ÏÈîèr6Ñý#lj ø]û'»µÛ*‘pÅËá `N5é»îëÛÌF&š·OÁ­<ªñéPÊNù …4Änµèy¡Õ¦Û–Gm7§–*,¦JUÐeæL³ð…Íœ—¿<2ub#­·¹²RŸ«Ïrý;{øe*˜q9õ@G¾4»E–ù„(ÕQrÚ⡼OY»7{µo77‰ýÈGRþš¥1¬f6é¾Ý,.Ëj¼¦¸WQ¡RoÐGYL)a×k3[_àÿ6ÌÎåCïzè¼74ÏS»L‡Àѧ*¼–y̆ošÝ"Gªó%þJÍÀhóðV汎|€š0e“E}_e޶Ü\hÑóÂÚ/"îIÁ•lŹAų\™B£(—UîIP#ØäÙëŽ4è8Làç1 p|¬Û¬½QGŠŒÙylרŸÐ$Ià8à8!É-ê´ìØXc7·ùQQGx,xt’»ÏÒÍ› 5W\‡Çª¦þrM§M ¤yÎ[Õö¹Ï1•„ícM÷¢(à8Ž$xÂíÇáQG¹£ÜÆíŠ€‚¸íWô‡lÙ< ƒÀÕÊõ$Aà8 uêIžäQë }§Žœºâ`¡'"£Ž²B÷ãïž$„GåäÜX|7÷ëžØE«×ß]7+øQ…j£¨ƒò_·¢ŽK5^àæî©ôí! Ž“$I$ÄÅ5Ð3Üu„¼Ïéàl¬qQüjßKšå6µ¤¡°YøÝVSEÍšÛºÈG³Üî%î,í»DZbmÏ•Ýîšy‹òí6ˆÀûê ì߀¼¯Õeönzwh:%¹¥ý __«÷êÝeìp™ß &O‹ƒï«ÉèÿZ÷ŠÎb\¡4Ú äi9ôX­m}IzW¯˜vò·£úŒ©Qݤ‚ÍáJ%âšéØ©·Fìøã\Êà¯Á•3GÿØ<- ~+ð7û¼Þ0n¨üô/h¢&S£ºY’Åþ5†U¡•-aAKÕL—2øË ´æÒÊã™Kõ§œÒq¾›|§`ç—“Ãß+¼ßa ± ¾ÛÏòÆÃó¾è¤• ·‚J¨P©ŽªÜûã %*?/RÞVr(¿=(5 ú;¥ÚaYÏ:•@UÁ½4…•ðFÙñâ;íì¦wóÂùA}ê"tÏÓºL‡ ÷牸²àrj£Ê˜!ÃALÄá•Á•9-#0ZáÄ.¾¿5Þ¦_®ñß2Ù†ÿB{Ú)GHì¼ß<òFùñêÞÿwQ˜¸{Ôú“Ïïž}RàÚcÈòÇù0ÊÎn»H,y³ëàI ˜-D{·GÏžÅ<Ï.-—~ìæô:þñÊ„¼$Qbâ»1‡‹’Â]ˆ?µmÚ‚KiÊ•ï¬S.+Mý¥Ø$Ê~ÕQ™™ù½vV¦N¹§'½žuéΣ Áý5ÿzăÆ‹LÁ¿_Ï/´€a.-ƒjb.-|v,àí) ¾ÓÅà6¯ §²*¤¡¥M¿ÁÓL?¥Hi Ë•*·Ët¾Sâ`àý––.a ².¿Úã}ªýê iT¨ePâ(…¡¤"=lÒÎÔØöcî\ö8ŸV†’‡â^šÂ ¼¡œ‘UkõÁ$!E„îyZ—©óPAaÔåÂy“{ Y8 *ê<ܺçsÀlçñ!»Ž.=W£J޼Ë6T47 ³“­Ï±°È'¡è5Ï}GgÛ:eN¢¿øqædOUúo+¥#úoò ¸lX°ÏOÙñêÞÿ—#­©ã‡ÌêgfÝ»¤t&¬ùÖ¾R`é ú0/IR#f‹ôÃáZ^›ÛµjµÙ{õµÀ¹Õ=c"w S³Ôõ&&Æ_ßÄÄ„ Ù ±³wà‹¥“•©V}2ï‰Ëê f™}W=U6c(Ó²}ñ«`;9œ©û•é6]?±||;;;»~ë*svüHrOOÅ:¬:.V€]î葼?‚î÷mSaßË×ó+ÁdÄ0Ì¥ *>{O 2IºîÒsÃÃSÑ2%#¾×À‘?]/;»<Ã7%&&š˜˜Àÿ6Mò?žþ¿S 9’·vžoDLP8^Ýû%ÆütTŸæŸ|ñ×+ïY¡1‡†O½vmG ¾:-|ÙðÎÆ«‘Qãìò_Þˆó[ºO-1ë'®8!Zuì|§:l¹NIʸÁ£SÉE¡'º7RÀ:O}t}kgiR˜Ãÿj ì"ö¬TAh3ŠŠ’Ñ×}½kGÑŸ6üAC¯„_V2C²ŸqÔÂmÙ6ÚŒ•&=ÍÝãZW¶¦U²#xö‚Cwm<ü×NíJݯLÇ)ú¥^ÎÝÓë9d¥ªüïä%uègÐÔ¡:¼Ü:õó»òMëî8q´¥Ze=2 Ÿ¯;¥;ý>ë{õüœ;º’çÜ?3ÒúÙÌ¥!~%›èÍ\ZÍÆ÷ñ_|ÎYÕb²?‹žôGZ56ù‡#­?ϱÿ¸Kü²HKž]Љ†ñÁè£Co÷[úJˆí·à£µôYUo×ütojF¼à苼ѭ®§ßGXufFZiv!¸Ë/Åôµ1¸·ÔyâÚ„ÕO÷0Ö8áãê¿ëEÇ5û7N±•¼¹åØj”Â/ƒQM³3¯ë©x7js;“ì¼hÇ–yŽ;Ýì·Ç¤ÐnÄŠ™KãÆé4ÏAu&Ü01Ž IDATå¼vj✩Ú^˜&ÓÖ‰/Àªd†BUjY’ÈY  zd§ÙúD+à†·EÏ È}ìŽß€+ÌØnQkl»iëw¯r¹¸xØœ ÷À!øŠãYE'ÒÐzô¸9ì@êL4„/ ØãqÐsòŠ<>‹——d£ç ¦e×ó¨d[_“t}™˜uhrð%…A¡Ú–´~ïû¯¶H?Åv5qÇ@72þ‚±¾æAÏ.£“iÔ€j(¶EÅóèݰÆÖýÏlû*òÕøûðí¢î‚uKÆË’/Ò½¡àCå¨Ê(+Ïn(<ݲ8¦*5ç•(ÐXPȳ8»°¨÷¸ lr ÷Ûöyÿe@u¯mŠP‹èƒd>~¬ß¬aMÑ]š Ê'.¿(¦[ã _N·h¶U¯Ò"–¾Ë¥å…£Ï¯I­l$':ÐBY§ï驯{û½¹twíµÚ½× è +’ @¨C)V.5ìñ³ý-Ò´:¶È¹Z¯e¹8¦QSRӪϘÕͿñÿ¸Kü ´ ©,âWÑ{•[Yê¸Ò EæÒ;ræÒ1—ÊnQØ‹%Ý-ø‚‰kŠÉ$] ×Fs‹yA;ÙìŒZÔLñ98çùŒñ«rQ5Eåt—üf7{FYñé @Ï^˜}|°VóneŸ]Ò·ŸG_m£Ú2ÆÈpûV|VU3hEt©Åú‚tH³à l=oŸ",Š™ZKˆF—¼aSk,¿K`ÿä}nízí8óU¸âå°è„<­R­A“n[¯ìiÚœšñlãqkê³S´ÓsÓ‹*ßÖÍÔ=tNN›åu)ƒB…B[2æÒñÞÃ6”güv¾_ |U!n†B[(‹Í’m ­k‘p䜵X¥>°ñ-u¼¤ô.—õ¡2Tm”¥L!½_ê*@ *j:ÆeAñ»š…Ž¶à›Æ€‚{éS”VDo &˜˜Y FÝú´Iögq˜˜íµE6jPf¼J‹ð¤NË´çˆÂL›e`e™i÷ê;´(êf=½°45®RR CYT{}È&€Ì|ÿäÝ‚cc¶›¤Ö½1Aà$);Žð¯†&ÔºèÓëS+ÙGøHýÆH}Sþ¨NAò–íE LXú|úñJè)5æçoÕ§ùç˜W¨šswÄØaãóü‚¹F\‚ÀÕ–Ÿâ豈:žìZÈoê>Áí>€·<ˆ pÚà–èDôøÆ@3®}RÇ©oÊŸìŠÔoL踪´jÊê±BÅL[¹òïuÊe‘zª–µäEÔýªoÊÚUV‡ê¨éK%ô€6Û¬Òj8¯O³³'–Ú¤ÿØZðýz~Å&°gò´ü)@5[?Šu³h²¤FY5öJüý>¦ÏòCÓ3_Šv4`ßYT5…ß+E}{hûðput_mNtá:W’„Wy„±: µ=Ôx×X–MöãrçSç©Ç7œ/þXP_y8oÁP¨3H£Å­ÜkIš«¶äÌŸ^z¼rzäÆTªOóOúê3yóúÈOÕŽÿÁÝÉì)§Å[úª¯<€IBÒ_rćŠÒ¤¿«ûš«væÌŸ 0¸¥:Õ›¨ö‡å{ÀÓš`‘½óèTãŸ*øP¤¹ú@Î<%¿\S˜uª­´f9elT:[ÌÔtk˜sôE9²¬†êíÅy÷Ò t¿þ­éƒ ;{KLéþÝÊÙ¼„$i3ŠŠ’Ñ'õF«q#òßäk­Éž7RÙ AŒj{O”ÞZž}6cY 5­Ä9wä‘VÉ>§÷Ju+Éõy§®P÷+ÓqŠ~¶†ÿi4ó*¢]”µt“’:4G)«C³¹Êz¸æZó×¢ìŒÜeC¤ä؈¡/77°(ÿ^=¿w; /´æÒÊã™K€kÔõô£Üä{ý̇åàr1Ñót-ïÐzîìC;ô>j"|;Æ"½‚:‚A÷E'­ù†Ãv½4to µ‚ýñ8|b«›_p@ †D {Ø•hb¬(º`ºBDíbîWMKŒ„œc4[ˆŽðn?‹û© «f†gyE2)…°ãËáYjCåŸ@îu&þ›éë¦>k›ìŸñ¸ÛöÎ×¼ÂRNÇǹš&KA×~dÓ„C÷¿à\ó¹«uƒºë äQ—ù<•q-渟1Sëpqå…»ï×N-~\)‘Rð<ÊÕj¤]´ÊyÐùJ!-Ǩ±oÝ¥²4 å c¢ae"'Y¿æSV7Ø7ó2¬Æ#Âú]÷ØòŽ9Iüèn¼Z­úÓukÌ/ȪϘÕͿñÿ¸Kü Ý sé¯g.Ç®mx"vÒÈî=Æûh£¬{1õ#ÞãïÖ÷ I©µá‚îê2J¤Ðuáà)NÃ1Ûųš*t™ÎA*LJ<`hT9Ã'þ.Z°2ÒÑ©S]æ$aP3Q>Áô÷2\+¡Ç¿Ø J}wÛ~Â1(ˆÝqáÞÉõƒþKd8â+Ã_¹Y§\ö·sÄÓfûô…áˆW“§À0—2`ðÓonÕ̧%ÍI~rçôö‡Ý£šÉX‘¤Cƒ²Ÿžy{ö¿Èk‡)·ÑÒãa‡ú(Ôqí<"úúé‡C£oÚjÐÓÞ+æÊªîãCÿ›nâž èëuŸ~A5©|= :ÿY>­ñvŽ»n\–í§ƒ»î½3Þ±ÿ¾Ë㺸o\d­ozSmÔïb.- ¯—è”d¾Ú¹uãUÕ‘s¬©Ì¥›²úÏ6Su±s?q#²üyHŸudޓΞçnœ˜§tÖ]ÝÖwõÇÓó[—•-—¹Tü*¸ëhÙ¦öÿöõ-Ù¿qãÔ·ÏšþCËÇ»]HH~7NÎVfÉlWG ’g2=2‡Wà+ê)\e=‡ô=Ãõèùu“sieôüÈø´Ð?ò*ÎÒÝdóõ­,øòí/ ³TŒ¼ºÕþ ÛúÓŒï㿸ÊçXËñóT™­Ü0.ûñ ¡>kÎûº•~ˆmàÙêâ2Ñ™5›/¼µóØ©p\¡N/;»¯ä[;»aìFâ­ñ’$Éë“ÍyÆæ<˜L—ÙI^3çM’ä…Ež2¾?žbcÎ3nÛxÎ󉶿<ãD’lË£Ï3îé².— ñœVô¢Ê·eQ§×—"2íY‚h®c™A¡mÔ¶Ú6&%ÉÂdaGucsõ¢Ù$Ij¯8@43Ê´EÛ(ž¯Õ¯ðütsžñ­ÒŠâÃ7~NÔñj_Æ >T¾Ue”×´/é—‚BêvøiÍ36¯íþiS¿Š­Z²û!IJòH²½‚{éS”VD×°î9ÿ±PœüÈ–/?’‘^\Ú†LÚ+ßW¯Ò¢vÍffñ6çŸÏ íÕ÷ »ª·mìói£³9ÏX6+2Éœï¢eR»^æwâ™4|62„¬f$$$5ÕgLêæßáØÜ¥ ~ÎF†rë1Ì¥ s)Ã\Z¡Â¿–¹øÖÓÎ÷rà·…JKU¹” þe0yZ þ0Ì¥ øS˜K«ç»‡âAcÇ Øï^ŸUœm#±wòÙ·ÒÖÿ…ÍQM(5©Ç J÷ål=•j¥útc’ó‘É‚ ÿ…] ;sã­þp¨+¯Œˆ§/:÷5)_m¿É?›§U˜¸{⩺³:±ñ6½Û¨k!íVíYÔ–7ÊήÃÞÿcígÿ®<-‚2¸D{÷eAþiH£žfZrÒݼOûعǛ֕Œå[ób÷ÜvFüÇqæV¢íwL­ìVG‰òïœuJë4iÒ˜Óœ½®õ€¶_u(³MIÚl7û¾Qþ#mUBϨ&ÔKÁwêùø“ó´ü“ ržÖ´0 ö8üž0 6(Š6|Àô‹¥~èòþpt ºß—ö³\éLjþ›ü.ìóSvœVGÍ|ªG÷¡öL2@gNöTEÊèaÕq±j$èêp•éQÖ©ã‡ÌêgfÝ»¤t&¬ùÖ¾R`é ú0/IòM£ î‡Ãµ¼6·kÕj³÷œÒr¶Á¹Õ=c"w S³Ôõ&&Æ_ßÄÄ„ Ù ±³wà‹¥“•©V}2ï‰ËêŠf™ÙwÕSe3ÒÕ{Ù¾øU°ÎÔýÊt›®ŸX>¾¿]¿uJëPf{¥Î ¥m•:üGÚªŒžr/•ÔóK§ ì¿•OŸ1Ñ–ÕnÀb"ÙÆX÷2Nˆ‰Î^ÛÌà¶žЉ–!B “ÃN 1Ѫim~©ÕlaLwe…*íÏm_™Ä±Û%ûõF„Ýïò½¸F]/|]}zHp¹˜1ÝÐzî(soíŠc`5Ããɉ¯wz4bw—5»ENmT™Š»0›‰ïÔ<”›ûÝñôüßÒ¤i%y»LFü7.LFüž_™,u&#¾j¿= ÅDÃäÌ¥-êN+æˆhÁЉZ$[ò»(pÄf<ëÅoEÑö«˜KÙÂ3mÓmýÊe.¥¦Ws)•#Ø …§[ÊØê¿‹¹tÆÿä«\óy®™ëQßÖ3NsÀ2Á¥n¡~S¯8É8â•2—jµ~ðéÐç¾—?@¹´ø0—Ò9â+`.e8âT}²Úß–¢F½Vûgßþ‰ŽýÇ]Êà@ñí!Ã\ª†¹”a.eÀ€ ~ΚÖ?”ƒŸ‹j^ÓÊëåw}óð¦ZzjèÏȈ7)Í«­—øæ3@¡÷ö´KZÙ‰Œ\ÚÖ}åçk;™Œø ÀdÄÿññ•Ê.g2âlMëOÃ\úM0Ì¥5Ãx†¹´z ~. ·‰I#÷»JýHF<-¯–£ebb²ÚËÿÒæn€pTØdNNžf]M&#¾b0ñð‡gÄW&»œÉˆ¯â”ýЉ®`ôÉ%&,!v¨¤†¼¨¥ÏG¾BF|ïS/:S3·Yuæ\-þ›»üÒe!&Ú1§9¬~òXˆ‰üÇ·€ŽkößÃD7Ÿ…pËZ£iv.M$Ì}j«ƒ@çE;„ØËI=ë+*DxæÆhDv‚& ÀÖ=ø*îáûS:,~ûÿ³waM,môM¡ADņ•ˆ]b MPQQ)ŠElWA¯]øìíÚ+ØÀ‚"ˆ€XQAÅÅŠ‹âUHKù~lHf—$7  èœ'Ïã²3óÎ[f“ÉæìQNçç”× Z:jq¦Ìø•pkf=(áæ3® ¯’~ þÝ §®‰Õ3º’6íC’– ¬LÓÁFÖ€ÃB‚ Tçê8ù%ç·Þ'±©MšÏÅàpÏ|&Î^ÚâØR¿TQ(@çbÖí{SH\%¢8L¦ITú-˜îZŸ^ Š¥æ¢É¼n««1ý`ë'‚äðèô&h½´Jeƒ–CÕ(O•éÎkÕG³ D1+ƒÐ}ÞÉe­Ôû4pS„@øhîÌLZz©K”ÒD…¥ïØÐôû׉Ãú%ï‰O—–4rOæ•T…V/E«ÁÀ¤ÐÞ°*“0bBÀc„ LÓþ'—¶Ð9wuc`¡WÊ ºQÔRªõ×{ÆL`ÔèQo[Òíæ"Æp‹AWðr¯e‡-$Ü9\™`¦v#Áóÿè»fÆÅ8?c®ûuâXîWëø€l—%Ohµtõ Ÿ;³a‹ûm×û›½ìz~Û Wôæ[ÏÎB j™ nN€&m: ”\^ÑѤÅ_ž?ÍFéáåsÃmZYˆŽ*¢1âYõ'dŒx†¡õÙÅùɃ"W5â²ì6Í5 Ùó Þ¤g"k›i:8jÌÛíõW0—9&¼£Î¿f¸îî7ê Là”—†s%æ¥vçX•ö®d!šCçò¾”n´uLòç6Ë»^pY‘OòèW ˜r‹è7n\¢se²´d;±HŒfžÙÐ{õ™ÑÙ.×{rß‹)9Dë…†œe¤*‡4”¯ÊTç_¡7P kñkb©Wdl}9X×Ê3Q•K»Mþù³—]Ë'Ÿ*ðDÓ»ä 2%óK2йdëôï–óêЦÐë¶äoÆò%©ù eF«—¢ @«‰çõ»K}ê7¿óUzHHxs¸f-ArO^÷˜I[¸Ü|šAÕ£:eÑJ©jThvÚH“V…Pmþ˜ÿ'üzX‹ñ ò×CÌÓ¨2ÀÊ¥4üÙÊ¥x§…wZ8¥Uc§…•K1ª °r) ¬r)€¤Ÿ­Û­{÷NßÏANÛ:M~v#|dØ3jgô;QTülçþW?‹«%Y»-¼¤Ê•#zíè·åé£ÛËÃçeééwù>ÓÓÓ 3&<Šß:uÞ¹ª—qÕ©+Êô‰ýPâr\~h²2Ñ>ÈÊÿ®XЄ«èC¹²¾Ã@‘çØáQïÄe·S‰· Ȱr©æÀÊ¥?JyÍߥ0ß)t{¬¯10#ªºF¼²M3âàN«Q3ýî´9ÇYOn~¨W_êv²Tr[L˜¶mè‡;wÓ]r‹6méh²)è%Ñ  yËgB Àû:Q €ÕhÄAŸº´¶1{˜ÊÔdš ™Ë€ wˆ:¬Rzg¿Þà0Âr0€a,¸Fÿ‘¢|n(m"GÑðáàßzÕe8ŸxÔRØ­ý7¸3뻇 ­ NÇÕ×0±ÕÅ”lËÙ+›]íeµk70õ©õR4‰3ãœ{ÞÎ%|ê7Ï‘@3Ø(ÉÇkuí{<ât›1†°çt T3йƒ…–ò½Xå¨N `“¤Ÿô©ˆw®”¹½VœO ,i3ï¶G&FŸÈŒ8Püœï}69r3¾º33âÿ ˜¯ÑªS3ö§3â•?h˜ÿÃvZX¹´ôÇX)—f_¿m¢¯/^Ò35IË—r^Ìã¸ib°4ÆÜ$êiQ²A¥&dH½S0KÐÓæc·n™Ü h#4‘§•EMï#9Ì[ÂxÝ®‹ûÔb ª´ôR jÒõâ8íp4†«yû-ýj3¨™§„Œ®CšÁ½y»ds©‰$ö 6èX’¼4¹,#…Sí–A»‰ e8èX¤„uƒM¥Îÿn HºË?.Ëψ§pQ®.»Y“‡Û½§„ì]„ñêñPÕ5â•=h˜ÿwZЦk·à—÷ý,þ€]û{t]¨ÏdÙwÅŽO;'4,zÞ/6´]×î›ÝužÂà»nÜø§3ßAðr)€~»ÑóÉoñ»&ï?¶°{O/¦Àn"ÈØÒ¶C[=d>ñ§§ÕêWÐç „9*÷v¬”Û¦§ÿÖ=#êH2O6^°Ã¶Ÿ«÷ý1Õ Hój HùËØüá@°Ÿuï.C èYêàµÝ Ñ)“¥¿6“M¥F=̯5°/˜·9€(øsl»³Nõk97‹¸°8Ý?þ³äíé.»Î¹¸ØèŸYýF0aï‚•í àÞÑ¥Ïãy§³!í3òéÎS6²j RP¯³Õ¯©-ß¾Q *¥4ä1׈Ѯ]ÛuiÆæhHöoºÞºs×sÂÇdÈ»'ÇwÚ5¡³Íàº]ï¶.óêîÜYi剢•Eö¡‰;²îtªæ“šèqæc)Ò;’^ŠA5ÙPVeÝ ¼…áÛ, IDAT¤“Á fž2ºi£ æLr:4¨/ º7ï~¿t¦‹oØÎ#‹N©I”üÌ‹<Ðuklœ¬ýŠšw Ÿê»ÛØ[×*uý¾÷â’îÈÇeÙ4â)úïˆt8M½ºÅd×®³?q/ÖˆW¬_Õ5âAö IŒ;X#¾œß 1#°r)†Æè·çøRO‹Ìäˆ}%8j~°ÁŒøß:Ìß#±˜QÑÀÊ¥ ü†Ê¥j ±Vç÷¨nþ®8áÓŸÇáºàm†fÀÊ¥•­\ ¬Z‚WkÙØ7nøÆä¥Ótpä™ä¶è& óªE…×UÂHþ‡%Lª¦%M«‹iÜqïÝTõoTÕM Œ_¢ºåà&ÿ§|žó‚“éééïó%˜¯˜¯ñªS1ö§3â•?h˜ÿÃvZ²·¯ŒX³!ÎÊßÙ…;,w ]¹4U¦\º@&’I~×>øŸ£ðúq‰˜äÀF«cÙ%º =¬vD6§_¹÷§û®øÊÔ3™»Mü3Ñ]8TƒPÇVãeÔ"W—sNþ¯ÿÞÕ×áÍn¶û#lÛò8\ayÝ 4QG5àfÃG‡kí}Eò6’§•©‰þïå«c9v›½ uëè|â“ ÉÏ>0î#0kñŸoTP&Ý{ ÕjVc†i| Ÿè¿&¢:òqY6F¼&Zð§–öµ°hè>r'fÄ«fÄCUgÄ+{Ð0#þGó´000*à6BÅò´$>ýí_ê´=qd‹.CÁ¶9¿~â˜̈óñõµ)ŠÞèyJ€‚ûÿÄ›Lw¯ËRÚ§^¡À¹ïÔ|Ãf±qaÆ,•vÐã?˜§%òq•iÄÿuñbp?|ršÿ¤~꺰 QÑãøß‚G4Ôþ)á“á’“œ^3aY±â虵´d6‹ßó“ž% ëÕP@hó×­K›mD™‡ì‡n«ÁåGî^®ÃP®®.“§;ƒ ‡ú·çxÚHŠHT±Brîv´¥•Ûâ­þö”Õ(Ê{œ½Ûµ6yOK~œ2sÞ«V WÿÕ=Ö$pľÈÏ¥W¶©ý—,óÇf©è#]ÿ—ÇÑ;ÿÎÛ¹±®Š>ô+Hi4áJûÔývÛ]¦¤u5f¹íЮâ²Ú©<-¼ÓÂÀÀ¨r;­_w ‚ñU(±˜Q9;-¬\Zf|§r)£†ƒ@Hrn¸w6*ÓÀ²Í¥BMôû¡Ä 沜¶Q |2ʺ:ùçö‰~Ž{p¦iÿ”“Ó;ØÙñjý (Òy-#®¥­&ª¡ ý&Ç>WÓs4£°íT&9¦á-%OªPµ5pX?µŽÒQjš€i™ùäÂõMLöš”ËáC›eE)¥ÚQ†!·R¶‡ÎÀoµ8°rie+—2´«?˜Ø½«ùÈyç÷Ðçt¼u~„Ü8-. ç*¥&ª( Ô¹d •KK6²B‚©6dt.NAò z{}JæÙ–³‡Þ] ðoú”KÍuÌu>ž8w#a,h›uˆÚvûÂÁG±ÙU5(_•)‰å÷3”¤ÅÅnÐÕLüèeõ–ê%[YMFFNk¬<½Jaä=½ m.HyRTÕ6/1Àøø}]ê²^”&€–óãWl9âÛVN}½¸ðÀ»óÓ–Üzø7@Ñ,·ÕÚÚùE ñ(Z)ÕŒŠËJXucÝžx› ¡µ*¥å~#åçRxÁ˜¯)0#^ãU§bìOgÄ+Ð0#þ‡í´+—–B)—’(úøø «6ÝyáÝ‚nA#‡9‘镚ÍEWEŠBu.ªr© ¯ò@É~q«èaȰƒÈדJæ‹î¬µ;q~ÚÕÛû¤=)P·ÕË®rºÍJŒZzTùªLO”è_è>Õvð6Õ -.¿#Kþ3Ó¢s{ɇ>>iPŠ|"~Ë]åàÔ£6”J/ºDÑ&Ú\€Ê“–¢†íR_¯BÏÈë¥hbT;8ùÕÜ)ž£®^bŒ›zzÑÆœÿ]ê¼´jyÙ '{N¸ÀÐxTéRª5qÆÃñÅ»„ã6ÿÀ7+¯Y-÷{ñ~.…Œñš3⡪3â•=h˜ÿ#€yZX¹T ôÚ ²Oüvãp ž/ËöÌ òY-þ•ª¬ÓίNdÜÏ?%!ìv³–šÏ:›[¦¦ò,먊ài¡´V¥$ôr3âÝôï"ü\†œܧæ#̈ט_Õñ”MTôÁŒø²¡*3âY&¡›™’Š7BåÚ4öãç…œËþÏŽýZ¸Ktb”ç̈ÿãvZU/±˜Q9;-¬\Š•K±r)FE+—båR¬\ŠQ5n“¡¼f%W•¬vô áüRú¨1^·Ϳ³92áÚ±5žÛÒÕ°ãÇOZõg–3âUŸ¯"Œø fÄÓyZðáV1¿ºÚŒŒ½´v,ÿ H”ûænêñíïìw¬ÙË7|Û4‹€HfüRGÔ¯‰Î¶÷óLëhq¢Î¯§õ)m¼øåÁl>ŸÖËY k<{MˆHÐÍ ß’ãvâéדÛè‡/¹×xQßî‘Ò_ü§._¾ÃÎäDòøÝ±ëžT_‡A¡‰ãìÜךå4h™¢7úgñ´ä½:0&Åvÿ0³>¶~§/†ÈmÎØ±yÝÝ‘Q³º¡<­õ_Íl£;ï—¥Ô¬èµb%D]<(Í»kã}*9nz]!Q¶ö_ùúøÜv¥Ç*åie„ôCþÄTý|hùqrrü†Lµ`‰¯[Âãl0|l¦Ò>?/,wòŸ÷6ßyÀj-3ï¶g'Vm8wvl~mçŸYÉgƒ|\ø=]_çysk œç¦@žënÿ³ïWX9Z ‡{¿]Æç÷\pÑ3*~7qÜ”ˆ³O}½èbFÇ&: ô™y)жŠä@«_ðxçÆ§Í’ãf{Ú{±T¬`‡÷dÏçOÞD9¯ls¿åû€•‡?z¬IÔTû’Ì÷9µ-z±Aªª*ÊÚGéåIëC¹Z¿Ãå -£ŸpOkyÚ]çfú—6Ï™6'€%>&›»s¸‹ž Ju:ùÃêU7 *hò³Â+NkòØt䡘¾!Ö^Êñ·_‡€èËrGǨ9š,Û\†ŽQ£ž¸o~õÃÃWâ†sYNÛºÜyƒS—½W¾Àö‰ãÊëÖOØË4í)´ùÔÕ·¥’Å•}ÎoÏá¶±Œ\©£jQ)ʧß$îyBí/·{¶ôjð°ÀN!1‘Õk‰z_'Žuá~Uœ` „‘¤¤–ÃzŸì9›Ò”< ª¦ ˜F‘¯nÔ~{Ú¡ËT °×¤$õäovî±çÒ¿¢”RÍ( ³Ú¶ëñ…w£ µŒ1#þO¸§U‹ñ•zO +—Ò>á°r)`åReqaåÒŸ§\ŠQ%•K±r)V.%ãÂÊ¥¿¸r)Bk¥ÓåIG8¶š¨]£F¨ìxi=_œ“žžžž~×ÑÿfÄ—fÄ«>_Uñš0Ð1#¾<ÀŒx¬\ªX¹T-°r)T¢r)Pi­$9Ý€¡Œ?Ú\Á|OÚ‹|¤Òy²2#Òåìø˜ñï¤é¤4Öü»A¡bTq„1#ž<ÆŒøªÈˆ×„ŽñeEUfijLB·Xý@{ÿp¹<ŽìUõ¶YÌjs*l¯œoê¶Ô%ÉQ¾ÍÒiìçX³ÿÛ¬ ªraZÈÜf1 çÿÝV“Ž­}ç襭Vµ+RÓ¤•9ªPÐZrºboGåØ*˜ï à2Sx²¨„O!MSYó)s{­8ª9˜ñU—0Ð1#¾œ(*,°Ô7 •òôÍ»´_öjU?K} ©ôª¥¾9ù’5uÞr¾û.ÝvïÕÎRßÜ7ò«»±ù¼ó…S6—÷´¬f%evýÙ*þÊ+©TzuaK}óÓD®T*6ÐRß|òæË…RiÞÓ”.ò%¯u\ß ¥Rñ·Iõ¹–úæSWœ“J%!ƒùtƒ†öÒK“,õ›?)Ù˜[v½÷¶Hôñ‘}5sËZ^Òt/¯´&tÔ±eƿŌì`>O*•J/M²Ô7·ÔçI³I?¥-õÍÇΉ•J¥ ޤ̀ý¯ã‡ZYê›ó=S§Õ1·Ô7ç{]›V—ê¼¾¹¥¾ù¿ï"41¨xÚKsI¥Òè‰ý,õéÑQê2ßlªH*-x#èn`n©o¾b¿@*•f§²Ô7ÿç¾”¯onÛkÇ“uCiyµœ?J?Þ{LÌv DUª”Š×Äcßz˜[ê›[ÖŸr¶_ûõ=ï¥R©`^ojzéUfƒZ/ôÕµÛz©Tzrß%ñ§´Ž¥…†L[‡ƒÕ{<ù$–Šóö ì¢Î Ú:¬ÎúYúåÁÙÎ¥¼¥Äeh/•|–J¥{½lJ—}ýs_úèuAÑ›[ÖsKã~y‘Ã-õÍoH¥J9ÿ³^íô›µÖkÜ\·Áɨ0iãñãÇÒ_çÌ/æï‘Ø?<¥•€“Qaئ”Í`QF¬ÙQ°H µ¢èQ¸Ãn7GW./S.]Àk´€T.%ûG ¸s¸ä2‘Ì53.ƱwrI]ЯÖñÍ]–<¡üâ{ºïŠð¹b&“c·ž&€·$¿í†+]’­gg!µÌ Ž­ grG£€Ë_OŽè8ª7®ùùéÍn¶ûåv•Ï JÓÊBtTP®òì!Ïð²àDk+—&Š´ªÁåØmô&Ä­c0è0 P I~öI ¼ß´ÿ?Ÿžnhax%.ç¡Îg€C³š¤àÎf^Ÿ„¶ë¯t>b½!Ka°È,¥&dRï4ùs›ˆùÍ]–<9üׄ†FanõdϽù_¸÷u¡Ç‚Ï47³öuçpÁÐ1ªÔ¯Ch¢d"´%¥¼.Tt»6se€£[±í¨["ΪE§YÍ­²y‰d§HzéUfƒZå"ô[Žiû™ ¸ Ÿâ|Õ×”9ç%óhÈè:í¨Á‹ŸZq,ÀÐ1j”§x¡J7„”uxùóÑî.€žàÝz^ÝU‰-3H™Ïë“°úÁ>ÆMÊ¡¯ ã-Ú|% 6f²YJ/"1`````üT`žFÙ¾n:f[»¿Ø/8ªP<-ÉÚm‡Î:s:yˆ?F'e4–¤-}Ð=& Œmƒžœ¬Ógî#õæ ÚïÝ1RlëäºÜzá«}#ª¡FŠ<Çú Yº×½ö¿ŠóD›ã³ºè¦­Ët9ìWéo¡°3ÚŒrÜÓïâù yâòçi¤ïš_ûïZâö}Ûëkï¡Wìì ?šÏïºçü8ÖÞ­ŸÅÓBVHúÙº/Þ²ð#£aŸ6F2›¢×Ž“ãBü­_ÓŸêÈz#ü6nÕƒ]³;6æÜ^úв ±=Õ"p¹c-Æ‘¥j¥QVHS•cE™>ǵ÷¸šå¸üP囊>ž¹ŠÕ>Éâ;biŒ$4»úÊkgtSÅ•Kù¦5±SÀÊ¥儸Y(ÞfU:˜3&yë’ÏI²j ìÒ¤`bŒÈ{ 'ÙÍš<Üî=%¼`ï"Ô„èuä õ –&6Ê]€ö/~y0öso@{º=Ë¿À?*û «]EŸÒ>+› ¹T5¸ú¾ÇåÊ-£J]‚ä?ËÓî „ÄÆ•¤ZK.ê£ðÏ“‡!qòâ-ò!#ä˜`L:tL $VLm_©^—)…N§ Ùt+nò³Â+òcÓ‘‡®DؕջqÏ„OÄ…´†L€gÓIí%¦éàk'‡é­©~¬×(æMºàSjï†ZeÙÐ1ꯆštÜ)$´ðç;Æ/9­U)¶¬Œx´?Ê«¥ØAXóèÿWòvñU¯ìAÀŒøÙ¯‡áBb8‡+AÖ:^í©%ñ7yœ¡áB¢À›Î;šFü¦ï9sÐG¥XÓ–ŽØ¸ ‚^{¸ÜÌ"Êd[>þÆ\Ïëı.ÜoFìïynØžwhÛ˜‡â mS>ˆ€i64zøÍA+ˆ wˆØŽÜñσZf‚²­¸vJ!,÷ak ÃXpu¯ë^T€»|nx+k"G‰¨ñ U_p¼5),î|âÑ ·–O›ù¯nºwúmÇí6ýe9ôеå˜ØŽjöøÀõb¶åì•&[¦Ÿ—‘•Ø–s\?ÿsÝý„ÁÖ> /æžs _ðW’Ós^¶D1оA6jwãíU.ý#_RÍq#‡è±ÏÝ6‰H1ý!1ŒÃ=($†s¸"ª¤;£Å”•õBg$ €Õdä¡—<6¾PªoŽ¡ *HåA)°FüŸ¬QAÿõ+—ÒPAÊ¥EwV×»3qT¯Þ¾þÕ™¬k§ëF¾¿Xã–KÞõìÖhÞwÒšÞ©=ç{Mq!´Šü»¨V”÷'5-)Zʲ! œªº‰ñ½÷´þð,`åR Œ‹ŠeÄ 4ز0âQ#gv˜éo¦œ#<Ž©¼fÄfÄÿŒxXê˜ÿ}÷´ª°r)Š U.àÿ³£¾Ge)—þþ(£r韖9­U9 VF<…rf‘þ*9Â*ú`F< ̈‡ªÎˆ×€¥Žñå\‚ä?áB‚ÀæŽ9ö? –@x@ÞCÖÔÚ­‡ÆˆïÿÀen³jÝ̽Pò7{ɹDžÕVÞ½- }[@÷U{¯ ‰”{al%4mN}$_Ó¬`,>™Ø§.Ý CßÒ¼32ç±!@ËdÆÃ›/ãYœNr:?§¼nКÐQ‹3eƯ„[3ëy„D 7Ÿq]x•ôSðïnè8u@H¬žÑ•´i’´d`-¨æ²ßÖ Ú€p[#ªóøt©&‘¬U÷œ½B $GYÐ ¢£Ôe¾nß›Bâ*Åax†D „Ĺ«K ¡­À¨Ç¬È¥iî™ÏÄÙK[[êÓ ¢‰*UJ¬"Òj“+ƸÏ?ö¦qǽwSB"Ô¿5½tƒ*³A­eCØn²@H,ÞsëõQV©D¡!ÓÖ!Å »NäëtÁ×;Ój¨sƒ¶Ùu£ßnl/ýžÓhÈÂ=!0 ^éR¢°ôš~ÿ:qXŸ c‘Ö Jž` 9ÿ;ANkUJƒÕ„¡qfåýÕp„•öÁŒx˜_Õñš°Ô1#¾| 2âÆ‚´Q¼¶›½<ÎpùNk8‡+eÖ\qî:®æb“à9¿u OËöi7ÿ1Þ€[,W.E-$Ü9\ ù‡v#Áóÿè»fÆÅ8?c®ûuâXîWëø€lš~&´tõ Ÿ;³a‹ûm×û›½ìz~Û Wôæ[ÏÎB j™ nN€&m: ”\^ÑѤÅ_ž?ÍFéáåsÃmZYˆŽ*¢1âYõ'dŒx†¡õÙÅùɃ"W5â²ì6Í5 Ùó Þ¤g š–Ìz£ì:ßxþ¹a«+k\NäQœ§ÔF3ƒ eFÒÞÛ®¿¢»ÀzC–Â`–Y:jÈ5Õ!_J7Ú:&ùs›å]/¸,yl“™ûÂÜê%w³Yí}hú­àëB› >s¨n$æ¥vçX•b/ÇYDh-%ª\Ê4вT.M_Ô3§¹‚˜OK/Í ÊlP«Œ> ÁqÚausüÂç‡z üÐóñô9ÏR)™GBF×áµÜ¨Á‹Â+Vk2äÑ÷þVéõ1…ËÂÔî+=Á»å4åR4.y)W ˜r“„*׆l‰’_ ­i=ì²ü …óŸ~šr)fÄÿÞaþ‰ÅŒxŒŠùë!æia`”X¹ï´ðN ï´004ÜiaåR Œ2+—þ”ÍÛÚmá}ø# ÏyÁÉôôô÷ù¤*£Ï¥ÞJ´þ>}f|u7fDØ3•FŠsÒÓÓÓÓï:úŸô³u»uïÞéû9TãÈyJÿb[§ÉÏn„ {F;?iÕŸYž‚ô]£×»õäÝ|×ÞC—Üþ£ùüíDQñ³û_ÿ+-t D¯ý¶<}t{yØã¼L"=ý.ßç`zzzaæ¡À„Gñ[§Î;÷Qµq´úªÎkÒ@”éû¡Ä%ä¸üP5¯š>Ežc‡G½_,hÂUôA¯Öï±£‘ϪìT°ri™ñÊ¥Œ!!ȹáÞÙ¨LË6—Æò¤e…74˜ËrÚFðÉ(ëêäŸÛÿ%ú9vî5˜¦ýSNNï`gÇ«Åú Wé¼–×ÒVÍ¢R”O¿É±ÄÕôÃ;¤(UÕp‰z_'¨$,0š<2pX?µŽÒQjš€i™ùäÂõMrßõÛúÒ¦–iZJµ£ Cn¥lñ߬Z«Á©¥}-,ºDHQedă¶‘……ÅJ¿…ç68R‰Ò ã”óḧ/̈‡*Έׄ]ŽñßµÓjÔL¿‡;mÎqA„›ßêÕ×€º,•ܦm:€ÇáÎÝt—|«›¶t4Ùô’hPŠw½å3¡UòùÁj4â m󰇩ìã–i64f.&Ü!ê°JdèýzƒÃË}À†±àýGŠò¹¡´‰EǃëU—Mà|âQK]`·ößàb̬ï2´68T_ ÀÄvTS0´«?˜Ø½«ùÈyç÷Ðçt¼u~„Ü8-. 犠´+ŠBu.Œ¢§7‘od#„SmÈè\:‚äôöú”̳-g½»àßô)—šë˜ë|ãwÃ3tÂSþ#¶§*Ø—K˜Ÿjív Õy—ƒ¼¦07‹Û ó_={:L¹Í4¼¯wÊð}“„—8|ªópYø(ÄwÒË‚ê©G£ÚPãÒp®./ÍÛ¶/­‰íp÷ͯÐôÒ–":—÷5Bºbøma»eÝ.º¬ÈGyÙE¥îÈÈݰDæòØ]ØÂB&9óâîý£ÌG¾º&¼9sÈâáƒy5†õ©”9Þ 9S–CN·Yñ³_; :Ds¨~¹ªLOè ¾Fù K=z¤bððq!—ï"{æà—ÍÆÌ¬âº(€qècúÌzÍé_Ù†‚¼ó3\¦Å†ºq¸#Ðô.y‚.ÑaHÓ€µ9è\ƒ¯_æâN]§ÿO¯å—rK]¼z‚× yf³i<ú"´‰QMðf%¯ÞÔáUNçºc,jt4­KпŽÑ/Å2#i¾¼v›@ÓQ Z)Uª=j÷´Z‡¯Ô÷°ªñó´~¿0ÄbžFE3âÀÊ¥*¡×V}TþW7·ðçù²lϬ ŸÕâ_©Ê:íüúèDÆÝøüSÂn7k©i𬳹ej*ŸÁ²ŽÂŒx¼ÓÂ;- ¬\ª@ÕV.U¾øAj¢ù÷ä™á©ÚfU–réüïØf©¬ò÷9_˜¢~›ÕoaP¹¯±ÿ”'-J[­jW¤¦©|ø¨²ã¿xÍš0âóïlŽL¸vlç¶t g–Âv„c‹²ãU²à1#0#þw`Ä+{Ф<±`F<X¹´²•K™¦ƒŒ¬ ‡IU²Ž“_rqë}›Ú¤ù\t5QJQ(@ç¢(—2M¢Òo „Ät×úôQÕDÕ(—R2¯ÛêjL?Øú‰`#9<:½ Z/-æû IDATP'»ªþ®J9ªLw^«>ˆ§D1+ƒÐ}ÞÉe­Ôû4pS„@øhîÌLZz©K”¦‹‚"O U[àžÌ+© ­^Š&VƒI¡½`U&aÄ„€Ç„ ˜¦ýO.m Ì=.°&ñšŽ¢–Rͨ¿îÜ3f£Føfõ¼fMñˆæ;…3‹°Ý©[„¯šñ€ñ¿F¼ÒM0#þG€B%+ʈ52 mVòµõQ¸Ãn7'Òb°´YRw{öøl È•KÅ;Ú‘ý£…Ü9Ü@òíF½MZ3ãb{'·±½µ#‡ûÕÀ:>°9:#ɽ?ÝwEHø\1“ɱ[Ï?À[’ßvÕ.ÉÖ³³ƒZfPÇV3¹£Q Àå¯'GtÕ×üüôf7ÛýˆriyÜ 4­,DG5àZ!#žáeÁ R‹\ÚµîôsxɃ"­jp9v›½ që : (”B’Ÿ}’üݾ^SÇ͇w7k!¸œ£pþ+ÃuU­£|ƒ²Úôùi¤†s%fíëÎá‚¡cÔ(Ù}yQ(…7‡Îå}xýŸQÉŸÛDÌoî²"ßüù\žEÂê;–ÂÓ’¼EÝ€Ê\L––l-‹Eb4ó̆ÞŸ€3÷  ¨9|ŽÖ ¹È,ˆ–CU(_•Sh‰Re—H˜:zÆæÆU¹Ä±ÛÔ&| ojþN!CÑô.¡,QJæ—d sÀx‹6_AOðn=©wêÐLþî&´©h¥·$5˜úÔz)šÄ™qN‹=oç>õ›çH ‹l”€ä㵺ö==‚C;‘¶Ü̶F¿Öhs -å{±ÊQÀ& H??èó£Þ­œùü<>xròï·ø|bÅÑ3ŠÅ™sÛÓ3 «È$8ÎäŒø#[ŠŸó½Ï&GŽ‡Ü ü~7`urü¬¶G&FŸÈŒ82¶{h7æ Pð @š'pî;5ß°Ù±¸0-Èûki«<6ß5úvÿwZ$#>é%+üôçÜ.÷ÝQNsSëÔè¹.i‚Fÿ,ßÔ¯’Ÿž% WˆOáòŒxr¡o¤fÞòê<Þ\8”dÄG$E(]!À€ðþ öüÉ­Üoõ÷FW ò/‘æ~ˇgÌ;pÕÊßmÞS~¬Ñ§»j_D2â¿dIUõAW»ª>”XTÎEI¸Ò>´«µÜv´µA~µ–ÕNeó´0ª ˜†ínÝqã5ýß/åÕØ¤G×ûµ¼÷í'L=ã Üœ+,cSù –uæiýÞaþ‰Å<-ŒŠÉÓÒ‰À¨*ä¦ñš¦ýj^í¶où³¦^Ûœ[ަòüá£0000þ”Ûä?X¹Ts|§riƒ)ñÝ 8N!^Jku*Ô)H6¾¥ô3KA…r)š¨ò–Þï7X™Ð|*âÒ¸”ÿ]”ßq§­BÞ½eeÄ£Çâ¶£¶d½¸b;þ¨Êc ¯3âéÀŒxÕç« #^YrÊ fÄ«ØiaåÒÒc¤\š}ý¶‰¾¾@xIÏÔ$-K\Êy…:¥zƒ¥1æ&QO Ôˆª Y™´¦¡€X‚ž6»uËäVð_*©*µ”(jzéÌaÞÆëv]ܧC»Å”µ¥é¥Ô ¥ëÅqÚáh Wó"8ö[úÕfP3O ]‡4ƒ{óvÉæRsmÕýB‚ :‚$/M.ËH!ÁT»°e EMu,RºA‰½R篅JåÝ‘/)ecÄSŽÚ:ZÒÜÜ<ÃÚ†*Qb5fÄ—fÄCgÄ+OfÄÿÀ´éÚ-øå}?‹¿àG×þ]ê3Yö]±ãÓÎ ‹†÷‹ m×µûfwg…0¸Ç®7þéÌw¼\  ßntÀ|ò[üî…Éû-ìÞÓÆË£)°›2¶´íÐV™OüéiµúÕôy!AŽÊ½+å¶éé¿uψ:’Ì“ì°íçêÇ}ÿAL5Ò|§R¾Ä268ìgÝ»KÀp(z–:xm@÷CtÊäF)ÈšJz˜_k`_þ0osQ6ðçØvgœê×rnqaqºügÉÛÓ]vsq±Ñ?³ú`ÂÞ+Û@Á½£KŸÇó8NgCÚgäÓ§ldÕ¤ ^g«^S[¾}'¢T:JiÈc®£]»¶ëÒŒÍÑìßt½uç®ç„É3vOŽï´kBgšÁu»Þm]æÕݹ³ÒÊE+%ŠìCwdÝéTÍ'5ÑãÌÇR¤w$½ƒj²¡¬Ê(ºxI%"&ƒAÍ<%dtÒ F'Ì™äÕw¶±·®Uê"úÍ>˕ʻ+n\h¢Ÿ{ÏçǽÍw°šrÌ4vÖ¿4fòªIãz¨_EñJ4)O,˜¯b§E¢(#Ölˆ³Ò~E–»„®\š*S.]J¾‹u2´#ßœ¢…þçèÀãp'¬~\"&9°ÑêXv‰.h«ÑÍéDîýé¾+¾2õÄL&ÇnÿLÓ<¥OtÕ Ô±äÄxµÈ•À圓ÿë?À£w@õÆ5Ax³›íþÛ¶<WX^7(MÔQA ¸Ùð‘ÇáZ{_‘¼ä)DAej¢ÿ{ùÀªÆXŽÝ¦AoBÝ::Ÿø¤ÃHò³ŒûÌZüç¿‚Oº÷@«Õ¬Æ Óø@ x²¤÷G÷C–²Vù("ºqs´›¸Ÿ[ßž2)’é;ùlÄüæ2MK·NÈ6@JÖ¾ÞÆ\'§ @‹‹ej•àÈãpÇlx*SÝä´|„?Ü1~¥¯… Z+…¨®ø¦÷ߌx´j„ÂÏU(eSù¶˜¯˜U]#^éƒ&˜ÿ#€yZp¡xZ¤Ð3@£ääýëÿò8zçßyûO87Ö%Ù6’œÛî2Õé#­«Oû—:mOÙ¢ËP¨{Sû0äFz?”ŸoŸK*eÇÆ…‘ÿ+TÁýâM¦»×e!8¿~â˜̈óñõµ=Þÿ¿Ñ#…UDJyR‘8ÈÇU¦ÿ×Å‹Áý@òÉiþ“ú©ëÂ.DEã JÑPû§„îôš ËâˆGÏô¨¥%³Yünœ×˜ô,i`x\¯†ºB›¿n]Úl#Ê¥ön¨UæU–ÆNÍä²0000000T+—V¶r)ÛröÊfW{™píÚ Ï•ÛrŽÎ¸V³´ƒÛèœ]žpõåj¹}ù(zÙØF «®p÷<óJ¤¼°¤iÉ–4BH0A¹Ð(*Êj2’Üùa`üJ@h­J ïš0âüY•úï(#9¦ð…1#ž̈W}¾Š0â•>hRžX0#^ÅN °ri)TriÑÕõãîLÕ«·¯u&ëÚ麑/Å/Ö8‡eÇ’WX·Fóv¸Ë(ñòQ4ôœï5Åi„Ð:(òïf´©¤2¼Ê-  ªVø¿ˆå.rpêQ¸cüJ_ ´V¥„w ñþ¬ ýw”O9FøÂ˜_˜U¯ôÄÿÀ<-¬\ŠñÃo#T,#~Jxל/»û"ãÏ2QZ½Üø¥S3äŒøêù”ò…1#¾ô—S̈¯âŒx)zE¨èƒñeCUfijLB763%ž©„Nc?~^ȹìßm®ªæ|¿…A§..ŸÌikß9Ow®,À;­*µÁŒø*”ẌǨœV.­låR¦éà#kÀa!Áªóuœü’óˆ[ï“ØÔ&Íç¢É“R‹B:—½SJ(n”š‹$óº­®Æô€­Ÿ6’ãӛ õÒ*• ZU£¶~§/†ÈmÎØ±yÝÝ‘Q³º¡<­õ_Íl£;ï—¥Ô¬è5e)JóîÚxŸJŽ›ƒžGWHÔ…­ýW¾>>·]é±JyZE!=Ç?1U?Ú_~œœÿŸ!SíXâë–ð8Œ$›©ªÒ«Fe,ªÊƒ<ájr…\­ÍËmçà¾þ'Ø}>­§ñ´4±S9 =ÄzIU’Ü4^Ó´_Í«Ýö-ÖÔk›sËÑT>ƒ?|T™‘{ß/â¬NŽŸÕöÈÄè™çŸ7’œÛž2Ž­/²˜ìÚuöÙ à2Kód ÷cqaÀ”:ë_39vÞþ”óÔ‰RæöZq>€i,ï¯e¦+w@KÐcó]£¡bvZ¿8v&Ÿ òq‘1âϹ]œæ¦Ö¨Ñs]Ò8>þY¾‘„h>xròï·ø|bÅÑ3ÈíwÇMIÏ’†ÓÅŒŽMtJáò#/E¡«í eæ-¯~ÁãÁ…C“ãf{Ú{E$E(]!À€ðþ öüÉ­Üoõ÷.½Œi`›û-ž1ïÀU+¶yOù±&Q£¾ˆ2ßçÔ¶èõ%Kªº„rÕ(ëC‰E¥J•ö¡]­å¶£­ ®ŸÔÇ®ÜÎO¸§µ<í®s3ýK›çL› ÀeŽîî¢'ëk¿»yb€­?³Ý¬ Ã- R¾u|ñã…ŒI‡â|´<=wH‰¤V¥@ËLp¼%¯O‚ÒFNAþ°zÕÍŠbŸ^qâX“Ǧ#Åô ±öº ùðSℹ\ÍŽSˆË“I/i÷vë–É­€f0B3yZ)QÔô>ҙü%Œ×íº¸O-* JK/Å Ù(]/ŽÓGc¸šÁ±ßÒ¯6ƒšyJÈè:¤Ü›G°A¦³¯‰$ö 6èX’¼4¹8#…Sí–A»‰ e8èX¤„uƒM¥ÎÿÞø¥>,+Ι?|OPáãmFå+—V¶riÁ½£KŸÇó8NgCÚgäÓ§ldÕ¤ ^g«^S[¾}'¢T:JiÈT½SÉþM×[wîzNø˜ 9c÷äøN»&t6 ¤H¡–‚4qGÖNÕ|R=Î|”ÒM é¥T“ ÕŠ¬$ºxI%"&ƒAÍ<%dtÒ F'Ì™äÕw¶±·®Uê"Âop?˜€•K14F¿=Ç—zZd&G ì(ÁéPÊüõã×å×Ã*–Iè«hï.—Ç‘½~“m–Nc?Çš¿á\?Ûù>ýy®‹ÆÛ¬~ ƒÊ}µö£ UX¹+—båR¬\ X¹£bwZ$°r) ¬\Š•K±ré/§\ŠQ5yZUçkV.¥¢ª(—Zß<ˆW/Æ/£•gp0* Uù˜ÆÀÀøµî´ìœã„`T>^fþÆ\Ïëı.ÜoFìïynØžwhÛ˜‡â mS>ˆ€i64zøÍA+ˆ wˆØŽÜñϨzg¿Þp5ì,”BXîÃÖ†±àê^WÊÿqV>7¼•5‘£hÛŽÿÖÖšñè…[˧ÍüW7Ý;ý¶ãv›‹~‡²œŽ?zèÚòLlG5{|àú1ÛröJ“-½Ldÿ ÛrŽÎ¸V³ÜO´Ñëóàìò„«/Wÿ•$³/EË<“mÔ°zá Ï3¯Tl„Œ¢Ç>wÛ$"·¤Bb‡{PH /µs"ãb´˜²²^èŒD!°šŒ<4à’ÇÆøòÀø!hÖ¢]ðRüÁûpqø°?cîb»ñg.ìè¯ùÁZïV3Âu¾7Æÿž7cé˜=ÕU7·šºh7*êÂ^¯ª™ç2¯ÒÙ^}Rrm.Ÿœß©*YïßV.­|åÒ¢;«ëÇÝ™8ªWo_ÿêLÖµÓu#_Š_¬qËŽQ·Fóv¸>ÈGÑÐs¾×§Bë È¿›ÑB¦jÊð*´€*4ªZáSü"–»<ÊÁ©Gm|•`üˆÄÅë6n:|ÔÛwoEââ’×·îÛä¦Ìì=e×åÜ7‚BqÞΩ/'9/¾–“:÷`š »ÇæÝD¢\{ï¯^Þu³1"}¶ýë´H\,*ÈèîµCY‡âvcDâââOçVÙeçäzåc­Ã‹ó^>½b7%NTðÌ+,C$.îÓwH\,|°áBn±H\Lõ!Ÿ?xÙÛÌ'ÑOò(vD_º»-yqÿDße×DÅïº;Ï,úö´ÏÂkhŸ„i}óÅÅ"qñó£?‹Ä"ŠéyPoчãI}BXÔ¸(y(þÔË?ºH˜Ñ7è¢ÊÅ”y1Rãj<*d´£ŸÒ|þ„ÜŠ‹}{ö<}08R„¬QÑ«îNþE™NŸ¡Ø,~çöT$.²sߦ2·ÅïmÆl}tnSqI*~¡¯€gä ·g9 C·èÿžíj{¶LnЕK©¢£`ZMôÿÓ-äqäŒ4,i’~åqÈïñ—ÈËs—•´yÝ€Wgy²Ç| ç–EÁÙYó®Œ;Q*äЮäØk.g‰šeÊ€ëÓl®ÀåRÙ€Ç[fÈù—æò8 ‘ÃÅ»Œp»@$ªal¶;˜<–oÀ$ò?%Ræ²tD/ŽTk3¨NIîÍ`‰ƒ´s³¦Õ[Ye*ú|££ÏÓ:F§‚›#F¸Ûý•°ÆV,ÃôàÚÁ´ò•-‰@»Öý¢¦gŽ{èíìÌzÄK±NŸ: xÕˆ½Ö›ÎÛ33ãpL¤X$KE…"±HsQàÜ¡éù›þNí¿³øöÐrܸº\£o—–ЧOlàî+eÕ-xpJ,RÜØ³]¶fö–ycô„‰¢ÜEb‰¤²TÈó ý|EU¼R¦^î·b±ˆE‰ ÉCaæQþð¾R-]ÆÅEbQå1Šz(æ•Ç@«€©[â€$ëÓ·Ú&?-·Pô¨Î°Võj¶ãRˆ¬±È]‡ç*e˜h âÅ"E,RF±°@,*D,)ÍmqvRÿáM[H`ßñ_&ÏeXK²K‰´/¡}TäV‘‰Ä"±T"‹D¢Ì$Ÿ-äy©Z‡ºfÄíLq{3¡I —†U“Ï2 ÝØ|Ì”T\¿ò@§±?/ä\övì·0èÔÂÅX £@ñí;w¯r¸%µé¤¡fZ¿¦’¶W·Ÿ¨Sñ½ŠßTÏe*™…ü´u/›Oo¡ûëåVüÞ÷ìTç÷È3Æï„»7.+4â±r)Š U.V-Á«5Èlì7|còR€i:8òLr[tyUŒ¢Âë*a$ÿC&UÓ’¦Õ‰ÆÅ4î¸÷nª@H„ú7ªê&Æw¢¸¨°ª½Šë[ù 1ÿ²Öèî씉êöö“–kµ˜ÜŒùKæVl¼­Ÿño“güú^ä{ e]”k6d,Ú\ú½²èQ¸Ãn7GW./S.]Àk´€É$ûG ¸s¸ä21É53.ƱwrI1ɯÖñÍ]–<¡|Ùɽ?ÝwEHø\1“ɱ[Ï?À[’ßvÕ.ÉÖ³³ƒZfPÇV3¹£Q Àå¯'GtÕ×üüôf7ÛýòñÊç¥ie!:*¨× yögxYp‚dÄËÔD“EZÕàrì6 zâÖ1tP(…$?{’æÎ¬Å¾q«|®I÷h5…ÆñwÀ“%½?ºr1€çŠQ4Dtã€v÷SSŸ8PBö>¼~ϨäÏm"æ7wY‘oþ|.Ï"aõ‚ËMÊÚ×ÃCǨQôlHM­²y‰B«nNÍß)$ð.ãûшۚvæíÛ·?ÌzÞÅúæž>»›r\u6¢z†½<ï‹× Æï ¬§…ñãAû¦ÝÝÝ[µj•––#Ûi}½Ð+Ú ˆ™¼z˜Ý:Vwë”­™õÝQƒks”H¡–­”eMï#Mb=‚³âº;ìžýï¼Éd¹€*-½ƒT7”f£t½8N;¬nŽ_ú:¢§K¶Ýƒ¿Ü3î#™ACF×!Íàî<Â×€[dè5ê‰çÑ®ÿé‰ýBb,‡[¤c!8ÍãÙGüçÅ)$¼8Ü=ª¶ ÚMIÝy=o¤„÷}•Ôôï®Ìù_ õêÕÃoÁ¿ÿN‹üÌ’ÿ•Ki¨ åÒ‚{G—>çqœÎ†´Ïȧ;OÙȪ5Hÿ’Á? IDATýàêl5ÀkjË·ïDƒJG) ™ªw*Ù¿ézëÎ]Ï “!gìžßiׄÎ4ƒ)ÔR'ŠVJÙ‡&îȺөšOj¢Ç™Rº $½ƒj²¡Z‘•D7/©DÄd0¨™§„Œ®CšÁèÄ‚9“œ‡Î ê‹‚®ÃÍ»ß/éâ¶óÈ¢Sj%?ó"´@ÝÚ'kÿ£‡¢æƒÂ§úîÁ6öÖµJ]Døm£*â]ô˜Lš^† ûX"ESÉçóùôó? ¨?è1ÆŸ̈€RÊ¥ßÃ+C)úí9¾ÔÓ"39b`Ÿ@¬4¦ê=,7&Ú8m¿t6ÿÎ’¤óû"3èùøÁ½ÿó …6­6eh-ôX•ÍŠžWÍq¥U•çï+æóíÈ£Fð6Cm^ö·m¿á¢@ÂßNºCwø ]y>ùß­Ïø«X§fµ•6‘/š— ]ëÒ{ë9W‡©±‰›ä;-ý‘k1ŽpðڟȤžOÛ¨°ÓX[Èwq(&â‘kë¹Ç‹o»?¹™¶Ê5ƵþTÍ©Ǻo>;YE­ ŽŒ;\mYÂÆÝ×:QbGý‘£þänC}Ão¿!NÙ«ÐÓªb`™„n±úöþáryÙë7Ùfé4ös¬ùÎõ³?áÓŸÇáºh¼Íê·0¨Ü×Xkß9ºðg!ïã;‘Úã¶µ вÒ7­FÉ+z^“cMœÑdlEÌû+à{|V1–µg— Ëúª¼Ûw›cÓ¬ÁÌÞF°/þË€M\æ“[m—¦zŽƒ›¿+`B¾æPí@uÇE Ø6¼šà±9²‘¶:ÿ«µuäÆãºý™ªkýôhÄâ©Î ,º›ëh”7Ôšo¿-Š ,õÍH¥<}ó.íÿÏÞy‡5‘uaüM!” ¨¨Ø±+±"Š ‚½­ bo‚;¬Ø»èÚ ì ŠˆŠ(j;±‹º+X(COòý1!Ì eŠe÷þž<:ä¶sÏ™LNnnÞYüfy7Kƒº*U”¥9ýPµØx±{“–VÛNulli`>*0¹óY3Ü«×ÑÔ´,Õ:;;®©úÏú'#ߨTª¨ùÝ- ÌÏÉ“T*Uð¤^–æ6\ËP©Rž_m©i˜óhZ±÷J¥R¤Ž¯"±40w_zA¥Rúõ±ávhÔ^1ÞÒ NlVv;CsK£V÷ßgfÇ?n_Êܲ¼³*‡6Å5ƒSÄlu⳺óÔcC›šÏR©Tªˆñ–æ–’LUm§*ý²¥ùˆÁ*•*dî ºOÏ}oOlmi`Þ´¦×ƒ±Ö–æOUª¦lã Ì;÷Z‘¬T)’Þ¶di?–´|—¿3Tñ÷ŸÈ§Ûç ëÁ«im÷l•*ý¬¡¹¥a+ùÛD•Jµ×Å– –yÆb=ž/Û3ýü$Kókiª– ¾˜ãÈŒWó<Þàø°àGq¢Ì5ÞÈV3/N‡ÌÇÁ÷*+sËrý߯éY¸Uóþ¼¥Re¥¨TÍ9îeŸ¢¬"v+¨¿MÏ|wÛZ¬~æó‡€œÒ&ª¸êcn¼r‹šÕ™òåÐKóóŸU¶†æ{Þ¨:š7­éñ~uKÉÛÄÛÒÜá´kÅe!­¶Ç¦¶ר[ÙùLÐn@ ü'9´ÛLdÊÊ»3ŸWë×%ÿ„ìñû%}¡ä*—^W+—.@+—ÒŸ5ŽPç9ØKÅ’±¾OrD2{™ù‹rtAÛ¶Þvdnî7I&ZšÌ×Wðùb»õ6ç=¥â:W;i)fw ¢­,ñ˜³q½$%®%ž™×½§S'ÏÒ5ʺee»/À¶‘T,¡Šk«ˆÝÊ»ª$ñR±ÄzP¤ò} 4G©U£\:ïõÃÖeGˆíÖÿñnWßf]¶žþ¤Ë€KcÚÏ=OWÕ¯\ËaÃ¥µë)Á2^h>ryù£6†’fÛg²‹´ëêǽÊH׿¬Ùç… g¬‡Öìî:jBhÀì:à˜¿œ)K*ú…sôÙfpÆâ „úÁ9ø¤OÝpþ>Ê r}ØgõKf¼²ÙSÎëÂ(^”¹Ž*¨Cö¼ u¡øºúeÌ Û¥V[<Àq/ûe±Ç0ºnÖ’a×Þ«o!g_{NΔõPý¹­õä‰Wn‘"î¸ãÂÒw’äþu•hY _”PÆß¨Ô¾ Ϥ«býlÐ1T^U¨m+N( iÕ¼*•P}yH>Í„ÿ8dŸá·oÔøöݾÒZó~)«F\z|³›ÅýÔŸ0ô”XùÖ:ªˆEÅë°¨­JhŸ—GܽvåÙVàó4³l®dT¾råÐw´¤$ú$üÖüÎû´ÿI”I1¿Zš`GûŸ“fXUpV´ªè Ón•—qí¤Ýõ9“@~lðïCa“Ãào™gF·Óü /ùΪÀ7Y{Óg@o{µäPÌ:§à;/O.îÿ* 'FÚ}‘vd‚C 2Õ1âyÜ´õÏ8u˜Ï3y±ÃYž#ú³ä•†9»£žnxüúÃæáö)*„Mï.s³·¡ÿ¸ÓÙæy é‡Ù–Ùç›ýCÏ>þpçüAŽm„ÿâ2úœ‹¹'£äë–ÑJNÍ‹ €±d”üÌåµB€s‡i€7Þÿ„Œ’/uoòC­V˹¯s>è6÷žÞ¼w‡R‘šcÓ¡þ‘vEjÎ+k/£ä²Äèþ-Œ‹Ô°hc9ý¯zIL?3´ËrÒ:ëj]šþsËgy7‡‡ôÀ7í~õÌä¦vvÒò‚Ÿð  K,m 9©rÃgPóÄßò¨§‡ÄÚ}HÙNÉ…Å=EÝ”³Õ82ê}dh¿Æ½±n¾­ )ß80.6üæúÛùnwÜþ|¤H­˜¡,´•‘ßí«[vMÑ>œÝÄÿ¸;žƒ6õIÛŸ×V«ñÌè`ì|/hw|A;è™ÏöNÂS'>ó·Þ±0«Ô¹M…W8-°“Tg#¦‹òÝ5τٖÙgõÁ{»XTÈü“@v¾“L @Žr餧d71JÿY¹tóÀžR±$G ^0iÑ0ºÈûµ¼jž{¼nü"æ¼̆^‰SÁöØ£¶¦ê·[~µÇfJŒ½+¯(ÈÓ!O?49ZÌ€ÝIùxed7¸_RÏŒ|‹èVþ>8U¿´z€.§[èAÔÀcm2ü*ýýVàxêq!˜Øº¶4àé”~8®M+ó¡³.îä/nvûâMçœyi9V÷­=7(,Øc©1¶?2¹¦&‘  äüB§ÌK·¹·&AobÀò¼ÈrúÀ{ ÏO'FÔÑsÝøÓ¢CöЩÖô¤÷æ;áá²xsÊy}XÅ‹2ËQÙ‰òÏòí3/QÕVÕ_—¶(ü>V‚šC'ÕÈß½ùbldrMÎXjtjÊ®¦W4ª¶)ažeN=Ðcð ãÅ*,fŸ\ºñð¨FúÎ&_ž¿ÿÃÅI>·M…Ø:â¸{äŸ[²tkkߊÊBZÿ²êÈÇèÕ;µ¿?|E0z ž.–¯¤qrAǬS‹ú¤íOl+©«Æ¬ +Ýèº-B?÷SH­ ÉÖ÷ޤÿ:¶‘>Xy!Ds-êùg˜`Üa³D„MaÁšÌ:UUȪÃ|žI­ƵbÃÅ£ôÁþ°]tiC=,Ûü¿O©é'î ²°À¹0ûa¶eöIÓdÆI#¶ý„ÿn¦¢\šw±»d”Ki2ãŸ|TàOÝK·òêâHwÈ®Ôn,®š(#(,Øc±•KsV¿SÏ¥–as¬ÌG~.mÿ ±é,ÏgÞ]ewúâ¤~¾[:ÇÄzsšÂeWÅV^aÇæmU¼(s•ýmÜmûô±;äÌkÌaŸn³×/¸°gn]:å÷­šçsªâU°dI½cÛ ò¸—yŠ2‹8c)Oš‡Õ_»œùŒ&^¹E¼R'¼™9q€kTéþ`ræºÄy¡‹º¬mèà¦Ççëà«RëVyCYP«qSÎú“¹\d ¿†õº˜è-:yŽäF„ïÙåÒBÐo$KÈýˆf%–dü<[ïôòî«ø•¢¬ÛxLgÝÀãÑ_~ŠCD½™nõ M*RQñ:,j+²#žðŒú-u~ d×ÿO‡(—æò{+—òKÍð,±\9í¾ûæëmsœ“šõ£”KgCšUBQΈñûžißhöÔFÚT¤EM3c| ÊŠ )*„ÙªpÈîøîˆÕ®  Ú9¢ýß ÖÎq‡öcŒlw3öâ’{éw–õ<ùàíâ¾6)* €ò®OkŸ¢>¤lûÄ¥dFȘ»×™;ë™»×™ã2;dÖa3aÚÉì_›ùÞ^Ú3äIÜG›'81Ò> H¼8^žÉªÃWã&d×ÿ¯ø.Mÿw€’ó‘Äíļº€@Fí×ÔP5ðXe/æìˆïzòa;æåo%…çü-ò¹&£ä[½êXv’ÏÕ@›å{nPò«÷w‹òy£ix6^.Kޱ.ÃÐnîV;®s%n‡<KóR?0ñ‰šì{öèÖë“e€¸¹f§‹¸¸fpŠ˜­Æ©;<`ͯì$£ä9Û¨y7©(ÚNÙç𹝔Qrß)­è>Ûû]òéU@©ûl T϶ÆlãaÏiÓ!Ãk¥L_*£äs]ëÜ™­ ó|¥®·(y”<ˆÞè=À/HFÉ/Dù¨nÛš·õ \Ô‚Ó!O,9ÿE±ÑÁ€Ó!ÓQyB™K뀘 ôS¦óŠöb~™f{î]—Qò]µÙîåvX 7Øñb¯?MQò%[wÞ~{TÇQÌ)sÎCV‡¢ŠoŸÊ’ïNv,[˜œóPTéÈ;yxô–¼ÛaYóâ÷›¿SFÉ={VÎJ&–£Fìzúà¦üЭ{u·rvßsŒÿ½(H žì.ÿýÛ¾#ž×µG甊¹s\TźU‹Ê$M_Æ¥½”Ò­aµ š? è÷­|wʈFž½{=wg=s÷:s\f'Ì:Ìc&l;Yºöÿ8ßcá)ŽõªNìV€*àëû$Î9ãj£•Ovýÿ ¨¿=<@É‹%*^YŒ«´ÑµG*¬É´‹%*~yYd—V#Ë-4Ù:ãrªÕ˜„ág’6”dAOözŽÔl³ß#”¼¿X¢> tÌd/ç éºrÊåãcÊHúß”Ÿh)I6´>é™ÐÃ'–cEïá~fN«^ïA£5©ÓßLk´6R¶õôŒ…Õd·Æ¢fÃfƽ”À5êÆfƒ¨²¾¾|ž ÛÜÛ¾Ëo¥ÛŒAÌ¢eÌV™@(é(¶Î¹zT‘n í€gdº0íÊËÍ$»õ3Müv>Ìðîé³ Æ­“ù•\íZD¿üR½mëÈ•=N§°ŒgÅF»!¬&;e!íÒhM¤Þëµs;üX͛٪߂§ñÔx“Û•/ —´ ïá ‘É´½»ûV¾bÕÎwÐMy­ÔôäùíÖ†³ÍK¹ÞFÜFA®±ý7¼á„Rã(±Ýzf(o2$øÕ\<-2²l]og‹Ÿ.èXgâ²Ê»¦„QyÝËé°@o°£Ì¼Ä‰·µ¾5zþKÿ޽þîðdòŒ×YžgL™yÞHªÊìð2ÙZlMOyØý©š0ÏÃkÔõ6âÖ€¾ìÃi%Ï‚¥ ¥ïßò9¦’KTç†ú¥;¬±5rW9k—kÛ)ù8±$›iü'ÅϺ²o „b>ñ]ëõtKø#Í“³ÕÛ¯Ð{!ÙŽVÂÐß’}ZB‘ÔrÛÜøØ˜à¯Ä$Ó"„Â3-’ÎEFñbI³„_–Y666~ý> ÿˆri‘ùFåR¢B>ÉÃcöñ WèSZ{‰oÚçÆ™~´{Ëžë›{÷Töéz§êÂ"OYkQÓ|U7 „ Ùÿïøx¢F­iÉÒêÌÏꉳU7 „F¾:ã…hÇÿc[­ö_¦­VñŸœÞ(ïñ¢óa| ´ý+CN\ˆþ;ᗅ숈r)ð½!;â (—æò{+—­…F»Í÷&ŸÕÿ)hÅH@øŽåÒ­\ AyÙ›•ŒÑDÑÑ£Ž¥\À7íxþJ#qîŽøÜVlœ£ä¹7©gO™¥AÊ7 zz[FÉ'÷®‚ŽY'“»CZ÷2ó 5Ú[;ˆ%m[o;2·ge҃ɣ–&óõ|¾Øn½ÍyO©¸ÎÕÎGZŠÙ¨h+K<æl\/I‰k‰gæuïéÔɳtr nYÙî °m$K¨âšÁ*b·ò®*I@¼T,±©|(5²Ëi¤jUiò…µÒy¯¶.;Bl·þw»ú6ë²õô']\Ó~îñxüò6/×åþì`üý‡Âú^5x¦'çÖëÓ)¾¿¿¥z›Vn+V’D@§fÿ kšp¦<ðКÃ]GM ˜]|ó—3¥bIE¿ppõãÞNe$ŽŽkpæ%0màé KÜÖ>Û­oxÀM*¶xL^„ŸG¾ºÞLýnmv"³ëäjvsvF3´¶u&vl0|dCZ×;ßÓ[C•µôù†µ~KÖ¿Â?Cöi„ïÏ/¾O‹hd„½O‹è%„ÿ†õº‹Nž#® %:ÓZs¯Kmƒˆ 3&Í8dÔúù6bÉ‚ØGUt>Ü:ÝÓÖƒßØËÛh㜫©-vË¾Ž‘Ê3xãýêiqnf¿I­cµúöpù2ï7W0ï{h:ÔÿXW?kçpí›óÊÚßyë‡ì¯K‚¢µoX´± ¸á·“ZŒe9iÝ®%]Ö:¶ÜùÀ–ÏòSN.Y•ª„ì æ›vØUÇÝ÷ŽêáYü¿Omü–DICËÀeºT¹á3¨yüeH…¯w:X  ´Ø¦£¹a1NÑœ›jȨ@©¸/Cû5Ãf¬ÉÈ'‡(¸|ãÀ7ÑÞŸ³oé®7—}ô§ŸV^òÜJ»VìP:–‘ßÍ“÷‚ò+Ãû÷ï¿=t×§·–.¿^ bovœ_fø„ZÅëüñ ûÊSÃŒ¿›t„_¢\ú£•Ky:¥ŽkÓÊ|謋;¹Æ‹›Ý¾8DÓ9g^ZŽ•Gž47(,Øc©ÉOï´)3ÇÒmî­Ù˜ßÄ€åy‘åô÷ŸŸNŒ¨£æºñ§/D‡ì  S­éIïÍwÂÃeñ æ”óú° Še–£²åžåÛ!g^¢ª­ª)¿.mQøjpþ꯴{óÅØþÈäšœ±ÔèÔ”]¥o÷® Ó,)ažeN=ÐÓ|ð`Ä‹UXÌ>¹tãáQôœM¾<ÿ‡‹“|n?š ê–T,Y­ì]Zr/UÛVœPÒêøÇUG>F¯ÞIõïßÞ¼yüñ‡fÆY¯¶N¿ f•Î@úªÀð×÷Ï4œ ]6ç|]‹õ<å_g^Ò üRÏi—25¶Ñî•|Ù°WOÃjöÙ¬gíÖÆ¨_o«UJ­¶¯_ܪí°Ȫ.uÿúñÞGé,¦…uªÑ…¼C„ï–i(—æ¡„”Ki2ãŸ|TàOÝK·òêâHwÈ™—–c±äIÙAaÁ«½Ó0ÒýÁäÌu‰óBuY@`6´û›×Yy:,¸UÞPÔjÜ”G£³þ¤Fn ; ;vì±cǸÓP%eV·Ëz±£ŒU[³F_"N_¥îóÌZºF_Ó”²Þv2€oP‡j1§ŽžýœuíKßö‡Žùa³9«\,n?ÙÁì_õõŠÍ¬¹fµš?¿à輑­¯lVÝÛû"Ý“]¤ýX,yRvP˜pÆ*Dï” –œ±ø¡€~pN~é“C7œ¿²‚\öYý’¯lö”óú° Še®£ ê=/C](¾®~óŠ…˜ÄQe¹·¥YöXF×mØR2ìÚû5ôŸöµçäŒ@YÕŸÛZ@žxå)âŽ;.,}'IîoQ'Q‰–ÕðE eüJíé-ƒz²¸9Ò:ó¡u+N( iÕ¼*•P}y¨ýÅhh»žR®{ÿ­dꃡáÎy>_ ÷qí¤Ýõ9“Àê‡ù<€ŒÇkýã²9õ :.¨>ý²Xéd›­úGæ+ïðÏ=Û CÁõ ¿ ²O‹ðû|,0j|ûn_i­y¿”U#.=¾ÙÍâ~êOzJ¬|k UÄ¢âuXÔVÅøöph»ž{#NÜYÒÝhÚ©ùÜö‡íz±Ã9uP@C=ô±Ÿx4l#€Áö¬çSâ?蕯ÄùÝÆæ~6£_y¿wPÚ€‹ºäÖœû|=]d<^{´ÔÄU…Ìúaƒò?.¨~=]øtv\¬ÍÙ°®¯ÿá• 7d殳û³Ë·>y¥ÿèoI¦E ¾?dŸ@ °öi-‰¹'£äë–Ñj=Í>`Eì#%?sy­þ‘cŸÀïBFÉ—º7ù¡¶çå‹nsïéÍõJnðP*Rsl:Ô?2À®¨=ˆjtù$ÙoÄ€^¡Oií%¾iŸgúÑî-Wø-BôÍŽ½{*ût½Sua‘§läô¿êÚTÜNÉÉçk@ ¾¢\ú£•KE–Ó—ÕŽêh"±k<8I ‘å Ý‘õ½t¶6Ô€Ð%!Q¯}5ýkZqÃ&2®^:ciÿçß°±#? Ò€ü2'z^:õ&®²W«寺I ”<“mml\¿±“#í‹vçgÅ_666áIÄý¡$3-åÒ¼—ß’Q.ͼë[åøÝq®;ò(ÍÜ8W)ðµâÕÊ.»‚ÙVf³¶õ7¤màèjè0Ûy¢ãÊÚ;pjm¬„©©OkZ²´:óó†zâlÕMáÇ¡SîÊ'wæwþ”ó;Ž˜uNÁw^ž\ÜÿUNŒ´9ú"íȇ lz§pyœ›½ ½\³kÈÚòpÍÀv) Ø5}aÏiÊãS»~U‚Šþt"¾'%Ù§åRá{S¼}Z“þX}ái™yŸ3áÀT‡Ž¾BèÏ'FÚwù3,õâø6›×uîº1ìÌÍy+Ï=WU˜»kžYG"Ê×¼«M÷=WN¥?XPÊc˜™NÆÓ ×+ýÏΈÄ@ |O~çñD¹ô[ÐZ«ó[T7 $Ó*F¦5ÕÞ&º–Çå?ûjS9åÉÙŒêí× è½ðä9þ7Ùú—mŸÓWH¦E J"Ó"Ê¥?Z¹‚ò²7+£‰¢£GK¹ €oÚ'ðü•FâÜñ¹­Ø8GÉ5¢„ÉÖ´ähu2çÅ/ÓlϽë2J¾Ë£6ت›ÂceØ-Ó,†õº˜è-úÆ4 ¿â•+$Í"%Q.ýÑÊ¥üò6/×åþì`üý‡Âú^5x¦'çÖëÓ)¾¿¿¥z›Kï”I€•$ЩÙÿš&…)a²5-YZìy L['x:HÅ·µÏ9ª›@ Š Ù§E ¾?DO‹@ Xß@ ¾;D¹´È|£r)¯¬½Œ’Ë£û·0.R⥵·MàÐ×:üÀ¹ºÕKAëVœPÒêøÇUG>F¯ÞI.²dZjˆr)‡R.¥ÉŒòUPkµií¶ÒS÷‹´n•7”µ7åÑè¬?©‘ÈE–@ üÇ!;â¢\Zúd G5Y‰%?Ï–Å;½¼‡û*~¥(ë6ÓY7ðxô—ŸâQc¯E¦[½B“ŠTT¼‹Úй#Þ®KòJ"üx^?{df^_ÏÀðiÌM3óúÄ!„OøÙ£D¹ôß‹Öò¤¿ÙX¿›ñߢþÚ`ÔŒçÛ—¥ÿž' 3ÓªP±2yE„ÿ ÿz?nÐtõ·C(ù`±DGâvØ%²ç‚g2jT<˜UÔÀc©éö™ ¼6ιšÚb·ìë©äð÷F 9ï#‚ò·¾µTKj‰|.œëÞºÚ=Æú>YvïN'óRÇ=zÏßþ°Íò=«'Zg½¸fßhX&Û&¾QÃÓÏUÔK›P½IäU»¹[×ͰßÖ×v˹¬WS9Ê¥F–©—Ä7Ù÷䊅ÎsÇZ=¾è5—}ô§{k+–PÅ2ƒSÄlµ0NÞ£ ¤»¶Võ¶|1®Lvx7©ë-ÅV€Höy‹´ìˆfî+ÿ\Ú+Ô{°×ªÚû]²?ã4÷x<ß´ÏÞNWïýxˆ’K”B†ñ TttlªAJ\ëŠí3E‰¦NZŽÅKÎÅáÇ>ýº¼ßNPX0ÇÊ®Ôõæ³uÙïïv¨ÛŸ‚IÐãóªFûÙ­~Ç Pe¦àŽÅ^éÈõüz~”M«?Noú$÷4‘ÌÉñá˹ûø™hâÕB,Éf{ƒãÃBVUŠe®ñÂ*²S èyq:d¶òz&_o.I7ž™Ñuö£Blêµ>`þˆ&„çç/Ó½ú¬S4YÄ’å¨s¦®ÍhWg@ª ž/²¯= –ÅN’ÖY|N¼r‹U{]ðIoïv~yœ|IuÉðGò½õ%_Êw?õ¿ç] /úêtøß9¯ä¾5$™Z¶ZÄc†²VƒïÜß#­oÜ@³¶Ž׎ŸìÝ¡ Ç+ë@›ã|IœÑI§çj«ÊÉÞÎÊl0 ¢À:<#£Á-’ƒ®ªÒ3XÇE„ٿވݺ’²©Ëûf}É*¨NAö|¯:ZÍ=ÿ:<ƒÑ~:µ8ct!ýha›ý(Ë–š½/ú”ìãªÌT}‹=tÿwNu [ægÅ?öc¼ìü?4qF§Í{¼6ó%”4gïQ.ýñÊ¥ô+×rØpiGízJ°Œš\^þ¨¡¤YÅö™ì"íÇbÉ“²ƒÂ„3V!z§¬±ÌàŒÅôƒsð+HŸºàü}”äú°Ïê—Ìxe³§œ×‡Q¼(sUP‡ìyêB ðuõ˘W,Ä$Žú+˽…(ͲÇ0ºnÖ’a×Þ¯¡ÿÌI³PÖCõç¶Ö'^¹EŠ¸ãŽ KßI’û[ÔIT¢e5|QB£Rû&ˆ“â’(³ ÇÓ¶'”…´j^‰J¨¾<ýöÀ}‡™FÍÇNrpÑæ¸@·–sÞ[­z¶S쳃uÌ^¥4ž20Ÿúø¥”±1êÔŠy¬Á ¾™±ÏÖqAö*ai@W™š]d›¿W‚mS¿õNQpUê¶Ñ*U±|^Ô~”Ÿ© ¯ c ¥ê›ú¨Ô°™ÇÏZ§€~„Ù§Eømà5¾}·¯´Ö¼_ʪ—ßìfq?õ' =%V¾µŽ„*bQñ:,j+¶r©‹­ãä]K[Ï{`µoX5-Žk°ÞÐÍxáÒ”½Ñf7“/Æ1Ž_1«.>¶ÖMмMæÙ“Õ ŠaóÌ”ñÜãÜK£±÷Üä~º:¤ùûçd&ÂÜþ/ ÇÚ&{\jHãÄe[ó¯S Íß«ò¯½’Øâej\s£Ñæ‰>k èó• ŠDü¿¹ÔúÙŠ÷o¿Á6-ú¹UCT=E)jbÐøEÒ®Kß`Ï+¼ê“tR6²×´òïÇÐýO­Ö´„fÆ“Û'úîP"Ǭ(•àXdMëYÓúm÷i„_›’Јÿ7}³Cøño ?+ÓRïÓZs¯Kmƒˆ 3&Í8d”zoJ±dAì#‡*:nîiëÁoìÅܧ%Ïà÷?>ª§Å¹™ýr$µ~Âj²S9[j¸è6÷ö€ïò[%µ“8”Št[ÓǦCýuõ³v/R¢NÝÞ*zw£§åà$%z…>tª“ÓºW|Ó>×wñ[u=Üb·ìåpiB!û¨õÍŽ= ©¡÷y†Ôæü›ì¢MÙÈ!È5¶ÿ†7ÿXq;%'–d“× ¼sÈ9F ¢\ú£•KE–Ó—ÕŽêh"±k<8I ‘å Ý‘õ½t¶6Ô€Ð%!Q¯}5ýkZqÃ&2®^:ciÿçßå§AŸ^9=/zWÙ‹égòWÝ$PìL D¹4%¤\šy×·Êñ»ã\;våQš/¸q®RàkÅ«•]v'²­ÌfmëoHÛÀÑ;ÕÐa¶óDÇ!”µwàÔÚ(X SSŸÖ´diuæç õÄÙª›@ Š Ù§åRá{Sû´á÷‚Þ§Åÿ-m˜ìÚØú;ö·B"‘ŠÕš¥[cŒC9m*v›ïÍ'/@ ¾õ;éJÎD·óêµ_SC]ÔÀc•½XÔØkQ[-vË$ºèzòa»rŒ÷bAù[Iá9‹|.„É(ùV¯z–Ý»#£äóG5Ðfùž”üêýÝ¢¼Ö5</—%ÇX—áh7w«ŒŠ×¹·CžAŽré#> 4Ù÷ìÑ­×'ËqsÍ=zÅÅ5ƒSÄlµ0NÝyäk~e'%§7B¼›Tm§ìóÍÜWÊ(¹ï”VtŸíý.ùô*O{Iöf%c4Qtô¨c)WðMûž¿ÒHŒ»e´_s[±qŽ’kþ`O™_©ë-J%ó¾IÐÓÛ2J>¹w<±äüyhÄF μøeší¹w]FÉwyÔÐk}€Œz=–­ï ]r…%¢\ú£•Ky:¥ŽkÓÊ|謋;¹Æ‹›Ý¾8DÓ9g^ZŽ•Gž47(,Øc©ÉOï´)3ÇÒmî­IЛ°ðÞBàóÓ‰uôÀ\7þô…è}Átª5=é½ùNx¸,^Áœr^Dñ¢ÌrTv¢üÁ³|;äÌKTµU5Åã×¥- µ¨õWÚ½ùbldrMÎXjtjÊ®(¤bú³RÂ<Ëœz ÇþàAÇ‹UĆSd1ûäÒ‡G5Òp6ùòüý.Nò¹ýh*'^Z¶¨>iƺìe¼7LD.±dZš#¢\Ê¡„”Ki2ãŸ|TàOÝK·òêâHwÈ™—–c±äIÙAaÁ«½S. 3˜ce>òsiûýˆMgy>óî*»Ó'õóÝÒ9&¶Ð;1§œ×‡b+¯°có¶*^”¹ŽÊþŒ6î¶}ú‰Øræ5æ°Ï ·Ùë\Ø3·.òûÇÇVÕÉsò°Õ_9î-Hi–3€vŽÖGýƒfÈ;ëÕ_»œùŒ&^Ì"æX¬"^©ƒÞÌœ8À5*‚Œt09s]â¼ÐE]Öä—6­ÔhP·¬.ÌÖ¥=¿ºE‡''’‹,@øCvÄD¹´ôÉŽjþ²K2~ž-‹wzy÷UüJQÖm<¦³nàñè/?Å!¢Æ^‹L·z…&}¯¢â•/ôŽxÔ¸b^]²#ž@ ü7¡wÄÿž™–Àd׺:n¯“(+;¨1Æ&ÅïBÂ?Vì6ßûìü…Jâ1BÑ!¿=$:ÓR;t€’Kt$n‡]"{.x&£öHŃYE <–šnŸ™0ÁÛh㜫©-vË¾Ž‘J?Lqk‘ó^,(ëKPKµ¤–Èç¹ÝXÐc¬ï“e÷ît2/uÜ£÷üíÛ,ß³z¢uÖ‹kö†e²mâ5<ýüXE½´ Õ›D~Qµ›»uÝ ûm}m·œûÀêp5•£\úhd™zI|“}O®Xè ®ÖÏ 6ä­—ùø€ý޾ÉU.­V.#5›C+—ÒõPû‹%sé?Ô"™+§\>.Ú.¡uA“ ­OέÓÃ'–õ98éÁäQKýÌTðùb»56ç=¥>iÖF¶¼b=ý#£Ca5T´•%Nhf\O \K>3¤YO¥k”ûòü–•í>ø.¿•^l3XEË2˜­¼«JZS‘Žbkº¦ÔèšìtåÒ+¶.+Û­ÿã_ßf[èò¡Â¥1í/ÑÙd^åÒZ¨œœ[·×6µriC¼€ÜV¬$tjö?ëëàÉšò Ckvw½ò¥aÀì:=–¦™¿œ)­âû·\,¹ôqo±FA®\o¨håÒ0 €Z¹Ô=m;%'/!Â÷¢íŸþibbrñâÅ åL:t°×æ UTžŸ9X³«KñÕkTéGîgöml¤õÚ]Ò¡¨ŒÖåÿ­ïL"ÿ\Öbä Ÿe«"acXÖDÇJZ×ÿrøú5-ó}­ø'”Ì ?,Ĭ™î^Ór˜§ð§Çñ_úŠ4H,QP}‘6Z (4 Z¹EÊx©ÕÞÌ«g\N5¨ñ³ ¸J² ]j6‡Óo_±$w-$ëµ´êð1ÜÊH2-%ÉR"9ù ÍãàíÄ’ŸT¸ûâ›iî{XߤØf¿•ZΖ÷¢Ÿi#nõâɳOž½|ž ãÖB:ç(¶¬"v+š4 ï¤CÔ—è¤HÙ3I:@…»Ï9ò¶*Cž2ÿu´Ïª—š?77Rßo±‡ÏSåßGç\Mýk÷Àíý¤ Z,%e½ rð¼Ç™òvu7м²­‡O,²ßÒæy™J26âÖt¡ÿ†7œye=Ù8%Œ¢{ ÂÝßH0J,É& á{p.äªU«RRR^¿~mfff`XªG¯ÞÌ f¹$ç¼Rnï÷urvYt)áýÙeNÎ. ÷ßpmÛ|'g—1óv.÷ëäꙬ€›—;9>-WŸºïŽNÉêàÂÏzãäìâäì’­ø:m¼›“ó(²Ç uqrôI(ÜGsrrúì~g—¥G@Vü$7—36¨xz½Ê†n—³¶#¾?1ûhԥ顟¤=Þò!‹qøzìÐ'g—Ý‘©N˜ô8ñmËHUÚôQƒœ\')~ˆèêæõÿç!`º ¸wt“³ËþØô×11*`ç wY 뇻89»Ì»A½8¿ÉÉÙÅ÷âGå×ãüÔû Y ÑK‡¾ÎÂÆ.é@Šlݮ癠üì4/ ²þv²YoÆì~ÎôÒõ?:9»Œ³Y @‘ôðït¦m²Un¯³d9ÜÊ´G•ñ~ü—1³×^y•ª­%Ètê¾ìúW±»'s€yúiÎÉ‚œPРÿ0åÜS² UNÎ.A÷¾€;ñOc†99=ù8‰u®%¾šq3bwùD§h¦ÅçÉ#\ܦ®RÈyádüujíƒôØ›Ñ*öp«G¡TÈgÌ“\óêcžEéôìd¡Lg¿aµ‘õ&©åœÀaµ³ÞéÙŒXag0ÕïÉ®QÖs‡Õàì}(à`‡KF߃‡Ì˜·r€„TEùŠ­oì|=J’{“®Ê=÷I‹¹q/¸° `82blj6®ÀXêê7¬öã-£_´Ø¶}àË‹Ÿ2¶Eµ;ÔU\V­éY)#vg®‘¼Ê“ÆòX‚>ï'G$=5…ó̳Xy%Ój~û˜îÚêÝh|`]þÀ²Q.}V¨¢ƒQιàpP@5Âáúý矒ù¥[m£îV Ìv8e§ÿ^K‰ô•y«G×Q›±¨cjšõ@€òô5^zódÀA2œÆï\k ëͱÜPNÙ9ÈÅ{iïäU[׌Û"#vÒihkIÖ‡2ö“¦V»ä»éz· ƒb¥Ë÷äž~šsÒÿXþN(hИ²2‰>E3ä;o[N ì¯ûtûØg[Y_×.­õÜÀaµoý¢ö¶¥Cçª@ûø"õ½üÅÛÚuÜæþûÔÓí<~[ÀA ÃiÜžÀõíéŽâ¯SšF£/ÉÛöqûÔ15ÍzÊ<É¡~õ±^t#øÊ,îâýù_ôôÅ¥ŽìÙl CóÛÃ%1÷ºÔ6ˆØ0cÒŒ#€@F=Q/ø‹% b9TÑùpëtO[~c/æ>-yo¼ÿñQ=-ÎÍì—#©õcòÃj²SšÅ$ºÍ½5_¥•¡ŒoM‡úëêgí®}s^Yû;oýýu‰ƒCPt¢ö ‹6–‘Cklÿ ßÿú|ÌÐb,ËIëv-é²Ö±åžÈ¯¶|–ŸrrɪT%d_0ß´{Ä®:î¾wT¯Èâø§}Úø-‰’†–Ët :©rÃgPóøË _ït°@i±î¸’˳4¨å):è¦ü½¼šóN!£iI-Cû5Ãf¬Éç— œ"æX…´ß8ðMt…÷çì[º+ÙñÒ¾À[&] ‘¤vËûÿ=kËÃÔµû|ìºôœ’2hð„„O½zö˜î5­D¢©ˆºòùÞéVß҇ߘAÃý¯­~)biPÔæÛÇ ±e'¹ùÆwÁßÝ¥ïúƒ…©²¥?õ¹Y~n»²ÿæ‰g½s ËoXmr>üF9V•¬/.zGüàD¹”(—2 Ê¥y:$Ê¥ÅS.¥Â½Lü¯é#w馔¡á‰àc‘W#J*Í (ÿi€1~tžq›b¤YF‘4ëû1°ð4 €^Ý_šÅ¸Nu’fý^пJ£’é!¹ï [YMÜ7¦n]€òsi«VÞz•ÎŽWà*;êÖ¤~ ·è#ÕB¹”ž²ò½>LJb+¯“ÓßÚÿáÏiU¼(s¥V.5º~”uÚ:ŚטÃ>+Üú¼®í¶gnÝÞ ž<ÿø§Ó*׉ËbŸ<¯‚%K.Ú?òÔ(—2ÜË:E]E6Ú9ZKÜWÍÊç6A ª7–½].­6]óŒ&^Ì"æXÌ"^©ƒÞH+»_¥¢vˆ[Œt°Àìh̼ÐE]še¾æqâ¥M+0”K>xªo¥¥mØý…íÏS`ÙŽc£]{­Yu|ÍÔ^îe;y ®píe]—OëÿwõS©ömkýe4Á«×ÄÞ“U Ú´oð„!;ÁÓß´ø„A[V¯Ö›Ýê£ÒÔ¬jWŸáÞó^¿ŠSjÝŠÎü7mé2aÜq,@( ðø<<]¾—™‘NœB ðÝ ñ@ ß²—€@ áwO³tkŒq(÷M¶–j8¯ç?  ZT"Š@ þ[i–¹ƒ…Añ›óŒn¿ñ^xB}/½:}Â67£-'­“Q±®Ö¥Šç[›U:@ ¿Bš¥S¥uíܨÃÿœs“v»©Ið«û2êñûòøeší¹w]FÉwyÔÐnîV;®s%<±äüyh¨èÖ½ºÛ ÀvõêE>Âd”|«W=ÍÜWÊ(¹ï”Vy;´ÜâVÕ‰¤­»àìFêß‹ëÕßj"×iy2šþì²Æõ7½8@BK áH³²Þ=1´9›$_<³;€‹»n> {}¤AN»©Ù“)R±…ÁúHSômòÄ·µÏùÕzf¯’Šë¨–ETÀÿã™ne$ŽŽkóïýú¡_W{©X2Ö÷ ¿JÿÑñ¾R±$´ýî*BV‡Æ¹šÄ¨o°§óºl?£VÅÕëqy]”ŒŠÚw>­†Zá'kÓËæ$¶@ ~~š|¹wáà®È®îcÊ dÙ¸óqc×mòåCxH¼[Q¿vë[ã\ ¯®‡jH`ÊaóE¹÷ hRïs¤™ô%6ñ™åkÕ3>µGBUðäôü¿àÌþgZ‘'[U¨¬Ÿ”#_ô5<[@ ?=ÍâÛn[?ìÀ$Wi¥ñÙXö8LªŒî^Zâµ4œSÄ¥ÙÈö]»ï£{‹b=M]žÛïÒÛn½÷ŽRDSðü3Ëo±s›.- ã¹^¯MíÚ«ïqï>ñÊÅsóÛthçìT‹º<»Û^ÿ’Êm2òÜ$sÍœ˜µÕ‰O¯¼¤A ³šUô•oYì¸Ð®KŸoü•“œ•ÆS$¶@ ~*ê›§i¡w,¨Ç}KÕIü'%fsÀ¾Ñ×_K!Ñ%ðù~‘§p7¬WAðOÉ_ÅqÙ HŽE á§ó «Y@ „‚ùMV³&»6¶&ÑâÐm¾wIÄÏfÅ^1q.@ ß)ÍÊ(¹Œ’˨óöRòŠBw.÷9ErC€§oüA~åîÝüC>ž¥y©‚ u›{Oo®Wrƒ‡R‘šcÓ¡þ‘vEíAT£CÈ'yxÌ~£¢¤Eÿ8¯ÞÓ†”DšUݶ5_;o@øÇ4+[*® Ü“Š;€2ãdÌ,FR±D*–¤‡BúV’Ø4Ÿus$ÊßJ ÏyKf .»wGFÉçj Íò=7(ùÕû»Ey‡7jx6^.Kޱ.Ã[Ô”Ó!]=0ñ‰šì{öèÖë“e€¸yÔå!ΗïË(¹¸¸fpŠ˜­ÆÉË¡¼Œ’G°æWv:·¥¹~iºï&EÛ)û¼lmUíý.ùô*O{éFD—Ž&»Æƒ“”\ÙU–"k¥®·(y”Pj¬YÊRÍ 7¶Ðƒ¨ÁøË®S9Úªbî>õ€¨ÑðKnó4c±t\Ù­”Î4K¬šoÙëQ“3/æ”5‡z>C*¶xœ_ð˜Æ³1šaÿD*–8XͰïKÄÀ*»¶ko^r†¸Ùé©6†’fÛÓ*fæ#6-nrÊiN4ÇB¦7È‹‡@ „b¤Yx¿cðš[óØ«Y=tLéTAŸŠusvÓ•˜B£Ð1“Åílظ¾˜1€âÓóRU¸_ü]þ£þ§Ö®”¼•‰€#jÊê€iËrÊ÷i*RjÔ3¯UפËiN‡Å3ƒU”_«\‚^çŽØ°L:óÌ„'¿äÕVýtyÏÍ¿²ÿ’×°¬ïˆœVƒ"žŽ`ݨ•¹H¬Ã©Éœ²žYó{QçÏÂŒO’6X;-àdT„€ZHÈñõZ +Iì8ǬÚ}H»g?àŸ4c @ üsšeÞ°.` iPC“r Øh‘gÿ•Ò3°âôaíœ68ï< ¤2JNïb ‚ÇGz*O(È_âŠÑJ:wIÙ„Û f‡ŒéZž#jÊêÀ_—¥åÆÞN æÿÛD-òèP±Fm³Ì¯2_\ï³Ê³MÏ~ºE2£ ò´z”V¾WW—Aæ H€Í Û>ýE€*)òýðÀN·ÜÓ¼Úª³_ÉÃ66 üëXÖ‚q®;ò(ÍÎ}8­DºüÔ O¥Nå˜óbN™º<§_X„½cÛ ZÏÀpòë3«¥4ÎŽßÒ§ãÔûä´ J(ÁRA¥RA þ—@ þÅYàÇã©YÍ"%”c©T€J¥RB©„J¥RÑÏ¿>x<üßr5ËfÅÞ;Ó†þGnÝm¾÷Ùù •%:†Àd׺:n¯ÿ³Ïhöd³Å+Éòá!Í‚J¥T@©P)7ì_HB þ;Œ4GÀã x*!~9‡è×[2ß?Þ¬÷ã$eåq'O¯¬€ ÒnšÑíW› LÙܧóöпÏP·»Š›²‡c¥ VëÖêxúÎ&ñÇÇz}S”?Îúê¶­ï\JE:ŠKJÕI·¹·|—ßJ§Ó“ÛÔ;±$¹(=¬ˆ}äPEçíÓ=m=²Ó¡þǺúY;‡T¿÷´!çç/Tk,mù'õWÆ”µ-*8Í2îçPéÓ¬ªõëöñ?µ«É÷óß8ðMt…÷çì[º+ÉåáûäX*•J¥€*[¥Œùò„8„@ ü§xðÕ©~is„|•Ö²µ¤ç¬¸§ôÍ<+I¤bIÛaQÐ)}wXKi)iÏàйw•¼f}wýÌâ˜Á.*D2ôõDóÃÁ2ìœk¥ÀÜ;¬ƒ £&ÊÔq­\E§©XÒ{ü«åöb¶Þ)W%•©AÊ‹k¼¨bàÛ§²ä»“ËæY9úîê¯ 8Eìx±aÕv±Œ’{ö¬ŒBƒÂñ3ÊqžþšÂÈÑŒÕòð|tk\õ:ö=BN-² W‡ï¶”•R¥Ü¸¡R© ò òø¯=¶X¢P)X_.Ùø¾©!Þk>ÈL«* ,wß”íÆ‰Á6ÜwΆnLÕM1wSO> å.›JÔÎ4Ÿ±ýš}×g›¿œ)­@Éùb {å€ÖÏìOÿ±ïKÄ@±$S·®ì’³´»œÕ!`>bÓ½MNsåègNu<õ¸Ê: 朗֚լâ™Á7`1[­¾ee»O³~3H,p]N7úr|zŸGî>õ–¯™^®çBÕî¤W£úJ^Y”«´Õ¦Ž+€;”x×B¼V‰@©ñ5Ù)µb;­’šj6dßðJC.9z>C*~µ’sÆâX¸ëó•Á†’L#‡ WC„~fN…V½ú·@ŽúëØ±wåC%£_<ô“HæÒcÂj´úko£z” »¿²ŒgN™Åò+^혽_³Çº:[Ú9$’¯ã¸—¦7ŸoËŒò»lÖŠZÔå!ôñ°òZ3öyíñ—]§jt¬F_ryüñ~•ú¸bÎc’$}—DK•J뎽• ®äZZZê×—U½âU¬Qº÷ŽÉ_ÒR’ô J•)W`QÙrúú¿‹+²33…"ÝBj(2ÓUB=!Ÿœ6¿뎽³1ƒ•fUnTáu–z5+< øú¸;¬¥[Зîb«œ¬£½8ÃR™ý×Óš*ââó+¯ ½ÛÜKŧË{hÑRa%éƒÇ5ÝŠxj¼ÉíÊs‘8P¿C¾IÈd™¤ÖÏì[ùŠU;_†~æXa%Cf‡ õ3çÏZ?óQ­zFyõ3‹k˜EýY­ò[?¡ÿSÆŸ)5Rß0L´y°*GM@Ž€j®Ž+€¦b‰Š_^5Tjµ7ïï®h•T=³æ÷¢‚ò‹ma^|f1¾üG}‹ÞÃ#ÌœV½ÞƒÚ­o] †Öê¯ ãµ‚/€•fqǼÊǽ¬ 0½QH”3n-jn¼X]91G„.“^ùc ³µBsmO€¯?™aéÃ/ßçK¹4|·o ¡RªTJ%7ÇúøêIµ¯ñFé)*EïëßxB½-]Á¸¢€”¤¯«Ö4,U*+#CGW<Á_q/ JTdR¡â÷0U™AQèèêç½…¨*zùÈÝÏQô²FzbMª¤HOIå§Ë=}ί[3³ðô(3á¦ç¬k·¬Õð JÃ6ýo¬ñ„Cr¤3S’…âRüœvÙéTv¶R¨'ª‡Te¥R ¥J¨o(ðEÀ´ÑWÑuÆšnµŒÈ9H üt”*•úí¬”¤Qû‘Ö+køK3P¨Ò ®$ÈN~žqÕZõZÍi­l›WD­Ÿ7ö¼½ÊCù÷ûLïX·×#•õ éR³_É;œ`?ñNö³Ýæ÷Åø×饯 â¨nrдÒègv ßÇ/­Ÿ)o:íðÀÙÏ(f‡ÖÚ5²Þ9–ê¸õòìn)×n8OäרýâÉ3äègŠË|8x fD>’¡Ç<¯®’ß:q8ˆ ÿ0el§'‰ÏüýŸ{·Ypë$ÈQÝüJôðâKRY|`k±„^2“HZŽ_vw·' Ñ;5¦ç•»TtyN¿”ˆë½=5¤¹c±r–¥Kyï"7„¸Yã¥s—\:D«¿ß?·_Ê™«NëÖŽR4õPë¸ÎYVÍ$.àhþº,m±Q–ÜÔ¸7ÇxΔYïŒ"f¼8fpÇ*ؽAå‰ò“[ŸÆ»:¼J{xŠªSWýUõ«{Ò’"ß—w u_@ëópªûm ûÄ´ô^äÒŒ\¾Ó7†9ß²—²222ª$¼Q=Œ€P<¾J¥Dvfåúv)ª¨TµFF¨T@fzÀ3­\-%)©À¢äDw•H•™–&Ò7Pe¥e)…"]aVzšJÅéëe¥¥©¡®>Ÿ¯ÊJOW©À×Ñ y²?§ì¼`Ø‚uÍ*èç™ ªö›ß?yëO¬Ûäµnò„“WÛéÝ™2ïК5 ¬Û´â©²3¨t•J¥£o ÊÎÈÎRðuô„B¾J‘••™Åã éI‘–¢ÒÑ ùʬôìl%/ÔÑ)³2²³àÑ_‘•š¬€ŽHW‡Î ÎøÍ?{/~ÂòõŒDÉÏ<¼|Ë  ×lòò‘óçì-7@Ô`ÝÚI|ú.\÷eê$yW ÂOù¼Iþ%j¹mn|lLðWâ ¯f)UÊlUv†*ûVÜ-fÑçÛᕟ]GÊçõ¡7Ý»´Ùx.r¢C –}oÞZY¹N¥ê5ÙYªœT˜Çã „:Þ¼@éÒEé©)tQ¹J•Yc+Ò'¹{Nò]ÿv½ûÕF3¤ïØpé#XºfÅŒisÙéÙ¥mW{Õ›<ËOÄG¦Ò`Õº¥S&MòôÝ <1gÝ»릶áÌE¶zÜéüÉÍ&ÏÜè»f©—çL^ÍAsšGø\¬·zj­É³¬Z2hÊ,?&/]ºÜk¦¡(5+ׯÞ4iâkÃr|UußY-&ÏòÓ K¡¿jêç{¼v?Q¦¦¤zø®??Óý±Bˆ ,>6çµqáykšWÐeæ± ¯ß6rÙ†:¥„²>\˜º(tùÒ‘Ógn\µa­ÏTJ%²>„x-¹¶fãB>€r»Ç„êSVwª¦OÎCá§Ó¨Jc!ñôÉŽjþ²K2~+ó»í<µh@ݸ+½:“‹ðËÁYVQ%'dÿýŠÇLìÔÆ÷xøÔží³S>#5EY©Nz•™‘Îãñ¶oÝLW5v|vzZF¥è¢4JýëR•JEåY¶ö7ÃÁKï?ÅaÚ$ÓUÓ>Ž^²ÎÂP ÊLÐÏNOðõ õÃe«çMö˜–ªP0¨PÞO?´ÄÓ¯ àùã`÷O6G&e×ë9x“Sn¸|õ²´‡[¤¦dxª¨dŒ—_©Sú¯Ã嫿Mö˜–šª_.5倇ñ™¬Ü— 0×ßæy:j㺃65ÑɱAÐ˾Áõã”ô3ü2M€#k­†°”J¥ ²>ÝõZì±d” ¥:ÅÍÇíágAÒ, í¾T,ù}Í?=¼ûéá$Šÿgï:ÚȺð™IB€ ‚ "‰€ŠŠbÁ†º¶µ"» ‚½ëgïÝ]{×µ¬º®kaU{Q¤ (Ò;„´™¹ß 8 I,*îÎûÌÃæÎ9÷ÜsÏÌœ¹sç½,ªjš¥>7‹ªfIq)IÞþûÑ3tÛu%l‚‡#.¨Ž5x|‚  ±&á8NQ”B©ÄãòM€.âr8tA’tQé¹_mÇ ^¶ð†6<°¸•æÜ¦FZ螢ºƒ·ü¯æœE'Š5ú/np÷»ý©Vû¥µ©Ì¼SuØ÷Ç㙆Þ#neÁâ¦Äx{É«Ñ@¼zóF^Q×jÌÙìÃM™»hQ³µ?WG)ÝKXºyû…%3ÑgQÐvüÄÇû—rÛ^›ÓD@ÊôÈãOy,¯Bæ.í=gö¼¬´È+‘¼a=lçÿúç‚ Ûmxsஆ°`Á‚M³ÊÆŠž´L4¿ðíþõ²/¤ÝæÒ¯A ú߀ۤ¥oö®––y^má ûõÛ¢¿4K}XŲ‰§<î)–“1Ö³‰âÓ»qž®„$ŸptªÑ´-¹r¹‚ §s)’¤p³®U !DYÕ´Á0 !T‘Žã˜u-[’PjViÚ´6€ë¬IIÍݰtëªusNò–lX^'lÙœE¤c{Uò¢ Y4oÝ‚ÕK¡zžË~¨©kˆ"ɇ·½·+¾.—:ªùÒ?’k`s–"I¬f·±½>.;ÓÔÊé×ÅSŽn_ú&KÖ´çŽZuøÔþî«çΣjÃMðO*å`& çö®½yáöÍ›§k¦ó-$Ë|Ã÷Ÿ9³Í£•sfßòðžaœ-Љá+\b`™°nëV.‚Ïßä°£Y,XT ` ¹¬pæ÷EOðD|¾NjʪMOÊeìp¯ù?x$9ßN0@£ØvÜÙ¶}Î¥R•圇×]tuï}]Ï!û%âÉ!¡ÏQLñ˜î­ …_Æ!³]†v¥òmÁœ›uÿõRIò{ÞÃsÆãRŽqdõœ•íY:¸@nN‰8†#DÑ9@ZÔ°ÒUdjfö¥Û»wÞáŒÚÝÆÌìY§êÓ-`þÞu!*¡çÂÍ^Vì²F,X|{´¶géI¿2=)I«øÖ¨ ã ?þmB>U¶BuüýD|ÂM…L)½ž_õL$ÿ2¾ ”"5¥¢…¹T@U †2— D÷†Ð¿þÌ‹ÿm{îçŠE’Hž#«†BÝÞPë/uì‰zt>]¼ Ÿ†£4šÌŒC …–ü.’ˆ¯>=„ë5C#Õ‰au; àB–8<ú0í(ØPC‹i"‰xÙHg˜úJl æÝƒ§Õ×<‰ªÆh–ÆfR«¾©ïÜ”Óßöœ2p†©ï| {g„B¨ºE K sEQ~~Vš¢(ßÒ¼ºe íE–æÆ&&¥•Wúæ:yûæ_ô¶C_¡®¼ž#fnغ½‹%ñ=XËnìöïß@ã¥!KO ðÅéIs(ãæ;þðW72嵆ñŸ(º7'Ê…ê˜àÜ´€×@toX+_9Sášl†T‡PÝž‡…Í[.Ø•#æîv`št1—zø!&ªúx…Ì¥RÊÉÓzè ž†9P1à;¡CÇâyrjŒ¬ê eëô†z½g¹×éæÛQÔhEâ‰MÎÁLG91›¬‡L…ƒO¶žÏÛé.˜²_"ÆþÒm35ˆaSIŽ€þVÂ"‡‘‡FØŒ¼å¥‹‘àùN÷Þ×GGˆíŽjL+T3¾J¤YÚ& ɤEVõœ¬èß2MFs‹êæÕ@&•è,*úJ³(…„ø~)¹DÉ °`Q•ÀÒ“~mzÒ4¥ñ†Î'•=–*ÃM„½t_–ÂRP¦BÃV&BS¡º”‰Î&óìEïW ï³Y€«“š>ÎÓÉ\jl¿¼4ªVèf.¥^›¶\µ>«é›¡Fσõ¹Wz¼ ¿¿H0 ×›OÌ&g©Å!S¡I#¯ûÏb&êİ©e¥d¦ØÂÞBO`— â^F>PÓKjÆW‘Ñ,ö:Ë‚‹ÿzšÅÒ“êB¥Ó“¾Ìu-øù–ÿµò#’»aÆ«ˆèQ¨ŽÎ=Ú §o öí)¹‡˜ Õ¥tóè`8ÈŠ0.‡âb’š>>:™KK¨2a séÑ»¿y¯ðÀû@‡ÒJ˜îe*Ôã ý½,¹=íÀ²R|§jM,dÆ!S¡$lµ_Ö©pÿ}ô{Rýò9©Ãêq”š©¥[ v­=Ôø}‚²å,HÙóbû*Ÿƒ/¼Ö8‰ªÂw 6u°×Y,XügÁÒ“²`Qnœ”Äù \Ø9ƺÀœÇ:„ ÿMk8²¼Yß==)‹¯®Ý팻Ü‚5Ú°9 ,¾_äæÈdR3ssÕÔ 4ØÅ Q oâ7o]1©ÿú}ƒ¶ïž”ÅבÜÕ’ ,X|÷xÿªqóVFÆ&Xq²„a˜Fº¤ú‰phèRa)6ÍúþÀÒ“–‰¯Iú]Ó“~Yãù;î»™YÙÔ@˜š™—ÞYT˜Ïž°ÿ‘¢çI‘B¡P*• …‚¢(¥RIßéz÷êQÝÜœu ¤Ã0Ž`€F'L%ĸXñ€(„0^q©ÿ8pÀ­»GJÄÅç]Íq°›|A$‹$âû‡Úá5{Š$bQh|ZpYI_-E¯fß±çÍ\ñÃק;®+ë{yê©ð†$üËUÍ÷X¾Àøø?N¤D\­œÖÇň$â³—W•Ógå«Ë{Þð/Ó'ZÌ(».¼úɤ×wžì Ãkõ»yvË.]Ükr`O¶¸o÷Ö=‡{“€6¾ncçéQ¹·×úÃ"‰xùØÆ†…‹SwWÓ †(náÛKmQdÛqgÚª<}Or[—œž¢3~I^loQºS*]ÊmÒúç׺70w¡P(¤R©D")((ÈÍÍÍÎΦs¯µë7N™:]WrF#Wj~´¨_ÊØÔŒÞÒ3³™ž)O?ÇÆ¾‰®\¹úùéÿÍÛèèWz¤¶/tIåfgh©7Rô4RôèI8½Ý ½WX¨ï¡’ ;»:...mÈìôcW_É•ôUõë×oÙ²åÅKWªÈÍæÎ½»%í*Ùt¬Õ?4ý=ËëÀ ìÀSÙÃÖEæ*Êe‘Ÿ·r YXŽ`ÓSSÓRR <˜’¼ÿÍ'÷üœÔ#cÒ®ì6tliû0êÍ1J|”|ý7HÆ!b¯¦eˆxÚ¥=×—½]7PÿaL¯â€!„( › JRµ¤’¤ )ID" û”ŒBˆ¢ˆŠK•Ù§ÿþ4‹¥'UwÉ¥'»z¼VáOSÄ£mA“‚ÒhÕÍP‘D¼w¾‹F‘áuiP†2;Eju1éI;l8üX"¾ÿòQ)5ÊP=ô¤êžŸ1¹~£ný¯_\í ÈwÛ^“\Úÿ2ƒ\™$nLJÕçŽMªz¸Uõ¢bÁÆ4>)&>­H»B5˜¸Íüæ.RËÎé5 ¯åˆoÜP}XÈt¯Fˆ2‹J%8Ÿ9HA] sŽWs-Îö5ú‹Y´=ElͼV¯«;Úƒqã½]®» µ¹ðT³S*_ÊukÇÐA-z9¯øMýš$‚þ[òƒ.JLLü}×]þÌÉÉ‘+Éèhͱ=ýRňŒŒ>|xI¦¥_*>&ÆÂ¼†1ŸïP·NI¦%•J›6m¢§Ó¥R E’ Ìä¬L)&Úµk×”¸ WÈÈb$''yxx¼KH ôDç½37ÇqOOO„䲈YÔ¬YÌõe›0iüÄI%ÿ>µnã¦Ûwî–iê¬ãñÃ3nÅž{‘·èÔûÇ^¯ºðÁÀf~úôéÓ§O»cu}¹àURÌ‹ÃYÙç^ÆüýúöŸ÷H³ žO‹PÞõ»´Œ[=ÔðJMLML¦†dZˆ$ÓO/5¯m…QE¦ÕÍ8ßï™hH¶ýfÅþ±'fßž´ð²Ä(ÙÇW±ûþˆÙûGÎ;ƒøH¿vä¹¶nåÍ" ‘ôùµµI“-oiÜx³«ë&—M..74jdccCQ$EQ8+-µk×®]»vý^Œ=ÅÐ*#ñ%”y……&‚jÌÍÈØ$âyd‘ªŒ4«ä!oWrK3€m)b‘DÜÝ€¦'•ˆŸ ë©y—ÖFOzáÑgzÒNfÂV¶]*‚Ga;=Gf6P‘ „mŽÞ)õ C3+ »·[4§ea—ŽÛŸÜöÓPNcw¯i~qÈÒ§Å ŸÂ]ÕáÂòºÂLÈpÛ„WÐ õ"5)ID;¯À /7wP ®Q|8·ÀçÐtضÀ:4 ÊéÔØÃaDhøH`Ò“Òuôž7êêý,Mã_íëÓÍ] œ´1N£ÈÀº8 F¼]è.p-Ý)ê`Ö ›·t­7žå8tmß] ôêwëÐMÖr¦u݈éAPQâj Ï÷¬'©µöîÇǵ}ú2}HÀçþòÙú^£Éš>Ô… õriGéR¨Ö.éËg½Olûc§ëáaúŸ §_îk)ìÑc;ý/Ó½j!ª^¤V<ßé.&M»hÇ(º7'ª8|2cò޵ÍéßýÅ,ši×ìZþÍpñÔÞÓÃ\úßýí‘Hò(ðšÔÁX½S*]ʹ߃½!ÏOÞz¦Ð¸²SEÿ-ùAM˜0A—3‹ ó---£££[¹7×(Ò#¥z«^ýÝÛøŸ~úÉßßß©+W®rp¬“°ÐÙ¥©›‘‘‘µ•j½~}***™\jccÝ¢ù绩ÒP(&ž+år9QŒÁƒ}srr„BaûöíKRRÍ47—ÎÉ¢¢¢„LIJ‚Ç@ èªnꌙÂFN.]ÆOšÂÞ^P˜ÿú­8äì9=vÎ~ÛÊÑZ¡¤>fÉÒså5ÌxÍê[øÜ²2aaaoß¾}ûöíû÷ïÀø0Ãýó8&ÕÓܺ–ÝÇmKGO=tç†%‡wÌ\½}Ù¸Uw 4Zëcd„9ÍþÃðz³22‚055-’ê?2?ú)¯zmÌÈ2;1x&ÊÜÌê–UaæÔÊeÕµš­ÛV··V’|§A½ Z:ÿrÚ !4EJ‹(™¤‚Ùí t1‹ôq¡½gê ²“j¹`î‚v¥:¥r¥r>Ù4„A-†¸¯ß«žŽP¾ó¶•v—ÿ¤];ö-EÑøýâVúÇ’õs³ 2²r ì¬Ò3s2…):ÇZ²hάY³–.žýã?À¨™ƒõKaFQTÂÛ7ÎMšÊå2…RÁãp^¼xIQ¤••uõêÚG†RR’9œ$T!fYÃêÊ•«uêÔÑ/UJ¥’$I¹\N–âtU($Ap¹ZR™ÌÌ,¾±Éˤ0+›—ù“i,â·ý∟œÖT«¦óexM+ë¬ì, Ã8L˜4¥IÓÆÉ)ÉðäÑãû÷ë"ÚÉ• IDATÇjf_£@JÈò1ë.yW$CR9Éçq icçÎ<èááÑ AP*ËÁ±¿ûäãO1qûÖþäàà€ã¸¤ Ͼ^ÝŸŽùå²±KÖïÖ ’(˜ÛÔ3¼^‡†NÞ¿ãs8>ߘÃÕ™PVsq/|”~¤Ì8=§{÷:F¦^Ú*V@ ŒPÖ¥yÓÍÍË{óöm·nݾ˲±Ž—\ŽéñÛW§u>H’¤B¡ I’ÃÑ’­X¾tûŽ’>dgg×®cûáãÈÍÉÕ“c€«En¡@9«§=`^Óœ‹–™sº0zôhFH”#ÍŠ~PãרQƒÃÁ0@À76nÑ´á;ˆ¢Žë{?•uÿ¼ýmd_§Åº®_QÞ;e]{û”¤$DQ6Ô™»ðùÕÛ®NdŽ^CFî ¥ÒÜøPCÒ,c”¡„ aõ;;ã&ÜÄ›/º5Q¤8šEIe”cF.E’Ea”*a’ï8¢½Eø )„¢¨ÒR©Bèó‡‡ )ý(,,T*å7oàr¹«W®³³³Û°iíÂù‹ —*Ùi üypÿ¢KT9ªRPíË¥Y,=)‹ïcoÇ>éëú²¨ ™„›7‹|þ“»ãŠoP·qÓ°=æG‡—¯¨b Ë)¥‹žT®üüÒ°äÕ¡½½ýâ†V³N5Ek %sªrrr~ûí7Ñ‹gYŠdxŸÒY&Ñ/•ššjkkÛý¯›·î>xð C‡›ÔÑ/õZ,Nx÷ÞÎÖPI¥2IâÆãrlíêÔ¯_O—T5³j8ŽK¥R’$«› ¢câx®©Üì ‹š“&³rò O¯ªÝÖ çqIR2™j+* %XAaª„h8K3º}÷ž\.wuu€Ë/÷Õ³Mº›8ÎóI’J¥’¢(k+K»Úµuuàø‰“ÕTjp8Üu«Vé²?™“œ-›ØÕ–ÏÅ Œ‘³ç/úúúþìû³{3÷ôôôœœœ’¢}ûöÉår>ÏÿlüëzôS£-«šXÕ¨a8@9{õ”«“{ÖoCÚ¥#ܤ ”¯öÓãÚ8áÞÄÅ™˜šà8^»n#a²âwëÇÔ»†|º‹*,ü#5ªUÈNqÛ{£ì7hÃ[ÖëЀclZcT ‘ŸÃ5/ã¥ã«Ù}yVµ ^>µoS765ê¶äÍÚñÎ«Ž™Ø7Òuáw®7oÕ–ÃåÖ¨Y;---00Ó† &Hr³Ç…¬º¥)˜5kÖĉsrr/^\¿¶M‰”ž>€ãÁÇ{vï|úä´©3¹.A “JMLL2—{¦ÔgÏ&VVÖAÁGG/•eeeÖ®]G”~¬\½¦‘PøöíÛ%‹µ$y,=)ý²Š¥'Õ‰yb±ñçn{|zÎ}ù­,á7›˜9¿}Ås¬/ÓË«¶÷öø&9È¢ ‡ˆ`´{ùŠ*¦°’¤†O÷»x¹‡ÃÁÝ“äÝO½+öÎÿuÒÆ¶[[ZZ6kÙ4%5Ù¥•c¾EµàνÏÊE}úô !T2¤TP–”‘‘‘E Ëô¬¹\Žã8—Ë5¯n®T*åJBϸ”‘‘ÑǤA „òóò…† L©Ò  PPJ"¤´ˆ,* òȼ,7Ï+diYšÇãÕ«WÏÜÜ<''§§ëسQ›F·ÝG’¤‰‰‰\.€´´t]iÖ‚EKœ„ “’Toó1À–,_ñëŠå¦&:׿Ê.TJdBf‘³íçY_9)àsôŒö¥¦¦æçKnݺê/’òòòH’4á[âŸùczöºóçʵükZðùF¡Û£³>Y¾O PFšU«Ïð÷+N˜+R·²_ Ã9å ó &¦¦8Ž0:¯—¨ÓÊO %‹dx‘L™Ÿã 4†j\o§^ %‰ÉáPfŽÕi^7Hâøx‘#0ÉÉ…öö¦±³ý[žŽ(c4‹"EQÅÓøÆ¼Ò>UŸÃá…†áxi)œlË–-sæÌ™3gNÍš5™Rú‘“S$•N7I.“qf'‚y÷÷Á0L¡T(õyÜÈ0)~J²¶®IŸ>ER©~)ýX¼pþº ›æÍ™­ë6ÍbéIõa“P¸©jX"±ï\Õëå%c¾åòÌ}î(ª˜ÂJ‘jÙÉÍLÀá¢(s±” LLùFÆÕd鯦œê3fÍùmÛ-·œò›Ô‡CR {š Œ¥D}C¤~úƒ#†WO÷æmÜôK€‰±±‰±1àr8…8çp%ãø«W1Mš4Ö%EãYZXÈd 3À) (ŠìˆÕª¥a8Q L¦À‹äX‘+’#mïˆù|¾R©LOO733³²²šÕàw’$óóóSRRàÓ§OEº·Ð2mÖ칂jf -’r¹\žÇ‹/Y³j¥™™™öᓹ\gǤÝÃUßÀƧJ2 ¨ÆuLj˜j¿¡åååeåä©1W§Y!ë†Ð/s»-ßxkÜŒ<)–F¹È!"õå¯~þÜÿǸñz¿‡À0»ÿíÏ;8ÅÂ$ï…«æAÏ ðü¼<§(*¿@êìêZæñw^y·¨¯uî}$—s(ÔÐÑ+’Ȳ¨Ž•=þG)HL&Ç(Ã^ÿaXr´Ôξ°Ð I¨ Èaé©Êfo–)ÊÁ¹ý ‡ÃÙqS{ˆ.ÇEà$I•–Ò˜•5gÎزeË–-[Ò?%–HéGNNމ±qvv–µµÍí°ë¶¶µ²³³è'Ì)ý†HÑ ™±1ÿFè•î]{›#ŠÂ*zæry3§O366þW¥Y,=é?¡„œÿ„Z“ ­¹r‘üõã×ôBI6ïèRÝÌ$5O’›–§T*{ôèÑ­{ÏЛ×+EªYÛÆiq‰L)[‹2¥(ŠÌÏϧ߀P²°°àr¹J¥R.—#„¬­­>|äéÙ®R¤JC©T"%)ÃNQ˜’À&Wâ2&UÈsµÜ d2™µµ5¥¥0Hèo ]\\nÜÐ~Ó-”J¤Ëä‡þ•°rõ.«T(¯]¿ñ“Ï íC’loÅäÉ9[¯~ŠMÉ·1ç×¶01ãcf|¨Q_ûš)mß®T©± :Í0tBºg3Çë ~ýýRðõD{[ËûZF-9{ð´«÷mŸ>}êááéNeøµìǾƱÁŽB ñšÙÂ%[ ¬4;#Ãp¹\æÜØ nn5 §mwâF·­[ÏI•˜‘Q·YÓÝÛ ‘E /Rp”†žS7x³nvM(Ĥ…€ )QÚøä3ŒË+;ŸC a0YÌ™ÃÌ™h7Ò?(ŠÄ! JKi hmܸÇñ¹sçÆÄÄ0¥ôŽÇ¡†N–5¬d2™¤HâÖ¤eqÈyþ C»vZ;”)¥ž;–Cʽyk ò²³ÌÌÌõH=š¨Ò,ܺûÓÄ=ŠäØ1­¼có)»É.mvIððÎóÌ#vUø»Oïý7Ò.K"ûZ˜Š^Mro²•ïØóҳ݂ô=\TÔY_õ½<õ<‰Ü„÷´ÿBUó=–Ï„"è®åDJ⺄åÓM <=ÉÇõôl¿Õû¢€c+Ê¿×Z $ŽHÄó« S Ógwlé¥ï;ÞžkÿÚ0£Ó»ÐÃ?õ_]Þ&{Ï~Í 4Ë©»ëë}7‹Ê“;¢ƒ;¦çäK¤õkZäËdI™ÙϽÎHÊ277Ÿ0nL¿>½¿­TvvŽ­­­B¡$I‚ÏçÓßýåæåÉerçæÖ´V-›Ê’Ò:šÅåšð’³Uk–P#ILIb BõU¡å‰ùÀ¿îÞ½ãìììèèhccCeÈd2ú{u]ÕíÛóû¨1ã88¾iÃúÔÔT“™3¦oÚ²ųQ]»xé’òh`Ÿ*‰K!Óòä¦\žTŠòŒ”Jš×«¥KÄoÈÏÓgÍÞ»go¿~ý4/æõëçäf9Ëãñ Œ"Š¢fï<º_³ÜÜœœÜÜy mÛºåÈñÄÐ;aÇNòù|=²vCÆ?u¦¾…T)/=)A¤“‹«á"8×øïg¢¾®ÕÍp~ÿ±Âa“ ä p™’,4(ÏŠݳQ—FujSá HKÇ(ªa/OùŸSò_ÄÚü~¿ 7’M AŒ?¾dJ{ M„††º:ÙãÅTïú¥0 ËÌÌìß¿ÿ»wï, qA¼.$Ù©C‡ysgçæç1÷ñù¾þR©ÌÔÔäÛJýs` ¹¬]“•:Üœ˜/k.´ž|¡ÑÑþ*B»!tÑÉ‹þ‚fjiV³¿Eïç»×Ÿ[¢«ë¾ÛÝ.Yv.l{L ™kZ˜äiÛ•¨Ýçɛ߈äç?8–€Upìu§ºæ]¶žÕd¨óݼpX‹¬—AÝÛ-£Ú§ß‡Y%ßìÑz²R]áà'âóm„xÇùû{ß²ôi«é›ÿ\7ðÆòaó·<^™$îo =;²}@xEÌÀÕŠp¦”‰‡(]õMYGð‰¸1@g°ÀrÐ_SSþ·ê‘Ôiy¨ýînåÕŒ»çÊ{Ûñ À©‘ÜÆ¼ Ðç|tá˜fa™ª<Çiù-9ícôׯHÙ‘‚h×ÇZ7Þ®J³Rê¹qgÝZöVQ j4y}Ô³^NÕÎÍôþeÿ«oÚ^ùîA7·Q €;‚~Û\Ü.!ÅlþÛöLÝ]ÀËo#hE„W“.ã¯ãsÿž2xç69`Q^èšÏïÿöB €:»9݉z ;~¿ð.æýÄÉÿÛ·G'eö×”ÊÎÊÊËÏ€êæÕsóò !1±[×®/_F»¹5­\) :(ܽLÏuGN²Ÿ²Pcg^})½3†¶nÙØ¼™›Öa°¢¢"©Tª,žC†ã8Ç555555Õ?^®D O½Î*$jšó†¶µõp(ƒ´";;Û/À¿ôþFBá¶-[ ϱè1 ’$er¹¤°P*•‘‰aØ«è—æÕÌ;{yUx@¢ªœ;$ùsG›®?an™ç= ™=Q(! €B`\Ǿՙ28fÃï\oìÖP$  ˜êe.z%hö pœ‹spnµê–“*3o&I’9‡0 +-ûæRÿÂŽji–ëÚ»Õ×z}®ÍšWWj2$R¼Îë´"$•™fµõç­·Þ5ûÖçwwV^#Æýý$A«Èó[ý¨V[õn§Ç¾ÿi!ºèêÞûzDì/ª_ÌEâyîBÕU&P"+*øÎ¢«îîýÄL…OÄ1û®5Þ=uw ^gðžÎw'Oïq16ÆÛõÁÚ©˜ÜzZŠh©­ïÕG³À÷¡ø²§°ðš¢˜1î..H^ 4;˜ÿjŒy ³=àÞö0gÆêá4uÖÉËŸ/yWrB~´üìÍ¢–N«ŽD.œùºþ©q¿ŸïÝÒë4SJsÜ>èö ÎÍ€!k¤HûÞ®ñLK¡ïñù6Â"ûá?Ü~»ÇñaC~KØ/O õv“¼(hFï ’ˆ‡ „„y÷à‘¯Ù4‹Eå¦Y,X°¨ xz­I³„HF[rc8,ѹ‡ƒãs «ŠIý—ý,¬á¨6ÏÎÎÍ&³˜žÔ] ¼™ð|TwðéÿÂêpA“ž´•-4Ùü ¹)@ÖÝÃOÒHP<~^n" ,~Šo{·¶NF‚Ï,4c¤:Tô¤Â惞´­†B éI_¥€ŠÓ²¦£‹“zÒ ˜¡V¤UJm4IMf;mlËÛQù® K]t—Lhrêñ†µ& ,X°ø×¡}×^a×/e¤§à8§„ÙÕˆ¯zrçòT¯ŒùFª¹nš4«°Ô=£eéIY°`Q¹`_²`Á‚°ô¤*°ô¤,X°`Á‚‹/6ÍbéIY°øÎ —I Ö_ý‹ã8ŸoÂö& 6ͪ XzÒ2a(é÷V×wfü?¡xÅ«-œa¿~[4ÌHKþÈáò´.ŽÆ‚¬ô>ߨÂÊ:/+½fz¢gp#(f" ¿æB)Øpbñå€)ä²v™ß=iÀñù6:IA«8=éú¸˜^õx‰wƒ|ú,+ÏÊW—kCeB‹e×…W?ùá©MòÕnm¦Sx­~aMßø ½º'Ê ÷d‹/ñWÖ®s=ðì×?hãm;û¿x°yÙîíµþðúiíC¦\y ¦lí:H1 Ñbb‘’¶ãζ½ès.•€{’Û]µÊé)j1ã·ƒkÜÞ£Íáð\N©\)ÐdâÚåݶ°ý^dåvÙÝkg{û g¯Ý,ôãaè¥m;ñ)D!„J(‘T¿¨EQ$ÉzŒÅ—@1¡ƒQ£Úx ,NЧ¿  :Žz<‹ç£Ú¸Wsp¶ÔÒâ›Gwzv·z6RåX]÷Ý^5PõL`Ûcâ½Bqdêm#¼vŸ‰ø‘8X€àVÁñ‘"‰x¶wÒùî IÄ7­0ª}ú“øÎÓ=¼R iTï8ÿäêÖÐjúf‘D¼qN[X™$¶†š"‰8ühû š¡^¤&%ðxtw¸ßÝ—"‰XpTWBš`9è¯eíLÀiyèVp­ßÄD$^°¤?äԌȿClW×J üiŠ8p´­†ñF«n†Š$â½ó]4Š ¯kàŽ ‘$¶„®˜Ù)êP«k}Ô3‘DüËø&ÐaÃáÇñý—‡J³2Í(]LÏÏŠ‰˜\¿Q·þ×/®vGä»m¯É.í™A®L·ãÃêsÇ&ÕŒÒô††u£bÁÆ4>)&>­H»B5˜¸Íüæ.RËÎé|¯åˆoÜP-Ït¯Fˆ2‹J%8ÓDñ²‘ª•ãòãß&ä«2ó9Ç«¹“yhô³h{ŠØšx­^Ww´ãÆ{»\w4jsá©f§T¾”ëÖŽ¡ƒZôr^ñ[¥_¶E±×n$І(ª˜Æ€¢Ù)U©ÅF‹/ 5Þ¬µ»’[šlK‹$âî–-=IÄφõÔ¼K7}{ô æžÇ]x” huiaQ'3a+Û® *岇@ØÎcÏ‘™ 7uz¿È] lsôN©µ1Ív‹s»·[9aCë»tÜþä¶Ÿ†Bp»{Mó‹C–>Åë ž±Ñ] ¼ÑõP.,¯+Ì„ w°}@xÍP/R“’D´ó òrs%áú*¡œs |M€m ¬C³Ð¡ì°‘N=F„† ³wbœÊxïy£®ÞÏÒ4>ñÕ¾>ÝÜÂIã4Š ¬‹Ó`DÀÛ…î×ØÒ¢f]°°yKwÐzãY.€C×öÝB¯~·©­9ŽÈ0C£®±ˆÞWkx¾g=I­µw—8>®íÓ—éC>÷—ÏÖ÷MÖô¡.T¨—K;J—BµvI_>ë}bÛ;]Ó¿žûñôË}-…=z¨V1cºW-DÕ‹Ôê€ç;ݤií¸E÷æDç‚OfLÞ±Vµ°F1‹fÚ5»–3\<µ÷ôp#—þw{$’< ¼&u0Vï”J—rî÷`oDÈó“·ž•±îý£#ÛË;æÊápØ 7‹2¡T*€"ID‘ˆ¢ìó_„ „E/{ü=*zôVúêù G{ºUjšÅÒ“ªEØ—¡'Gׯ«ÅŠ•Æ7·†äâ»’Öv•Y—)³S4À¬K©©ž&kÔÕ«º‹½9.×ð|.âz­z “¤'5š\ʇÚQ±^.í(] ™í³vNö™5aÚ+ÿ¿Íõ®Ê FñªÍ½Z‹Ôê*FĽŒ:¥Wi“<Å&îcîøÜ_Ì"$}\hÏÿˆì¤Z¶˜» I¾²T§T®TÎ'›Z0¨Å‹j£~·—øñóâç¿8¬ðÒ¦%J ‹ôìãϾ³añ%€TßJ D!D!Š‚ŒŒ¬´ô¬âéd ´Fé̳é•p‹¥RÖžO®”¶$¾?tòÜGÉS •ÿÈ-Ò„c7Þ—yXÖÇ$dØò3Š,ñÉ “'Î]—a8uÚÓ¬jB·®ãnv8þF@Ó“6uºØÐô¤]—zRiÅô¤ý׊ÜL¥S,¿:Ú×ËÃÅŒV²$Aº«%o9íáßÃËg°‘^&L¦T =ia«18MO:þøµSCÑPÛ»¸Å޼4©µ™äî’¾GŽ7Ú¹õè$GÅ\þNå2C´Ð“n™ÕaÀÏô¦':´!,ïðkxÚ1ÿ/ ˜žÔÖ¡¡½"ÀÔ]$ùÌØþ.6Úk„d§@ÃøéSïݺúK‡:û q,Ý.Cê’Ü]úshX·m´¸W ̺Ãu‘š–F‰u5hâÚÈ͵‘›k#çZžŸ;ýñ+}¦_¾±Ú?Xf&kú°ã¯ë–Êu+ÖË¥‘5edwß!Ž ™í"ÏaÔ§Ænì@†í懆 -­Ÿ¦xíðck(íÞ’Õ(R« ìZ{ð;2A¡ísYû¨Ví­+)jµùι.½Ö8¬ëgE}8ázàfç}~mö8•ÔÒ)•*u²ÑÎs{k¯qÏ;xâDð‰ u^Õ$ß3?jêçÿK¤”3Fû[¸ˆŽmâç¿&,oÛÄáFrøì…›E™ :¡B©þffdÿÉÝqÅ7¨Û¸iØóΣÃËWT1…å”ÒEOºØï;€ =™í7hDZãSüý?¶wŒÿÿçüê?lÅñcyuSr×zŒðÙÄÇ0œÃ!”Ÿ_>>¼sµ[ßÁìéÀB?B/{véá„Hú !†aB€Ã0Duˆ0Àq.¢ÈÒQºâÈ 7ù£Iû#<‡Í÷¬vbº¿ÏÎ â½ßÖÜ£³­&EûFÙCÞƒ__6[Ñ¡Ú\ß‘kmû7>nŒ³¢¨Ñ~Ӟ؅ã8R$N<ŠöJžuËa»Oíà~=·»2Ãßgg'ñï}rßÉBƒÞÊ] :Ù/`(¢§ê“Ùg£ysBÓíºÛó.?ÝgèOPy§Ÿ‘>î…û´´ø<ÿLTÁÙÈ»©ò|,€›ÙË‹'›ðç’YÇîË|;ðC¢pŸVÏÎ5õú2äx ï¡·Žïáç|ÂË×éøV 0áÉùˆì®½{Ô6ã`€½¼äÚèíãAÝý|ÂOtèy+ŶÄÚoˆ!Ð\Óð? 7QÉœ‰˜}Rfbžø³g®ovû†–ð›M̜߾â9Ö—éåUÛ{{|“ dÑ…Cv—»¨b +Oêà‰ àÇp5ŸhB¡¤QrrJ²¢ùXg> DQÉÌ±Š³8, ¢HŠ´B! SÅ¢(Š¢ ¦=J›‘”™sæ“ûÍÍŠ£”"8¶Š„èÃVƒ IDATbå”2=^9É)©³·oä¹Lî# <$@Š ðÔ¶?™4ÿÄ[ÕÐZFlÓf5EµhbžIâ´*®•c¦ÁŸè pPª>%É4iAaQ§þ}ÈÜè‹OßååP$*1U×™’y»(îê±S· _ÝÕl5Db2'­¤]õmùEH•ÿuéPû>™¸!Ýßcš9´ñÿùG“¡Qùœ ÇO¦æHI€Îík%ÈÉd˶d~z‰µ¥gOü»Á¦Y*zÒ’¥€gb“ð³gzÎ}ù -‘¿ØwîiNUëå%c6~ÃIE}î(ª˜ÂÊ’¢Ó©’­ðÍÏÜ|raçÂÓ†”iää÷xǺO™™¢˜B*ói¦‰p°+7â\¸ö¼«ïèwwªk8ôÚâ9/_>]|ÓTãƒoæ_­èÒßódЕŸÒâ_>C8¿(9·rû~'¯Pò)M ˆÄpŒ$ z¹õÖ$`èЀ¡¾ÜMß+¸-þûðº“gS~|™œští-n¤)Rò ^ÝöΆ¸y5Ö£3üÉ«”ÔÔ×òL¹@ JI/xhT¯}ø™ànÝœ8VMK¬Eè¿5ó»|iÈÒ“þJÈùO¨5YüLJt¼4äñ ¥‚N³xF|¥BŽã8Îá’„’Ãå!Š"I‚^}–$”\ž‘R!.ψ9 õôþÍν±Nf¡×CþîÔs =$Š…0‚Ð;a8Žwëâ…(Šf{àr(ÆKCžúä?¥BÎåñÁÑ)ƒï9e@(Žs¹<:>9.ÎáP‰à8€¥RÆ$A?(r‡‹á8Iˆ¢èàçp¸Ž`„RA¹F¨kÞ­1ÎáE*1œKO;Ãq.†!B©Ä9<Ç(B©äòø„Rç³$³”Ëã? læ=Œ@J rB¢ðŸ[[#DQ$ÆáðHBqîLŸ!©ó³`‡ $¡À8\Пy"’Ã5¢(Q†ã%ÖþwâPõÒ·î)?Ÿw5ÇÀnòúÅÊýCíðš=E±¨@4¾G-¸,¡™ME¯fß±çÍ\ñÃק;î X}/O=Þ„¹ªùËx”ÌeçDJÄÕÊŸÚN <#’Ä.Ø€c+’ˆéïàŽHĶ\0}v÷'ý*z®ýK$Ÿ¾°´Möž7Ü îâ;uw5e/Ö,*J…¼d(‹¾EQE'^„RAß“¥‚Þ£,иñðxF¬'Y” ! I’æmÀ0Œ"(ÔÍ«Ó]ºAOŒ¸:EˆR!gn@(•ô„z:8~]XŸ$I(r’ (’ ” :‡P…1E•I’½§$øI’ ”JZ!ó¯Î§D’„‚$!ŠTR$‰(Š$T5R¤’PÊ‹k×7^Ï,¥SIŠ’—Œ$¡PeT‘ò´cAÁ¶½ôåXt[hÛhK‹í$imt«™Öþ§ÀÒ“~mzÒ>ç_ÆÎúÙ]àºz_8-9:¸Ý¶Ù­Œ(ù…‹þ,¥þ0Rg}Ë“îáOýWƒ^ºK âJ&!§Z»ü·í¹Ÿ+I"y¥¨5Y°`Áâ»Cñ­FSÀ#À1À0‚Tb”w’ŸïŽcÿÊ¿Y¿!xÉ`n1ÈÝ\ýFoéï7¸®1ÁFT…¡F'DÓ“~Ø–"€yu…¡4=é!8?¬“†¤VzRIÜgzÒVfÅë1§\ö\†êÝNÏlðÓÂéý"wçëA1.ª¿º¢éIUßæ„ |gÑm?÷~b5…Ncw5Þ=diL1§åÜcëü溼®Ð³d%“Š™AsZ–1¥¶F´ó ,Yl'@ ô}(¦…rÎ-ð‰™¾ÊeöÖV¢Cùa#ÍS˜¥èÑH÷¶‡™ô¤Ó~@?f~®pç¬üWþá÷fÑF§Uò[ÜÚU/ž©IjZòòi[îßg‚[ Y#E Öd€…Í[.Ø•#æîÒÄ•EöÃÇÔ~»GÀÛ…î‚„ý1¨hÔªS¿òÇ?H’ùò¨*ƒ$Éïe}¥Rñõ+•ˤ-Út€ï_;¹4Ã88A%é=%ŠÄ^¿|æèÂ~nÏ⫤Yvn6‰Åô¤wòpx>ªÍèàœ~7_×¹ÐH“ž´—-ÜzÛdóîòQEu÷p­´¶{ôs%jÂâ«ï}/ÇÉH JŠiÆHõóOEOú“ݽv72èI'qk›1MOúËRPqZÆ8º˜ë '­€À,¬&¥ꔡ¡LÊP(MOšÆÜ’êùlšŠ$±`« ùÀ°ÓâuüXCJ~]v§‹çØeÌž½èýŠá}6—&5¶÷ˆz¬ÃjP£ÖdÁ¢ª¥Yuí9\žR!û®†V*YŽa8—û}Üc¾°Z]klbB4hÔ„¤H`dÏX1…¦‡lŽÅâk¤YÕ„n]ǵßìpÜ]v4=iQð6Ÿ¦'5_êIu,¦'}ÛlVä–™TZ²bùëщã(³ç°$AüÃEßnSŸo9EÅŽ€)‰2‹‡g‚ˤ'¥¥JèI{Ý9ŒÃFšžTÜrÞ©¡ý‰7¦BØÞÅ­ýÁðI’ž{ï.é[øà±ßTܡỸ7PÌý(°L9v´fè‚zÒY÷·ˆ#Ο’suÆå½9~üíò¿F¤ë^MÅ”¡»Î&½ºõLÝE'=BÀäλGíœ6ûŒWGÅá´ù“j ‚…ÏáAöt Kúîr=çóÔ¥Ô;ÍvÚØ–·£ò]@_<>79˜ÔE4*¹»ôç°‡Þ³l´µ‹ šZóÈ‹¯Ù3„EUË!”¬X°`ñ]€¥'eÁ‚Eå0”|iøFš„aØ—­¡/]EU0¦J5³‰âWöÂ&ß©c«¦KYü›P—_“ËzLÜD™gJþkÇRg±`Q‰Orö¥Ÿ¿BUÁ˜*ÕLdå;ul•u)‹Ø4KE\ɺ‹/tþ w²*u³ürÆü—Ó¬/T›f±øÒø.Yà;m:"`»®MÆ/4þrÚ9Vwyê?¤ï/ËÙÅ*n“–štÖV[8ëûzѾðöª¨ ÆT©f~ «îï_GT^EÑçÿ"¾—²Û¿i–ž´|øÇô¤Q†j¸G’ó¥‹mÇh[>o¶?ö .>‚™¶p*£‰ZùNÕUÁéÞÊPøUa`2ÛÕlÌHƒ†—q ß^vßÕ€ ×f{G „IžÍ¸˜NﬔMU‘:p wñ6÷ìªÙòÊ«¢ÜÆ (ˆ»ä;ÐûçQÓ³‰JÖ|oÕ°½}ÇÌ ÿ(Óy¼4ú§“¤ø¸âäûz˜V!*—vþ²çʮΰ-îá#²TE×f{çSå°pËPoB ºxŽÔa|iqûÆœ¸ÿ"êMúQÄnÿš XzÒ¯NOJRƪÌÁˆÊÑ0òãß&äSe+TÇñÑOÄ'L1ÐTÈ”Òëy&©)nÞôJ†XTð¢½eÉäPüd^œ9f0ùNÕ î(®d'º§Zìϼ(PgIeºWS¡nohЮ2±7&êQ|Ðùtñ‚~6ŽÒh235vZò»H"¾úô®× 8ì¼l¯HòzrïÚe8 àB–8<ú0í(ØPO®§‰$âe#`ê+±)˜wžV_ó$ªZCY°o´Oúüœy|··wг¬Š=&3LoœZgφ¬ën¾ùdÈÙ³› >¾@÷v/ôöö½hïê#½ý&åS=:ò«··Ïùø‚J|fÕ4Є'‚ΆüÍ’ƒ€Ìœà=lÚZÈ^N=ó M÷2{æX?oïa$ ç'×{{{Ž—‚2mòPï³6#š‹r CB‚l+ükThÉ<þí¥­ÞÞÞk¯§ ¤#S¼½½ˆ¹é“Gúz{ ‰-PŽâíí;!‹Dš‡©w í½aÓ7 CF³®sÏž YÜ#uÅ£‚§‡Vz{{ÿr3]­íŸ«Sï}2{ưA?œ_** tóÕ‚ŠÑv5kÉœÙ#|¼ 8õ^?y{/yXã~ö6}èÐÉÔð42ûئå{#ó5ìg7v«ÈhV hzRØ–"IÄÝ-hzR‰øÙ°ž×N­ô¤}¦'íd&leÛU¡b¶óØsdfù§@Øæhi~sšžTؽÝ2 éIë»tÜþä¶Ÿ†Bp»{Mó‹C–>-¦'Þèz¨–×fB†»@Ø> ¼‚f¨©II"Úyy¹¹ „€pý •Pι>‡¦À¶Ö¡YèPvØH§Æ#BÃG¨æPÆÍw<œÝ„Ly­a<Ý›Ud€BuLpnÚ¦ñÂ÷†i(T“ÒçyXؼ¥»@h½ñ, Óá“kšº¸Wkžƒ0“G[¸äSj 9 F¼]è.p-mº£ÔºR RÊÉÓzèqÿ*|'tèh!t´Rª»WC¡o¨õ—:ÜëÇüð¿œÝ®íÒp”z“Õ⩯;d>o§»@ø±q\¯Ì8Äë Elq4BëÃl9úý­„ú…þ5¦tl¨áùNw0iÚE;®¾“¨Ê e©æg­;à÷ B¢rïÿ… 9ƒöÍ£P@Q%bP²Ðûéi7‰/âN„œYÙòeßuCLXpò•v±ÞÔS¡ Æ¡ÊCicÖOiîí7õi’!´bȸ-Ÿ Ü2Ôï×ðÏG 2/¿ÝÊ#XÞƒýhhHÈ™øKý¦ì>væ¯Ö?“ho&½PEuŸ»à¯ÀæñË÷¿:rfQ„PÝá»BBΨÿFJiaö±?o¶¶7ŽøìDÈ™?Xk´®N£¢_|Çl <}êÐzͨ(îM­ÍG1ÛδöW¿ÑëŸ:½oä«L%œ 9³ºöŸ90½æŽè"­:¢>k€!gv®£a? å‚fšeçf“©ü<šu3àù¨6îáÓÿ…Õá‚&=i+[h²ùAsS€¬»‡Ÿ¤‘ â½Z¢6 ,~Šo{·¶NF‚ÏÃ4ù§:Tô¤Â惞´­†B éI_¥€Šž´¦£‹“zÒ ˜¡V¤UJí­šêöNÓ“¶fÒ“::[•¦'MSoè|²ëñ¥ÊÄçzŒ/Ka)(S¡a+ …Z¥´4™g/Jú«i³Æ4©éÝA³Éšò´7“^C!Ej´µc æñ§¶ï]6˜Êÿ¥ÞvUu%\JË~@º›¯é+†µï”–5Rïº[OŠÌ;‹©›!¹»ôçаn=:ÚhSÉt³+5;a§˜6v­tñó·K+aº—©PO»ô÷²äö´k™4¥Þdµ8d*”„­ö»uªSßþô{Rýî-‰CÉÝe?ß¾ìÕ×ûÈxò©DŸ£ÔLÕ`×Ús€ß‘ Ê œßóbû*Ÿö½=JŸDUã•!")B(DaµzôB<'ÿ«‹f‹ž‡/¾iêÈ£6ñ- *x%+©‚¾ª!ÕN(ùK¡âñ„CïX—œ•%Š)ü—Õc¶ìø;B$ºö(©†1ÌëÇßvîaÈÖYæ¥ø SN¬zúüy>…(@ˆBO8ôê¢éŸGÝKLïnr8,.ãSœ±1¦U3Bð2**ôüaßÙw7ô©É<þÂõçÝüƼ»ó€2ªtöpdøM²¸ ú/ Îá!Ã4:¥Ø{tÞª}Õ1…(0µsr¬ ÿSˆRk{qu\õŠfôà¬;~Kc¿¥">JJ7?Jô,òÙ³×9 fÛ™ÖNh'ÿýÊãçn¢Z:rÎ>ÝŠË+Ýàd Ý~6k`·rnÀÒ“²`Qœ”Äù \ØÁõÌÆ*¡'/L ¾ðªv\žñ-ÎûÊÆT©f– -)¡V]‡ªéXåÇàC²ã…üïË¥,þMp²p`y³XzR†_éíngܵà¬éԆͱ …è‘óﻊª`L•j&3«þ:V•§ù‘.Ýpó]æ}¶.â铪ª.eño;šÅ‚‹Ê¾ï2F³âòß}éežyFÆUg%é/gL•jf 2R’jÖ®û:¶jº”Å¿ ¬œ¾ËѬN›Ž<›7BÂv 4¿ðíþõ_êRÁ±:ø[£ÑSê9¤ï/˯ü²’}$üçp›´ôÍÞÕÒ2ë-œa¿~[ôwѨ[N²=ûïFì‹g¬X°ÐL!—µÎ|š¸G‘;¦•wl>e7ùÂ¥Í. ÞyžydÂn  ÷é½ÿFÚeIdA+SÑ«IîM¶ò{^z¶[þ¢‡‹Š:ëë à‰ø|aŽÒ’ð‚ö_¨j¾Çò™°qCÕp"%q]:-Ñš¶ˆ2v¸×ü<’œo' Ql;îlÛ‹>çR©ÊòÆ?·žè¢«{ïëzÙ/O }Žª`ŠÇtoe(üª00™í2´+ è”o æhÖ[Ù'ö:û/F||¼³³3ë,´¢.¿&KOÊÒ“°ô¤,=) ,¾)doNvêÔI$ÕüÍâ{KOÊÒ“°ô¤,=éw…¼§BçORBM uèÑ›™½¼”ê3÷éßÿeŒôêö4NüÇÚß@öbðÞ€L îÔi0øz « Ñ’}gÙÒÀ[‘÷®0ßërM$¾¼CT|||ð¤Î¢øxqRþˆN?Š_>ìÓéG=/ÊuzdCVî½{ïž»‰æï ÃÈ,¯†£õôÔ8æAàÁg/£§öè$ûgz áØ”:‚òëù6iKOÊKOÊÒ“KOZ%Q½õØ>šƒ²ë÷ÕÎi݆î72)]û¿ôïÿn’%y™q¬µ‹pÂâ)pdmè®Å⃗uªH´¬X§¼¼iÛÅdæ/â=tj.ì2xº1àÎÎÎu«q„Îκæ€ñ„nž'7ºO£à/¿NoK%,ÌÞ/x¶åäåÿzxSº£N™trä–+IñÞÈ5#–IöWòûÅoCÎ>{aÍà¥ÚoCÀÔÿæäÎØÄ”ßÇt+D`ÈÙñOŽÑzzjÓaøè–n,q¤ûCô€"á/»ÕLß1ºô|í4‹¥'Õ–ž”¥'eéI¿ €àþ†1yÆÖR×þ/ýû?›eQEiÖv%뼓'ø£,:Ì^s* x F®›\EìÌ‘¥®9~ußà—YÂæ[w^\=6°S§c‚î5ä鋺j-ç$Íè6êL®;ên¯ù}ßœë:wpâƒ!‘³êTÊ–#6^M='cþ.ïQ«‰íÔaCŽ‹• r0äìø'Çx†¾Ç”ð0ÃÎb]ÇL¼ue—†_ ¾ XB,Ê –žT?¾Âxyìö3Õ¦­ûydö÷Ÿ;?u/ùH€Ô÷¨  3RŒkÖæªï ø²¿]øÿ¹¾VM§²ºüïÁ=€Ê¾±æ¹ýpG£éc6…íòGáÀN–œãŸ»û÷·2²$Z¶òšrWñleh½¥ýjª=‰(ßüqÊxÌк܇óººmºm0¢ó€#a短íg>ï¢ïsD1¡uðnðîÔìç1·ŽŒÓu°ÏÇdò{ž–ˆ=6¼›_`(mSÉï¹Ý{n¼yÞÉüm˜úWÿ8úïЃïø55Ö~Œ®H.ï1.|-§géc ëÊä×öxšU\IJ˜<|ÑÁ+ÛšqÊ¥çë x ü&n"‰¸dã³a¡ \»Û9bQÁ³“,=é7…ôÿìy\LëÀŸ¦ÝQ¶(ÙÒ¯©&Â(¤L -dÏ•5Ù.²D\q/â*û’åZâr‘+Ê–Ü,"b’c¿Ù®%ÒÑ>óûcjzÏ™™cšJÒûýôÇéœó>ïû>ï{fÞ93ó›¡îmæù¼ìí“ÉQÑ?¹–¾-}žæû¬¹¿ª·k/œF‡Ç}rƇ½¾z’«¥™™Ùdë;Ÿ%m§oø þ.fËŒý{¹ ü÷¡k¬³›sü6~Êx–d ÝS·ZhÓf :ú#{͉žéœ»éÎe3Ä:ðàî€þ‚>ÿ©4sVŸØã×SУŸÿ«BÚ¶* ñׄ´ëÞ³ß݆,ç(kOyÏQxy2ÎÙ9o¼@ øíFt¥FœVfffffÚºèKÅ8ønƒÁw³05änƒQDM½›%Xµ‡À£ÇJïE!œ±®Öx]³‰îFêÞ0˜„_ÿ`0L͆#÷ëy™<Æ3ä€i@œôí³‹»8=E)ú,úÙÃâ©ëPGtw&èš{žùH^~p¨î·}šméÒ•¥Â*¹ Ÿ7íCæØËÞÙÖ¼N‘匰üþ=E-gÎÊW×€Ù~U3& šñõº8õ¢3œ¿ºAzǸÏÅø™]]ù5`˲·{'O¿ÕrHßÜÆ*ð–JéõZ¾[D‘!ãlT›.î¼:jNQNý!^¦è“ñGû›”dZHSVŽåP‡éëEÔÇúÒõ,}7Û•¯}(YJÙNZ~äæ)wü‚ƒÁÔj´Jô¤cb²"³Éq†\jÊ=Ÿ À1õ½9ºó˜˜¬8êöv¢ý ·É•óžüú\Ù·ˆsÝã}ľ‰1G~©““ÙÕÄ­¨©÷Õ‡ë‹^Þìa5˜‚F1é§-šFŽp]{”ùnˆ˜¹#;¼OÛïî°tšzr¡ÑË3 é¥'×ë¼½ç9ßù×ìWÿ¹¬BÈÈà5)‹3I#Eæõw‘¬N38´C´”¾ý•$?¿¡Ýî6ºžtê«)¡Wr-B[mêqöSÃÈûBžö#ó¾YÅšS³b:ºŠL[hÛ\ ³Q‘cLFüõm<€N虓}º¶Hù½ï¤•÷ÑC«\Wÿ ûkO):´º–ߺáea;cÀ¢íwVì^;Õ±ðñ¥î¶£?^OS†³.ÚšÉü”{©-¹Yûãy/#®?€.Љà.Î$tÁ!vß“ž§hÙÐjDË¡rÔ›lhã3ïe¼ù¢8 -ú¶ÁÄz>á?ÿ)©³ƒ[ ¼I÷df<çAÆÇ½“M/cŠ¢‡ä8ÓDԦÓû„îÎD] ³¢ xzžÀ/ôкWdXsî#¯øyŸ{ÜêzšOLßôžŒjÄmýû çÛȾæ£b)ÚPÎOWVÊ+8km·D·¿Œß¿•ZÐ?ÎþÀä~.¦ 4q0¶»Y2°ž Êõ¤Ò:zÎ}òâ{fãŸÝðîÎ'¸“VÞgR±.yehÙ ÐA뺞ÔÌÍÑàºô9»k,ÓZŽ6ƒQW‚ìkÏ™÷lA/MšgžÒÔ§7šÃ"Dãé³ö ›[•µF™Í­JHëWnÚž·mäíYÀz]Eýß»×Ãcô_4½´)J?D« ˜R™º®Nذ´½t›1^衦íNeŸI&§ö LֱþŠˆºy*×L2öÚÿ\Ö`Kц’¥”UŸK[SÜŒ>{£@‚Á`TÁ¸?ÇÑ–ÛÆÔdëI¿½žÌy6aÓ#ÉBFãÛÁËÒgo…ýúj]òÊPÙ 0@ëbèI¥¿dÐÌ€¥ËŒº¼êYÛKÿÌC™ÿÄý¹.¡)Y™,KUܪ îǪ5Ê,nUF@´_P×ÁâOï  Óîßk¨Á¶ÌjïʔÊҫð­®R¤R&Ô5‰莲ñBIrSrZé>¹E2Ì‘ IDATM4ø„CSýìBÖ€ÊK1‡RY©¬MŒa`ßú u$q¥ÿ鎛¯iÆ«³ø8ºSÃy£6×LAãdt¿ÒmsŽ©¹– €læê¹tãðz0ö«§þ”lÔ =Ê1m­ã3F"CËiuæï•HÄ’ú}ë†íHÄuo©¶þo„–Ë"톉„6¸²?í€X-³Öš]–H€cj®=1Žcj®Ñ¨v@£¥=v€%xygKYm_ÿÏó¼‹ò™Ûjÿ©23ÑsÐDU¤/ªÄÑtÆii¥r*G"kVÖ Û¨F{¾Õ‚õ¤_£Òõ¤ð8ýŽË(jNW‚ÑøÀ©Â³'9õpêk.ß/Uê’W†"é¥ÖÅГ²#k£®Ömx–¶Äלí}2=ÙÂÆÖÉò$„Cpâ‘aòñƒþ,ŒX2Ô©W'O¯lŠ2ÑꚃTAb;%|’²[}>¶ƒµ×³e}‰Ÿàí8ãÜËç÷v)¯‹AC¯1·™v£V­›é«^J~(•”жÜkïì9²u†D,®ô¿Üm‹ ¥å¥ç‚¤l§žGÓüû¿ì>§UW‚žŒîW¶]üâAÑ¿¤nókâb±þ`KàOÓ³k"‹ÑýªÄ©ŠÎ~÷‰X,ÑæKâÆýKæÅl—ˆÅÚƒœ©ƒ9±D,)ˆ>¯©+€êj¡øÁîò¥t\ÙŸ¦1>& /n‘ˆ‹Šþ}Pü¥¸øßÅo?¤°øÉ•œ]wµ A"ëÌŒ×à0ƒ££­§h7Ò¬³p/ˬ“4ìOôí¡Ñ´3GSnÆ¢)*ÝæôÞ©mÖBkÐ. Ú¶*Gãsæ5Ñ‹^2ŒsÐD©rU$Ná¹È¢'éÅÛ9ªÄ‘pšë¼ •H@8ßæ°ÐSƒw.ýjo^Ú—ïéMwÃv×oâ›/¬†ºõÚ^Øbè<&¹|‡Ô XÎR¨ÐáÆŒªyx©Û¹®SNΩ{²Ë¢òR?§ÜÐ.Øÿ_‘Âý:A‘ ·óÿ+‚F>úuþÉý7ß`ù©Ïs½4,~ÓþoYA¶¤l¿ŠqjsÄu9P¯a’DeH/NÍzA?­¿T·'çN'=½:ƒ¼%M{þm|µµ²ÅÝ/ùƒ+»‡mï[ç§qŸõ’H@kÌ?Åõ–Ô]v ç×!Ðbª^ñ¶¼—Š?&À˜uú¿* ïY”+Q6[ăŽmñ–(*«;óxþÚ>Ò°²mƒå§¤÷B ¶ôÓ 8&ÛÎ}–ÿÕN£ñ ôúN€œ^Å…JÛ/K”²8Êf{yãäÿW¤ij¥7~Õ—Åý$ ~{´',Ë ›m¸lkö¯“ œq¾ mÂo`=)Ö“²1›,ËÌéÕ¶ÕØÝvß;ª¿ÆªšQ]×Ó¾ZÖXw'ÇwS¹©°¥ªä5¢Öÿ ~>qÝYø©aAL€„Ûµð}D,ƒÆòû•mKÄb½ ¾<Ë•ˆÅ…ÙÒ—éʼn˜¶_µ8µîOzwäãe­î.%{ê DœFZÏ™±ÄÅÔóÕw7K"ƒ¸äÖ cpË&ÏÕýŸÂ£´ës$b1”Þ‘Î^Í.ίóÐ¥tÖi¶Òº» Î$?–ÙRüïÙ½(æÌAoÉ”næ~ öøìñåI.º­J¯ÑøÄD¯ÁŸÏ¼–ö#‰Rv޲Ù^Þ8±¸(3ýKÜCM µ‡ŠØÀiÜ4t4t4Êç›ÝÍÂË,€Ü4>Á•ýåã„ ¬â–eÆó—´jlIþíˆØkYßÛ(Ï»²1Ë›à«qH½€j—ªŠO•Ö Û¬Ñvvý• šZe;¿¬i¸<¡ŽadQD"‘èNÜËÑdîW¶-Ýì %q–1\ž`àö.ÿ£˜¶_•8µò3¾‰D"~ÿé”Aý• Cûh ˜ž{ûAÑë§_2m¤ ðè, Nõµ¯õœzÓúëÏ9¡k¤IÜR´½Õ_™`ØW?ï]¡ôCË%5ê×_¯•XTH›Q(èè,ýtøò§ƒzz­ô•͢غS¢ë/ݧÁaÎôb‘m焌7XœP/d»‡¶­ hüœ}iõÇh|`9M”²s”ÍöòÆÑµ©þÊ„:ç r+§øõÓ¢×OA’_œ[TÞ8ßì#ð5òMCÁª=7f¢ð"H-z/ 9±hñ×?†¥k6QqæÎ¦¼ o^›Šá?2(Éÿ œ F!í6¦a=i9ߺª°ž@cbäa•>b{MEJ¿·‡"M´ Î¤Aì!<—îQ䡸ùjtYUs©µ&S¾%WmüT8þÃøÿ¡oê4¼=ºsWn¿ß23¤ßã“ º¾ÚõoŽîÌ7à÷;šÀ|øÔlrå¼§{}nWËA9b·ˆs¡ýKšxLæ×_ŸÓà4õN¥È+d Áà4ŠÉ¸.¢È™šÉ?"‰ˆQä™+¡:M½ Ï_Û¢-PJ½nÁÑaÀ.pµˆ"WÎê‹3I#h,¢Èä¿Õlý­a%ÉohRšˆ" º«³ÁÀ ôÀ"$±G# Ðjùð^곸R†fãÔìu“÷±´ô Ÿø/,âXÌû{°CøL;=q~Üíß —•¢¡ÕlyÇh>ÁÔ7L¾ËËoÝQ䢟ۀӊÝ)y1m—4iý7ìQé#Ãÿt4£Œ­±žô[ëIÿ½²u-MtÚŠ¨t¦£¤7œ^îž*[¼Ò¤¦(‘CÝ|/Yý¦ÌÅU‚rÑ(CÈÉÒ/šZƒÁ`0UOÞÃh@ Êencj:XOú*]Oà¼)åÖFÇn¿.t2³j’1—OpÝü’¶’.a‹‡üÁ+YºÑ¥¦ÈúÑdÚDï¶ÝxH–Êt—( !'K6hjM æûãRä_7ÒîLõä!;ŸEŽÞuåá /†âÝnº¶ãHäì¨Ì"øp~Áüȳׅ'ÄÇ\…ßDŒu}U kMÝå"ÈWGY½µ —î×î“Û–n€¼Û+Föìůb‚Á0Äedu5LÙ@ËØ?Þõ”ˆ<³!Ä1“œEdfö(A/2í²· Ë†Ê;ëXÊY¼5I(äë3·ÕF•™‰žƒÎöŠôM¸²s^ÂjÄ€§û&÷Œ†òÇùf`=)ƒ©dÐo>Ê{Q5•ˆWûºM‰N’=8{l¹{3ô\óyÞFe÷éÑýq>^è9ùéëLÖ\kšÇà:FŸ_´¼wŸˋûÏ>š¶ ËÊøú€Ëó<­BOÏsU‡³¶uFF†••PWÇžj¹ÓÇDºsÛP/ßɶoV[¼Ù”öÁÎa†¾~’öVW#´ìè/=\'œ¯S:t—g»Ù®:W`”s¿=Žå\>c¾|€1gçPK¤ðô»ÿèì<?a˜4nðÆ„£S”Ì:¼ƒã,éc˜gæ´Æƒ6c÷ùu™(m…lûözßÇ‚š'‚mƒc²7—m›i½×hÛ,7vùéÜï#FíH¬«¡øéì•Îö†På RG–peíñ6âÈ_ÂêÄ1|’lx3dæ± » œq¾ ÍucoÖ“b05ÇdÆ¿”6*ø ÄÅc?é½¥hŸ@÷+;'+ïõ’¨“ƒÿ'.ÎCòñ³……qÖåˆVkr”ÆQ³V!þòÆÈTö­ë⺣ë;Í\r0´[û/›ó´hÙÎÕgÏß>¹¯¿@ðIÑm+íz&/³‹`ì~æ‹1» :ÎÊœÞ}ôá#å³îܒͳz5·r²ÐUfNèÁWk¦Zyòõûyè¶*Eã·1™:Ò7Š,|š¯ôt¶—÷ R¥/Œsä/a5âL¼v±kïÖU½àeÖ“b05s./d*W”S¶Ç±Éû.svæ_½ØÅDrÞ¾*’ÛÏ8G†½48±v$y¶³˜0ÓóŸÌBIîƒk>îšÐ–%޲˜µ N#Ç«»Ï–,¹>$ºúÛ=ý·àãŸË¤—ÛÄä}íDÅÁ{øÁ¿üâ_*x_éîÑDO3tF¡ÐF?ÿñeÁйSv°Ì––¼†o ÏX…´ÒÕO …Bá[=t[•΢ñ¦ÅŸ wnÆr:Û•£¬Íªô…qŽü%¬Fœyëg>}ú´P’ÿ:§¸¼qð2‹ Áª=~ža¥÷¢ÎXW k¼®ÙDw#u/Mƒ¹AøÝ|Åìœ7^ üv£G׺e;'GEÿä"Xúv´µ.@ô4ßg…ÌýèvîÍP÷ ‡6s‹|^8cÿÞA®ÿ=F}s¶í t†oÖðo¥=Ís܇¤¥àNžÒ8Œzkí:ëð¸O.ÁøÐ£×ÂWOrµ433›l}ç³ íô ÄÕÖ4e-;áìæß\¿_†2ÞT’d ÝS·ZhÓf :ú#{͉žéœ»éÎe3Ä:ðàî€þ‚>ÿ©4sVŸØã×SУŸÿ«BÚ¶* ñׄ´ëÞ³ß݆,ç ³]Ù9ÊÚ¬ìÊRvŽÂKX8­ÌÌÌÌÌ´5tMêj–7Î7C£ ?Ï;ãÚ³-/ÓÇÚ HÏ›Äý³Ú¨?çنןnqÎfŸžÛÞÄS×½ ;€:¢»“ømÖêš{þscñßmëuÖ·aÄUòXgîg%G»Aå?oڇȄš×©û®„Ò–(dùý{^-´Ÿ%í÷ñ^Pžœ•¯®í@p«à# šñõº8õ¢Ÿ_kòòd÷ÎbŽqŸ Y®¼!¹+½-Þò<î;¼°i³Ó‘G¿ý m¼‰•OÔñ¿Ú=½^Ëw/Ÿæx$°ÿâ÷¾ÝÐ=ÆÿÁàÏÕ™¢Z-DÇyüž§e;LÆírÜ'öµ„Ô9ᦰË¡Ó×ÿµ´×:λ“?Öë4ìØÙÅâŒ3îŠU.ÅJe¥$m&. ™h»vX¿ˆðºð¦ä³Y F¥ŸÍÂzRú˲*Õ“š¶Ð¶#¸ƒ&“‘cLÐ =“(¢È­ÁÖŒCª×…:HƒB‡V‹Ôm†|](hæƒî¥´´ìÞ÷ôñ0öׇ.;þÙžö¶xq&é  a±û&5¾ÅÌ#‡ÊQo²¡Ï¼—ñæ‹â€4ômƒ‰õ|‚+^«Ãþò…®xEÓË¢“•[àLQäÿ’ç°ìŒGO³KVæ³¢ x¥ï0Æ =´îi¤ c¯“AÏf«ëi>aÙ9îš@¶è ‹!×{zV¨ Žê¥hCÉVŠ·¶[âÀ^V ×ãÇY S›¡½a"Õ“@ø+RD‘î ¤zRм1Ò“ù,­HOw¥LO*¨Ëµ3q+(1arì·ì™ÑºDþIp;ÿ-ï7—êI¹î @ª'mÆuí¶î깡Œ€`1nÓ’öÇ}ç_+Õ“rÜv5Ó‚æÜwð–OpG$«Ù ú!Z)*ÕÁ%r¿‹-ŸàR#îòÛ%…²bçøì €ð9F‰ï%»>\ð·°±7•˜ì /åôœ=úäÅ÷ÌÆ?»áÝOp'­¼Ï8¤b]š­Gx4—OðÒå…ZÌmß‘OpVÕJM]úœÝ5¶)ó>"Ò F] ²¯< cdÞ³e¼4ižyJSŸÞh‹ l¼|Ö>at™™Ce¨5Êò‰Rܴ֯=„oÛÈÛ=²€õºŠú/¾w®‡Ç:é¿hziS”~ˆVÜÜÈ'¸™ÓŽ›j|κUº¼:=`ÃÒöÒmÆx¡‡f˜¶;•}&™œÚ30YǺoÒú+"êJä©\3=ÀŠƒƒ—]ü¢z)ÚP²”²êsikê‘›ÑgoàY ƒ—Y%`=)JéIÀœg60=’,d4¾½¼,}VRد¯ÖÅp¢ƒÂ­‹EjÊÒeF]^õ¬í¥æ!ŒÌâþ\—Ѐ¬L–¹Èè²\£Þ(Ë'JY@´_P×ÁâOï  ÓîßkÈúk¹4Å«¢ô*¿·Ky] í×_:Ò»¯¥•EkCÕKÉ¥’RÑ–cí=G¶ÎÀ²Œ*` ü Ö“bj ãÎ¥_íÍKûò=½L1lwýæ ¾ùÂj¨[¯í…-†Îc’ËwH½€å,õ ô¤O÷M·åËYá.Ùžg‘£Ïqçß\8nÕ©$t5Žî‰loüµë˜¡[gLÝž$Ì»¶#ñþý<·eÚk¡ç_üK¿C§3V'ß(‰óRI½µÙGàý]ºOˆN˜ðÛä¼Û+Æ_Ú{òXñ«Wßh¡0fˆËÈêÒ“~B÷ÃùkÿuhVÀô’ÝZÞ?ÞµÁ”íºO8 žú,ƒ¼þ³EÐöºDÓÐaCl™>yñqá eßG.ï¬ÓV^6jT÷!{Jô¤è¶Ú[ 3£ýלÈ̸ô0Ÿ9cÑ[ð²íÛë}Þx·dðÓBÚ¶* ñFoLöjóØî9¥ç ³]•+HÙ9hÂ+R—*q>¨çÛ½Ç+ ¬'ea·,3ž¿¤UcKòoGÄ^ËúÞFyÞØ•Õèö&øjR/`¥—ª ÕÏjXà¿ê¼ÄU-ð,` üaÿª™[àkË2 ëI+‚ªBΊ¨51˜ªD¡ú¹¼xUœ×€¸ª±ží‰[àk¾T0³c ¼šË,Ž‘ûuмLãrÀ4 NúÆÊÅ]œÆž"Š}ýìa ñÔu¨#º;tÍ=Ï|$/?8T÷Û®ÖZºte©0J®ºªuíCæØË¦¸æuŠ4(w ‰‘‡ETúü‰í4MD)}ÇxEšh@IƒØCx.Ý)¢ÈCqóÕèò€Ù~ª-³,Üyuð3:æ;D¡ú¹¼xÔyz¢•¹ª±ž}…-ð5Ý¯Š™[àÕ@£ ?Ï¡ÍâN cb²"³Éq†\£€8Ë¿ûžÏà˜úJÅQ·ûíhøv{EO‚ù-‘År‹8×=ÞwAì[0ñ˜sä—:9™]MÜŠšz_}¸¾èåÍVƒ)h“~Ú¢¹aä×µG™Ÿ3wd‡÷iûÝ€NÓCO.4zyÆ£S@!=àà«ä±Î\N·àí=Ïùοf¸úÏeýBF¯IYœIöm{ÔßqD²:ÍàÐqÐRúö¢ÿ¢¤gu#¸Û(ÒÀ™à~h0pçÔWSB¯äZ„$¶ÚÔã짆‘÷…<íGæ}³Š4§fÅt6tx»“3¶Ý…Ò[Ö!gáÈ!+¯çíù|‡÷ï¾N6ën$õêèr-EC«Ùã¶{–H]^~놗…A쌋¶ßuZ±{íTÇÂÇ—ºÛŽ.è¿aÿ¢qí)Ðr%¸b´_b¾eòwB;»3aWDpOfÆsd|Ü;YÞ`ŽÁ|•oðxÌw¶Àc0,0?õ¤U®'ÖCrùXÀÆ ì‡iÛ†˜ ùýר:Ô+}·š)5-¥èEøÇ9‡cæék°ê.Qq%CÈIëÀ NÝêsù„]¡œZƒÁ`0Œz`=é·Ö“þze5êZšè´QéMGI}`/wŒ O•-^iRS”È¡n>ƒ—¬~C2ߢW.e9YúESkb0 ƒ©à2 ëI•QézÒçM)·6:öpûu¡“é˜U“Œ¹|‚ëæ—<°•t [<ä^ÉÒ.5EÖ&Ó&z·uèÆ#@º°T¦»Da9Y²ASkb0 ƒQ¬'Å`0• þlVí6«²È{í1fã†ÓB¾>mS£ÁzRÀzR ¦†qiF÷´ŒŒŒÑÏ"Gïºòp†— ãÛDè~t{Mà¯É¢[£\R‘ÐÓ}“{FÀs2###ãèLÏb8à*|ü&b¬ë«b¥q”Õ[Ûðwé~í>¹méfÈ»½bdÏ~Pü*F  C\FVWÃ>]Ûq$rvTf|8¿`~äÙëÂèýþýã]O‰Èó1ò@œ‘‘3ÉY”‘Affô"Ó.{ z±|K²¼³Ž¥ì‘Å[“„%ë*t[mT™™ŒsdWAEú‚&\Ù9—"ÿº‘vgª‡ ¯bqTi³²8ß ¼ÌÂzR ¦ÆQ8uƒô4ŽqŸ‹ñ3;ººòkÀ–do÷Nž~ªå6¾¹Uà-•Òëµ|·ˆ"CÆÙ¨6]+^Uš¢œúC¼LÑ&ãö7)É´:§¬Ë¡Ó׋¨þŽõ¥ÿêYú$n¶+_)úP²”²´üÈÍSî6Uø‚ˆÃ¡=DWÄÏpIÿøÇ=Ø‘PäÙÎbÂLÏ2 ±žm,°¾æ[àU1ªc ¼ºw³tÞݹ+·ßo™ÒïñI…ÝF_íú7GwæðûM{Âmrå¼§{}nWËA9b·ˆs¡ý—<%xLæ×_ŸÓà4õN¥È+d Áà4ŠÉ¸.¢È™ÜÄ#¢È3WBtšzAž¿¶E[.`É­ànÁÑaÀ.pµˆ"WÎê‹3I#h,¢Èä¿Õlý­a%ÉohRšˆ" €¿©û²åEƒ;8è€EHbF Õ(òá½Ôgq ¤_Ôlœš]"è2m¡mGpM&#ǘ0 z&QD‘[ƒ­‡T¯«ÿ†ý"*Wz2:(thu-¿uCD‘‹~nN+v§PäÅ´]:reÐfÈ×E[ ™º—ÐÒ²{ßÓÇÃx@Ø_N¸ìøg{ÚÛâÅ™¤ƒ.„Åî›Ôø3Œ*G½É†6>ó^Æ›/ŠÒз &Öó ®xA¬k“4î©,2!aFÉÚI/cŠ¢‡ä8ÓD¹À¿äóÅÙžf—¼ÜžeÀ+}¤eŒzhÝ+ÒH8Æ^'78‚žÍV×Ó|²sÜ5«ßOøÙæËÖ)*–¢ %[)ÞÚn‰;xY-\_[›§ûB,‡ÐŠXài.iɧ#F3¥·í t†oÖðo¥-ðìë,l¯éxUŒêد4 QÊ¢ý‚ºzM˜vwø^C ¶K‹¦xU”^…‡hu•’*|ÛLþÅ.uMcbº£l¼ÐC’Ü”œVºO.@чLc >áÐÄT?»5 òRÌ¡TV*ëEcØÁ·~Cü8‹Á`j3XOú*]O Ó︌¢æt%œ*<{r‘S硾æòýR¥.†ƒ”ž^h],RSydÍ`ÔÕº ÏÒ–gi˳´2fdþ—À”m‹}ㆳ}–ÑefA#êíƒærk]õFY>Q÷SßOöwâkΈö Š>™žlacëd yÂ!8ñÈ0ùø4Å«\z•édiu€i§®ý†î™P˜J)èBP„ØNÉŸd‡ìVŸí`íµÄlYŸFâçx;Î8÷òù½]ÊëbÐÐkÌmc¦Ý¨Uëfúª—’J%¥¢-7ÆÚ;{Žld1LmëI15†qçÒ¯öæ¥}ùž^¦¶»~sß|a5Ô­×öÂCç1Éå;¤^Àr–ÂzÒÚ~ÓƒaëIëIÙ˜M–eæôjÛjl‰n»‰ï‚Õ_cUÍ(‡®ëi_-k,È»“ã»©Ü‡Ô Xé¥0 ãJz-D¹ÌmLM/³°ž”UܲÌxþ’V-É¿{-ë{åycWV£•Å›à«qH½€•^ª"(tyWÄÚÞQÅ<êªÆxv°^•YÇR¶Ú-ð \°¾v.³°ž´"¨*䬈Zƒ©Jº¼+bGmï¨buUc <ØÿXàý¸` |¥,³°žTu*®'ИyXD¥ÏŸØ@ÓDD‘ÒïÁí¡H-¨s#i{Ï¥;Ey(n¾]VÕ\ªD­‰ÁT; ]Þ±À£¶w†b^æªÆx°þ°À+üqÀøÊ¹›…õ¤´”T­žÔûXZzÐO|‚q ,æý=Ø!|¦€8?îöoH†ËJÑÐj¶¼c4ŸàꬺK†¸rÒú0<|ËŤˆº®-§ÖÄ`¾7º¼+bGmï%¥Šy™«[àÙžH°¾æ[à3_á9دî2«”¥¼ìX ü)¢H÷v]Q䑞Œ’:mÇœCûðïí}»â®| ìþ™ûEP—kgâV ~oOpì·ì™Ñ8u,žüÊ'¸ÿ–_@Îí~ŸOpÝ@dÖ…a͸®ÝÖ]=7”,ÆmZÒþ¸ïükœfƒ'¼]É'¸ n»šiAHsî;xË'¸Ž#’Õlý­•êà¹ßÅ–Op)€wùíÒI±s|v@ø£Ä÷’].ø[ØØ›JLö(þ¹a—ô•Ò´’ È ©AÙÓ¶ =0òû¯±u¨W:Ë‘R4Š^„œs8fž¾л 0·}G>Á5ZyT ÀÌÍÑàºô9»klSÍÖ£F<šË'xéÒ‡B´_C&8u«Ïåv…QÿÅ÷nÀõðX‡ŸÎ1ß' ]Þ±À£¶wT1ºª±ž}…-ð5ݯðÇ[à+ Íß#.ýÙO¼/cã,ÿî{>€cê+=ÔçÌQOˈO7ûQÚÏvîOù§ \ù¨ÍêKZ!N·¯€iYŒßÑ9Öß[é¿#.dÔÛ4F˜Õvi—ó}—åJÝÖ+ßó¹̵[£Ù{v 2:8¯¼D]v"ºè‹^-í$¸K x•4ÿ’÷y‘óºóY„ë†_Eì¼›/2æKÊÛj6£Ô/=4-ú@Þ¢+7–¼ ì†]˜ï5ûö%*ÅÏnH ?>yD{«{7EŽ#¸%¯Št-EJÜ›]¯2è|™\¦û2¥£Ë¡¯Þ¦ÿÈYM¸y¨U\»•èÉB?ïÕ³’b'6à¾JëÌý\×1.èÝPáÔ¹s–¤äJ½çCèýŠ¥n÷'ÚIÖdžn0Ç`T jXè€Á°P&tÀzReTºž4ÀySÊ­Ž=Ü~]èd:fÕ$c.Ÿàºù%l%]ŒùƒWr;‹.5E‚&Ó&z·uèÆ#@zŸT™î…!ädÉM­‰Á`0 ¦"w³°žƒÁT"ønVíßÍÂ`Xh®ÛX gômEïËþsÀê, ƒÁ`0•Ö“b=)ƒÁ`ªlÇˬï¬'ý*ª:HkZ]5¬ñQ¼r æáwóóœÌÈÈÈ8:ÓýþZy}ܨ‡5Ââ•VÅüŽ-ðR°^•YÇR¶Ú-ð “Ø_)Ë,¬'-Çóf…õ¤ËïßQäÑøÐræ¬|u©ê -7 šñõº8õ¢3œ¿ºAzǸÏÅø™]]ù5`˲·{'O¿ÕrHßÜÆ*ð–JéõZ¾[D‘!ãlT›.Н*MQNý!^¦è“ñGû›”dZHSVŽåP‡éëEÔÇúP¯Ó°¤lòܵ-šå)ÅJ–R¶“–¹yÊݦJ^µäZYYq7ßïÚ™yåµÀ£jÔz¥U1¿c <¶Àÿx…Él¯œ»YXOJKIÕêIM[hÛÜA“ÉÈ1&ŒÆ脞IQäÖ`kÆ!ÕëB¤ŒA¡C«‹EjŠ‚6C¾.ÚšÉ|нԀ––Ýûž>ÆÂþúãpÂ%`Ç?ÛÓÞ/Î$t!,vߤƷ˜Ù`äP9êM6´ñ™÷2Þ|Q†¾m0±žOpÅ buX›ÄP¼¢éeÑÉÊ-p¦‰(rÉ狳3=Í.yh›eÀ+]í3Æ =´îi¤ c¯“AÏf«ëi>aÙ9îš@¶è ‹!×{zV¨ Žê¥hCÉVŠ·¶[âÀ^V ×WÑ#WQæAïÕ¿¢{Ô°À£j™õJ«b~ÇxÀøÂ¯09€-ð•³Ì*ëIª\O*­£çìÑ'/¾g6þÙÝïî|‚;iå}Æ!ëb8HiƒB­ ”KM¥Ðf0êJ HéMPѳ0Fæ=[PÆK“æ™§4õéæ°q«ú¬}Âè23‡ÊPk”å¥, ­_¹i7zß¶‘·{dëuÅP¼¢éeÑÉÒꀛù7sÚqS-€/ÂY2;ÝÕé–¶—n3Æ =4ôݩì3ÉäÔžÉ:Ö}“Ö_QW"Oåšé¤¨V¼ìâÕKц’¥”UŸK[SÜŒ>{£ Š¹þücŠ ÍvR^ < jÔz¥U1¿c <` üaW–l¯Ìe–©m“w…ew³ÎdÜÝ™Op¯M¹ÐL Ä ½± bqÑëŒÖv&Ðfõ¥öuÞ'í¾ú¦´šòïì8YöÜ|!còGÛ.:DY‡Ÿç€Ü·³ùmÖÍÞwåB0˜Ã»ÈÖ] Ÿóû¯@Ÿ+x[ÐØÜÚâÑ/}ßÑ—­ê6ƒvHa)Ú}‹’‡–·ñãõëvÒÙ·;‡„ ·cût=Ì‚FÔی٦–™ô+¥\“ ©‹™¨û©ï'û»?Í}| š°گǟÌFO¶ˆÛéd «%„CpÜœ»ŒbÄ—*^÷Ün ð@Þ[6EcŠÑC´>0íÔµ_ÃÍ ;)èBP„ØŽ€ëÛ!»Õçc;X/lZ֧ѯÇðÒS?-þ½] ¿Ú¯¿t¤w_K«ºÔ«‡O²U,%?” KÍ=myù¬ý ‡µÎèUù[õ’¶É}˜O»il’PöߨýBû‘í±Kþ+»7&2‚»°‹¥¬ÒíZLC{¿$¡” MÏÍIÐT(Ü[] Óï°@(\ {{ž9X=&/í1¹ìß®«J>q¸‡>+Êf”’Y·71ê´6 Ž’ ù3¶ôUmæ LT°­mò÷IÙ9è¶ õ»%º±Ÿº ’£êlGöÓ®øôê«HÚÕZÞ8ß ¬'ÅÔÆK¿Ú›—öå{z oØîúÍA|ó…ÕP·^Û [ Ç$—ïzËY ëIkXOŠÁ°Pöc;µ}[‘ì31©‹‚0›,ËÌéÕ¶ÕØÝvß;ª¿ÆªšQ]×Ó¾ZÖXw'ÇwS¹©°ÒKa0LíßÍÂ`0• ¾›U{Àw³0jêÝ,¬'Eióó\½ª‹®Ùè¯?º²ŸR£õ¤ß¶“æ«ä#ÄæR æ‡[àT°ž´|TXOª)z[òËê˜üaTA©"~W…ßXÕ¨ÓÁâ+]T¨'¥'JÍ%šÞÊøMQq¢ýj7Ö_¥•3—Ö6ޏ ¿‰ëú ùmE,ð¨ÿÝ¿ÅWpýÙ«ýݰþ«` ¼*³Ž¥lµ[àþ¸` |¥,³°ž”ž’*Õ“‹õJV:â,`êIË”_ Hg[Æ«ä:,†OÖÌ£’LŽaÛoIÑçÛŽ dÒNô§û†`W¡–AOc(ÑóDB_éÖŸŸnÀðð-?’"êº6C…ʨ<´ñ¢³õÞ­+ûýGÎéÓ„‘(F—ÑyÈ(˜·YD‘'¯íâ°6ƒ1lQz6ýJ¢âÞ“ÉwvKŘôÅu™¹tê]²ºÇLkɼˆ~P75lÖ´±IÃ:úˆV£"xÔî¾1±kÕ4(Àê|–[àÙÀøšoWøã €-ð•³Ì*ëIª\Oš%Ök¿áòÌúů0ˆ‚ò+éL°jÛÙfî%áH6Ã'[æi’LÁîè%m­ùí’³$ú ŸSÆÔ·Î» yÌ¥%Š6”4rÅ]†E o­i&¾C&8u«Ïåv…ôô2²dƒ6^tø-ïõ˜’µ‰gÙÿŒDÑ»L›‡h@Nsß`í|‚û¯‡µè<ä´T´†OXJ–_0ÑdKômÄôIÜ9ª‰üÜ A7—*»ˆ~T ó|üìCa!ò ] <Ã-Û¿yuw@°úqˬ\1¶À³€-ð?€ý¸` |å.³°ž¥Šô¤o õV8G»EÍ/|v“¥ñ_ (ÿÌóþg§ŠáSA—é’̤6ï»ú_ È.4Œ;‰_æJ¾¦BU:”ŒN>¨Ó1t¹nÀŸÃ nư¥—K6¾2^ÅE bà0Eï2m¢õ-].¢J3Pôÿ×5õl&\:ÿ¶¥ o{¿#ë·ªÏ67d¯Â…o›é‚XŒf‰Öø• Eží,&Ìôü±¨UÄÏð_Ëö×ï  û½½äÔD[àÙžH°¾æ[àAÑ+¶ÀWÖ2Ë€kë6~îj³¨‡ùR=i[+®µ)€TOê6¿«øM©ž´ï²]××ĈßÄ„œ3ÄÅÞºDã:ï)™øGG#·'îáâ3XGÎðÉ@VJ¦'ͱËêIŽ:upØ"F@Xçj›îÿϤNu©¤y½÷DµášÚzò%¥îÇá#,ÊÕ e(Г® rê÷“Ô uuö?qú=ù;ásnC©2ÔÄì­ >Ôá‹(R:yÓ>òâFlš}Øñð¡|ãiwDXÒqöpœw.fÈBF@öRÈZ†æÏä/XÚðÝõßçžèÝàußhÒõOG5èÍ ’æÿ”x¡»G·&ŠB¢‰B‡’qÚß©¦ÓÆ-Íýíæ?BŒ¦ ÈÒ/öQ¦ÎM;õNR*’(z—ió H]zö  w_éû¤ìé•ÍC*iÁOçâ]zØósñ5Š-Q´¦²Î 0íÔµßÐ= S)8¶åöºPÇžöòÑʶ}îÁðÍþ­ÊC+bGý×èþwçW‚K75ÓÂø¯¬³°¾¦[àþ¸` |…ÁB ¦ÜDS÷‡Öœ%`¡Cí 0šë6ÖÂY}[ѻòÿn>Î F!Z¦çÞ&Õ×ú¼DЯ±0 óõç œÈMã\œÌ×)zéÖO ƒÁ¨ Ö“Ö:Tµ‰êšMt7ÂéÂ`0 ¦BË,¬'U ëI@cbäa•>b{MEJo*î¡H-¨s#i{Ï¥;Ey(n¾]VhUÔU w^|…`0Ì7[àäeÖ“ÒSR¥zRð>––ôŸà…EÜ‹yvŸi§ λý’á²R4´š-ïÍ'¸ƒú†Éw:­ØB‘ÓvI“†ÚDÖMÔ ªApOe‘ 3ðåù>Aåì2ÔðqËüÑJMñ3º§eddAåì²åµÀ£þhåžëâÉãÇï¾c9[à°þG°À+üqÀøÊ]fa=)JéIÿ½²u-MtÚŠ¨t¦£¤7œ^îž*[¼–•b9ÔÍgð’ÕoH¦HŽ.-‰òþ‘A3†M”¥_-à]`0ß/¨œ]¶³¼xÔ­ì§uIB¡pÄÇ% [àYÀøÀ¯ðÇ[à+k™…õ¤Ê¨t=i€ó¦”[{¸ýºÐÉt̪IÆ\>ÁuóKØJº„-ò¯dæ!¥èëG“i½Û:tã A².3D£´W›t›(K6‚þ,ŒX2Ô©W'ütŽù>Aåì²åµÀ£þhvÏ5‡£Á[à[à ¼ÂWl¯0XOŠÁ`*™ªÖ“¾;¿bà‚ã~‹œÕˬloá«þî¾&ýB"fyÀΡ—Háÿ´éûéç@?çÑÇ.ìRvÎæ©ƒ£n½v™°>̯£Ò8r1k2=é‡ÔÈAÛ¸ž³~.Øbþû©Æ89ÙÅaþÔ(ª€ù{ël¡poµ´0÷f¨ç´Ó0áïD?ã×ý½†ët³n²ì„³›[%lÚqPÔú—g»Ù®:W`”@ð´ýB÷LpmN›Q(Èèì>821&÷ÎÆ¿`Ü«OJfˆxñø O4:ÜDB›9ûüºL”Þù(Û.|=¢ïà×:æ{ín ȶ*‹¤Þ7çÇ-?7~dóv?mn«§øœüO÷jhÛÿÐæ_4”ÄQ:Û‘ý´„·ÔVxÎÎyãÿºaÓszļŸ*‡v—7Î7¡¹nc¼ÌÂzR ¦†-³0ßá2 ƒÁ(\fa=)Ö“b0 ƒ©°žôÇDUiM««†5¾"ŠWŽÁÜ ün>ƒÁÔüeÖ“–ãy³ÂzÒå÷ï‰(òh|h9sV¾ºTu–Íøz]œzÑ™Î_Ý =cÜçbüÌŽ®®üÆš°åÙÛ½“§ß€j¹¤oncxK¥ôz-ß-¢Èq6ªMÅŠW•¦(§þ/St‡Éø£ýMJ2-¤Î)+Çr¨Ãôõ"ê¿c}h6 è EžI.K1†’¥”í¤åGnžr·Á/ˆ0L­_fa=)=%U«'5m¡mGpM&#ǘ0 z&QD‘[ƒ­‡T¯ u2…­.©) Ú ùºhk$óA÷RZZvï{úxûëà —€ÿlO{[¼8“tÐ…°Ø}“ßbfƒ‘Cå¨7ÙÐÆgÞËxóEq@ú¶ÁÄz>Á/ˆÕamCñЦ—E'+·À™&¢Èþ%|ÉÎxô4»ä+¤³¢ x¥«}Æx¡‡Ö½"4cìurƒ#èÙlu=Í',;Ç]Óxq4Üàöÿ]Š­Žê¥hCÉVŠ·¶[âÀ^V ×ãY F°þ‡^f•‚õ¤U®'•ÖÑsöè“ß3ÿìn„ww>Á´ò>ãŠu1¤´A¡ƒÖÊ¥¦ŒRh3u%P¤ô&¨èY#óž-(ã¥IóÌSšúôFsX„¸U}Ö>at™™Ce¨5Êò‰Rܴ֯=„oÛÈÛ=²€õºb(^Ñô²èdiuÀÍ|‚›9í¸©Àá¬[¥kÁ«Ó6,m/ÝfŒzh†i»SÙg’É©=“u¬û&­¿"¢®DžÊ5ÓØ™M^ŒjðGZê¥hCÉRʪϥ­©GnFŸ½QPYU¨ÊY¡Šº"xÔIº°±^u°^ÅY§¬lµ[àþ¸` |å.³°ž¥Šô¤`γ ˜I2ßÞ^–>+)ì×Wëb8HÑAa€ÖÅ"5eé2£.¯zÖöÒ?óFæ?q®Kh @V&Ë\dtY.‡ŠQo”å¥, Ú/¨ë`ñ§wЄiw‡ï5Ô`»®hŠWEéUxˆVW)©Â·Ítå* ®iLŒ@w”zH’›’ÓJ÷É%(úil¢Á'š˜êgŒ5äò[®ºðWÕK1‡RY©¬MŒa`ßú u*ë¡ U9+TQWÄ:©é.llW l¯ùx…?®Ø_YË,¬'UF¥ëIàqú—QÔœ®£ñS…gO.rêá<Ô×\¾_ªÔÅpÒÓK­‹Ej*¬ŒºZ·áYÚò,my–VÆŒÌÿ˜²m±O`|BØp64£ËÌ‚FÔÛÍåÖºê²|¢î§¾Ÿìï>Äלí}2=ÙÂÆÖÉò$„Cpâ‘aòñiŠW¹ô*ÓÉÒêÓN]û Ý3¡0•RÐ… ±’>ÉÙ­>ÛÁÚk‰Ù²>ÄÏðvœqîåó{»”×ÅÐmötGWÇi{ÂÏ칯z)ù¡TR*Úrc¬½³çÈÖUñ°¥Pñ\ < NjÔ…-ð*‚-ð?€^á+¶ÀWìÍÂÔÆK¿Ú›—öå;jǰÝõ›ƒøæ «¡n½¶¶:I.ß!õ–³Ty³òÓ×6˜:¬¹ÖæŸ?¾Ü3"wÈßÖ¥·ú;sÞ¾ÒkÜT‹¾?qDÙ¶þ«§€¿_ÿ:±×¤®&¼?ð@°ek¯>»…Çóî¬Úo0ct+m¸>@oêÑÓÃÇA·­ukÝUYâÍ¿wréü–~ þ°äf+?sÀ±«Žüíº-§¿ nļXÝØ¤½ÕÕHÙÌY7Ðeꑤ‚‹[ÌïÓ˜vs¹ðᶃzc‡5×*Ó“:÷ÛsáØ¥} g·Ð.›Q(´Yozýáæ½³{Æ+›uá£p¸•¶‚«POú‹»çÊ3§¥;ÑmU@ã‡õ³7ñ¯Ç;†~±Õ“Ê_JW~ïÝbÞ?Í´Ÿ£l¶3âÈ®4Wº »âºÖU?ŽüU¬zœoCsÝÆÀèÛŠdŸ‰¡H]œ„ÙdYfN¯¶­Æ–è¶›ø.ØQý5VÕŒr躞öղƀ¼;9¾›Ê}H½€•^ªüäÞ uŸphó0·Èç…“£¢r,};} g쌞æû¬¹Ýneffff¦­¡kRWsç¼ñà·=ºÖ…mûÝ‚á›5ü[iož:X ì7 ±ÐVGacjœF‡Ç}rƇ½¾z’«¥™™Ùdë;Ÿ%m§oøP}o¨¢3gÆþ½ƒ\þ{ŒÐ5ÖÙÍ¿¹~¿ e< K²‚[-´i3 ý‘½æDÏtŒ ÎÝt狲bxpw@AŸìãû: IDATÿŠTš9«Oìñë)èÑÏÿU!m[ÐøkBÚuïÙïŠnC–sÞ_!.uÞÔLKé9ÊÚŒîG®ìôŠ«Hô*.o|7 ƒÁÔT°¾ÖÝÍÂ`0Ѝ©w³°ž´"¨*䬈ZƒÁ`0 Ö“–—ŠëI4&FQéó'¶Ð4Q¤ôíŠ4Ñ€:7’±‡ð\ºSD‘‡âæ«ÑeUÍ¥JÔš ƒÁ`ʱÌÂzRzJªVOê},-=è'>Á ‹¸óþì>ÓN@œwû7$Ãe¥hh5[Þ1šOpõ VÝ%C\‰ 9iý¾åâGRD]×–Skb0 ƒ©À2«¬'¨r=é´’ Èw‰7e?LÛ6ôÀlÈï¿ÆÖ¡^éW\™RÓRŠ^„œs8fž¾«îW2„œ´~ ™àÔ­>—OØÊ©51 SÕ` |­Xfa=)JéIÿ½²u-MtÚŠ¨t¦£¤7œ^îž*[¼Ò¤¦(‘CÝ|/Yý†ÔcP.e9YúESkb0ߨÊY¡ÖY™Éõ\£ç°—9¦×þš,º5ÊEÏj„¯µ„-ðÊö× |eõ[à/³°žT•®' pÞ”rk£c·_:™ŽY5ɘË'¸n~É[I—°ÅCþà•,ÝèRSdýh2m¢w[‡n<¤O"Êt—( !'K6hjM æûU9+Ô:+7¹—z®Ñs”GÓ³6,sä·è¦O‰ÙŒðµtx°¾æ[àËý; JÎÁxæ36ˆ_Fÿ´.ðÿx¹¥ïße'Dû†8Öp¸§ @Tr ©Ë8Pò£fK̸KJJ9\Yˆ¿ºH·Sú&ð{þ ÁÆ\¹R9k7Æ€;a WWâJC‘€wæÀ©1ŽÒùD;¸ ýwºQÙ™ª7£Œ¢ÑCŒR’ ]\Ê>¦–þ«sÙ­§§{ùD‰ïFp÷áhÌ/"~iK¾\_g× ù,ô û8``Ï×÷å¯g–¢·ðõƈxè^zí2ßb*ŒkÀ•% r’û†JÕ  ýê_’C€«Ó¯JoàçvLB¡ÉEê¹ ëÕ¡XWÉ9(¯Ý»¡_é¿â¬Ë­Öîâ”8¦-úw’y±eÛµ3óâ/oŒLe?^|@wô'—À™¹•Xà¿“¼d彿§.Š'ö6*Yk­>{þJü¾e˶ìIÖ“û,K‰ÞXgì~¡|@tô :ÎÊ(}ø”ÎsË7Gl9¯'WŒ1)ôà«×G@Ÿ~y©Èö[½¯v/hc2`¤o€s> zReíDÛSÞs”õ…q‹^õ8ÆÑ®ÐrÅùÖw³j5XOŠÁü˜sy!S¹¢Ø‘PäÙÎbÂLÏ2  çí+éõ;…Â~o/95Ñdœ£yëg>}ú´P’ÿ:§X’û`àš»&´Ç&ï»ÌÙ™õbmÆvíÌ<§‘ãÕÝgK–\]ýížþ[ðñÏeÒƒËmbò¾vÚq@ƒÃÓ×ÖÞÃþåÿRÁûJw&zšé ³}È|Y°bî”,3¤%¯á›BEe•ÐJW?I( …slõÐmU:‹Æ˜V(Ü=ºË9ÊÚSÞsTizµV$z…–7^f}CrÓøWö—‚Á|‡—)¢rV¨uVfrÄßz®Ñs”GÓÓ<Ç}HZ*îä±ákéð` |Í·À«bxÇx5¨‘xÁª=7f¢ð3rz/ 9±h±ø‡««†5^×l¢ 'âÌ;µž· æNoµ<üNMÌ*¶À×°ƒa¡Äõ¤åxÞ¬°žtùý{"Š<ZΜ•¯.U¤åFA3¾^§^tæƒóW7HOã÷¹?³£«+¿±&lù@övïäé7 Z®iã›ÛXÞR)½^Ëw‹(2dœjÓE±âU¥)Ê©?ÄËÝa2þh“’L ©sÊʱê0}½ˆzàïXš ºB‘g’KEÅRŒ¡d)e;iù‘›§Ümðï5`0˜Z Ö“~k=©i m;‚;h29Æ„ÑxÐ3‰"ŠÜlÍ8¤z]¨ƒ”1(thu±HMQÐfÈ×E[ ™º—ÐÒ²{ßÓÇÃx@Ø_N¸ìøg{ÚÛâÅ™¤ƒ.„Åî›Ôø3Œ*G½É†6>ó^Æ›/ŠÒз &Öó ®xA¬k“ŠW4½,:Y¹Î4E.ð/¹UñèivÉ}·YQ¼ÒÕ>c¼ÐCë^‘FšÀ1ö:¹Áôl¶ºžæ–ã®é¼8î@pûÿ®?ÅVGõR´¡d+Å[Û-q`/«…ëñƒ,ƒ©õˬR°ž Êõ¤Ò:zÎ}òâ{fãŸÝðîÎ'¸“VÞgR±.†ƒ”6(tк@¹Ô”Q m£®Ùמ…12ïÙ‚2^š4Ï<¥©Oo4‡Eˆ[ÕgíF—™9T†Z£,Ÿ(eiýÊM»Ñó@ø¶¼Ý# X¯+†âM/‹N–VÜÜÈ'¸™ÓŽ›j|κUº¼:=`ÃÒ’oø2Æ =4ôݩì3ÉäÔžÉ:Ö}“Ö_QW"OåšéìÌ&/F5ø#­@õR´¡d)eÕçÒÖÔ#7£ÏÞ(À² /³JÀzR”*Ò“€9Ï&l`z$YÈh|{#xYú¬¤°__­‹á E…Z‹Ô”¥ËŒº¼êYÛKÿÌC™ÿÄý¹.¡)Y™,s‘Ñe¹*F½Q–O”²€h¿ ®ƒÅŸÞA¦Ý¾×Pƒíº¢)^¥Wá!Z]¥¤ ß6“ÿ„,uMcbº£l¼ÐC’Ü”œVºO.@чLc >áÐÄT?»`¬!—ßrÕ…¿º¨^Š9”ÊJe½hb ;øÖo¨ƒd1UÀø|™…õ¤Ê¨t=)pªðìÉEN=œ‡úšË÷K•ºRzzi u±HMå‘5ƒQWë6Q÷SßOöwâkΈö Š>™žlacëd yÂ!8ñÈ0ùø4Å«\z•édiu€i§®ý†î™P˜ªèëAb;%|’²[}>¶ƒµ×³e}‰Ÿàí8ãÜËç÷v)¯‹¡Ûì鎮ŽÓö„ŸÙs_õRòC©¤T´åÆX{gÏ‘­3*ë¡ U9£Bv¨Wµ½£ nh4j„GEáèþçdFFFÆÑ™žÄدlW¶¿¦XàU±®c ¼ÔÈobj'ãÎ¥_íÍKûò=½L1lwýæ ¾ùÂj¨[¯í…-†Îc’ËwH½€å,UEß4ÌO_wØ`ê°ÒoÝ_žçizº!í¡xµ¯Û”è¤q.ƒ÷%Å|89éz—- Ên<8{l¹{3ô\óyR;¥4HFX?ãÙGÓôqY¿Àkp£Ï/ZÞ»bÜåÅeûës@ìéýûéøßÑ8q>^ŒíZuU–|Óº:öTË>&ÒÛ†zùN¶}ã°Úâ}̦´v6ôõ;´·º)›9Ó<ÊWvô—®‹Î×)H—g»Ù®:W`”s¿=Žå\>c¾|€1gçPK¤ðôWzèL<?a˜4nðÆ„£S”̼ƒã,éc˜gæ´Æƒ6÷ùu™(m…lûözßÇ‚š'‚mƒc²7—m›©`ƒBÛf™¸©°ËOç~1jGb] PvE0.1ùsоx#ÚÏÿ³wžaM,]>„N*bCMP”*- ˆ`/ØÅ®X°Ük¹ô{bìxm(¨ v`í"Pl‘¾ûýX³›d *2ïÃó¸îΞ™93›L6É›’Æñ2äÉ®V](}{¼ ^\7H˜z:z/”0ÎÏ¡à›†•¬'UÎ4¢(3WZþ–h·“>ݾôk¬òåÀµž6¿dY÷¿ùl*ñ¡Ò,ó³~ZÈÎ\cYàiÛûʧ 32w"h7ôgÃ4i>µÆgd½]tèü¶>¯Î¦“,›|^ÊQ¯•ÿ°â°¶+çùý¡±ì3ùG´‡Vs˜ºèh @þ7i':¸²+/_¹{þ`7±ø³¢ÛVx€á‡Ùk,ÖLÐoýWÊ$סÇOð”ÏÈE›·ýÕ©~36{6*~„9úfÕ¤!ËÏ¿=’˜…n«ÒY4~æFù"rŸgÇQleåK½Z$Îè>«´¯Ql]¿øÕ8^I`=)+„E™ñøûÞ/lIöÝm§neün£<{øò_x{ñE¥8Tº€e~Ö€ ÙQd^iÔöˆ¿uC£AP#<* g™â7úoo¡Ø/ÿD‚-ð߯Jl¯,Ë,ñŠ lã‘Ñ|ÔLò‹®^sÏF;î"Þóðj½L°;G¥cðôgN©toô£*gTÈ.õJ£¶w@üݨ ‚áQQ8Ã&O}>a8•~ÌÆxùu¶ÀWt ¼*Öul/j9ÙY¶ÂÉ·^lÉI}4ܺû£/¤±_Ø¿+Í@:ØišAüóM@~ÛÜÓsGø»³Òx/¾5€žäÁXQóÕÚM<þ½½‰ÿþ®»Y:ëç0ð&qº­ð«’£áÒëî|ûrªZÛ&`2,_G?º«ÇKÛó•¶Dá²E’¶^Tk<ÄJOÛòÙ?yi4òd»3=O½%Ë*?ŠFÉs‘çEŽ";¤„_˜Ç•¨R.ñÐô–EÀŸŠŠóí—ªC©Â üZ°¾ò€-ð …ŸÍÂzRæË²òÔ“æ“:Ÿ`Ð"3€­'-RPÉö¤û7‰#zj†OÎÌ£’LžA‹si„äë]û¢ÏóB>'ð€[…Z3Q¬¡DËIb|è­ŸïÀ€5[®~"$ÒxM– •Py6ãÅdëÃ;±I‡O¿'ft®ÍJ«Ëè•À”dŠæ.®‘ÿ¿ÙÇxÕx%2ÿù¤Zq*T4QèP²Šˆ3Ι8bq欄õ ~„M/£_Ü£,œx!9*³ËŒyˆ”F/ìwù¨Ø» ý>)wzeóP5·wäYgïîA£òoI¹Åh*çÜ@Í¥§·Ü]ØÓÞÓFþ"Â`0lÿSÁzR ¦Ä„HûòÍ(œ%”ÇGà?ßÚ‘˜˜å²¤}kÁ{t­Úìžê·2ûÅEâžÁ‚VB=‘š5köQ_]جYPÓZÚ…,·<ýŽTfGgjW6Cxt6òÐ[ð²í±À£mPfGË ³]›§¸L³ÍН,$áÊÚã¥è.Mƒ—²+·¤q~ø¬'ŨL^ªKu¡H¿õÑÛ_p2~- Ò%µÀËʳ\ÒhpT7/Û-ð,°þϰÀ+üql¯ŒË,¬'ýTµ‰j›Œq3ÄéÂüž(TH—È–g¹¤eûYºyÙ~lg?‘` |Å·À+ûql/ƒeÏÐ-^JüGœ67à€±_ý»oW÷ÚòjyH¤„ä«d”{8+=Ƀ© ÝÄãÒ'â¿äcU~îj­¡³G…áÒëåWµ¶MÀ ÙW—ú%Ž¡6&ø¸DúhΘVêF)A¿w$%Œ4@ïvT/î‹wK¤Ä±°9¥èr÷iƒU[f ÜÌõðÓ9æ7U9+TH—Ô–G]Òè~ÔîÇxùu¶ÀWt ¼ÂWlÿaÔr²³l›/Øå>,4#ø 1Â@hèfz Ë•/º(¨o<°ýê“ìÏÆöÝ:sÕ‡{‡Ýlç‚VÝcÏ¢k¦^roã—Ë Øç&qº­ç8}‡g¤Ïœ[Öþ+w.é0húª Rˆ.Õ2OúÚ¼^šfð‡xèYº6’÷‡èRŽ|áv)aàÄ~¨Þc÷„7ãc36u¸ü¹FpbŒ¹æ÷&]2òÔkÅe„¶5hOx¾ÿmxËèÂ[Ö‚€ËpâXO­ÝË㳂¾Þ7u°ÅÚÛQZ;CÏb QïöËÖž® V——Þ¹ÝQ jr÷ù;8,Û·z‚}îÓk®–Csº­?<D+)h´ç I´_$ X³eÜ07¾æ—¶|ë<¾ð|ÊY^rÒ§ýãúlx‰Ÿà1%[à+ØÁpPh/ëIÊ]O:±|,`Ô/ïmïwddw[ei[µðÝjä,y¯×|šq°Ô]ƒÖÄɯEg±îçҳϢ•ïö[ôLÑhA”Oôëé³l¢ýjéyøÊÀ`0 ¦¬–YXOªŒ2דú9mºqgƒ}—æ9[1¶ŽPĺ ¾Þ£½„Íï»Ñ¼`醜Å\?MãÕÂÖÑœôÂRÖe–h…eåÈÆ”¹ÛõsèÔ_ ƒÁüXOŠÁ`ÊüÙ¬ÊþlVY‘õ8Ä}؆õcDºŒmL…†ýÙ¬JŠ®%ýÍJúO'ƒùýø|k׉ài‡R ÞÐ~~p\ñP´Àµà=·ïÝŸà.ÎØâ#Žñfn7—\åA^ÝûxrGç\fytÿ*ÿ®Kî qg+/ÃÚ®´äëìz+‘ؾx3dÝ]6ȳ+ä¿ ‹û@_çA¿ÃÌùxeîœàËñ1çÐûý‡G¶¿ !®„®Ï2)))t¬“$)‰Hù2D܉¸÷Ÿ—¸Ç·$ÑÑW¶_•2pbÁÖ¨˜‚uº]j”Õ«¬ zýH_X—j©ëR%ŽÂ‡ãü4ð2 ëI1˜ @Õ6#¼l ­?ÒvF‡ÁÃZ[Z˜Zà­Õâ×ìJ¥,ÈÒ¯‡Ú –,s O'Ñòèþ¿Ö/±µòsÔ•’ ¬ k»’O^8zÖ8(°À›&åü&øÂAŸ·(1÷ìŠ5gRÑg¾¸g n%lßÇ_xÍš5«¯¯.lÖLXßµÀÀî~â'r tô¿Þ^ò2w¼{w’¹ÝÎM ñ]u.%éÚãlF@ÌïÀ´ÀŸ¼ý,lQŸç¹ŒmU@ã?ÙðèÅ›ÍÃ]¿QJË W²2¬6+,øT .Uâ(|(P1^fqõ¤(ÍGÍÔ)¿èê5÷l´ã.¢ªïS–cç¨ôò•§?sJ¥~£_™ú¹X < ê‰FË+ób++ƒ-ð€-ðоX3;¶À—r™…õ¤ªóÃzRuIÚ&z+VzZþ°Ñȓ݌J–M«Q#ÊQs«¦g%(¦‹ }§ÌD•r‰‡¦·,þTTœ‡h¿Z÷UéGFyÕúv4®ÌË,eêçb-ð(¨'-¯Ì‹­¬ ¶À¶ÀÿxPÁÌŽ-𥽛¥Uãîжv®³R’èïñÑBÇ¡± Y-ah[‘¾¨ëÉp¹'ÁÚ±W<ܪ íL{}#\¶Ev«U°\póˆ©À«ë'%b‰P>€W34)^"%¦vWp¯ï¶P‰”¸ U÷ØkâÊ­-šr n;NYجýWJ¤Äò¿ÚÀ‚ÂjI¤Äõö¥lóã,¾MlÔà~Q÷$R‚p@š([^Tï±{®­.":ÔTšÁƽ«N}P½VÜZЕOê¬´È VãàKÒ“ç_Èâ2Ùžtÿ&qDO Øѳ83¿ôÎm‰”˜?ª9ð ZœK#$_ïÚýæ./äs¢XÍè¶þ°DúÈ\>3Q¬¡DËIb|è­ŸïÀ€5[®~"$ÒxMfzÙ•gƒ1^L¶>¼›tøô{bFçÚ¬D±ºŒÎCV@ñìÍ)qþÖ^g3XóÐiîV‰4Ùϳn1‰û@\¿¿Nkn0×%Rb®o3˜ð€Ð·Ð‰ ÙѪrV¨~VÅA=Ñhye^lee°ž~ØÄøŠnWÅÌŽ-ð¥¹YZàÍGU]ìürpØ¿+Í`Z}a„®O<±NÏ;ñµÀ· ¹ÔpãÔËRY¬šÎ¾M÷ß|—|ëøÓÖ‚UUu=6âY¯õy’3æ"Ï‹‡¥Ä¾yéHˆi"á\ú?ÁRb_˜£ÝLr^$êL Þ$n»8BgÓ„MyõúlqŠsè½û™G»›¿Îƒpéuw¾=”² ¢ÏZýLÛ&`2,_WðÚ¬ïÄY;áWàÕ’<.2[&½Û•ßrÏ—à š“jÕ%±]Eíö¨OZ8˜–`]úò×¾v»ö™ÚÎ%™Õxäa‹;`o§Û ¿j6–D:X÷ÍF.úˆœå¡<ólÌ &W:œx˜?Öòê»ü‚lüÛ:Ý~Nwƒ6R ö"ͰéGêí³îù)áÇæÉݤ‘%Š1”.‡ÑNÆ¿YÕqª‘Gì á·÷»UïJz·¿eѲ[–^fÀ½Ê³ÌñB÷Ýøvȵû'Gɸy/Ž86 E%EºÌœ‡hÀ>!mN¼×eþ#ºË;9›!›‡¼ý Šë±„›@œ´¾ÍWš(z(¿›øîu:ç{ÙYéÜ(œ¢Ã∠¶ÂžwˆÝÍ…ß ÜB}“ûlø¤ ñ?üMÃÊþ¦!Ãû›†XOŠRNzÒw¹:ËœB\ÍÉ}‘ÀÑøâÊ‘ûšZ³*™‡ Ü4í¸}zÌcùÆ£pdâän?9,2´ï”H‰“gK˜³’Õ¥PZ(hFñuñª†¤$_¹¹ž.Æ«ÓùêÙ©­Û·ÕR€- o·6ƒ»ÿ’‚Ýn IDAT €n|}‹fþwTJoÇ¥û$R"`„…jÓEàf®WÊ)*ç EÕµ1ÒHeçq²š´N"Möµ¯V¸CmÛ;¢©vIÎb%ÇY–c—žH¸àfQ./ˆÖFÅÄÄ ü´è1óù¦DxÈK9êµò`ÊÁÑà,i¸¬<¶À³Àø?À¯ŠQ[àK{7 ëI))W=)7дæ {#‚‡[A©x)B"%¶N7cR½.–2&ŒºP=©Ã²}7¤ÄÕ{{µäÎa(C9ô¤ÌÌOyç×ÐÔµËÅ3 Íoÿt ßÙo׿;î¥å/H!lµaᩃckÝ·*'¥›lhãS&½û®8 ]Ëéüu"¾œ{J‹³Ij|á… "<|rÁÚI/kŠ¢‡ä8ER@Ôµð×!}óÂÕ>k¼ÐCk߆êÀ«Óñüz{бØÚþ¢ˆoÚ6ì]röƒ„ƒg>CIÎb %×Yæ«#zXul6o]9>xñدaKd€þÇ[è€"98œµ_V[àå5±¾Â[àU1ªc |iÈÉÎj-˜%ñmc¥'è¿öõØÚ¯¿QEQÔßõ­³èíS­ô©Ôg+=•^KêÙæ¶v;"º´²ÒÈþ:t ݸ™•žÀªVßüÿþ‡²ÒXÕýdŽ»• =ÎJOHQ­YôZS¯Éþ{¢Úê ¬ª{S7æ°®¸O ›xáê´®Vz‚ÖÂnŒ°·ÒL‹Èõ6Xé Ò¨÷%K× …‡è³ô휂9µ^r‡ÓÛU쨗;¬ô¯¨ï"=AB^vk=¿ u/ÐJO`¥×lÏê…ô)w)ªµžéì=/Wµ2g5þxÕ¹ZAdù~©R—uóÉÿ¸Yé nQ” kP˜h]²¿«Ù”ž`Å}J¬'°6ÿßà bùeÍ`Õ•F’v˜•ù7Ô·ë_ë`G=ß*ŸCÙx±º,—C%¥eùD¥—Ñ/=Aøk*rÿ¹+r5IOH‡5KÌpe¥—1E™‡u6~ÝCÊË@¾×ýÓ¶ö’]ŒñBYñ-ó©çYy¬ômíw\ðjGQécO~÷©!ð=±¡éðŸzU¨~k(•ÕÆnÛ1w›ÄÄX¯€“Tñ]²ÀÑÑÑÑÑ1èEΦñ½gÅ£vÍáèè8za(EQi‘KWž}Vp¨¯ããvŠüä4êDÁÉY/»:;öž´‰¢(Fpd?£|NjW'ÇÑ+/ÊoS•ŒÄÄDzãí 'GÇ NÄÎñxŸOQuÎÏ)ãuÈæäl*/ÕÑqà¯j!cÐÑ-äÒ¦œûú¯!)Š¢¨ë·ÿJQE vttttÙùŠ5‹ £?Ð¥7IQÒ{ë7Þ“*!TþÿFtutíñ.—µŸ:0È%¿0jÑvΛ]» IÍan«ÿmäj—Ž]ûÝËTZ†¦‹Ø—#Ž|yù2Œ„+)ƒ^­?G•6+óS¨§eÈU[Ö~Q¨'½ò€§ CÛ Íè|)¹^˜)[OÚÑ.?i¾òšF€Ãïð!jýRN£®èþ®S²°£“ªn“!Ðâ§¼ %™9Œ%_Y±—qŒ­ÓrÄi9V£n4 ÐzÒùs @Oú°‰™=i)šè¡>Œ³Ý·(xGÛD#P›(ÈëI ‰¹ÅÂDãsùíoe©…MQدbëÒip'–q^6(,к@³‘äÙ¼Á^+ùȇõò?<ѯ§ðFY—uÙ uu¬j¦Vø±ÆÃÑÌ~âL«@^­ž)+~V—år¨˜Ò2«ñÑ~A[ÁN¯ˈYa0_Èñ“^ôÂWQzbÔ¥Vðº“v²_fKo©‰…©¶ ?^è!*óÆ·Fvow@ÞÇ”:fj"¾m×+Äó\µs[ÅI>GEU{«v–ÜP*;+ãuí¦ÐÃÊG´tkY½ ÔµšSh·ß:N®ÀðE;‡n¶Ÿ3£èÐáA jÔö·ªµœºRPfÙjHyͺ§¢bnCe¥†ÍਘÁô[ñôÏÍQàP7&fÿ¯jsБ-¤Ã¸Åùd·¢à­ð FIÙ,b^ÂE£¿?"ôZL §x†/`ç©€‚mt? ŽP°­it༬ º­H½uÚO‰h?…» Íéè½\eäÊËïg&\qôjý‘8ª´YiœŸú¦!Ö“*§Ìõ¤ðôÑ}ç!Òv|Vãý'Ä\>?ß¡ƒS?Ÿ&òýR¥.ye(’^h],=)7²f°êjÜÜÜÔÒÜÔÒÜ´YVæÿö¿±}AOÿ³á p}D£8·ªÚ¡´äúr7€K7Êò‰JŒû0Î×­¯OV@´_÷Ùdè8…¥ƒ1dQ|Ûé'úËÇŸ²3wÛ¢~Ú€|zeS”uˆQ0¤ ªØFZ+ù ìõÊ+§¬Ì:.2YÒ¹&ùòˆù®KNzþ¯å·ùý½Ú?÷®Ý[å³ ¥’³BL7œ²qòÔ8 0 ¦ƒõ¤˜ ÈÈG7½Íï}ÿšÄ3hŸÐKÔdÞ/¨[§Eô§a×Kv¨tKxÖ“V°žƒáëIëI¹˜FeæâJË_Øí–cÒ§Û—~U>£¸ÖÓæ—¬± ëþ7ŸM%>Tº€e~ƒÁTðÝ, SÆà»Y•|7«Ì^7=q¶aýÅ‘.cS¡©¨w³°ž´X°žô·h<Ö“–ź¼U±À¯òÿçºäÎgq6ÓÞñJ£Fxó;¶À¶À+ß_Q,ð \°þ‡ÁzÒ>ob=)Ö“b=é¯Ð“ëòVÅÿ×ú%ö¢V~ŽºR’á‰F ïL¯t‘žÃüŽ-ðØÿ'Xàý¸` |™,³°ž”™¬'ÅzR¬'ý­õ¤ ]Þ šžÌøo[£Õ5xlO´ÌðŽz¥Q#<‡ù[à±þ°À+ûql/‹eV!‹7¦¶®°æ !‘nÕ¬öÞ”H‰Ûƒ<ØÏÒ-†Ec|ø÷îÁ½a±øÖÿÎü.®"´6rÉ ßœµá mm¶Mn <=Á³D|aÛWänÌtMñ…n¶s 8#º=a{ǵ7#û±€`ĦE­ÎøÌ¹Å«×gtÚr_î²·žÔ¦Cšˆ/´x½”Í`bœ%³u>ìl)â ¥ùÂ¥w ¯ÞS3zîõ€53 #>P{?Fû ,lL†D\÷Èÿ¼~/r ó<§ =õ»ñ/lórñ…c—'²©X—zã!ŸÌñÍÉ ´.˜Ùªµˆ/4\~RÀÄÅÞ/tî|yïp¶m«®pÙÌ_,deÞ£´Îâ¨ÙMnÔíéæ0ŠÆ«çêg¬.³s¨ŒR²|¢”dô+óÞmÏ#k¶o0ß7(‡óº:ôþ¬wu¡»ûZú¿hzS”yˆQ$lñ…)Ïk|ùëNáZðæ$¿õ‹[ÑÛ¬ñBM6nyáË¥ëÄOÿëZf]¢ÖÅJ¤±Á2MtÀhðîhgÑWRA@޳CÉqV³Î×¶ÆH¹|;§<¶”¹¼‹µÀS™É=V}Ú;ºÈy¢e†wy¯4m„ç0¿c <¶Àÿxt¶++ƒ-ð?ºÌ2¶¬ž[t7ëR@Âж"¾ðÖøèzÀÖ“Z@ó•×Zé|ˆÚwó]>Ï=7G'ëkoÙN Å/ê0mŒdR 'žˆž´+ ÐzÒo ÀiY«‰™@‰ž´Í`Rxã¾EÁC ­ mƒ*C›4«É¡' &rY—Ó“²ûUl]:lîľC›'l=iÊî--éI•v™UWǪf6ô_“Væ??q¦sà €âõ¤E]–Ë¡bJ7Êò‰Rí­'2zâƒû Ô¸®+¶žT.½ 1ê’½£“VOþ‹‘Ò[jc¶¡;ŠÆ =DeÞøÖHûÙ5 E£Fj"¾mmcÝ/¹j綊׿HÚ5 êÑ÷GU>Kn(••ñºvèaåS­†VY=Te&º>¶¹¿KðËÜɇ÷÷j/ö 2ìŒ|ºt÷ì‘b±xÖívU ýÊ2±X|­í¦z!}hñòD£‹ÅâûY0îPHogñâ´¡fÚÔç†SéÓÈÄÄÄÄDSMÛ¨Šúæ }ÄbñaÃ&£<Çv%}ÓWóøˆÏÎbñÈÀ“·Ö¬ÛÞÔÄÄdœÙý¯@‹Ië?’¿¬iÅΜ˛g9‹Åƒ7|ïWŸù8AeˆÅ®qö[šŒY„‚Žþ N3B¦Ú‡MÏÜtÿ»²bætŸ_7q‡žïó˜3P +Ï öwèêû&—±­ hüU-]=»Æj×à(ƒÎvee”µÝ&\Yôjý‘8èÕZÒ8?‚Y¥/´ti¿Òä(Œi=éW€¼¯O¾ÐzRƒ9v¤c¡žôIË)ñ«&“ïRs’‡½IšUI ßƒxNt8Ó×uÂí¼Ç{w q/²ªýw<´X=)}–LOÚñÊ>,§õ¤DëiGûwÉ{,EÀÚö–ö{®•zlšíýíÚ~x&MŸ&>†B÷#¿ú›ƒJÐ e(Гž˜ruwúhv¡«3ñóãC‡ž8ü/îÝA7}!*C7ž|®õàò3ÐIÒBìøBú%LOºŒÙxZ:gEDƒš)‡CÙýR©®¨9½¿Eÿ×}JméeÀ¨ë$UR=iâçLJ3êjÜÜ\‹~àÊþðè!#ó´ÓònÛ€…¬¹>ÝÁÌ;‡ v(-iš±i óJ)ÑdCêb'ŠÖ“>Ï|z$„°Ú¯§ŸM†Ž„ív0†•…zÒ°¯\{bŧõ¤Aw$+Ó“ò«¿9šÏÒ“Õ•LëIklÛZ‘½™ö‚ÆK¹ÑÊÐùâMK:×üçÌóGqNŸü¯å Q>%â  õޏÏz«|ȥ³fž 1ýï²Íûyý't*“‡ªb]ÞªXà72¼ÞˆK5¼@¡Wša„Wn~ÇxÀøŠo§èǸf»’2ØϾ1…˜ŠÖ“2ïÈa=)æ×ƒ… XOJ¯u±žT)XOÊ Ö“b=)ƒÁp€ïfa0˜2ßͪ<à»Y XOú'Ð|ÔLò‹®^sÏF;î"ZOú[a9vŽJ>Bl.Å`þ8²‡ˆÅbI&{SÑÁzÒ’ñÃzRuIZÁ;,±ÒÓò‡Q¥ŠXQŽßXUÓ³ÓE…zRf¢J¹ÄCÓ[**ÎC´_-‡ûj¨tղͥ•TåÌ’¶Ó”ÔnŸökóôݶáíßä+ÝF€-ðò` ¼²ýů09€-ðe²ÌÂzRfJÊUOšOê¬´È `ëI‹”Åd²=éþM∞‡á“3ó¨$“gÐâ\!ùz×¾ºLZÀ ùœhÀnjÌD±†-'‰ñ¡·v~¾Öl¹ú‰Hã5Y*TV@åÙ`Œ“­ïÄ&>ýž˜Ñ¹6+Q¬.£óP<{³DJœ¿µ—ÇÙ Ö×ïï£ÅšÌÅu‘¹tÂB ÜB'6d_D¨Ê™!m/¤¤xt»V]ƒzukÕÐÓUSº6[àÙ` |Å·À+L` |Ù,³ ÁzR€rדf:­Öÿ7ÕJ7ÿM2«ñ€((‹ Èdt³m-f^‹ÄeøäÊ+ ¬moùÈ÷ß±mªH£f{j.4¶tgS…îÇ%j†2èIWMqèÚ›6ЮÎþý›@€Ãÿ®¿;8`Æ](T†™4m”ó @O$‘ô•qï“yØÀMÓŽÛ§Ç<–o<ãŽG@&Nîö“Ã"CûÎcä> YË0ü™¢¹‹k¤ÇÿoöÅ1^µÞF‰ ÇÆ>©Æl†4jNïˆhWwÇÚŠB¢‰B‡’Uì@œqÎÄ‹3g%¬Wð#ÄhzÑ€ýâeiäÄ éÐ*T$QÌ.3æ!P½°ßå£bï.ôû¤Üé•ÍCiÔÜÞ‘g½»Ê¿%åJ£©œsŒÛØuí4:7N §·Ü]ØÓÞÓFþ"ú“`¨œi»Œ’ZàÑííýÝÄâ›Õ|i*ÛF€-ðòë,l¯èx…Élÿa°Ðƒ)1!Òľ|3 'B XèPyÀB †ƒúÚµ4p@×R’~\ö?[¾0ç£ ãÈ´¨j_‰Ûâ5ƒÁ`ŠÞÀ)€Ì{ôï»a0Å—êRO ƒÁ¨ Ö“V:Tµ‰j›Œq3ÄéÂ`0 懖YXOª:?¬'µ1ÁÇ%ÒGsÆ´P7’H ú¦b”0Ò½ÛQ½¸Cx,Þ-‘ÇÂæ”¢Ë m¢Šº*p3×ÃWƒÁü°þO^fa=)3%åª'¯Ó÷Mé-â›/Üv³ô±]3ÕZ€Ì»; ÉpÑY 4ê-m"â {uY(ßeT4ê°lß )qõÞ^:i¨M”eÝD½ j|á… "<|2¾<0¿¨Ê•³ËPÅ–Aƒ û¯Mv½—”””ü”>Eæ˜Æxn°^ÙþŠbWøã €-ðe³Ì*ëIÊ]O:±Èß6LùòøÞö~G¦@v·U–¶U -HÈY ò^¯ù4ãxèl]5¦ ˜¢Q{7¾Ð¹óå½Ãë²l¢,'ê=ôþ¬wu¡»ûZüÔŽù}@UΨœ]†*x´ „é¤Î7räî˜t@ÓØÏ¶ÀW| ¼ÂWl/ÛeÖ“¢”“žô=èÕ¨mj¤ÕB"}¤Vw}Ã)u× 5q²ÅkÑY,‚û¹ôì³hå;‚m©cŠF ¢|x¢_OŸeåèWHÏ æ÷E™œ] ¼¬ +ˆl¿ÃÚ¨˜˜˜Ÿ=ÎUÓØØÿGXàAÉ+` |Ù,³°žTe®'õsÚtãÎû.ÿÌs0¶bl¡ˆ/t|½G#z ›ßw£yÁÌCÎb®&ŽñjaëhÎzɺÌ2^m2m¢Ù˜²3wÛ¢~Úà§sÌï‰29{±x´ +ËIÍã©€*Žillÿ#,ð äǰþÁzR SÆ”‡ž43!ÐcâE} ÂG-Ò{@ e·c›ÿ–½Þ={äžè$ ÏIÛf÷N¿²¬ÇÜ3ÝgÿÕÉv÷;Ç4Õd”É~uQd²ó„>‡î¼u½ná`úåtuz:z/Ú€ÁuÓ»¹ùu Øö—;ä¾A·A³n¥k™žôc\p)Û…ÊÙÒäjñàü8gÛ9I»ù5ù n?-&fÿ/i!càê¼íÖq€–Uÿеãd.ožµàPLÝÖ½­›¬ðß4Ë‘U†ˆÅÏ@sp`ÐèöõÑYļ³Z4úƒ\ûG„fÞß°FŒoöYñ rÁÈáÏÔ]8^›B÷ÃÁÁ®ý‚#è;EÛ¹ovéóV«Éþcûê²­Êâ©÷Ý•5ý—FŽT¿eïÍ-t—ê³ó˜È¨íÝ9â0û¢¸ #á 5–A¯Ä‰ƒ^¡%ŽóS¨¯] /³°žƒ©Ë,Ìo¾ÌÂ`0 —YXOŠõ¤ ƒÁ`ʬ'­t`=)ƒÁ`0?o™…õ¤ªƒõ¤ ƒÁ`J°ÌÂzRfJ°žëI1 æ§‚-ðô2«¬'ÀzR¬'ÅüŽ *g…’wU,ð€8£Q <µÀ£Û¨#[àåÁxeû+Š^á+¶À—í2 ëIQ°žƒù}@UÎ %ïªXàQg4jgz¢ <²:²±ž ¶ÀW| ¼ÂWl/«eÖ“*ëI1˜ß e’÷b-ð¨3Z™JµÀ£Û€8²±ž¶ÀÿxeW¶Àÿ Ø›…Á`ʘròfe?Z{\Bÿú·ƒcÿçÝ`ö¿õ˜·£?œóKo±«Â(ð-íN­º/ž?§üÿ³çÜþºí‹9“uÅaýÉCi²‚ß_Ó]gÂI&c{mO§ñÇ£56÷:“40³ïˆŒíqGc*ÕXx³ÈíÇ_»²¥+Ã%4ÜDËøŠÚoÿÖM6pö)íSQûU#eƒ»¶‡ó„Q9·D4˜Ó¹ãÍœÜÇÛê ï__£HOêÔ5(úôíÅ ¦hÍ"ÆŠ™ fð´Ï¦·^©l†À¶žº~ÇiÊ«­XOú·›ÇòKéè¶J¯Fø ; Û±çé®~ßFõ¤h™%nÑ+Ba´/fÚJò Í¾T–a]­¥‹£û¦èŠ6ª¢^¢8?‡úÚµxø)t-éoVÒÚ8!ÌïGfB Ûèc›û»¿ÌM¿²L,_k» ]cíž=R,ϺÝÁ® ° „Lôy‘ ÐÈÄÄÄÄDSMÛ¨Šúöƒþnbñ€Íj¾4Ñà›'ô‹Å‡ š€nõù„áTúÉgÜ¡ÞÎâÅiCÍ´ÙÛ•txx5øì, Mäû¥J],)3½ к8¤¦òÈšÁª«qssSKsSKsÓfuX™ÿÛÿÆö=ýφ/Àe)du™CP;”–\_n­[ºQ–OTb܇q¾n}}š°¢ý‚¼Ï&CÇ ,,Œ!‹àÛN8Ñ_>MczC IDAT>Cñ*—^e:YF]`ÜÆ®k¿ Ñ¹qR]˜²´VòÁ'Ù!ë•WNY™u\d²¤sMòåó]—œ:õü_ËoóÁbâß.öþû7^Þ÷Põ³ä‡RÉY!¦NÙ8y jœTVU­_b/jåç¨+%A¡ŠZ% Y©®JZè@¦…Í|âºÜ–^øçwð ¹¼ÛyÈrËÛ¿uùwÙi>qúÈo '$ï‰ÉŽ›eàeX´ÖŠ={pÉ’-AQ1UyÀÒ“f?\½KsÂ8¡âû²¬©¸º‡XÝF_ ÝκKݶ\ÑQt®B=i±ø-ýÎæð¸qî²í–:ÅößóÛÉîc×çl Aõ¤h™nïw*¼j”õ½ôX}Q¨e•‘]­:ÊËçšÿ_ÛO­ïê4ôtô^(aœŸÖ“ÒoVa=©R¦E™¹¸Òò¶D»å˜ôéö¥_c•Ï(®õ´ù%k,ȺÿÍgS‰•.`™ŸUr¨Ìä«>ÑKûÚÚÍØ}ój;#ÆíÍ&Bó€ BÉ7¨ÖÆ/&&¦kÚ5‡Úêð-í ú†§»Âó93J2y-Î¥’¯wí«Ë¾¿Á ùœhÀnjÌD±†-'‰ñ¡·v~¾Öl¹ú‰Hã5Y*TV@åÙ`Œ“­ïÄ&>ýž˜Ñ¹6+Q¬.£óP<{³DJœ¿µ—ÇÙ Ö×ïï£ÅšÌÅu‘¹tÂB ÜB'6d_D ƒùõˬB°ž Üõ¤¤N«õÿMµÒÍ“Ìj< Êb2ݬE[‹™×bq>¹2ÏdŠ÷…,ja&ÒoyþZ¯šnø×ê™}![…Z3QŒ¡dI ì ûÐXÝ„|}G;8VŠøÖ¹Ìô²rdƒ1^LD vŸ±ÉÜ´Ûá¬D1»Ì˜‡h@^}ŸéšD|á+ g3ÐyÈkÐJÞ*ß”Zm¤Î•(èRS(î±{Hmù¹Á€i.Uva0å ~ǃ)Á2 ëIQÊIOú.Wg™SˆË¡9¹/8_\@9rßBSkU Ÿ ºÌ”dFõ°ø`ç-%ÚÕT¨ÓÖLͤŠS¡*JV'“õZ.ÕöÛÙ_?!”+½L8²QÌxåçÀc%ŠÙeƺï6¶§ù±©ýn»êF’/1møÂ<€ )1½ªðmžÞí¨N­q„ðX¼{Ù$ñÓˆ}½º,,i—»O|aþ‚â‡K[àfž¼í¾F0?ÄCI,NÏ@L¥^fÑzÒa¡Á_ˆB˜RWxå ÏØ'ahÛa¡aÒ»;ø-§ª×޽â!ª&”ípÙézÖgî©40rzâo½o)vF.yu½n>^——šÐ¡Y)Ô }tQPß x`ûÕ'Ù?vÖw[èÌAVîv³ Zu=‹®™zɽ_.3 ]¸ªãôž‘>snYû¯Ü¹¤[xÀ é«n,H! $R"ó¤¯ýÀë¥iqˆ‡ž¥k5`p?G¾p;S:áÍøÀØLA@D£M.®œc®ùĽI—Œ|õZq¡m Ú“^§ï=ÞR4¸`#˜} íš©Ö:Ë㳀̻;«ÅÚ Å´zK[‡ˆøÃéÿ±º¼ôÎíŽýS“»ÏßñÀaÙ¾ÕìsŸ^sµšÐmýáù#ZÑßZcô‹„k¶ŒæÆ×üÒ–oÇžO9ËKNú´¾B0?ŽÀ 'ƒÁT6?L¬'ýùzÒ‰¨èô¢…Ó†)_ßÛÞïÈ4Èî¶ÊÒ¶j¡‘‰-5-$ïõšO3އÎÖUàÔ]¢âJ–“Ñ/€¾£« E|ë\9µ&óƒP$ùûÿæžû‹ª~¶gл¼’œ’ÿ­ßæÄï£ õfõ\|«BçVÅ¿ÔÐ/s*jžK<¿ïÉ!öâö·¥d…¸H+Ü_Áš}4ÄzR”rÒ“¾¢µM´ZH¤Ôê¡}`©»­‰“-^RS”à~.=û,Zù®ÈÅU€rÑ(KÈÉÑ/†Zƒùazôé—E’ùèßã]ƒÎßK|”˜øö{.ëP‰þVLšsõv ×Låe2nî><óÀ«l’ÌO¿2Vðå[Ñçò˜e(e§wu›ò#-,ö¯áà=†P‚òÉ;FoÙ”Õ/4'ǹG=~³e¤ûë\®>¢õ*é£ú„ó³8óæ¶41)Šú½ó\Šù£JŽ o¥]âJŸÜý_²§ÙåyiTô?Æ2 ëI•QæzR?§M7îl°ïàòÏ<ãa+ÆÖŠøB—Á×{4¢—°ù}7š,ݘRSdýh4qŒW [Gs>ÐèLw‰Ârrdƒ¡ÖÄ`~˜¼¼¼¹ÿ[¸xúB¢¨F‚¦BaSCm ©oâNý_}ËŠ’¤%‡n~ð2ë-ê#«_íFzŸå¼Uò3s›ýê˜ïš ¯’®'g‘è<92Â=ôYæ…€^ïó}95Æ+›"3.ONÊVšÛ 3ºD=yõ÷Ƨò]ûåy.~.QŒø¬2 s‹æ¤H’º šO4ÏÊæá’]©CÚ6^´Èõbz¾m¥ì¯àÈÔÞ‹ Z´ uK—E!>klùfpÜÓàÐõ0è[Ep¤àGÍ™>®:ð‹>³µ§½}£K8€ÈóL¯#”;ëÛê aàÆ7€›þâ›tU€<ÐV†|è[Tð¡±hú¿“ ‹JªÞ ä9ázˆuõ1¼sѯh?úÇ©èÖÓóý"þ~zûöt×hÌïQaK¾Ç¯µnpý2tK€OÇ}Ñ·€—뺈ֱÏb¶ðí†mgÀµð(Úe‘`Œ¨.”% ¾]ïH'ª Dðô«òÁ»›“œnÀ5¼@À”Ý;‡ùyy²»è@Qð,9‰Ô¡PKäÛþm¬«aܲúWÍÚ½†ùæ8f‘ZÆmÛ´þT¯‰åî _ûöøhðöʜւñóCä§[Û,Ü$EÂÐ}çdoè—ýT˜‘ý~åÞsÙ·—œMËïTS iÆ„öMÔ-ǯOÌš¸xìžÇÙ/ï,8IQ$E¿ï hÆ5·Y·dõ˜qþV$£²M5wüeìØçtj®6hx›hï*xE ‹~vH_z.xô¿ëÖ·bG‘$EQIREyè7Uiß5e™”õ ÍC.Å{L<}ñ177ŸD_H¡}œl®…Ô ²>Ö`öK£f“/³ºêp¾)ü“r¹lÇæugtȯæEó(® 5yã†nœ5V %‹IÑoXÓÝ$ç6.®î‘Åuh€<-þ.yVa.ÑÕħäÊÈçvZ‹¢<œE’@m$Ÿ©Hžû)¹î¾ÞÕã]Z§}Í£ªc'8;XOŠÁ”󣌆Fà¼9@"Ïš$ ›4h|tKSG>:aÊÅóÿ}¶oäw’ (J¾÷ÕP[gØ1úö;‡Ê|Ü{í§cÖôÎoéït ëÈ?®‘PI’¤¨¦I’ðòóI’D–÷=ŸÔ|“Ô´¶«š¡ç±)kù.tL5*ŸÞ@Û0üÌ.¸»jÀgëƒèoÖÕÊÈ#Éo/‰ú6jï)5’$I Hm2tÒŒŽi»"~_ð˜áEŠò ¬¿ÐT#U¶GÖ/4»#rwÍ4q˜àú*gpC …}dÖ[ÔG] F¿²^%´©ïHÊú”®^ÕPSí—å¶¾iõ79d# `Í ò¤ù¤Æë‡&õ=H’,ê‹&ä“dFê’$IRqn'©&IòÃËO5HVšYžK4—è¶Ñû(f…¹%É\Y蕨üu‡æYÙ4»¯†«‡wz£ /N¯póðÞ˜íS…Y×ÜË{xxO¶n£KR@÷‘b¾§Dvé]k`¡î¿7k[yÛ÷º¯§÷‘”4ÊúK‘äßã¤ä°û…æaÓ®Ñ<¼}wÀÀúW—ú%Ž¡6&ø¸DúhΘVêF)A?@I # лÕ‹;„ÇâÝ)q,lN)ºÜ}Ú`Õ,ð7s=|`~œ ÷"T“_õàéõ¿q yuoøS*Ò˜äV[ößû‡ÿž¹í¾)„÷åÿýaçèIí„]g¥$Ñ­£…ŽCcA³ZÂж"}QדáìÇNõÚ±W<ܪ íL ð.Û"»Õ¢¹‰ùFÄ¿ÔàÕõŠ“±D(ŸÀ«š/‘S»×“8î»-T"%.ÅhÕ=öš¸rk‹¦\@šªŽÓC¶kÿ•)±ü¯vPàê¬%‘ר—²ÌCŒ³ø6±QƒûEÝ“H >À¦žt®­.":ÔTšÁƽ«N}P½VÜ—A—×é{¦ôñÍn»ˆžh=)’ᢳèI…´žÕå¥wnK¤ÄüQÍÀaÙ¾Râê½½tÒº­?,‘>2§{‰ö `Àš-W?i¼&€_x!ƒŸŒ×˜2!?7ÿá?ü‡ÿ*Û_Á36úhHëI_¬yCÀ´úÂZOºN³:êI¥‰EzRë*…_{sÖ†ªº›Ü¸×ú<Á³DÍ.–<¾ùÖ­'íCÿ'8#º?_˜£ÝLÙOÔ™`ŒØ4Bg“Ïœ‡…zÒ¿ÝÏ<ª·Î< ¾ÐNöË3¥k­'•BÏZgë,û±|aßÿú¤ŒS3z>ô4[¶f†a×ÔÞ/Ѿ¤ZuI¬¯¨Ý>–ž´SOÚiÁö~ÿY.,‰žtÿñPë>‹2)`t`f«Ö36f;„´žô{£ÁÁÃëŽtød¦ˆÿ|‡”€=©¬_ÏúŽvp,üÞâá÷g½ùÂ<·P_¼BÀ”„ÍÑÿ¦¦¦âœ`0˜J@*`=)Ö“b=)¦B3¢i½zõìå·+ ÄZñ |½a0.XOZ XOŠÁü žžžb±X,»¸¸Èv~¿»ÜmÆþøˆ#±œ_f5îÍ|ד×6Z ¶UDÔÌqâµo¥è”[½z‹îgç$.Ûð$·¤mÆ`0•‡ ùMC ó;Ãú¦¡e[ç)S¦ðx¼U«ViiiÑoŽÔÛöø5ýÚâú_­ž8qc¬8ðæëÓ^õòÖ$“ÿ´ì}≀¨qoɳ£ðµžÐåZüµG>U=ê!+o ÝÛŸzVð-ÙöÍ»$ϽêG†Ø¬¼aªYtn'»:E ÍyÔ÷¼áE›oÌCã×<×]vnÞžùÙ.Ãÿàìþ™¢ŒrkÔ.¯šåÅ#ÂmšSÛísBê*l3õÁqUÚÕ¿Ír]O "m.ªKp£·Ö¸3îs“o­Ç3ƒù“xóôA·°žëI1˜òEKKK[[[MMMK«è^Sj¦¦záöÿŽj]XÕ¤×ÞñA/ótAs ÿëPË—ÙÀ”Ÿƒ¾Û:m»:û•ÕHñƒ˜ÿ®—¯v¹À€A™+Ú‹–yj¦NùEW¯¹g£wïùøÇÊ˱stUºjõgN©ðoô÷ }¼À«e½&¢'9°5îT‹zõúœqu5`û?{çÖÄÖÄáIè,`CEì\BS”*¢QìŠW@,Ø®ˆ ¶k»*6T슽®‚øYñÚÅ‚¢"+míbE‘¥“|„²»)†&–yžÇuÏ™9sæœM&›ä—Ô6løùaCVÿûÝ6lø¶qüoBdg³†F­»¼Ì—BFŒÅ,Ëžsþ™u‰Þ@·Ý¿±]s³Ö‘ZõdyÐöÏ‹fõ§ÇÜïfV$õ}CžhÇû*§õeæ>¤;ÞvºÚz>1n;ErvɃ¾¹M.XÅ'ÆŽ½Kœç½+”›(è]‡—ÕÌ{ϰzÞX{ƒÁÝõ|×s#bIÃý¬2‚ÿ1144ÄG^A~‡»Y€ò¤ß_žô}¾æ2ûpÇÐ9ù/î*þ[¥ÈX³Ê´’1e¦¨é•þ;x_¥ÈöuTê·Ó½É0Ã`é*€¾”¬I&k·Y¤á»cîÝCŠÒËDA6¾±^…ÀpY‰bN™±éµL®|¦Lt´þè{1®_Nm¢ÄÇè ÓÈšMk*ÚÅÄF¥6Ô‘ˆž%Fð‚ Hõ‚ò¤ß ÒåI|6¼qÚ»´¨ÇÒÁ3îˆ(pÈľ›Ý¤ˆK‡<æ±*¶¢Õ2 QSþÜ%µÓâÌ>çÓ£.À»+|ý±q_Žq˜a°ôNYÐE_JV·ý±†y~£–dÿs7ø’´zzéÌKñ*S—üΦ‰€•(æ”ûîºèyñ‚ž½%ï“*NoÉ>¤®ÌýóÒ)‡žýöýUx›R”(F¨ ÷¶íÐÇsߘüX Nl¾¿v‘›«ôE„ ?!…]†Pºs~—Ñ'ŠÅ³Ü»\J¯.èñÐ‘ß ”'E2N%zfbL„¼§…¯ùÝ&í^b7ÿQ‡}Ãäœo¬Ä1ÝV´jSèùгg¢ö1ó•°­ŠqåÃw´Í¯@Ìòlå!JJº?zYü®…½yt‹Ë¬ƒ‘!^ò rÖÞn<©“ŽTCAÊÈ“j»úÕÿ¾{ÌH®-=žÊ‰ ùɈ»v¾ø#ð¿9Z–BŠ,ùÓÀ„ òP5¼”N ¿Þ ´Ãëû#ú)X²Â¨íàÔÝAòÎ+sÌôÊ:n°&‡}¬ŒmUŒ+ÿøûÙV$fy¶oÃüœ!×ÔÔ˜C4â5ÒQZgï äÅuù Îê:hÉ›W†ïQªÀuŠ(÷Eù·ÞÍNéûçÅçé~nLë2q笷÷  ÿ™À}›Â=&þÓyl~Êá%7¿(XÓ±]ï¿x¾õôÜiñÓãaƆü²Ï˜”'E”¥àc-Ü*ÕWfQiúZ_F.»£™òÎ+s\Ö±¾ç¸?rž+bÛÀmçå~E¯MT䨿= äËk VÝž÷$$/å´‡×i€šÝyús5šä<ü l¿µÊô3 €4ªC‘:Zó¨ð1 ãç:âk?øtÔñ¯ä¬©8=¥ÛºVM´òXðjÿ7óF'ïI636ä×åIM¾§dèO-OZµÁk4óqÒ/ï¥ù+h–µŒ}›š©àXµ~»ÑY»f´_Ç–ñb‘v^™c¥^€*a[ãþ/¾+³<ÛüŒ”ÇE<•w'XµŽñ«ô€‚µºævQQQQQ¬ÛBÀáæ*ˇ#{¿ÉŽ?ÄêJ§»I9ò÷G;ãá]åóFG*6ä×-³¸úNqyƒéÍêÞôÚÐÖëéœnìl°r(ÿ¯|›üÒ{¥ó¢;dXÕéÿq§»•¶ñÿ>ˆÛ) ‰_·ûû\qêƒDrFVzY[”ÞÄøÓsg$ˆÅâþ=%gì\Ž{뵎9ðyPí¢cÖzÑ›.;é·i>þÝŽaVµûäœh¥m|=[ÜNÛ¸c—=kl[• §¤c)å[µ®ÝûÝá±æšMV;uNŒ òûu®¡º>ã6„DžÖ¼%…éT @"OJ‘w†8³‹~Yò¤7KåI:lð“™|ÂÁKñ;i¨ 5õ^V‘ÿ˜‰¾ÁKZKŽYëEošdØêlÆ…hr‚«´ºYï+ën ©›!g³›i¼ãÞiúÆ®‹®î¯¯¼c)X™öº¾%öèÝð‹wòð¥,‚ ¿û›†% <)*’'#s‹Àþ !d>+øÖúð¦øYIæ¼¾9–´dhÉ¢° Å’'•Pøñ‰nC]SfåRÃÌFògÀÊüg g:,ºž¢`/*£­*ãóåZeÚª,‡ôyŽ­ñŽ“Çø=òúW£èºj i¥_§’•^™MŒ±Š‘h²¡ns|¶ÒO”®½Iœ}+³©Æ³ëPð)¥¾‡OØÖ3ÔÊÈ}8yÿL€ãÌžÊ[±—RžUúëzõ¡¿•{ÍÚêø ‹ –Y(O*—J—'€§ †Q3:¬àý'D]<3¿cW{Ow#éy)3–´d(-½ èc±äISk¬æ-ÌM,ÍM,ÍMLë³2ÿ·ÿ­m ÝüOô:¤Àó·´U9¡©É¤jÝò­²t¢c?Žóvòp7b9¤Ï ¾4>ÎØÂ²£!äˆÛé‘GIûŸ¼#ëbÏŽÝÛ€tzK¶(«‰104He ±Ud-çƒO%MÖ+/·2sYÜli¯:¢—Íw^°ïî¶ Õ­w…°pöà ÿ8÷^}àÀÄCÊ[I/¥«p“õÇmì‡4OÂYA~gPžùiu)!¦§ùƒ¬éeŠ^«¸»øFóªalÍ–W7ëÙˆ.[Sù–ѪÊäIDyr¦ eN³b.S‡íüËH­Ò© ŸÈÏ Ê“ƒò¤ò™F–fæÜJËjŒD£•OÚt»ò×XU³Ê‹ÖºÚTK93Ý7–¹©|+ÝJùÝÆ?½½Øž§xÝýFˆ>:M9–”””D²?Q›°öZ%kå ú,JJJJJ~ Úí®FT‚:ò‰ü²`™U$OZò—‹ ¡±‚Wšç¿Tc$¹÷·¿þ£­òì‘Ë «/'=~9šÊç°Ò­ØÏ¶r•Ç‘_ù*ð ª×ÄÔÔԔ׈®ºÎè!O^®j<í<ŽzSSSSÖ¯åî:ó:ùJ¯…·Aô©ó°à'W7$¿«(K)žé‡fËzÙÐoч7OŽ=ÎEµw,³~>Pžô› <é<Ê“*_f)k_û‰ÔÒåià¶ór1¬ï£d¼LJJ"Ÿ§IT×»Œ'ÿ±­AïP¬œî›ûä+Âß.Rïê¯ÊìC?ÏBœ÷1))‰|ñ‘yZíõ‘¥ž£æ|‰½œ÷$ÌoÙø?ìÇÙÊRŠgú)µeU?ÛvÙõ VüÈïXf¡¡ÚØãܘnF©s€[ÛÙ`ßnCW«qUå¡ôžU©-Ý'@¾Ï@WÃÀKíQíý7‡“—›cÛbáÎŽçGJ7_r¥Æ‡—C#þ[iÓñ"µÜãÈÅpbˆ`ÞÑw§¨¸„5€¶ðÑØö^jAú¦\,ý®yï?ÿy_„uÜ ë®!Œ¡jt9<êÙ€àáIs¾ë¹0Šô"xL=!9Ï›+ùOEŽ"xy¦Â3|~/’îpp ¿õÜ(Í6ÆsÜlÅ'ôC·“ ñýÌ_Ày*ºaå Cµ±Œ&‰Õêg6“`ù²Øœ¢ºðyªï+pë ãGòÍ–EP÷û­vg<©×BÄ©%¼Ù‡ß~/€ÊÄÀ¡é¬}9œ0í¾ñBíµ.û³úуõ„ÜÅã¥äHÏK™±l<Å¡}®º¯{¾"} ^}Q˜¼(«„ éä¤Z<òD;^VÓ¡!]/xízË.…‹ÃPi>Œ>ÖiŠ,z{,í ßâ(=ó§©»S×püO·Þ|‹•¬–¬kÊ‹?±r(‡r­2+øúR2ž§Ï«éœ$©zéL½·ÿžwKÁuF‘C^žÓ!ïäë_ÒÓ[@›2+óŒþ±UüˆXò¬-ï ë…9Ñöü¢¼nSîI.ÆzÑš€£—‘_˜m«×[ÝjÆ¢š;œÿûÏ÷¸ö§‘­F¿ ¯ Pè8ÛùÎø)GÓ”´Z÷‘±”ò¬ÔZO›©³½Åú S¼[ØM¿iˆü<ˆOÞxÚI?~ᳫõ1HEñMC”'¥ƒò¤(O (OŠò¤Èovë¡W‡?jòzc…T(Oú Pž”Ê“¢<)Ê“"‚([¹£<)ò³€ò¤Ì;r(OŠ òã‚ò¤Å <©|PžT1(OZyò¤ò’ßeô‰ÊèSdÅ‚íOótŸ¿:x7 AJ¦Âw³òºMÚ½Änþ£û†a>aD©3cyÃtbýÂk]ZßS“Ü„µ·Oê¤#·Cf ùšÊ½ìÑŽÖÆ¦¦*?ù|˘‡|AŸ +Ü£fjb$þ|~ǧÎåúñ†ÆÕ]~Ÿ¿?ñÝ,”'¥Ó⯙šUç]¥Îî wù©åI(,ÇÎÑR¦ß¯®\ŠŠð¿ Tàu451oÁ1]-º5ãàÃû‚Áóúôq¦ÀmaJü©^‹™JërÔÕuñLM9D#SSS€ÓºLÜy#ëí½B†Ú;MMž¦ØÎ€v§Š¦êÎ8¦õ¡ÇÉðÿíù‚8Ó~à²g·v Ü‚A”êµç€¸ËŸ›˜sd+çÞ *Ýÿ` #åé¹]+ô`©¥ÛššÕjÑ©cÃì‚÷ç=ƒf6²è¡užñö´ÒêêÜ Q´´Va*¶—¨ÉÓÛéã2¿DïÃè_ºo™qÒü{¾¢÷ç=OnÞ~8+9Ì9Ê—*ÝÿˆeÊ“2SR¥ò¤…"Í¢ÊA]”lyÒR Êo8d²-éa yP› @áSaæé"™\½–§SIá×ûvµJD ¸á_õ¸ X µf¢XKIï'Œr—íør¼Öl¾ö™Rqj,)T–CùÙ`¬“-ñ÷n&…ø@ÎèU•(Ö”éûåP0{“"ÏÜÞÃUkÚÏÝ"¤’}]|#QÉè‡{%‰bí fq]ª\:á© zN‡üš°/¢ŸŒ"Åm¥áeØ*}Œ¶ßÕV ¼^#£^ÓCæ{Í“§–ÎÕm”ô"@üQ­€\ux/%dlÅv(y|+UlWà„ÖGvVœ4ÿßž/W·ùŠÈ+ŽZ~v@A!{ŽÌq‹ó ó.*Ýÿ`eV1K6¼i£°æ-)¤H§ZV{b„ygˆ3ËR½åˆK#þ½`OÄÍO„õ3³:Ás² !éW5äuî´6æ’'Ë!Ú¸¸õI÷9·¹ ŽI]Î'xç÷4T…€F¼4Hå<»ÁÑå ƒÙİ¢bmBÂ,ùLð‚á¶ÇÖÌÐü(Þó骷±…M³a‘ÑÞ…ŸB‚÷H6fºH³uð)VZ…o“YÁ@VÔÔ{YJ8d2Æ´e;‹™×£†°2¬ef¶nÃ'xúË©ö†/niÆ×m.àhÿzkDM³ áJóaƒŸÌäæ Ò1ÅXJÙ"ãúƒB½š«4ŀǘŽjòø„u>3½,‡ ²ÁX/&ü&ñ]ǧo47é¶•(æ”ûîÛÈ}ºÚz>Á{eÑ‘«0 ú>ä64¹`Ÿ0]5PQ”(è]‡'è¹kX=é½Áàîz>ÁKñ;i¨ªè"úÉ(QÜVR^¦- ûO¦/y%º²ãgÚrÔÒ‰¶ö×§Ý7] J¨Ã˃­ØN›U‰b;óV)tÉOZ! cö¡Óû0ãT|«ž=_¢­Í¹±Žç«§¦ý·QA*Lu{Vœ%yP4*Ýÿ0Tà»F$¼øÓ*ùïà«I56ŽˆJo¹¤ýåÞK³%ÚÖËß“sêóòص[iûö 0Œ²µ_~ºÑ‘è %|»¤­àÃa i”•óu¾ýÚËéDçàYu¶îz” ¯“çŠK%¶ËF± ¼¤i ÝjQ²´ üé¼ Xüš 4õ:6/×eÚýëÔ­¡Öƒ@œÿùÙ“4ºûýi'ê¤\Ê×Я“Ým± +x:J:”ˆ€-áÛ%©ÐFfÒ¬^hɲZSá³yC{¬œzå¸O-^€y¿‘[÷ÏšÖÄìÖCaìXhÞÒºF_=Œ&eÏX|+»DHõ^XI¢èKÉo0™Þ-ô˕ϟ?¶||D›ÕÞñÈqê~_¢UéÝMZz™ågƒ¹^ô¦[™¡]z§uzà?÷ù!—^oX™/òÇBú>¤;ô¼>qBÆÔe±9’)_‘ФމÎÁ“²f,ŽÉ¶\­5Û.†’›¨¢¥Ô±‹˜œæ5AîÞ(Þ¢–k¢5çØµ½IîµäQ%Šó´à«ëa¤|tq Ž<â_Õ(*ÝGyRyTº<éƒÏæƒ7N;b—õX:xÆ™Øw³›qéǼo)|Ê+¶"™ü¹Kj§Å-˜}ΧG]€wWøúcã¾ã|K •ñ:–(úR²ºí5Ìóµ$ûŸ»Á2~„˜ž^ºCóR¼ÊÔ%¿³ib’BeN™±é©«žÿ'èÙ[ò>©âô–ìCêÊÜ?/rèÙoß_…·)E‰b„ªpoЕKOl¾¿v‘›«ôE„ ÈÏEÕ×X€J÷Õp7 ¤L„S‰„™w³AÞÍRÅD€–¥0íHÉÿl ^.摉ªá¥Ô+5U¿.´Ã Aù&øÆ@ö>Á+ùà ‘KÁÇZ<¾n›ÿÝÉÀd È ªŸ#XfU”'­ʪ‰j4óqÂwî‘j'ß¡Ûø§·÷Ûósñ "úè4åXRRR™RÁ}"è³())))ù)h·»P ~èTÈ'òÛ—Y(Oª<–'ŽOÈ!•0ǧ5€Š"%ïÝî£HUоse€bÎKv )òpÄœrLY¦š¨¬©;™kã‚Tó³0*Âÿ(PWÕkbjjjÊk ÅvÚ1SžÞ‡ñÀŠêçÈ[f¡<)3%U*O =NQi6$öÑ<']ÞG´Yù·ÞÁ Çž«?ºxùUhó…©á^€¶õ¤¨]øM9âÐ)oïûéÿí{+jºíu‰ÙóaÌ0]ë&#Ž»íá;¦[1¯~¿Qm.Ý˾¸Û…àåÓ§|¨P?u˜ûÖIøÖâ ¤©Š÷|'̼8µßä‰Çv xC™ó¢Ë¯·[wuTæ¦}÷›Oª·àú—x‘ eu³sc¢ú9ò=‘èf¡<)‚ Xf!‚TI™…ò¤(OŠ ‚ H•€eV‘<)¦AAÊåI;PžAd#JõÚóÓ€ H%—Y(Oª<(OŠ Uƒõí2“4DôJ IDATm?æT™ rÖ^S^“«ð½ƒ÷†Ï£ÆÁ5CD©2 åI™)AyR”'EªºŠ7Mé»T‰›º5ãàÃû‚ÁóúôUJ}›ÞG”*p"Ê}Ñc¾”8Wa ž&FvŸ@ŽJ8GS«f}C]ƒº¸d‚(Wfƒò¤(OŠò¤HõÀTñ.Qúf(qÛššÕjÑ©cÃì¦úö%?@ξd)t7òôçj4Éyx›­N£‘Ç\#3Ç܇·ä©„Š2ßv§VfZäLÞY°|Zï¿BÏþoÐ|–CXÛÙ2Áû¿±mu¨+³{î mÁ3´ì&ÈÄg×íÛCà5ظLaȃe•÷ô†ÛªÉûü©!¹wùíÔ±.ƒýD¿?à5ã>øm¤'u5höGÓ¼ÏÚ|!UTùÚo¼uo½]WÇYó:ŽX1¶>Oð‡F÷o*)a =6˜=Ь˜õ£ŸO–¶Ì <;”L8\ÈÉ⨪Hߣ®Ìù3òj—nêÉšÉ;ò·.öìØ½-^HµÃVâ.©Éä«o‹–J~¢X,§K \ÃdÄú~ô'ºd©„«6òÐÜ1T èê‚e‚ J¼€DyRA*—^žÕÀ©rPž´”'Eßìåe¯ü±õò©b°ÌByRAA°Ì*F°bßiÃ(\=ùôœpzþBÑ/7ÖO¼F3AæÖ iå±åêΜØ4hÍÃ_os¾yó¯PA~Pž´ŒÏ›–' JŒRä±S‹Ê˜³²¥¬i™‘Æ·ÇâÖOI¾,鯭ßëÚ©)m:wæ×U€ÍŸÈžNm‡ö«– @|# Sÿ{J¥×%h¯"FY(·]dK¼*µE¹5=\ é' FëkP”é(ê’<;MV× ©do»š°0…”\æÂÊ[±–R•娠£wÏ:YTÙï5ˆ¿Ú/¾¯ }sóüò{Ïm?ù*>= R9eÊ“2SRµò¤†Õ¬ Þ€qdÈVðê‹.D )rËt3V“òcÑ5HY‹Â„1–QS:ô0¤ÇbÔ´ÌOŽõmbÒ¥÷¹“æ@ØÄ=]C8øîüoûƒÔÂ…)¤­?0¶î=v6X9”Où6=ø”ø¤÷Y²2вœN¬ã<ÑÜãê CbI¼ÒÓ«@NVªÀñRä\oSÉÿ2’ž<Ï(ºï65T×¼¸Úg­½ií[R_¸õ]ÎۦŖÎçø„I»ˆÛêx|‚7ýø×¿ZÍUÞŠ±”ЬÌWwŠìoåb:o¸ººJ¾úçèèX2¹. ÍÞ¾hÑмPjÞüæ~ó‘+~™Ë‘Y­àß¾MÏ$¾^êÒô¥Ò2$Jø×HƒŸÑD¤’ʬbPž ÊåI%c¸N~æÚGvð/míÑ…OðÆ.Od5)9Kƒ”±(Lèc|QS–= ÖXç)ÚÝfæSõ—\™mt«[Oz hÚªn«Ÿ±¦ÌΡ<ʵÊÒ‰’ç1¯ìw\®Ù¶Þ|ï<…×K╞^r²Œ±àîz>ÁKñ;i¨ 5õ^q-3Ñ7xIkÉ1k½èM“ [͸MNpõV7ë}eÝM!u3älv3Im¤ÚhyóM±_ÄÊ[1–R•i¯ë[bÞ ¿x'Nœ8ѪU+++«³gÏÒJQõ–m»ÞÜ×öÀëÂømó…äË@—æLyç`Úæ\}.@ƒÆ5›5nШ.A°¯ä¼€ãVô6J)€õ›æd\{þ3ÃQL@‡è¤Û'çÓ ]Ý}ý¿Í’&§YÃÂßâ3‚ •Yf¡<)*’'#s‹Àþ !d>+øÖúð¦øÙ[æ¼¾9Kƒ”¾(,èc)5U0eÖX.5Ìl$F¬Ì"q¦Ã¢[é) ö"kÊR9”MùVY:QòÒç:¶Æ;zLã÷Èë_=Ž¢ëŠ!ñ*+½2›c•ÚPCjê6Çg+ýDézÑ›ÄÙ·2›j<»ŸRêpø„m=C­Œ|€AÇ»ìáP¾{)åY¥¿®Wú[¹×¬­êêêêêêêê움êµ½H/hhÓh@ç›æ‘9ŒVyçà•Ø ¨˜nü£ÄÇ©yùìOØ©.ìk9uÇ’Mr|ÿ]´:!oê¸èn5Ëæ¿óåÌ]¦ý/eûÝìzí;Ï™ø÷ã:Ý‹kÐâÎ+¼Ÿ… H%•Y(O*J—'€§ †Q3:¬àý'D]<3¿cW{Ow#éy)3Kƒ”™^ô±ˆšJSk¬æ-ÌM,ÍM,ÍMLë³2ÿ·ÿ­m ÝüOô:¤À3kÊì'45¹‘T­[¾U–NTbìÇqÞNîF,‡ôyAÁ—fÃÇ[Xv4„1a;=òè iÿ ‰W©ôÊ““eŒ†m;ôñÜ7&?VÖ×=&oYËùàSI“õÊËÇ­Ì\7[Ú«ŽèåAóì»»-huë]!À\ßz73Êf%½”r¬ÂMÖ·±wÒ‹U@‰!7ån 5ÕFCvzϸÓw70ýk¯^¿~ýúõжZºm’®„›œì#Ùm9O¯;ká3‚ åI‘Ÿ†Q—bzš?Èú‘^¦èµŠ»;€o4¯ÆÖlyu³žýˆè²5•Ïa­Ë“J¾iØ¥aÃ$P÷Û9³gó×ÿÍî4õä´ ÍÛ:f£7Wz XsMøêuþiÆy†“Ðþ¹m®9O´øÕj;äö±eô[U{œ›Å¨Gé ¾{lœa\wóc+M(õ_¯ žUû Ó˱‘y¡~]f1ë·àÜÆÑ°ÍÙtä¹$¼A¤Ü¼}ú¨oW/,³PžTÓHÒ«øën©›Ýœÿ~P]‘h´òqÕ?~;ý‡ZåÅ»¦Œ\^]á9E {ü²6•Ïa™¬”)³*Lþ¤m׎1W¦kΗv­<¤´óÜéß-÷hŠ‚`™… ÈÅw)³A~‚2 åIMPžô‡åIeahhˆW(‚ ¿C™(OZæçM”'EyR”'ýäIA~PžåIQžåI«VžAä÷.³ŠAyR”'EyR”'­dyRe(H {.!b£ÿ?RYM¹ k¯e*ÿ˜–ïÐmüÓÛû‡íy*ÿ¼hÕ¦ý®‚aRçåËé_˜zøÂ¸s[û¯y¨œÈó5äÐÛBùýùuË,”'¥ƒò¤(O (OZò¤J¢gؼ÷øà› fäî:ó:ùJ¯…·Yã|þ3û6–ѧHÁ’Fm§î¢÷gžçN7X“Ãî/ïX^P©;À©ƒ™¹)G,Vª?À~ŸÁ»'·–:_ÚA_³ÌByRy <) ”'EyÒrÈ“*.d¨½>²ÔsÔœ/±—Ye)ã¼Zó¨ð1ì2‹JÓ×ú2rÙ5Ȥ÷gž—Ý_Þ±|ÿPñ:1>©vm eúç¿8@ÌåÊòƒ ȯ : ? (Oʼ#÷³Ê“ʤ %tÍçþÓZ<\ZEWõÐ@$è½&*bznbptÇPðj?ý<@ÁÛÔœuuŽòH=܃cšØ»mŽ\W§´ÿáþ%ç¯ñ€~öÃŽ]ÝGï5¬»ìcyýøKJ&‡.3®œóÍþ—÷{¼|Ÿ›¼órÍ>V…²û#ò«wíüÏ*èPÉ <©|~(yÒ´év寱ªf•­uµ©– rfº a¿lMåsXéV²8áÛíOpáàUNÁ¹ÞÝÔwTçh€†Éˆõ]¼YQÛ<èç!ÿ•ûøóìZê¼1”¯À>%ìb„ªÍí<t2‚!QQÿ–žWÙÇrú‹¾Üè1ùC^-ÇÿêÜoöçªA³f“©W»NSPW‘×väWïf!RÉ”ãn‚ È/†än÷g ]°bªñ”›žó”Zuf>Nú˜.A)7(OZ6*.O Àñ 9"¤æø´P1R¤ä½Û}i  Úw® PìÂyÉ.!EŽ˜SŽ)+«\*GZAA2”Y(OÊLIÕÊ“ö8ñ aòŸ|ÂÁÐ;Ê]²„+邜Œyx­Ù|í3)¤âÔ¤¤5A©@™U Ê“T¹<©_WñÕ´Rå„õ“3?Øæypäö]ei[£X?‡-jZLÁë5Ÿg94[‹ Pî’.\ÉädÌ ÀcLÇN5y|Â:_JZA¾™ÑàMaÅœˆR½ö¼(“Å‘‘`¦A*/³Pž”NÉ“~ÍÒ5L Ô[ ©Nƒa’NovY[R¼2DMé„x:º \¼ò}©Wò…FY‚œ æÅÖDïÈ€m U Û~Ì©2–M)¾ð½ƒ÷†Ï£Æ·]QuÕ0÷‚Te™…ò¤ò¨tyR_û·î­·ëê8k^GÃ+ÆÖçñ žãÐèþM%%l¡Çó¢Ò)jJ« ü|z´´ídN€¤°”'wI‡%È©  iM©^ÄY]-yóê¡Óð} J¸Nå¾è1ÿ6ˆ>uüäêÁÐ,‹Wa ž&FvŸ/W)8šZ5èêÔÅ#R¥  ‚ •]•OÐ!3zí+ëIæÙöc.]ÝÖòoí:B"%U3êÊ®Aû¨ÐáM»ü¹ùÌRˆÐñÐ@ì84üRˆWnÂÚÛ'uÒ¥Ú›:¢Y—?7GþoœìDŸœÿÚ¿i¢éäpnD ¸u™p$r.‚ •Ê“ƒò¤ò£¢V×Ü.0b™CMQ*§ø]zÕ:Æžå h .zƒ›ÃÍ/ùéOý³2”â Þœsôÿ˸•&g¼€&Aªƒ‹)€ì|‚Wò‡5‚T;â„¥@ ˆkØ÷J\,¦¯¿Èxäªíl°oH·¡«Õ¸* QŠï'H¢+ÿ•ûxö»Šª<4w ºú†ìÂT#R¥ü”o Vì»3m…«W.zÎ8=á·%Z£™ së…4ÌRæ"©œoÞtŸ~9ªŠRƒœ¼ñ´“~üÂgV;WHG÷ؘΫ’ZE] Æ…C¤)UGyRåAyR©*t:DE)Yc§W‡?jòzW°Æ€~Û.c… Hò¤(O €ò¤‚ RUeV1(O €ò¤(OŠ ‚ UPf¡<)”'EA¤Ê,”'•Ê“"‚ R>PžAJ¦œß4Dù…@yÒbPžAA*ˬ"yRL‚ ‚ •ËO©/X±À¥SHÏùÜ_q¬Ÿ,xf>NåUuâêΜŒïæ#‚üüeÊ“–áy³Âò¤A‰ñBŠk½èMkß’ú*À­ïr&Ø4-¶t>Ç'LÚEÜV˜vÿœ{}ž-?èÐ" å­K©ÈÊ|u§ÈþV.¦óÖáƒ,‚ ¿}™U Ê“T¹<©d ×iÃÏ\ûÈþÅ£­=ºð ÞØå‰¬&%Çbi2… },/jʲ¢‡ÁëÈ"‚eV(OJ§ŠäIÀÈÜ"°B™Ï ¾µ>¼)~V’9¯oŽÅÒ ¥/ úX DML™5–K 3ÉŸQ+óŸHœé°è@zŠ‚½Èš²TeS¾U–N”<‡ôyŽ­ñŽ“Çø=òúW£èºbH¼ÊJ¯Ì&ÆXÅÄF¥6Ô€ºÍñÙJ?Qº^ô&qö­Ì¦Ï®@Á§”ú>a[ÏP+#f_\ÔÞ°Ï ³±gB»(oÅ^JyVé¯ëÕ‡þVî5k«ãƒ,‚ Xf¡<©\*]žž&ÐëϬ)³sœÐÔäFRµnùVY:Q‰±Çy;y¸±Òç_š glaÙÑrÄ„íôÈ£ƒ¤ý3$^¥Ò+ON–1¶íÐÇsߘüXJÆ&oYËùàSI“õÊËÇ­Ì\7[Ú«ŽèåAóì»»-huë]!¤¥ÃŸ.–ýù>þµòVÒK)Ç*Üdýq{ç!Í“ðAAß”'E~F]Jˆéiþ ëGz™¢×*îî¾Ñ¼j[³åÕÍzö#¢ËÖT>‡e´¢Ë“>ü˜ˆ[Aß^m#.f´,…%Ÿ‰¡H Lidifέ´¬ÆH4Zù¤M·+U5«¼h­«MµÔXó0Ó}c™›Êç°Ò­ä;¼ÑÖyñ8^r€Ù@ª ¼›… H%ƒw³¤ÌJºÓÔØBS[''+‚|xµ~JxÁŠ}w¦ £påÓs~Àéù E¿ÜX?YðÍ|™[/¤•Ç–«;sbÓ 5ö­/¼‰×#‚;ùmáä忨ò&Ý~±9ïMÂHë~ "C߈ÿVšuh¨ý4½¸çA”¹ÉÍuûù÷§¨¸„5€¶ðÑX~‹ÕFÎÿÝÙH|¸ßͬH:ëû08†<ÑŽ÷UNëy*ºaWUÏ›6“`ù²ØP‰£;r#‘IPb¼KcµWÂÜzÌ-KÎÊ6ÖvŠô%x•Ÿa|{,nð—·ë½9Ó¥¿€[¿×ÕÝ&þËïˆE S 7"Oº{å7hx.äØ÷¿$ÁX˜º…žÜÝúÛéu ÚägwÔ¿ïÂñßö®çtÈ;yàú—åÙ¢ª…'Íù®çJNŒ>Öþ¤Ûñw"ˆ¢. G™v š¬&®Û½¤ûÚníöFæh7?þì\½Ïwºš{P"e­XK)ÏJ ÐÂgI€åêA}Æo¬¬ŸŽþ2Ó²‘rS#èìoµÇ”™/R¥H~:åIQžåIQž´ŠåIóßöë,»ê‚²ÇrKO½%guú9²•éÏDmä ®ŽŽôqÙ û¯i§tV÷/ŸòÄ\Y}”›»Ì>œ&zKÎjÔQ­`lÊøQë½¼FÐY¢¯SEãÕ&5‚¶”Ç‚|/PžåIQžT‘C”'­¸<é¦Aî‡.GÍÒߘ«Ô±<4ÿÞ›ñKVÆ5Æ1«ÄÕžVcÁ^®ŠÜ>ê~gµM4tçVUg3Ÿªëé.<«ëãË>––_@ÆL—La –eb®¬>òúsùãkÕñì§ øåÁŒÍ'Ê—ó²úɘþe¦KŽxW¥B~@gÒ@iñeü Hõ”Y(OJåIQžPž´2äI£?Ô‰œÞ‹Û®Ó­wùÊË˪ZOj#Ar´j-Uú1£€îýoÎfÏ/ó¼E… ¯OÞz—œù_fºä1ŽÅvÀº¯._÷'iÔS¥Ë‹'{Ù„AguÛÞbùQ&æÊê#¯¿H¸ñËLêQGU¹}*’ó²úP©t–ÐÛ#*¬P<\‡à¬Õ«¾5‚üeÊ“ÊåIY <)Ê“–UžT(—å'õsÓô eŽå­š´ów«×çÒhj‰ eô/ó#£j:@fdî‡ú±¼xtæ/ý2ÓåëézêµUÊseõ‘×_kîi.¡……À‘Û§"9/«€Â/3]¾Æ;³îü•ÕnwSÝ%g9œæ:ÖuÊêA¾(è€ü4 <)óŽÜÏ!O~aþ³ýWLîαìì•7!ÿy,ï­°¯gŸ©½^¦:x35ϕ븥ä˜ÑI¿¿NÇ̬˜Ïœ´ÛâNrúhL9™»º—ôqéMÍ>!*p,<Êq-=.¤Ý¬¢Ç 9ýláþ‘*}·äoï]˜/»¼˜+«¼þÚ ŽdÍ@Ì;“³ÄE^l ^OÅò/õœÃ9IIâq¹cSÆÖŸÃócnkŒ\µÐE,*¿É½¥[2fU&½À3ßÜÎ_fºhN;›¿Æ¥° *ŽWOUŽ…¯v$Ç2 @ËR˜v¤ä¶/wG1ÓHÒ˰è8u³›óߪ+V>®áÇo§ÿP«¼x×ô€‘Ë«ë%ó)JØƒà—µ©|ËdÅ*³ð›†È~Ó©–2 ߺÈ~À'x˜™¬àñVü‘äÞßzüÇ[åÙ#—WcN”D娖¾³‚ ÈïÊ“þv(+ÈYiMÁWçî1‘|ž«ïG‘7Èæz\0ô|«üÚ[n]g!E ¿ ÿêVNQq -|44Œœ/|&o$Öù¾?ØÄ¡ƒ‚ÏSÑU7´†MÀ ›’ϲ«ÄQ¤n™}p|BŽ©„9>­T „)©v÷Q¤*hß¹2@± ç%»„y8bN9¦ÜoÚP¥–KÃØÉ\¯A©P™…ò¤Ì”T­“B*NMJZAA ”YÅ <)@•Ë“úu_M+}ËnýäŒÇ¶yœ¹}WYÚÖ(þÖ5[Ô´˜‚×k>Ï8rh¶@¡Ü%]¸’%Èɘ€Ç˜Žjòø„u¾”´&‚ ‚ •Pf¡<)*’'ýš¥#j˜¨·R œÃ$7œÞì²&¶¤xeˆšÒ ñtt¸xåûR-®"ä ²9Ì‹!­‰ ‚ HË,”'•G¥Ë“úÚo¼uo½]WÇYó:ŽX1¶>Oð‡F÷o*)a =6˜•nLQSZýhàçÓ£¥m's$…¥<¹K:,ANÙ`Hk"‚ R^P7 AJ¦Št³A~"P7«”'EA¤ À2 åIA©¸?cЂû\ºòÒs~€rºYÍ|œô1]‚ R¡2 åI•åIA)C™…ò¤Ì” <)Ê“"‚ He•YÅ <)Ê“¢<)‚ ‚TA™…ò¤tPžAAJ(³PžT(OŠ ‚ Hù@yRA*”'EAyÒbPžAA*Ë,”'EA¤J@yÒ_e5H¶±~²à+"ñÊÕ9ßÍGùùË,”'-Ãóf…åIƒã…yìÔ¢2æ¬lc)«AZfd„ñí±¸5ÂS’/ÇKºqë÷ºvjJ›ÎùuU`ó'²§S[ç¡ýªåßÈÂÔÿžRéu Ú+¤È€QÊmÙ¯JmQnMCú ƒÑÇúe:Šº$ÏŽÕDK•ÕÄuB*ÙÛ®¦ôz)k iâ¹ÉZr|úM>¼"‚ <é÷–'5l¬fMðŒ#CF°‚P_t!RH‘[¦›±š”‹®AÊZ&Œ±ˆšÒ¡‡!=£& e~r|¬o“.½Ï 4Â&îéÂÁwçÛ¤.L!m5 ðø±uï±³ÁÊ¡|Ê·ÙèÁ§Ä'½Ï’í–åtbŸà‰æWWK╞^r²RUŒŸ"çz›Jþ—‘ôäyFÑWH§†êšWû¬õ¢7±Æ¢7­}Kê«·¾Ë™`;дØÒùŸ0iq›½^J[™.8=Ô2·Xó æÖ1ÒÀXA°Ì¢ò¤U.O*ÃuÚð3×>²ƒñhk.|‚7vy"«IɱX¤ŒEaB 䋚²¬èa°Æ:O‘’› Â¬Ì;7¦ê/¹2ÛèV·žôдUÝV?cM™Cy”k•¥%Ï!c^Ùî¸\³m½ùÞ!y ¯+–Ä+=½ ädcÀÝõ|‚—âwÒP +jê½âZ0f¢oð’Ö’ ®T… IDATcÖzÑ›XcÑ›&¶:›q!šœàê­nÖûʺ›BêfÈÙìfšÌõRÚ*i^÷í§^–d næ”9SÌðA,³JAyR:U$O FæýBÈ|Vð­õáMñ³·Ìy}s,–)}QXÐÇR jª`ʬ±\j˜ÙHþŒX™ÿ DâL‡E·ÒSìEÖ”¥r(›ò­²t¢ä9¤Ï tlwô˜<Æï‘׿zE×CâUVze61Æ*&6*µ¡ôm!ê6Çg+ýDézI5ɶgßÊlªñì:|J©oÀá¶õ µ2ò¥ÖK9+©±„…ø‹ –Y(O*ŸJ—'€§ †Q3:¬àý'D]<3¿cW{Ow#éy)3Kƒ”™^ô±ˆšJSk¬æ-ÌM,ÍM,ÍMLë³2ÿ·ÿ­m ÝüOô:¤À3kÊì'45¹‘T­[¾U–NTbìÇqÞNîF,‡ôyAÁ—fÃÇ[Xv4„1a;=òè iÿ ‰W©ôÊ““eŒ†m;ôñÜ7&?–’1…É[EÖr¾ Bo*‹Ùd½òòq+3—ÅÍ–öª#zyÐ|çûîn ZÝzW(c½”±âhÖåµh¦V§ió†Z«¥E4qèpW~ëy*ºaWECkØL‚åËbs@%ŽJìLð¾–ÍÇ'äðX7óÃS<·ÞaFT[‚W°"§×à½+оs¥{‡Ã \8/Ùµl¢àiäÞ½Ë:å~Ó†ž¿ðÛË¥aìdž¼õ^#H%¼¤Ã$ òû–YyÒ‡ÒC2ÈQz<˜Ü€w9€kè~wx»‡Ò#¨ûÛ‰V S•z7/;ók–þ ãÖK]N¹Ï=ž Ý|ý[;3¥ƒcAƒ1×¼¹ÛÕt u%œ3n¤2¸óêc¯YÑxl=4sˆÕÇaN¶sA½ÁágW뼹Э­o>Ó¡¤sNÓ·»^rŸsÛÚ厥}Ï ™¾êÖÂR@H‘ÙǼíG—' .£‰K·Ò²¹ye(ÀPO€NoS2tÂÛñ‹nfD6ÝØõâ—Ú!‰QæjOºõN/P©›~¨^g@F¶â-ªsŒgïh»fеæò¸åFÜÿ§­ÅÚâ —Z1­aP›p>1Rò?Ö”ƒîÝq1Ö=>©ßüí:.Û»z‚]þÓë],‡çô ›?ªµä[kŒy‰ÀkÍæq#œµŒv„uÁ;“rŠ›œôù_ü` RQ,ø¶ Z?¼y‰)úþÔ3l‚ùÇõE*=áòˬb$ò¤/Ö¼%`Z#^¤Džtœ"`YÊ”'¥KåI­uŠ+°·§lˆSP£ËáIÍ?›Å7=F‘\‚Ç, $ò¤%ÿ I¿:ˆàåi˜ /yò{‘ ‡Æ£6ŽÒÜè>'¾XÓòïn'®3hÄëPrk§|aH4-KšèV«cmBJîf &x7H‰Qúñnñþ‹Ì–­™¡ßg¡xOÆUo= §–ð¦7¿ý^º<©_Wq÷´Ò×OÎè¾p›çãYËäö]ei[£X‘‰-jZLÁë5Ÿÿ=rÈz°ûâl10¦ 0³u›™ÒIÕí<‰peVÓ¡!# ½Ômð“™|âùvŠ„"Ï’y=óÓ±Sñïg‡}8Õ“àè9òÆË©Î‡'óàúþì <é÷–'ýš¥#j˜¨·R œÃ$z`ovY[R¼2DMé„x:º \¼ò=É–%’/4ÊäT0/†´&‚T/F†…ÿï}êÇ„$²“}çªFœs:)³"^]=X¦?$œ ý].–Â+O¦TãøÑ{Ö”)Õw#ö~÷$TÉ Õ³ÜiοýÖñ×)³PžT•.Oêk¿ñÖ½õv]gÍëh8bÅØú<>ÁsÝ¿©¤„-ôØ`^Tº1EMiõ£ŸO–¶Ì \Òòä.é°9dƒ!­‰ ækf¦nšíÚµ£(JCCcß¾}¶v=DŸÜ=½$â t~Þ[ž¹küá<Í(‡‡FÖ-¦üOúyT¼xÄâkª0dM€×´£EO«§"d–eÁ#½~¦§[ñIòm•ÿ‹ "ŠLË•q>'~ò ùÏÇâ¼ÓǺ—L‰ öÀRwÏ‘¾å,zÙ_îž^CÇͼõ&"–ý£à7¬’cn—ioÜŠøO¬t$T\P°°¨@þwϲ%AÞ ßšò÷+R—ýåîé5xÌ´Ÿä9’ çizþêYâÂŒGïs{“9‹o^}’uüÉ.Š‚‚Tö³6MÐááÇÄÞ}ûÍšõªª*‡Ã),,‰D®ÎN  ¢Oî ’ÃØ~žæ7ùÅ'Õа͆ ûÈ©»y׺:æïû÷»ŒBoo—ý{OYœ3k€ä§N31³~‡A~€÷¿v…oêïuô4p_1,kÿ²“w[ùÌÙ1iïý–½¦ ±¾¾mþºÈäZ¦NFÙ1qïµvî^£Ë…˜ËVžxà½hkO1ÑÓw]ØfÚl FOÝ`ô!ffÈ.ˆÇ^ºqÇ?%m¡þ^wòTÞª™îZ?çѪµýw7UËw½³“èêµ,0Ÿ¼}A›¬’ ŸÝ8s÷u›¿ÖNïZ¯zHS[r²2KËÜÉá ls“w/ÿ2pTÚ†’tAáç¿}Æ¿æþºq´Ïþü-s‡­zàZš±Æ/܇@xèÎcF?ËÓÝ»nݘ¡>[CˆÅÀá@¦»ßÉðå­|¨nÅóöôÛ¶.üãÕ~ñ]\ ©ò׎· † >R’¥Î*“ÆM}óE4tÞ†Þæz{Æy Þt õtPqlæîþáÁ/Â&fõ_÷õpé ^ݵpÃ9².§p]è`å"y²gü’3Ù;Âvq ×}Ä̶“—Nk¥ê[ºýŠ÷dÈÜq2“ oÐìxÅSÖ=½R²EçØs§Œ™^ËzÇÊ©*…鿱cáš ‰µ;m ÇÆ^U~‰KÆõñºuÿúâKlûýC«–Ž8kãÀÖµJ.Õð¹«öÍñ çlÒ¼d¸îuŽ?¨½ÙÇRzõ>–lò°b'3´BJvQðH¯ñ»À»“›>9én9xÓÍ#½Š.ö¿¸l¯¶Ê“¢<)‚T-iiÕÕÕ¹\.‡ÃQUUUWW××/Ñ Ñ.ú7)ØÝÓË}Ü>ed´›¶]T7ï;¾ãï™»ƒ(+×nnxØî½a©Âhœ ,X0|ÊÚݶMá­¼— PðNצ³ÄÙ¿aÖ¹5L޹ûoØ9Žú†Ýg†‡0½½*àåÃäÃðã]l ß2bΑñ—ë§û„‡ý{yîx°7ü¼_¡ºcÕ$5Éæìû¹æ-ž=º.ý¹ÆÅ[Bþ]3Â{ñÍÖ#†o»ö ¨‡Æƒ@hØí z‹v' ;Pí5$ÝIºÃ, r©Ï÷]¶i¢EO×bïqKwìݶ  mÐô¨WVÆz­ ;›°ÛtêŽð½ëT¦l“T6Àá¼>³Îão·ÜçWí›pÚŸXw­ºNœ¼7,Ir\š%•ÝanxؾOÇfß#¢Å¦mšvBpðtšINi<âô¨ãuÿ  i¥  t$¯ ´N˜ùcû•ìIÙI7è7§\²E ›°lçÝK݇-½Åšøóû‰ÿ†Ø2×yØò8VæË´Äùùyo¯¥sš—L‡ûåÆ^Ïð°°{|†¸ô¡Ýå,Ž[³½¤Æ’žëJ”8¡ï"™H._¼¸ tAú§lG²ð ^É_.&A*•¾}z«3¹|ù2»“©xØðMÃJŸ^š¼ýâ‹ç)y%os¨rrÓ q (H)Tòúmžåpžzé©,&z¾ûøÅgÚï[×j\ës®Tkg}ÎÉ{ŸD@zJÊë‰+—@ɧ-eÞ¥ËûZ«…]sc~W"‘ñcÙªú…oskÛ?ß¾öåû|ꔴЃÜºrûü±3ŸTûŠ45¶hjlÁ|üðòý×!{»×W¡§ëyAÍ’o漎kÀʘ ‹q®Ù—Ü=‡f3ß6{ufIDmßMÕ¹:ú©™"HÍ*úoéZ§&èÿQ”4é,µk©ó!_ÆRþígyécn\-·Zÿd ÔÕŠÚ#ñ/6ÐèЗÿD§Èû±j€ü¬—à¡¿N ²µY=l–þXéI§Dp|”&ýÎӓdNK ¾:fèúÆØ¬q²Nó8óY6_áŽ:Ô¨_®í“þºYvÀ‡Ån4ü¹gëÅ»¢È÷!ì|éñ"Îýñ“ÅÆ¦Þw¾ý`)ßÜÎvÌ•ûžê7ï çw,êu{ñ¨Mgcë¯]kàõ ã§7ÅE©æìûmíVmh>ûŽãý1ws á=ëËê_g¹Z»e©(ÕyÉAÏmCüÏáüË’ZýÕÐRj­ÇÛ<ÊP~Iøßï!åœ7¹Ïè¸ñÐH'Œs…àú×ãß°yœå£M?UnÂÉëlçqØfºñÍ,NÐëã´O*”¡Ýg¥Ï–îÐuñ6³ëGçê4dó8//õj¢5wÕ(Åê÷½sû+ͱ`Ц“!Ÿ—Ð!=Œ½œ9xœ?ÓØ²——Ož»íšc}«¹HÊø‰SÛo:…¾ ¾ª~+¼yþ˜|B&Vôh·élïGn׋Ûn ÖÞæœ>MÍúÓÌæ©úø7œ­à;µïÆÛ¹ŠÑ,ÇÉ´G–?áU ÐwžÑ*îbÄG)°º¾ñµëêâ]C¾ö€›³RÆ’Èîѯò8“?IOÊæüio³^öśǙ%KO`o?œ£Xá”NìÉÀYjGÝÆâ¦ãŽ;ÿ~%ï÷?ÄŽn›%Q¸}oš•Q„»d¥ö¥ÔŒfÁ„Wœ=m¸€²c³o³ó/z$«£gÙûß´Ú˜.;l¤½ãyÊ’-ÓdI°.ð83Y¶CŽ>Ö;0è´¢ò³’8çll2EŸ¶«!²ºM$¯Œ|>þ`jU„©ºSj²!­ZVGŠ9Kum&Dp|løÓ¼]O>WûQí*5(VÓeùó8òŸÇ ®ÙÛÝV´¼?ïŸ?—޽û똳3ìíöÔ²aUÕjòÖ¢Z6TB“z¹–òÅ®¬Yá#ÅvY¬ÛÍáPŸ4˹8ec¸ŠÁv•Ç™*OñZÍ’™WRW4K¶«† [”)ïÉyØÃ&»V´ÕýÑfÑÿ–¿­ îV÷—®ڑ3Å]˜ú›ò{b© ‡ÖzçU›uθúùÍ¿Ë,ú­ãÁÂýÕÀR êží¥÷_ð¦ý…?xãÿŽù§à=:ù"ˆÿ&íô[×ÈÍiÒ¡YZezRùËvÔAö²áLïµ®žtPsx’ÔnÏ ê†ÞoùP|¾P6Q1¶wönUµSžÇku )¶¦³2ä— YòÏšWyyzÒ±&!=œv)¤'G5ÖP¬déI=Ö<=ilË6ZJÒ“6A PÜ5®F©ºâ²ÿÉÓ“>ULO Ÿ¦'€–mí¶üòÁ~¡˜Õ¯†ò »R•:ÛU¯,5‹ oî+ªWÕ)µP”4 vÊÆiC÷|šÔ GY“Õ,º)ʤÝF®IR­~S´| °âVwÞŒŽ)V•Ù¯V“?±aÝ4­—k)¯¢BÅvFë3CÙÉYÃáhyØ”)_ÕY#Åk]æ­sW Y˜<’oÊ€ÚÓ,Þkì÷0X^ý›êþúdWÝ¥HAx¹EÏܳ )Ê4jƒÙ³zŒ ⤊?鯆•ª ?J}Öüïÿu2h+!¥“l3Î}²}ûCL§ë$«¸Ël^û…kÓŽmåÊlH·X4_I€ù;—_%ßÔ¯›ÖZrÃöì~RG)šñÂQÔ£72dG6 Ô¶ßwT&b ²÷üåÙdY¡ 00 †S1Š|š¥iÓ¡ÿì^{,¯Ø ÁD–ž” á&•ÉÒ“j­ëIô©LOšÔqÙ›½K‰Ù¢ ni³‰6²9¯Må¸ÜŸ0À=J’èeýöÃtXV¡óêÖõzÓ“ÊJU¥'t‡]²ô¤œ.Þ˜4B’ÈS¬ôëÐËóå<žë‰àµÃÊ_„OtÇ-[%Ç%Be®N–nÎåKPCu¤'½½,t/'Ò÷†°2=i\iâ•+Izÿùñò@M¨LOzäN*ýý“`Ú³ó}z²ldœäóVõdí¬©üb÷'ëv?5×ϼz½v»$+xݯåÏ_^Ö¬óÖ †¬;¤²¤¦ŸR­ÆÕ²¬Úµ¥Ë&±5,¿bqø©Mc¢6l™ÜUEͼšÖ¨mCÀ®äÇÿiÒ:³æ½QΦ «¶¡â" ̘*H¾æS£BsÅv%—ZÎ\`}ï\oØC°z¬¼·*cÀ/WjÕ/Kñz!Ú áÓœ±Õ.z]ª¸«† Lº÷©wl®¸Ë²:š°ì$Ñ•oxõìR‰Š»ºî ºÛ¹GߣۇëÿuÿZÛ‘N¥›þîn/…Oû«!¥05Cëv–4}š•ilJ–Øx™jÏÂÙÆ²ûíé{vŽç4{Ï51£õœp;ãÄX5ä¯@ @ h}Ö—‡n·øVÞÞWu7vóf—Wå§t¾åŒ?Ãæqžëª^]‚bòÛÅpÞÛs[Ç:»ìÑ[v‘÷‹Ê' N;Ú8ô{>(,æÑ!G @ @ Äšêx¦ÓsE(›Í‹Ø2cxk-…¥MMÛ¥ ªù”ûí_Cöê1lüâ{álÞ³U}´d±Z÷»<ÎÝcnC†õéÞ§g¯ÜlÔ0m‡ƒ!l޳ˇ÷ýFm]!ÏËæש·ñ6³ŽŸsMŸ×k†w>QsÓiëÑ%V0z÷ñÑ•u×̶»ä#Pª!`-;™CÚ³”:^IÖý]ªž™ð¢sKÓn,燦Kºf  ³™ r¥Õ‡_ÜŠÄ7Oê¤q!° y.@ @ ˆÿ* k}膦.ÛúšÍã<¾¿¤SžçL{“?"yMÝÕphÍ»õ1„¤7YBUG ’^%ƒ¡ƒ‹9]öÑ¢wCˆ O¯Abh"öÞŠñi1Iiv!°ÚÚê}²vL’]¶S\ŒiµwU$½J"!û௽5lìY•Ÿ–UÁ,¥%l6t˜ÕG¯Á˨Dq÷3X΋õˆ²ÜôRi3çiƒÔsnù¥Ö ‰1-»Û@ÖËÔ ä¶@ @ þÃ`"a8è¶ÀpŒ$ȺkÒ.åPͧ¼|º¢EB"¿•µE’Ãöݼ~ï…x> @kã~ãÍÜÄ=ÿødõÐÿÚ´t^?K-(Oººvã©Ùbù.£^Ë×/ž7ÐÖ )MùÇ…ûî€BBVjý¶sû˜i€¨49æáJ÷þ`jfCf-üsœ“ƒ)x¹Ñ×/]TLPôìç¯tŸ?¸‹% @Z–ê5e¡ç;a=`:}þŽöüßÛµcÇøT*À°_s7ÔÍHáHÞõi®3Ãø@ѱ_´iÍÊ!ÖÚÀ 8·tý…%5–ŒQÍ~õ \«whLï)"ä·@ @ þ»(Ƴ¾!²xVÑB§ÁÜŸÓ®êÖóŽzîé•¶fˆÛÁñçT…kÚ¹:¹Ý!iýØùûã$rZ@ @ ÿiþ¥x@ @ Ñ$лò@ @ ?(žõE¡šO‰à°\5_c™ÛØÁ€ò#¶[¹ò˜V¿¿}Kb®lhÇø¹ºúsûKkàiçú¢TäØ@ @4’ñ,š¾…uû¶«üؼsúµµig©CÇ7sÇaó"w ÑŘݽØQÁc p ˜Ì¿ÇæÝ™ÒÓÖ¦½üÓÊ‚…®ç|.œ]|÷¯ßœíû ˜pÔï /bÛ0=B«z[·]>›†ZÒ~.åɲÝî.“–ï~ehÖ“çqØï-œéÚkðà_VnÚ²¾+ õrl@ @ütÔ.‰ ÓßÅ'¥óø¹â9ïSKD•éljû­Z( IDAT2ÿIk„ÇCÏ/¨sEIyÖûxÎ;ù')G®?îè y;;Ù~.˜úôÚ‘#W|âslˆQ¥P¦ýºT›Çyz¤‹ZuU£ Gƒyœgþ§OÔÇÅ©ÿĉ#ºkË˨µèóë@Çž:ôî?ñä#6ïå_Žê•ëGbÖÚ·×ð_?`³y¾3lê½…Vït8Œ]puÉä>ºu²w¼Ïà³.³y!kûicõjXÙ }×µ×KÞ_ÞÔC¾cuÚÈ.¾¿qÁÀ.ŽŽ®«O?åÅžmFLMߺUK+]Ðt­Zµlcݲµ…±:þ­¡º”2Y*”§j·¶nÙ¦Óȳ·ÜüŸâÒ¼Ù𓥜€ä‹¶èÖsßr"î ÓÃUJ¹ÛàF£Oþó·É¡íõ |p{׆u›ßÈ^?Ikã~—ǹ{ÌmȰ>Ýûôì5b˜“z=Ò´&«¨bàr1’Í}¸yɰ¾ÃGOÛ4·]Ǩ25~lÇF @ ¢é4âi'¢(tc»)+£üÏc¿­½Sô­ìU…DE^bZ©ˆ¢m¥âôÌ"iå1Ò’ä\1XšéQà#Àgo±´ÙRK!›YÇϹ¦Ïë5Ã;ŸøDŠ–©õ9c]íLtq^~¹ôz¹šÓÃD²ÝYáO„p^åX¤xoyy+Gå»qGrØ<Î öÖGõì~*­:œ¥×qªÛôÅ3GôPHªÅ‹ô°è0æ¾{`Ð ‡Íã°óBÎïë§‹pƒ–wqb  ˆÃæqØÏöáÆF'ò¤ ih²(ú=7žòI}Ïæqؼ„`¿Ñù{,8œ" 2®LÓuÚOÿóZ‡Íã„„­ ¬qvè5WªRê`‡ õž[_{ÃÅù_½IÛãl€™×fh;®ËžtøÝ?l‡Í‹ ~{Æ­}upCspîÌ»ÍÏD°yviø¥}}µñ¯fÆRŸ¬º•—Aä?7ãLé|ß2›ûúÊgù.á‡u#ÓÄÎåϵSww9IBï¸òΫ Qƒú® 峻׋SݽÇwÙÇÝfêá—»çøßr-2›fÔ¹‡=qkï±:7~½­Û.ŸÁüˆñ,åÊ“e!»Ý]®‹ãb¿jÐWî¢_GoÔ®ŸÀEhÇn,D¶Ï–PM'„­þNu¤˜üvþöáïl:ÿº,Ý0½kôfû™·Ò¤€@|O3=ÙR,HH‚$_ÜÔwè8Ù² @ ˆŸ Ù|ï]ñ¸×çMYCÁp’Äk¯Ïâr¢£C‹ß†>8²ßÅ÷å©Þ¸nå÷ååYïã9e5ƒÀKKHˆ)S/³øÂ&-«´ž—¶áF£O°7êoê¸#ÛahP€âLûu±>c ¡ØsÂP÷¨Êù)ÅhÂ!Ÿs®Äó‹ž—Â’s4C$¿×¥¨µè3¼µ8+Ÿëµ›¾fÕT–Ï—íáùê õ «‚òq£n Öº9gè<ö“ŇfÍ÷+%0V§­·½æ‹î¬=pï × ÿìÕë{§,q{&SŠ©é·2mf¥Kš®U«–åB–feäˆoi Õ¥”ÉR¡e @ùó†$?;&m hPÏÒ4ïØ¾-¤ÜŒ÷iå•H–¹M{CÏX_ Ôï5b@³PŸ\Uá##Lž]Da´Ýâ{fTÈ<Ç-1²µ\|öK›-µJÙÌ:~Î5}^¯ÞùŸÎC)Z¦ÖCæŒuµ3ÑÅyùåRÐëåjN¯\ð•þôAàePŽEŠ×Øñ–—·ªáâŽxâºyæé½ŽwïÞ¿èãë™(k/ËyóþÙ”ëý]·E 4àqÄþ'®x<²^e¢JC€¾ûŸóhÖ™¢³µj%ÓiëÑ%V0z÷ñÑ•u×̶»ä#¨(LL*×)ƒ¸8%)9®â_²†ªRJe‘J• 7' TA¾ ¶"ÏoÕ´‘WŽ.¼êºM¶Ýxv¾ï¼¾~E0UJ©Û¨pQ©r5T4™îä±ù‘O¿QÛ_W@Èór§9Çuêk—Š iN›öÏaÜté¿%L ¥>fèÔ?¿wUy[©´” å#xÊO)6õµ+õ©ß­ .ÀËüV©ç&N´º±M¥÷Ö;RêîÊú\´ÎàÓ¨¥!½Ö{G……©q9åÃዟ0=3àEç–¦ÝX0Î+L—tÍ@g3- xâ; iÉ3d@AHë c‰E"nA¶(=V_$PcjRÕ5© ¦DÈ—¸|n!]ÞÂŽ¥×¼Žó,Ëç–iëékêèÓj4],‰„Ü’ÂÒ¢B¦¦–:K³ ¥XšÚ4:ý§l‘R~™¨²(êZtjÃEJÄ|ž„¤Ò˜,*þÙ.!.É|ÿ.%‡«Õ¥_‡fLJSìJH¹1Á!qY|ã¿ö6×ül­¾€iżr‰ü—œÆúTB â»AJJ1Ly<‹ÖjÂjwãÌý¿G•WmãfD¿ûPVÇÁ¼ '¦˜„÷1!o…]C=– lvóâÇ´"Ðjmo@ M—­™] (H/ƒ(ö²gøìµ§ÿrì²!¼„Àp5 ¦–šÂ•š¢ï4eŠ+vØ;â£|¢$ÉŽŠ.„¡S\Œ¯^ͪ}Ñìw0þ´ÅþácÍãEÀrÜ–x±ƒ² ®8‹¬C㯮°½*»ßT³›u®Ì_}£ë¸=)‚¤WÉ0ÄÁÅœ‘ F‹Þý !.<½B¥†2B–9ÿ’à|Ì;¼œeô¤=‹€Š¤WIä0ƒC¿Ž[û–_×RȺ®EqãW³FÃ&YU¥ê“U§ò•³G¯@SŸEnµáÉßEn^~°'iÚê%eû:¯ /h€¡”u¥2Í‘ªPCi“‰¡‰0¨×ðVŒ×JÒc5²BQö‡<Ö¡»!5Lõ‚¬Ú|ç.Z¿ÕUJ…ò*¨¿] §>±pJƒ¼·a#¥zWý.Jˆ+ÄL-5¸•Q(ºÝï'‚§Ô:²àÚ̶ëÞò•‡/~ÅÝ̘=a±³ÞsÿÜtÀ› 6H=ç¸_*z~ ñN*£YP™ž IP½8K"•”åeáñá&†æ *' ³ ˜Bb¸lÐPH‚EH5õL¡0+'.Œ°u¬Šj x\‰°Â¦X"U¤‘@"òdAL Mƒf4*#%>†®Î¬Šj5ª”–Ž.ŽS¾ÓJÅei¯}}üËÅTm+‡!ãÆ8ZhÓê ‘DEAÔῼ’Ó26ÕfàüŒôB)h;/];¾•#ÅbœªÆ¤à„¤,þÖ¶½ÏK@oÀŸt‹Ù¿+ ÀrҦŽS÷)‰¿sâÜ©F3;=†7¥IyzÈ€R#zJ™„Š%Á„D*â¼óõô Êd8,Ü8ÝV[­†LR,ÌyzË÷yL&WŠ©µí1xÌà®æ,:¥:'*Ɉ ô›U&ª–y'çÑcû·1¤ËÍNHùéÁç/Fps³ %`4tõêA-4)(¤…@ „ìJ $Q#¼¨(=Y0È+"Ê „9qá7/ìla[¢øÃ¿ãþŽÂñAî-æ¼—ää.^Q^PQùäÄXgÏè2 ëÚ Ë´é{?,±Ó§$/öé‘i.Ê"ëÆ€¶]Ç/º¸×Ù‚ -ÉxëUXu7OÑë8ÕmúDÌðµ_äÝÊÕ¼H‹g†Ìr rr0e/7úâú¥+‚йAË»¸/Øw  ÈZ—@ ¹Ù±!‰¼­*¨SE¿çºíËÜzÛÒ@”¶wÁŽÃ)ȸ2M7Èù¯M×rúYjAyBÐÕ5βŪ5¬šÂRï¹õ½·ÀÖ-ðÕ›³÷–v]œym†ö#ûù+¿;ßÅ’ -K õš²ÐóCÕÝ•*\”«¡bäd\®û¬×òõçSÚR$¥)‘þ^õPid…ÎÉ_MÃ'í?ȵÓÅ%±©,€L¢¾—Íÿ.ZßÓKJ¼é,N¤6!‘¾º 8¥´BT&šê†If«Ó(z…Ù@„5oi_&°éÆ44­àóh4Z3c³ò²âšÂ«þ ù|!ðÍZÚä åjLV­RžgO‹Dµõø}¾{U©ò² -zFÂa‡<®¦jö 6ÌìÀ™~Ûw?ÌãÑý1Ð/M ½ç•\$ª–e_·¹#ŒÓo¿ú:£¤‚`èµì:pÌ/=¬4pAêï«aÉ9\ @ÕnÑyÀ¯cœ­5h¤0óáÞí¾¹ Ý{þ¶ÑfÙww¹ºëå³akV jÁ¨'ÌTýЦ©ëïKô‰Œ{;w–F¾HnÑZRyäï Àl솥N†âÌ0v ˜èm¢®^fH©FsCu¦‡^»õâ}JVŸ`4ï;géøVÔ¢ØÇ7ï‡ÄäðHšŽU—ÿÙ»¥&BJùùQ÷®ß{_ Œ®iÒå×ß'vOfËÃŽ­ “¸†Y§¿ŽÐZ‹Ž“¢Ò7}bM\˜v»¦ÐßíªOæå‰ï¾—"ÅLþç¾h¤µ6«j2?íá®íþy5ì@RB!˜U‘rwçžG…xˉë÷9hr#Žy\=¿åmÆŸ«G·T“/²" )?7•g9|ÉäÖzxÞ³;}ïŽÍ^ø÷Ô¶Ú² ¦fÞï÷•}K£Ïn8ñN $IJ tFF ¢rBH’$&Kžê ÛYä? ¦fhÛÒ@ýÓþÑÇ”älzçù×„ÙÆmrnbZ.Ó³q^²zRûW«:.üˆžòB ˆê8Re&x‚ )’8qik×¾®ÊŠQüê¾9“Æ<BŠaÆÒÎ Ôoûôje–œ=|à@K†˜,/!I(TJû~™©Ýcx^Vz«¶…Yß/ †1Ô™Iq1ÍLZÔ*å}ÞkÚŒ™ŠWm©*elfY_³¥’¼àƒ[nd€¾ËŠ¿†°¢ŽnºœB¸®\ý?FÄá->é$ÍzôÒßúš2H¡€di¨aR‘$$|nyEé?Þ}3ÀxÄš?ûkÄŸ^òƒT£Çâ ãÌËBn¹“ ê]Ý×OmYòpû®€|0ùeí ©’ü =[ogáЕ«†˜0êY>FJJßùË+ Ì~õXÚ×€"-e_CPÚÌò˜Î¸½ùX­µyEB†´õ´nÌ›'ß Õ»¹¯Ÿj«ÆW­Oó¤3U[Ò¤ÀÊ^Úr#š^±|  ¥èå‘7RÓ1k—÷Ó̼¹}p)´³fIo )%q5pc[zhËí Pë²pÃô¶LJ bI“J€"‰;³þä)£E;ý¬÷ÙRºÍè¥sœL5ð:fFR‚$*â½þ>Î2n˜jͪù#%eÉÇŽ=L—P¨ •€V·ß–M²×¥Sêèß²øÇŽ>Í&™ÝVNëªSãás‚(wnÉwb£¡«WýÏD å^C Þ„ºMþ“ *²€¬È‹ÍGvøwàÇyž‰“ÿý:Ü÷ò.dhªòga@’ )/”  •†A…€ä 0 kèd™'ÒfÊe…Fr‹¦>@’¤H$‰Ä$†a,MíZ¹®H’äqK ‚ 0 •$ÈOKÉ’|U$I’H$Š¥êMþ¸Aïß&±7_IzrþE34…ã‘óÓD±1Y$£‹£™`2IIYÔ©Íž±bŠ©ãоVô @ŠâšÏQµ[ÙêAf‘ ˆ+!p¦ž@>ð‹ù‚À%¼‚r =&Þ õmBâíÇ 2ÜéŸwãâÉŠxN¿ùs–]Øt&æò‰ ÚÙBˑìÕ0åaBœJ¥‚ﳄYáþ÷)`éÔÏcéátË1ë6u{´ó[RhÖéŠáÍj´®ek=È(ª(.—H%eo`œJe¤|ñ«0/9[ 5u !K¢H’’@’ €a)ˆ¿~æaºT«û_c­¨ÅQÞ{.EžÛ\:}ãü®`ŽÒ"öÕžoJi÷ëŠÅ}LÔ)µl®h(’$¥$úu@ ÅË>2@ ˆù³0g´°ÍMˆ4ÐЗæ¥†4‘ùœ>ºDyIç>riºyÅYz˜H’ÒÌ(§«™·Æ´ttó²Ò5uôE¢ ÇÅâœBÁÃ0Y:z¢ :CícVº¶ŽÞ§¥H’zÍí·ýu @1™ÇotÏÀU•3qIqzZ–LÆ{s¶Ò6N]ÈgšØ¹ü¹vŠcâîNã/'IèWÞy5!jPßu¡|`v÷zqª»÷ø.û8B ÛL=ürc÷ÿã[®EfÓŒ:÷°'ní=Vù:y„ô¶n»|?vð#Þ+Wž, Ùíîr]û5ƒY¸ÁŸGGе˜ZéºC<ƒn°6ZMðË«wf(åf–Rq^) L áÐPïý¡ìÐPýè¨^´BH¥êúÆšFæü¶Ý‹ó²ñ”h­Ü$:·ˆ"Ji ‘¦^YóV„UGÝf&fº€áUË{44µ44µx¼òò’‚À¨ N¡bF’$!•H„B'5utŒÍ-*£m(ÕÜÄ\"KÄâF¶´îëT¶|Z\ÚÐbª/±•³ÈÌÞ ÚÍÝâfKIé'ªJ •ú4¸i ­ó`•­“6ОõšH¥&µ#ê)"U¹ü £¹¾Û÷†”V_whD â¿Aí5Ô\NtthñÛÐçGö»ø¾<Â×í@¢üŽ­<ë}<§æO›²Ÿyi 1eê`_@ؤeÕ÷b3Ühô öFýmC·q䳹РÅ#˜öëb}ÆB±ç„¡îQ•ï‹§M8äsΕx~ÑóRXrŽ€fh¢‘äï÷º”µ}†·gåóq½vÓ׬šÊòà²=\ ÿU\ý‚Ǫ |ܨۂµnÎ:=ÏQ=Tïtø™×¤T¯ÅG‚¸¸¶±…•ôõ…GY"LÛáÀý“³%ë÷Þ‹Ål§­pß6|[P)©ZÃÊVè»®>á3Y|hÖ|°RcuÚzÛk¾èÎÚ÷Þp úÏ^½¾wÊ×¹g2¥˜š~+ÓfVº4 éZµjY.iiVFŽ€ø–ÖP]J™,ÊS5[©ÓŒ†žõš•[cÁÞløqÎ~‹cF­ŠÝzîkÿÙéKò+"•J©Û‚ì>Å@ ¸¶•­‘NÕPÇʲòy¤*ËWˆGv,¿å)xïçh¨‚.³-RÁ‘XŒ[²t¢þãIƒVûª|Cù®&ú¼ò®T1𿨗ó{FÞ_w(0‰f9pr;€¬zM¤Â£TJe0Úl ¼<òöøn’0}SSJAržÄê·+ìiÁ½y'¢µq¿ñf œßvÂSP*¥éêQãž>ç@¹÷ªÔ°©¾¡´S”Âúß©§wZœ³6qø¿•{NØ”6v¿G¿Àí6D T¨¡¢—U:€Ò3€V÷ý÷NÍÁŸmÞs;¼Lú¯<5£B¶ ¯iÖøÂ ²BÙ–†¥ ôº¸¯›åœ²«ã„+ÉÀ¾ô0gغGÝŸøzšëÌ0>ÔZ®Ø¡÷Ÿg5à¡8©TBQcZ´¦´²çyeÜ IDATÃqÇpÀ0 @£F¤º¶¿°˜,VåÚ+%Áí:\¬ŽR$IAR‰„$I¡Pð“_­goߦÐN1z&îKÙ †¬Þ>¤zƒX‚L‹@ „êx–œ„Ÿ“Ž64¨ŒgišwlßVvc/åf¼O+¯¼²²ÌmlÚózÆêü¡~¯š…ú䪒jdc„ âó+o¯m·øž2ÏqKŒl-Ÿ½ÅÒfK­R6³ŽŸsMŸ×k†wþ§3Š–©õ9c]íLtq^~¹ôz¹šÓÃ+|e…?}Âx”c‘â5v¼åå­ªoîqGg¾œ†*ˆ:søp ž°KŸ^8µîÆ“¥ïº)­0ÉA¹,q{Y¹Û(Msìä›ùôµýu„Ô‘zxNL1 ïcBÞ »†z,ØìæÅ…iE ÕÚÞ€š.Z3»P^*QìeÏðÙkOÿåØeCx €ájL-5…wSô¦LqÅÃ{G|”OU%ÙQÑ…0tŠ‹ñÕ«YµîË5ûŒ?m±øXóx°·%^ì äFJ@uN%²@u…íUÀÔìf+óWßè:nOŠ éU2 qp1§G$ˆ€Ñ¢wCˆ O¯P©¡Œeο$8ó/ç_=iÏã" "éU9ÌàЯãÖ¾å×µ–€òE ®«Qã5Ï_Í A¡T}²êT¾ò.DÄ«ÐÔgQ€[mx²Äw‘Û‡—ìIZ§¶zIپΫÂË`¨:»Rœõ.S8¦ß‰C-®Ì˜°“êyf½U÷Ý»qC*¬»ùŸ¡aP³èãbHƾL¯PU!®BµI½¬²+• I“O M„A½†·b¼ntê´:=JŨT*`_*¾0ãày]Êú!vôa^瘔ÜÞ™ÀoÈ=tÞ«TÃ&úF#Ær]gæ§ {j0¦†Š^VºK¹†¢ìy0¬CwCjXí´hŸ3R¾ ÔŽRƒˆ¥ ËôŇ9@iv!°ÚÚêQÃø’Ft B> áC øÇ³DEéÉ‚A^Q^ ̉ ¿yag ÛØÅ¥?Žûs8 ǹ·˜óJ\’“K¸xEDy@Ealä“c=£Ë€¬k3,Ó¦ï=ü°ÄNŸ’¼Ø§G¦¹ +"ˆ¬Úv¿èrà^g €´$ã­oTaÕ ¢×qªÛô‰˜ák¿È»•ëx‘Î ™åää`Ê^nôÅõKWsƒ–wq_°ï@@‘µ.€r³cCy šäÖ)‹¢ßsÝöen½m é ʋۻ`Çá d\™¦äüצk9ý,µ çQ¤…o¯þÑÇáñG (¯hºòïJáIŽMd\®û¬×òõçSÚR$¥)‘þ^C#×íQ*F¥ªxOôeÏ×fþ3»ÝíÜrlÑ´~w Ï Kè¦Ô{•hØ´þúÒcY•Û¨èe»”k(åœüÕ4|ÒþÃ\;]\R›ÊÈ$H²É#å‹;€Š ›fæ sȽ5Щpý¶ãYëÌ4@Tšüæa"ŸhØÐC™µDF@ øïÀyÇ–ýÞoˆ9‚š¡mKuüÓ›0ÑÇ”älÊ@Š@  ³ÛäÜÄ´\¦gã¼dõ¤ö¯Vu\ø­¦A4eï7ì3x,2@  [Zœ“™V!àÙj1 Wc2››˜kjëþ+²ÿ5BnÖ~¿!â¿}£P‘›ì€@ ¾ü8Ï3qò¿_‡û^Þ…L‚@ ñ/ÿŽ­gÐÌܲ…FÅ0 Y2 €ùß KPR×ËN*Ãd{k!ûÂ-)áÄFÛØuüƲÿeP< @ @ ˆŸ™rn©¹• •J¥Ñ8… `$ &)U&ÛÅj¥Ý%I²:…U† äÅHH H`²4 òr¾½,ÄÏúf–6Ÿòò銢…Nƒ¹,бÌ;÷³•„?‹)øñžÓQ®<¦ÕÏãâ1¼}gnz/üyzúk¶Kkàéœã:«]&N—üLÖøí¢r_·mrÏ6º4iùÇw/.ÍþÃ[ž)KÅ®ŸË&ã½9[ídÛCšr¦ú•—4ýDô5Næ³E¾÷vH¶µs=£Jœf¯ Ïvõße§ÎÕ´RMã§’ÅÔв´´d2™ “ãZse9©©©üò2Ų ¸¥«J5¼†Ï‘U'*ªjš¬*üýjm2d°êƒUÐY ,Þ¨ƒKŠò ››‰Es»èw±Òº^£)•J©о±qs ŽŽÇ†¿ŽÔÐÐÔÔÔ$I’ ˆòòò3 ‹yµÓeÌê~Ã0*•J’d^^^IqñèQ#Ð,[‘°×ᒼɔJ¥öèîØ¨š›æ?ðšS_“Êåd•“X³:Xj9´Öq´ÕAýÕ™q¼”(aN®Î¢é4×é<ˆª©ÿÅ¥ð’ß|ô?&ü˜\}¥ åY¹Jˆ”­"ºQ+ãQîÖݾˆt’æž+ùç1 Ýy@³A³1œÒäÚ”ù*!%ä I’ eñ%u¦FÓ»†_^U!$Aä·—õEÆ)â‡gá&ã½9[[go~NÛœ¸fR§^sûm]BPLæßñÛ#Ý3pUDåü]Rœž–%“ñÞœ­´S×ò™&v.®â˜¸»ÓøËIzÇ•w^MˆÔw]¨ì¡Yfw¯§ºËç¯t›©‡_nìžã|˵ÈlšQçöÄ­½Çê{ ýz[·]>ƒ;øãYÊ•'ËBv»»\Ç}ÝÈn4Æ+y§æ®Ùëî•1MÚøsÍÄŽÑ[;O»‘ö•ŒùÚõƒðͬA1ùíüíÃÞØtþ%tYºaz×èÍö3oUö2£Ëê‹·†‡¸8;„ j•T±ë?‘í3…åTÓ !A«¿H˜F·Ã§'f]X¸;€C±™´rݳG£®{\J~G'¢¯”›YBJÅy¥Š²¸/.ô?hCÀ¨µ± ¾Ò5­”Šá b× Ëxú© Ûmþ9¸õR˜ÈjìTÇfo@y·C’$N¯soqq±®®naa¡††ƒÁ¨Ú¾dÙM 0‘$‰aXU¤©¸¸˜©¡¥ºž&Ë"‚Ë­MŽŽîÑ£ÇÍ›7'NœøiM“%ãÑ£Çf&m­[’$II$AAþóæM^A¡ë ×ZÇ¿Ûä`–¿À!ƒû‡VEÐTTõ9²TEÞ°¨Tù$™Ë-ëѣ秇ùúÞ4i2ÇKNN.--µkcËdª7A\yy9AúúúïÞ½³³³£ÓéZZZe‚âý¿ÿY.|[u˜£ÓŠÓû´´´ANN޹¹¹±±qAAÌ™› ÷å«WW®^[ä¾°µM¼{ÿþÄÉÓ³ÜfÚÛwþ2'G‚d§s_'—¦ä y‰”ÔeQmŒXÝ­4»Zjq>òOgÀgÓ6Ƭ&K©¨¨pêÛ¿úXP}qWW¯î ç!ϾöÅ€Xôç©(-}[íð‚RS¢JËr)T:®o¬×½Ÿ@gà1vÆ­(ÎÖß::¶1ø*W#!?åð<=[su33nb"¯ˆ´ú}ß—’›M¥RÔÔÕEB¾€obfŽ^x· ·8óâ:½Xè#éL)@>^ž- ‹ÎÏÊJ5̧î¢0˜_ª!9·÷éÛªwëA’dõ¿$ „,…£ü_AAqö•]­×û|éÖ7ïוÕÍŠ”JÅüxÎΙ­ÿòþâ…H$ …BIJ1XÚ%%%%%%€)AÙ.‚ Ô™¼òRŒ$Ùšªª@Ò·”õ¹ž&'§¥–”‹Dª¦$t:]GK·¥…%•JC²¾Çx–üšÍ‰Ž-~ú<àÈ~ß—§BxãºH”»JyÖûxN͹ìtÅKKHˆ)S/³øÂ&-«”¨/Ä0ú{£þ¶¡ŽÛ8ò¹hhPþ˜öëb}ÆB±ç„¡îQ•¯\§M8äsΕx~ÑóRXrŽ€fh¢‘äï÷º”µ}†·gåóq½vÓ׬šÊòà²=\ ÿ-]ý‚Ǫ |ܨۂµnÎ:=ÏQýæ+õN‡ŸyMJõZ|$(‹kI__x”%À´Ü?9[¸~ï½XÌvÚ ÷Ñøa÷•’ª5¬l…¾ëê>“ŇfÍ÷+%0V§­·½æ‹î¬=pï × ÿìÕë{§,q{&SŠ©é·2mf¥Kš®U«–åB–feäˆoi Õ¥”ÉR¡÷í:åK[^Õ¹ײhgýž?ŒüPB$ §Î›C§aŸ´T©|ND*JÕK—Ù‹©¿àH,Æ-Y:Qÿñ¤A«} ª¬Á}qdÇrñ[^íØÔÖ ·üN-½5pכІž`••\Ûåïk¾¿d®±àt…ë5ÿMÖ—göÞ]NâʇCž©ò‘"ýþeMر¯{Â\—}¬µÛ·I.N]vqî–™f•Oã$$IªØ+û— ˆZwÂMðM~y†a$IʦéïÞ½ÓÕÕ­7xÔ4YU$''¿ÿ~êÔ©²¯7oÞ\¸paFFZ³fÍ> ¥5M–¿€¾ž®µE ‚$̬Z@j"‡$Áʺ5FKŒ£Ñ¨¡ÏŸsy|ňR-“6*’5 ¿3Ÿ_ÎÎ}ªvä|É®3nÕ4Y ¸QU¹P(¬s½IgΜ¢Ñht:ƒÁ`””48$$ı{7 ¥÷ó%¥eêêê-Z´`±XUÏÞ¤¨¦8ùW555SSSÙ]Ÿ¦¦æÇ¼üFųH’<ãéÉŽú§K×.:vx¼gï¾ßÜföp¬^¬üüâ¥K]»uëlßéuÔ›“§O÷éÝ{ê”ÉMc]Ë O.ëck¨Ã¢ëh²ZÓ‘” €AÅY Jn9v-²èEBþÐÎ&œœò­÷R¼ç6ñEUsçÏ›4i¢â–¤¤¤ª¿Û·o¯h‡å+VìÛ³ç+Ýb­8þ*/C܆$_¼8oèÜÆmBKMÍvzº:†FR‰$1)ña°§ï£7s'/{\äðáÈÒ¾_V~'Åafý{‰²>@' ªÚWIžãÈB Ú::¹ÙY uu}ýÏЕ'D—¿Êj¦…_€Ó):ƒŠã„DHù,¦&C=ãàdšeOÓñ«¾HC¬ÿ¸$?±ˆ…™—<èT¾A7Ga^!(‚Äi4ŒÕ¬øí{ ͸Åo›q*] Ù<í”c •–•’R MKOÿUBœAI$!%)‚$0ÀqÇq±$e‘& …¤”Y–+‚”‰øö²>Nrbóæ&;Ø“$©bÚP¥R~A^nzšMKk$ë;g)\îøÙ1ùàhc@ƒÊx–¦yÇömyòŸŸ3Þ§•WÞ½±ÌmlÚózÆêü¡~¯š…ú䪒jdc„ âë^¦Îh»Å÷̨yŽ[bdk¹øì-–6[j•²™uüœkú¼^3¼ó?u^Š–©õ9c]íLtq^~¹ôz¹šÓÃ+|e…?}Âx”c‘â5v¼åå­ªoûqG>ºr£îšÙv—~‹kÇݘL&“ÅêÕÓñå«ðÐÐêLu’ ?_–jÄb±b¬S(¬¨óyÃÁƒ‡*~ ~&‰H’HÄ £áâ  5555¶éƯù¼,Ðf±x.·B!..åj¨«mð Í4Lï{Œ$I 윜6¶­.nç®ÝEEƦ͓’å·ñ­­_GEõôœðë8 •zùÊ•:ضµMÏH“`bjòâå+==½¡_ ùö®;.Šã‹¿Ù+”£Wé ö$*ŠFÅ-ö5±Æ“ØõgObרIì½¥ˆ P9¥ ôÞ·;óûãh*Uc’ýæ>æ¸Ý™÷æÍ›·3oß¼y%=z?ÿ•]g^®Œ–«˜ŒBUV‘Jª  c­±¾µ)#W±ö¦¢¬Bµ†­WoJJJÅ?cccããã+†!4iR.«ôŒw•|gÛéÇɱùLqž%ì^9ÚÞÞÎÌÄT__ŸÇçëéëSÏÆÖÖ«‰ç¾×íþX«*2‹QÏUB Ô±§zÒv½~ó)¤W VúØôR™ð úuìé( ‹£@Ï©Kkˆ MVéäP‹àù~ŸÅùí>Z¬89dô¦ù@•ð °Ú1|ÄÒgŠÊâD­ ÁÀÜèµMÔïL52†å¥ª£U)ó¥–›–«Œ-E<• žÌ™¼íډ˛–é/š+ÝÒöûP)@ UUWÀ‹]&É&¢6óž1¾Í‰Û7 °Î «oõl4\»¨øxèÓy »Þ£ª’OUÙäÊ]Lï_m*“†²êv ›µ÷Îø7_êåžžÔlÙ³ª™§c.¦Lýük?‹»W2“²é?¾AÆžK¯êý «Sª×ÃZ¾‘{¢¬V£°F¥04ѧ@†«çPG=·½÷âÄÜ‘f_*8|x銡[NŠÅ]¦×)Mš.æëfˆª.¥KßÙÖwöíiM¢î'×HÙ”âo¿:ÛïìöÍf3¨ë5)0­ØK7RÇúª‹ÙýÀÜtŒÍ;õl/F—ÇgÔwÛ I)´þ-¾XõkZZÚÔÕûÎnþÜ[µNˆI23@˜bÚµkW+Í442Y²uvAþkýÙ´I+OhNÆ,>{þ´±™ÈÕÙÊÂÄý¹ä™»g“úÐÒNäÍÍÍâ%×®ܸy;$äþĉ==\†8`À€;wî@³–Þõ¤uåÊU¡žP¥Vé õB®ž<>_¥T€¾³»GBl ÁD­¦…B!G‰D"¹\¡]r˜ššÖ––WÓ&9yyÉIÉíÛµeuDd´ö’›‹£‘±‘¡¡¡OÇBÃÛØÚÈ‹‹ëC«& iZ£Ñ”í™RÓêšäcRÓjF4MÅM¬Õ"/7ÏÝÃ#22ÒÞÞ~aÿ#áI×oDý:¢[§Œü [a®ˆí×ýÜÝ]=&µ´ó“Éd …ÂØØ899¹V­[ôýwæ§Í[ r ŒLB999àäìõœ\œÊ¼Bã¢ü"_ß.+–.­ƒ$C‹þçvon•*51F¥õii1¥«“öê÷g$n¶ÆVÆú@‹pR¶"«HUϾ^[ÚxyyyyyÝ¿_ x{{¿é¼`ÞUÒÎãù6nõ$5bÞÄn®®Îæfæ>Qih¦¦¦ÎMŸ8hé¦ÓÃz´9x}Ñx„P}èÌ&nûÚÈ’¸øw“džñDfE¯²ÁؤÙOס~5놡¡«‡GFZ£ÑèëëÑjÖÌÜ´>Ÿœ¨ìs(,ü¨3bB?òƒ“WTaűä³5CRáþ ÙNÓh 32qÏCaá‡@•õøæÞa~#¤ íôD—¤ ›w^+ln)&;êÖ®ñ=·?ÌÇ8íÜ'Í;Œœs"p³Ÿ³€-LyžW&CžEëq“'ŒBÖ.=>_ ¼Ê¹Õ¾~Sfuëè`ò̈cËç- *-h?{æ–mWó=ÌõˆZ–/¯ÑöŸJiñ,;-Û0rOk!ÐÙ±7Ïܸó%)'Ç›ù-^}:£»‹ ÇZâ×ñrºF7‡eÖJùêÂä®fzM|ðdÿ…y¾»“zz¢éõv3¾Ûùüp{+94vÖÁç%úGGnÿr’Ѻ}ab;!0ùQûÎ\\ôޤQ[TG«ræµRÆ9—GLt>²1@ºZ€ cö/œ±àN!uô²Og6º¹{Gñaß~GãKÔW'¨Ê»²â£BþlkûO2nÞ¸qgÃO¥è¨P‡x«e£áÚ…SNM0¿ÝyÁòïzyY󘢗¯HäX·öêÀûW›J¥Qu»˜Ç«{‹VWõ–·JæU/¶¶ðš³ú—Ô¦ ‹ºz~^S IDATàSï9÷ ë<ÐÕ)Õ*ðæœ_ç ðl…ÛÈ YøÃé”ê5 g_ü|z“ck®Ê6PlAô…3Ü-ÔÁ¡ŽþJ>6¡UÞ¬­gCθŠpAâÃÃó­¾ZÁ™U;Aéb¾n†¨êR¬ŽvQФ»SGm¿+ç°yÏO}ãÛñFVM§Š§›Gö»»wñ)¿åwäPÇRHä³äì­Ï"GûvÈÅÓíî¸~;î÷)íV†Ëª5)*­'²¨|ƒ¦-þñÉJKe<½zês[-]Råkv–=¶~¶™Y利©©ÉÉÉÚ7“,¬öù7Ä/ Æ...µ[ ´~þ.BÈú›µû ž?Þµk×ëׯÿùçŸÎVî…ò¼œ¼¢qÚ…> jäSwZeÈÎζ±±Ù²iƒ]£F“'ŽÊÈLILŒ;÷ÇÅýû÷k£ŠúwmZv%'§ØÙX ‚W‰ñ6LI»ï³¬B¥Ê/,jÛ¶mJJ²P(dY\XX¯g)ªéÌ[Ø™šYw°FEˆŸ@§NhšÎËË‹ˆŒnݪ™¹…%XYZÔ“VµÐh44MSUtööÝû ji9•ž·E <½ËbÌK³ýí õô¼·ª) ²sßñ‹«,+c…B¡R©Œ†iíУµC۱Ǟ¥>èס9Í䀀ouõqT{Ç!3»Ò:g £££[´hÁ£(©Lfbl\§`É¢ï !»~ÞýôÙ3ccŠ¢ ò ò *,íI±LÖ¡}û¯6~Yg'Ë™°,ow«ø ¹ž€÷4©`^ŸÆ^ÊcMîjÿÛ´ðW‹ jcµx€cm ÅÄÆ%¾|Ų촩Ó:tøH…xŠÒ7O{ö’ò¿°˜7nÂù —x<ž»›k³¦^ ¨Bîv¢¬Â\+#×Ì\VO¨Ççó!훊’ÃÚ(„ô„ÂÔ¬Bs»äŒLG+!ª·g$çÚq3[ è|yT§E{®8¬oçïvjšNyùR$2T*Eñx(?7ÏÂªŽ¹Û)C‘¨Iûr+!+à››w㨱•QªÔzB~ö‹'%7H ø&õØS‰ë‚_þ†bŸQÓ´\¡R©Õúúú––––––©©©ææZSTTäÐØ!=-½S§ë@ËÄÔ„Ñ0eat T*óóó}};…„<°±µidÛ¨>´jxîUÀÅË:uBÉO­v2‚ÉC<âñ€°˜e@£Á5¦Õ„Ö`ZMh5¡iP«MƒšFjÔt†7ùßÕ²””œ’”œìàÐX*• ‚2-%@þo.PFKÃæ[Î-„€L&S*•æææ)ÉÉžžžîµ{J•jíºõry±“‹sZZš¦B¤ƒ@ p°wHOÏÐÓ.[²Ä@_¿nÃû‹ýQ½ZÚÆ¤Ê,Œ…â¤ü_'·Ðã¿“(¡3çþ7n\QQŒ›8ÁÃÕíÕ«W•[’Rñj{âÈ1퀺qýzMމ¬ù¹i!á ßlü½]–A¾Ý¨á[èëCÉr]»‹0 s=D¼ãH`K?qFøš¹ý>ù¸i=åt>?`[#ï&tF*O¨§,¢ røM7çˆÞó cöUb¢€Ïçñx„>Ÿ_\\leccjV_wLÌò±VÎH`bJ™Ø&ýu‹.,péæAd2|ƒWÒ(DÙ6µ26ªtV®q‹­ “£=|l[×>m˜¢ ˜ghœx=ê£ÓÏJ\1ËÇZ9ó„¦&”I£¤ó7•9yî=›â¢B „Ò7Œ¿“ Ð3°ma#2hTêÌìÚ5ª*]½wûZ“æ­ )>!V¶r¹\.—×6A»ö’P(ÌÍJDiïà óôñÃ.=úÔ™–vHJ¥Rggç 6,^¼îÞ½kjjÚ¦M›ªhÕmœjqàèÁ/§LOMM±µmtòÌñ’Ã1þrÊ øuÿm¬.BhôȱYY™;þºïã'סÓ+¥U™gµ!iU¬ÖÎÎþ¯ |>| œ>wbÈ ¡éZ6êC«^Öû칤ä$›ÌÌ,{ûš'j ¹úûä1ßòÇç–äˆ*'&*‡“Nmê uµý3®íŸÁuʇ-¨¿µéÑKýÚ-}?¥Þ'‡­É7~»×3²¹†Ö° ˲¸$•@Jv~‹¦NÀ§hÀ~þ-’Ò" |C#=‚IhhhíÆ!«~ýnôÜ¡“gJˉÒКŸu3±_ßA>RYè‰x-š:±@.Þ?Ѥ¹U}h•¹®Ê\7nÜÐò P(¢££ --ÍÄLÔ ´ôôõ 4ÀÎÞN»]SC øBc¡P­62ܼ\##‘R©¤(ŠÇçmœZh1†a´´´ŽBÇ»ÿ ÔÚÚZÀç7­j¡Ñh4 BˆÎËÇr)•˜!„!¬ f4„ÑZ5j¢Ñ4 ¢¤aö ÍPFUÌ« ­¬¬l@ˆ1‰DÚÅ¡‘‘ŸÏ§iša˜q]V°,K¡(ŠÇã @À²lAAvW#BÈÀÐ033«Vþ,¥R¹òk”*¥µ\!OˆO(k¸Ö™Å2lBBEQÆÆFËW®âQ¼U+–Õ!®½³qr®ÒP'U0N–¢]7’¿éë\é/sT4ƒ xfuɸ¤P(d2™ÖŸ%-–ë°%ÞaS3íýãb¹¼aUÈ·½ûµý³{NÙî&ò¾ãþàA¤™eÑGlš{Xñx(öUæƒ'’𨗦<3^‹ûIwÜ©çA²?ùxC=éZulþqï¨Åã,¬F<ÐgäŽM¬ãçùùr3çšòìì¬âÂ"C†a€Ë²*µÚÕóAÎ:ä[Éâ"Í= “”èܽ•F*Gù ¢&G==>QÊH‘ž,C!°wk0¡XA©h`1"JB7ä^¾±Uq\¤yÓÆš¤¿V´THI#LN-lôõùXQÄPš&o¨FQBË ípК¨ý™ƒ%{ñ ŠÂ„àÒlƒu¦Åãñ,-- ¤RiÿþýBÚ­åUѪ ò 4†dfeöðë lí®ßº¢µ‡¶¶6½?é—™•™Y™ Ñ0CYëI«*4 ­Š õ,,JüËæB¡^Yð]}hÕ#G ÏÎÉÙû˯S¿˜\«°¬ò¡Ä->9pàÀÿ20MßöÞQá½Ú~”ŸofïV˜žhjçR”ñ*1¿Àί䑖.6ÑÉ™JÐܳí‹ðØÆÆ&b8rاAwCŠ‹‹çΙU#ZŒ¦o{P·me™¯ ­¹)&œ¥™I yù•Òr02æcƒ:ÐZ¶{~bbHTøc G·ÛUH« Dz³ nvL,ÌÍ‹Š¤¦&"•J¥¯¯§R©õôôÔjµšVk5300P(•`dd$“ʴɶììåååËår–e]]]êIKß@³,Çk(Z5ñgÑ4 ËžG¨S½Q¡€ í©Z˜Æ`1bYŠÁÀ°ˆa‘†E ƒ4,Ò°Hð2aüYÙÙÎÎÎr¹\›r«¨¨Hëd)[ïQ¥Ý`Ȳ¬v3i™G!DÓ´‰‰IbbbÍ[·dÙòü‚Sc3©i©¥ã…avÉâE¾`õšµŸâ øÀBzFºöÅo¾ûÖÜÌ|Ýš5µ’äôž‰³62 Œ274œwBB€ôiaÑÑÕÔ@Ê(T?M‘I¬HOÀç±€Ö+c¾±~íV(J¥2''G.—À®­[kXª¨¨è¦ÓæO’7¸ 236|rfq~‘üû-<‰J7É0‹ŽËñE gäÅ´yú†­¶þQzûåæùN =³‘-¹>âhóígõí¼¥´š~•o(2 £Aˆ’ʤœŒŒMŠ„ÇwÛY¥\²v•g ~± «i¬a !|zˆBXù²˜µwóÚ¶§ƒÑÍ‚R‰j„1"V7¤?«B£òm©džTŠUêÒF©ôBD/û¥œµwoÀF¢Í#YrÚ &DkIx<Þü¼J]ð•í5€nF%^?BƘL—î_ÓAK‡› Ôjµ©©i@@ÀŸþ™——GÓôÕ«W£¢¢tЪ×laäòbc#c†-IÁãQ}{À˜€¾½@…í|_./®ON«7hérÓ¼Zryq¯}µ‘^=úÊåÅúúúõ§UOØX[¯XV÷›œ?ë}A{"{þ¬n}eµ,ŠDŽm»{1¡·#sÙ\»«f™t_u쯡ò-£&­~¡þÏ+È;ìe“^¿eì1[ÔsôÎdæÃ¬J…êÒóû¦%=ÏÊ—º¨Jµ&=.È©‘ð…™ÈÞÊ,*9³‰½uA‘<:öIph˜Z¥iÒÔó¯ WÏü (–ÖVZlDZwœY >e!ªœ–W³&õ¡õÚŲl^~>…T&ÕÐ4Ë2,Ʋb™¾žà zB¡B©4Ð××0Lqqq~~>ÆXd$ÊÊÊÎÈÈìW›³ðÞ'­ê×ç4­Ñhˆ´€R9¹‚ôüò,9„ ¥.-Œ‹ÅˆÁˆeaƒµqLqvQïÛwÀÅÅ)??ÿÎ;¶¶¶ÖÖÖfffFFF†††úúúB¡°Ì¥¥ ÚbYVëÛÒ:¹ EZZúˆaŸÕ°uë×® ºs÷ÀÁC|>âQ,‹“•+–•eX;x`_ZzúŠ•ÿc1ÃçóY+ÙÇOø¤G÷ZO~yhÛh¯ã2‚c‹-Dq™2D(;3½´B|1¢hVªd •´‰ck¢‡ÆÎLX[g–vU|úôéª×ð:¶Ú7¹µÁqïæ&†¿¬˲,Mk4Z©T*UjšV«U*µšVÓê˜è˜]»vf_`fj^Z„—¥ìe?ò¨dÞº©kî»v½F-Ý&ëЗÝ7<*Ä<û]ÚÄnêõ}X©3†)HNJS‚ýÈ£’u‚•ã–* í›÷üvéXŸøŸÚŒ<‘À[÷׃ÏÃût]¢=ôÇÐûн_½Žl¿E¢¡ç¸÷Wzg\Ù³öôãtmÛÛá?6¹9ø[6›ü㙾7ü>ù'ú³ªfžHƒšÝó¬&&ê];³cvÜÿßÇ9×÷ýô—8“²mݹƒÞù kžhƒËùSN<ž’{ŸßÉñĈ¶Å«(Û¡‡hE׆÷^r¥ƒ¡÷¡{¿¸®õïñ{n-§~³uWÑë+7ý~/[y´ëlñhã/â"ò/èe8pø  õÚôÞã›#C¢^!¾Í]ƒ_$ ]›»?][xÜŒc|øÀõW1¯´¿š1‹¦éZ9}þ­´´¢°°GnR© LLŒ¥R)€±‰‰IQ‘LMMŠŠŠÔÔ´O>é¡-ùc\+Ó{£efa]“¤*B999üç •jrCP” ]ÄiSŠcBPÕ^µ†ð…5:x±Y3¯ØØ8cc£iÓ¦k4…BÁ²,BˆeY•J¥=mcÌ0ŒJ¥¢iZû]ëÌb¦¨HÚÕ·¦«\BMÓ:´oݪåã'áþu~â¸Ï7nŒ IHL,óûPµlÉ⬬¬“§N÷ïßÏû£|@¥Rikµc;Ùídø<ïÄÃL¯@Ž”4K! €0Æ +SjŸïåáѦeKÃ:Qþ[i}@þ,-d’ˆˆ‚g!w¯îÚÚ3àþ¯Áò²>@qÚ‹XÉës!í3Mž)5ȅƱ¹Ø3)­¨š?e;d¯x¥åúþ>ë%% B‚®V¼Ã°Ý²¨3ì¡ààçýg‡—f½çÙ~¾ãÌ|÷ØÁã3”k{£„+—aÐwòØD“–£ ,ZLXòý8Ñ™OznU–FYõ}PeûÑÌ¥“ýR¶µvX¢û@ƒ6;oýêÐ×»‚âd”©³+ûèÈõ4™vÜvñ—©LàòÍ¢×ø…³‡Pç \TDtsXÚ KÿE{ÏŒÑì˜2cÕÃ" €DmÖýyhý×ÒmžÈ¬zL]´¼Ë˹þ_îKe‘¾¥»ƒ«¹æ®înÅj`‹ÒR2”ø}JCw©ªhé`žolçfk °í¿ÿДÌ×bÖ(›{$[÷ü}¤„_>º25y^ßÁ—òIÕ‚ªZm(Û!¿<ýŸåúþË”íêÕ?+x™f|Ã,òŸ³Ÿ?îþµÝën ZQ¢ïXzeìÍžÃ?ö›¼;÷M™T®¢º„hdcòáWn‡½Pt¡Ìèèå:u%Ϫçá«›ç]\¶#0AàÒkL €´ò&WQ!€ éìsOæÂáõ{/Ir‹X¹?æÖ]‰²š 9pàÀáo‚îó nœ»­M ^'‘ µrúüëiuìè}åÊÕ:¤´Ëåu‹–zŸ´tcÜØÑ oÕR1xd>]»7­B¡ÐÐPd!2´¨Ùýׯ•çåæÑšº¼Ò „–V–ÆFF5_äèééi÷6ú÷îÕ»WÏ ¡^X›n!D! !°··ûè£ÚÍAõ—ªKKÿ––ï „ÌÌ̾ýfá·ß,ÔþÂ0 MkF› M£Ý§IQ”6Ÿ/ |>ÿâù€wm£´»«x<žP(–ø¶* ,&eê”)Ú¸m©†b@heÛlã¯ïv1Éç;»¹¾gãoÒê£÷@ÅiÚ·0í[íw‹­¹íáÀZÝ/hÔt1aµçªÂP’P’¤$ÆA€”þWâÁ'¯¹e…J4´çt„` ˆÒfPG D©iÕû§U7P% …BaÍM(GëœV–Ié‘9àãi%€R–±cë–Í´1-¬,åERqi‰ÈÑÓ³¥\ÏÂÎ@‘«¶ì<è›3™º Ÿ­§-RƆ¦—:Qôš­ Ø78xºÏÚHm,—B¼ÖÅsí¥<§ì9àŸ<½óÄ£9o;Ìx&ý¦ óonoNÉsŠY°èìï( - øJ ½u9Xp?(Ãùå¡a#]N¬ÓíÂQÆìÚvÓͤß6ûœ?ñØ™€ƒñÚöŠüÖlÊ;ÛÃ}˜B®ÞÛzóÈÉU×=æ‡Ûëâ ëÖ»rAôÒ~cÍÖ•M[ »­ûy®+ ùiÏÒÍ—Lm~|U¤R•ŸPlV MÁË„ÄÕß$ ]¥ª¤EªdYFœ øÊœ·v=ãìKßÿôêÉŸgòß"&ÍVîŸa0½ë¥| †~:UµÚØzÚ"eL¹²U„^Óå{Ææ­¼/•eàÄøŸ=Þ5ëxï-âRV~ÈÊc¿ ¿r ÿùÍ…B%´t¢øÑ4ïvÓx"Ï.#7Ž3½‡å“= FnËcA‡ êÔ•Ân«Ö|FŸé>xÃ#ß-î6mY +eü¹3Wn½–U¤³B8pø`Q['ÎÀ«-þ£šàã}þ´ª_@Š E"Ã÷ ¥ÆFFתCûfþß7ðù|>ŸÏ0øpX*sTý³6òpø·¹0&¸4A!  Ñ:š*ÓPTî2@ Qi#S @@!­vko!„.ËÑþ>iqø/£J“*pÿ|Ñl»Ô=»ÂË3$ÊR"žG‹ŸG‹ŸGG”;³@ž"‘D¾ˆ¼xæ»9?„YôœßˆL^R>˜4igUò+°iÞÊr“‹4@G8ª×ã·Å>fZ¥odh¢_že· _¯ÔѶ<`˜Iȯ±=íÞŽc5î¾=öȰ¤Ã[u0jÑ­å×UÎô‹Q_|TB Ô±§zy¶ùŒ³áWÝ•Jþ\èÊP&oaP,hAûÙ3·l»šïa®@Ô²ô¨àxy|¶•ÒâYvZ¶aþä.žÖB ³cnž¹qçKRNŽ7ò[¼útFw(Ž :µÄ¯ãåtn˼ÊW&w½0Ókràƒ'û/ÌëðÝÔÓM¯·›ñÝÎç‡Û»ˆXi|È¡±³>/‰¢#·9Éhݾ0±˜ü¨ý g. .zGÒ¨-ª£U9óZ)ãœË#&:Ù ]-À…1ûÎXp§€:zÙ§3Ýܽ£ø°o¿£ñ%j«Tå]ɤžökz©ÍЙG®üàçfÊ&'&øàÖ"½žïòdé—W¢Ë"Ü’Wÿ2õÙ·+Fü1íf…6?Zÿñ×VQ?ûU«6: lì¿|ñøaš;SêôÈ»û§ôÙ|·èTº§œš`~»ó‚å‡_õò²æ0E/_‘Èq ú«ÖràÀ8pàÀჇ½£‹½£Ë»«ßÝ«ÅßB‹ÃˆV« £yKNÿmEзör³2x;^ÓY/Ó•„8pøû@´É}0`L0 ˜!x÷ñuÝúã„Ã8pàðßÁÝ«¿Oó-x|Nˆ*'&*‡“8pàÀ8pàÀáƒçÏâÀ8pxWP«”…ù9ɉqr™”“ꊢDƦ]Üm9"ª$÷ª†V+å2–eê\-Bˆâñ B.E*þ‘àüYïMÒŽE ËQ IDATcïßZ˜?«[ß@Ym6"Ƕݽ˜ÐÛ‘¹ÿ¼Cªf™t_u쯡ò-£&­~¡þ÷ôô»l—I¯ß2ö˜-ê9zg2óo’ÆûhߺÏìeëÇtjj.`‹³žß;>õ›£Qêê.ýÛQAòØ~äQɺæÚ߃ëb©þF智¢waÌyç\ØÈ¬o:ôlJ9ãÎGîþÜáèÈö[$µP®º•ªþ¡´Ð®§jµòyøC'·¦Ýú|ÆM…8pàPd¥%?{Ü¡sO–Ñ䘘[Zˆì€hÏO$PÙ)qeß „Tn0K~B€€šVK òLÌ-9 sàÀá´èÖþ¯<_e?ò¸\rn‰_ßn}ç¬>”!?]ê]rþ Ï~Ʊü¯±¼<[–|\ ¨ÒRgúxµnÕ®ïç oFˆ‹ÿãÎaëï.ËŸ¬õ-;êØÐûXüb§€ÐsÜ/9’ðˆÓFviçÛ½ïìE‹g6rýR„Í&ÿxfuÁ¿‹y" þivÏÑ 6¿[Ïe;ôˆ\òçJ¿íÛyóýçâ‚ÃyïŒà{j×?ïM<û/Ž…ÊŸX7ÌoÀ°ùן‰ó­ÐËzíûcTÎ,¿Ž"Ïv&íúvž]æ±Òqé?œ~f¬È³i÷ õ”1úh×}qîÙùŸwlÖ¾Ó§?ý&´®—)ú° Ñ»+K-$lAvQEß™ìþ¬YWÌgìXѼ6Oºº•Ò1t\úв›pàFzÈ–ïxwï3zçñ]g’>¹#ÆXVT`neÃ=8pàPOˆŒ€”¬áhµZO_€Ö™@Òz± ì¶²e"Pz(@PâùBHÀÂñÇÔ"³tøfþo™$""äîÕ+&Ùw\˜2î×à¯=ÊãO‹Ó^ÄJž—|^¦)Ë,Ÿ<)..2*6"*66ç'¥áê\ CöŠW6ÚÚß§õ׿¹' ººkã†Ýqtن햽’ˆå’[»ÚëW˜ËÚ~þó¹äö••Æõñí٭ǨQƒ¼MKÚ ïä;¼—O§6­ºôõËu±üþb¾ãØ0‰8rùàþ];þõe±X0ѳÚUA›ʧæŽñmóQ›v=û™ÚÛA;ïF¦·‹å·X0зï )ÇïˆåÁK»ki:9,m…¥ÿÒ³…/N¬þ¸äµY(.¸¸rf¯ö>>þ‹~»%Ú?µ1¾¥‡»›«¹æ®înM=Üšz8ÛiÓ¶¿Giè.U-Ìóíšx¸5móéþ?/ÿÞÛ¸¢nØ ü¥Hrõ‡V%z'ôøò™$ì J§ t© €üett¸øÑÅ?X!ô9Àާ[ò:Ä«£Tƒ·‹gÕóØc±ìÚš¹º2~õ—ožäQu“«Z¾Gµ©RÕ·«–ÌSN£6ïô‰žÒ÷©Ÿ­=0ºpÞ€•/?>¢¯TÝ-õ€gäèæÖÔí©›ƒ¹ \E+¿¤cTV§‡µwƽ¿NihÉë4ô&Î-¬ ëéÝk£Ã\;ø ó„‚z¸³t3_C¤£Tµh?uΜÁ~}LØ.òã§V¥!»·kã‚]Ïäoú¦Ö}þ‡Á¼_çuЯ…­ªP¦=×\•?ß7ÃUÈ·øûÓðgßµ6B s8è)ÿZŸoÜâ7gØ–Œ~óÖmìeÓÄ”‹Ïçbá9pàÐ0À¸äM *=# cL@û—XûBÆD{¹ô’B0!¸¬Z8pøg¡ê9Q¤G性•âK‚Œ[·l¦ ³²”IÅ¥¦OäèéÙR®gag ÈU[vô‰MÈ™L]Tm=m‘264]Sòƒ^³µûO÷Y©…x­‹çÚ7JyNÙsÀ?yzç‰GsÞv˜ñL<úMæßÜÞœ’ç³`ÑÙßQZê#K ½u9Xp?(Ãùå¡a#]N¬“htIF³kÛMÿ5“~ÛìsþüÅcgÆkÛ+ò[³u*ïlÿõaJ¹z#lëÍ#'W]÷˜n¯‹C€®[ïÊÑKû5[Wæ¼3ì¶îç¹®0ä§=CJ4_2µùñU‘JU^|B±Y4/cT“4t•ª’©’y`dq2à+s”o=§³/}?þÓ«'žuÊ‹˜4[¹†UÀô®—ò1úéT•j£E‹=÷žìiؾO;ï½™Ãê”|tã*Å«³¿¸]‰¯Zó}¦ûà T|·¸Û´=f뭺ɕ½÷©6U÷²¨[•íB†¶nžÖÂ7<%ê¼W1÷*™Z46yDfQÒ¹™#.¡¼d¦CºÚ66@¦ªj=¬ZEuôrBÇêô°¶Vø=vŠÉ×Cý¥d³n®Þ?ìÄ ÉóS[òÛ÷™Üß3õÂáhyãit3_CTu)Žvi¿‡ïÛ¹3PWoŠ‹nùuÙ¹›óÂäeãýÁ™}•4A¼jþ¡ g—\m¹"BQ#[u)\tsy_óý£¯] ÝÄ{µnÀÇÃJ´‚_õpÈ×1RØž–¹ƒÈ³¤©ϽŽóÒi—|j§EˆŽ?øÝš°–K7Om"b^úzÉCߟ¶qUVlt¦qóÖz BHa pàÀCý Y—9¶0f f*ÙiH*9 Æ!„ Œ†åóù%»KŒÖî@ € ¢(–ýGžd^Ѥ|ÈŒ²ùá—n¤8÷ÔÎŒú¸ÿeÍáðoõg Ü?_4Û.uëWáÅe¿ÉR"žGW–ÌTž"‘DxüLÝ!dÕü^6¿ËÊKÊ“&í¬x!É,lš·2‚Üä" ÐQ'†N]úÛbŸö+B 1¢ô Mô+¬x–ÝÆŽõ§î<–U2N˜ôðˆ<è?¶§Ý©SioÌ »oýÍyëÀaޱ4ˆ|ÖÇkUÅÄ’Å€(„tÒuì©…^§´ÖR¿ù”Ò++ýGlz©Lxý:öt†ÅÑ çÔ¥‡5Ä„&«tr¨Eð|¿Ïâüv -Vœ2zÓ|  Jx@Xí>bé3EeO¢VÐ``nôZüÇ;“F&ç奪£U)ó¥ËZ®0¶ñ@V.xR0gò¶k'.oJX¦¿h®tKÛïC¥5TU] /ft™p$›ˆÚÌ{xnÄø6'nß(À:+¬Z¼Õ³Ñpí¢âCâ¡OçîzªJ>Ue“+w1½µ©LʪÛ%lþÕÞ;ã­Þ¨$÷ô¤fËžUÍ<s10eêç_ûYܽ’™ ”Mÿñ} 2ö\z¥ª£eÔÕ)Õëaíð>;EY­FaJ`h¢O WÏ¡Žþzn5zïʼn¹#;;TpøðÒ=B·œ‹»M¯Sš4]Ì×ÍU]J—Ò¯ÿ¨ïìÛÓšDÝO®‘²)Åß~u¶ßÙí›Ìx¬¨iWV^ ‰ZM¿uv¢tãȪo‚/]vš6|fP!Ö5j0R>`Z±—n¤ŽôU³û¹é›wêÙ^U¸‰)¸¹tÖ^zø¢i­´YP¢ÆžŽFžSv˜BË2¤t· Pš¤3?þôr莟ô|;:Å%͇†ÖÆ[!XkÉhýS@•lÄ!››.××7P*:´³´°@„`mj- ýNªÚoX™-Eú<œL?Œä…zå&ýC`‡ÐÙâA1R‘½—§³•1+ ³³T}ìù¨ÂçoÑ—¢ç×.½P#ÂkÒgpóún/mðæeò‹3D.mš;šéUQnqþ¨¥b¹·Aª›eUXæ''*Û —KÆ_Øô¥ò'¯A+£+LÝ}¶fHÄòÒOÁo]Œ4…™¸í¡°p¹D,¼º±ù±a~]Že°€ÓNOtÅ{çµB‰X.y·½ù‰ñ={žËÆLÚ¹OšùxÞëD`ˆ\"–G­~v9<¯Ìñ,Z›<áëIƒ>¶(gQþx•s«¡;,gÝÓò|xKws @´ ýì›í¶]Í—ˆåqÖ~_YTD¼¼FãJiñ,;­üõÌ«b¹D,»siHÎæ™3w¾dpÊÉñæÝ¶ ¿=!Ë%Áò–øuìq*“ÕÉaùp}uar×vÖ_ç¬|ð$i“Ÿ…SOO4õY–>zçó§b¹D,¹ólßä–åû<éÈí_N:ßh_˜X.…ßÒÕ”zgÒ¨-ª£U9ó%¦5çòˆ‰ûŠfH%bÙ£“ÛüJÒµ:zÙ§3/û¬Úá~ºëˆ£ñ%jQ­ *ïÊŠ¶RþlkûOöºý|ãÎ$GÎ «oõl4\»pÊ© æ¾”3¿ŠË%⌞/?–Èq›ü–ïù½«MeÒÐÑ.õãÕ½EžíÞø8/{¦ÐɼêÅÖÞ3îöû%U"–K‚.õ{ô©÷ÀeÑt¹ÖÑ)Õ*ðæ]Ë%bù¹A¶ÔÕ)ÕkξøùôšWe±4ìĶnf:­Žþb“MhõM—gCä±\ò$õÌðÈyƒºWtfÕNPº˜¯›!ªº”.=ÄŠ¤»S[n¿+—ˆå17nÍÒ|ãÛñ“3™5ìÅÓÍ#Óö.öÕ¢çÞ,…D>K/etYçÛ¹÷!IÌ©év~;~¾·º½1Ò5j2R>\ZQ;;ø~s¿÷Oîýù4pïÖNqÿ›[Í|ÚÈÁÃÓÝÓÃÍÓÃÍÃÓ­±“rbæˆi_¾e¨ ÒRÓÓÓÒ3ó4< Š˜ƒ_œ¼öÔCIbü“s릌œò³XˆM=ýõ˜ñkþ })Ž*¢ìѦ)c¾Ú¥¨l}§=>Œ›nràÀ¡AÀ”{í0LÆ‚ aY‚±öcccÝ·OŸî~~ýúö³±¶åñø„eKö(bLKJv)Ëèô;6ñjÒÔ˳©—§——‡³)ð‘,tëÔ‘sŽÅª˜ŒKËÇLÞ|_Ê(µëB#^<{tóðêi#G}wúS~©‚ñ¬Ê̲)g猚¼ú'’¤¤¸gg€Ê|ͤUü±ù#GÍßqùIä‹'wÎ9ê›ã šrÒkÂ"£ž=ºñÛ¢ñ#§üüTÑÐ9:#$ (Á¼ûçã>ëÞ®‰«££³[+ïNÞö<Ì2žVšì'Oü‘’_Ÿù<èÏ„f°|¢)ÊLË.,(ÈO‹>wê÷;é˜ ¸0òâ™3·cR²ós²2sh>Bµ}¦å«àkËž#FŒð³J ”¨Jsh+ŠMÉÊÍH{~믧®EJQ5—ÊY„N½sòÔõ’ ‰2ñú™Ów34¼Ú§+e•J ¬;;5¶·³wkÚÚ»™)b5U‰…N½{ªŒ.¨SƒÎ¼™¢¦  Ùrø¢lL!Z­€Žæ-9¡ü§ô­½Ü¬ Þ^Rb:ëebº’p"âÀ©MÍ çÞgÜÂ/Æs¼?aȲ?³1×)¦ þÖ¦7[xâ‹ð™^óHßu©÷ÉụUš+†`À˜`0Cð®cë»÷ZÉ8ÐÆ0£VÌhmˆ(¡…ƒƒ¹I:5ÿ»Ûý°c‚£žæÕ¡¹KB}Ú>ÆAHÇ옾úåÐ? ´Ò.˜ÄC3—¾^­ÇÌ_×w)<]ZCM’Ù«T ñÃ;­;øZ5²ç8p¨—3KCß <ßµ× †Ñ¤§¼tpr%"„*É*Í _z¾¡öKÉ]¥a5Ú³ Kö"ŠG¥¾Š·wt­Ò–²£WÍj[òÚoܨ±¥³AQÈ3v>cš|¹gu/ (qZª`!¢c÷Ì^ö¼ÇÛǺAò©×gUfvcç¢óëWâ{víÛ¯_¯NnÆ<“ö×[?V$G%š¹4ìã »¾p¥!ZòÛ×K»lØ>уz4%½·øË=†‹.mÛ§Ä`iôåË‘Ÿ!}Ü €¼þŽ‹Í¿t#ٹߧíÌHΣ€ëño$¨°üxh7ž,)2üER¶TÉ ÕPn½?ûØŠÇäE\Lpè;¸ƒyÝ6÷±—ÓÝhi„h¤/®]”Øúö±BÀ…‘—ãË+grÃ.fº ÒÁ„É©ò’&«¬9[œtûâ}âóYo7~NØ…ë¹Í?í×TDêtÂBD“œ ‰‹{™ÇZµìѽ¥…YÊ‹JÄ¢¥ íåJ¥ÿuGÑ~H_—â°€ë’Êd+ÌxðoCЕ?¦]È.žCÉBA••Ãɧ6õ†:áÚþ×öÏà:åÃÔßÚôè¥~í–¾ŸRï“ÖÈÎÅÕÕ¨üEr%+‚ Ä7€J¦ÆZ–ÐÊÓ ‡ü¸uT¹ßŠ ¦°¶\ðùàÀ‡†«¡K—þHëÁ"˜”¦ÂÒ)RâÏ*7s€*É_^B! °î†œœœÊm)f°ìÉž»ó‡nøA°oÉìôæ•}ìxo½2cržÇóì=¬xoàªÌ,&FƒVìLQ¥~±oþèµÍWîÝBèðö-+* m›9ò##r5®6Ðd?{!å;6³¼EšÇ£€à†~¿G»upйkÝÛ˨ÒJdiŒâyÍújgŽØr' |ëÂ=ÒyØÐîB D{õRÃ7Mg>¼ÃkÞÝ-,(‡-’‚nÞµý¬‡³¿¾m˳riÊÄJ•ôEU—ÊšÈÀ¹k·ô wnGé9½Là·êßÄ‘:&Õ" ­œ›Y97ó)|põÆ=«¾ìÝÊÅ‚ \ºú¦„½ÐèGeØøö4$,±0Fð¶l9gÖ¿œ?‹8pàð߃ÐyØWýãv-™Ç¬Þ6Ùó‹µ3Õ›V=/¾e۱˿íï»îd‹°s—L O’±À3vîòÅ¢¬ÞªÉoþf[üGK7}Ùܸhf8¼COŒKþE¥[K´(‚ ÎÍ+x‰KWòE}ìó±ÈP”Fu„ „‡Y þè­_Œªð§Íào:…nj¾êÀææz µá@Ë#ßÌý펹  Ã÷/»ÿª ­[ô»ãh[>[‰ƒ›t©ÔÌš&ž^½ùRL¾€gêê3iÙ´z„‰?óöPa—$6òYubû¾ÿâqªD?øÅ¯ÇÛ˜ ª|è5ë-’=ªô{-¬:Ò³ëüÙ:?.âöÅä,)M(}ëÆÍ:z{Ø´ðöÊ}x÷ô‘{ï‘6éQâ+çÒ Õž™K‡ž]\õûö÷~úðÒ‰û*<=#kcÕoS$Q%Ý I2j?¤mcC¶lŸ½±©_Û´ ÷nÅYõu§@•öøZR^ŠðD¶žmr5¦äæÊ/ñÌ+4Ç’Øvêç}#àÎ3³öCZ™#\‡l„)xù4">%»PÉ€ÀȪ±W¯ÏZØ 0îÚß[\©XˆÀ®s¯—®f5Hß¹rÙrG²ü«Áí7|_à;޽kaþ¬n}eµí$‘cÛî^LèíÈÜÞU3Lº¯:ö×Pù–Q“VW•ìü¿4ß]/›ôú-cÙ¢ž£w&3f…8pàPíl·6û ?¨TЍðPímísȇú³ìÍ §º÷Æh4iÉ v.(Ô"@{¨¡6R €ä=ˆèÒÅ×POȲ­/ ˆ€ön„øabt„³gó˜Í¾¾ßïR…UnfÔq©Œ¢@¦&tNì#q¡[Ÿ~mÍ@Ü{ïeû Ës¬Pö#Ë%ç–øµñíÖwÎêCñÓ¥Þ%‰¬yö3.ˆåíäåÙ²äãê`@•–:³ÐÇ«u«v}?_x3B\üÇw>[wYþd­¯a)CïCbñ‹žzBÏq¿äHÂ#vLÙ¥o÷¾³-žÙ„3|•BØlògV÷wü»˜'ÒàŸf÷½`sÔ»vf <ÆìÉ–ˆ_ìž5É¿sß¾Ÿ}·zíòe©˜ùSÎÞß}9L9Ï£4©7e;ôˆ\"–?ÞØO›ÍßÐû8üÎ0+ªÎ\è7[w[,¿ýãÂ>Ú{ùå†éíLÑ¿£—9pàÀCU x<Ìh·†0&LiâvDƤ$B¥ RvÒ! danö‰_7!1ÚC]1‚±Öá„„(†i ”§q{ß?Õƒ[ÓýCTʬݱ#:Zóju©|#++Çf]‡ŽØÊ hΙÅáoÐâ7þ–I""Bî^ݹb’}Ç…)ã~ þÚ£üخⴱ’ç%Ÿ—iʲðMyR\\dTlDTll.ÎOJ+ªf“*e;d¯xe£­ý}ZýÛ™{â «»6nØWžhØnÙ+‰X.¹µ«½~y9žíç?ß‘Kn_Y9a\ßžÝzŒ5È»ô¸<}'ßá½|:µiեǨ_®‹å÷ûðdžIÄ‘Ë÷ïÚyàð¯/‹Åò€‰žÕz Úì|(Î=5wŒo›Ú´ëÙwÈÔÞZÛŒL;nËoÿ°` oßASŽß˃—v×z&trXÚ Kÿ¥g _œXýqÉ$j³>P\pqåÌ^í}|üývKµjc }Kw7WsÌ]ÝÝšz¸5õp¶Ó¦z~ÒÐ]ª*Z:˜çÛ5ñpkÚæÓý^þ½·qEݰøK‘äê­JôNèñå3IØ…”NAU­6”í_žþÏ~[ÿŽ-fþ|(ðþÕ«þ¸bÙš'òR/Ó¬€o˜E#ç ¹M5c÷ºÖåúŽ¥WF/Qï 9<Ó©’}¹•«¨N‹ocò¤ð+·Ã„?ºpæ×Å{ÅE¤AÕ­+yV==Ë®­™; ëÀ!ãWÙâ5ÇZšÎ>/—œß=¹ß_oßN èæiP}…8pàÀ¡ „¢4j. ™õENfš±©Eij,¢Ñ¨©’ýhÚ”ïB€(@¢J"±´þ.­)D!! â‚„¨â¢ž^ƒpH0ÖÐj ÍY¼ XFÃhÔ•f¼Òq©|µÄjX†f³ÜkªÎŸEé‘9àãi%€ø£dìØºe3­€•¥¼H*.Õ[‘£§gK¹ž…"WmÙyÐ'6!g2uQµõ´EÊØÐôÒͬzÍÖì<Ýgm¤âµ.žkß(å9eÏÿäé'ÍyÛaÆ3qðè7m˜s{sJžSÌ‚EgGah©,-ôÖå`Àý  ç—‡†t9±N¢s+­2f×¶›þk&ý¶Ùçüù‹ÇΌ׶Wä·fëTÞÙþëÔrõFØÖ›GN®ºî1?Ü^‡]·Þ• ¢—ök¶®ÌygØmÝÏs]`ÈO{†”þh¾djóã«"•ª¼ø„b³ h ^&$ƨþ&iè*U%-R%óÀÈ2âdÀWæ(ß2‹Ù—¾ÿéÕ“?Ï:å¿ELš­Ü?Ã*`z×Kù ýtªjµ±õ´Eʘre«½¦Ë÷ŒÍ[7x_*ËÀ‰ñ;?{¼kÖñÞ[Ä%óCV¶û]ø•ÃhøÏo­Œ–N?šæÝnOäÙeäÆqc¦÷°|²gÁÈíay,èTºRØmÕšÏè3Ýox¤€à»Åݦí1«a… Œ?wæÊ-yED:+äÀUAOÏ ÕG‹ rܾ$-ÈÇSVZŠ¢Bÿ5áSÇÿÏ%Šåý'Ïþ­FàâÞ¬c·^,£{gw¹Lšú*^©(Öæy§(ª*M@Pá*ÿõÁÌ­lܼ8s͇•?Kàþù¢Ùv©[¿ /.ûM–ñ<º²ã´å)Id‘ÁÏÔBVÍïeóû±¬¼¤|0iÒΊ’Ì€À¦y+#ÈM.Òuâ`èÔ¥¿-öi¿"´ JßÈÐD¿‚æYv;ÖŸz¸óhXV‰ÛŒIȃþc{Ú:•ö†s¸ûöØßœ·æK€Èg}ü±VU8êX¬}=¡‹¨cO-ô:¥} è7Ÿr@zÅ`¥ÿˆM/• ¡_ÇžŽÂ°8ôœºô°†˜Ðd•Nµžï÷YœßŊ“CFoº‘T È«ÃG,}¦¨,H“¨4˜½ïùΤQT(U­J™/õ]Ñr€±¥ˆ²rÁ“€9“·];qySÂ2ýEs¥[Ú~*¨ *íJ:êä‘ÇÓýºØç£¡¯-$ž“7|Mý9*ÜÀÃà è—?&®ß?éŸ_’ÿÏÞU‡U±´ñ÷ J‰¢ˆ÷*‡Ä lJ1¯^l±[00®(ŠX(!rT:ˆ4*ËéÝïR=»Ä‡îïÙçá0»;ó{kfçÝÙÝç~}à/[××·t Q’šh«!ìpÿáþ.ÝfG„öO3w· ÃWT«LÉIL‡ñ£§ô•|ùÍ‹ÉZPaˆ*$A‚ Må’•;)*w"UA‚‰ÿ¢FÊÊ+ÈÊ+:!A‚Ä}•Õð“_’ÁÑñŽGØÑéw9pö÷Ôšº-¹Ñ' ô< Ø,¤n+=;F@PVðê°YH£˜}ÚWf޹R 4Ïߦ—ÕýážÊØ,„ý2í¨¶¯•‰ÉõÏ(€0ïú؆–‰¦¾¡‘›…$øÌã½¹_\ßEÓ”†,´³^i;u¤RE$n»úàÇ”CÞ×pøáãn¤H¨ [;Ìù±î‘6 a³>ׯLz›Ž4+Í ¶-šò¨mg2ß±6 I{lQxØÉÉóƒ͹f—¡F™ IDAT¥hà!±Þ¿€ÍBØÑëh› Gû}2¬Ï:p2ïØ1uUWn‹z•uÈP…ŠæúÛtÐsÍŸç™øš…°YHʳ7çì5¬ûå'u°½Ýù\, a³Êc®º3;P¿›6ZЦÚO¾6ŸUxÏÒæ\¹cP›UùòÚÃÚ×µ/ÙušÓ=½íÇúú3-/§×ºE“ŠoJa®¿aæŒ×†—î‡U°Yûeæ÷mc;I¨šXÓëÕ±s÷“3RÒ3RÒ3Rî<¡µv«¥ê ¾ª—{F®ŒÃšá6èn¶ëÄ夸W›…°£S<ÿZ<~bm2 WQ­2%šãg­¨¿—ãè“™ÂBجOÍqql…ïP! $H A‚ $H ñÃA~ßD#H©jõQ‘þ63ƒò?}ÈÈç/÷#A‚ ?xß7œ8ËÃÚ÷•ž¤®9°½KAj†´&©®ö"é¥$Hhï¹q©æû†tR$0naJR!©$H ÑÞ°ßâƒJùY¨ßH3¤5ÿduµqH/%A‚Äï2ŸE‚ $Hh·sÇšOÓ·cþØo ©Òš¤ºÚ‹8¤—’ Aâw•TÁ½Ç‚X6+ÄL¾å§Rd{èN6¬Bkrã“§(í*K¸¶u ä¯KŸÖ}E0 ¹mÙƒökúF»vì(˜žEØ+zÒÛM8yo»ØöÜ¥´i…m•í:ÌÛÃD²ÝnÐèƒ,Í8ž—rvé,û ÕíXä?„3V]ð.æU‚µ‰K´mm¿šº¾•® 7>ûÜ"óÅÓù?Ýc¿Sðኃ¹ÝÙ4þwP;VtpÕB ssssë}QåØoß‘¹‘Û¯;æÖ^b7d¶ºÎ¾Ìv“t³ßŽuÑ5»yžÎ'o£½/ËPZWÇÿ‚‰™nˆ­¬=^Xš•Ç®³/³ÝÛn ­–éªm²Þe^úAÙ¾ï…Cþý/jNüx¦kd5È ÷~~føåÙÃÜÙ<Ð\èùbÛð‚û^»ýãòjCGê¢7ŸLã“—åß@b€Ý€ Ç&‰~#òXEÄAg“@AJÒ÷üdUeAÀÃã¥+z.‰¬s]¹‰îËnë='øs“w¦D•¹e˜Hð¹\Dú!ÍôÞv° öú ’Y_¼-]oò=Hé.ópߥæ2§:~—õ®b»Ó‡'wúE2Í åKæ~cüâ÷©¹ Ⱦuø<{ˆÃÚIÝè4¹žZýìOØCÝ‹ß2gM ´4b÷Rw–ªÁüézêòXynj:¦o7«ŸÔ/̹Ö'ù–›–‘T—ä¦Ä„ÞÊéh¼~ó˜ææ¹é¾»÷dÌ:¡ÓSºöD‰ÿÃ%Ú¶¶¶UÏr“ãPYauYnÂÀ 7£-ÇVþ¥@ù¿¤kÓ^§&„a4G‰u—÷Œ‘§|m~+fíú«¯x4OíÄ—'ÕS–©Þ(ÁcŒçž~ÈB^lÒ“¨»+ž°Å|sô”Y+ï±XH&£)ÍHëxF³ŠüVÍ××ù[G×d‚…ý¸n5B‡G#XÈÓýk§èO˜ºøê3ábÔÒ$Ã:)”Í\ËÞùîY»ƒ"«³'”Uzw›“é0==³gŸ Içí»Ó€"¥¬Ñ·OoE0{÷íÓ_£O õ.5¯mÿÚ > ¯-òtù.ý4úô×™vþÖ½ã/X všrºœ²p­ßIh8¼aÇÞ™¬D%T®Û œü‚jšœ¨zª.G¥Ðå¤)y…Öt…•Ïï[{ü ÒF 0Ì~Å sà “­Ï‡Æ#¯LS¡6áø»Zéóø¦$‡Ö96MÅäJ«òÁ®U“™S,¬v: lÖ%0¾GE%$û»=‹OX­! )åî};IQ€ÞgQ`ùSçAÀèï|aß>i7q²þpýQ£§N6Ь "\ï%dØZßÀ5 .dljABœÆÿeæÁB2Êüb4ëÃÎ!2Ä4¬Lè¸=€Âð#ÏXH„ûFs¦ñæ×;õ«ðZ§6vâz<ÃhôÄÎÁñ¬ªóúоC˜Kj9¿cGz”©9æ‹åŠÍ =âl;dÃá )›gÙ~Qúõ ÆI¹°ÌÂbÙáÿ^¼~ýâÖáeN>iÜïŸï¨ñG¬a*‰7¤H(k ÖÑÑÑѤ¡"RúÕþ×W2¯,¾èl:™W–NŸ»õzÔ›VdàÎ…Ó-¦;û/"îõËÐÓ«§[ØœHæ`Õ‰§,æ¹^OLKzá·uÅ‚ÃqU¿Ê´ešÀ8EÅ|PÒÁ45Bo̸™‹k’Yfå&ºÏŸî|3¿&c-*øo¥ÅBDnç¸úG²Þ¾Šy[$Œ›êãdaá°?0<þí똰g‰¥"Bó9×BN]{à !º#Œ¦Zoð QçÚŽ!âÏyz†V@ÈcVù“Kg\¯?^ø7n…ïGà·%h¥•ñÝ7ZçØ#·ïšÎ02ßû’ áUK¼:6}ñ‡ëQQ‹àUÇ˺]±R_[ùjß3O÷3œ×”›ô,Žx–Q/'ýzÀý'_Vï½ ›ãl-4 ±®JÓb_E ÞríTØÑÑÏ*£×[j«ËSӇР°2‘à1¤ìôX"yÃÄxw4@AÚl:þ?Úhc ª°™O‚o†U¼ˆ(ì›yaîÜÞ×÷°mæ±ÂÖŒD$O&Q´Ñ0ˆb(µÃðçýsn»:̾µÀ}sw 0EQ~šÏ¾ Þ„}'úIÀ!ºZRË6ï»<òäbÍ”+Äš–(Ša†¢u;Q ÃjAQ Ã@¦ûÝÁ0°Ʋ9Œ1=¬(Ä­ Ïâjibi—Ý/(¼á¾åFmå‘~Q6º&J”_ϘMj†ÒÙÂã¦9Æýœ~íjHHD:¿ßL—ù%ØøfE±zëSІ1 ÙžºëhÔXž“ê³÷gü¾“Kû5ÜËå¤+k¶OÖ1¨½Ô_]ÙŸ+Ro‰¯_´ÙÀàË~§.äO˜qûÝÒ¡Ãée¹‰#’sK84 à§Ædsô´¥kãD ¯!™6pþu%²š~¨VWt§»œó—<&(ùÖdÄvo,ÁÁ=3Åš^Üñ{/<¹XjõUÜ6ÓúÀà LñºÕîà»ïVõ¸=^Žý%íö©#„a5n,Έò}FŒþ[C`°&ƒ½HŒuˆxâ9ÒP À!ß¹GÏž5ú禞ÿÙÝ) $È|}çltî’ë±4¾ª¾¬2çmbr…˜ƒ‘6;¡ƒw oxEn_cÚ鯕OÅY% ÐOW…™-F'íÁrP”].~’ïÅ{—³›ô†m)C(T)9©Fë˜hÊ ˜Q£=/Ç~ª½xæÇ¿-†I Lºøùå}5/—7:šzVÝcÊÌ©|ÕÛ“~e0ÎP*BBmô𸸶€—ê·N˯æòIJ{ñ…ŠûÒÛÌ,}à¼Ê€‰#LzHĦñ@²çcUH‰Éæ2¬AÄÃéi†'/ÇTU_³˜wèQ À}õ›¬rl–¥Ë›jqwN0^5¤徸ýÿݴѬ+Ά³šjK,ùº±“pä•eiPÙ x¬,h…Ý‘¾÷½w•Ú¸ªÂ}膘 €f(J¬)y‰¹¼F§Žõ¼f3g?Ý9îÜ–ÞÜÊÄÄ"As*/þÿÁ°R×7QÅ’^ds‰*¤´Eo•• M‰ÂV965=2ÆžÒWòå»–>m*Ö£¢’(UÀ +½dsÔG‘¶e¢¶Ä¾hï]ËníO«nñދ˰•¾Ñ‚X×3?Y>J@¦y4¬Œ» Ÿ!??ù3L<\•ýUÆæÿ‰”6t€¦û¨ˆ" Ò(”ïæåùÅ ;@K‰]-lQHÔÏʰ/fe"¨›gb´nÓö^õdÏ*;@/ÅP”¡: íAÂëO|î ¼N¬ ÷è߉V;Ÿû%¤¨/®yIZÇ ­rb(Š5þ @¥Ó( ‰P ¥JeЉP•PÖìBy a¾ÿèÂ>_L0Qkö­„Ê£ÙŒf/Ïðqþw»{¿‹[4ðÍŠÉvV€ØÔüjQg9JÝÃXß(Êš]©! ¯?ò5zÔ/if´\D>Y3 BìF;Ïë'Oû,¾~èh±ã’`ÕIç×Xn×ÞqfÕ M†Ü ŽE©Ð„K`*0E+žï\~X¸âÜ©Í) útw½s`Í1QmD‘"ß8nm÷_ã½kô¾‰5IÑ×Ò,Þô• P CEè7nдõ‰ýJP.V·4Eu¸Ÿ–R$ì×…€Õ4Û”1 Ä[‡ˆ'Jhßfê%G'$Hüà|¿$;ƒ3Þ;6Þx)17.íï©•TÖ¸7Òó(`7:>̹ç’(AYÁGÔÄ;6Þ¸ÅIqOÍ4¼ø¶Èó·é•e}ØóA™¶2„Ÿ“ž·29]‚ y×Çýkö ßÐÆ겢²œ7AñÅõWè4¥! í¬çRT_ÇÝ®[„ÄmW|nâbçÐ0ƒÝdùøöÊ–ÕëÂJ+ÃÖsvr?R¢¡( €ñ*ó“"Ò‘fÝÆÛMy”ëÞ5vc4U%€ÿ95ú°Ó>ÏBȹf¥f¸i§Q/¨J óÛl8â^¾€˜aýøÁɼcǼã¤eõêüÕýû,×ߦÃC]Ç=}†õ’U¤Gz/X~1±v¦ÏO8ê`+çv.–ÕE„%Iç×9­‹(ÿNÚh)šjK<ùÚëòÂ{–6ê—öUìd e)ç×9®}V†/ÙušSçÇ'UùèO¼œ^ëhSŠÂq›´ðÌîÕNZîKåóàøü›·¢ò³9X“⢵ ÅgFª³Âãrç Gè¢â7¡~ÿèxôIø¢­'ßrS„C«Íñ³V|:zíŸLS-U€°üCÜ}6Òœ‹ñE•Dùž·¾?ùÛ¾¶xëce…ÕÈàÛèÅ9Í{¡®÷â0l½Ú:–‰Ü†ÀÊ»ðŠØ§gu‹™çáZ©­H%eÊä¢ÖêHis ¨°u:l]˜ÃÇ›¦Å[öxå¹v—~yÆ«éÕhóBDÍ´¬Ñ¿5- «ýAQ1v¹4 d˪‹|À0 …QÛ®ö{uýü:ëW¹Õ ÛýïÉv§®ê*Ò•F»ÿs4ý¯M‡‡ÈR~ªu~Sû–¬öÇÒ})i£r `(Ô¾?…ŽÌ]Wû¿¼á½ÁŽ•])š|Ï1¶›ôÛÍ'+¾Ð VýþáeßЗÉ9eîÔïï ÛNM$€kVŒÞ}ö!÷NÞ^«çî-ÐdUû ÖP `_» @GýWûÇ]¿¸ÞöUN’G-q]mØr~mMªtGYˆ÷°µôIÅžZº£ÇÛ ì&E_¿Üûk»§” hzëY»,Ò–D1аݹŒë¾cîmèÊ:ó7oœ€ïµn€Êém8°èÜ©æy–‹@B¾“Öi*†bDµD ^CXërM„0í" ù­tSqÆ1=~å õéÓN¸®ào;º¤Ÿd“â¤ÔZ¿ýVœq3Àñ+ÝR”Œ÷\êzáør«´BŽ„joµ   ŒØˆDÖ!P;¾}[ ò½Z$Hø! ðy\¡8ˆÔÅŸíRªZ}T¤¿ýÞ%Êÿô!#ŸCŽJ$Hh!dúÛÍ\™žõ¡(i®Ú8oPÔ†!N¡ŸÈçåH´jÎ[÷‚cPCE€ 1ôø•=ãÌç íû[2Ÿó²ºõÒlïRš!­Iªë{Š#È M¤vîª"G­Ê޾qùAùØ]î¶ZR¤ÚI ñ'"ìÞ% ÖÑF'uAã¦$’z A‚D›¡:åâ¹”Úß/c‚|*!ñ=†/À°öÿdËï!©Òš¤º¾›8´®Ì‰]kkjÿe²þeP¤—’ Aâ÷™Ï"A‚ $H´ÛÙ#Š1¤¤}IΤ‰IqH/%A‚ÄŸ2ŸõÃ4ÝcÁ‹'ëJ–L­lá©ÙC´„1OŠÚßs:øä) FÛ¯ü7qŸk»óï¥Oë¾"èÎ>ážþ3sD¿ o´kÇn€‚éÙ¯ŽMæyf ÛG8yo»ØöÜ¥´i…m•í:ÌmHHJµw¸(ý7‚Ô iMR]íEÒKI ñÛ á}IÔ®³¯"ìë› uô &¬Øé]Àf½vÞ±æZWÇ;,ä¿£´4Õn½»ISëÎ X§§5d°î„9ë¿eUݜߗCþ½‡¼Ú­_ÿe-™áÞ,Ö»µš’š O²ãß[2{Œ®¾Ñ盜ú‘· Ä_¬°;°sR/ÆïE«ˆ8èl2oíá¤ï™Ì¢ª,¸Î*=«/ßP$7ñb0¹Ss^ö+ªÌ-ÃD¥ŸËÉÄÍõÞv° ö"A‚ $H A¢=âë÷W²ß¾ ñÜjÛuĺœ…g"Vj4|´£*ï]*;±vûÇ©êÉJKKHJ}›”šZ„–då•7ñ<6UÍâk[gIzCVž xΊ 9¾oïÉ´†×Êèºf²YûÉñanÐÔæœx†°ŸÞßf½p¼¾‰ñܹS‡w¨•Aª§þ,S½Q:ƒÇÏ=ý…¼Ø¤' @ï± –ÍJØb>‰9zʬ•÷X,$ÈF³É©‹´Žg4«ÈoÕ|}¿utM&XØëV“o£tq4‚…<Ý¿vŠþ„©‹¯>c!.F(M2¬“BÙÌ%°ìïΑµ;(²:{BY¥w·9™ÓÓ3Ûxö ’tÞ¾; (RÊ}ûôVdC±wß>ý5úô×PïRóÚö¨ â³ðÚ" O—ïÒO£OiçoÝ»1N¾±otšrºœ²p­ßIh8¼aÇÞ™¬D%T®Û œü‚jšœ¨zª.G¥Ðå¤)y…Öt…•Ïï[{ü ÒF 0Ì~Å sà “­Ï‡Æ#¯LS¡6áø»Zéóø¦$‡Ö96MÅäJ«òÁ®U“™S,¬v: lŽŠ<Š(*ñ ÙßíY|Âj I H)wïÛIŠô>‹ËŸ:’FçÛûöI»‰“õ‡ë=u²fMáz/!ÃÖú®Qp!;îL â4þ/3Ïrå”Qæ£Yv‘!¦A`eBÀí†yÆB"Ü7š3Ç0¸ÞAØ+zÒ[­6vâz<ÃhôÄÎÁñ¬ªóúоC˜Kj9¿cGz¬½ù£`z¶^QÍ =íXUâ•]+­Í˜L¦õµ\Â¥¨‚‚ÇGœ,Œ˜LCóe‡5ýN¼ãÛ{9‰?hÙkßíöæÆL&ÓÄÂ~×­¬z@^í˜ÀdŽÛUU[ *´e2™6¾9BAÆÙ9† /g Ⱦ¥n'ãÞ¡å³L™L¦ñÔŇ"Kð¦gÂ¢è ›¬&0™LSs뎄°ò'Ë™bàpïsÎ5ëÚL§/Ú|&,—×êF}ï¾®íbåáÿŒ›äò «´²ªŠ+j²ü§ ­úÌï­Ï¶©§%£'A=hqäÑU ¦3™L¦©¥³{Hû™|êÁϼjoÀdÚˆ~ŸßøÏbÕù … §©Â€ôÚò=† P3±Uæ¼ËªªS»lMÍAˆ¤Réê"žòè©c;E|$jUMSÂI©7¨ä€ÝAçÌ#–éíN¨€jÖî^š»¿:Ks±×³ìe£m.~Û#ÓºiL\2ÓL»«")¬Òh³1u9²¼˜'÷"*^„¨ðž9»—¯›0¬8)Ç<6Ûe{ö°ÞíÛw¯]L¯‘WÖp—‡=-ÐØlO,"CÅz<¾tmûC5ñ]‰0=ÂF²ËÄÝê“w2n'Võ‹ƒ^u…Š›íµ¯nOàp‹ÓßWu,€ ôÃûŒîOÒÑY¸ma¸äAXYV tN!ç› ™ÏÁ¬¦…\;±ÜÏÌ… ØvÞQ%h3¸CEẠÿcZ‘°«¼Ê×;; ÷LtvN‘æ'}äk¾žOTÀ¹¶cH€øsžž¡•ò˜UþäÒ×ëW'þ[áûøm Zie|·Á ‡Ö9vÆÈí»¦óŒÌ÷¾ä@Dx•Á¯ŽM_³ázATÆ"xÕñ²îGW¬Ô×V¾Ú÷ÌÓ}ÆŒgã5å&=‹#žeÔ ÁI¿pÿÉ—Uà{/Ãæ8[ B¬«Ò´ØWQ‚·\;vtô³Êèõ–ÚêòÔôá4¬Läx é;=–HÞ01ÞÍP¶›Žÿ6ÚØˆ*¬Eæ“à›a•/" ûf^˜;·÷õ=l†A‡y¬°5#‰öŠÜ …[Ž-ä%™³4žè@>ûäüEafÃ4 Èò±;'ù̵ý%[x<¥—K’>óæ²Jý3k7w¥ßéÛÛ¿¾EÀK9¿7FwÛN‰#¼¯­T{Û’Úq¨œÿªÃ¯nС“}Kã¾E˜ã»ØæÞØó¯¯#¾Ÿ‰;Î:7ÐËïÞÞ/¢n쉈±HÔú)¸;îyÈÕTœ{ (ŠÓN¬$XÕ«½sMONó¾êз¶RRR 2ŠJ²MX§ïêÇ‹=hë’9÷±Ù= È \iw¥ëv—12ï[Þ‡  Gù>I)Êt6ÅÉÅѨŠs<£0ÈaÆÁÔr»†ÈŽ;vk«®$N¹4€àcøÙ'n½ÌçÒUu,œ]œÆvaà—· pÇAA艃—¿Î*ÐûµZ·væ9j‹ë¡|ç1¨¥õH6{ôl¢eýUGõWÕö'ÉGæX/-»z~nwúÏâS›ËZµ9kÎòÉŠ›’[[O ùüŽÀõrFß9»äz¯ª/«Ìy›˜ÌJLf%&¿Íj|Iä°Ù ïž…ü»b¬’ÉÓN4g•€B?]•Ú!‰ÑI{°e— €Ÿä{1FÒøì&½Úç)T)9©FlhÊÖ+wÛŽPkЄùño‹Ak‰˜>AÞèh꥙Y[göü—Ü@ƒA+C+pg0"(T …°-à¥ú­ÓÒÔ•Õ›?ïÍL£3ì[ëzÓ8ï£2@u„IÚ{ä’=Ç«BJL6—a "Öª˜]ÓñŽ©zð¯©R¼Ü÷Qï1È?:kŒœ¦®lÝÖ§aj„ñªù ­(÷½ï¦fÝ j8«©¶Ä’¯Bù@^Yö‹XYÐ »#¨Õ½Cæ‹O\XUán¸!¦¢YŠkJA^b.OÉèÔ1Ýk«§;<™xrËÄ•‰‰E‚æT(^üÿƒa3 ¥®o¢Š%½ÈæUØ’¶šgeBSâ…C뛓™ª£§ômÅ„E¬GD%Qª€VªmsÔgmËDí­èï®:e·®§U7ç²[¬÷â2l¥o´ –Åy²|”ÜœûEX3iXw>C~~ògP<\õÛK…ÿ'RÚÐšî£ ˆ€J£P¾C˜ƒ°<¿dh)‰»¨j"ôHüv~Š}ñYyôhÉ'ÿN™üÏ#ê}µâ¨˜‚–ßÞËIOøÓYÅÏýã`„͸ÎßôÇÂì€ÝAJŽkÆ®XÞ%ÔíjF‡P¤´-ÌpÙB¾±òK}Œ¸Ÿ!øxãÈ¥ˆäô„P+¹»b_ IDATñ+î|§#ªŠÉ¦šOL ¦Ù®ÙuâzT6§ùŸ=¤È ´«Tð04³î.› ÛßiÆŒeW³­ìë¨ #6ܸµ4oíäÅÇ–NY™awãÖ–1©-ïCx)ÇfMÙdz>yûiDDă€£+Œ:ÑñûXªê´sO¯9öbôûçÆ³ˆˆˆ­ºÒ€WŽ•‡¯›¼,†¹ÇÿaDDÄÓë;ܰ¶õÉà•ÿ1‚ÑÅlµû•;O"""‚ܙáÎv§Ù|h«±ãgÕÓ¦c¨¨àæâ𥅛Ж\=‹ŸÌú|ø™WæžTÙyeóÈÔ6¿6øSóYü’ì ŽŽwl<ÂŽN¿sȳ¿§ÖÔmÉAÏ£€ÍBê¶Ò³cäeѡޱñ›…$<ŠÙ§}e¦á˜+"@óümzYÝîù ŒÍBØ/ÓŽjûZ™˜\ÿŒó®`h™hꉰYH‚Ï<Þ›{ñÅõ·©iJCÚY¯´:R©"·]}ðŒcÊΡaÏk8|Žðq7R¤T†­æüX÷HH ›…°YŸÎëW&½MGš5¶‰m‹¦0ÓÐpúžn®÷ž» Ý;½ËôÃ[½V]H'§v”)­(ô¡›ö,fÐlæ¼ÃºÓ[ß±*’ê3óÀ툈ð o-NãàÂŒ±Ë‚ ››Ó–ªù. u‰FïE~õ˵ZÕ×QäNŸ®žq30¥Ë´™: ÔÖôu€Ug'—( ªÆø¿úX<>'eñ•úªÖÞG£*™xxÕFWþÝLjêø=S ç{<ýPÎGh Æ«ä¡-®ç{Am5öµªZ—ç#""""ž]`Þ[8uÛ+ü,>•ak­N%FížaÈçTн?6ÛÔé~úùü– ðy\¡8ˆÔÅŸíRªZ}T¤¿Æ¡üO2ò9©"$H´ 2ýíæ®LÏúˆP”4 Wmœ7(jçÐOäMt­€†a (Š¡"@…züÊž‰³lÚ”ó)3§¬úýÕ {’Íöì˜ÐY¶S¯žŠ ¤¦¦jiiÕÏ’²./±¾$¿Øm>5ú¸ËéÂy/Øö© >\°²¾ˆZ5zºïøö^ßh¦} =rþuÔÅI>½d©¿„ŧÉý¥Ë3â"²†9-éùòßY»é;oîUóÀ[Uôæ.ÜM7ôh?/@ïìUGM AÆykï\Pw¸zѪ'ã²>NßÂgŸ±Yt³›ã®åÌŽ¹w÷m”\yÕÓ¢ ížÕ¯ö»ÜUk¬«Ù]žË~xúൢéç®,ת½M#æyÃEó.©oq·îZ–îçu-Ugëe·qªTÜ> 7#„û\ö…¥Ëîëº_\5„úîÄ¢•QÆ'Î9 ¦´¸ä¬°öâLùwÝ,]e~æó‡Ùº‹fkHö±Â\_;ëÇ3ýÎZtúbRôm9†¼9jãü çb—e¦½é¥ïã>.6Ûä8H§¼Í¾')ž?½Õ+ð_üv[Ó'ÿŒzˆFÏæ×CýüøØù÷½Gêôî$ÃÍ~î{ôjÒm~ûL•©?‡Oc=pÎvzgåÞ² ¾»~~Ü¿î³dÁ::ÐÈ| $H A‚Ìg‘R3¤5Iuýâ^J‚‰öŽú|•Ô $H A‚ $H A‚‰v2Ÿõ£@ï± –Í 1“où©Ùº“M«´ËGdñÉSŒv•%\Û:ð÷úŠÑ÷”KÁô,Â\Ñ“þ›iãGÈEW¿úè«ØX„ͪ`…¼8n¥-ÙŒ]¿;ižÚuöÕú×#¶ª§ú‰äh/ÚtgNë¾"˜…ܶìѸ9ùÑ—X¬wk5[æ\­;«uø]Û"A‚ $H ñ{¢a"@í:û2ÛMÒÍ~W8ÖE×tîæy:Ÿ¼Œö¾,Ch]ÿ >$:dº!¶²öxaivVºÎ¾Ìvcl[¸%´Z¦«¶Éz—zéufû¾J ù÷¿¨9ñã™®‘5_ “îýüÌð˳‡¹³y ¡¹ÐóŶá÷½vûÇå3Ô†ŽÔEo>ÙÔGèÿHH °;0á‘áØ„vøñ|òXEÄAg“@AJó^¿ÝZPÕfxgì—?`ïz§B¦ë€±ë7ÏòÖm¨Õõ¬ï¤Ì$W;ÁÓ­ë"Ÿ[žƒßÙéó†­Þjý×Û]º¶7ë¬,9lã•›S"L GDýîG‚]Ðü€²@ï6'"lc›ÔH‘ûÛ3ôìܼKˆ°išóþuuêþÐÜÔõQ9ö uDߢÊÜ2L$ø\Þ¸­ÊË—ßOõ9¶5ÄÜ%©Ù#]ëÎ" ºÊà «W-_cØ Ìgî$§úס¶y[»ZÙVë3—öj¾>êv5šß{æB½N¯€E«˜í=úʪ¡H†/~ÍÖü“ÕÕ^Ä!½” íLûš¿_ߨ®d¿}Yú&2<万IЋ3ˆåßGÒkg¢UyïRÙ_~-¾f}’•––P!]ÝS‹Pͬ¼r´©ƒÅ)Ö6å=“ôö°k¿´Òø]פ€™ªPzqÎ$çøºO®ÓÔæ ¸`††_¹x5:£€ÃPí*÷þ~ðËr¤zêOé'È+¬¦* ´Þ¼a¡lÀX“½1 ÷XðâÉ:éKÛ7„RÕþvr±3Ì92t¦›ø3(Ò:žO½çez¯<–VIíÐE½·è奇y|J‡Gîž¶†n9|'‰¢eµÎÙ‚z}ò”=aå1Ã:)”Í6ž ˜/8¶Øq{t9 @‘Õq»åíÈÿÏåÈW•*Æö·Œù°ÊÌá\®ˆ"¥Ü·[§ÞŠ `(öîÛ§Š¢ò¼œú#µA|^[äéò]ú¨I3Ô&÷^üq¹Á„ÐÊzßè4Å‹í¡~j†ù†Hh8¼¼oŸ½z‚yp †¯("·@>$'ÇFãY¯b«µ?œ=¹Ë­“¹"ͨ—à¬6—‹¦bârȼø®ë±Ð÷Œ^¦óä5)DÂè6¸Ú€&åj!yè9÷°§^òbƒŠ¯\º0vò¶Ow\µ|aè÷•RîÛ­S_eI ÉõèÓ§Œ€ò>åä• j]Tü.‚¨lÊ[žŒûqFikÍõõTõ*ð)8üA\ršÁ ]¸l‰Äÿó~Jbò­èˆÎjÃìW¬~Ϊ[®Z=WùѼñƒ¾JSùüø¾µ‚7È×¹)·97ƒCά¾izà·¹,ÞY@í`²Ã?hzNg¹fþ÷wjøÚŽ9ø¶ £„ƒ„ʼnÁ®öwݯ{s4a«Úú܈F«Úš³Ï}xšƒ‰»¬ËÞ=Â+ ×\qؽ°Ûg)…íý’L‚"’’'¿Rô›h†´æŸ¬®ö"é¥$Høm€ÿ VŸPzš* ¨ËgÉ÷2h@ͺ¨2ç]VUÝìM¶‡¦æ DR©‹tuOyôÔ±">µª¦©Fá¤Æä×M¼$ì:g±LowBÍZ®jÖî^š»¿:Ks±×³ìe£m.‹ùŠ,M¡›ÆÄ%3Í´»*R‘Â*(6ë!S·à+/æÉ½ˆJ€aê¼gÎîåëF<íã¤?òØl—íÙÃz·oß½t1½F^YÃ]ö´@c³=±ˆ yëñøÒµí5ÖÄw%bÀôGÉ.tt«¿#-càvbUo°8èeQW¨¸Ù^ûêö·8ý}UÇRJ?¼ÏHáþ$m…Û†K„•i•@ç~3mD?o°šríÄr?3w6`ÛyG• eÌàd …ë65èõü•TÄž›6úÔãB¡æ“»ãª—Ð^m,WÆÈí»¦óŒÌ÷¾ä@Dx•Á¯ŽëÅY|èýH·Á·²¬®\µ>šª_= Í+ÎL)ôÅ%/¡Ô½# o?–g]w² ¦g ÿÊçÀÐî øÈÅ÷C|%°òûMùaK{áhÍ·Ž!½8¢OwžŸé;ÕnMî ú°ñv“4sïø$#­^œEL¾5þY¹j~ÇŸóô ­€Ç¬ò'—θ^¼:©÷¨€sbD@"¶¯ñ»¸9dÐÖ·ÕÍê`ñÏBËo™ x~Þƒ˜C´L·É#gÖz DF`‚6l«„˜F+ÚRìÖŒO¹Ñ›V=D‹óù½JøÐ 0´=|€—ªD7X$ñ÷š¢,ð D±Þ܇‘¨°¾/¾‚®FŸ¸Nj„6ÊD/Ïpï=k8ç¢Jüñ-*W4—]çð…Ë‹â9{¶¹)ê0{©±&´Ž€¤ nmç&—ß&|Äj¦] =rþ…ÔE¥ôž.9q£[G–ˆý¸·‚kýAr¨Ô¿n jgÿnaMG^ã„/ 'o "5kYç1‚£ËùEÂ?ÉúJÏY’fÆtuu 5‹ç¾’_\'¾ØÈËSáoÉi‹ý{R(|ìs¢ ì8ïm5}‰Ÿ´ú7­å© ”—Y³˜ ÀÇò_ Â.ð’ò¡uBï¾®íRäé6>R‚ãÕÿÅb"Æå5Qþs¦ï-”·eõà{ÔϱKñ¡*Ñ'­—ÔѦÊÐAðY…òåc?S?µ{{J8œ”ì–É;´Š_*ú|þœ|£ïœÎ]r=–ÆWÕ—Uæ¼ML®wœÃf'”bð.!â ï¯ÈíkL;ݸò©8«úéªÐ"³EÀè¤=XвËÀOò½cïrv“Þ°­1e(…*%'£ Õ舦l°`5ÚórlÝÇÝ…ùño‹aÒ“.~~y_ÍØäŽ¦žU÷˜2³G*dõö¤_Œ3ÔˆP P)¶€—ê·N˯v@Ð^|¡â¾ô63ËC8ï£2`⓱i|ì9ÆXRb²¹„ k±ÆpzšáÉË1UÕ×,æzT‚pßG½Ç&«›eéò¦Z\Xa¼j>H+Ê}q#å»i£YÃuÃYMµ%–|Ý´…pä•eiPÙ x¬,h…Ý‘¾÷½w•Ú¸ªÂ}膘 €f( Ï”ðÎqŒõ¥Ï˜¬Îêèë–V:¾O•¢„â«·im'5=2ÆžÒWòå;œ‘Wdñ)¦ï6â´ÁÁ—KB{é©gV*_URäo;Àõ >y~ÊÝÐû9+ •ÂïÌj§IV㥠¼‚3¹­ì‰ŒÒ´¶ ?Ò(œ&= p2 RT¨D›fH`¯D•y§îÚÍå\àãã²Õ8(Æý‹Å¼œßª¡–ˆ|ë:"ü³ˆüð«§ã¤ÔõMT±¤ÙÍr6kýÒÀ‰GMvŒ«n®)ÅŸE‘¼ìI MžÙqÿ‰¾×sÉ,§°2ôÿ ‡6k«4ZØVjð£\«©KÇt|Z”¢Š£L†I€0 mW[¢"ÁÓ‚§5ÿHÓ,}d»TóGEµSË)è}¥Ö§¿^^éš@§{ɭ퇸Ÿá%ªñŽÇZX^r«jó­:¯þ[zýfÊý ´nÎ^oWT8öE»xÇ·Á7ši?ù™vÇùWQE‘aç#-qºÊkçkJÐLWÑ3ösDŽRãûWþ—T—”)q§KOKFn&bµAE¢þŠõ±,ÎYèî(糖Ջ¹ßòT0“]o-:µ¨òòÛàôD€ ÝÖ_†±·òì‹ÚK噀•ñOÛr³y@‘¥Ï¼ ?ñ^•‡OÝF‘W¨Æ*«›šƒâÄ>}˜Ôª-´gäy:ú€¬Qçè!!¯OËû E}ºÔ”YŒnŠÀû(Œ;Ï ‰D)8Ç‹T$/Ku«!÷¬6÷)²ï€HˆSΠw¢›®’9Œ*!Ä2ƒ¹ç¥üò¶™»ãÉK§]"edHïÔÐ2Q‚?÷ömky=8m4 ~A‘àÎÁºþdêEÙe UÇo ¢ŸÅ:YÊ.ìÁ¿÷³Òj¢ª¶âó;¢Q‰_’ÁÑñŽGØÑéw9pö÷Ôšº-¹QߦçQP÷¶`„Í*=;F@PVðê°YH£˜}ÚWf޹R 4Ïߦ—ÕýážÊØ,„ý2í¨¶¯•‰ÉõÏ(€0ïú؆–‰¦¾¡‘›…$øÌã½¹ßO¤) Yhg½ÒvêH¥ŠHÜvõÁ3Ž);‡†=¯áð9ÂÇÝH‘ P¶v˜ócÝ#!%lÂf}:¯_™ô6iÖã?bÛ¢)Úv& ó a³´gÁ…‡œ™),„Í*ðÔüÇFÐf‹üMîù‡»8mÈÅ‹Û9NVS÷«MÝõM5!yî;ÃÃ'žÎe³vXðÄ—Ó†OqMnõûøˆŒÒ¤½çê{,„ÍB®OU£þRFiÚ£ÐÏwç,ó¬ ©d³*b}t$ìmì%ʾb=øŸ÷‘›…°_åÌJX=Õ¨q2«eŠ""ߺŽÿ,"?D«³Âãr GØ,$åÑ“å‚ôGŒ øØL«T¿>lé÷>µÉP¶–ûú,ЬžKð狽ÜôGóf§ø-ëbèÙóÄÓ´Ãä)Äá ©»9a³ŠnÎï mü^ ìHï‘2ߣ­æDeËÚJòüKÿŸã¼z~ëuè)Qi;VÔÌ^ÛÕ¦:Uj°'X$·Wa½C‰0™K·ñ—·5ÂR£P…á´4ÜÚðŽoiy}… Ì°ÞJ·µ:±C1¬Ã( 5e”£ä€~ÔÆR«ƒì'PÃ=¾ÍùÛŸ³ÉéIhP„Ÿˆ„ßìR¶^ʽýŒç,ª»VR•Ž¡†a<áÝ <µ-ÒC•Åj35¦öjõÿ6¹õ[Yçî{†Óm…Í'e,íýºöMÍ_”VߨJõ SËPaÔî¥v“p¸,¿Ô’JmŠ0^ì#¯8{p•Üä—;I:Ȩ]®t; ¨D[Þ‡0¨“/ÉÏàžœW¾qBù6[äN„H€ß®°ç9¡Üe1÷³@t˪|ã„òíû…\ ·\j”Œ«ýÝÎÊ­Ê7N©¸’ÊX}RB…†[ÞV†Æ•W Š?‰¸Ï)ß8¡|ó\$q”ì ;"+4Ù÷~åQm5ý,>(†¡TŠž§Âžû {nËÈûTz^? ÿ > óˆÜ„âj÷Â*´é¾«­øüF[Ã"U> #‘÷ˆþhP¤Tµú¨HSŬ®ùô!#ŸC.'AºM3!ÙwüÂu‹¬öxamázë3Jå×TÔO}€[¨ï¢x'­5Qßû¬Éðû¶U³ôÃ0PCE€ 1ôø•=£^^m7–—$å°["ÿ@Õh#O¯B5äêbVÞTÎe%v~Âæ¥Ï‡îœ=+ù8±‹w_h¦ =rþUÔ%õ·¬ëj°UeÔ§/o¾«H8úÊôlT’çYqüÚqºüúBÏÅœÒ!²ÿ8¡ÁQŒÙ#ùîK¹…Â?Ðú”Ëå—åtäÕ¬ Œ\|žJÿM 6jœ½«ëúÆ¢ë² ·òÓÏëÖgYʯ·yYUgñ€ÒW;eÎ^g^Y ‡qâ¾Nm¶ü*{%ƒ{l·€×š¾¥²ƒ„ã5éÂõ‰XóÛ¥u“\uFâ…metá—«¾)ïºXaÅß¼Ëy¥_ ŽWÞVÀãÏ"³a?ýÍäQ´áS´÷w˜YPµïˆPÐ*ýëQ-åÓÄXóÃù|Ñ.…2ìp‹âªÝnBþÏÑ@ýP‡…_=q!XU½*þ¾|~#D _°dÁ::Ðh[¶¸ÀÙý'É1õφ°º¨°èãço¶ÂÒJ!©¤Û4¢Ò÷¬àëÞ{Ï?NA0Ò(¿®¢~¦èEO¼O~ËûgýH†?¨- °š lÒ “îyoj“]¿òFë*¹èм•wã8/ y%Š Cš•%L‰Q—²ãe‰P‹1Xn¦d&c3žl¬N.­ÝKW—^(§OãGÇ£(áñ-- £h¬S˜¥À=¶›_%ªã“#¤•™8 Ëe£’¥f;1J|gÉ5ÌÅß–|¾ÐL;ÙÚ#ç_E]Â<›!i½YR®XT)¢vþKÂÐÞ³°þ.rzYÈ.;äþ%îÃK܈ú„uŒÂ;üŠÞ’c´E1ÿ J²ùid–Ì£RÊσ„ˆèϲ¾„*­sWªÚß’ƒÔÐôD”.…q*0Qä~ÁSr¨ŒŽb@¥¨ü%ifÉ€γ—¨¨¦~:UwŽ-œ—UûD§´¶¤þP,ý¥H¢/cÌj9‹Âk««?TáöQxnìKÐÆy)L®Dö­¨~šÁXz^Z>ŽŸ^ˆµ´Á8¢ÆŒ’òŸDE•  -ÁÔÃ2“PaK‘§œF˾ÉËE¾`ûmyUŠHÎRÖâoìs&*’§õ+5n –ò -Ç)µ‘¹ñä•è#i ‡Åzs³Ê)§ÈÚZÐ …Û.Aß+Ö£ÐÖC<–ýx>d¦Si4ìHÓœ*c>–’éËϨ‰ˆÏûô€ûðRÍÆKS–NçìŸ_ý¾ê»ëç7Úr»éܹJ*¹>‹ $H ñ«o}ÖÈèKí]´tÓ¥&þ=4CZóOVW{‡ôR$H´wD´®YŸE'uñƒPóEö’åB+[x*E¶ÇP#-aÌÓ„"Q»“Ÿ”Y'¾:U\[„¨z¹d¸îš¬æ˜ÙûÎ_f¬üÊkí죱Å" PT«L)a°}×t~€‘ùÞ—\ˆ¯2XâÕ±™'ýzÀý'Hc²„’ A‚ $H A‚ ?¸ß”eô³Ñ¹K®×ñøªú²Êœ·‰É¬ÄdVbòÛ†d 9lv»„g¡ÿ®Ø«d²Æ´ „ÅY% ÐOW…V[c'íÁrP”].~’ïÅIã³›ô:Ö P¥äd¤±¡)X¯Üm;BÖÉ[ Z Lº0¾¡+ot4õÒ̬­3{ þKn Á •¡¸ŸýÆD(P¨ a[ÀKõ[§¥©+«7þÞ›™Fg*Ø·Öõ¦pÞGe€ê“µ)‘žcŒU!%&›KȰk UÌ®éxÇT=ø×T©F^îû¨÷ä5FNSW¶nëS—£ÀxÕ|V”û‚ÞwÓFsÐ謦ÚK¾(áÈ+Ë~±+ ZawµºwÈ|ñ‰ «*Ü 7ÄT4KQbMÉOºv)Njì™MzŠ_{;CÓnïJê­}ñÒ}úkô€°Ó7¥­ÎÛöj¬Räõ¿l“×Ü:0YîK-‰w›¦ BØáþÌ•ŽI;žöŸØ‘B¨¨V™’“™ª£§ô•„ÿÇ7@T! $HhhqäÑU ¦3™L¦©¥³{HÿiAÁã#NFL¦¡ù²Ãò›¼Ý„w¼ør¬*ñÊ®•ÖæFL&ÓúZn£· bœŒ{‡–Ï2e2™ÆSŠ,©¹[&øqríœqL&“9Îr•gX@T}i—ãì †L&ÓlîšãOóù­ãÓryIüÖ¡RöÚw»½¹1“É4±°ßu+«ÞW;&0™ã6GÕMLD¶L&ÓÆ7G È8;Çpáåì?ÍZÑßBX}a“Õ$&“ijnýÏ‘ÐVþd9S î}ιf]ûéôE›Ï„åòZýèâ÷íëZÕ.VþϸI.²J+«ª¸¢&Ë ÚªÏ[Aßþsì‚ïá-ª§E£ðàÓ0SͼjoÀdÚˆ~ŸßÖgñK²38ã½cã½WsãÒþžZIe»>=v£ãÜ{.‰”|DM¼cã½€[œ÷øÔLËo+P€<›^YÖ‡=”i+3@ø9éÉq+“£Ñ%(šw}ì€Ð¿f¯ð =l¨. *Ëy_\ošÒ…vÖs)ª/ƒãn×­?Bâ¶«>7q±sh˜Áˆn2€||{eËêua¥•ak‡9;¹ )ÑP”Àx•ùIéH³º±mÑ”G¹î]c7FSUøŸS£;íóü €œkVŠa†›vúõR€ª´0¿Í†#îå ˆ6 .™wì˜wœ´ìB£^¿³ú¯ŸåúÛtx¨ëø¯g¢Ï°^²¢ŠôHïË/&Ö®â'u°•s;Ëê"Â’¤óëœÖE”'m´Mµ%ž|–ÑÂ{–6ê—öUìd e)ç×9®}V†/ÙušSçÇ'UùèO¼œ^ëhSŠoJa®¿aÿ`N—îï7ìÓ”ˆ‹ûö& ?±¦×+‡ûÉõ+ܲwž¶³~«åÍ%ÉXõrÏÈ•*I' ›tHt7Û²Éjæ(muy*/?!üüâñ‡ÃË0BEµÊ”hŽŸµâÓÑk·ødšj©Ò„åâî³´öjq…$H A¢IP•õWÕ_Uó/ùÈë¥eWÏÏíþí*y>ûäüEafÃ4 Èò±;'ù̵ýñî'àOÁ«‡"7há–c yÉGæ,o4£Íñ]lsoìù‹××}q›Œûöðb—´EÜ;S-¾·lÆâýGoº•Ri½e¤uÍAœ×n³æ,ʽrÑJk!J å%ñ;ç²Jý3k7w¥ßéÛÛ¿¾WÈK9¿7FwÛN‰#¼¯­$UY‡Êù¯:<ðê?õW-Œèoµ^ì8ëÜ@/¿{{¿ˆº±'"Æ Që§làî¸çi W{Y} (ŠÓN¬$XÕ«½sMONó¾êз¶RRR 2ŠJ²MX§ïêÇ‹=hë’9÷±Ù= È \iw¥ëv—12ï[Þ‡  Gù>I)Êt6ÅÉÅѨŠs<£0ÈaÆÁÔr»†ÈŽ;vk«®$N¹4€àcøÙ'n½ÌçÒUu,œ]œÆÖ¬2À+oàŽ‚‚Ð/=~U& )ökµníÌrԖ׃ӷ3Új j)o±\Í…ŸÚ\ÖªÍYs–OVÜ”ÜÚzZÈç÷Îg¡E6 ²Iüa¢|¯©º^bÓ¡ëúâ>€-*Œ¾hm~§ÿ¬xåç6ÉÏ ç̧Æ;|{‚›{ïĦ{'ÄXùÃ#ÓsÓ!çêÍ« ¹‰ÿªi6Ý–¨8j‡CÔ<—*x¶cÉ3±{ñ¢_Òà¤^dj5hFTÂ:¾qññxùؼÀí¶Û¿£6(RªZ}T¤¿íõPþ§ùD:Äm‹˜|­×½81É@ŒXEÔâẋ¿u BEá¹  Uo®˜zýÀ—¥ÁfZÁ_©'ýÜLÙspÓZþf#ž¡«;i6¯-<ŸÉ ݲ+-ùäß)ÇDËOÙë«]ˆˆù¸¬?Îdïx j ëùq?Cð±ôÈ¥>Ë ;æÜ9àv§ã:ß#S;K ÙxîÊzkCH Zìh£-õåøqÃó1}â>ó æ´ŒOKy’øÓYÅÏýã`ÄÁq¿Yø.ÌØ¤äè;Ö*œ÷?öÎ<ªî àgfŒ²åUi¥M%õFaŒ--$!©é­¥´ª´iQÙ¥„$K¨…h‘ÑB2Ee¹’-d+Ëm0Ìüþ°¤r‡ñ£ÞWçû¹ÔuÏ9ÏyÎsžsÏ3çžãjl9‰Øñú:Ãæ¬šûÖ½ A§§@ö£Gÿ¤[¼¨Æ>ÛÇö›4o Mž7¾’ærm…q<øþÓdôÔ…ã“‹Ì­¤9€^amv™aÚ#ÂØò]ÓÆËï¹ýÊÝBÛRQ‡#!yÒ±Ñò‚x¶}Ë´ñŒ\Ï5›Òô®Ý>HìùúŒõ¼˜®?E·­,ÌÂìÁµKz£ºtÐû}f}Ê®U®âç®EXsu‰¶«ÍKýƒÌF>ëõþúAòi,Æ ­í®ZÛ;«d«oQs!´³Y6ÖôôíìÊÃöôipÆ–ùôkþUò0‹Bmv¼6¸²NàÝ™ÿ¯^:PŽÐXuî»j¨@†‚„~EÀ¨»g«¿<ýÜ­#óx~š[ò‰ ´†&²ØåÎbh¯Ž5~Q>ÌÛ±žÇãÙ̇GˆpÌÙwÂr!ÓmŽ”¦Y„%”.1ãKØbxq‚g E–МuÚpéóC €Ñ”åo·+IúÀ…¤Û"y³)»rB†1x^q1nzey#ð}NaTÇŸð+n.äŽ&³OÜѾ¸R¬s*#±òÜÁ¬uÛ·*AöÙ£¿ßS£îI.· :çõÏŽè«WÚD×ëWL«­þS#ìšQ'n¸FÙÐ Yø:¿ÌÊ•ãc|£“-wÉ âäë˜M%9u‚3çˆÿ/‹½ê]q«°¢Xg¸/¬å“¤hEz¿?h-‹%ÿ×ÌFöo4;oP?‚“@$0[[Ò¯¾}¨Ç Aj–ùôkþ5ò4&Û™^Èà¸>¹s7fO#ÍGû£¼—Šâ‡RžáùvuðàÀ¥Óç¡. üËafÇÅÌeúÒ3æüûen¯zàáyÿS[[Ë×ÏÅ/oy»ß¯“5Û¸d/jkkEEE;žÄñŒŸÅ‘ìášB˜6M "þÔ¾(`zv‡¢pçK+ýCà:]»È6²Þ¼Ž[XÏs`çà}úðáã§é÷(Í›-Ôú• 8‚—Ü´¶¤ó^rO•ù5ûÚI¯–»e9ñe‰‘w²ÚÇO•à¨{}Ã+ ¨Z®[(Æ,»µËhKh›î.{ýY|_ëjë|#øˆ¼ìÉÃÁ²¾=5ó_á¿(ó¿E]œcçÓo8z÷³ðaüçÂŒøk rs¹ŸÞy{‰ØÐC[6lذaƒÑŒ¿SÇ­X$ZsãíX]ƒù㕾x؇|dŽœg ';‚ðGµ>[=Zÿ“œ__žÞ})ŽÌö¦²·¯eâÈækD;#Tô²¤°ûmjë–ïˆÐ0ÞܾN噫 I+xzýì··ó·žÝµÉìO> l_׌ZŸ<qq¯©ô“m&µòËæ‰q²é[8žqsxŸœ;]+.5F ½úMBÄS®Ù2",},£!ûvô‡†ºÓø¾Û6÷§ûáéSë#KÃO˜(J¨/~•˜"°p¾Ä¨Þï¤5$XzÃ}ùL@gãÊ™#Ú oÞ{£?UÇH «\LýÓ{÷í8öòaíÛÙ±‡Þ-œ‡€c+ÀrþõòðLX¶¡‹µòµwâÚ6EÞØ-Çbý ' Þ½Ž½™ˆx\kK3@^h&S‡ÉuO:ÔmUY’ØÈ®çⓜ£:µ-íQvMû®ÞØÂãU‡ÜÒG];m>-=”õÔ¼Tá;r¯Æ¯’¶á¤_Q/±Å6N¬]8MˆØÞôéÍ“Ð;¯¾kéëOÚgŒ6ºŠ8Ïè¸Oˆ§ú· Ü …3'Œµ‰=Õvbš~TiwqŠÁ)>ó®ÍuEØ0®¥ÿö²˜‘,&“ &£0Ú˜ ïK ×ÿ×;b^^ÞÔ©Sá‹ÒðÐ lÍ?Y]ÿ•ê@+…@ ÿuâ¯_ùg |[цmŠ"×÷“e•U–Ø ª@¨¯çwž?HmKEo­[8Uzfç5q ¾+U¤ƒÂÔٳ䖬vxEmº¹v2€söî8ôåqeÞ®xçQ©owHs§´ÉÅj$3Ëó#%9eÕ%6{÷YOá„-ÓœÓ-\".›@^Â3(gl4Öì87´‘¼¸~0ŠD;‘eæÊÍ×Y»çñêç0ÃñC÷ÛÝ/ª×„_¦ Âè !ièë@g²¶}ÒkjÝUý­Ì5woÈMãê­dy>i9A¹%Š6Ý+ú£`”G®ã“–¡z*krÄñÿíý”Ze¿Z~úÜ…ºg¢ÓÑΚ#pÿ.G4´7–}a¶®ªï;k|ºuk¼•ç¡ìŒtK…Ý8'š%§G‡Ù¯\NR6´<ö*Ÿú9Xg4aHÊbõ§–%ax¿<Õuö|ÕÅk¼B½# “…@ ùcùñ ÍF$++5%Áëùhy‡R?ŠÔ·cš>¾ÍCÞt^>Òº¿ÉE‹óó³ßåe½ËË«aÔ¬gôbл@uúËm™Âl»K‘O¨©É Þ§NžÏÿv(¯Ü"„Š"½çöØu” ¾Úç1Š<Šw23Y¬¬¡¢fl¼|þˆÎ:pS6ÔTX(;KIÍøb}ºO8$×¥#Ôìƒ+–‘u íâ¨T4f½tŸ³Y¯çÔškÛÖ*Ëþ-+§±Doã¢1ïݸò*úèôå%Ë-CSQŠ£jÇ$¥„]µÑrŒúò6ìè‚Î?àødO$R?ßq²Öœ«  µ÷ÒCô]ÀƱŽ[Djò¤‰BD@š8yÒ4©IÓ¤ÆKtìÒø µÁ:VY,„ç˜"5iš¬n@tÜE=mc”ÎÅz$áô¬N»ã”ÚôIÕƳT+³ôCNN&õŰ3«dqÎ7Ò– °Ö< õ²H5èõ"ˆj„dPïÛ¦MÒÑ3=ºI懦Á®2Ö„ðš ¦6ú®›ÂãÇŸóRȱ\r¤låñÀ5_¶k;e-8ºê/B—Ná~ÉI“¦IMš6iŒñ›‰öþ'½²/;d?÷ëe°5ÏÒÑ Ž—Ÿ^¥ÜËÈÉ|v/(±ˆAà$þá,ÖÂÀ±HÕ's7ÚÚ® /Ñ6 HÌD_ºè~·ßAãïS;¼_£?ƦœWßäÙî·}7+ÀÐ8–€¾ñ·šÈÉ!¡sãUæëÝ|°ê­‚UåW®u‹Ž¥¤^¿ì~âi+§p÷jûA-‹•,kõ)×ùù¶®K·ŸÐnt³ù0 ¾ÆA ü±`ËËüZž] ¤E‰  s±‚€äì™Ó;^ÐÛKß7uýöÌ')-=å–àùZÓ"¢¸\}Tjd%«RÅ¥Åq´¼´rzç ®éÇcüWP¶(Ïþ à+õøéã?¤’¶ô Ô*Ù¢¸þjõÏ3‚à©¥ÿhÍ-„G«›Ú°¢–$gZWŒìcÚÃ8J#O“+Æ20šæŒÐYi†–ëíþ@ë˜ù¥s ·oß ‰Œ¹\ÐQ_>ò1·„(5­é4@jÂýt·Áᇓ¤ì3G³’Hn)(1Çq麑ÎÝÁ;^gŸmzg|õºn íß8#ôp6­¹¶à}ÓÈÏt@ÿüá}anóoÒ«T˜e11…mù€ƒVMû±FÕÝ=¦º á>[¯i¹R™Ó¬Dc¶îÖ1/™…¢0ͦß'/;èlH÷×U¼ð º¥æsÆbª—e{ r½ >¶²5RuÅÉÍJJ“Ê?¾#{æ‹]åÞ»Þ¯4ìVæSÁ¬ŽW|’´ç‘’–Ú¢Ü údLá9…ÇŽhVe}ñuëUwqµ%móÊi`ÎXA"¨lƶCleÑÊïåû²Cv½ð/lš˜„,Ú‹ÖþéÁу°åöe39æ.¶X&]{%et¸b-ü@v*:‹zuü;ÓßË+±ð€Zÿ0ØïÀõÛÓÑîþþ,Ò¿—* ”ÃöAÉQûfÊúÚ/‹ŠQÿàà¡€5÷ÒΊœµtZ‹îÐ9jãødÍÏÄïŸòpðͲ–>%HYu}‰ÁvYBcF´ðSCÙó}Û’µå­êZÁø"@ ò‡‚ùû:qòê½6e¾Þ™MÝ÷K³ÞäPßäPßäd} fÐRÉ~›ý81r·íéta {ÍQÐV[\§È‰v.[ Žš1‹Ô”ÔÓAë»°Ëi\j—ö)t~ψÃsóó r÷† ¢bfwÜ\^üÛ¢‡¶ò̬Z0u†ÄÏKT=ò‚ ŠHΚÇ/£2Ó.±3P×Î8<Dz,@KÞ5‡©Òr| kמ¼Y¤ê×€D;Lä€öþY!“×ìüJ‚kœ’šÈM+if)a{²¨V¸lPZӽݚÂõm~ÿì=”{*ñKËñu]“¾Í™-_[ÿwâ ™6úCT}•Õ«ð]Ó–V´‘ïg`~‰±µpg˜Æ]a鸭Á•¼'­¡_ŠÂjJÀ[+¥y|ÒsG×ȯ2í<*…E†,ÔÛ·ƒW/ZAjSԙ̅Ù˜Uî=Äôëͦ7m°¨çŒÍžF‡¥~ÅoÂÍJøÖÜ;‰¥|d;²0£¡²¤¾}Ùt1OÅÍ»EÍôŒ,¥vÈ¿²Qú¶(½™À÷„,Ú‹0nÍ…;ëë6jÛ8]¹â¸míè¿w ËŽ‡è–¨¬„˜#ÂNÅ¢^?Â=^YCŒùîiI¿ŒFݵ9 ¬ñ8÷7/èSöž Ç7ËŠ’°­í”ѼƒŸìïÆ]PíQYwÂ]÷ŠüëÖÆIkš|ÌܲúÑ+Ù,+ïîý2>¥ÍJ#5åíBs5æÂ] @`< ÐZWRH“ JÏD‘ç±g7ÑN›ºÜ)çÛ7€@Á­¡¢]×çKJпTT2æ¥g¢;ŸvjFˆY)¤¢0>F¬Ÿ`?ßëÞ„Š"/ò=f„™jh\¯bÐöñºútòª7ša‰©(BE³¯¬iy—YÛ½©/Ax¶‰…™ùòÂßDD3Ÿ¥ï)b“˜ü¤C†*ÊWU!<É;æÚ~ío1óÛ”­5Ûc“ùí¿üÓ©(B­O u%À™6Ø¥¯²z¾sæ\·j½½ULBm|îNî o‚–œºÖq ‡='GV]-è4‹>Õ{Söœ&¢¯Ýæª_˜äsÿ±¹$‘e†Øêí[ŒÁ«£ôš™òIšÕ•¢\*ŠP+¼¤?dd (£ßUþ‘_o6½iƒE½Z2Ž.âë'ê¸Æxý•¥ðÍoÝdæ[¥,½X†PQ$ùîÒºóuôt_lJÍ¢Qú4À1n{E¨èõåâøU£ômQŒª;«·„Ñw$4"Ô†ô0w•‘,½ ‹öj/ 1›µóý¦¨T¡¢È˲HÃìíËU¯–· PQ¬„˜#ÂNÅÊ_‹S2Êfz¤ ͽÿp+}§²¼zde?[åë«s«®´š]ØGæc£å~L…ãSp¼[uy‚³²â¢ $÷Ú ²×8ŸGùGç àXuâøµ·Î‘Á_&>‰õ]£ùcƒï¾–¬²úÓ+Ù+ë×<åO¹¼|ý*ñ‚ÛÂü#Ûþ{¯]­E¡UH$ó¨ l‹¡WògÔ¦zl[§£F"‘Hš«l\Š›™‘gõ… g_^…Þ¸BD"ièm<]ÜmèË#KH¤EûŸuýÐÞ^eN"‘Ö‡•¶½ðÒj²ÉÕ’?Í€°{.“Vwv«¡&‰DR[ny6µk;˜¶šçûL—©H$Íf;Ý+èÌú‡[I½°)®ª4ܬó?š+7ì÷K.kðºë!õu+—YŸ²sÑ2Ç{ÅŸ›ššÛû¼ÿ[,ŸÉ®oÿ=í‚má¿§^ƒ$[oƒ+ϰžoé0n±©“Dy~žR2Z?}(,§1¡Š Ðlú×äÅ&LM$Ÿšéˆ®bÀFùw*ê·V}ºsb؆Lë©öφ:Õ¯”phËç¶…nÛ_¼z+Áu_ŽiDÀ*‰Îƒß5ÖŠœ_»!Yërè&)" _17½½À/ÜvÖ¢J¬çqýɇöÊÙÐ6Ç8ä²éø®Õ—-9î«7g® \3–£ßò´ä¸¯ÞB5 0Ë`S–rÂó ‡=ß©‹Qw§áñf»kÞzý¸è¼%×sÝŽŠ-»8Ý=ùO…ïšÉ @{E”¥q°ÀLüÇqGC÷Èr^2±x¬sõ²é8âØú?öܶÒ0Ëõqê—×O$²”“Qsw³¡¿ŒïµíÓ{õ2è³]:{šÄy©ðw¿ÊÂ7¬ Ÿu>r×LnÀlzyÒxû+Ý ÐM“;‹iGëê¾^!a¾>Vccø–)-égÌ‹Œ=$‰€^eg2úðG%Þ÷ìûFCv”‡gØÃܺ6^‰¹:ÖŽVª£°|±:f“þ™¼ò-òŒ>$Ç…qŸzeÊ%ŸèåÍb²z6ŽÖêëØ±îÎ@‚U_zE¢Ï™à¯Š¿Ð BSÔMvLçdzŸ†oçŠ1ˆ y~´ðßU¯A•ë­`åFôr¾!ä†Ù\û®ócÒï®wïa0 ͆­wÊ÷÷¬V« (îÿ-1šÿN£üfEýÖªç8’å$Ø  ,Õ¯”ðß_Öïem2>/z4dÿ–G)´}JZ%¢¨Èõp·ŽöÎûxyeñÚgi•tvŸïO>­…7¼p,µ[!I˜<í7-;–iì«ù'ô’ñX¶åa·¾a £öID_¿è§`h+‰<#le¯N¶Ý*‘èZØe!8î6ž&…Ž{jÚ¡{j¬’_H¯¼áLÉ)ÈNt3%«ÛÆöºŽ/ª±ÏVúÑ&M]sûc>ן•Ðú?$ãøeôÔ…+’‹º–ÞÒK"¬õõ·„÷Õ‰±ú>^P~ÏèÍwh[ºynÖ±+´¸}Pi$ž}Ò’ëi¨sªÅìüíG å^¤‡­ê(lðbºþÊ£p« Ä);o<¦P( ‡äxÖ}f}Šƒö–4Ò‰ˆ$ …òèúÑé7Ì̯Ó±îZËbÖ—(¡µÝ5$ö!…BIŽq%¥ØX\DZÍ·ÅôÿŒ}¿«^ƒ'O߸ IDAT Wža T@ ÈÐј¼ÃôBÇõÉxxi>Úå½Tô‡×X<Ÿ¨@kh"‹]î,€öêXàåÃüÍëy<žU>Œ¦,»]IÒ.$Ýa¹û"Kyú}£îž­þòôs·ŽÈ±)k9!x^q1nzey#ð}×/Õñ'üŠ[€‹Ù@ö‰;ÚWŠuNe$Vž;˜µn[àV%¨ÃoÊäâsö°\ÈÀt›#¥ia ¥KÌ'ü½æždàrÛ ãßÌúgGôÕ+m¢Îk‹õkÑC[ý§F !Ø5£$NÜp²¡?²ð-8~™•+ÇÇøF1&[îêÜô–m_Çl*É©œ9GœøùX,èUïŠ[…Å:·qÄ kù$iZ‘ÞïZËbÉÿ5ó„‘ýÃΔÆà$ Ì–ÆÆ ùöy<ƒ9±)Ï`ègê5Xò4&Ûõó­`påžîªàÑq"{‚–ûIq|’rÚš³Dÿ“&‹-žÇ̇^vkǵñ¶{×US—_XÕÌíSa~RTGgÒª>äç!ÅŸéL¬|Ú«¸ô»õ(íõÛì´x¿#nYDYÒ.¶å飾? >ùƒž&­îk7ºÆfä!oÓï]9ç—McÖ§ºx*»Äwu¡ø3¤o—”/Ý+Žqü Žnê”cáåŒ?Qm½÷\uSñ´#‡Â^–")þΡU2«÷ºóëËÓöGbS2s ‘W‰¡Á©Mb³¤YöA&½¡üòæYìùmF»_+:­+Žé£0§ ˜}¿ \¿dW•MlJJ¼CÓ¥ë.æÐ˜ìû:œš£õؤm›]ã³K*Ë žGùF´€Áò9œR¦ôÜ,‚RóË>f§Dº:ù¾iƼ?hSw ù™ô¯ mYýtFó®Þ¬„'ð›3žû¶Ú^G”ZëùôÈ‚ê$ÿ3·¨•xñÙŠó¸nŸ<öíh)˰ Ëš§ %ÃVýí^Ðxqý ÂÓ³@ý=ÃEûã?3ïü ''×R»Q3À·%îéÎñaÛA’ÓÙO*¢RrŠÂ/N]¤Ö3‡¼•5/UøŽÜ«±Æ«¤íß™!ôÅ0Ø? ¸ãÒpÒ lÍ?Y]ÿ•ê@+…@ ÿu0÷ÏjD²²RS¼™–w(5ñ£ØI}‹\6}|›‡¼é¼>|üöy5ZœŸŸý./ë]^^ £®øc}3~¼¸ÞªÓ_nËfÛ]Š|BMMNð>u²g0‹Wî@BE‘‡Þs{N_íóEÅ;™™,VÖPQ36^>¿ë“Sîqʆš eg)©_L¢¢O÷)ðе0*ûàŠe$EC»8*Y/Ýç¶|<²^Ï©5×¶­U–ý[VNc‰ÞÆEc:–ŽâFÈ{P¨è£Ó;t”—,· }LE)Žª#p}JØU -Ǩ/oÃŽv}-‹ã“=‘Hý|ÇÉZs®‚‚ÖÞKÑwÇ8n©É“& QhâäIÓ¤&M“/ѱÕó/ÔëTXe±žC@bŠÔ¤i²ºÑq7õ\³†¥s±I8=«Óî8¥6½FÒcµ…ñ,…m6xq½‹¯ŽŒv_&/cí”ø4!!ÚåЮ`àž¾5fgÛ^#ÛFîÍVçg³wFCüšý-¾©W¬{[ˆÔ»‰²R"ÿ(~€gÆ?J–ù"6Òoß…Î`«VPSD5B2¨÷ŽmÓ&éè™Ý$ó]` #CˆÓln£ÈíóKµ•ç+/T\®­"ÍÓw†@ üZ°?b~-Ï® Ò¢DбbÉÙ3§w„ÚKß7um+È')-=å–àùZÓ"¢¸\}Tjd%«RÅ¥Åq´¼´î+¹¦ñ_AÙ¢p<»c-×Wêñ ÒÇH%mé¨U²EqýÕêŸfÁ1RKÿ1К1ZV7µaE-Iδ®ÙÇ´‡q”Fž&WŒÿd`4!Ìa¹––ëíþ@ë˜ù¥s ·oß ‰Œ¹\ÐQ_>ò1·„(5­é4@jÂýt·Áᇓ¤ì3G³’Hn)(1Çq麑ÎÝÁ;^gŸmzg|õºn íß8#ôp6­¹¶à}ÓÈÏt@ÿüá}anóoÒ«T˜e11…mù€ƒVMû±FÕÝ=¦º á>[¯i¹R™Ó¬Dc¶îÖ1/™…¢°ÍF\ZGËMëõ”X®i}×Õ:¯ð/koa¦^+3¼·†.r¥vZ<£.ÕIfÝîÌø+8CŸ’öVKš^ü3_’Ñ)“µ[ÔD^úî0òH¯m,5 ¦äT9|lek¤êŠ“/š””&•|Gö3C@+¸ÿí)Ë !@ ùÅ`~ÅJœ¼z¯D™¯wfS÷½ÆÒ¬®£²²¾³h)‚d¿Í~œ¹Ûötº°†½æ(h«-®‚Säº6"Žš1‹Ô”ÔÓAë»°Ëi\j—ö)Œì\¡„çæçäî! ADÅÌ¼ø·Å7må™Yµ`ê:^Î<PõÈ 6(>d 9k¿ŒÊL»DÌ“’˜í €Ããp,Ë´ä]s˜*-ǧ°víÉ›Eª~ H´ÃDhïŸ1y ÉÎþ¸Æ)©‰Ü´’f–v@±'‹j…Ë¥5ÝÛ­)ÜQßæ÷ÏÞ3A¹‡¡¿´_×5©+F³åk+àâÿN¼!ÓF葪¯²z¾F+Ú €€È÷›Ù1¿ÄØZ¸3Lãή°ô ÜÖàJÞ“ÖÐ/EõÚ”­ïƒ3¸Õýö)ýhíDi‹“vøèS™ÚE›ÿ{-õn6}ÑŽ"){7­Qõ䱺±t$Ž¥¢Ô”´‚Ô ¦¨3¹—¯ÂÙÈð¬2„@ @ ä—Óc†ßZWRH“ JÏD‘ç±g7ÑN›ºÜ)§Ç†V níº>_R€þ¥¢’1'(=E¨höý´S3B ÈJ!í€ñ1býÓøù^÷¾ Ty‘ï1#ÌTCãz€¶×Õ§“W½Ñ KLE*š}eMËë¸ÌÚîÍx³M,ÌìÌ—/þ&"šqxü,}O›Ää'2TQ®¸ª áhLÞ1׿œ{BBEê§åÆwYh¿Îîíµ,‚ÈB'¿È¢·T¡¢ùïêUŸ³¶öúУ4ÜTHÅsWDBEÊsÂ~²¼ÚµÊv–vGhE±$91»j§g/‹Ï’EñŒ²ˆõ#”¯ñzóŠŠ"T4÷ñk‹™ßB­Ù›ÌoÿåŸNEj}Z¨+i~È´Á.}•Õ»ð0ªãV­÷¯·Ši@¨/ÂÝÉáMÐ’s@×:Ná°çäÒª«fѧ¢zoʶ²ò4’þ+rp|rBE‘E±®Nê£8Å´|ì'¼ôôÏ)Ì-(Ì-(Ì}“tôbáÔ‡V‰}ºjzqb]³fÃαZÇ|®¾Ë|‰"TyžëõwŒåâ¥wº·3í]QjJFé53!å“4«+E¹T¡VxIÈÈ@P‚ !@ ùå|ÛêâÏ6n±©“Dy~ŽÌ0Z?}(,§1¡Š òûøïßôd»öÞ—Ý¿ðjxÜ:<·sïÂ÷f¦W<ð9æu+»–),£k{ÈNs4ë].±žïõ~{ÍóPß+wž¼«@ç²>µpŒœ¢½çÌåΟ`³­æyð9ŸëOŠ™\ÂeÕL¶.â¥Øè8eýTÚô}7Ö;¬=ÿ¸D¥å—šY¯'å Hö!õu+—YŸâ`xŠÛÁ×AQ„Häáç&°¾ÿ[`·¾Ëçû±à÷µ ¶…³•£6Õë¨oRVI}àúKv™å.ëÅã¹q¿MžAÓ3ûò º÷ƒÿS* ék4l®Î}W õ@ ÈÀ!¬ç±S¦#DZ‘ók7$k]ŽJ–"zñsãÕ9~á¶Ó¸Ø|‡•賃 Ì:Ó^9®ÞPrÙ´#dÐZºmñê­ÚBûr:ž H¬ ¢¬êš7§6:Ô¼ÏI‰€æ¬s–Žù"ï¹þ…ŒÚ¸-ú–§=n˜ƒgS›õ… cu÷wo¶»vñöá§u-¹'Ó䜎rº»ø¾ ß5³³áGÎáØvN&tìŸ:¥ÁñÏ49èiÒ’ã¾zsæ·Ûm¥a–ëãÔ._w`C`Ôܵ2ô—ñ½wò»^§îCQôÙ.=ÍGâ¼Tø;2. 8!Ýó‘»frfÓ˓ƚçuƒB7Mî,¦­«û x…„ù8ä릴¤Ÿ1w,2ô4’$zY”EÈèÃW•xß³ïC ÙQžasëÚx%æêX;Z©Žb`$Ç…qŸzeÊ%ŸèåÍb²z6ŽÖê1}ŒûƒæA¯Hô9üàUñ:AhŠº©Ãƒéüø5?l烤±Œ ÃÂÙ®—ˆò6åmþ$Ç}µÙæ/¡ƘÁŸ!—gôÌ®<Ã<€@  !Ä¿TÍ-æÑò³3’w¯ ‘7„÷z KÛ§ô§U"ŠŠ\wëhï¼—W¯}–V‰yd Öóýɧµð†×Ž¥v+$‰ïÕ›ŒÏ‹ Ù¿`Do/‡Œê¸Ýû2I§H#pîÙ{¢üÕš‘I$‰l«èå8‡›myØ­/d8‡³jŸDdùõ‹þúiB[Iäña+{u²íV‰DçÐÂ. Áqϰñ4)tÜ›PÓ5ØSc•”øBzå ÷`JNAv¢›)YÝ6¶²7áE5öÙJ?Ú¤©¢knÌçú³Zÿ·“ÀñËè© W$%uíOC/‰°Ö×ßZÜW'ÆêûxAù=7¢7Ü¡méæ¹YÇ®ÐâFôA¥‘xö}HK®§¡Î©³ó·Q(”{‘¶ª£8°},^LןByn58eçÇ %áÀºÏ¬OqÐÞ’F:‘D¡P]?:ý†™ù•b:ÖýAkYÌú%´¶»†Ä>¤P(É1®¤‹‹Hëòék,¼1èÿû”O{ÅMK‰D"iî«ù'ô’1‹•LC/Ïàèú:Ïú…pH®KG¨ Zì'ÅñIÊikÎ%üë-ùƒž&­îk7ºÆfä!oÓï]9ç—McÖ§ºx*»ÄwhüR‰·KJ÷:ǯàè¦N9^þGžSà}*ÌÏCŠêèLZÕ‡ü<¤ø3‰Qw0O;r(ìEa)’âïZ%³z±doƒà×—§íĦdæ"¯CƒS›ÄfI ²ìƒLzCùäͳØóÛŒv¿V8tZWÓGa¾Ÿcöýf$pý’]U6±))ñM–®»˜Cc²ïëpBjŽÖc“¶mvÏ.©,/xåYÐËçpJ™Ðkp³pJÍ/ûX˜éêäû¦óþ Ík0ägÒ¿6´ñŒ6mìbká­£Î/éÌäÃz,è>ìê™Åó½Z8»ù´W=p;éwëQÚë·Ùiñ~Gܲˆ²¤ \àwÉ3XzfWžaÉ·ýàñ£®"έæò¢>38!˜§g'\\õ·{A a´Õ­»gëí%L’¾Wnwªë <34xÖy½cîÎÇ5 ÎÙ»o=[¹˜t õkW<ë‰ßü«Fs]ßÔóFäÄ2ÃHïîŽWîÀ»H1ðùòêe6™]N€ ¾Ú32P‹‘r9ôya(6šÿ}üÝõ ÷8e)ôÕ_ñÂ2fû÷˜ðEªkœL£ÉuO:ðÞ“\ÿÛÚÑ‚\ê>Çà ÂÚÑòÈz= ZSdçœßˆ!1~bû‹à¤­àFȻ߹¸±-ñà¹Øw¸©¦6zøëÚ:'’ë™,$ì£n«Ê’œZ{/D®¥{ZZ~^ÏÇ'ëdÕzËÑ=öe£¨Úƽ•>lÓÚä_ÖŽã™îÕXãUÒÆª§°šþB³ÁÔè³^l Æ­ Í9Üb©â$t&ä0w úöZŸGG8.%_«dül‡Œ–O¥?Ó{3Ñî?±è•}Ù!ûÁ¸_×(}jžcÌjJòÞúïÛ‹µ„؃ûÉF]Ù¨tòå—ŒÕÕçÿ©ïŽÿ2Àa–µðpD,Rõé'P£Ž…>AÚÆ¯Ú¶ÝXäþšÅ{c¾ýª†µÐP—žx9ãË÷6ÁG:}7A)NEÓåes,V*€¡q$"fe™ÃrëKÍZñG¥ÂÌ•Îd51ñ,ºC;8ŽÉdòÌÚ•usY’ñ2ëï~žIJªÆ°ƒý²pãÖfîmÚ¤qœÏñäæ¶“£•›Ž›Œ©úìÏ ¸ƒøpÒ lÍ?Y]ÿ•ê@+…@ ÿuú±<ókyv5P%‚‚ÎÅ ’³gNG´7–¾-nêzSç“”–ž‰r Kð|­iQ\®>*5²’Õt@\ZGËK+ïšxqM?ã¿‚²EáxvGìë+õøéã?¤’¶ô Ô*Ù¢¸þj/«` ‚c¤–þc 5c´­njŠZ’œiùL{GiàirÅøAFœYOûh¹Þî´Ž™_:§pûöȘËõå#sÛHˆRÓ:‘N¤&ÜOw{~8IÊ>s4+ €ä–‚s—®éÜýE3¯Š³Ï¶‰½3¾z]7…öoœz8›Ö\[ð¾iäg: þð¾0·ù7iƒU*̲˜˜Âƒ¶ÆŠüFÀA«þiÚȨº»ÇT7!Ügë5-W*sºS€•hÌÒÝ:à%³P¦Ùt ãûä¥/€†t]Å ªÛYj>g,¦zY¶× ׫pÁác+[#UWœ|Ñ  ¤4©üã;ò»_Õ0«Ü{×û•fƒÝÊ|*˜õÂñŠO’ãüáç‰–Ú¢Ü údLá9…ÇŽhVe}ñuëUwqµ%móÊi`ÎXA"¨lƶCleÑÊïåû²C6ù•ÂBó“E{ÑÚ?=8`¶Ü¾l&ÇÜÅˤËb¯ä þ͈µðqDØ©è,êÕñïL/¯ÄF@ÂjýÃ`¿×lOG»ûû³Hÿ^ª€RÛ%FíO˜y(ëk¿,v*FýƒƒK„ÖÜKH;K(rÖ^`Ði,ºC;L&‹&IJêX‹1€²„ÆŒhᧆ²çû¶%1jË['Ôµ‚1ð@ äsÕqòê½6e¾Þ™MÝ÷K³ÞäPßäPßäd} fÐRÉ~›ý81r·íéta {ÍQÐV[\§ÈumXB5c?¨)©§ƒÖwa—Ó¸Ô.íSèüž‡çæçäî! ADÅÌ¼ø·/†ÚÊ3³jÁÔu½œ! ê‘lP|È@rÖ<~•™v‰ ˜ºvÀáq8–eZò®9L•–ãSX»öäÍ"U¿$Úa"´÷Ï ˜¼†dç¢{®qJjb 7­¤™¥„PìÉ¢Zá²AiM÷vkvšÛüþÙ{&(÷0Tâ—–ãëº&}›3[¾¶!þïÄ2mô‡©ú*«WỦ-­h3"ßüËückáÎ0;»ÂÒ'p[ƒ+yOZC¿…Õ”€·VJóø¤çŽ2 ®‘_eÚù)>‹ Y¨·o1¯^´‚Ô ¦¨3{=,f•{1ýz³éM,êÅ9có…§Ña©ß_ñ[§p³¾5÷Nb)ÙŽ,Ìh¨,©oE6]ÌSqónÑ@x³h”~Ø!{üÊFéÛ¢ôf:ß»c²h/¸5ۨmãtåŠã¶µ£ÿÞ,;n¥ÍJ#5åíBs5æÂ] @`< ÐZWRH“ JÏD‘ç±g7ÑN›ºÜ)§ÇÁ n]»£õó%%è_**s‚Ò3Q„ŠfßO;5#Ä€¬RÑ#ÖO0Ÿïuï BE‘ù3ÂL54®W1hûx]}:yÕͰÄT¡¢ÙWÖ´¼ŽË¬íþÖˆ <ÛÄÂÌÎ|ùáo"¢‡ÇÏÒ÷±IL~Ò!C劫ªPÇF¦smȹ'Ô!T¡~ Pn|—U€öëóŸ^Ë"ˆ,tò‹,zKE*šÿø®^õ9kk¯m0JÃM…TÜ8wET T¡–Ó˜PEh6ýƒkòb‡ ¦&’OÍôDW1`£ü;õ[«>Ý91lC¦õTûg CêWJ8´e1`&“ÉdƒÉhŒ6&Ã;äÜ?k÷Ï‚M «Õ@ ?Ó½ŒgA ù·óŸg1i…ñ>ç²>µpŒœ¢½çÌåÎuµ?Î-é|ŽyÝÊ®e ËèÚ²ÓÍúdN¬ç{½ß^ó<Ô÷Ê'ï*PϘ¿u7ïÚ¤6šèŸ(—N{G¿(oÜÍÕݺw‹ª€¦'Ûµ÷¾ì8ójxÜ:<—0jS½Žú&e•Ô·®¿d—Yî²^<žǶ<,ë ãYÞŸÔÅøòêš»wÄ㼺6N‘©ªëî]9¾ÃЗG ¶ßo'¹DŸXÈíQ–Fžï'Y…¬•äôÂK&u®^6Gü“ZŸÙô&ÔÍ/1#ëC]ûDëðÀ5c9Øõ9m5σÏù\RÔÈäž(«fâ°u/ÅFÇéçóާï»q°ÞaíùÀ%*-¿ÔÌz=y,×ÀŽ.R_7°r™õ)†§¸|EˆD~nëû¿vëË^>>ÿ·µ ¶…³•‹1ë·ÈÓMkQ¨µÙ…¼Iv‘«$¿BžaÏúS* @ ò{h+ ³\§pùºCóŽVäüÚ ÉZ—£’¥ˆ€^|ÅÜxuŽ_¸í4.6ŸÇaå#ºÀì೎ĴWΆ«7”…\6ßžuÎÒ1Cä=׿ð€Q·Eßò´ÇÍs¸Âzž;e¾Û>/¢¼ÍC¹ó‹Ï–÷Õf›¿„e°)ŽÍúB†1Œºû; 7Û]»xûðÓº–Ü€“irNG9Ý]|ß„ïšÙiø‘sø#¶“ Ý#û§Nipü3Mzš´ä¸¯Þœ9ŸÃ¨¹keè/ã{-îäw½N݇¢è³]:{šÄy©ðwd\pBºç#wÍä̦—'5Ïë…nšÜYL;ZW÷ð óq È×MiI?cîXdèi$Iô²(;‹Ñ‡¯8*ñ¾g߇0²£<<ÃæÖµñJÌÕ±v´R…壈Õ1›ôÏäuwÜ$¾EžÑ‡ä¸0îó@¯L¹äâý¢¼™CLVÏÆÑZ½cŸQ¬ûƒæA¯Hô9üàUñ:AhŠº©Ãƒéüø5½ù|0Xc»ò`X8Ûõ³8~—<±¬mû‹WoÕÚ—3Ð|Ø”g8‚_‡äºt„š %0€‘ŠORN[s–(á¿Xoláq‚ªGb¾d‡’o­CÛÊ‚š—P$ÊvÇ¿6CÞá¬JJ|!½ò†{0%§ ;ÑÍ”¬nÛëžkmŸÒŸV‰(*r=Ü­£½ó>^^Y¼öYZ%æ±¥XÏ÷'ŸÖÂ^8–Ú­$À={O”¿ÚC32‰D"‘c}£çpˆ©š[Ì£ågg$î^A"o)îÊ¥½â¦%‰D"‘4÷ÕüzÉx,Ûò°[_ÈpgÕ>‰ÈòëýõÓ«P[Iäña+{u²íV‰DçÐÂ. Áqϰñ4)tÜ›PÓ58 ŸƒÕØg+ýh“¦Š®¹ý1ŸëÏJhýÿþÇ/£§.\‘”XÔµ5"½$ÂZ_Khq_«ïãå÷܈Þüq‡¶¥›çf»B‹Ñ•FâÙ÷!-¹ž†:§ZÌÎß~D¡PîEzتŽÂöQ/¦ëO¡< ·š@œ²óÆc …’pHŽ`ÝgÖ§8hoI#ˆH¢P(®~ÃÌüJ1ëþ µ,f}‰ZÛ]CbR(”äWRŠÅE¤u ù`ûüAƒþŸ±o@ùô2fý>yZ‹B7Ÿ=²ÁüÿW¯?>ÊòÍ6ºŠ8s9o<–”Ó4Þ¿FöSÐ&Õ“/¾0 Œ¶ºu÷lûYÍ=é]jý\Rü‘F]Eœ‰N&¿òŽž¡±ËqBÁY£°÷mœ³wßz¶:s1é@jÇAÜ¼óƒžøÍ¿j4×iœÒ&^OæWÄûÈ('ŠÏY Ǹyî|~+l“Ÿàœná¹ä>Y=û?8Xc Ïl œ±Ñˆ¢ç¾kbˆRk=ŸYPäæµ/>[q×í“Ç^¢}@Ê2,òæ)ÇBɰU»´^\?¨ðô,PÏpÑþøÏ À;?èÉʼnǵÔnÔ p›îéÎñaÛA’ÓÙO*¢RrŠÂ/N]¤Ö3‡A+C „x!^À1gß Ë…|L·9Ršf–PºÄ|Â?ÚãùDZCYìrg1´WÇš¿(æOXÏãñ¬òa4eùÛíJ’>p!é¶Õ±[ /NðŒ¡Èrš³N.Ý`áo(Á5YÏtrG²Ysç¶Ös Ì282@Рèu÷lõ—§Ÿ»uDŽMyXË ù³º ¯¸7½²¼‘ø¾›Þ1ªãOø·² €ìw´/®ëœÊH¬ÐÆ öìaPôz³Ø­×`ÉÓ˜lgz!€ãúäãOzi>Úå½T?”ò Ow÷Ãÿ‘¬¬Ô”¯Cæ£åJMü(vRßÏ4}|›‡¼é¼>|ü¾G‹óó³ßåe½ËË«aÔ¬ïcÆ×»@uúËm™Âl»K‘O¨©É Þ§Nö fñÊ(B¨(òÐ{nµŽñÕ>QäQ¼“™Ébe 5cãåó»BšÜã” 5ÊÎRR3¾˜DEŸîSà kaTöÁËHŠ:†vqT*³^ºÏeŸ<²^Ï©5×¶­U–ý[VNc‰ÞÆEc:\n„¼…Š>:½CGyÉrËÐÇT”â¨:×§„]µÑrŒúò6ìhW4Ç'{"‘úùŽ“µæ\­½—¢ï6Ž%pÜ"R“'M"¢ÐÄÉ“¦IMš&5^¢c«ç_¨ Ö©°Êb!<‡€Ä©IÓdu¢ãn,ê¹f ?Jçb=’pzV§ÝqJmz¤Çj ãY* Ûlðâz_í¾L^ÆÚ'(ñiBB´Ë¡]Á,À=}kÌζ½F¶+ŒÜ›­Î;Ïþfø5û[|S¯X÷¶©we¥DþQü-ÎŒ”þ,óEl¤ß¾ Á,V­< ¦$ˆj„dPïÛ¦MÒÑ3=ºIæ»÷Œ  N³¹"·Ï[,ÕVž¯¼Pq¹¶Š4OßB „õkˆºƒ©xÚ‘Ca/ K‘çÐ*™Õ‹%{|ñÂê{ÿCÙ¿'8½°0#ÌqÏ}Q‹½ZÝï·ôÆ$’‘ß{zÏcæC/»µc‰ÚÆø Û=ëª)ÈË/¬jfüˆirâõ÷½/'ç••åS®ú&Ö‹ÉÉŸŸyŸˆMy‘õ&óáÕCs¦š[ÎæíUÜNúÝz”öúmvZ¼ß·,¢,iÛòôQ_ÈŸüAO“V÷µ]c3ò·é÷®œó˦1ëS]< •]â)ÄŸ!•x»¤|é>Þǯàè¦N9^ÎøÕÆ }*ÌÏCŠêèLZÕ‡ü<¤ø3ÙŸ¾¾ Ó+böýf$pý’]U6±))ñM–®»˜Cc²ïëpBjŽÖc“¶mvÏ.©,/xåYÐËçpJ™Ðkp³pJÍ/ûX˜éêäû¦óþ &ò3é_ÚxÆN›6v±µðÖQç—tæ@òÁòùìæÃ®žY<ß«…³›Ö˜õ»äPõîòh”$_]!Üd»Èûç—b*h°ä–|Û¾c}V«¹ü†¨ÏLàš~")lc¶Õ¤­Ï›:Ög1\;ft„ÚKß7µw®ê"\w å3}ùÆíVãŸZ¬ØYIÀ^ŸUUÏÄ»ßUÓ8‘Nëˆ|Ír{lœ¶YÊ>s4¶„bÈ´@Ìq\jîþ¾;xÇKvOŒÓþñäöO¡f2‡³iÀõ÷¡;—Ü'«ŸÎhþ=Ú`™ ³,€)|W¶cVS’÷ÖweÛe“#u/&„O‹TÖr¥2§;'†™gl™¾3­¡oEõ>ÞÌÞýÌ4WwáÎNcû®‘§9ß V¹´B-´¢ §ÙDe¥¹R[ðâúAŽ%KI¨Svg†ÊzúÌóþ¿Ögu¶ Ÿ´’Ž¥ÉÚ-j"/}wy¤×v®ÆÂRÔš’SÍ;éÎÜXUõ“/š@PóR…ïȽk¼JÚX¶qšÍõ—› –/Üùð;]ñ±Ì@~ð|Ã?¸´À( 7RqãÜQPQ„òܰŸ,¯v­²¥„ÝQZQ¬INÌ®ÚéÙËâ³dQ<£,bý…åk¼Þ¼¢¢Í}üÚßbæ·ÐAk¶Ç&óÛù§SQ„ZŸêJ2m°K_eõ.|Œê¸Uëýë­bjã‹pwrgx´äеŽS8ì99‚´êjA§Yô©¨Þ›²­,‚<¤ÿŠŸÜ€PQäEQ¬«“ú(N1-û /=ýãs s s sß$½X8uÇ¡Ubß…®š^œX`—Áì‡Ù°€s¬Ö1Ÿ«ï2_¢Ežçzýc¹xéîåò½+j@MÉ(½f&¤|’fu¥(—Š"Ô /éÊC!@ @ ¿œoßB]üÙ†À-6u’(ÏÏ‘Fë§…å4&T@~ð{Ã?ø½!lbX¨vù™îï 9 . Àl®Î}W õ@ @ ä_£!ýì]y3cì”-iS–V%õ‹’1¶”¨dk³FB–”V•6*Bi¡Tv­R$£Deвì!$Û5f~ Ts/#ê[Ýç3pæœ÷<ç}ßóžsÞ{çÞzKl£*h@«Œ¶]²êÈÓFúb½9'òȦUªa©‘“_Jm|}z]Œ ¬ãšÙÞ’zÔxår-Ïl*|9€V“znÛš%AUÏþLruŸàʇ°ã¥U'úl3^¡F TVZŽÎk¥EΠ=gˆkËã‚ñpVåÀ­}¿‹ÜÚ:Ò|þî|VÏaæÆ^¢¬’ò2‡ÃÁÕòk×½èÆ³%Cw6,š&-Óû™2ž Û×*ÊEaÚœÙrËÖ¸$e“[o­—d°ÏÙ½:ªÄÝ×÷‚à¯ûWviã u”¬lßMF‹å”T–ÙïÞc7•]Ë™}†…gÔáå“ñyF3餽úºm§sGtãŠÕ»Qn»gÍ“[ ³~ד·äÏaâ#—üEãúCðË´·1$zsÙ]Ÿ¨­ïüð ¹áº^?+sÌÛrkmÝ¢<´¿Ü2Eûë}Œ¾ú·ÎUQx¤åF©Ï¶=öÿüŸ‘ë£×ÈϘ·håÉۙРwQ˜ÿV  t·T62º?×6õ¿ÔÖòlË–x[ß3YYé†Ö ~:°O1Mɼæ¼zAÉÀòÈëBòçk:ãp#ÒÒWCìKÌôò£ª4¯]Ú T–®ó õrùgZ]ÜÎ=Y„næs¡ëcæ³Z!EEŽä:ÚÛaå•D?¥gÔÀ‡àê#Ê鮾eÙs{ÅžúM¡—ÖNø6+ÜY|Ó/‰MËqÕD|Ï~Ûzí9áÃ!{ŽÂ¹ß!ñDñ-CŸžF¾òfKÆþ°Gë*:#hë¬FtØ"–èZÜç!Ιö¾ÆÅ®»ê»Q ö×X )¾˜VsÓç)¯('ÑÛ„¨æ[ÃLGXaõ=Ò­5”Wš;9{#½œ:ø×ý`xgéª V?L,í»Ÿ“Vi§§gZ6Ð$†›ûX~ù]7ooþ°MÛÒÛw³Žc±ÅÍÛûƲC:ò} tŽw˜ž»û˜D"=ˆ:ã 2† >ÆbEV’HÃm'ã§n¿ù„D"%ãp匦Tm› ‚GäC‰ôøÆá7Mͯ–ÑàʇͲ°ãÅ‹inõ ‰M&‘H)1^„T{‹ ”N–å Þs~b †µoHrXû~-ækëHóùËóY½{gJvvZj‚ßóqò.ÆIŽR_/Ÿ¶~xW@yÛû)ùð5ÜAe……9¹Ù¹õô†²MôR ºçÉnc½—+Ìq¼õ”œ–’àüع¯“Ž[n_)… Q’ýçqöÛËŠ®9û¢<Žw35^ª¤®¬ºvíŠ}.À9IÉ@Ca‘ììŪk/<$CÏö(pÐw-=gÿªåEÇ82Š1“ðTÃ%ë÷œ\á´^Iö²rêËt­–ŒïÙwcFÉŸ!‘¡Ç'¶é(-[aú„ ‘\Uz6¦ˆ ûF!¤éÝø.ìpŸ÷bxd=ÉŸï¹ÙiÌSPÐÜ})Ê ²š€`8…¤$%¦à^`ФÄt)‰éRâb=mÿ…Ú@n×y6>±©RÓeWÝŽ»¹¤ÿmØ1:š( 'f÷ú»”õJf¬¶ QQHnPI^^ùް“†û²Ùi‹á5 ^„VÃ>.œ°zÈKr˃#NÚ]“ÃÖ³¾3 üá„¿Ðm`µ1ð¸X$´ö´ŸBžå²C•«^^׸UÛ-{áþPñ¸>?”â8Þ‰Ó¥$¦KŒÀuQæ_!ÌÊüõdܯ3Êpk1Ðó‹Ï_§>x™—•þ 8±”ŽcÇÿD: ™üB«1ÏÊÁaq™¶iPbôÊs¥pm´<õ?¾Íÿ ô}nÊ}Í-®­·Îçd!ÀµØQêG ·¶SØÙÄtn¾Îz³s/ O‡Î’k*ò«×{ߎ%¥Ý¸âãñ¬“]@3}!Ñb_kŽ{-(tÐ÷ªÖÚê¡ÝâíR2ýOÛtÑŠ¯8œ¨3ôÚ>—nÞðó¨ž*´ÔóÞýÓZÂõ­€W˜6ÀÀÕG”ƒÓ "‘H$Ò“Ë„8ãn¯únn¡·f_ܸtC¤¸çû{åù{Þ²kr>¯.ý¨‘°Ä6æ3㽯‘†]|=`±ß!ñDñI¸EE8iõU-ô²ÀñË:ò<õ‰ÄÕ9í•Á÷¾°ÙÄVŸÞ/àt¹=ÚõS&—7`›»ÇÃ’0Cj¶¦ý!Ó1Ùa LUÄ)¡ïy—DJ öÞo·\ÖS³¹_7ØœVWÓÇÀ'Æß—ÀOÙA"EYK´AšûÞY«W‹ߊÎ[©/ËR¬c´•ç5ðËÌÅÿTŒ…æµ¹e‚’"½e°‚šg†š‰ãáʇͲpüÛ²-Éh«Ê© ÒÂxPÔ{³ßÄ923z6èÝ-ïÊZûÖž‰ÒÒ2‡ W[}‡â µ1iQ5H½ŠJ‹b¨_~@Ê1ãhLà*’ÂÑœ6m䣓¥~×JÚ2à²f¹¢Ùu&QÇ?^Jk“¾æÌqX¨®µ*jNdÏèË‘}ÈHŽ#µð,¥Z¼$Xßhr˜;qÝ£æûû$i1¿tZáîÝ{!Q1WŠzÆËC<âm…‹VÕôȤÒez'] ?øPÊ9kC x§Bø•æWÓ$aɳ N  ìš¦²v†÷1ŸÊ»æWQÁÜ üxPÓï‡ð.Š`å÷òù!«QøAóCcˆ`/j÷ǤÃAúa+,œ+eØæ-µX.]{5òs6É%Á·¢!Œ«çï¬@?¿Ä@B¹)ùÚÅ}7’¶fB_æ{zT “!@¤ƒÎÁ)—£÷&ÈÈnT€…oEoJÚ¿L h݃„ŒS¸Rwí…ú½^Á†0zWm ¬ùÉø½S“wé ÞªìáPújˆË} Œ  âÍ•Ï÷8=¤ªêœÜÐ ÆÿI[.(ËÓñç–ÐMÒð·¥aÕvo 7ݻ뚻³ö¹¿ë#a‹+š_ò¥´’Ë&¦Wè&Á¡½ÇE¸úXÀ¼¼»6É7èý”…²SÆp·—? ;“—u›Ì­òÎ.+ï*U×½¾G9@}QÁ'¼À¤ÉcøTüI¤ÞÎÛßž4²{gd(†€µ~Y-G7èÿ"xä÷ûoÚ¼ÞªÔÙN{:WSñKRÙ<»M“^xú+yÆ[ÔóÝÖç v¯ IDAT{õ\=SU=ûÚ^Wo5S³à* þªNýXZÑØVÚ@cPkK ¨a¾³øÎa÷W4¶qCƒƒö0”5hks‡¹> 'víûM|ð°këÈòù·òYxÉ5»íÅ*½7g}}^iKEöÛ¼ff[´ %ç3¼Ë!½é˜ŸvÐYcÌÍŸÊÿT9a\Zy7?fæl^P_ÞD¹aW2¬\/íQ˜w £‘ËÉËÍÏÙÏÇqBÊ6hbŸû]ÏüØ»ïªÊÊþ–oP‹ˆøð݉OåLÁ%qoý‰¢Ù01¸›0X ±/@GA„Ë´ˆž…’s¦ååæx.7MÃS%Ô÷éÅ@K^}"{fa'€cÒbUŸQގȰ$gâêBâ¹ë­máºëN=j Ðþ>ý=C[Ø×ÀÐõM³£££­p ð~ãâ#¦Á _«úbJ¾oî„ÚàâÁ–~O\lŒq°ðywêý>ÎÝNÍ^swe40EÁ™ðÎv±éµZìÖç7 MdÃ?úLG¯Þi ߸°EiE`©¢Ž$Ç‹w0?ƒ2óÓ¯wfڠ‹}ææóOL„¿Ri>cßxòù÷+¬Ö8SãkÊvÌr“¥\Õ÷KÛ‡‘Œ2°²†_iê€E§µÓàæçÄ‚/—È"Øë­ðºó÷ÌêÙßoàêUת1^ád2ázÕžV‰D~h¾’~w÷>§¸’º#÷Yù œJÞ±9Z+úÌémÛ—mƒ5%óVžÙ6ÉÑfÍÇæ·o'Ý›´ÉÀ.¥‘>ÀtÀ_yúåéi1[L'I×u –áúĬd±¯‚û*MVl^<úYb}.°H};ø£nÈà™çzïÉ€µðâ&ÁOLzþ–ðz°þÛ/§lŒ mT}˜ò1êÎ{Ôû.õÌVвé mt½t™qÊìˆIj¿,—£øÁ5csHêæ¾ÿ¤gÉP>ù0±_%Þ…‰I ƒS {ÝHÂ2œdùo* Ë%*1UL=|_«1‡´uɺwfÙ%Ûµ瞿Ë{~ß?ÒKí¾[‹N>Nítœ°îi]¯…d­°Å(Vc§ôÆ«I½"dì#’í‡CðŒÎ'õý7ÖPjáÀ1‡mÂúëÉLÂÐåÙ­7H[{ÿ›0^b¶r¯Æ`ʇ 0üG)OH蛺žñºCÕÿ =g˜c;l}gQÜÚ÷»øÀ®­#ÍçoŒýN„ åÅTÙàÌ,ˆò¼(ö”5õĤi+Üòúmݼ«ûž QÈŸ/-æ€ÖX]CŸœ™QÈPΣŒã3Cô‰‹Cª»ýC¤Ùd“ø~)dˆò¢ðÌÌ0uõµtº>ÜP›A4|«–˜QÈPÎÕuoâ²>}Ù[ãç[˜:š¯XØïtÐ˃â³õ|…ìSžöp¨%]õRè¹!~ž}’œOB… Qȃ”Zr³‹ Aý–ži_8¡En£Jß‘! *|r_·î´_IôŠpeoö‘Õ2D!=wÁí%Ê«FÔt#2ürR¡–ÆZäDëÜÒ_•" cé•‘f£öU­ó{ûš QÈPþ“72_3Æ9g¬ÍïŽ Ì$CrSF¨avÄ´Á*ê‹9ùÞ“s]œ¡Y`“mL3…Üò"܇Øû¸6Б·o¥]œÂA_ÉH‚áõ¢^·PQÌMÙÿ˜½ñž§v^âì£'æñˆáÕ;0á½"ÂT@éÕöji>¢«ý¤K^¾¤@ôAù‡Üó/wfÚ@WÇËÃKx¤å¾ûˆï{Ó†H¾ý÷¬¶©Z*)dˆ’r_ëÅÊ:ûò:‡ÌÁ(:`›´5Ž QÈТØÿ”Qö(zí½56a´m -rsf˜òhÄhƒ`¯îòÓÙÛß[G§A2DyUe³u…JÿdkŠB"?´@ß Ééme©/+eΤB2”ÿ(y m»’¼ZTÍ ­Òöú´áÕNÓó{ˆ<,XîûV×ûµW&»+). ¦äG؈ý&}\xxi:àÅ×ß9MäcÏ&6õ­æOô¿¹b:\} fV²ÖW®ß|¥íÏ–x¾zzûuâyïE…‡œÐó? (P @Å? LgG;@^@ÕÅ¿íœ"Ó$„¹~ 51:Tí(P @ñ#¾ä³Ð'n¢@ (P @ (P ø“€æ³~zÞÈž ÉÇzS ÏD9mÙÂä+9áÉcøUÅ4愘Åñߥ›àpŸ Ý5œˆûoúÆíØ_Á¯q ¢D;Lbûc¦’÷þÑöO)Ã*pØgå=ÍQ hIç¶­YB K üRªáeO«Nò±ÓU!ˆ«lN?ªð™÷põ™–Ó?¥qÚ £J †ö^ eí}¿BfP‹ãNm1Ð ª+,O¥5Бê3ÚKãNlÖU%jzö>Iô;„rÿ"è¯ÃZ­R%êºVGn—}ñèÕ¡eÂ’½é}/ªê®Ž6'fa]@+¾´†h|½ü_s FëÛ#ަ«T‚ixe¿×|0ÑÌÐUÿüò“åÊAc•évŸÄj£)y ¬ãj+ÂM{ÿÑX½qïŔʎ!?È`DcÝÐúe4¥n_²ÜõAÙç–ÖÖöîËÏr2L1“™œÞiÕªÛÒZ£]à=œ%9kßoáó¥¡VÊ‚ytu÷/âó÷eY¾f¶Æ]§¸s¸[IeˆÉi¬Ý»Nöc°µÊ±tpãlïÜ?Õ}JcWfK_ìû\^ö Æ]§¸ãÝŒ÷'¶q›©¾ÃuƒBÑIY£°÷]ìsvÞI_“µ”°/­çµEÜ ‚Ÿ^\pÝhž¥°Kû=s[Pp4òe^tîB9ú­Óç ;ŠïÁ>ÃÂ3jÙ#¢ZN}÷_DžÑL:i¯MËÏíÁþ±Â¢úv˜´)­Ïuyµ®¤Üàq›²æ~í€+pwKe#£›VÛÔú!:é½ô„ýµŠ_öìÓ–®…£xÅú§8=Ëgní›ûãÜ;)çÖoLѼ"…´²«æk×ä] w˜wå®>NŽ’Ó¥Þ'éwäù¬1ÝÜ´v¨³4‹S ºrÃ図c™×[fevSáBäãéÐkïl2ZWp1Ìn*`‘†Åñ¢ø›sY ¶mwŒ¸p÷à÷×,:òƒŽeȹf÷ñ x¾C¦wê`GÏåt:=+t—,Û?ª5 ¯Œñ~_ãŽ<Ÿ5›³úå¨`fôZ¯¿ok8+ "îØ7³Ní,I  ô:»ÚÅù)óö® •ç¢vÈpFë«ck5έ µ–ìí¦jhhÜ‚<X&vMíÈNÞ¥Âø"ÉQê«Ûµ~xW@yÛû)ù@ý’æ‡Ê sr ²s êé ešx°/VT÷<Ùm¬÷r…9Ž—¢ž’ÓRüëŸÌâ–ÛWJ!C”dÿyý6{8Ñ5gŸ@”Çñn¦ÆK•Ô•U×®]± ïuyœ“” 4ÉÎ^¬ºöÂC2ôl}WÅsö¯ZNPÔ1pŒ#“¡3éà —¬ßsr}„Óz%ÙÿÉÊ©/ÓµZ2ž½gá%†D†ŸØ¦£´l…eè2DrU…aß(„4]£ß…^Øû†GÖ#‘üùž›Æ<ÍÝ—’¡Ü « 8†SHJRbŠà¦HJL—’˜.%.Öó¨ç_¨ äVp}!gã›*%1]veÐí¸›Kúß°€£s¡‰’pbv¯ß±KY¿¡dÆj bë6tjUuŽ—“ `GM™1Wœ‹aãåÂ4¨ƒ  å©ÿñmþo abˆ€yV«ˆË´Mƒ³ Wž+…±øüWCôyxS"L‡¡96NX=ä%¹åÁ'm‚Ž®ÉaëYƒÚ³Á{Ò¬„Çt÷'Y9[¥8†Sh‚äN `“ØÝôØ^†€Ÿn¢Ü=g¡¥­´@i‘â meéžI뽈 ‡ê°FÏ’‹P‚ÝÒùš~$2勉hÕ•çä’Ãs¸‘i XÑ`#ÿŸ'dˆäµ{Au1aþØ/wá MÃìÈÀd5m=E-=ûûYäÖ›ë$ØiÎ1Íþ%-x!wOonWÌÔCñ'€sήè@ÕdS"@ ׯ*D»2IfÐõ1óY­¢"GòNíí°òJ¢ŸÒ3j`¯kÃÕG”Ó]}˲çöŠ=õ›B/­ÀºjHñÅ´š›>×HyE9‰Þ&D5‡Ø¾·v2©Ï&,#Ã_÷ønæGƒÖuëNq÷Ç r]«|X/Š¿9õéiäK o¶dìñ´«<êhŒ ­³Ña‹X¢{h1íKŸiïk\ìº;½"ñ­Æfô·‡2aõ=Ò­5”Wš;9{#½œ:ø÷³`xgéª V?L,í;ÃÑÊ#íôôlBËšÄpsË/¿ëæíͶi[zûnÖq,¶¸y{ÿâÑXÖcHG¾¯ÎñÓsw“H¤QgTưÁÇX¬ÈÊ@éq¸ídüÔí7ŸH¤„r\®œÑ”ê¢m“Aðˆ|H"‘ß8<㦩ùÕ2\ù°Yv¼x1Í­^!±É$)%Æ‹joqÒ99_&d]ÜÎ=Y„n¤ÝÔpÅöáZ X]û~ŸÎÒPëµç„‡ì]8 ûsãú×oFF[UNPƃ¢Þ;ø&Α™Ñs°ïn©xWÖÚy&JKË@‚b\mõBŠ+ÔÆ¤EÕ õ**-Š¡d|¹áŽcÆÑ˜ÀU$…£9=÷rµ‘N–>ú]+iˀ˚å6Šf×ë~Œ´8þñRZ›ô5gŽÀBu­Ý@PQs"{F_ŽìCFr©€g)Õâ%ÁúF“ÃÜ)ˆ.@Í÷÷IÒŸ³«*·¦Yó_ø¤GCdúù%¶’ÈMÉ×.´õíÿ`¾—‡ï‹6D+û ìtšc/>®ŠÏ±WunRŸô‰ô¤øË ¨E7¢â“¿ï½ ãl,YWŸ 3_¥Ó²Û-„)ÏŸ?iy¾Ãp¦8¶h +#9C6åÃÞ›8nª«}N~.S`6úg´1Ì€$°¥É÷o¥´ðŒT'YzyíÚ)7<(xåažæ™]CY‰PüaõºXƒ “}cH²œ€öìZÍ# ľ?¸cy„ùTOZêyo)Ô×GZ¯0l¾®>‹ '¦DÒÐ8è­È<}ç—7`›»ÇÃr3ìUdX„%T,3ŸŒgZ>—ìîX ·7Ö×µòÏ3±'ÞÙÙ8–‡íb"Oÿ°Ü¢"œ´šª:àÁ~;â=.–uO}¢'€{ÚV‹ônˆÅVŸÞŸ½Áéò–Ũ¿*iFŸn—Ð÷¼«ß».6¥ÒS«±>§-2¨‡Òt5}l|bü}'Jü”¤ƒaˆë0¼³V¯ ˆ¦KZîåÇ)Ö1ZËóøeæŠâ*ÆÂV›[Ö)¨(Ò{‰ +¨yö¡& “¼|Ø, Ç¿-ËÃÈù­úA÷‹ÅG±ãð8FGK}HúZñ‡u†A>s¹‡Ä‡ÕØ>\vA”Ãt-û=|ZRMÎçpTØ{rõ5Òx¼7Ú_K;’|þ­|^rÍn{±JïÍY_1ÛR‘ý6Ùë´¡ %ç3¼Ë!½é˜ŸvÐYcÌÍŸÊÿT9a\Zy7?fæl^P_ÞD¹aW2¬\/íQ˜w £‘ËÉËÍÏÙÏ~8!å 4±Ïý®g~ìݼwUeeË7¨‹ED|øî\Χr¦à’¸·ŽþÄ‚N‚GQÈl˜L7`° b_€Ž‚—i}W,/7Çs¹iž*¡¾O/ZòêÙ3 ;“«Š€üŒòvD†= 9WÏ]Ïhm ×]wêQ€ö÷éïÚ¾†®oÚ˜ýŽÑÑÖ ¸x¿qÙÓÆ`ЯÕ@}1%ß·Aé„ÚàâÁ–~¿PoŒq°ðywêý>ÎÝNÍ^swe40E15%íÃÛÊ=•ó¾“ÂÍÖœ`³¸J{ËÛ·õ´Ád>üŸ`8pŠ+©‹0rŸ•·# Ä"ôÅ6$+#šn:t ɱ±EiE`©¢Ž$Ç‹w¬þÚ”©G!ÌJ¤T9:åó5³3Wpûµf²|¨z\ãí…mƒ9ž2õ^X†Cô æ2³Èœ¼e/pŽ‚•a¿‚gØY•W ´g/a{^þ]ÆægfÊ0:ÀÀ1ê+ºiÝ‹Ã`F`šÐTõ ð̘&Èö¼­‹£ ø“Ζ£¦Ë‰6Eû_QtY!…)‰HlY5K€‰×aÕvo 7ݻ뚻³ö¹¿ë#a‹+š_ö·´’Ë&¦Wè&_~ÝW ˜—w×&ù½Ÿ²PvÊîöò§ag²ñ²n“9–KÍÅäêÆCÂŽl!Œ®¼w<´v–ãÒ‰x¸út×=xØ*1K Wuã°OxÉ¢c!~ \¿¬–£>ó/‚G~¿¯ñ¦Íë­Jí´§s5¿$•ͳÛ4é…§o±’gü±ž ´>ß«çꙪê9½·†WÁÕ[ÍÔ,¸ ˆÿ‹érêÇҊƶÒƒZ[RX@å3y’€óͤ}Û«®÷„ÕTå¤'ðµS^KkY-Å8´æª hÌO/P8p}¥(lŒ‚а±®ry³M¼œWlê컳µ6¨ž ´žÁ%Èj Puµ»eê´™c§‹œPgéÓ‡år¤‡'æ°K™ìÓ}doáÒìj£1…íóû—“>i+ç¦Õ†?£©­¹‹kÂôéFá;‹ïvEc7$ý”åéxsKè&iö!òa5¶#ðaîáx KràײßïâO"õíŠßž4²{gd(†i>%0íy¬°†ûc¯¥\:ªó3n^»pìfncO^·çùYÓ¿iÚ™b?iS:§¦çs?õ±=ÞÙþ)÷eÒyï³W²›é€Yhzzφ•3…ð «67Ùÿ؉3Ïz·áXþùFG¬´ˆâ<t7V¼ñßçt«²ç®œˆj@Ôɵ˜xC·»ýî?ÂpNвܲÃPY~<7ªÉÙ¿Õ%å3°OYjçµu%QJ€FGKÕ{’›ÝðÝl7ÍÙňû=\¬•&ð:›Šsì´?_OG^‰þ10`ƒÁ :Aïô.Ý?ÄCËÀìOZAAÁ´iÓÐlÆß¡Ôšÿ²ºþ”á ^ŠŠ?ñ7®nÚàÂp_óY¨Rþi`8E¦Isý˜5§w~,)®¢2P¡@‚5pO·X?»¥¨¬ÂJv¯“Iß5Ç.ñ#ú{9CšÏúæ³P£ÃAÕŽ ?âK>‹ Õ `´×åçÖ¡z@Ű¡-ÿJ`~ïß/2b¡ (P @ (P @ÅŸ4Ÿõ«À6qC&…œ ÉÇzS ÏD9mÙÂä+ àÉcøUÅ4愘źLjZ™_ãD‰v˜ÄöŸˆ (P @ (P°‚¯ù,ì8£Pˆrc/QVIy™Ãáàj ùµë‚Ñ=pãlcÉÐ ‹¦IËô~¦ŒçÂöµŠrQ˜6g¶Ü²5.IÙäÖ[ë%ÙìsvÆA¯Ž*}y³÷‚`2ùÝ6i`—6¾PGÉÊöÝd´XNIe™ýî=vSÙQƒ0û ϨÃË'ãÿ.òŒfÒI{õuÛNçŽô£ñRëj)äw綘k*.[¶zçá£ûçóô}Ë&eÕøì\\&9g«T_j +ªw ¢¡—ǵ°}Þ›õDÿ'Þ¹Ä9Ãý1zì颭°hÞ‚FÖÇläFaþ+£@ D0ÚKãNlÖU%jzö>IHo+ U'ùØéªÄU6§ ü^¸úÈr:KC­” óèêî!Éi}º•HøŠ¥³¨CäÃêxQüÍ 7¾;hµJ•@ ¨ëZ¹]öÅ W‡–Kö¦÷½x½»:Úœ@ ˜…Ut­øÒ¢ñõòÍ­oCŽ8š®R!¦á•ý^~Ë ÇÚb A TWXžJk€{åNWýóË{L–+U¦Û}«iŒ¦ä-&°Ž«­7íýGcõƽS*;†üÝ_ëXê—Ñ”º}Ér×eŸ[Z[Û»,ÿ-®˜ #‡ö‘tnÛš%°ÄÐÉ/¥šö[íïá,É¡J;ã´AG•@ 4 í½ÊÚ¿“ÂZ<Ò|þ:|ƒE %;;íó›´Ôoõ˜gIáÿ|Šzó ­ÞPš™äà²Âœf®z0¡ ž.]ö¡i€w”aEuϓ݄<–+xPzm‘–’п·Ü¾Ü(}ðùÊšåöY}oÉ®ñº¬IO ¹ú¼¸šŠÇû>þþ‹&:€s’’ÎTÚ‡º6¬à,Ó½»Œy¢ÔÔeP{ß¿Æuíà®”:¬èÿì\-ˆ>sõ¯Rg—¬ßãàu¥ÁŽþ)…-ØQbâSº_\{ø¡Ì(yŸ{¬º÷ŸŽÍÅL3q±×ÅÞÐÖñHib 3ì…æîóQëi¾–¶Ÿ7ÑÀðȺß¶í¼ãêûªEXÕj÷þÅ%NšÖ•ÝN!Éñc¦à^`ФDk »éCE5•þ+µÜ ®/òl|b¢\xÑåAÁ–5}oëñ1:oñóz«våtØ¥¬_Ä[•o]¶ê~^QðnƒÕ½ðúÇrù/Ζp»_–iKÌö®ÝšAlÆÏœsO^á’Ýëïôæø {iiW=µ,ÎÕ¯æ.ФDÞ1¼z—ÿ8ó]d½ˆíûÉÊC2%NXýj©UŸîíóM|Ÿ¬±~¾F`ïýœÀUó÷)õMÝxA¶üäT u(P @]aVf7.D>žÎ½öÎ&£uØ]Ç뤜[¿1EóJtŠÐÊ®š¯]“w1Üa:ÜÌpõ1Hr:KCö–­Ù¢-Ôü IDAT°'ï'ä° êúFnŸÅù3|0,ŽÅßœËjx´Ýàh»cÄ…»¿¿[½#?èX†œÛavÏ€·á;dz½;z.o¤ÓéY¡»dÿÕ{Æ1¼2Æû};ò|ÖlÎú&èXšÅ©]¹á‚|¥”^ßÖ pV@DܱofÚY’@é;tvµŠóSæí\0+ÏEíáŒÖWÇÖjœ[j-ÙÛM7ÔÐиy°L¬˜Ú‘yÒܵtíe_£‰x@«Œv´wðªëbî÷¬ÇzsNôß°äü†.n±y:v®¶*cè0õñu1Öz' zÈ5N€g‰ïír0å\ÐjR/yž½ý¢ªMDV×ÞÕNM |ù°v U'ž=y-éuY# '0UÍÄe›þ ^,ËrÙ§-] 7F=ð‹ôOq6z–'ÎÜÚ7—s8× VÆãá,ëGHÉ錒So<ÉóYcº¹14hí¶ßÅf-#Ìç_ÈgõËO·UåÔia<èËgñMœ#3£çÍõÝ-ïÊZûÒˆ<¥¥e A1®¶ú!ÅjcÒ¢jz•ÅP 2¾$(9f \E²Q8šÓ |t²ôÑïZI[\Ö,·Q4»^÷c Ç?^Jk“¾æÌqX¨®µ*jNdÏ(ììùúCFr©€g)Õâ%ÁúF“ÃÜ‘S8Ô|Ÿ$Í#æ—N+ܽ{/$*æJQÏxyˆG¼­pѪš™T@Z£Lï¤káJ9gCbïTŸçªµa´{ç—Ĉ²ûY§)Ý“º}…{­f†Ì¡¶*zß:ú3 Ð>—¼/ÎoÿMÚ@jÛ–<èj©.llÔ:êËjíý]&+ÂÏn‰Ðô"3f¸Ù ÇØî7Ð7AQðn#*-Š¡æg0½*À1}À†Oî«+»»@˜‰ßê—þ[B—x‘û2Z in³6ìÌŠ¿Š18û]Sf}!¢õŦr›p<Ò‹Ž¯·Qz°ÍèLæ§n€ ¨!™’]ùà‘ÕQ*«Ž½hR[•7Œ¤@@-ºŸ õçÀƒ( (P °Ù–‘á?ÿøn¦‘¤’`KÖ­;ÅÝ»ÈuÖSÇ¿ ëú˜ù¬VHQ‘#y§Žo÷–óVJ¢—I56ÓÅ™‡àêKaáä0JCí·½Ñ¿²/÷äOÈÁU1·M-ÌyùñE”ÿ• ¡Í×.‹cX”ƒ u›.õéiäK rÉØ½ÐUu4FÐ6Lˆ¥E¯sÕ¿f) çLûSª>[v'Ÿ˜Šª°ŸÆjHñÅ´šÏ>×$lˆ£+b=ÝcG»„ù¬øQ·Xaõ=Oœ­5n HÎ_°`±Æ m…I\ƒü9†w–®š`üÃÄRs[iv •GÚ™^¡›ôËp–b×tqù]7o¿ö±Ð¶TÔaKH‘8ró¶0/g4¥î0ô=iÇ  7$:¬1¯ 6δÜl˜bÂ!¦¹ÕKskOµ¦ÇzõçC{ÍŠœ9»¢Cv˜½©NË€h³™œ,óa5¶³ºö A?tWß²6ò.w‡^ÒžÀ649ÇùZ<Ò|þ­|^rÍn{±JïÍY­_ÊZ*²ßæ53© UP(9Ÿà]éMÇü´ƒÎcn†|üTÖø§Ê ãÒÊ»ø13gó‚úò&èÌ »’aåzi¼t0XN^n~Î~Á'¤¼aƒ&ö¹ßõ̾—»wUeeË7¨‹ED|ø.9Á§r¦à’¸·ŽþÄ‚N‚GQÈl˜D]7`° b_€Ž‚—i wµ´¼ÜÏå¦ixª„ú>½hÉ«OdÏ,ìpLZ¬*ò3ÊÛö€äL\]HÔtR˜—›eáø·ey9¿U?è¾q±ø(vÇèhé ³,‡^kcpa²o I–О}Â@k£yd nXÖ ¡øÃ°èpbzA$=½áƒÞŠÌÓwÍçú=|àÖb-æÏ¶.>g¸ûúggCy1U683 ¢hÕ5ô¹Á™Y… å<Ê8>3DŸ¸8¤ºÐ?DšM6‰_à÷ ‘B†(/ ÏÌ 3QW¿QK ëà µD÷a‰i… å\]×ñ&.ëÓ—Ÿ|âç[˜:š¯X(ø•"ôò øl=_!ûÄ”§=jIW½T°´¤l›gŸ$ç“Ð@!CòÇ ¥–Üì"hPi¦}ᄹ]Œ*}G†(d¨ðÉ}ݺÓvv~%]Ð+ÂM”½ÙwDVSÈ…ôÜ·—(¯QÓÈðKÖZkAq¬sKUvŠ(Œ¥WFšRØWµÎïík2D!CùOÞZÈ|½³3猵ùݱ™dˆBnÊõ"ŒÂŽ˜6XÅ@}1'ß·A‰34 l²i¦[^„û{×:òö­´‹S8è+I0¼^Ôë*й)»*#‰Ó z¯‰×âSš)dˆò¢4ÖËMm »ˆæYçɯ|ãóŠó‹Šó‹Šóß><|¡xÚ¶†"ß$øZ_x,t|É„Û €}‚摳×s³^A2Dyžï÷¿Ë¥Z½É,XE É”ôŠS¥cTÛ«¥ùdˆB®ö“.yù’ÑÁD £»îihØCrYMéóËŽzÎ/v#ð3¹–„TÛ½iR¬ÀH:F=:§%ÌÆ¢úçtÿA±©/²ßf%_?`åž7ÍÜrË|/Š <òû};}Ö[yž, ¼Ë|põôÅ*£)ÍÓ·XÉ3¾ÏqãOÊý=S¿l †WÁÕ[t$¼êŸÜ—Щ‹ (¥ 4µ¶¤°€Rö™ÆÀ ©¹˜ˆf:ö¢¸‚’èZ;kÍÒ‰Ìnåh{uÂùPPljV~1åubèµ´V‘ÙRüˆsAk®*¡¼M=çd´óÂ+Eacìvî·S.›-ÛQk›šïÒºOkÃ…<*ƒåØ0ª®v:möŠÏ)¯©*zUÔ†+æ°K™ìÓmö¶p N+¬üPœ“ååð¶¶|ØŽî0ü´¶æ.® Ó§O…ï,¾sØý19ØQÓåD›ù_I)¨¬,$]Hl‘›%€cY‹zF¨ÏÔÃY•Ó]›ä}ìâÇoÞådÄ_<ä—%Læ¿‹ÜZŒa>%0íytý§á™&!ÌäöbzçÇ’â**U (P ø}`À ƒAt:ƒÞ è] ºˆ‡–ÙŸ>´‚‚‚iÓ¦¡&þ;4ƒZó_Vן2ÔKQ @ñ§#þÆÕM\ØŽ Õ `´×åçÖ¡z@ (P @ (PüçÞÑ (P @ (P @âOšÏúU`›¸!“BNÐäc½)†g¢œ¶Ælá?ò‘oðä1ü*‡bsÂÌú»ÞÊ=’ãâ׸Q¢&±ýeÚøãbYºõÌ«ÌLˆBn&'<ó7™É1ˆ¯þvôÓ’Îm[³„@ –:ù¥T÷j}º•HøŠ¥³¨CäÃêxQüÍ 7¾;hµJ•@ ¨ëZ¹]öÅ W‡–Kö¦·ötWG›³°Š. _ZC4¾^þ¯9|ÌaP‹ãNm1Ð ª+,O¥5ÀϺêŸ_Þc²\™@ h¬2Ýî“XMc4%o!0u\mE¸iï?«7RÙ1ä—FýšXÇR¿Œ¦ÔíK–»>(ûÜÒÚÚÞ=`ùoÁpÅLærí¥q'6ëª5={Ÿ¤ßmxgIü÷{øÀ­Å¿€Ï_øj0Úªrꀂ´0õÞ¬À7qŽÌŒž zwKÅ»²Ö>µóL”––8ŸÚê;„W¨I‹ªAêUTZC-ÈøbPŽGcW‘lŽæ´h#,}ô»VÒ–—5ËmÍ®×ý‘qü㥴6ékÎ'€…êZ» ¢æDöŒ¾Ù‡Œä8R ÏRªÅK‚õ&‡¹S§5ßß'Ióˆù¥Ó wïÞ ‰Š¹RÔ3^âo+\´ª¦G&–ð(Ó;éZøÁ‡RÎYãÁ;Âç¹jmíþ%yÇ­ì~Öi @÷d€n_¡À^«™¡s¨íŸŠÞ·ŽþL´Ï%ï‹óÛ“6ZÁöÅ€%ºZª [µŽúÃF¦öþ.“• ág·Dhz‘3Ü‚l…cl÷耛ˆ (X·éÁ¬€§¯4g®T<ŸTרù¼ °êE´×0«xáÁ#«;£TV{Ñ ¥¶*o Ý_.ü™O½_é6ðVæQ††[TBZ„ý»LIǧÒüjš$,yvÁ £”]ÓTvÃÎð>æSy×ü**˜;jÚáýÞE¬ü^~ ?d5 ÿB£ h~h ìEíþ˜t8H?l……s¥ Û¼¥Ë¥+c¯æACÞ÷"“J ‚oECWÏßY~~‰-€„$rSòµ‹ûn$mÍ„¾Ì÷ô¨@&C€HƒS.GïM9Ý6¨ ߊޔ´™@к §p¥îÚ õ{½‚ a:ô¬Ú8Þñ3$ÇM4Ì$yEi®ì×T0Ü}5 Dƒå¾ÆPñÇæÊç{œÒ?UuNnèãÿkÛ* ¯Œñ~_ãŽ<Ÿ5›³úmX)çÖoLѼ"…´²«æk×ä] w˜þã/._¹>INgi¨ÓÞ²5[´öäõ%…”œÎ(9õúzžÏÓÍ¡Ak'teŸ¶t-ÜõÀk,Ð?ÅÙèYž8skß\N› ®oäöYœ?ÃÃâxQü͹¬†GÛ Ž¶;F\¸{ðûkDùAÇ2äܳûx¼ ß!ÓëuØÑsy#NÏ Ý%û¯¾â &ætU„YšÅ©]¹á‚|¥‹^ßÖ pV@DܱofÚY’@é;tvµŠóSæí\0+ÏEíáŒÖWÇÖjœ[j-ÙÛM7ÔÐиy°L¬˜Ú‘yÒܵtíe_£‰x@«Œv´wðªëbî÷¬ÇzsNôß°äü†.n±y:v®¶*cè0õñu1Öz' zÈ5N€g‰ïír0å\ÐjR/yž½ý¢ªMDV×ÞÕNM |ù°v U'ž=y-éuY# '0UÍÄe›þ ^,«r¤jìÌn*\ˆ|<zíMFë .†ÁÿŠªs˜b;ì¸`<œeýÀ¬ql¿‹ÌZ F˜ÏßX/ÇK®Ùm/VàŸÕú¥¬¥"ûmùmùm^ö×dª PrÞåf>«RTäHÞ©£½ýV^IôSzF ígj"ׇ—ÓYj½öœðá½ ¿¿É²»ú–eÏm{ê7…^Z; Î9»¢U“M‰@\«í:—€«bn1ŸZ˜óòáå«Ä!e4Öù°:^s:ëÓÓÈ—@ÞlÉØv4]åQGcmÕˆ[ÄÝC‹û<Ã9ÓÞ׸ØuwB}7ªÁþ«!ÅÓjnú\#åå$z›Õbk˜é+¬¾ÇAú±µ†òJsç#go¤—Sé,$Óféª V?L,í»LO+´ÓÓ³ -£ 1*bùåwݼ½ùÃ6mKoßÍ:ŽÅ7oï_<Ëz éÈ÷5Ð9Þazîîc‰ô ꌃÊ6ø‹YH"=·ŒŸºý扔p@Ž À•3šR]´m2‘I$Òã‡gÜ45¿ZFƒ+ùÕ/¦¹Õ+$6™D"¥ÄxRí-.P:Y–Ã&,#Ã_÷ønæGƒÖuëNq÷Ç r]×ð­A?»JþÄjËlûm|Öâäó·ç³:Ê‹©²Á™YåyQì)kê‰IÓV¸åõ› ÞÕ}O †(äÏ—ó@k¬®¡Ï ÎÌ‚(d(çQÆñ™!úÄÅ!ÕÝ€þ!Òl²Iü¿2DyQxff˜‰ºúZ:]n¨Í ¾ÕKLƒ(d(ç꺎7qYŸ¾Lœàc SGó ¿R„^Ÿ­ç+dŸ˜ò´‡C-骗Š€–”móì“ä|(dˆBþ¤Ô’›] jmcÚNh‘ÛŨÒwdˆB† ŸÜ×­;mgçWÒ½"ÜD@Ù›}Gd5… QHÏ]p{‰òª5݈ ¿œT¨¥±9Ç:·ôWe§ˆÂXze¤Ù(…}UëüÞ¾&C2”ÿäM …Ì×#[gÎkó»c3É…Ü”êE…1m°ŠúbN¾wçRghØdÓL!·¼÷!ö¦7AGÞ¾•vq }%# †×‹zÝb@E17eÿc"ôÆ{žÚy‰³ž˜OÄ# „WïÀ4†o\ôŠS¥cTÛ«¥ùdˆB®ö“.yù’Ñ=äïñë݆™6ÆÕñòðž~y¢žø¾7mˆäÛßyÏZ`›ªu¡’B†()÷µ^¬\ ³/¯sȬŒ2 ¶I[ãÈ… ÝX!ŠýOe`¢×Þ[cFÛ–ÐB!7g†ù(FŒ6öê.1½ý½utD!C”W•Q9[W¨\¯ê¢¢È-Á·BòCz[YêËJ™3©… å?JÞBÛ®$¯U3H«´½>mxµÓôü" –û¾†GÁõ~í•ÉîJŠK‚)ù6bD¿IgžÇ‡Ašì“Vú^¿UšK†(d(;áyƒššÙ³¶‘èk0³’µ¾rýæ+m¶ÄóÕÓÛ¯Ï{/*<äôÇl¶x„ùTOZêyïþi-áŽúVÀ+̃û™šÈõáÊ[R¶™œÏ«K?ªG$,±ùÌxïk¤a_Oœ˜^‰D"‘ž\&įp{EôºØÍ˶UlŠ!‘H$)ÖöãN­7ª»àÔ5ÑUùßœÙÿ[²ñø×E×/gSYæÃêxQüÍgnQNZ}U ý‡D¼ÇŲŽx­vÕÅPÇiÔôssÅÍÄÕ“où_$ Ù]?·nže>´AkæÏÀŸÈù¿£.jÞ…M›#Ùuí´§s5¿$•ͳÛ4éÅNƒ£l‡o[Ôóƒ·Öç{õ\Û÷ÜôœþÐj]”Â¥P[ivZq©Yp%·½b2 ÿOY&ætR.šm¼5ÞöÈÂèÊ{ÇFs8†úéŠá~àÙöê„ë=aÆkN( IDAT5U9é |픇N†×¯ Ù2­÷:“ßn\wM|¿—鏯üÔˆ€ðÙ×Ý—ˆ`aclFfî·S.o¶‰—óºâ4ûîìFÇtÕ³Ö3¸0,ÇZe”ƒiUg§‹œPgéÓ‡år¤8ccWe˜…i’~Ä%Ý1ßl¤~,g@oΘÙ?˜déj£1…íóû—“>iá€)ç.ƒÿŸ½3‡úùãøì®uS®¤ÒI§’úF‡u§D¥C®tНN•:t#%JŠN Q)«De‹r­Ü!$×§ÅÚýüþ@Tûù°~ªo5ÏÇþÁìgf^óž÷Ì|>³ó™á¬Ÿ§>yÇ2wö¦ózƒY·÷l<žÂ³0 r+v¾Xv`U?¹’Ð4z’ ©<ù¢wxá¬C—÷¨Š¹®ÇžÇ Þ¥ƒåá®Ò!bqÄ_£k,?Ü>±×.¬5sá$8Ÿ@ ä¿Îï2Ÿg@þrËÀÚü›Íõ»z)ùÝù2ŸE„¶€@ @ üFÀù¬ŸEû‰ìqº"ÜG%É*éëL–ü-_‘ÅOÕØU—¾g<ÅèÇÖ²¨ÎY„é0œç?› @ @ ÜÐ5ŸEbŠÐ¯íTWTU›ï°?¤‚N{å:£c#kÒÛhrËlÖ8y…ŽÏ¨¡ÄÎX.*ã¦LVš¿ÌåA­éÆÊ1<Þ)[c—îª_Ž-œB£½u–ç^ùUgªéé>kMç(©jÌ·ß¾û$пÞ ÖžûŒ$ÿYâÑêQ{íÎdzZ~°²ÜÊ€*:íí©Vº³çÏ_¼u¿ûîé_¶b摳‰¨{z*&–¹Y®sj(m|¡Ó‡õÚßœBKl"Ù÷`þ ‰4$ÑÓE_eÖ´ M×Ú 4€ðgÔ2@ @ ?“oŸÎéÉIq¾{¬†(»”® ¤:Êu-žizÿ6—þ¦ãSø¾ë8W¤8//3+7#+7·†][ü¾¾‡}‰ÒF§inƒ½¨Lq<ñ„–ü(Îïð¡Sy]Ç *í*¢ÓúC¿iݶ±#I/óŒÐcÝ,VÍSÕVÓ\¾|áŒÎãòø‡«.ÑQ™¥8yŽæò3 4äé:Feî^´€2Û`‰c †DYÊ÷8k  èûŒVseÓJUÅ•´ç­™;´}¾0@ù$•†$q6P¿Ð&ô1 ¡ºj´ÏLà*ì,…„®kdÝÛ°ý§s„ÆÓ>Ýq³Ó™¦¢¢»ýìC$+xÍ0€À/!7fô(12 ‹3z¼Üèñr#dÚ·zþ‰ÖÀ…•Žx™±r£Ç+ߌ¹>·ûš5â ƒ3õô¸#“;üŽWnÝkzZ´¾8×PØnC”6:ójßïÊ“ìüCâŸÆÅÝôܳëÀK¤Cü„Qÿ¶m7uXdêÝl{ÊcJ—¿³bWìl H¾`Çi!gÅ3¢ð a€§Ç&¦¥¤?ŽÜqšVö`¨¾U%IRûò Zã½›ô)Fæû×Mê.+AÈãío#ôÛ§¬õôUg¨Îš½P_M^ ç!@ ù¹`¿0„~.Ϭ*ò’dß±~FDvŠÂ„öiVcéÛâ¦Î³r…dåå>qÏ5-³j JލÄËUZ^šÀÈM-ï<6–o‚{TÐ"ê÷ÌöcÃ?ÓÜGÊ»KÞ&àœnɆٖ—8œ"K*§·ÖDwâ1"RÝÄâ³ueyS;çÈÞ§>Œ¡6ðôQňÂÓ‘atÜs}9~ÞtX=®rûöËQçóÛË+¤~Àk )RS÷`w?ÍëÁÅð½ rNéCðÅ+ !g»ê™ ôø2y'¨æá¿iÀèh€Qg ØÎ5C÷f2š?æ¿kø‰ ˜Ÿ ßä4ÿ"kàÅÂÌ ÅÚ+ò£ú»sRÙUw·™Æ…ûo¼¢{‚†Np ¶•ŒÚ@¹[Ë‚ê8†Âviyi#§ËÙºÃ7~w€ÙGEAe¬6fî»ø…ßÆÐ¹'hÏ®Mv›d¶5=öa‰ÿ7Q9å…KÓóµ3”Ö’„äç˜^µrƒ¦ÄËgÓ“iYÇP}ªJ^µ½·Fh,:ô¼@MjR[0°— FþµˆØ‡Hw B¸ B äËÍSÓ›P¯Àø…µ¬QváçV ãÁ ÿöÇdßý %õm€o°â›-vóFðÌÔ³Gün>/oüƒ§nܾACçç(´¹(öä¡À¸¬md)EÃ;7j!ìtúª¼µ(ÔÎâtîhLjà¥2$ÀªypáΓ¬ „-0ôÃõ[Öiiÿ9YñÀÿ€ï­Ì¨ø$C‡=Ž:ízpÂÓÂÛwzÕß»îÕo¿«skÛx%ÆiXîÞ¾xD»? /÷™l¾Ï¢xÞ<Ø~Ð!«"ÒÆÔçÝhÛ°à•²<€Ypv•õcƒK¿ò|ÃÿRŸÊ(ˆõ?~..ãC ÏÀ±úÛŽ:«Šs|Í ­æÙÅãþמ5¢|â£5W¹lœ+Hµ7pËøîÒ ;®ï®wYyªø$å•õ,ì,Õ‡ñõí,5¬¶Ïíõý•­OrYr˜ß%Àe¶™, ÌOÂÿ%p[Þ_eÏþI§×£'~:Øcë¯Ñƒ5†þ=˜oO‘Ç,Ûn/Sà—Þô%¬±4ãM6íM6íMvF×d)¥Ó3ßf>ŽØêp$M\ÛIg ´},®¢c•:7"š8YÔ”Ô3AkVØùT>ͳ;T:Þg$ù…Eù»©!I¨Y8º[)KwÕk[yzÆG0ÎL›Ãý›ˆÆÉÜ‹&Å{Ld'Ož¤¦àyì7Êb‘@ÀÍ Ð’{Åeœ¼’ÊÊ•‡ni6ÐoºŒâ€ñ.¥H)kËv¼É7|ަÈI-iÆUØÕI]R7\1$µéÞVŽA¥ù]Ê;”Ÿ\2GX^I¨ó3ºsŽ´ås+þJÞ³F¯ÆÎ®X=åÅQ|çMK+Ò €ˆ„ÐW_¢uQÖÞló˜c‹lüÏmj8¡¾-µ¡W†âX•­Yá_ðkîPùî¨Y²¼õ!GâÍÃérr£ÇËÉ‚Ggn˜[}õÎòÊsºU¶ÓMO}ᯭÄÙmz‚…Г®n_·HBÃGÀöÌU½\Cõ©*ùÉù@j¶Á“q‘`·É]œ!ÒAXaÕnŸ‹&„Þ„_&¡ºédèD*•J½y#ñ´Åú«em4g·q}¡zò•J¥Þ;=/ÓÍæÈ«fÌdÚJÃÖX :]M¤R©¯í¶rÅ©¼Vœtú¢¼µ(ÔÖ*l¨µ¾Ø—¯H’3-vDÄ=¦R©ñç-ë-[}©˜ @+ýÔ Ó3‚Α¨ÔÇ×vHž_¾Ì7§¥‡ðüfÐ¥þ¦¹¬ÚûN:Fg7œ¹H¥RÜ ÚÝ9™Zr‚¥*¹íŸáð¦Ëñ‰§ _Ýtü5ö9ߴжÒ0+ý=Õ&Þ×îS©ÔÄè`ŒÉ,vÍ]Û%G,‚b’¨TêýÛoÖ•!hùS©T*•ç9“‡0Õ#¶ý¿Àâb† Têý›Á;§?Ý ³,ð³Ûnmuu-ÒÖ£pŒ¶ÏnH;b<×6¢” ̲HÛ¹‹<©cs݇»!ó굋4)Ê<ÓM¾ªÚ°¯gWG­¡PÔ \Óš“ÜW.Ð[â™ÁÀ0+“N9/›K¡P4íO>¬è´Vx¿€Y^fE¼·óª…Z EÃÐfdv»/éàÙóW¤ÓûÑ?¬±õWéÁC´ž?|>«µ¶¤€¡’–ŽÐŸåG[Ç82|ÜB·ì®wŠW†t~>#³®¢’=5$-¡ÓÌû©‡'^6QŸs¹‚Øï¯ZŽ4á{¯ŽNCèÏóNN 3×Ö¾VÅ íý5­ êKßè„Å'#t’yaEËë˜ô_¼Š$>e•µ…£Õ™Ý:_äÅÞ“}$ìã=i×PE½pBCŒ@ã#çiö”¼ãjé4„Nû¬Ú˜•‘°zcŽy‘$f¹F½¥!t’÷ø®Qõq;;ßÂ6Ø¥áæbj^¼[®VÐiúÌ…´S]YóJ% Wá—YFQ´5EIʱÚ-åeñ1uI"»ìªå•]å+|ß¼¢!t’óøuµB×ÔAkæÉuV·¥Ñ:­>5ôeñ‡Yƒ[zÊ‹³øŽQ¦:f©eP½mTÖø<Ü[½cz´dï2´‹QÙë3æ*eé¥ü·èÑPœ«²­ìªúxŠñ+õ‹±è4„þ¼(ú„›Ö ^)]§‘/}‚b³ rò rò rÞ$ì?S0ÎyÏR©¯:„¦çg:¾@{á68ðÓ=à)+ý%B§!ôg9¾ÿDÙÌÓ»S‡âªOUÉ.½b!¦zˆa{¡(‡†Ði¾ò…/^Ð6ø B ¤ŸaUܰ¡P(ŠÎŽšµ¡g—ã€Ê¶È Í‡ê …¢¾« \·ÇÕ° »[¬’[À¬¼î}‘šŸïe®®å]ÉÉFDIíò‰ëtÔ ­œø_K)aôþöŽ <ÉHK¼"!¾¨óy‘YrÕÎØxChqOs8XmŸ(ª¼íúÍõïõm¼|Ö8X_¿¹{Î@"·}-9>K ·XœºH¥RïEœtÐă™/ JQ©‰á¶#Écÿ½þ˜J¥ÆíQXáh}’‹þ†TÊÁ« T*5ñÚþ ×-¬.3±Âû­f1ËK–ÑÝ|ârôC*•ú(ê%ÉÞú ½•ët°Óÿ5éôŸ}0ÆÖ_¦§ç1ôGèù#áé6=Çä);0n­Ê*pœÎˆw3óެúÙy‹E+ÅÙ /¯x,¸â3qæ?ë¾ G›ËbüwÄøs¸m*¼ç½øž7‡ú/ U–íš›xºUZ¾ç¼XSö­KÙ‡uWñxßÚÇ¿ÅRÈþZ#÷cët_£§ñ‘#Îúãôü™Ý4¤}j¬:'«ãeÒ¯>YïÊ(´@ ½€ÍøP—K/ªe¢ŒªÂ¼\zñ'&Šþ ¬ª^‡o%¦¾~›™¸Ï+ƒ¬HɈÆ+I×ß÷;ÿ(·¬,z) ¾^Ji’Xç½,³ðÜr Åô«·~ªŸ„†%Њ+‹žs4vz>s¿E”€“WÊE4ü¨$ŠÆ8FÜ?¥'Id–Ýrž¯¹&väfwãA5ù¹yUÍl@×Ú¾v(uç¶‹i/Â\·Ý—´Þ®+IÄåç=ê/BHy·ÏªVï•kND¿È¥¿M»wáx`&­Oöô)PõŒít¸Ø£”?Ϥ/ ÜAXÅÕK‹z ¼œ ûœŽJ”Ðr1—NÝ·'ìyA)=)È#´jÒ²y²œöCùüòˆÓ¾àè¤ôœú«øÐ‹ÉMR“åDqŸQfCy!ýMJô©M¦[_«ì9b(MÄî‹0A1Ú>Íôs–ó·TÙG'%ź4íÒ3;“Í@¹îCALÓÕnX¦õ'b3K*ËóŸEDä·àä˼r滌¼¬]B’óÊÞd&Eœp xÓŒÞoîúQæç†6aãÇ@n-¸µßã%íK:ÜÚçG§ÓûÑ?¬±õWéÁC°ž?BkK3@YL£@þ›  EQ” Øl”Íì6”íwù ÞËß½h¹¹¹ãƃUügXÖæßl®ß¥8ÐK!ÈïNìµ kÍ\x ®ÏúYðÈš¥Ñiqº"ÜG%É*éëL–ü-—b‹'ˆjì‹ªË ß3éÏÚeüG–KTç,BtÎó‡Yãg”‹GjÞæ“/ÓÒ:­÷ÔÏ|"_/¾úÓéfyâÓÐ/Û#ö©§ú…âj/ÚsgNæp—†Ü^*Û=;‘Ùi´·ÎòÜ9Wßbõ?5/@ ÈŸI×|VûÃ̵ꊪjóö‡TÐi¯\gtlÐMbMCn™Í'¯Ðñ5T€Ø+ÂEeÜ”ÉJó—¹<È 5ÝX9†À;ek òÒ]U°3Á!]÷¯¼ò«ÎTÓÓ3|ÖšÎQRÕ˜o¿}‡ÝX¸í'Gx'X{Fì_0’üg‰G¨GíµW8Ïjù¡..m|¡ßtSŸ4Mi†ÁÊmßÐ>…-ñã&R¹~~š5HCV_NE^Ÿó0Q×7qJxM«½dÜ­–ù¦m¿|cyõFue!y%Q¥ù³í/u*Âùꯂ]a&$¯4@ãpF?¥HþÇï)­&Òi™ò„i³ ÞLCž{è ü·:¢«±¬e}ªªï¾õnãÓcÅl}öLäf¤ë[,œæ@¼d×n·•ºóT)¦kö¿Ì¡UŸÑê8§ÿóÂþªyÉXœ»_ž|b›þ y+|Cý"\`' @ ò×òíú¬FzFFrRœï«!Ê.¥«©Žr]?Ÿ6½›KÓñ)|ßuüRœ——™•›‘•›[î-~_ÏîiŠÁè4Ím°×•)Žg#žÐ’Åù>t*¯ëA¥]EtBè7­Û©;$éeþzb¬›ÅªyªÚjšË—/œÑy$ÿpÕ%:*³'ÏÑ\~&†<Ý¡"@çoé™»- Ì6XâC£!Q–ò=>Õ(ú>£Õ\Ù´RUñE%íùFkæm¿ï& P>I¥!‰Gœ Tç/´ }LC¨®íi¸ ;K!¡ëY÷6lçi!Ńñ´OwÜìt¦©¨èn?ûÉ ^3Œ ðKÈ=JŒ Èb£ÆŒ/7z¼Ü™ömÛ¢5ðcaå…#žGDf¬ÜèñІÁ7c®Ïí¾Ì8ÈàL==îÈä¿ã•[÷šž­/NÄ5žÛR˜N{~'ìèÒ]¼3LõeHø–Ç1/N¬~/IRûò Zã½›ô)Fæû×Mú¦j°‹Œõ@øÝÓ=—‹KñÄáËûªdÛÌßW¶ØýÜŠºÍún3w‡.LêôÃ1|€$,;zôx¹ÑãG#w¹(ç¯pZeO~ÈýdÜÏ«”þ¶1#ÏÁäD…Þæƒú^N— ÇÃÛ8@ ¿ì5ÐÏå™Õ@E^’ ò;+ˆÈNQ˜Ð~ƒÎj,}[ÜÔùÛ³¬¼¼Â'.#ð¹¦EböB­AÉ•x¹JËK¹©å{òMp ZDÝ âžùÀgšûHy÷obÉÛœÓ-Ù0ÛòRõ÷f$Ñ¡rzkMt'#"ÕM, >[W–7µsŽì}êÃj#OUŒ( 11æAÇÝ©‘ãçý@÷€ÕÙã*·oß¹u>¿½¼Bê¼Ö"5u¦1Éq÷Ó¼\ ß› ç”>O!P¼’r¶«žÙ@/“w‚jþ›FŒŽuŠí\31to&£ùcþ»¦Ÿ˜€ù©ð]ANó/²^,̼PLñ ­±"¯ð0ªßf®º»ÍÜ0.ÜãÝ4t‚[°­dÔÊÝZ6TÇ1¦Û´3)àÉËö:Ò‚ gŸ~P͵|ö0LóâÖW?—«`æÞ‹[#4zÞ  &5©­ Ø=]ì"snz?Óm°kYH ³\AéÑòR¼ßÌ”´|,Ê©`ŽÁÏ+>l @2*닯Ù-½KøXÒ6½œ¦%ƒÊfl?ÄvQœZ~§Ü“rÛ ÿÄJÁ±|ßâÔƒõáÁþ`“°…ÖNe <ÓæY//‹¾ôyJ|ñ}鈰c1qÊÕþwz¯o|# î­þáÅÀ]×lNC¾´÷”ˆ E@¨{B‹Ü§°'ãs¯:XìXìú»ç‹¯¸—zŒTä¡?Ó¤Ã+xpšCû¨M:aÌQ#Ä“0\y¶¼@Æ+èï¼j{’Áu^bC¤àCCÙ³›ØË[GÖ¶‚¡ðF@ ä/ó÷uò˜eÛíeÊüÒ›¾„5–ft{—Ñ5™@JéôÌ·™ã#¶:I×vÒDm‹kèX¥Î Kȃ&N5%õLКv>•Oó앎÷ D~aAQþnjHjŽîVÊÒ]‹ÚÊÓ3>‚qfÚ2ß/AÑ8™{Ѥx‰ìäé“Ôã0'êXl@ ¸yZr¯¸Œ“WRY¹òÐ"ÀúM—Q<0Þ¥)emÙŽ·$ø†ÏÑ”9©%͸ Û¡:©Kê†+†¤6ÝÛª#Þ^Þæw)ïPP~rÉay%¡ÎÏè®gc´ås+þJÞ³Foè«§¼8Šï|liEš‘øú°Q´.ÊÁÚ›msl‘ÿ¹M 'Ô·¥6ôÊPXU xk;gºü´AK.Ö(/5ï8ú'Aóö,£ÿÊÅÈOÎR³ Æ`o2ƒYdÎSL?ßm8Y§\¼ן~z3,ùëOìÆ±üxâ[sîÄ— ©;ª‹³*KêYƒÔÍç Tܸ[Ô×ep*¥~È?³Rzö(6³™ À×Ý1ŽBœú" _qúŽeí}{· \7­ò3}{øò!}Ý& O|ß:"ìX8åúþªÚRhÖÓ’^9ƒ¶e}$Xqòø?‚ ÷UÉ9Ah²-5nSÛaÓé»?8Ý9­Ñ>¢öÜXMïß¼~~|©í­ºI«œ•@^½h•\æ•{÷~™Ðœõs²kÊYbÓ´§ýw)@›Þ\>àh±HƒB¡X„—µuÚ¼æÙŶ¦óÕ)Šîr'¿ÄòV¬6ø1ùä&3M …BÑYj"®¸cÚ\sd½‘&…BÑ2¶÷~PÞãÏPÌŠÞvFŠú¢ Çïw\­„ùzÊyÙ\ …B™»t“ΠPFA̱Kt(ŠæB›cɵlìëY‘V”¯ÑtNnÂÖƒžvÞ©ÿe°ë^…í]³H“B¡h­9p³ø‹? /÷ͧPæîLé|0ép6˰Ò6`œ]¦¾êR ó/³FŸƒÝr9܇Ô<;·Ã|…BÑYdñ¯w|­¸‘Âu1U¥áÿè,^½3ðQYKŸ§ÂjûÜ^ß_éÐú¤ç.p½Wü©±©©™Õcø/Ûòr—¶Gýšzé'=˜c믳OÇ3LQè5 Å*²‚õ“ôüy´¶4·¶4O”›6|Cì»ÏlEQ´¹<û±ïŽ•CÆN”›*(7UpÜ‚³ÑohIÜ(-7m„Ýý Vg£æ-õªƒ±šp{,¹é#V¼ö¶¦EQ”ùáí½Ý«´Då:Ó«FÙù¨¨ EQmûTòêÂVƒßŠÌrº\ÚÖV½bÖ4Á/Qä¦ ),ñŠM-CÚ3lªx}z¦°ÜTA9åICîÑk›QEQvsCÙÛ»6êÓ妊j}ƒ¢Iv”öYÄ7¢¥‡( âæ%¢b{äa^UKGY?ä<>f«'Öùí@ʦ#‰…õ(Š¢¹‰g—¨ÍèQá72$ôO¾d¡Õ·6 ;UPnªˆ²õÖk/ ;ŒQOtRyRW©'è[^~UÞ‚¢(Êüøö´µºð³Çn,̼ðÅ ÊM”›6Üâì£òVEYŸ²m4¾|%4Í6üŠ–†ÌQøJ ¾¡8Uå´Q[3Pô͆Ù!4¿`±^º/ÐS‚Øæí©¾úµ\çØíË©jCQE™uÏÃU¦ öÔRp>?Ímð­_.îÅOùÇzg Ÿ4g IDAT½EQ´ám¬÷ܺ§¦¢v±­ WSø>M̯p*¥o¸3EQ}µ{ÔØÿ\¥ôdùécÖ‡¦T±Pm«Í \­ÑSoƒóQVp¸PÐn&Ví»'^öbrÿ—¡°Å÷­#ê)§°Šý©ç¥µÌöÚ¯yãg8çŸ^¶¾v—£„|@ë¢õ{ÓÁbÄ’Ÿ£y¾­»·|fG݉ª¹=jAËÃVKËã5‡Z{‚R ªZQEÑÏ•éqË5•…ðö5¯žZ%·y) ÊM™fæù$ç}NNNâïõJò1‘!è’æ,¯Eó°R&§/?Óܨš],jíø?'''5‹ðR&Ê,¹l¦¶Ø'»ÝYYn®V7ñÏmÁVÐ’ço¢ºô ½EQ´µ(d%åKlŽJ¯éS¬¯·ßÒ±jî®UÓ;@c (³$ÔBÓ,¤ õ›¨X×wƒÝølžîÖ¤:6ŽÜp£ƒ èïvmBz2ëcÂfMõ 7+Ú8´…ì“&zÛîÑ7òÌlw´¶òK5{;ÃŇ_}FÑÖw¦jf‹[ÿÎÚÿ¶ÏÁj¹ßédUßY£nä•ÕŒ‘pÓS ŠýãÆÎÿ™¥aæ”…•Àn|ᡯºôL~W6mM«ª>61{TŒÑöYõ©‡ël¸ZÒ^±AÇpò'×}Š¢(«>ãÊþ5†ªªªºK}?0±¯gUݶQýŠyûÒ?c‡£(ÚZñØßÉTGUUUcñFïåVÀ ï0ËÛZ~ÏËÉÌ@SUUU}áê}Y¬>¥Ó›Q¬éôj ú‰z0ÆÖ_«§¥ðò†‰É‡R,#ÊÛ~F}ýAÄD† å•Á+Mhmi(‹)ÀŸ„þjüRãFK 9¬®ùPXPÎ@¡‰ Ðmzߘy«\V›¯’}ja´ëfVÊÓP¿´è<âÃV§ÛsJiøÑ±~¦Â› PEÙ€ÍFÙ,ÀnCÙ~—ê-±üÖqK¶÷²õéËÂέöíŠÄւ˶k"Ǿ´]¹}­0ÈÍÍ7n\·KX7Ö™zå$Ô·ûíÑÆ ãõaSû4ÕƒΪâ/ƒ·„¾n%xÙPÎ+ÛJC­Ì"ÿ9å;᢭kãé5EΨ/XŽ c)Ay—·Ø¾følN³œ(Dh+ ³^P!6mÅ– êK£==¢º„y/Lâ|}·.§ú®ý²Ó²'®î˜*ˆ­ÇŒ>f»ó¾j¿Wóþ®6!½5»:z½±—ØÑhÏ™BßúsÉ%«ÕÔea§õ‰÷ìW\œ~æ¢Íh2«"ÒfE„JÀ1iï‡{ÓÒú±Á¥óæÃÉaíÓçà´Üït6\ßãäòIlÌô3æè,ÔWÞí&IÙb°­y_Œ¯šp{]”…¯^>ùTÄ~@sÖ‰eëSæŸ µ•çfá9s‹ólóÐucpë¯B›^y[o}3Û€'îÑè![”E‰\÷!–#Ø9>+Ö¥] ±èÖíõÔ7¶•…Y[<0¹rÖhÐW7Rß…£õI[–ž>~eËd~»6ÞaÙå ‹)û÷½ÿ½éÛõ‰Ƨ&žî¬–>¤ƒ3Šõ&ìz!ÿ=–#ÈœÇV~‘´(ÔÞùµÉ™ÃóD²ŽšÚ½5¿¼T†ô£õüIÄ^»°ÖÌ…þ–Czm®Îɪ†v€@·ùÿï)ßÝ ¶½l +å¿m¨_;×᪮äúsbýL…ÿý¼~1즌 Ç- ò»N'Ü–À{Gœ$cL5°kï9/L;~kßtÅíÑTÀn®«©nfn¯~kkÝ`ÌTˆB’"©aHÌó¼3Æ«M@X²óÅïï•°«£7,93Ò'ŠªÈhÎ8²DoµÕÕ c1AÀ3uÇA›YBL°ßWšjW:ßB(ŽãõK:nÇ™çŽT/ öž*ˆ«‡HÄ ¯kÇ”¿¢ ´?³²¼‘ „¾šJ`WÇ ,nž&êž2ÞÑ?³Xªý[™ÅÇwg˜m:·q´a—11Z®‡s~ùG›xÞ6鸇¨OÙg¬UiyJ_ŠØ«é•ú@DF´ó‰’ªž±ÔbRJü<“ê¾,7&«¸ziQ„—³aŸÓÑç`µ\ñ?¿<â´/8:)=§€þ*>ôbr“Ôd9QÜ'D”ÙP^H“}j“éÖ×*{ŽJ±ú"ÌGP¬> 4ÓÏYÎßRe”ëÒ´KÏìL6åº1MW»a ›ÖŸˆÍ,©,ϑ߂“/wðÊ™ï2jð²v IÎ+{_™qÂ-àM3fx¿=ºcèG™ŸÚ†?l¹µàÖ~—L´oöÇŸL‡[;ÿh=Øcë¯Ñ#¢á×Ù£Q Åc#îŸÒÃ4Péù#ïþ,xdÍž>t©Ý¨6?¾‘ÛJ’ª1®-51³†õûy¦x‚¨ÆÞË·Œ‘Ë­ö¿mùÊ' sˆŠ>Üvp¼qd)ë?迵cw!ªs¶"`àví¾%m¿GsÀóÞߺÁþÎ]J¿&Øï­ò·næÿ ~¯÷ ¹¾¡ö'YÖæßl®ß¥8ÐK!ÈïΗ÷ »&‰CLCúµêŠªjóö‡TÐi¯\gtœ?HbMCn™Í'¯Ðñ5T€Ø+ÂEeÜ”ÉJó—¹<È 5ÝX9†À;ek òÒ]õ˱E‚3Bh´·Îò|À+¿êL5==Ãg­é%UùöÛwØå…5Ã Þ ÖžûŒ$ÿYâÑêQ{íÎdz~ädQÒìíÓYU‘® a½ó/ýA½9ÕXV‡²>UÕÉ Øz뽿uƒý Ö@ ò;òí¢¶FzFFrRœï«!Ê.¥«©Žr]+ñšÞ¿Í¥¿éø¾g|YÕ‹çåefåfdåæÖ°k‹ß×÷°Þ—(mtšæ6ØkÊdzOhÉâü:•×uzµ Ò®": ¡?ô›Öíxt’ô2ÿÇ=1ÖÍbÕ¦!TW„v–BB×5²îmØþ™_„ÆÓ>Ýq³Ó™¦¢¢»ýìC$+xÍ0€À/!7fô(12 ‹3z¼Üèñr#dÚwiü‰ÖÀ…•Žx™±r£Ç+ߌ¹>W¤»o 28SO;2¹ÃïxåÖ½¦§Eë‹q …é6lFyÅg’0? 5aêa"GX€Ðð¾A{N€Æ'~‡ý^#ý¤‡ik©Ï×·ŽOG^zJ{ð ì¯úèóØU‰ÓúæØ$IíË/h÷lÒ§™ï_7©7&Âñ(¼V‰ßxÇé™›åø_bؘAüÀ3zud}¢½/€<Þþ6B¿}ÊZO_u†ê¬Ù õÕäÛ¦÷â*ì«o`V &BsS‘8»yÓu}©4$ÖÑ`Ö¢óÏh…û§âËÀ©e\ÀìDgx?¦!ÔÛQ4çPÌvE#ôH‡á<}¶F?;~ `¤–¾±Æl=cû»é´¦ë+Fóðš9ß8û·ôä™?þˆêœýb¨^5=@ äo{?xôsyf5P‘—$ƒüŽ"²S&´?سKß7u®Y’•—W@øÄe>×´HÌ^¨5(9¢/Wiyi#7µ¼óÝj¾ îQA‹¨TÜ3?øLs)ïþM,y›€sº%f[^ªþ~ÂŒ$:TNo­‰îÄ!bD¤º‰ÄgëÊò¦vΑ½O}Cmà飊…!&¦#Ã<è¸ov3rü¼è°:{\åöí;—#¢Îç·—WHý€×R¤¦îÁ4 9î~š×ƒ‹á{äœÒ‡à)ŠWBÎvÕ3èñeòNPÍÃÓ(€ÑÑ£Î@±k&†îÍd4Ì×4ð0?¾+ÈiþEÖÀ‹…™Š)´5Vä5F5ãÛLØUw·™Æ…ûo¼¢{‚†Np ¶•ŒÚ@¹[Ë‚ê8†Ât›Öʼš¶!"’Ê»¢.äþÆÞ>‡¿­<«²ßò_ô¤DõŸBÒƒ|}ãqhõ/îºö`ó›0|§Œ³µŒí6˜Í¡oŽ]0sïÅ­‹=oP“šÔÖ ìѱ= §U¦!XɵÇ>kpT(:&0ñ°&9Ó^Ó©^{øGêã‚/…`ä_‹ˆ}øuØÞ‹£°7ÎÆe¥àÛêS^ÚËfF³µ$ýÙ³Ç϶,8B„˜?GN-ã9–Bµý^kù®kkº?c€¨€°øÿX£Ÿ/ÁŠÞ½ñ¨€§Ôê1Eç–/uí ¬ÖÏÍ<­­/#@ ç³8C³l»½L™×úô¦/a¥o²9§”Ò陟Pð6“úºezò^'A×/øX\ DÇ*I’’KXò ‰“…AMI=´f…O]ãzv‡Ê´=©ulD~aAQþnë˜HjffºÄg¾—Ò>tܼ·•§g| Ì´e®\yÿÍs¹ˆÆÉܳ#¼ Lds[B*ó/OÆx‚a±H àæhɽâ2î ÿD›s ±nºK2Þ¥=emYÞ´¼Vßð9šR 'µ¤Wa;T'õÅyê§.¥6}7Zqì~-€æw)ïP}IŸ%K]_æ´}Úò¹ˆ õóÿ³Foè«§¼8ŠïœjEš‘"Æ.ãuQÖÞ÷Âb޽ÛÅ¿}SÉ©ÛRè…¡8V%óý›²cÓ>ÃÃ-—á±´{Tsã›75ÌÞ$ȹøÿ‡Â^À?BU[ ÍzZÒŒ— '/ž>Õ2nUb5‡¶>961?9Ì›m0†ï9×[§qô(œV‰7U@‹|ôé¢åÉ b¤Ýzy? ÙW1¤î摼ϽÐÁÙ{1öÑ7¸hËœzæ‡g €`ïdàÔ2æWØ [˳«€þäR<ϾÝíÿi)ýè=÷Q]°˜,@$? ™P_þM'Îóìs•@ üÍt›Aj­-)`(†¤¥#ôgùÑÇÖ1Ž ·Ð-»Û*¯ : éü|:;Gf]E%{jHZ:B§!™÷SO¼l¢>çr °ß_µi;Ã÷^†ÐŸçœf®­}­Š @ÛûkZÔ—¾Ñ ‹OFè4$óŠ–×1é¿Ü¡“ħ¬²¶p´Z8S¼K"òbïˆÉÆ>öñž´k¨¢^8¡!F ñ‘ó4ûJÞqµtB§}VmÌÊÈGzõ36ǼH³Ü#ŠÞÒ: É{|רú¸oaìÒps15/Þ-W+è4„N}æBÚ©®¬y¥’…«ð˳£(Úš¢$åXí–ò²ø˜º$‘]vÕr€Ê®ò¾o^Ñ: Éyü:ÈZ¡ë=ÏÖÌ“ë¬nJ£!tZ}jè Êâ³·ô”gñ3Õ1K-ƒêm£è´ÆçáÞêÛµ–ì]†v1*{}Æ\¥,½”ßá= Ãmò’І©I_Ýr8·µù­ßʃõ†½¥3z“ &}UÈyfäsqÒ‹2…“I†äܸ‘ù¯ª²VD% /ÁÿC<÷U‰ÝúæØìÒ+bª‡¶ŠrhVá+_øâéÍÁD= ¯UâÍ÷d„ÿ0ZùÕ–¥7+‹#ÌßNWvåtï6tÃô^ …}«¯þnËx2pjç+l…mô3K†.šæßH§!Ù þÊFÑÿÏ{ûÓz죸µaŸš9`UÞÐQÛ¯ðžNCè´Š“ò/Óó?³{×ô ÿ1Ц7—8Z,Ò P(áeuÅþ˜|r“™&…B¡è,µ?WÜŒ1Šy%Ú\sd½‘&…BÑ2¶÷~PÞã²jfÅo;# E}цã÷;®ïQIkQè5 Å*²‚…w=«æÙŶ¦óÕ)Šîr'¿ÄòÖžÒç¨7<-ì0t©¿ vÝ«°½kiR(m£5nñäå¾ùÊÜ)?´³*"­(ŠeXi0 Î.S_u©„ ûœ/wf1Ç6.Ñ¡P(š mŽ%×bÝeµÕ<;·Ã|…BÑYdñ¯w|­¸‘Âu1U¥áÿè,^½3ðQYKŸÚÁjûÜ^ß_éÐú¤ç.p½Wü©±©©™Õcø/Ûòr•VßþËêÛÃûwìûÉz°ÆÜŸ çžoiw~©q£%¾Œc·~(,(g ÐD„;Ç[¯œÜ˜_\‰ÄåÕ7m_¡²mŠ]üø¾¤Om¿Õù†-ÙÞËÖ§/ ;·bÇ/7Ж‡/oÿû¬±®+W„Z­º®r&Üa<ìª[kM/O Ã>I§•~jåêGºçC×É‘³ø‚•ùí™í±±•´…nÚY¼l#éÄŽló«ÁKeHøÊ;a¼òXâ½üòyódŒëÙzxá ÓÝnîÐù½ž×ws±kïÿ»Ä½ÙñŠŸÑào—Ì¶äø˜9WlØÂëí#|8|‹?¬ŠH›åEˆï‡ïݦÈSpv•õcƒKç͇“ÿÂÚÿ¶Ïi+ ³±ŒÑ >o9ŠŒ«“]swý’ IW6OàøÃ ’²Å`[ó¾_5áöɯ²ðÕ+Ã'ŸŠØ¢ÀЦ—‡–o~eºnLG6,¤¶ö3âÁWŒÑGmI;jåZ´üœ©,0Ë"­/Ù{ÁuŽà;îú>»!3ò¤OØÃœÚ6A™iv®¶ƒ°ú"ruÔ:㣹Ý Íõ¹¹G‰#\feÒYOÿ›ÏË›y¤ì]í´dÈ`‡÷ ˜};³"ÞÿèůŠë˜$±±Zæ.Î&„‰Ü§Ó›¾½éz“>zpGÕÿwìûUzzs€ž?çBþî…æêœ¬lÚ›ï>Yïàdé ŸsÎE^{”–ü<5*ÌS{Š’ôz8™ù‹aUܰi_Ô°£fmèYìÛhNWòH*(ˆV'ÞNûÀD™µé7n°>¤Òª1‰mûö´Jböl¾‡[ ôÿ½OTV•þ˜’ZÉÄVÒZºnù)Éý—wÎüvbÊ[ ®û>àÑs\$KƼK~øExüÁ_ûã“«/€²åÜï&³@[I„{”¸­“–ºÃF™xЂÎþ‰ö>« \·ÇÕÀÑå+‹URc ˜•×½/R³ó3ã½ÌÕµ¢9®Y&JjïpO\§£fhåtÀÿZJ ƒÝël“Œ´Ä+â‹:×ð0K®Úo-îi1VÛ'Š*o»~sý{g}/ŸõŽÖ×oîž3Èm@KŽÏƒÃ-§n'R©Ô{'4a÷E€(eD¥&†ÛŽ$ý÷úc*•·GI`…£õI.úR)¯&P©ÔÄkû'\·°ºPÌÄ ï·šÅ,/YFwó‰ËÑ©T꣨”${ë3ôVЧ1«oç"ޤϭžÿÏ>\Â?AΘûõü‘ð@@ ü`H2ÆÁTc»öžƒñ´ã·öMèý•ŠÛ£©€Ý\WSÝ$:ÍÜ^ýÖÖºÁ"˜¿å…$ERØçygŒWš€°¤ +ý±©Îæ§³p7Vï8UÅÇT'qg¤Ÿž$[9»)#ÈqK‚ü®Ó ·%Hxú•0ô‰xáu- ßü=¥¥ø™•ål ôÕã»:ö``q ð4Q÷yðŽþ™ÅR22‹ïÎ0ÛtnãhÃ.c ˆ ž©;ÚÌ`‚ý¾ÒTë°¸ÒùV#¿Ÿ™àmâyÛ¤ýo´>eŸ±V¥}ä)}©^-zh«ÿÐDdD;Ÿ(É£V_¡®îBœ>Š ÜÂ?\Oã#Gì1÷êù3»;h‚Ÿ¬Y§+Â}T‚¬’¾ÎdÉßÒe±ÅD5öEÕe†ï™ÄÝã‡Ö²¨ÎY„é0œç?› ü)° òréEµL”QU˜—K/þÄDYU¼ÞJL}ý6356pŸWY‘2’Óà‡}%«úIhX­¸²èÙ9Gc§ç3÷»QD;Ïù`ž[N¡˜¾ëü±–(®µ}íPêÎmÓ ^„¹n»/i½]W’ˆ•¾ˆ†µ“„C1ÂLjû§ô$Q,=̲[Îó5×ÄŽÜìãn<¨&?7¯ ª™©K~ø+?èQBÊ»}Vµz¯\s"úE.ýmÚ½ Ç3h}²§Oªgl§ƒÆ¥”øy&Õ}y{€ ¬âê¥E=^Ά}NGŸC”Ðr1—NÝ·'ìyA)=)È#´jÒ²y—Ù|~yÄi_ptRzNýU|èÅä&©Ér¢¸Oˆ(³¡¼þ&%úÔ&Ó­¯Uö1”&bõE˜ m€fú9Ëù[ªì£“’b]švé™Éf \÷!€ ¦éj7,aÓú±™%•åùÏ""ò[pòå^9ó]F ^Ö.!Éyeï 2“"N¸¼iÆ ï·Gw ý(ósC›À°ñ㇠·ÜÚïñ’‰öÉþ};·épkgœë9z8·éô~þ9z°Æ\âÖóg>DÙ?‹8Äô݃ÏcÍ$TFIgùΊBÖiz^Ç€4ÄöÖÝc¬c:ÛÒ;b¶}*)~ÏCL/Ñ=Èn«vÇ2Q{‹«™JþQEÓ°wm¼S¶ÞJY–>²+¹ý´0Á!Og\2v‚ÞxåWù>u›Qà~õE9YzêL%öã§òZÿTKóÈš=}èR»Qm~|#—QùþÙsçñüûêZG^4ÿvåÆO>u$3çmòc[Yn¥ÏÓ}3«‚ŽÞ¢U¥§ÌžÎwûЗH{ÍÈÙ„½°©yÊ3K6lé?Þù-@”6)82Ôß[2wgì'6œòäÌ(w]Íë5}¼[âŸà¶$¸»þ¤‚-)§4[üùá3´zô‡×²¨ÎÙŠ€ÛµWø–´ý7„@ žø½öÏâ ¸ãÒŸdX›³¹~—â@/…@ ¿;˜ûg5Ò32’“â|÷X Qv)]Hu”ëš¹lzÿ6—þ¦ãSø¾ëõj¤8//3+7#+7·†][ü¾¾‡'~¢´ÑišÛ`¯*SÏF<¡%?Šó;|¨ûd– Ò®": ¡?ô›ÆßmþCz™ÿc„žëf±jžª¶šæòå gt¾rÊ?\u‰ŽÊ,ÅÉs4—ŸI !Ow¨й0*s÷¢”ÙKch4$ÊR¾Çmù}ŸÑj®lZ©ªø¢’ö|£5s‡¶/% P>I¥!‰Gœ Tç/´ }LC¨®=*ì,…„®kdÝÛ°ýoË„ÆÓ>Ýq³Ó™¦¢¢»ýìC$+xÍ0€À/!7fô(12 ‹3z¼Üèñr#dÚ·mÿ‰ÖÀ…•Žx™±r£Ç+ߌ¹>·ûš5â ƒ3õô¸#“;üŽWnÝkzZ´¾8×PØnC”6:ójßïÊ“ìüCâŸÆÅÝôܳ«s2 ðOØõoÛvS‡E¦ÞͶ§<¦tù;»!vÅΖ€ä vœ"qvQ<# HqzlbZJúóèˆÀ§;&³ðj¹OUI’Ô¾ü‚ÖxïÀ&}Š‘ùþu“¾šXÃHòxûÛýö)k=}Õª³f/ÔW“è9A@ @~.Ø/ ¡ŸË3«Š¼$äw_/";EaBû4«±ômqSç¶‚B²òò Ÿ¸ŒÀ皉٠µ%GTâå*-/M`ä¦~9°’o‚{TÐ"ê÷Ìöµ\Ÿiî#åÝ¿‰%opN·dÃlËKÕßO˜‘D‡Êé­5Ñ8DŒˆT7±€øl]YÞÔÎ9²÷©c¨<}T1¢0ÄÄtd˜w%,#ÇÏûÇUnß¾s9"ê|~{y…Ôx­!EjêLc’ãî§y=¸¾7AÎ)}žB x%!älW=³_&ïÕ<ü7 0ê Û¹fbèÞLFóÇüwM?1óSỂœæ_d ¼X˜y¡˜âA[cE^t½©l IDAT#àaT3¾Í„]uw›¹a\¸ÿÆ+º'hè·`[ɨ ”»µl ¨Žc(l·‘–—&0rR9žË7~w€ÙGEAe¬6fî»ø…ßÆÐ¹'hÏ®Mv›d¶5=öa‰ÿ7Q9å…KÓóµ3”Ö’„äç˜^µrƒ¦ÄËgÓ“iYÇP}ªJ^µ½·Fh,:ô¼@MjR[0°— FþµˆØ‡Hw B¸ B @ ò“Á|‹•¶Žqdø¸…nÙÝ6´Rñª ÓÎϧ³sD`ÖUT²§†¤¥#t’y?õðÄË&ês.W°ûýUË‘æ±3|ïÕÑiýyÞɉaæÚÚתش½¿¦5A}é°ød„NC2/¬hy“þñËf<$ñ)«¬-­Îï’ˆ¼Ø;b²±„}ü£'íª¨Nhˆh|ä<Íþ’w\-†Ði‚U³2ò‘^ÝË1/’Ä,·Àˆ¢·4„NCòß5ª>ngç[Ø»4Ü\LÍ‹wËÕ : ¡SŸ¹vª+k^©dá*ü2ëÀ(ж¦(I9V»¥¼,>¦.Id—]µ ²«|…ï›W4„NCr¿²Vèš:hÍ<¹Îêöà 4B§Õ§†ž  þ0kpKOyqß»:f©eP½mTÖø<Ü[½cz´dï2´‹QÙë3æ*eé¥ü·èÑPœ«²­ìªúxŠñ+õ‹±è4„þ¼(ú„›Ö ^)]§‘/}‚b³ rò rò rÞ$ì?S0ÎyÏR©¯¦®šžœéøí…ÛàÀ;L÷€ÿ¥¬ô—†ÐŸåøþe3OïΗíL9ªOUÉ.½b!¦zˆa{¡(‡†Ði¾ò…/^Ð6ø B @ òÓéÚÚâïv~©q£%¾Ÿ™a·~(,(g ÐDùuü&ûÁ£MoB½ã_dÖ²FÙ…Ÿ[1ìëZ‹Bí,NçŽvŒ^*Ó± ÷«½™Ù“}÷$d”Ô·¾ÁŠ l¶ØÍÁOm.Š=y(0.ëcYJÑpãÎÚCÈ}R¬xàÀ÷VæGT|’¡ÃG!d€—>ÇëY5ÏB.Üy’U°†þc¸~Ë:Í!¼Ü§ƒ~É}§ù¾ó¿—£Â¶ÿ?s±ë^]ñö»ú8·¶Wbœ†åîí‹G´ûòrŸÉæû,Šç̓³„€Uicêón´mXðJYÀ,8»Êú±Á¥óæÃÉSíc·t”Qëü\\Ƈžcõ·uVíø öm5Ï.÷¿ö¤¨å¥¨¹Êeã\Aª½[Æw¹MØq}w½ËÊS…À')¯¬gag©>ŒÐ'íXmŸÛëû+ZŸä²ä0¿K€Ël 2Y@˜Ÿ„þKà¶¼\¥ƒ9ýªzéiTýÙåê'=¸w?Vϟ—ýàÿ–Cz ›«s²ª¡ é;a…U»}Vµd{/[ŸþÍw­E¡›v/Û¨/¶#3¢„ꦓª›ÚÿiÉö^f±¾.4xùàŠ°5–×UÎ\MÏ»êÖZÓ¹avcy¹TÒJ?µrõ#Ýó‘äÈ€Y|Ájù²ìÀp¹*ŒôçëÇóIδØ=Ó¢=QÆ+%ËV—]>o>´’Ëtxá ÓÝÌ¡Oý=°kïÿ»Ä½ÙñÊ™Û{¿}¬kÉ >”ªä¶Ÿ×Û3àMø…Ž£xˆ§ _Ýt|Rè6EØçtoém¥a6–1ZÁ篹àÏ!°kîÚ. šp%æÐW»JhùSµIÙb°­y_Œ¯šp{Âeဠfx*b‹?@›^Z®sÊ0$tݘŽlXHmíg (&.ÔC`ôEc[ÒŽZ¹-?çc*K̲HGëËCö^p#øŽ»>„ÀnÈŒ<éö0§¶MPfš«­Æ 6Æõäê¨uÆGsÛŹ¯J@h®ÏÍ=J|á0+“Îzúß|^ÞÌ#¥hdïj§Õ¾ Vx¿ÐŠU^fE¼ÿÑ‹^×1IbcµÌ]œM&¹O‡ó„9IÒJç¾^¸Òƒ7ªþ‚rõ›ž^ßô¯ž?"€@ ü@Z‹B×-?%¹ÿòΙz¼õbUܰ¡P(ŠÎŽšµ¡g—ã<’ ¢Õ‰·Ó>0Qfmú[¬©´ê6nu´}H{Z%1{6ßíúÿÞ'*«JLI­db¥uýWe+¸îû€GÏq‘,p›~øE^è:ÑtÖÇ'W_e˹ƒ¿[£ÐVá%n뤥î°Q&Þ#´ Ó üí}V¸n«aA v·X%5¶€YyÝû"5;?3ÞË\]Ë!º’“ˆ’Ú;ä×é¨Z9ð¿–RÂèýváIFZâ ñEûÓ0K®Úo-fö±/"Š*o»~sý{g}/ŸõŽÖ×oîž3Èm@KŽÏƒÃ-§n'R©Ô{'4ñ`æ ˆR†ATjb¸íHòد?¦R©q{”V8ZŸä¢¿!•rðj•JM¼¶Âu « ÅL¬ð~«YÌò’et7Ÿ¸ýJ¥>Š:AI²·>CoíC:œÇ nÓéÍØÑk=ýbŸþ)Wÿéáê® ßôÀù,Èÿ¬Y§+Â}T‚¬’¾ÎdIÒïXnlñQ}Qu™á{&ý‡w' s¸KCn/•%ý7}ã·vì.DuÎ"ôH‡á<¿MsÀóÞߺÁþÎ]J¿&Øï­ò·næÿ›ÆGÎæ§³«SÜÕ)sm£>¡ï|Luìbk0I2ÆÁT*•J}|޳j¡ÛKŠÛ£©7¶ÌàûTÝ$8ÍÜ^]ˆ,6X„ë†@’H Cbžç»Çõ$[jš€°¤ +}ÌëÛ' š2WÏ3»:Â3áöNeQ"ܦƒ^×2:Ï_ôL"(-ÅϬ)oü¶]°«c·d{š¨«/>˜Ù\rðN×Ô Ìâã»Å6ˇvÝŒ) &x¦î8hC™ 7Y×~ŸÅ Œ°¸RŽ&âmây›JMŠ ñÚm7œ3ÖÚp·º·sZmõˆŒhçyÔê+TjÄ—åZÜ÷EíÓd‹(¸™#ch¢(JÄ»3ôsIv­¨ÂTir¯óåfUVq«ø©Ž9w¢¸®B¨å2Vx¿Õ,–þÏé ÔWz%Ö·² ‘IhKc »Oöç8q™·vî¯zùÑåê/=\Þô›ž?|>‹8Ä4¡_Û©®¨ª6ßaHöÊuFÇݤ!¶Ñ4ä–Ù¬qò ŸQCˆ±"\TÆM™¬4™Ëƒ ZÓ•cx¼S¶Æ /ÝU;sœB£½u–ç^ùUgªéé>kMç(©jÌ·ß¾gÕüß ïkψý F’ÿ,ñhõ¨½ö çãY-?ÒÃ%Í®Ñ>Uíö)¬wþ¡?¨7ïú³ËêPÖ§ªzø³l½õÞߺÁþ…ë Ò¿° òréEµL”QU˜—Kÿ{×õÿÇß·lʪTRÆ·”}£áœ•IÃhX¥A"¥Iii¨Ji©¬h’‘œ2*W(ãlBö:‡ãî÷‡‘ê>î~ªoù<÷ï»÷ëý|¿Öûó~}Vi#Á¯æCìGœ¯¾ JÊ.ôùe‘O*öÔÄ{œö{ü"íÃǬ´h¿c™8yüTN@Oí«À 8RiuIêM»ÕowÁ ô/d´â›&x¼‘_!m&h![&í¿“^Tô6ÈiÿsËÚ"h(ù¿§U<Þ½LÝ*zê.¯“«ÇÕäåÕtЫràÛßûx!5ŠÀ«tØkc—çz+÷ˆ·yäéÏn_ðË¢2š“ݼŠTÜ¢ûC(ú¾ÌÇ-ià…:ŧìä¡A<\IGrN¤ k8šŽO;v$èMQ99éºk`Í,ã¥âÌVºöwgŽÝˆHÊÈ-"¿ ¼“Ü&:[ZöŠ­¥²˜œqÙÞhßå#gõÇ£arótÈ\ÔA¾i¾lomDRR´c›³Î†«9T`5‡” º“Íä8ûmîÑYeÕ•©a¾¡0ã²xð mêlÐâaé蟜_ñ¹(+)ÔÝÅ7»²}Ä66ü´ö–nîÉ3fLƒë*z|ÜõÁŽè5ˆ59¬êæ÷L=üwÍk¤ø ÿ¨`dùü•øúµ|í)2ótÇ£àü)t(h¼e¼Ü6£? `Æ{…ÞÔ¦'Ü L-ª¢âD'òFG¾i¦¸¦¨èýCû\ÛŽševhÿFÞP ÍÓiT€ßð:Á‘ûÎÑý‰µèñÿÚ8YÊ=箹M†O´ÜòÞ/üוøÛù$淢LjILëys'îs¨1JžO¯ZuǾñ 5ÝÔÑÖ}_WïTb3†a/†ªËâ9´\ ]OóÚl}4µ™ŠWÞõ‘¿u×c'ψw­"êV/.¶×Þz½¢Å%,5iœ‚­¯¿Jª……_V' §ùsy•þ+µß j,òX~1ÉñܸñËý7WïP]Û:àQãô|ÉWV¯ÜŸÕ àÞú&Úªlײ•‘ hEA» ¯ºwì‰u ôiÓ§ÑË3˰k‚㽪¬¥ÒÛ‡zܵú´Ø[o›zF‚!Œz§’ÂN¾"wKÚï2~¾néð::œo@ŦÏC›&ØslŒˆæí˜ó+ëŸ:{Åâ¦j­·Þ¢ðù€æ:ï2¸›g`< .*¡À9Ã56Hÿ‘Ñ¿ž…(áI“0uE5ÝÓ6“L_.^ê“Ý…›a{ÿ=¸}êJ$¹®¹'(„ÍMH"S´÷Â2dË7àŒ½#Xâ—ðxÊíÕNzžg7µÝ2>^ºÆã¨Z¬ù¬#™TÐV†û &Ì÷ˆðÛ‚~qâü£´:0Q}ŸŸyG¯•ÙÓÆ;¬À^ÇxpöPLUHÑÖy3¡ØmŽqpQ7@t˜sN·ÍxjòÆTÛ"µ  u­Êwl_8Àj~”áy<;@ž þ7i±æhVן2ÄK @ð§cσg´WfÕe(è»_|Žœ,@OkùÇÒ¶þƒw^q9 §w{]§ð¢ã’C«áìÇËŒGQóÒ*û·×œ²'ï¯$nW>™Õ[ûj'œ*sò»^2›}oj—m_d~—ÉU°IÒ:[ÖhÏœ(ˆ¦Ô¶õ¡EÚâiù}‡ýŸÓ¢ˆ­¼N¬’(ö_c45È~sOÍõñŒ×>aqí‚ò“'OBÃoôΗ—pÂà ¦®}* HŽyžî'øhœ´CÆD8†€÷H¢àrœt6ŒuØð¨º^²Ÿ08çkÐß(xÈjfàÑ,jG}AaÛØF 5åvü&mÀõ‚‹It·Vå·,µö‡]9½&r¿©~Lð¥!Úî$†¬Ë k‘ðíøÈ:à!À( Òmºªóëº'ò‹(9Gœ›PŒ’mk›ËÕ]ù©º ^ó|RB¯Cd\÷öŽmÄÄ“šîø9ßß•ý/¤ÀB%è±hlZÚm Ã=Ç.ZpôĪ®Pµ•§ßtˆImª[|ǽ…ô(˜¨L§@‰ë,Nm±S™)(å÷âŒ:.ËVÝ¡YsJ=ñeÑÀ$¨÷C£¾í½0 ‡ãl,^WùéïRh™–"äÔÔ—­©{ gJð£ æÃЀ±2œ@1Ī÷ØÂù@Sýd*¸Í€ùØÿG#ìpûP’ù0±€×ÄZ©’›&&ÓîŸ"ãTG8ÌÓ»ÙY‰ @€ 倬gᤌØŠUxlËhhk-ÏÌÎiaòcJ9™œÕȳˆ:ç%uÐ÷ àK}iøGA“\ÖÀ›9›Ô•5Ó@×§ [iVN×*+Ik¢€Bsññp ºÄ#¬ºaƒ6:Õûnú—¾ƒ÷îÊŒÌz°|ƒ¦XHÈçïöåüjó®Ixè­Ïëð*Ÿ*˜ ±ƒé¡…‚ Йâ8=Škææ›-ÑÜ.چ狩…)E@GISœ#=¿ À9e±º(ÈM+ë€eØ ¢aU>áòÝ´¶ö`ƒuçŸ7Ðè(L)dèŠx­5túÐÎìZFg{àäûæÙŸ¦á`P¯¡ÆbJ¾¿2ÔEé€_˜Z¿*žÑ¾ÓÒóYPÔùBg®ö-îs÷§µ0 E15%ísvEçjµ+^S‚ÍÏbmß^?<­£5;»Ž6̧ÿ0¸$T4EŸ^—uÀ DÃŒ…eËʰ¦„ ‡n¶]\–.Ò“â|ó‘Õ»M™zLT• Ha‰wÌ/ÞÄÖ™Éq&ÕÿXÕĦGgóÛ‡Áƒ¹÷B2dÓ7Xˆef™9aGïKÍy†GÆÊ_A3ìªÌ©º³ç‹bS¿¿ìîÿ‰”t€¡sÔWôÐzƒBý„0 ¹²ðÊN¦¶w³` @€F3UºÊЍòþérjAÄù­Ô³S¦¯pÉt€²G™Déÿ4^[Ì­©ªš>×?=ƒB&Q²ž§™°†°8 ªÐ?ß3Ÿj=ßûY™D!¿É¿83ÈTSó~ €îÏ÷5d †ÙZA±É2‰’u{]燨Œú#tŒÐœ–fv+}¥Hy{Tböj/aÛØÄW½jˆ·ÝÕÑ´&îV´WðŒi “(dÒ—*­Ÿ2 (Ã:Ít,ŒðB¿Ð’$ ™DÉiP{ÁÆÆ»¸zy°© ªÇÞ{Ud…LLuÄ"(©‡T÷À2Ø;QK",ñ ¢vµ.)ïJÏDÐôŠ{æc”+×yg¿'QÈ$JîË×-å¾ÞÑÛ•uq«Å“ ×ÓI2©9-Ð?ýÓ´Á*†‹9ù¾Š@m”¡ùõfëð2©õM°'¡ïqm 3ÇYß&Jù¨—Ô=¼áÝ‚>·RQn“ŸT2Yuü½½gòº:>ú¬8Agòçh2u8!Á.Cæ•‘öÒ¤·r“(d%÷yÂÚ%Ðê8ÿyÖM ì96½<ÄLPå4ÕúvI.‰B&UyË¿}K¦ çÁL= .*áê=™A·¾H*½ßkø¨º4t§éÇ9Ó+B® ïnÞ Á={t,ÃÑ€±2ÌWÐ »ÉW×N2 WôŽm%“(9qñ{fÀ 3ÿŸ÷ޤ ™£XÕ![azªj©îŠUóýL&QȤª‹2Eï2 Úéà = @€F'¾>? ÑÅèv.Ñé’"Ü?nãè]_Š‹*© DE ` <3,×Ïn-(­¦ „döÖÉ¥ìŸcû¹_;@žŸ5 «¿)9Fs’ãÚ3\޾ދ„q8n>. |ûo«óeONWI Ù•pva‰̪ʒæk+dñç§ó!=³ÊçoY=°âÒɤm~6V*^q]­Ù"˜?qÞÐäQjÇ›²‚Ìâü«,ý3ç% uBÛ9û—iãWÌ +ºt×Åwéé2©…óÚÇt&ç0¾úÛ1Hóè‰FGd+SýFò¿4‹Ì1“wF’(O ÅÇ¿è‰ôq· kÎÅ^/öð·Žõn‚š…åZ@iÿƒGÛ>ïÖÝìáµMÏ®ÈòÁ£Ã‹Ç¢YÍ!tæz­Õ;ÓivùÉ "‘ø,ôâNµqXÈqZTÿ:‘ø"Øz*îŸ=^‰Ä˜# ܪќ䨻= ê^‘H|qÿ¸ì3‹Û¥4¨ö³,ä|qbÚ»Ü"ˆDbb¸;>ÉÖò*¹‹ 9]%[M.‹8´` šm>ÐòYå3Rúa¾¶þ>>#£g$×}SÏêÝÌÜ?DWQ]¶ó¸™ôÞi~ß#Ž1­#H”ÇN—‘ëûL›Äîïê¨<}Îl…eÆŽñ™¤¶‡ë¥°Ž9û¢(ïNª ¼Y‹g¾ÿ×ãW™WkÉ™^[Œ+¨¨-³=pæ,ã臬¥[èñåSqyF ñœ­æºÝ>uþT¿ú…üÈ…0KQa¾Þúý/³IAk%~^qðÍëÁ/Óf⦀4ʇ›®kºkâ>î®deNÅMjw”xe–-²½ÛÏæ«Ñµ‘¨ ÝÀ+£0FíLæH3ùþõyMª s0V’U\¨îQ:å«ÖÔ+ý ô´V41zkšoZ_ïØ-híud&++{½†ÇtSßÊO‰_ȤL;)Ο4ÌWlŽ%fvóye²û~ÝùjK×yú„:þ9Æ)e`j öïœÙÿ.Ùtæ–“lÁÝ›™Tè™®¾A$‰Ä—7ñQW¸¼£À- ‚øpï|ÎÆÚ6ES[/Np?Ûk­èÖ㵆î{æö¥¡¹yvîÁS›ñ²Ò³µm™Ë Š)§A1‡þ=„|^~@©£ /u{yAG¤³® ð‰ðbàÛ›:Ç ëè(Ú“ðŒå¢ÕU¶Ò¨½FŸò+íÌq[C ¬:•ÕQáêé×Ò VlՅ¾ö7 ­Ý e¡ƒÁ%¹Æí ‘˜îïqØf ¸¹Zc{dípkZÝÍ_Z¿˜@a7mS‘:p¹4CˆØï+“­Z%Qô0,WL¼šíe9 rsÇã†=.K9´æSi—”hß"†Ò¾h.ƒj1ËBñox_Xí IDATÏ8¥GXïñ¢¸¹‹‡at¶vÒY–Óš¸ÛôJNmÊÉÕüëðFF¡—‘–MtE9¬êy¤ì+‡ÙÚú›øŒ”ž‘\~¼>«•œ™™œã}Äb¢’cùF?¢ô×Ó§mŸ?摳û>ÅŸ¿–ï)¥ùùYŸò2?ååÕÑJ?7Ó‡*1\!¹LðX®<ÇîZè+RrbŒÏ™Ó—ó¿‘yœKÈ$ 9ÁGqÐõí˜ñÆ—^RÈ/¢]Ì6.UÑTU71Y1¿¿¤É5Ee­–òBùÙ‹ÕM®Æ‘(¯*sÐ.=ëðÊåøEzkí¢H$J¸¹Ìi…[Þ;•Tb¿^Eþ_yÍeVK&õ¦&Ô¥‹DåÅÙÝz*ËVl|I¢Ôz7i° ûg!¬íÖô1èx5Å+*–ÔøÔÅFKQYYûÀµʧV“1—°´”ä4AÀ N“’œ!-9CZB¬÷±í¿Pð½ Æ‚!åûGZr†¼þGQ– ¾Ì=Nïj39æìì>¿ãÞúœ¡+„†UœÛ¥8''ƒôæiÐ9CçLŽùFºbxÍè¦×ˆÏ #¢ð–Ôú섽.^ÏÀôøÖYß™zÊPÛ¤_è6Úz^,’GO1¹à­œ³yÙ±ŠU'o®kڥ뒹àp áL¿J s Ÿ¸¤ä iÉ’“q_]”ùW0Q9”²^ŒûuFiÍÃ&z‰Y"àËû¤gos2RžùÇ–Ð1¸ÿ£œOžDÓkH(Zíܹ’°L×ìFl图È`m´¾ò9³ÛçåûÚ”«ñCî]~»æq±`¡zôÍ1”ìëÖÓ8°bzÞg|Ø7‡àÀ¯s/=Æ¥ñè”y»Ã›‡Å­±† ÁÎXÆgÜççï\ã^¥³ë”n«‡C@ñŒÿbi˜ú¥(?\Ò@cPkŠóóÈ¥4½1Åç숤7™Ù wX¹æL·Ø<‡™¯õÔÄ{œö{ü"íÃǬ´h¿c™8yüTN@Oí«À 8RiuIêM»ÕowÁ ô­ø¦ oäWH‚Ißš˜áfw‡k‡Ç™þ‚"ZXÃÑt|Ú±#AoŠÊÉI×]kf/ÇA1‡ú=¤|![&í¿“^Tô6ÈiÿsËÚ"høö÷>^È‘ú(¯Òa¯]žë­Ü#Þæ‘?¦?»}Á/‹ÊhNvó*Rq‹&ö!ú¾ÌÇ-©‰ñõ쉲“‡ñDp%}4ªi¤ÃGè7hwÖáØˆ¤ŒÜ"òûØÀ;Ém¢³¥`Wx­¥²˜œqÙÞhßå#gõÇ£arócˆØ ƒ|Ó|ÙÞÛˆ¤¤hÇ6g Ws¨ –s@ ª;ÙL޳߿UV]YæZÐ 3.‹çɤM Z<,ý“ó+>e%…º»øfw@¶ØÖ‚?ƒÖÞÒÍ=yÆŒÉcp]E»¾£1ؑïæÓiÄ8_}A””]èóË: bÙ.,ûÜZ6|9Ðkëïá3Rzf•Ï_‰¯ï7DO4ºKví²PÚÖÈNÙSqAVYÖ’;RÛ0­Gž§»/uzÛ{€ÞÓZþ±´­ôöÂÞàGáš$»Âj—µÄkË•ûC«1sö=N1ÎXŠwNnïÝyÏ÷å7ÿ®‘¢{éô½RLóôîŽïÇ){2üúJâvå“Yíлc™­¡ï÷R¶/2¿Ëä¬fÜBÓÓ»ÖhÏœ(ˆ¦Ô¶ñŒª:£»æD~V|ÃëdžªËb[|‹/ûËx._ãJ†Ï´œÓM\ÃOhNnÈyòäi@hø³‚¶àUóŠü7R]óTzoQ—{¶Gü“´mÒ¡öÒ˜Õ.ÇIdzp xÇCðŒÒåýî÷_ÍfÍ¢ç¿Gž¾\öœ qömÇïÑl/ȱ$ù~±“Œ‰‰šûÅöûäXý«1Á3BU´ÝI Yר ‹·Ûe÷¤µ ­(ˆâéjÿ¢³³þoI¿¾qוøÚXÍçL†TïÐ4Fn^E |âž*F¨iœ~ÓZת|ÇÐ\ç]ÆÞM&¿8ˆ ´Á«9¯žñ’2¢ߥóÎú’Ü*š$y޹ûŸ¼Z—©»h2vÂDT}Y÷¼ ß¹wŒÏçw á‡L¿‚1J¡;~ø1 Œæ»¡íÃm/*3VÝñrЊ¿ko°ŠK-—Ë6G8ëì,aó:}›Ô®tÊ“àV¸”xS癹ܑÌöa%XÈ^}®?uݳ˜}J˜W]ãS}“… ‡m·ŒÓXûe»ÔÒ·â5â å;kç{vÂ2dk¬’CD%«cáä÷†Æ¯ÎX©v$-$J¯¯ìšºïœíì&äý†1÷"&F¦ƒ¨~ÄÀû !«¤8)ã¶b¾>mm­å™Ù9¤ìRvNfiÛ )(ådrÖǬ—±¡ûvžMÒtЇÝõ¥ @à…þ–àÆÍœÍêÊši ëSЭ4Nõk•ûîgD¡¹øx¸±Á«šÙ´Pÿõ¢‡îÊŒÌz0}ƒ&“gêñ«]Ì»³¦ôÈñÙóøf©ÊÙŶ@žSè¡…‚ Йâ8]FWyýúÓKÔüZȧa ¦Q%Mñ¾“ŽœS«‹‚Ü´²X†½ :D´ƒåýÓÚžíÓê{ÉHGaJ!T^\»˜OF·ÿ#ùuoÌèlïÜ‚|ßÐûiÚõj,¦äû@ï¢tÀ/üíÅ’Œ¦ð–žtÓ¨ó+7_ºißâNØŸÖ2,EA™ðÑzñ<^ÅqkïÔ)šö]º #F½CÓ¹yQ ’ €è"=)èóSfŠßà6Ì´3/Ž™Û®¼~”üí'zÇ?\pä»rŸÆ–óìBô–ê²æžqÓ¥ÜU#KØ=!c”aø!kø•FÚ£è´ߦc†0öÂLYwå©yƒ•®­ËíÛNöë'þ»›¼üd°ÉDv“Gž½DÝ f^߃KBES”ñéuÙ°œJÚ»- ¬»xá_0|S2ï…âmMŒ±ï>c4ïð‡È¨+j½+*\8P?úh{}3u†´ä éIcq€KX\f?väÇFT²8V^äó ÞÅÛ¥·ÖU¶ö*j*"O)@€ ½´eéj(+¢Êû§gPÈ©ç·RÏN™¾Â%gЃä”=ªúŸL!“¯-æ€ÖTUMŸëŸžA!“(YÏÓÎÌ XCXPÕèŸï™O5žïý¬‰L¢ßä_œdª©y¿†@÷çû²Ãl­ Ød ™Dɺ½®óCTFýÀ5'¡9-Íì,V,ôfYÊÛ£³W{ ÛÆ&¾êåPC¼í®&ˆ 5q·¢m¼‚gL™D!“¾ÜPiý”Y@Ö³!™Ž…^èâZò‘D!“(ù/# j/ØØxw@/6TõàØ{¯ŠL¢‰©Ž˜C%õêX†;jI„%^AÔ®Ö%å]éy‚š^qÏ|Œ²så:ïì÷$ ™DÉ}ùấÜ×-[WÖÅ­O&\O'QȤæ´@wüôOÓ«j,æäûvεQ†æ×›­Ã[ȤÖ7Áž„¾ò&èÌqÖ·‰R>ê%uox· Ï-†TsSÞ&R>x(j\‘¼ôü¥…8V ´z‡¦1ró¢—‡˜ ªœ¦Zß.É%QȤ*o™â·oÉú°§ü=~½Û0Ó̼:ß_Â;¨NÔû‘pþÐK¾ã£Ç¬ùÖI:W+È$ 91Rçþ|=çœ.¶YÃeHØ)»¢H2‰rÅxôÊ(C{½æ©ñö Úî˜V2©%=ÈSu,l¶±WOY€Ùì=…[Ã’)d…ü®"tmÖ®jw+»ÙTyöt/8?¤·—&½­»˜D!“(¹ÏvÐö¨(i„VÓ*íï/Þî2»rÀË‚å¾ï…âUvЬ¹5ÕUeÑrnÈv1‚÷”K/ò+ò£`ÂÞú¹$· ¨ÿó¹‰:êËÉŸ[»G~¬aE%kc}òž§²çõ·w¯½½â±0ÿ˜=r‡ @0jñõ~CD£Û¸D§KŠpÿ¸¥¤w}).ª¤2!@Üfxà”ZºÑq“éFñ×fÎjèˆQþ›Šú­S—u Ú”a3Ý!¥åg÷ú• îX €Á`0è€NgÐ{½›A÷ 8…Üoø¹ß112Dí @ð#î7DêY @€‚ÿ:zÖ(RÏBLŒLQ;üˆ¡ŸŸ… @€€0Ú²NØ™­TÃãñfÁƒîädP‹¢ÎïX«…ÇãÕWl>ŸÜÀüšDz}òEû zêx<¯ehëSÚÑ{U%££$êì6u<¯±ÚÖ3¾þÍ =u©wNX-#àñxmŸ•·zÒªâ=m ÔðxÂÊíž÷Êé© ³À õÝÉmƒv•Z©âñaU½÷Ö¶½ÚEôë¥G3¨0òÙkO:ƒ¸Ô(½é}ÐQ«•êx<^ÓÀêÄ£Ò ¼;¶ _r(¥ß-ûœÖ<¨¼hE׌ ï–ÑœÃZΠ».õæAÓåªx<^k¥ÙÏØ*£9až ¶FÕ”›õý£µjÓ!¿ÄŠN¶/ü†Š}V?RrŒæ¤=K–;=+mlmkëè²ý·€Õù²&:·ÿ»@{8Kr ×ÖßÄrmýù|þ: õ¬_…Þ7²Çhó³ÞÅ+® «5[ó'Κî–a͹ØëÅþÖ±~uÒã“ÛxØëN¨ïáÁogè.²Ð=R»Æóþs"‘ø"↣ ÄCÑÂ*öŸ¾ ‰Äç;ÐW̶ݫèÝåAVæ×yî½ ‰ ÷L Z¿îr>Ì31" Ìû†Æ¼$‰±·Ì›Ïoº[J ‹|yÑUžÝa‰DâËûEn™{çvŒ˜¡ÿ»Ã“¢Ïkðó,:ïëñ¶µEÐ$K]Áo^92¸××éÙQEn å³×þkrü8šjY Ï´ ®òl¿úä‘HŒ|ýð*‰¾÷tæÞ8¦àr|Q¦›oö×·J ÇÎå»gáuôjíÿÍ9ôºHëµg[Ì®G%‰ÄçOî\Ø¥-†CѸÔÚ1n °¨¹®Ñ½ÿù-B€Ô÷#Ÿ?ºqhÞëíZÆ~…_·è=”†ÚÚÊлjˆØ§·¤Ÿ]½Ä:´œ´Š0ë%+O¼j¢³œC€Þ’uïÄ–•êx<~©‘½wbM7ôïéµáVx¼ªžSzGkÒÉúËuÖºeR¡Û´ê¤Ë»—àñxõÕ¶ªúµÕ>"€œ/­*Ös÷Æx<^Móñ°œ6:[r r;«ràä³ÄÂÃY•±¶þ6>pkëÏäów׳z73÷äUT—í<î_E&½wšß÷ kÌDëåñ†…Óeäú>Ó&q£û{…:*OŸ3[a™±c|&©íáz),€cξ(Ê»“*¯-â™ïÿõø•CfãÕZrF¦×£Å *jËl´ùySSpÈZº…_>÷w‘g´ÏÙj®Û}áSçOuññ«ïPÈ\³æë­ßÿ2›Ô´VâçѼþü2m`&n H£|¸éº† »Æ!î©áîêAVæT<ðФvA‰WFA@aÙ"Û»ýŒ`¾]ûˆÊÐ ¼2 cÔÎdŽØ1ö¿>¯IuaÆJ²Š õÏ=J§¼qÕƒúo%¢ŸžÖŠ&FOcMóàSm­¯w숴ö:2“••޽^C„€cº©oå§Ä/dR¦]ÿ #G|,˜¯ØKÌìæóÊd÷ýºóÕ–®óô uüSâ«»š]D«~ày‡˜SëaJÐØýžª‡›{/8X·%ðšÉd,ÀŠÈÉ Ô¾x’þ…Æ 5d<|\Ôó%T;¬3±]E¼ã±:v+Åq ûKúëáE‹8öééîyŽVR_Ÿ’V=h»E¯Úw0Öß­]%[M.‹8´`Ìàí0n‚š…å{ísä‘ÃÑ´ Õ¿º÷(™/™ðÃ1ZwYèÉp!k ÂÎb±®Eý‹âšiëµ±Èé@L]¢A¶rZDóàN™[µTõ-N\ºŸRFþó,Q|³ 4„ªâbKú‹ë´²{6«Wo,ª†ûh¥ýmû¼[w³‡×6=»"Ë/‹f5‡Ð™ëµVïL§Ùå'/ˆDâ³Ð‹;ÕÆa¡s ZTÿ:‘ø"Øz*îŸ=^‰Ä˜# ܪќ䨻= ê^‘H|qÿ¸ì3‹Û¥4¨ö³,ä|qbÚ»Ü"ˆDbb¸;>ÉÖò*¹‹9Ls;«r†^k†Ëg¤ôÃ|mý}| ÖÖŸËç/¯gõÏ’33““b¼XLTr,ßèG´“þzú´íóÇT‰Áà Ée‚Çrå9v×B_‘’c|Μ|¢‘GÁ¹„L¢|½3ÞøÒK ùE´‹ÙÆ¥*šªê&&+æ÷»×•µZÊ åg/V7¹G¢¼>¨Ì @ÿ¹ô¬Ã+—ãé­µ‹"‘(áæ2Cîj¸å½SIu!öëUäÿ•WÐ\f`µdRïajŒÒE"‰òâìn=•e+6¾$QˆNj½‡}° ûg!¬íÖô1èx¿÷¢xåOÅ’ŸºØh)*+k¸–@ùtÃj2€â––’œ&ˆ8ÁiR’3¤%gHKˆõ>êùj¾ÔX0ä±übÿHKÎ׿ñ(êÁ’Á—9 Çé]m&ÇœÝçwÒ[?Ó#t…Ð°Š‚s çädÞ< :gèœÉ1ßHW ¯yõÂôñyaD4Þ’ZŸ°×Åë˜ß:ë;Ó@OjCø ÝRCÏ‹Eòè)&¼•s6/;V±êäÍuM»t]24œ€é÷C)aN€á—”œ!-9Cr’ î«‹2ÿ &*‡òCÖ‹q¿Î(#­yØD/ 1K|yŸôìmNFÊ3ÿØ:†÷”³àɳ‘ˆ`z E«;W–éšÝˆÍ ¼sÓ¬ÖW>gvû| |_›r5~ȽËo×<.,T/€£y"†’}ÝzVLïÁûŒûæð¡|8°ãuî¥Ç¸42owxó°²5Ö4ØËøŒûüükÜ«tvÒmõp(žñÇlq òì܃§6ãe¥gkÛ3—SNƒ¬Ü­¾A$‰Ä—7ñQW¸¼£À- ‚øpï|ÎÆÚ6ES[/Npÿ‰‡Þ–é·ié†{nqO)  @óŠðJUx©ÛÓÈ :"um€O„w@­èÖ㵆î{æöžlMÜmz%§6åäj~‰ux#£ÐËHË&ºŽ8¥ L Ôþ3ûß%›ÎÜr’-¸{3“ )Ÿ½ö¦Î1È‘ú(Ú“ðŒå¢ÕU¶~¿‹ ×FŸò+íÌq[C ¬:•ÕQáêé×Ò VlՅ¾ö7 ­{9‡KrÛ"1)Üßã°ÍpsµÆöÈÚáÖ´º›¿´~1þÂnÚ¦"1t«ÔPÇ#p¹Å7kÕ*‰¢‡a¹búkäÐp¿‡”Ãh/Ëi›;7ìqY­æSi—”h_Í-¤}).Ð\Õ>b–…âßžqJ°ÞãEqs Ãèlí¤³¡æ¹U9¬êy¤ì+‡ÙÚú›ø@¯­?—Ï_ è²$£½2«(ˈà@AßÅ üâsäd{Ð{ZË?–¶õ¯%¼â22rN!1îöºNáE+4Æ%‡VÃ:^f<Šš—6p)§ìÉðë+‰Û•Ofµh'œ*sò»^2›}oj—m_d~—I–ÅL’ÖÙ²F{æDA4¥¶­-ÒçH믑}NKˆ"¶ð:±J¢ØÑÔ W2ìºGÍõñŒ×>aqí‚ò“'OBÃoôΗ—pÂà ¦®}* HŽyžî'øhœ´CÆD8†€÷H¢àrœt6Œu(Þñ¨º^²Ÿ08çkÐß(xÈjfàÑ,jG}AaÛØF 5åvü&mÀõ‚‹It·Vå·,µö‡²x0Š‚t›^Ìò}õÎ@KúuýEWâk{`5Ÿ3R½°öáy-8zbUW¨ÚÊÓo:Ĥ6Õ-¾cË…ž2óÐû•nme^UÈy¡xÆKʈr|W)é¬/É­¢IA’çš<P2«›KïÛF¢ê˺çURÁÜÉ8PÝí‡Ð. cåB¥¡üÕ,ü £yöÂØ‹Úó%þø5A+,*ä°ŠK-—ËTDÜΡ°ýœ xòì$"è^4˜yõþqÝÛ;¶OjN¸ãç|?~W:e ÞSB¯3™…xÔÁ?ñfØ¡¹#™íÃJ°Ð½èÍñ‡— ÞX÷,&í<¦ÄUwÁš>¯ÀB‡C°¶[Æi¬ý2­µtÀ=i¸ Ù«&*{ØKpÒX@)úÒR‘zÐ>Ž^_Ù5µ¡ LúÏWÑ©_JÊ›ÚKh jMq~•wÜÔ)‚Âަ·7;tb~lÅÓ35³ì–Š3ÙáôÔÄ{Ý(œ¶@~Ú8žŽ²WA3qò.S9=µ¯BâÚ$g‰a*ï÷ .^x:/Ð_ ¦ß45»E7õìßFÒ*ï·ò¨Tw:äu’ÔäÕã§LÇ%¤q`K°Ù¡ýw\TЩ>NÏE,oi÷×c)nvw¸vn‘é¿.Š_͇Hìû»#ûœ‘ÍGÓ{7 Å0ôÆ¿O çHaêH}ür¦ÛšÃ ÐÜÌå£[í>^`Õ ä`}´€Wé°×Æ-ÛÖ[•8ØèÎàn.zK,U´Ù2å›W‘Š[ôé…½7À¶¥Zíä–¤îÖ_ÐFñ);yh˜™ûW‰Q¨¶ÿ3ç€öwgžŠh¨+ÈLæï ÇÝIn]%-{ÆŠAk©,&ƒ¦Ü¤ßà<å#wõÇ£!sÔþ2uonÛ­à‘4ýñÒ& ê—®o•åb-‡ ¨îdóÐÌ~ç>ǵ Â]%¯âÊ6IÃæÀáƒCÚÔÙ๭¥c‹Óv­iØÆÂ·qñõÚ­å Ú¹FÆÜPzc4··tsOž1cò\WÑãã®ïh؉lÈ¡7¦\f–ÛY•mVýÂÃ!ÎBÉ^[ÄÚú³ùŒ®zNÊø€­X…ǶŒ¯Om-ÏÌÎaö:mJ9™œÕȳˆ:ç%uÐ÷ àK}iøGA“\ÖÀ›9›Ô•5Ó@×§ [iVN×*+Ik¢€Bsññp òqŒ°ê† ÚèTï»é_úÊfÝ•™õ`ùM±ÏßíØøÕ.æ]“ðÐ[#ž×àU>U0"÷Ð BÁŽèÌ qœÒ»PrÍÜ|³%šÛEÛð|1µ0¥è(iŠs¤çw8§,V¹ie° {At ¬Ê'\¾›ÖÖl°îüó:…)… ]¯µ†NÚ™mõí]€[ïÿiÚõj,¦äûWà.Jü¼Ð:艋Má;-=ŸE/tæ:`ßâ>wZ ÃP”)­›Ý©aðÊïJ½oh*ôây#V ´z‡¦1róB$€¥‹ô¤8ß|„¸rÊÌKL¿Þm˜iƒ =/Ž™Û®¼4ùNHÝ= YçÐä»rŸÆ–[Û„’¢«ËzÜrÓ¥ÜU¾‘%lfF8£ 퇬áW…:¤GÑi4x¸Ð`à9 C{e‹¬»òÔ¼Îh¡md3·o;QOs&‘ðw+ÙzZ%yöt/8?üîê}. MQƧ×eÃr6*iï¶0°‹Âu­ß¶×”Ì{¡xgoO3o9c4¯c12jÊ–µ6‰MtØpÀ}ôÑ2Fƒ1SgŒ€{ÒXà—™T“û¹µ{„ÇFT²8V^äó ÓÛ}[WI§ .ÔTäÿ½ 2ÐÜã%ÿþ9©3¸™Sfkqkïß’Ö7¬!ºcÆi:Ôì?3[YgûÀ7¢‹7¬ ?GIÇæ»ƒ¶i›Bˆ›¾i™làcÀìøNÂÔÿ¥i÷gë¿©'(:=} 95.¹½áIýÓ\h»aß?rЦCÊg§ÝO))òŒ*pËn HÚÖÿŸÌ,%ªçâbýˆoÁ©Øx†þ‰†}î"¹9˜¸yt*íÿÌ9€gÞ~yýÿHÊø.ý6»ð.<÷"iðÖqòº;Äu}’[¸bÈ\ ¨Øç’Ùt;¾O„œmH‚-›9à&]I0êÿo‚¡ô‚!s ÀN^7a=“óí(^ù]÷‰»úþ›FÙ¹rwö{…L¢ä¾üpÝRîkŸ+ëâV‹'®§“(dRsZ ;~ ú§iƒU 5sò};çÚ(CóëÍÖá-dRë›`OBßãÚ@g޳¾M”òQ/©{xû}n1¤¢˜›rð6‘òÁCQãŠä¥ç/-Äq°¡Õ;4‘›½<ÄLPå4ÕúvI.‰B&UyË¿}K¦Ð‡=åjÏ¿Üm˜if^o/á•Qøî#áü¡–|ÇGYó­“t®VIrb¤ÎýùzÎ9]l³†1ʰSvE‘(dåþŠñèÿ”Q†ö(zÍSãíA´Ý1­dRKz§êXØlc¯ž²³Ù{ ·†%SÈ$ ù]EèÚ¬]+Ô³XSyöt/8?¤·—&½­»˜D!“(¹ÏvÐö¨(i„VÓ*íï/Þî2»rÀË‚å¾ï…âUvЬ¹5ÕUeÑrnÈv1‚÷”K/ò+ò£`ÂÞú¹$· ¨ÿó¹‰:êËÉŬ‘kXQÉÚXŸ¼ç©ìy½ÄíÝ«Gïc¯x,Ì?fìÿ @€F-P]%A9D£Û¸D§KŠpÿ¸¥¤w}).ª¤2!@Üfxà”ZºÑq“éFñ×fÎjèˆQþ›Šú­S—u Ú”a3Ý!¥åg÷ú• îX €Á`0è€NgÐ{½›A÷ 8¥³ÖüOwˆ¼¼¼éÓ§#KÊߡĚ£Y]Êt/E€ÁŸŽèû··lpÄ RÏB€ü×Ô³F!zbbd:ˆÚ @€àG ԳЈ. @€ @€üA@êY¿ ½odÑæg½+ŠW\AWk¶ÈùJNhò(µcáMYÁGfqþwéc&ïŒ$QžŠcþ›¾ñG;öWh]£ÃvNÁþ1áç½tÀþÉ)eDŽxTþÑaŽ€0Ú²NØ™­TÃãñfÁ}O&ë© ³À õÝÉmÌÐë“/ÚoÐSÇãñx-C[÷˜ÒŽÞ»„%Qg·¨ãñxÕ¶žñ•ðÏÂï©K½sÂÚhÇk›8ø¼¨ì‚m€ö…xy·ñ<_bhïXEc«¹€Vïic †ÇVn¿ðü+èöô 3ˆK2ЛÞµZ©ŽÇã5 ¬N<*ðÊ»cËðø%‡Rú§/¬ÌƒÊ»€Vt͘°ñn É9ýßP‹¢ÎïX«…ÇãÕWl>ŸÜu_w]ê̓¦ËUñx¼ÖJ³=ž±U4FsÂ<lª)6ëûGkÕ¦C~‰l?È*öYýýHÉ0š“ö,Yîô¬´±µ­­£gÈößVç˪œa{Î/± ´‡³$rmýM|ÐUh¥ŠÇ[„Uõü">_•åkek¢Ñ]²+§«Õ‰$†˜‚–É¡uò_ü·ª~ÓD3ÑúqäùžóZûÓ[ûs_cYég*˜ht—ìŠsÙx8¶gâLͽN” ÎÉvsÌÙ÷8Å8c)Þ9¹÷µE<óý_ùÍ¿k¤èNî2½_»Ì¯Šö=yïm%nüÜ ô‡.çw߃CÖÒ-tÙs‚FV]Ï_DžÑB¦«–°ŠýE•¾'Ýwæx›mk ¼a2¡*ÈÊüòÕ{/fp@¯y¼Åh]ž_Í?D0" Ì/0ëý‡úÞu­ñ¦Š€[¦8ˆöžÌ ›ò7…>sŸ€ôú¨í«7Ÿ½øÐy.`±‹¹@ùòúM‰Ú·Â¥q€VzÛÂÄ8Ç/xç \{Ü<SħFQ-«áùžµ';ìB®>9úý9‹ÎܧÓ\Žsxºùfï•ãê‹—±sùîÙ_˜¸_‹äœÁ×]´ÙË7$êô7gè4.5€’²WoDZ(oÕÞŒÕ] P‚ú—C÷ÊqFÛ»Ó&Z—õý·Jõ ÓCihh<‚B¼CX"'üÓ™~ΩÄ䦗‘8Ð*Âì,&½í´˜§µ  ·d…]ô JÈmèæSÔ³q²VG‡ø=®6|ëês}¯T=¹1 Þ%^Ž(pB´s@«Nºævéћʬ¨¼­“†èöT.å¤UÅ^:w'þ}i #ø†©ãî5²|h–å`†ë9lævNVçáá,ë‡ùÚ:û»øôÕ²ì•ïÐ<˜Ã®ùüøÞË[É™™ÉI1ÞG,&*9–oô#ÚIu»¶ÏóÈÙ}ŸâÏÔb-¥4??ëS^æ§¼¼:zCéçæ!ʸèñWH.<–+ϱ»úŠ”œãsæôàb‚s ™D!'ø(r ::o|é%…ü"ÚÅlãRMUu“óû_—Ç5Ee­–òBùÙ‹ÕM®Æ‘(¯*sÐV<ëðÊåøEzkí¢H$J¸¹ÌÊ-ïJª ±_¯"ÿ¯¼‚æ2«%“zQc”.I”gwë©,[±9ð%‰BtRƒ’aÿ,„µÂš>_Ð÷ŠWþT,©ñ©‹–¢²²ök ”O7¬&c(.ai)Éi‚8€œ&%9CZr†´„X¡6à{ACË/ö´ä yý¢,|ÁzœÞÕfrÌÙÙ}~Ç!½õ9=BW «(H·¡S+«Ú1|\X€3Mv®…åãFµ|®¥0†@ë+Ÿ3»}>PFˆ! ­vî\IX¦kv#6ƒòÎM_=„o@ŦÏC›&ØslŒˆfÀ[Rë³öºx=Óã[g ë˜ Ú£à¢ œ3\_fdí’æ(.áÉRã¸P+¹)¬ù…­7Ãö …ü䲥ޮÊ|•…‹VèªÊô¤÷Â2d×7  Þ%~i”›¥ó´½‰$J´Þ•·RIÅÇçðÀÓ€±2¬@fùž/I¢û•xõÅø ÎWá±§vø `ª†îjµE:«m#3HmÖIbø aÎ9Ýö#9ÙOïo¾¹\q8¡‡àÏÚ±×Fí;˜?낇ñÏžª‡›{/8X·%ðšÉd,ÀŠÈÉ Ô¾x’þ…Æ 5d<|\Ôó%T;¬3±]E¼ã±:v+ÅqÐí\sö‡]WO0#àñx<Á$b‘o˜Ó\.ÖÛ!Ðý%ýuð¢Eœ ûôt÷§%D[xX%Qì¿Æhj+Ö¨¹>žñÚ',®]P~òäi@hø­‚ÞùòNxXaÂÔµO¥SÉ1ÏÓ=âï“vȘÇðI\Ž“Î†±®†GÕõ’ý4€Á9_ƒþFÁCV3fQ;ê ÛÆ6Ò­±¸°(·ã7i®äX Hò »µ*¿`©µÔŽfj"÷›êÇ_Ú¢íNbȺܰ ߎl Œ¢ ݦ«:¿®{"¿ˆ’sĹ ÅØ)Ù¶¶¹\Ý•Ÿª»à5?À'%ôúÈ1„AÆuoïØV@L<©9᎟óýø]ÙÿB ,T‚‹Æ¦•¡Ý2Øsì¢GO¬ê U[yúM€˜Ô¦ºÅwìíQ0Q™N×YÚb§2S8PÊïÅu\–­ºC³æ”zâË¢IP î‡F'|+Ú{aÇÙX4 ¼®óÓߥÐ2;,EÈ©©/[S÷ΔàĠ¡ce8€bˆU=î±…ó¦úÉT*p›ó±ÿ6FØàö¡$!òab+¯‰µR%7ML¦Ý?EÆ©Žp˜§w³³!ø3A+ºµól­á Ϲ<°q/¶úq5€Þðlçêé›Ç- ‚èMuµmЦ¶„Çûš&ðQG¥·e^·Û'ã|%î‰0®^±}íÕ©^áDy.@GæÙµ:›,î]_b©}­sJh^~@©£ /u{ºêûm€O„ƒFõ7uŽAœfôÍ3^”‹V]ÙJ¼èo«ÀѧüJ;Û‚€¬SOu¯®í; [uápæû›;#:üªLnA€{ðÔæ…¼ÈÚ+O³ Š)_f1õdz›\’kÜž¬é[›SŽ­Ö¨¶ »¬+:¬‡Òt7iübý;JÜ´M!ÄMÃa‘úÊd«VI„û†Ñ¥6ï•@³“C£­,§A@nîxܰÇe)›×|*íZ$ÚWsG i_ŠÓt‘™·˜e¡ø·gœ2rÈÖ<êºi±Ä Ãèlí¤³,¾ç°e6üaDô¹¶þ>­‰v¦Wr8¹šÐ·sõ2Òzq(ÌGGý3ùŒ®zNÊø€­X…ǶŒ¯Ïwh-ÏÌÎaö:mJ9™œÕȳˆ:ç%uÐ÷ àK}iøGA“\ÖÀ›9›Ô•5Ó@×§ [iVN×*+Ik¢€Bsññp ²FXuÃmtª÷Ýô/}ïÝ•™õ`ùM±ÏßíËùÕ.æ]“ðÐ[#ž×àU>U0bÓC(4 ; 3/ÄqzHÿÙŸÍ7[¢¹]´ ÏS SЀޒ¦8Gz~€sÊbuQ›VÖ˰Dª|Âå»imíÁëÎ?o ÐQ˜RÈÐñZkèô¡Ù pŒÎö.À-È÷Ëþ4m ƒz 5Sòý(]”ø…y1 uÐêMá;-=ŸE/tæ:`ßâ>wZ ÃPSSÒ>gWt®V»â5%ØÜø,ÖöíõÃÓ:Z³³ëhÃÈ|úÿÃa€KBES”ñéuYœ@4ÌXX¶¬ kJ¨pèf˱ÑÉ`é"=)Î7Y½Û”©GÁD%\©€–ØxÇüâmAÌa™gRýUMlzt6¿}<˜{/$C6}ƒ…Xf–™v,äžáÑ€±2äWÐ »*sj€îìù¢ØÔ²ï*6ÿO¤Œ  £¾¢‡ÖÐê'„9Í•õ€Wvº6µ½›£ øo‚NýRRÞÔ^Ò@cPkŠóó¨¼ã¦NÄ¡” 7»;\;·È@_uÔSïu£pÚùiãx:Ê^]ÌÄÉ»LåôÔ¾ ‰k“œ%†©¼Ü3¸xáé¼@^§ß45»E7ýz×­âñ~+Ju§C^'9A]A^=NpÊÔq\=ícf(Œoó¹µÈq…4ª8Ú7¶Ytå,A ÍZ;¤„4l 6;´ÿŽ«ƒ :ÕÇ鹈å-m4À¶ûxU7§-àU:ìµq˶õV%6º3¸›‹ÞKm¶LyãæU¤â}ºwEm©‡V;¹%©»Íèë‡âSvòÐ03÷¯HÎé‹8a GÓÛ›Ž :±?¶âé™ÀšYvKÅ™•$Úßuz*¢¡® 3™¿ƒw'¹Mt•´l1‹Ak©,&ƒ¦Ü¤ßà<å#wõÇ£!sÔ>"'ÐA¾¹m{´‚{DÒôÇK›t6¨_º¾U–›Å€ º“ÍC3ûmœû×*w•¼Š+SØd$ 9.kà6u6xnkéØâ´]k¶±ðm\|½öAk9¨v®ªgAðg4··tsOž1cò\WÑãã®ïh؉lÈAƒa{ÎPrXÒ3´?À­ªÃ—½¶þ>85"±ÿ¨8ûœ‘ÍGÓ{7 Å0?›Ï_ TWg@IP-¢åúÂ}©$7 €ÎªÜ´w®ž~ð©©·®Ûûü¬ßtíJ´²%…KÛ-Õ[sB¯wvÔzÅãÒ­Ì:`D˜]8¸A¦0t×|Jð9}öbjCßa8Z`žÑÎV: ^zšÊ³Ã}œíVô^u€U÷ =g‚Š65ty2èú#×dÍ;öª*MâPª3ïrLl¤ŽiKmÜwé¤9`t¶V]lŽîÁŠoxàØ°CuYl+€o‘[ámYÝ5'ú/p`:Fx¡óiËÅ2¢€®š¼Ô»ϸÆUõn¾9ÄïÚ®6U´å'†8¹øEõ_kÅý- îé–±ávS"vÍÛ÷²Ž0B Öûl­—)Nå §¥ ÙÃŽ[Ù;}Ü$C'×Ó†òb »áÓ GGb3ýçhƒyÙ®äXðä{@d‘õ3æ1½)÷†£õî—}‡Xx=þ²IÛmOÒ -)¼¢˜›r’qrâþˆó< :Çœ½R¶Öm^hRÇR \è°ÅyŠVqóÙo2w² €žú±!G\ýŸéR ÔWìYÆ”0á€e×±9Æ/Ú}Øn»ÖtQ ÝÍÅï£mÏÅÔã"w‚‰JèÿsìÙ=‹«Y‡Þµ¡øµÜ#ŸÈÞš«w‹Ü ÀͰ½ÿnkÁŠ…{˜_áé½P Ùr¶¡â‹ÙŽ`‰_Â#~'ñuÏûZxž±‘“ÏJE|6 Œ•aó! Côعë<Žm^;SÝ]÷©„w¦tÅ>u—Ê{þŸÐI€ˆ† ¢s1ÂáSŽ[U&󺚋²ží³=]G‡_‰F0ƒÁ`ÐΠ÷z7ƒîpJg­ùŸ>µ¼¼¼éÓ§#ÕŒ¿C3ˆ5G³ºþ”é ^Š‚?Ñ÷ooÙàˆ˜¯õ,D)£(.Ñé’"Ü?VÍé]_Š‹*© DE ` <3,×Ïn-(­¦ „döÖÉ¥ìŸcû¹_;@êY£H= 112Dí @ð#êYXD€ÑQ›û©ÑF í¹·®çöýý&-<È Q  @€FhD @€ @€þ õ¬_¬ø†t2)F›Ÿõ®(^q]­Ù"ä+  É£ÔŽ…7e™Å‰¸ÇOµ²€Ö5 9lçìV  @€ @À ¾Ö³Ð)äû‡ò*ªËv÷¯"“Þ;ÍÛûÌDëåñ†…Óeäú>Ó&q£û{…:*OŸ3[a™±c|&©íáz),€cξ(Ê»“*oÖâ™ïO"}Ü-à 2¯Ö’32½¶-VPQ[f{à Í?ˆA˜CÖÒ-ôøò©¸¿‹<£…xÎVsÝî Ÿ~ö£qÒë}kȤ—wXh/Z¶lÕ¾ã'Ïãíÿ+½9´éõå¨ôÿ±wæq1uof¦}£M²EJ–H¼ê•¦EÉRˆÈÚ&¼¤²¼YCY²ÓJ–"´g-*i²*m“¥Ð¢í6ÕÔÌïŠ0÷Öô³¼8ßÏüQçÞsÎsžç9çÜûÜsï¡§¯Sê­‘åæ^Àtìéé’äïM½o&Óó°Ð·{tìÞ!'c͉ã&Ì4_¹•z/Òïae@´Mmõ{-gëQ©TË’OQ²ÞÑNlX0…J¥R§Ì_ëP†³]»2Ésí}*•J5œo,¶¨±í –œÆÂèƒÿ˜êS©ÔÉsí=â»Øï·Ipϯ°N—ú‰©®©ÌÏ*j. Z®C¥ZG”µkXeñv¦zTªîìUGï|’?=%ør©? võó`×å³õ©Tªéò=W‹>úöl×4*uʶG¯·–EXS©T«àâVþ™ºK/¾f¡1§ã3?úÈšy†T*U¦í‘¤*¼-wZ*ŸÝj1C‡J¥ζü×#®ŒÅ©¹»†Ê…•Ñï‹C,Ûÿ1œ³lÛé„’¦d¯ïózþ·*85‰ÿN™á|«èC]}}ck—é?^ÛËK9íݪ3ú’ê¢]ð=œ§rðçÄŸ#îúýåùíørE#--éˤÄXwƒÈ‡§iØü¿<òÚã õo^æ0j¹Äð¢ÜÜôZá SÁV.zSÓÅed9Ó“té}34÷1Úm‘”Ûù õí™áf²ðáÜ‚ö©»ÇQäx…Ÿ5b'ž zœ_Æä—í'ö*ææ“6 Ò6ÆzSÞ@–e¹móRÑðÉû“™íû¯ _pÝœPN–ûËÎÙF·Øc¬Ùyq¯Vó¾°¨0ÀÑ'!·ŽÜK^aHë“ ·ß4zixÜ8µ¼%nÇѨL’Š…“½)ù’±É¾„±„­6Úr2|1ËËvµëã6ITÍíjÀêækÎQÏêdô—oÙ1©`­ÑJ¿’V’ôÐþ}†Hò¿ä¡ŠõMÐZ󦸌Éþ‘Ú Î…Wð|âòŠrÂür3ülßvì Öæ}L|î 'çÎÞœÞJ+ŸÄ,½nÚì›U|Eá» YÎôÔó]Òûfh|t¶ØØ«¢Lk"ÿmÙbäàÏ·ôá­nwg:¥µû;»6fÉ6–oÒùCÓmNT|©î.J¤D±>b€½L¹—ò²©O¢:ŽY¹G¦¤Èœ=2»òÆv¯¸Wüƒ xó©É8¶ïè·Îï;y“QQÓÊ/)Å—}7‘Áì¢@@t èbªKwx-mÊòXðOê§äÆ´£¶Î¹ËÂoëKveôª¹¶=¯lûõîdiíµžÚkÛþiÊòX`ùOuÿ¾eÁË­.kž »7\€ýþÚ óE9§ƒñŸâ”3 Oœóù€OÊÔ+ìßQ_ Û\´v[Ñ‚5Æ’[³ºÐ@3ãÄâe Fç"”øUtÞzႬÓ!ÃIDé·Ç»X ŸúƒbYUwþ··Ñ1ôÔu×/W«7eûïOVwÙ-àqÈ7#d£j»7’{ [{tTÐf5>4ætîq-ÅÁ¶VÑ“ýÏ]r"~RÊ®¸¹zžß(ßÐèýŸ½/1ù8m2öh£ÉæÆ]ÑÞ:bm—„IrÖ‰ðªBÀ©¶¡á‰YA+‡¶WÓŠUU5€ˆ¤”hÁ†5¥¶v.\xÖË| ?°J"mû¹žwž$òŠ·1Dصéž^Áw³«ZDäÇ™Ø9¯ÖëÃÆ9Ÿ¿sTóúõá‘çòÚÚ+ª»Ç}9%Bßh_ ’b露Ç_q½­´>µ‘„T÷DŒ?Ëyú’ÞnÍ#:nÇ×Óþ¦‰’Û– rMg6V潪ïý¬¯ò³’6ˆráÖÅÁZêÊrë€YÎüjZ}s³Å¬ØãkBŽÑ9#\üWËD®¢Þ¬bƒˆ.¢ðÝFNYŽÄÌNæúT@pøß%•n³ýJZ[ ØÂ{ÎSŸ5ASŽÑ;"ZUI.£–lJ9Ošwü‹¬Üê"¤þÉŠ ê+(¢Ê“Ì,]¼J_ú™ïsÏ”ÊV PTL) ãºgNs¸ÞìýO€–X¯³Â·w7 fÞ¥ð˜»XgD D DÙá¸ÑR× Bª¶¾V#…ðÎn-»²ÒÜ=¤u·1À £ª*qòÞõó¡ÚRu©W®å·¾k¡—¯ÖŸàž‘[9|’p;øûêYÛôfæ¦?}÷$Üç\²ô?N-Uà‡æÂ û /ÌN.Ï<Ü¥ZÞ¥<|/­¥%xw“‰W뚓˵åÎÒ’ß®R"¥QC ÷ÿ¤pV僰§ qxJ߯>½Ðò:|o¤o.ôý IDATÔêàɺdVÄ"· ³ ¶Šü$¡‘öGô=Öl‰ 88 ©°“ÆÞÒbòYo?x\P\¥Û»8ê[To§`™_ë–,c°Õáþú•†W$‡ŽŸ0a’áLcÍAÂÝ|$6Êt²TÌí¸BëÕʬ×av–çØ"\¼ Ã46_¾úÜÃÆØVË„/6AqÏå«dh)æm ®ÀÎöZ´2ÙôbÀõü}xçËÎò£Íj) ¶±Œ7 =cÚ§CÜÓ95‰ç“;f'ìª8‡ÖÅ~–½qM·Rø6!-|½ñË­;f´®í´š{sm*Nµ›…§r::dyô¦­©ÔcaÔN¯“üßcûp=t-Ïÿ­œ9~’<œo2‡W@oöàdzø‡.Øb/_âþO꧆uÅiYµ\NÆŠŒôx™N{Ñ4>Éu½aŸËï*‹ª@b˜º %éu+ð÷9Z *^×° 93ø\òrç3[5ÇíL®fÈBb"BOŠ´Î’%FäÇÞS:6wo)MM«„K äCCß|œ×óÌ9£ànb60§D5÷åŽÆ Ôµ²D&‘뀦œP'•PhŸ-mÏÖÆ»Í?RÀ|õ(¦k HÉmÁA“ôe!;ùu#¡„mÐÖëÎÉÕ=q1¹¾!ÄtÑ‘;Ul€ÆW^qŒe¼æÍw~ÑÀmå#§©¡„%Å>›‚¾›6ºC§\]ÕÅUøŽ²k—¥@]§½Õ‘6·‚£¼Ú.´emí±±›“kº¡(®¦lÎ ¹ðtÅ–Ó[5ÿÚ™üá³Ð¿²Í~GòÕ…©ÂJJŠ §®Xíó·¾¢yêõ'ç~~h¼õöçWõ¢2»¨«´bŒÄ°-‰aÎýÍi §Ârõ§Ü¨æà+ªG¦dæ%åÁT-“¡‚O^~ù.'v îˆ@ ˆ.oÔË£VÍ;5Ø+’¦&içM_fæ7Ožë7)òsýis€]uËaîÌ”£×vVÛEvcuEy½Ä8 {Ýk›ªûŠr‘K9êõ’p­Wp¨©ÅжòFßÏÎÔýlšÙ®aÉ,Nfì«ÛþdÇËÜðÞ¶ŸéÜßË'‹ÊˆVÁ”žzèÆTæó=õ &#J!“‰Ò«›z!çùs ‹ÈÉ ±Þ–Ö±A”üyÿ‰Ùwº¨ ™é¶í“›¾ï†ñ©9²í·2òsŽîH[²öìšIH‡Ÿ”),)|c·î³( 0Â~Wq²Mplñ4k.ßµR4;tݬýb²æÑ®¹“ßÚGœ0–íVL«¥æ]ˆËKtÜQòYJ[Ö qÆ„ö0Ùœ9 ‘¾ì¡¶Õ$È=C€Sÿ:«JBu¬·ëåÖûÌ¢f)-ÙöpYÊèøm#hfpOÿf–Å“¿!uŸùú W·e“z Pø)œ¦º&vôÀÊ?çp°|¾¿ÇX‘Ƀk—Êóëwný9òÔ%8~“9uðÙ÷à›«^ç3ÕRR1Æã¼¨#+™©ÌtÉjþt†¦{ƒŽuü>œ™$Àª.{Ë’Š1èXúä#Ít'–µûM˜Õ`‹˜ Þ·ªtŒñ$×sd°…Á¥÷l€–7—&Пa—„1èXúùEM/¢S+?¾òI‘³ÔÆÒÑzæßRŸDÄžº*Œžë%m—ð M†÷´óÇô$Éu ÆÙÇ«{ÄV1èƒþÎ_».3-ëV˜k]é‰.§Ã _Ò1˽Ó´ü¨wA »8ÄBRÇ]`cXƒŽ1h(Ût5ôCß¶Jø1êÀ,Œ²¡ªË:–»²FÇ×~æå“•Ÿ—Ÿ—Ÿq{÷©|• ;çË~૲ïoǧœn¸ Œö¿˜™ú cÐ1Æãlï¿"m§Nofá*ªG¦d‡ZJjïg®>_˜MÇô2oå‚§O¾Cè<`2ßåçæ0 «Xæû‚ÜFчÜk¸º\ÍŸs 9%%¹´‹¾q5²ê£$¹\‰¶¾wßúÚ½ä/Ó“cNïrOãW£€ÖòAÁ·éEo Ÿuœ»þÉß»]¨“«àìB*Õüô+VåàI‚w>ûÃ#ŸƒþQ‰OÒ2Rï^ܹÜ-KÅÚvŒ0ˆëùÐ:¸í;K’4Ô1üΉé2d< HMÞ²¢?mÛæ )ùùOƒ7ß‘±Ùb$C&Nîã…<êBTc‡×ÒfÅËE=Ía¼L¹uþèét&§&éW¾ö¡˜‡‹9L}ís(ñãÄ4Ý'Óö„”²Ñ˜ÓÑã¤';YÈ%ïÚü$¿˜‘èçô~Ô‚©¹-åhxvpý.ÿ¨ÄÔì|Æó¸  Iõ²£•$¯m9¬ÚÒFÆ£¨kÍ7½ÐÜyp–o,½ÅéûŒ³VÓ6¾·JLŒqªß>}É©,&xC€$©ïl7àöڎŤ¿~[š÷8Â7<¯‰ ^ÞP²ØnZënã”[ò&?=1ü˜‹oF#nú7»uÇ‘ŸÃj¨m0|ø€^üÍù×v»=cqz¦,õã¡5î+”z(¯z&8Ÿ«‡óZþÜúsä!˜C¿«<¿%¤æ¦FÐTEÓè IHVEQ†Ëòbvó»‚üR&©@ ?8‡ l6‡Ý ìÛ'pßôyV¿zÓrrrTTT‰Í kþÉêúUšƒ¼@üêÄ\:¿b‰Pø.œÆòìÌr¤@ @ ÿyÈH@ @ ˆ_ÏúQð \’ Ç‰óž•$:PÝØp´Ì/ùÉ7|áIz»"«ÓCvŽDîñ]­,axcD8 âûψ@ @ /|Šg‘û™aŒKÛtÕ´u¦9ì(cП;Ohÿ@7¥ßê(:vmÉDeÕößþÂäŽ\áNš*cF«O[àŸF¯¿²x(ŒÙ=Û«ýqW‘ túË Ê‚ÊKO•3RÓ¼V˜OR×Ö›f¿e«Ý0´-3WFØ ß=c0ÿï%<§–vØÞ`ц£™ß{Ë<~¥Å¾ïô—'ÖXiM›6gÓî½;Æ‹våS² ¯~x":…ž¾N©#´F–›{c᧦·}Í_dB=õ¾™LÏ#ÀB#Üîѱ{‡œŒ5'Ž›0Ó|åþUê6Àý¥­Œ@ @ ÄäË»ó:FZZRb¬÷Në~NÅKOÓ•>-ž©ó2‡‘Ñþ+xÃü¸‹V”››ž™“–™“SÁ®*zSÓÅþ"d9Ó“t—¾î34Ç8ž @OJˆõ9°ÿDî§½EÔ·2èã®Ï8¡Où(r ŽßÇ÷b\,—NÕ6ÐÑ_¸p愎íò„iÏ3Ôœ¨6z’þÂS·éØÃ­šÂ £ÒwÌžAÕ2™çM§c‘VÊ]F „Õ¼Ó+B×.ÖVûKMÝ`šéò)ýÛâm¤^ž4:vïàíi3mƒîÓ1š³^[d‚PÂŽVH9GT¿ Þýwû’¨Ú¾8ú‡.v†ã45¶œ¹‹eú/@’´ÒPÅ!’üÀ/9d¨âp%ÅáJ òmŸmÿÚ Î…Wð|âòÔ‡«Íò¿}yJç5kä>&§j±G·û€ÒÊŒ”(c)2¡¢ð݆,gzêù®~34FÙˆ{{õÐÎí{žaíÂXùoËs‡Ùæ«O¸ùäïìÚ˜EÛš|“ÎÛq[ˆÄÝE‰”(ÖG °¢Ô˜{)RŸD…ŸÞz’^ÃéBQ=3%EÆ ð)½îÖžµÆTS‹Ý+Gu¯@þáö×1Æõ6Óµ'hOÔši¬£,Üuh‡SŸ¸ÇÑr¶•Jµ )ù¸m3§±0úà?¦úT*uò\{øR¼Í¿Ø•Ižk—˜èS©Tªá|ûc±EÞJø‚æÂ å:TªuDYûN¶¬w´L¡R©Ô)ó×z'”±%¯°N—ú‰©®©L‚ôÖ²kêçèoHªo«¸,ÞÃÎTJÕ½êèOòã§§@.õ‡Á®~ìº|¶>•J50]¾çjÑGÀžíšF¥NÙö¨¾=¡ÝÙ¬‚‹[Xùgè.½øš…ÆœŽ#Ìüè#kæR©Tý™¶G’ªðnÏZ*ŸÝj1C‡J¥ζü×#®ŒÅ©¹»†Ê…•Ñï‹C,Ûÿ1œ³lÛé„’¦o…×÷y=ÿ[•œšÄ§Ìp¾Uô¡®¾¾±µËôŸ¯í屜9âgÙßÃy*wnýIòàÏÑß]žßü†8 ¥éå ©,ÃyíëgÄŽQÑh­+~YTß¡vÑÊʪ˜ ”¼pCE“´ÖÌÉ}’ÂßÕ*§,Gbæ$4¨àˆ½‘~³i«4÷¦7@}ï`å½_äR¶õ=kôz•–ÕÅò¯GdŠD¥é+ÌŒFö“$cåõ­ ¥e4P ¹#Fö&ùn4­àaB™BA€™ùà`7a·bfûxÄí±>sTóúõá‘çòÚÚ+ª»Ç}9%Bßh_ ’b露Ç_q½­´>µ‘„T÷DŒ?Ëyú’Þnƒw":nÇ×Óþ¦‰’Û– rMg6V潪ïý¬¯ò³’6ˆráÖÅÁZêÊrë€YÎüêBæýÍͳbCޝ 5:FçŒpñ_-¹Šz³Š "ºŠÂw9e93;™ë(*8|‡ï’J·Ù~%­-lá=ç©Ïš )ÇèíÏ®JrµdSjÌyÒ¼ã_dåV!õOVLP_AUžd~`éâUúÒÏ|7˜{¦T¶¢zdJ×=sšÃõfïÒ´Äz¾½»Y 0ó.…ÇÜÅ:Ë JX @ : ‰©.Ýáµ´)ËcÁ?©Ÿ&½âàåV—5O…Ý.À~m…ù¢œÓÁÜÖ¥“¥µ×zj¯mû§)Ëcå?ÕAþ û–u»„ϯ“×n+Z°ÆXrkV{RcÚQ[çÜeá·Žõ%»2zÕ\ÛƒžW¶â.yÛD*eêö隷ÞpI§ÈÏ Íï¸ÊNv5ßÙ¸Õe’@3ãÄâe Fç"”øUtÞzႬÓ!ÃIDé·Ç»X ŸúƒbYUwþ··Ñ1ôÔu×/¿¾Ð”í¿?YÝe·€Ç!ߌªí^Gî=V,líÑQA›ÕøÐ˜Ó¹ç¶ÛZEOö?wɉø©5»âæêy~£|C£÷öýÉÇi“°GM67îŠöÖk+¸$H’³N„oTNý³ý OÌ Z9´½šV¬ªªD$¥D»°Θ0¬)å°µsá³^æùUáhØÏõ¼ó$‘W¼!‚À®Mðô ¾›]Õ""?ÎÄÎyµ^6Îùüå‘+çÎinïÒDÑ)^Wwª ⤠°Þ&ž9tüê“ÒF>Y5S{g»Éòüøéß¼±TUwüð…øçEÕ,Šä°ÉNÌFˆ‘y.‡ƒ7GðX‘]xjÁÜÄS9ÜçÖ|?Kœ9¾³<¿#¸^Î?tÁ{ù_ŸÔúiuÅiYôŒ,zFVÚ§``Å FúËôûqᛦH¬7ìC–Ê¢*¦ÞñA þ>#G‹AÅë4gŸKÔ?³U³ý}FYHLDB¨“4iKǽÖrŸ&´–ÒÔ´JPYbÀeL×ó̹`V´Ólàèñb£tTãjqu­l ‘I$º )'ÔIEY]TsñâýW õN×2®: á`¾z”²Û¯!MÒ—…ìäׄ¶A[¯+c¢\k“¡T[{_=zÅRÏy“Ä”ÕE;~Š1NSC3KŠ}&ÞwÓFw蔫«º¸ ß1…6câÒ¢ŸäTG:Øx°-¢Ì¶=~vmí1ÝÍɵÝRWS6g†\x*4ùôVMÉ/½_Ùf¿#ùêTa%%ÅáJ!áÔa ëÏÞùÞoµþê!c±ÏµÄÝmº¢c$†mY9[ZÏKxõ©°é½I„Šê‘)™yIy «e2”Ë”ÁC‚»"¢+ødTU%Êï]OyÇâ°ªR¯\Ëo}—L/Ç{ŽÚZvŶmùÃÖŠAgà㵄¶ëä• OÈìÜöwçeâBc6GøéßµÔ¥R©TÝ…QZ¾Îc‰–ó÷Õ³¶ÏÌMzûì¦ÙTÝem+fðÒ?NñåÑ›¶¦RºP{‘ZÞ¥<|/­¥%xw“‰ñ¿wÈÚr•’ß²ˆÓǨ¡QüIá¬ÊaOAÃjJ߯.¬Z^‡ï”Z½~²®Ãù8· ü_# ´÷Zšï¼%¶¢i°³ÆÞÒbòYo/{\ eå¥Ç¹[èNvˆzËMGdƒ­Ê÷Vê̲^¿çø¥G¯™l‚i£L'K•ÝŽ+ìx*Êzf7w¢®ž“ãõ}²„ÆæËWÿy³ÁØÖÝëÇ|›ËWwLêMæu hÊöšgr ÉòÄõ{4íV¸§ƒ^>Üz,;ËF»²z0ÿ°/ß§Ñh±;Õ…/S“èd¼*™º/ì6F»wi÷ˆË–Öç‹Xxéß̲¸íå—7Zw,0ê.FKˆž«Øì7—&ˆoîwTWA µºøEdjåÇ 3ŠÔ˜¥6– I²On>½Þ±þ{êª0Úoº­}\‚ŽFÀÞ¦îXç”ð¡.aÃ8{»c±UJ’‚œ¦ºÒLZÖ­¹k]é‰Û÷¯·™¤,+Íïsµ;à]ÐÅ!’ º[w‡•é –€úÜ„ÐmºÑ¥,b ?F˜…Q6Ô(;›¸GÏü£Ößt¿$̪×mõÕ›¼3Î, ÐZ›—°d͹ŒöUBÍéž+­ÅÜüRèòÐR•éïdçD«ùNÚà•®êâ.<»ãbw¾•Â…‘µ»ùÙÕÙþN«7ܯf@SÖöYv}ãOx՟מ~1¯Ý-Ø])Š»)[JÂt‡ßT›kw!æ ®b/ ´”gÓιØŸ>áøúÁÏœWÆd}\áöz÷©å/6îœeE|§6Ö?Ù÷·£LæqÝ.݆F;¶Z˜M© Nh*MOô·z4±šC¨¨™’]j)yOkÃŽó…†*²€–š‚§1 ŒÝ {ñ\ @ ºDXmK ØÕåõã,ìu¯mªî+Ž÷8„"?ן6ØU·æÎL9zm×xÞJ€º„ '³öÎÕm_Iìenxo[„×_ìæìIS€Æ´ƒó¦/³ó›'W”àPS‹¡mŽ7¾Ÿ©ûÙ4³]ã…ñÒÛojóÏ9,Ÿïï1¶í+ªdQqÀ*˜ÒSݘ À|¾§ÄdD)d2QzuS/ä;d9Y!ÖÛÒ:6ˆ’?Æì;]Ô‡Ìt@ú¾ƧæÈ¶ßÊÈÏ9º#mÉÚ³k&!~R¦°¤ðݺÏv¢(Àû]ÅÉ6Á±ÅÓ¬¹|§UHÑìÐu³öÛ”šG»æN~kqÂX¶[ŸŒm©yWâòw”üC–…Ò–uGBœ1¡=L6gŽB¤o{¨íF5 rOÆàԿΪ’P+Çßízyõ>³¨YJK¶=æN–2:~ÛšÜÓ¿™eñäoHÝg¾>ÃÀÕmÙ$…^~ §©®‰Ís9ìò¨U¼Ì<Û¥þðMôƒ;·þyê¹ÎÑ>Ó¹«ù[Éó[Bjnj IU¤‹?Û„dUe„¿îAìæwù¥LR@ ~p8Øl»Ø-¶Oà¾éó¬þSr²™ï ‹«^mÞ—e´o×´¾¢}’äg—?½]¯8JžRštÁ#¤`âþÀÚíˆsrrTTTÚ²·¾÷ò5äoµ!}D_?ö ÊãzÀPšÜJP° ÎZXžc[tzëç‡Íí^Z„ùÏ—§@3Ãw鲈^‹w:ÍT"ĸ»^x?ûtã!î’÷ª|ât¦ÂÄ1 R” úŸÓ4i»‹' ¢|xÄ5½­r,ÕmÁz†Eß‚O¿YEWX^·u[¯M~ìã|ª|ѹ³ÖŠüÄé”ûñþ¿–£v¶&‚Wu1³N­ø'LÀt½ñpášü§´¢qv+=Ù4o/ßî+û'¶½ðVÿxÛ\çÆ­— ¿½|Q¸æ™ Õʬ|K«€PXtÎbÿe}œ1§™qÚjÙ•þ«÷¬¡ö.¹qÀ5BÐ1ÈÛ´-(ñ™œ Ï:ß™¬¯®<@¼‘qûÔáŠ9~kTÚ×äsyßpÙ¢ ;ŽYö«ÎN õ ÉQÛyÑmŠlwÆ¢/"B8}¿‘qöŸU1êÇέC~y|™ã#ýã~+G“xC€Uî`éË4Ùä4O]º¹ðÁí×êËÌ•qÏok^°e¼YèÓ>ŸÝ}ÎÁ^xZÙßdë¼Êp߇WOoÇWm]­*ˆ“.ô­ Î]~¾š¤­ ö²×žs›Þ·5ÿúÎ5GñÍôØ„_/ŽðçíH¨gÊÁópOåqçÖŸ#?ÞýÝõóûséüŠ%N|@Añ,@ (ž…" H3ÈšH]Ds—"ˆ_ñ,2Ò@ @ âų~|—¤0è±Fâ¼g%‰T76-óK¾"‹/#»qèw§“æÉý̃0½í×£‘ê' ÿCGÑ®sʇ›tìúü«׺@§¿Ü Ì›sõ,WÏø]ëB @üž|ŠgµÝÌ\Ú¦«¦­3Íaw@ƒþÜyBûþƒ”~«£èص%U”UÛCú “;r…;iªŒ­>mS|½þÊâ¡| 0fS4öl¯¶HG ">]¿ (/=UÎHMóZa>I][ošý–­]ì:ýç"0ÂæPøîƒù/á9µ´Ãö‹6Ílú®..7÷Ƹê¢;jœú“Å›ïgÐ?ÏSø~ÁÁÔ®_„¦ J¿eÉØ‹³nfºÆfëo¿ W]œÛÉÊ‚ã¶^YX¾FWCTY]B}š–ýʼnýQ°K׈*«÷Ò;öJ$‰ýåó^±~ƈqg¾š‚=q3ìEúo D߃ֺ’jNë‡÷57Z¨{¸fMŒäj¯#y™éz–‹°;ˆŒÝ–ϸ¾GwDûl>¬¿åûÔEp¨‡uÉ[ž½Sštl³ñ½©‹¼ƒ|ÂÐ ‹@ ñÇòåú¬:FZZRb¬÷Në~NÅKOÓ•>=>­ó2‡‘Ñþ+xói;W¬(77=3'-3'§‚]Uô¦†ÝUˆÁô$Ý¥¯û Í1ŽgÂГb}ì?‘ûiSQõí… :Ƹë3®Óçç(r ŽßÇ÷b\,—NÕ6ÐÑ_¸p愎-.…iÏ3Ôœ¨6z’þÂS·éØÃ­šÂÏÒÓwÌžAÕ2™çM§c‘VÊ]ÞÕ«y?¦W„®]¬­ö—šºÁ4ÓåSú·]w“zixÒèØ½ƒL´§Í´ ºOÇhÎzm7i„v´BÚÈ9¢úeðîŽÝ9I¢jûâèn¸ØŽÓÔ4Úræ.–é¿|HBÒJC‡Hò¿ä¡ŠÃ•‡+)È·}¶ýjƒ8^]Âó‰ËSR®6Ëÿjôå)—9û˜œªaÄÝîwJ+_0R¢Œ¥È„Š"r¬ ++•þäFðáùÛÓ&˜ËSˆ5O ^‚\ß¼]ƒÀ§ôº[{ÖSML-v¯õ…ið›ŒwCøÝW]·‹GáɃõÖ̲¶«dÎÞ³‹ª×»¤ý½#h~_J‡•ŠØ@EÅáJŠÃûKòrQî‡zeW~È{0îÇå[kžp —P%ïž'Þzš•úèV@\!›"ðÿ|Ÿ’Xø D¹ºdÜr‡ÙºÓŒ-ýãR±g‡f}¶MÝŸ|^`_ƦÜ\^wzÝx!X¼\@îe°'Ëð[=D€OÞäòóԛƈ‘€¸;D©È2‹^––ççeä02rßÔ¶~ºˆÅèQ] ›ë`v¬lúº}Æuîë †£Ë8@ ˆ?ü58 ¥éå ©,Ãyí‹ÄŽQÑvÞZWü²¨¾ãXt ²²*&(%/ÜPÑ$­5srŸ¤ð·DµÊ)Ë‘˜9É¥¬öÁ{#ýfÓViîMo€úÞÁÊ{¿È¥lë{Öèõ*-«‹å_Ì(ý•¦¯03ÙO’Œ•×·‚”–Ñ@äŽÙ›ä»Ñ´:€‡ e f惃Ý,"Í0³}<âöXŸ9ªyýúÀðÈsymíÕÝ㾜¡o´/… I±wRÜã/„¸ÞVZŸÚHBª{"ÆŸå<}Io·Á;·ãk‡€éa_ÓŽDÉmËG¹¦3+ó^Õ÷´Äð( IDATþÀÖ‡‚WùÙ?ID¹pëâà -ue¹uÀÇ,g~Y ûýÍͳbCޝ 5:FçŒpñ_-¹Šz³Š "ºŠÂu›6Fù>xæ µ)~³´NÆ—·j>k®z íõÛ•ÿ·ëž9Íáz³÷?iZb½Î ßÞËÅo2÷®÷#ÝßÊ¢:¸í"‰È)*Ë |)iª,Ì.c Å^@j@oÀÒÞÖ]²›“Tùºe|)Æà‡·ø~ˆï¢V~¥Ñ•ò: ÿ@£h¾gØ‹Ùú.~·¿YðL›õ%ª|ã¦ÚÌP.‰:Ÿ…õx³Tbá{2áçb´«íïT?oï¸:ˆ§×ܽpzû¥øu)ØÇþþ(ÜK0šëú€„³ÛbUw¦5tk€ÅÏÅ®‰ß1MÒÑ­Øä#”B7ã¿ÍÚ½‚ ;´§<ÒJ<€"2h¬éþ};¬zEÍœêz·†ó­ëª"£'uIöï Xþ»Ú’Ç[×ÞfW–6®j†þÿ±«ªÖŠÇA¾ço<È,ÃØÂýÿšõÏÆ•úýÚ†±Êâïñ¾–^É‘5Ëa§£a?®ñgve’÷nßÛi¯kZ@°¯Ú ÛvS„HœÆÂÏý§c3+[øeÕf­Ù¶Æ Q»þÁ:ã-Ï>vYÏk®ã„€õŽvæ ÏÕ'¥ Ôwܬ5[VéÉóãžÓ¢Ö²[s¯WŸöGÓÃ+_øé)ÁTvCëìêç¡>a÷sªZ¤Uô¬vl™£Ð¾kæ³]fëî´R]Ý×¶Ña»*®ö_<Xùg–ÚÜ7¹ø3÷7üpê3‚ÜOÇ=M+¨jbrvÑÇME9Ìü˜ãGÏÆ¦½kâë=Ìxóá ÚR\DµT<¾pôø¥…uA©!júKÖL¡Ù›¸|½^{ÄÖË;jœŸ(”QÖ˜nig¥;@°gϪº9*vyþ·*85‰Nó9ù:iIóó ‹ QˆÓ ¼¶—·rxk¾·]ð=œ§rpçÖŸ$ÏGš ƒì,Oæ(:†ïoøíäùsâYüCl±—/qÿ'µþcZ]qZFV-·kôb#ý^¦Ó^4Or]oØçrà»Ê¢*¦.CIzÝ ü}FŽƒŠ×5,hÎ >—¼ÜùÌVÍq;“«Ù$²˜ˆ„P§A–"­³d‰ù±÷Å”wía³–ÒÔ´J˜±Ä@>4ôÍwlâzž9gÜMÌæ4€¨æ¾¼ÀÑ8ã~+Hd‰°.hÊ uR m»ei{¶6FØÅhþ‘æ«Gù0]Ã` @Jn3š¤/ Ùɯ %lƒ¶^wN®î‰‹Éõ !¦‹ŽÜ©b4¾zôŠc,ã5o¾ó‹n·zœ¦†f–ûÌÅ¿›6º5w~ÊÕU]\…ï¸hiÆÄ¥E)P÷IñœêH[ÁÑG^mÚ²¶öØØÍɵÝPž)àåêI–ÞsDÕÖ=¾4ßB-øÞlÂñÕ۵߮]伤<˜ªe2TðÉKœWàp›Ì=Äôã݆›6˜øíùÏÉû2_Rf=bû |ᛳoÄ/_à¨+•óö5ṵ̂˜*\æ{³°±‡##‘QºöCÞø‘FavéQlV# @DBˆ uì®%$°W†Ì¢“7¬*Ì'Ú߬8Þy§~dò±:z±´¥'Š"¾g~."?lþVç|¼ÉÏ Í︟Nv5ßÙ¸Õe’~ùd ˆÒow±@ž?(–Uuçßy{CO]wýò²±)Û²ºËnC¾!UÛ½”Ü{¬XØÚ££‚6«ñý¡Z#‰©.Ýáµ´)ËcÁ?©®-Šƒm­¢'ûŸ»äDC`WÜ\=Ïo”ohôþÏÆ£ÉÇi“°GM67îŠöÖk+¸$H’³N„oTNý³ý OÌ Z9´½šV¬ªªD$¥D»°H3÷¾?¬)å°µsá³^æùUáhØÏõ¼ó$‘W¼!‚À®Mðô ¾›]Õ""?ÎÄÎyµ^6Îùüå‘+çÎinïÒDÑ)^Wwª ⤠°Þ&ž9tüê“ÒF>Y5S{g»Éí±{œôoB3^{YeqÇ_ˆ^TÍ¢H›lá´Ál„™×r”Þó8×43x· OíÂñpžõÃ}nÅ þ|wyÚcYk·-Xc,¹5«§åð(ÏïH'/o®zÏT HIÅ󢎬d¤2Ó%«Ó¥»¦{YÇׂ1ýÙIâ¬ê²·ì±)©ƒŽ¥ßI>02ÐLwR`Y+°ß„Y ¶ˆ™à}«šAÇOr=G[\zÏhysiòÝù†ÁqIƒŽ¥Ÿ_Ôô":µòãMEjÌRKGë™wz’€=uU=×KÚ>.áA› ïiçéI’ê6Œ³W÷ˆ­bÐ1ý¿v]fZÖÚp­‹"=ÑåtxáK:Æ c¹÷oš–µ³ó.h`‡XHê¸ l +cÐ1í±e›®†~èÛVB ?Þ©0 £l¨ê²Žå.žÑ•!³K¬zin/]äñœŽ1èXöý~6ªŸº{sºçJëë}ýRèƒ^“tŒÚ‹üÝ´Á+]ÕÅ]øö)´|ø£1Yv–v/dõ`þaÿ^¾O£Ñbwª ^:§&ÑÉxU2u_ØmvïÒî—-­Ï±ðÒ¿™eqÛË/o´îX`Ô]–yŒšhosŠÑÌs9¼Î5¼Û…×v}+ýpŸ[ž<Í…A+žÙ¸íï^äÿ¯]:¤æ¦FÐTEºø³AHVEQFøëîÄn~W_Êä !ÛtÁ¡S—:-³X:ð¡¥éö«ïÙÈ(ÿMEýÔ¦p‹ ^–j§²þQí÷Îõ#%ü¾uq8Àáp8l`³9ìV`·pØ>û¦Ï³úÏÝ–×§ù9n¼­¼ýä&ª4€]ukéé£×÷Næó=s×Û_>i,C€œœ®%UÝr˜{Læèµ]ãÛ>ìÆn¬®¨åHÈdì6ÛT½õš»®DwVʲ«bíLÝåܯíR¯Z5ïÔ`¯KÛÔ„ 1íà<ûlë0¿yŸ½æðéü¶z¿nQ¬| ëX]ÿ ÕÊmÑ-îåϼÃUÓÉ· ÒÖñœ£ökuo|k"ºR–²Íôß·«#üæöýlc—GÙÍ=ô²SŠÊ†ˆSsdßGØ. ×<´Jž¾k‰WŸ5“î»=ü¹ïþDë·­ÎXÜþ¶»2fµé!ñC7ŽLmï¨6w¦¿`=˜ŸPNNÍ£] ·¾µ8a,Ûf.ë³–-ݶ>  þÑæY›Ê/ù™Ê‘y' GEVa°o6{¨­ÿ)k%A‚óñÆcéš8»9^ƒ¼.m#Ôíz¡¥$ØÆ2Þ,ôŒiŸÏÚóUz3ãä’)‹B¿ôV¼ôo6¿àÉ/ò|Ÿùú W·e“z 4$­›u¨ŸWø&U¡žè¿ûs Ïv‘!÷Dž¯<¼g~…;·þpyt2gìxñù¹|£·EøLç® o%ÏïDÌ¥ó+–8ñ…²cÇv8sðšSÿlZ*Ê+Þ¾ÿêWþ¡®iܦû´~xE¿y)`¿|6ÆAFùï*êg6½ânÀ©£·Jš~@®)᪋œ¶83æ(û²-«äÚFóUA-³6®Ÿ;Z´¡ª²ª–-ÚK”_Da4_‚ç±DÊðáâe1¶F€Å‘ ZRm¡¡ÊÊJ™ö×[[ßÇ{zÝy×ÒÒÔð¡èÙ5;Uj–˧)ŠZË„\Ïn Õf]?°þÈˉn^–ÊÂíw¬‚³Kf9†·èšŽo+”ýáÑq¯¸wìÖ¦ºw/oØîñlàŠ=ËÔ{ññ“KâÂo¤µ*¨ÈóU½¸ìíŸz¶K&J×q?Ÿ‚Ó">–zÀöPíòÓ»t:¢“pÊï#Î]|ÂDé¾§ŸØXÍþµºwgk"xS—@­ ¬kÛwßü Õ_Šü!ÿiLè]Šú8¡Ç®ÿ^¼/*hçªeË–-[f>2ïôûƒfO‘ɼürÀ,³ ò “4«=×¾áôofªÖ‹òGYŸÍ|WPðæ]AÊ-ZYßñc$›(½DÄ o¹}âä3!åÞ é¡û½ŸÈÛnZ8Jœü•œ Ïn:“Ã"§µ¾äɵ³¡©$]ëEš2|ƒÚíà;-úKf(´­–d×f\¿D§9™÷ðÒ‘Íî/ÇïÜÓû|£ žÞÈ ¯¢Ã‰›,Ÿ£Ú«%ÿºë–ËEdóIxõâëŸp®év9¸váÙ¸{¸0…ÄS9€;·þy„ÏXÖÁbÊÑ-+Ã/oR#}gýüNäe¾ˆºG2ZŸ…@ â¿Î/´>‹WЊžßI3Èš²º~•æ /E ¿:×g‘‘.~m;²Ç‰óž•$:PÝØp´ åWl7¾ð$ ½]‘Õé!;G þwŧ p¸IÇ®ÏHùoúÆ/íØŸ0<ƒ1"ñý2ÝÈ{éû+)ß´ÀoÞ+énŽ@ @ü÷øÏ"÷3—¶éªiëLsØPÆ ?wžÐþ!kJ¿ÕQtìÚ’‰*ʪí¿!ý…ɹÂ4UÆŒVŸ¶À)>^eñP>³){¶W[¤£‘ túË Ê‚ÊKO•3RÓ¼V˜OR×Ö›f¿e+ñ.=0#l…ïž1˜ÿ÷žSK;lo°hÃÑÌïùF YfÉ%ú‡3Ún"ŦŸ{Š…÷éÎ:ÌÖº’jNë‡÷5è3£¨;t×{éû:²@ ñ+òåú¬:FZZRb¬÷Në~NÅKOÓ•>-?¨ó2‡‘Ñþ+xóiû ¬(77=3'-3'§‚]Uô¦¦‹û’åLOÒ]úºÏÐãx&ü=)!ÖçÀþ¹Ÿ6aQß^È cŒ»>ã:}ÆŽ"·àø}Œq/ÆÅréTmý… gNèØ@hö¥[¼ÔKÓFÇîÜ`¢=m¦mÐ}:FsÖëEêRÂŽVH9GT¿ Þݱ›ITm_ýà ;ÃqššF[ÎÜÅ2ý— IHZi¨âI~à—2Tq¸’âp%ù¶O=ÿ@mç«‹@x>qùaJŠÃÕfù_¾<¥ó‚r“S5ŒØƒ£ÛýN@iå FJ”±™PQ¸nÃf––5PÄ„ø€ÜkȈ± bdŸ˜0©öM9Æéº@€º>6ø¼À¾‘„Œ[îà0[wš±¥\*öìÐ,r¾¨‡>oJ‚îÐ3ǦÈ>¥×ÝÚ³Ö˜jbj±{å¨î¨ˆÀ£ˆz%‚ÃÝ¯S’ô€¡}„HÀ§¸,¢æž½ªð·¿Ž1®Ÿ°™n¬=A{¢ÖLcå¶N„뽄öÔ7p‚‹è”ÓÉX¬ÝÔñFÞ4:ãh2qö¹Çô‚ÝcDˆÅ °2¡àŽ<îÓ1Ú±-³©ú“¨K¶G}\…×3m|c ``ðdã¹zZÓçÚßL¥×_^¤È𺹠ŠýKFRÀßí>[®Ø®‡øåA/þüNšAÖü“Õõ«4y)ømÀ¿‡ÓPš^šÊ2ü×¾A|àÕm7ö­uÅ/‹ê;Ö¬ˆTVVÅ¥ä…*š¤µfNî“þ–¨V9e93'¹´c“IÁ{#ýfÓViîMoÛ6¼¾w°òÞ/r)Ûúž5z½JËêbù×3ŠD¥é+ÌŒFö“$cåõ­ ¥e4P ¹#Fö&ùn4­àaB™BA€™ùà`7á—Ìlx£=ÖgŽj^¿~#0<ò\^[{Eu÷¸/§DèíKa@Rì÷ø !®·•Ö§ö#’€êžˆñg9O_ÒÛícðNDÇíøÚ!`zØ×´#QrÛò‘A®éÌÆÊ¼Wõ½?°€õ¡àU~vãOÒQ.ܺ8¸ÂCK]Ynð1Ë™_VÂ~s³Å¬ØãkBŽÑ9#\üWËD®¢Þ¬bƒˆ.¢pݦùmnEK?qíQ‡ûð ʰ·Ïj)Í|ÛL¬ùò< ÷ûvêçíW±ñôš»No¿¿.ã/Ü_ià×Åê¡•ñÝ·;ô̱óÿvÝ3§9\oöþ'@K¬×YáÛ»KÄ÷(‚^™‚á×Tó¸ÖQ{¤tÐÐÓ÷èó§Û믯1TI»Ÿÿ±̼Ká1w?/ß{ $쎳ñhb]}ÈMyöˆ•Öh#Ãxüø~ÝãóG*ˆ“ó&ˆA`e"À“Og·û ÁËú{3$„-Áª÷ÿ£oìD¶Sx÷æ•„:€‡´ò¡…g.riƒ_çwó”–žÌD@ Šgq‡è‚-öò%îÿ¤ÖL«+NËÈâ¶6VÌ`¤àÀËtÚ‹¦ñI®ë û\|WYTÃÔe(I¯[€¿ÏÈÑbPñº†Í™Áç’—;ŸÙª9ngr5€D‘ê´Ž‰"­³d‰ù±÷Å”wíï-¥©i•0c‰|hè›/îËÅõL×0(’Û ‚ƒ&éËBvòëFB Û ­×“«{âbr}Cˆé¢#wªØ¯½âËxÍ›ïü¢Û._œ¦†f–ûìñÿwÓFw蔫«º¸ ßjÆÄ¥E)P÷IñœêH[ÁÑG^mÚ²¶öØØÍɵÝPWS²Þd”4ÍÕ;é5(ÄjÁA>û§~;†4ÖedT°ºS ÷æÿv!mYNæÃ×D’ êâë‘• M‰×ZzäØä¼¤<˜ªe2TðÉK^ß6åêQ½’(T@HøpÁÊó¼$eÇô‘ì*ëW}õ`nC7äàöÐ7xèËÜFæ»k&ŠˆtO +ã—°¹4ë=ž Ë÷øõ›ÿ§§|CèzŒúD+«Èé;ts€šÒJ¡"Å÷¸¡…£ @ 2"HÍU¯ó™j)©ãq^Ô‘•̃ƒTfºduZ é^Æ c¿g&‰°ªË޲Ǥ¤b :–~'ùÀÈ@3ÝIe­À~f5Ø"f‚÷­jc<Éõla`pé= åÍ¥É#tçgÇ%a :–~~QÓ‹èÔÊWè©1Km,­gþ-õIDì©«Âè¹^Òöq ÚdxO;LO’ P—°aœ}¼ºGlƒŽ1èïüµë2Óò°n=ÆæZEz¢Ëéð—tŒAÇrïß4-?jgç]ÐÀ.±ÔqØVÆ c Úc'Ê6] ýз­„~¼wbFÙPÕeË]=+:¢+Cf—„YõÒÜ^ºÈ;ã9cбìû/ülT?½çÙœî¹Òúz_¿:Æ ×$£ö"7mðJWuq¾="P=ßʯfud-ƒ^÷$ÄC·ýsmДµ}–]´¦«×Ð0êü‹yínÑ¥¢pÜ&7±p€Ž\ØÆ9Í/}_é;}À›³;âÒS ¹GFŠŸ–¨z&b :–}çîÖ¿Ú“Ãß¶øÏ»)ñ»CÏ›]j)©½Ÿ¹ú|a6cÐ˼• ž>e`ìnˆÉÕ£ˆz%Q¼'-øÜ;Eçç_}[î`ñrŒJIèÉî}Ð ×{q$왽¾u_&ƒÀʇð%laœš×~ä8ï¸:˺ÿï(›Ãùÿ¼÷[:@—c¯:ìQ7‡Ö·W uÖÅéù¾aÐ1½ÌS9ÿYj^»{]@ ø3!575€†¤*ÒÅŸíB²*Š2Â_߯±›ßä—29HE‚7D†Û,]—Wô#I)ë®Ý²HõÑæ1vqïÐûrˆžÀà‡Ãá°Íæ°[ÝÂaûî›>Ï )@ âÏ!æÒùKœø€Â‡tà4–gg–#= ˆoFCö9¿ìö¿Ÿ$GB*A @ ß2R@ @ âų~|—¤0è±Fâ¼g%‰T76-CùÛ/#»qèw§“æÉý̃>~±G#ÕOþ‡Ž¢]æ”7éØõù;W'®uN¹A™7çêY®žñ»Ö…@ ø=ùÏj»™¹´MWM[gšÃî€2ý¹ó„öOSú­Ž¢c×–LTQVmÿ é/LîÈ2f´ú´Nñiôú+‹‡ò€À˜MÑØ³½ÚwÖ™ðéúU@yé©rFjš× óIêÚzÓì·lµ&€  6‡ÂwÏÌÿ{ Ï©¥¶7X´áhfÓwuq¹¹0ÆUÝQãÔ'˜,Þ|?ƒþ!xžÂ÷ þ vý"ü0mPú- LÆ^œu3Ó56[û½êâÜNV·%ðÊÂò5º¢ÊêêÓ´ì/vHDpè‚]¾DTY½—Þ´oT"Iì/Ÿ‡ôŠˆõ 4FŒ›8ëðÕ쉛a/Òk ú´Ö•TsZ?¼¯éü¥°º‡kÖÄH®öÚ9’—™®g¹»ƒÈØmùŒë{tG´ÏæÃúKP¾O]‡zX—¼åÙ;¥IÇ6OЛºÈ;È'Ü ²@ ,_®Ïªc¤¥%%Æzï´î§áT¼ô4ÍQéÓãÓú7/sí¿‚7Ì›‘aE¹¹é™9i™99쪢75ì®B ¦'é.}ÝghŽq<þ€ž”ës`ÿ‰ÜO{)Ѝo/dÐ1Æ]ŸqB®eå¿1îŸX.ªm £¿páÌ [Q Òžg¨9Qmô$ý…§nÓ±‡[5…:ž¥§ï˜=ƒªe2Ï1šNÇ"­”»¼«Vó~L¯]»X[í/5uƒi¦Ë§ôo»î&õÒð¤Ñ±{7˜hO›itŸŽÑœõÚnÒ%ìh…´‘sDõËàÝ· ‰ªí‹£¸ábg8NSÓhË™»X¦ÿò I+ U"Éü’C†*WR®¤ ßöÙö¨ â\xuÏ'.?LIq¸Ú,ÿ«Ñ—§t^æ@îcrª†{pt»ß (­|ÁH‰2–"*ŠÈm°‚¬¬Tú“Á‡çoO˜`n,O!ÖrÎÙ{­½ÖÚûœ½î¾û8U@`0³"Äã’Í­àÍÑXséã§ Xøþ-n¡W|÷Ú_Ó®Vp)¼"xï)W£ÇQ'iïí¦šßt’îÀ¢ÈÏ´‹M¬ç_sŽÞkÚõÁÌÉûC*ˆo-«”TÎÈ’RîXæÇʼW»7=ÁK ؽJÙ Œä@ þ£ü~¡¶x—¥bžóÙ¸êæcU¹ñï’ã[’Y€å²X ‰ σ|vl8-m°e¢< ¸%Ù¥ ÙW«iƼæ` (Ωà;Éëj”ðøË»µÏH¡ŠHˆIŠ´Ò†&3Îdã!³‘ -‹¸qñ%Ðo™â×Kºè;¦zÌÏÞ7_eðp‰ãm ª˜¨ãá@¡R(¤² >õ†U? -qí¥KÜy¯©’uת7 6ãe&È4Piü•„pÏ1ãå %*§ŽT÷èÉzu‹ª~¼c¢tC{ë2^fPà¸`Œ„†–xÓ§OËܘ¨¯aƒ¨”Ägê}7k´‡V¥Ú’ÅWù¦i «è"#þÙI¢Üoà ÜøÑÉÙ+Ï]ÙTyZogTe» %È•h>f¸¸Æ0ùÅ#•¤¶Q!‰yÛVãÛµ«6="ätf¨ ÞdF`“ù§˜~|Øð³I»„4×^ˆ¼ëñù'`}_2åÙ)ƒrÅõ6êIã•r*xòzÆ“E ïø¿¯ëäÈHâ”vÄaÇø‘Ni;¢pNàóá˜DCÑz]xhZºjº¥­»»õ¦¥JoeM;ä½D©³Û¤‘)ß¹Hp)’v}‰ˆª®‘™Ó®`«en_ë Fާþƒö»’)Šø`óðÀMÜ£‹†ïý¸ÅÿÑý†;jûº¯&çõÝí{îɘjŠ~YíP£ƒ²RýŸæ‰Y;¦^U\PÅ“f0 íR€@ ñߥÕÄ‚]š“Y;Ù-:Î ê S¢n{ëÙ/©¼õ—ñÚö…¬VׇZö\ý’S^ø7p‹Žs€º’¤Øà óõ®ÆWâù7M{e›œrz\®)Ã³ÆޝJq<ÿÖ„AÃmð :¥§*À+Ï}ëWÂmž¤KY¾Âd E.Æ?ö~ÓŠ,v¿ê`—©+-ƒBÇTìC¼çÞÍV¡eU¡[‡YZœv,U— ê« ’ÂÓ1^{lÀWMf´Í‘-+ÆhÈ ûSê«SG²¸ëm,ª·ûÀÍBý^’PzcÞÈGr ›g*µï¬ûÀ¢ßŠ —¯]l¾ãyÞMÓ®O´Ìw8½sÖK€W™á¶lýÕwëâØ ŽkÌ$ì\¢™ŠBÀ-Mrµ²° ¯øNÖè(mÉâ¯|ƒ•ñ¢G MU=ŽúU`àå)®Væ[Ÿ—ãPŸl3Ë¢{ðù3ÕîºS¯¥7†Þ–¡ø»²õ4{k?lBaðÓ§ÏÌ™à–KR!‰yÛTãÛµ Ͻa"õLgë^÷÷ûÉѸY±, '^~|Øðµ†àvqcL?  .ÁÊ×%ÚºáÀż3ê]¡*)ðʬ^”ãÖšÄ)mÐ{nö»o§ðv_ŸE>⿎SÚŽ(üÓÃÅëúz ¬:Bå•%_±²ØVN¢!‰¿rKêt3¶€¡ð×(-üΩóM/¡G´BhÀŠã>SžêMH(æýAÊ•á', |9)IõßY†úÒ3‘ÿŽ*zârâóUaˆÎpáûG¾nØŠ™®¾Ò+veq$}´Š×¿Òë¨ óÜ2 †ŠÇ &í (ÃAl„Û‹‹½Ž¿]ÜÉm~DØxm†'¶'o¿(ÄeÕµt¤cŽ^dV€—âg‘Ä|%« „ì€@ ñ_ øcAóß_.°¨bÅÇG”½ ß®µa}–––P)Z =R‹qìüŠ6füT…9˜¶2‡§ifqE„¶¾BLË&Ég¾”]]<Í2®éíÞ4…Åg|®âažW¯¿Ê,¬eÈ)IdøÇTà ÒSwF_N~Q Uz ÉžËÅ}&‰ªºÊ²È+Qý;C‹¨ [X¯ÐËuøk¾{“dˆuzæfôÞmãÙд*jWEÕÞ¼'ùlJב/®âí=õ ‰ÒÏØÊrõÖô‡C+r ›Z!c¸ë‚ÏRΙ•æû_Uàñ¡vwÝÌÙ÷¬¼®’¿j×Þ1Y› ׸äñ("2jÊò½¥Àê­Ö§ºxù¹…µø´y)A²H”§wQì£ ÊP˜æê¶òÃúqS‚ªšcC~†3Ë^õ¼Ù;ê@H}MLÀªœÍSfû—‚ %8l¨ s.¾ùWæð´‘ÍÁx·U–i½ß6î.à ®ôå‘ÏÛ…Ì´ŠoŒw¼2`ÙŽs„ûñ©+Îiþ!JfD y ÀãžE'Öó é ™—;åJš¬{àÉÙ%mÎe0zM\: ¿¥É*`ô·¼õz¸¾àÏ*®à1¤¤é)!a¬Ú6*D ˆŸJWi9d@ ˆÿz>«¢¦ ¡´5dДÏê¢2dЀ†5-¼ªÜÄìê¦u$â*ƒ0aiEÑšâz™ä#|>Íì4(µ©QMIá‡ü\f‡¯Ó>”а–«†y¨—Æ¡/Ji¬t¾b˜³NÇôZÑ× 3š¤²úÔÕó 5•¤¨XQ5¤u U„¢š|åG…< ¯ˆ -TÍr›¿¨——y §6å¬C°áA³Ë§´ïßèéãw5½¡½âzíWÑ|ÇŽ®€ˆÀ§ÑöÁÞûŸ¨o‰S"Ó`¬}ÆH¶žº¬›]óJ4±qvç6õ€9'œç4”Ú³Jóúþ„Úº’ôŒêneà”eed¦Ôý$k•(‹¨ÜÌæÍÝã]i”¤6dµç¦…±Ânî »i­¼(<ôâÍ´ñ“–‚ Õ)WÖ¦G¤ÃdjÂ1‰_þ–³¶Jî’Tˆ@ ?œÀW¯³TVVª¯¯7_³jøp-²k È/t¹¶ZCè³j^íZ|Xró:‰—ü’Jñ®Ã-íÏë^üôâ ÏзÙZ·¾úFÛ6Ï AÅ¢÷.°«ÒO{S=pù2…0— OêKO›¥çcØûó÷â êèrCfXîZ=^Qð;Ujäò#—7޵oŽ,_´*ÏÓŨ'£é–QZVbRÒbmN°Ä4ÙØ/ªO>·dý‚Àqàæy¯Yûhüù+762ZåÿpÁ©AnáÓ#+ï<Ψ•8g›íêqrtN–‡Éê°iW.7lœˆÅýkôoµ•‡ê33<Ø=}"@ÿmwÏM–¡‚ ;5¬;§O] ɬ$è]U‡/Þk³\lM¢&ýžý)×àŒJB¢Ïxã]Ûf÷§^ìgnz½ï²Yƒ‹AuÒö£[&u`¤ºÄãK÷Vîö<4B¬å¾öæèB[8xcW_æŽiÖoèÛ}…ñ`‰–§ ¾ñЃÑ!ÿ6%Q]·]$Ö¸O‘ƒF¿ò— xà½;¹fš™Gà *à%›æ¯>ÕÕgÇ_"ó#`‘|ÚËÉö4àG2Ɍ߻þáâmW´ÜWiu²óþ©q €W¾»ëxÖçYjW¬»Ö´ÕÖkÇÊÓ¹…üÆàú®YéÛgšëùëüZ‰svì[1Jš&Ð/PìgnzsŒ³›IO![ç]Ô¼Ð8¦u,nñ²X—ƒ§½™Å UýÅÃê pÇ ÏmM„þÿq©a’ÁOAõ´Kð}‡_<Ì 0_z2­A…cËÃÄ'8úîÒŸã:v¿c§;[„Nºàó´¸Ù×Ö,^šrñÚºþheÄ7Ëg±Ks2k'»EǹA}aJÔmc=û%•·¾whÛ²Z]jÙsõKNyáÜÀ-:Î êJ’bƒ/Ì×»_‰äß4í•mrÊéq¹¦ ¸Ÿ’BÎ8¾*Åðü[ _´Á+蔞ª8¯<÷­_\ ·9W =dù “%¹ÿØûMë°Øýªƒ]¦®´ 7RY °ñž{7[…–U…nfiqÚ!°T]J€¨¯*H OÇÚ•fà+‹&3ÚæÈ–c4ä„€ý)õÕ)‹£NY\Èõ6– ÕÛ}àf¡~/I¨N ½±Go䣹†Í#`íû+Æ>°è·"èåk×›‡ïxžwÓ´ë-óNï܇õàU¦G¸-[õ]cê€à¸ÆLÂÎ%š©(ÜÒ$W+ «ðŠïdŽÒ–,þÊ7X/z´ÐTÕã¨_å^žâje¾õy9õÉ6³,ºŸ?Sí®;õZzcXàmŠ¿+¹y7õúûgápL¯OWp‹R¯Ú=’0âÜ–^¯­×$7¯pË9pqÕÛíûÞYܪÕ1‡Gm”M:§×fØ ÔÃpïnãù£5U»Pê Â\WN>VNªS®Äso˜H=ÓÙº×ýýÄ~r4nEVl ÃÛá¯Wˆ@ ?›†yn_u56‡ãxÚÁ‰‡óO———ã“Ï"€øä»r²oãîK®¸™©1NñÊ“ 5]Oßµl¾ºO0?5Á¼á•Ï·Ï_U|Þm¥ 1xÕ#ÜK+·¾]è`òlý곑sÎ ·séY…£W¼W‹^²qÙÚœ LÚñþ vÖ½³ÏèSNS¦5M9977®uã5kØSDƒAlÂ-|ÅùPvÖ£×?ãºæ?<}òa· ž'¦v§ L÷À-*R³¼xgê’œŒŒ6•z:ÎV]rbM¤éžëc\{Ó«£ŽŠnã­Û…K¯/­O9o´ùýÖÛÇu× àxyäþvà&œÝ}¶`¥OÐdYjÛi ¨‰³]¼¯|óµû»¥¨@”…îY¸à­Ï>mQ€‹±®?³dàEþ›¶ßÐp]ªÊ×ÌB‹æt[ëS>lT™ß9ÞÜÍódâ¼£$fœ(Œ3F æf_[»2ò‹‰<Ÿx Ê#¬:îßúôÇ{.Ö•òU¢à  ŒšæöëN×÷¬Ñw¬‘Æç¼–j 5'ÚíGyª¿öÒUøû‘ÀëÈýÕMËPí¸»ú²Mÿß”ôO‹[¨O=·rmÌtwozë´9•ïx¢Aà ‚[EèØ\±¨Ou^ºÄj­× C~Á³<8N4¯)‰Ô¸].ñ|£‘³Â“b@T¿´]Îi©Å3|ßq©!ÈwüÁÔ£ÒѸ¥ó¿¯ÌtœÉÍ÷^³.dî•‹3å¨äñ)Ä?žIåòû!6²Hz´6#d×'|õù£å¯FFþÓ½_ ñ­òYxñÓ݃‡ìæ¯Ày¦–3ßtF•Z?AµóŠ^]5™}UЯoØM»a' ä³5ãÿ^óõ¯.ïѹÝÎñ{|ì0÷±ŸÞ“{}¤Æõ–ÜDä¶eñJ^þ»æå¿‚ž: Ÿÿ»ú9ß³‚4Ä?W£6õêØ~-–á•2ÏîZyv— ¯Bò}÷›ùîÿŽÖ ˆÈõë#+úõ:Wœý1+³€Ì†e‘+ßu‘ç¦ãÓ¢òåÊZ+¿ RC À«ßÞ:>óÖñÏúöóÿÂ<é.óÅ]àŽI—;­ô Ú,¯Ñ>Y‚b&/hïú ½d_xñ5T'›ý1ò¨eäQè@lpRÎÎ?+@"ÄÏÇqHNI­g³Í×®²Þµ½õñ/¯%€"?ÿâÕ•­¾o¸'€Ömð9j«r5ñGMö$êí¸.Cku5MÅÔí‘)´YÁçÍk˜Ú6–úP«½fÚbæÖ¹Qk}s LM°pœ èrÝ… '€.§!/3‹Ù¸¬âœý[ÂVï¾2Êi°×wcìÜ´Äš”jŠ·(Éh¡[o”gÆÜðŠ}‘ßoãÅS3.`À+òòꥆõm0€¨²º '6»œ3B'º¤¢$Çq è"t`cu\çÿkªò”E}nø„$W‡=¦õ¢žóïoð4AÙh³ ­Q?'Z[­iöûU<°;å_  Ñ[Çáá8¥  ˆnÑãõ˯ö:yýÙ`¨{ç¸dÖzÇy‚<‚ýÛËÇmø g×s&D%Ú ÿ¸ËN)ë¢9è³ÁDðx‚SèR=¤’Öµ‡™QÌÆ» ñ÷ Žö"x<œh8w,nÙ陟E!Ç„z R ç5׃âYp¸~›qésM[ë“ÕÓ‘¸Åùß×Z²„Ÿ›MP|òøÇs‡ÇCi ¨)ªé¶áЉµñ'1—¥üŸ£AE&@4¤ÆŠR’’™ï¾ú$eÔÈ>ø…óYçΜrr8yéü­¡CprZ&\üN}~‚Ç®®äˆ*÷UWêB«Ë|xèÄNCÑæ A4ýKAïµp×ô*Çu{Ý_°ró³âÃï:tM¨¬ ;ÿÞ®-žö4?b;S¦(=-5óS ·élýû«¦ÓÆ»¥×ãmÂÅ>f¤¥¥e—±‰ºO™¬”´œÒzt»y‰\ô‘Ã^±Y9i/\û~Òœ3Q‰Jjn¾çás¡¬¼¬·Ïg 2^¬FÇqiCÛ­*÷6,Ø›6iÿÚAÂ-EhÝzÊâYA¯r+këêØ<ÇÛ¡.Í÷’wL¥ìýyF &uçæVp+²zk'°}ö9ø'æå&Úç‹é™M’§4ÎÀœhÓ§ õte2,Ïa‹§Ü*³Uk”½·Ø§5'-­nv(i»- ŠèÒg¨|åÓ ×CSórÓ^x^zV!;¨WJgü(¸½_û±-±óž=Ìî5w†*ýóXüäg1mü¼Sokþ£q‹’ã¬þQÞmqæI|·üôè[—ï²j'8N7Ïã€S+7ó•ëþK9CŒçö¢ ô HôÕ’. y–ŽñØÅÑ®®ÉÜÖñß÷š½R«ðŠsh!›W—ûÄÑ=›Kõ£ÿh<·q‰LÁõt$nùÇÃçCÑŽûÿxîèxÝt­L»Gì·½™ñÚw¯Í3ãM¤Úc!â«pj…]_#¥¡b@ ¿è×.Aà€ãΜKàg=ËwWRêÙÙçGÀûô`›ùÍÁ'®¬ì#„¬Ñ¡è­f[wAf¿Ójõ?Çrœ,Ï5Öùk.ì-ùÙ:¢<ÜÊØ‘±õòáñRT·íÒðÃmËõ“Î]˜×Žâù‹gñ R“ùéCÁêeVt ¡¬þ(è*Ë"C¬J×›TÕÁ¢q•¿ôûq£ž%ó~»v Vž"©¿ßóÞ<ìô³h—ñïéeɉ— »í20rÊáþš"ÄÿAÛ½ þ¸y^–nùÒ›¹° @¿é âCw\sþÃb•Ök©ëu –—´ÐuÌ ¿1ml1…â¶¢aã$~ûN¡xþéñŒ@ ~mZòYT¥E×XvÂv«†ŠZ—ì1úÑmþ‘˜r€¦d~Ïÿ$ïäÄÑMÉnYNv~-(-ºÆ²cØ.ßT#¦¤i°Ýz™vú‰¡‹¼2¸BCvÜ{¹8nòX›ˆáöâÒˆk‹†fÕƒÆr§HÛ…·nÆ0þ¥…ß9u>|òBV÷™òToÂï˜Ï¬Ìâ4Š l}…˜–M’Ï|9(»ºxše\]ãQšÂâ3>W ñ0Ï«×_eÖ2ä”$2üc*pé©;£/'¿¨†*=ÐdÏÎåâ> ŽDÕ6.ŒõØ¿3´ˆªð·…õ ½\‡¿æ»7I€èP§gnFïÝ6ž M«¢vUTíÍ‹ñx’Ï téððâ*nÐÞS’(ýŒ­,çPoMŸq8´‚ ×°©2†».ø,åœYi¾ÿU@jw×Íœ}ÏÚáÁë*Ùñ«v퓵ÉpK""£¦,ß[Š ©Þj}ªë€W‘Ÿ[X‹ÿHk—$‹DyzÅ> ¢ …i®n+?|¶f*?Ùe¯zaÞì õ ¤¾&&`UÎæ)³ýK Á†6T…9ßü+sxÚÈæ` ¼Û*Ë´Þow—áWúòÈÇçíBfZÅ7Æ;^°lÇ9ÂýøÔç‹¿´ ÿ%3¢„¼`‰qÏ¢kˆ‹yÐüCâåN¹’&kàxrvÉC›3AŒ^—Èoi²€ ý-o½Þî‡/ø³Š+x )izJH«¶ â§Ò£w?ò •@ þð|V DMABhkÈ2 )ŸÕEeÈ  kZxU¹‰ÙÕMëHÄU44aÂÒŠ¢5Åõ2:3'ÈGø| “ª ¡@©M*hJ¢8äç2;|ö¡„†µ\5ÌC½4}QJc¥óÜu:¦×оN˜Ñ$•Õ§®žo¨©$EÅŠªy ­c¨"Õ´à+?*äQx@dh¡j–ÛüE½¼ìÈS8µ)g‚ š]>¥}ÿþCO¿«é í×;h¿Šæ;Þðpt-D>¶öðÞÿD}Kœ™†cíÃ0F²õÔeÝìšW¢‰³;·©7Ì9á<§é ÔžUš×÷'ÔÖ•¤gTw+ã§,+#3¥î'Yƒ¬”@Y„@å[U˜VôÚ¢Ú/…àŸüwÏ ô>·þ†ái&1ÀÖÕ\ÖoÝXÿRÄôH %8l4(µ)-ÁÖáþ{—•ØÍvÉãqÁËØinìÙõ×'f6e´J#l.ÛàNYðåKùÉ"¥:fõ­Õ4q1‹Ž._ºn¼Ìkç­‹£Kx@b¨N¹RhÜþƒsÙ>ú³ÄÔ@xXõ¸ÕÎÝÚY!Ô¦ßò ÁZë NZ!@ @ ?52Ôï²TÌs>WÝ|¬*7¾éµwñ-É,ÀrY¬„Ä„çA>;6‹–6Ø2QžÜ’ìRì«%ÛøòU†¼æ` (Ωà;Éëj”ðøË»µ»5(@¡ŠHˆIŠ´Ò†&3Îdã!³‘ -¯nåÄÅ—@¿eŠŒ¯Ôí¢ï˜ê1?{ß|•ÁÃ%Ž´1¨RPË*…B* êSoXõÓÐ×^ºôÈ÷ú—*Yw­zÓj3^f‚ÜH•Æ-…{Ž/)Q9u¤6¾EOÖÐ{¨[Tõã¥Ú[—ñ2ƒ€Çc$4´Ä›>}šr4D} D¥$>Sï»Y£=´*Õ–,¾Ê7‚³±:€.2âŸ$Êý6¬pÀœ½òÜ•M•§õvFU¶ËP|]ÉNòöˆ™pi·öWÛ’24VÙH½{4NT]½Ou½xGÔØÕ¬Wk“boŽ7KÞr÷øt‰Ï­Ä?lÚ‚‡±ÂnîZ3[FÿŒ¨ùÅ›S»QH Õ)WÖ¦G¤ƒœÎ 5aøb£² â7ƒWòÒÙbê_ªÊÊÊ}´¦npOïìNuL­Þ Wþ¿ %wg÷Ö9–ÂnçñoFUÄúþÊÊ+ƒ+é¹9.••• œ39ì”c:=õœ28?ÆÎüà°ƪ\ÎF›A"ñ{ç³Ø¥9™µCÝ¢ã0Ö«ô'×ÔëÙo¦mr«Ç(mûBkú”]Ó€S^øÿË-:c1±„§QG5=çëñ,äžÓ´—qÀ§Çå,&ÆŠIsÔô260¸õ àæßš0@oỉ^A‹‰%¸Õ¿}WÒü‘‰±˜XÚsÿ9E§,,œ²¸x®·±Ô8{¡í7 YLŒþÊŠ¶Goäøx¤6?žÖ¾°b¬–ÜÆ"Û—¯³OêÉRñ¼›¦]µm ŒœÞ½ab,&–òü­ËŠA-©v‚ã³ûÝ]¢™‹YuýôØ®Ôïf? ·!‹¿òù¬¢G M]*Ìý*Y̪o½Æô&Ô'Û̲x¤½ÿŒÚͱ ¯¥7†E›†âïJnÞM½þcç½Ñó­d11VÌû§m'È ÉžÛÒëõ—€äÌ”ôÌ”ôÌ”wO\Ìì·ußB¹ÏRWÕ1‡GmŒ%Ú6$õ0«½:lÍß&¥Gb|æÊQ(~`4b«ø•×®ãÅ =gŒ<ÒÏ7Æa”ð ¯ÏÔ¹`²YƒPÇ´=/åèÛ[“%[×Ul<Èäý–ЦËÈê— JîÎùû„N@èÎþBŸ5ù«ãDY€±öåë/޼èÎüÑúÁ›4üå †“á4É0pu¸Ÿíμ1ŽºC¬¥ð©‡Tn e ?¨åf=HÀj^nŽË”±—Çß÷T¶™ëoì1ÈÍÀð‘ѳ§–ÒOIêÿÊΖ£Áôˆ¯| ‹Ý­/ñVÙ­ìf¬m;ènèú"KvækËaÂD¿yNÓŸíðì~ðÞ¹…ª Ô×ø•)ÌLüô¡`õ2+:ÐèÈ¢®(%©Ù@ ¿'£GvqqYµjÕ•+Wù^C“PVåäæTð Kë_wóÊ3ß×ÊéªKR(]ú Q`‡¤—qÇ‹]º— €*,!õUõm¯¬bÈhQf´£~ÉŽ=†± ˜éõrÓET¹ywÓç‘ȯÐwóQVìÑsÄlñ^òÀ´=åVGn½äõ¬ó.Û&iH Ó4¢®¢®Mû0zšz9Eé-<¹wRûÚõey5£ ýÏŸø¦Òß—Þ—j}sØ¢;Ñjë÷¥•G‘Ú™¿}¸Ù/>è¬1ô°8{#yúÎ!b¨/!ñ›@E&@ ñ ¨¨èïï/(™ÐEÿŒ¯e½îÔ=^áñ‰q¡·w‹Á€¦;Wœ«še½¨gÉ&†|?%<ùvpfe]}=‡,‹C^?¥Ë]¥Ü[WŸ¤|üTÖ’úú¸°æGãrëIËí'¼ÏN‰ ¸¼g]lMGíD”íØ—:Ù#9¿‘äkS2þÝX"h-¶ ¹§ªœ#Öë¯!}¤…êR<ÖoŽ`·o97Er¼£÷¬Ç.dóÈêdgªü”mã2vÏ9¥dc³ÇVíÜÜ-‰£·ÎT¤uÎô^“'˜q†·û½Q?½cokPOB â÷ýÞðGAWYbUº~Ü” ªŽ:I\å/ý~ܨg ſߞ‚•§Hêï÷¼7;½Äì@bý/ª>­Ç¿G¹‡ûÏóÍåý‚±ñ[v ’/:wÛe`ä”Ãý=ºYôþÖöwR¾i…ß¼WþÖÝü× Íß’Ðü{C@ ÄoMëß¶¬Ï¢*-ºŽ±níѪ;nʆn…,æëtÓ”Ì0±{ËF÷ÓÔøé­,Jm*åc¥ÝoÈ`­)‹­‚ã™Õw–ªÑ@hÈŽGØëCºÍ ·ÅF¸1™‰[5„„4–_,bÅÅŸY½hŒ–®þË]»-ú !çðChÀŠã>¦õbüYÊ•á', Œ¶žJúžÉ,ªì²[̲˺­vJ‘˜z5ó™.ßž—:òªòÊ ^Ù§ ”˜@Ý¡½Ñû[wØÿ` !@ ¿#_þÞ°Šè´ÏLi¤UîòKáÕ[6õ¬ÎOLe½küdå×6/‰Ç²ÓÒ’Rã“RS‹ñÒìüŠ6öN *̹À´ín?M{ÈÆË>/˜¡g9ŸÖò.E1-›÷,&Æ 9;L¤¥Mañ¹çëY€­ÉòɺãÆ/Y2sDÓëòDzê.˜¨=zèà1ã—\|ÂÄ"wk‹ÐU–E³˜ {gO«3cÁÆGL&ægÚö^©¢C^1‹olZª;ôï¡ZS欚¤Üo£téÎÄžÛ:CwÊ̕ן3±pký®”65lj…Œ¡µoy¢×Q'(âC1ËÚZL¦­m¸ër–亪 ("2êj}zK1€!Õ[­Oõ>ýÕU¶mÿÖ /%H‰òô.Š}Õûô:Ëõî£Û“ZïÊK•Ÿq±‚xlpcÜ ©¯yËŠ~0]šJj(aƒ×ÖÐ$Dè@íÚ{À_ªT ]B”R™_„mWPõâìÑ­gßbßHC†­Ú°a¶Þ”é&®AqØëã³d©mĆàSŒyÁ®$é lš¬g,³êñÁMÓÇΘc|`ÍÀö˜ˆ$¢Èz¥ „ûÛ=Kج. ™jò" ÷ùÇ·â™å !`ô·¼±îŸ_1uºîÝÑ:3§ÓhèD£—TÃÎÆ†@§D|Ò¥(,ÐbòpC§p&°qÆèÙW_1³ #WƒÄˤ pá𜉅ŸÞ5{ìø1c—Ù<ÀX¾zÒ;moä,ôš0}ž¾ÎÔy–þqÌêÛF}èß¡› ÷³LdE¸jüòGrâåfCµ«ë!@ ÿEï)@Ô$¶†,ÒW tQ2h@ÃÄžW•›˜]Ý´fE\ECc&,­(ZS\/£3s‚|„Ï2©  ”ÚÔ¨‚¦7% 8äç2;|ö¡„†m j˜‡ziú¢”ÆJç+†9ëtL¯}0£I*«O]=ßPSIŠŠUó@ZÇPE(ª)G–ò(¼ 2´P5Ëmþ¢^^v,Ò÷Xצœu6ØÃ{ÿõ-qJdŒµÃÉÖS—u³kNÞ‰³;·©7Ì9á<§é ÔžUš×÷'ÔÖ•¤gTw+ã§,+#3¥î'Yƒ¬”@Y„@å[U˜VôÚ¢Ú/…àŸüwÏ ô>·þ†ái&1ÀÖÕ\ÖoÝXÿRÄôH %0lØÒйJ]dGÚ<8Ñ=‹Þó¥eŠ· é›ÜòÍú¼ôqùv’çâäTÁÌŠK6·‚7¿û[`…#ËâtÒË‚ÃF`wè\`gŽÚp.ÛGö‘˜:«·Ú¹[›(8¢Hze4&¨ºúì€W•u5e®«]zvt<#Árü– ƒž%áÏ3›Q›~Ë' äó*G/‰†í ¶:…ÜVeiѯ_râëVȲ^½z^õjûBMÕ.Ôô$jx™,iHwÀ~µðmƒñ‡^ÕHŠš€i·ÿÇß8È*lä}ˆÿÐ*€Èð"µ÷W–,é}ë0‹1îwóhngîDˆ¡¤¤„Œ€@ ñP˜™Øv>‹¡¶x—¥bžýÚ¸êæcU¹ñï’+ù\Œå²X e$&„¿­±ËDùÛžK²KA²¯–,-"‡ yÍÁPœSÁv’×Õ¨UÖ—wkÛUŽP¨"b’"­Ö1ÑdÆ-[fH}åt-úcãÃ;· .¾¦-3P¼q#ÿ‹yy}ÇÔ˪ö3櫤²@\ûpºç`3*…B* êSoXõ»Í•W*Dm žÌªÍx™ SG¨E§±@¸ç˜ñr•SGªaá[ôæ¦é¿U]ã=ÇèäÓR .ãe1]öÌ‚…Öokøm¤JÔ×°ATJ⳯ÿ¿›5ÚC«RmÉâ«|SfˆÕt‘§AU‹á‰r¿ +{=:™a#²kSåé¿vFU´ÃP|]ÉÉ—W?Oÿ™žÞ¦‹Ñ-c]öö®«z÷®˜Óž ù7ÿÿаˆ¨êÈI‘9udRIdÑ;åeRW êÜN65="&ëÌPŽéðÖi|#ФW’¥ ˜¾¡e¦ŽîR´½S5…޾rû·P©üî±´ölÌ?zjØÉØè@_æ72‡¬- Ö>5H¼,ð”` ÙÉŸ`úàrôW_n‹öÿô”omQ-ð8< Ò(”ïÐÍ* J@|@?iú«nœ‚@ @ü—i•Ab—ædÖu‹ŽÃX¯Òœ\S{¬g¿™¶É­VhÛ²˜XÓ§ìò˜.œòÂø_nÑq‹‰%<:ªé9_oŒg!ðü›¦½ŒF8=.g11VL𣦗±Á­O87ÿÖ„z ßMô ŠÀXL,Áݨþí£¸’æ'tšôå+L6šÍ%Ý¢"»_uð¼32–A¡/tøî~Z_Š Pºu˜e°–C`)‹‰±˜]u«’âÓ±v}ÍWMf´í%Ÿ÷‰LŒÅÄÒžûÏ):eaá”ÅÀs½¥ÆÙ m¿YÈbb¬ðWV´=z#ÇßøÀ#Õ°yîTûþÁбZr‹l_¾Î>©'KÅónšvÕ¶)0rz÷†‰±˜XÊó·.+µüÎ“à¸Æì~w—h&ÆbVD]?=¶+õ»Y££´%‹¿ò¢G M]*Ìý*Y̪o½ÆíÚ >Ùf–Å#íýgÔnŽ]x-½1,Ú4”€°I {ßcœÂÍíGSÙu‰g—Þé>µG~«¶= ¤³òÏŒÔd‡Åæ r ÃXL,åiÈzÎ6Ý‘|>ðÈ*ü?”ï¸+w‡Î6ž{ÃDJ÷H­¹ûû&Æb:idÅÆ²0¼jò(²^I–ï‰÷ºú±ÏÈ7ÛÞýí³Á8qH¿¼Ú·¡›Àè açüõ­û2™$^&9%XC.ëâå…~Ü‚ªXL,ùIð¶Nÿ_ô~ËhsŒê¨ ;ÕÍ÷áÎÄq›ƒôóYLŒÅ,tÔÈ|—^ƒ·¯ë!~]8…ÁsôÇŽÕ›½îÔÓNg¯ÿVÇdt«ßyÜh2[ìØ±&ÞyܶŽ+¹¿K{;nŸ?SîϲsÇãªC!ëÇ~†yPÙ—_Tð o¯˜`ì•×Ù‘·>Ùa΄Õ_ŸáG\8v…Y‰©UضIÓ¬g—UUW×ñÚ¼þ·Ç:!W}Ú @üÉ ÷"AD®_Yѯ§q8ûcVfA-L„@ :†XÿKW¥gÀ(Òz›v z¹sˆEÐGô‰èÔÄóÿx¿áO€Í:¿ôŸPë×ר3€“ínf|Ô%ï ý…;x=åo+ãZŸì°xmÜb¯+F=èdÇÙßHîïÒÞÎÿÓä²’;+·ƒT¿Ø<}7ïà#§qÍ¿¥Ñ.ÿõŠ+bô2X2œuýõt«K{Ð8Â.?w7¦ Ž.7tŽ¥µÅEàE~k{ö5‘u?è]¨NÙ~b§¡"óÞÍÄØ5¯µ¨»ï]˜&C…êˆMÓvÇÐoûK³äÀñ"¿5óN¤¶º^|Ò™»û´D\ôÀ^nŸsXr»y—»ï½+Å» ßxþÄ+-­1)iqz§Æ±¾õÑ'̬ß/¹rf‘ 8y¾Wx*íw·#–Ññ~ŠW&ø:žñ I)åŠ)›aam®/ ¸ž!À>Âí&Ð>í†@ ~^G<áó~CÄ{¢PW”’”Ì|÷Õ')%³Dg¨I¹êâ{+4:"&ÊÏë¸Á-…µ(™…øÀýùIFGG8dÇŒéÛžRGê*”¼ŒúÀéèõßêø÷nןÚ^DçâùgÉåTä°R¿€•]Æéès,^úxÃ|Û&×BÃßxlÓüô©A$Qf5}]ÔØÃ7Ÿ„‡‡?»u`Àm3÷솓<Œû×ç;OŸ{-~t›g6½Ì¼Ãß^š/ÃÐ:~iš @B×1,<Äs¥ÊgIªÜ,—ððgÞæ½}·Ý~¸OKTàõ¤ú·<¹`àzçû¡ááa4•åäÜ´˜7oÝõlN'íO•¹óöݵù[§¯´?³vÆÆÌ·ïîÓÚñ~ZŸrfÁŒ£õ&çï? ìã¸A_ž.Øï‚ì#ภû´e7ñ;AG&@ ø†PÅe»V\+3ùøÃɵoVƒ„¬8­£×S©ßæø÷nWGåþ.íEt.ž’\^ñSÛÒ¿8ªºÎËm™J‡&<Ü’ŒO„âDå†wõŠª Qbäp>%e³¥uäß2K•6<÷ÄZW¥n4ŠØ5ìïÿm°@}šfy݆WøzÕ£÷?7Âÿù?íO‘8w®ªŸ³/®¶rûPIj§Æ¢:'¹TrÐ__(ù­âM}Ø,r»!ˆßê…Lðƒ «,‹f1 »t¼(E\EkúÄÁ²¿åó™`å)’úÿú•'xï(üGyú{¶KrâeŒå»¡'ý³Æh]nòfÇ×ÑÑ‹YÉ Œ§mßµõâ†to9<ãñËÜêz6›ó-÷¾êœ>DZv÷S€:ÖÓ)Û?Y> °ª¶™ºìbr-Ñá~ ©ñÖ=žlZ{: !çCAú+_gŸôzèD¼uÈ>´ø5g›ÍûgQ•]cÙ Û­:F(jM\²ÇhèG·5úGbÊqš’ù=ÿ“¼“wFW5–ä–ådçׂҢk,;†íò½A5bJšÛ­—i§ŸºÈ+ƒ+4dǽ—‹ã&µ‰hx[˜Ø·—F\[4ì4«„4–;EÚŽ( p>t3¶€¡ð×(-üΩóm½„þ·ÎgE†X•®7%¨ªƒE…ÿÞ÷ðù”§zŽÅþ~c-™ò4‰žõâ¤$bßñ;,ªÂ<·Ìc]ޝ²yP)¦4`Âö=K†ÄÛýe|+û»ýîéûµKrâåBçn» Œœr~› ¡ÛcoÐ.šÒ?îw':p„a›÷™ ?¨ev§ÉËÂÃlüÂg„Œ?ôªöË|ê?‘ÏúÂòtåÅá¡»*:3R}u{‘øÛ)èò’|õ'Y4 £6=žÌžhó´‚øáÝá[Ž¢í̻νþ̳¥‡ÙóÊÏr8‡Sݵ®ÎžmÔ;]gJ‘vŠ¨Úª“çjåÝôzôäMfvaNbfI=ñd‘ªÑqYк›\ò8¢ñÆÑîú+vïù˵å_[úÝ? @ ñ Û?«Šè´ÏLi¤UîòKáÕ[¾>­ÎOLe½küdå×6Å€e§¥%$¥Æ'¥¦ã¥Ùùx[)†9˜¶Ýí§iÙxÙç3"4ðìÑ#­“YbZ6ïYLŒrv˜H«çf…Åçžc¬g¶&Ë'댿dÉÌM¯¢é©»`¢ö衃nj_rñ ‹Ü­-Ú8÷ˆf1öΞ6VgÆ‚˜LÌÏT£Í=ÿD‡:½bߨ´TwèßCµ ¦ÌY5I¹a]*¥ëHÇp&öìØÖºSf®¼þœ‰…[ëw¥´©aS+d ­}˽Œj°fà®ÜdA“Ï6­Ñv»:á¶Cì IDAT¨<µç’SNÚÉ+§ü›7÷УòÍÓmãGí½¾°;­)Õd„&¡Ò§Oõ>ýû(K1ZB”ÿ)’^ÙVv<÷ãœò­-O:ÐKª”…oÂÇ&ǽ|ìô§ 1(ÿ‡H•ïÄ@DRªM†­Ú°a¶Þ”é&®AqØëã³>ûâ¸êÅÙ£[Ͼž¸¿FÚ-¾#ºùÒæá"`•jWƒƒØ;óÞBtÅ·ßĽÝ1D‚äÝ*;Ù/öÖµªÑ¡¦–[lœý·X}óâŽo*‹LNÊZ|ôôˆ´ óONÝ|xz•ýϬþè‘@ â?‹à¸DMABhkÈ2 ½ñõõ]T† Ðð€Î«ÊMÌ®nZà"®¢¡1–V­)®—Ñ™9A>Âç™T JmjTóÛW…òs™¾NûPBÃZ®æ¡^‡¾(¥±ÒùŠaÎ:ÓkE_'Ìh’ÊêSWÏ7ÔT’¢bEÕ<Ö1TŠjÊ‘åG…< ¯ˆ -TÍr›¿¨——‹t™mmÊY‡`Ãf—Oiß¿ÿÐÓÇïjzC{ÅõÚ¯¢ùŽ7<] O£íƒ=¼÷?Qß§D¦!ÀXû0Œ‘l=uY7»æäØ8»s›zÀœÎsšJíY¥y}Bm]IzFu·2pʲ22Sê~’5ÈJ ”ET¸U…iU@¯-újA þɧñ¬@ïsëožfl]ÍeýÖõ/ÅALÄPæÎ/^;@e´Ë, ÁEÔ ŽCÁ!Jâ匑mÅaGGáèËwNCÕò>pï5sÅ–¼Aôa“WLÓÈ{àžÜùU‹äÊwf \ŠCÒ®†¿ã\œœ‚ª 0˜YâqÉæVðæh¬¹¿¿ôqáÓ,|ÿ·Ð+¾{틯i×+¸^¼wŠ”«ÑãÀ¨“´÷vÓGÍoŒ ºàîð©ëØ¥„’,ÍŒ¯~Àë1Ïçl4˜PN|cY¥$½’×)YRÊÝËüX™÷j÷¦'xI»W)”у@ Ä߯3Ôï²TÌs>WÝ|¬*7¾éµwñ-É,ÀrY¬„Ä„çA>;6‹–6Ø2QžÜ’ìRì«Õ´a C^s°çTp€äu5JxüåÝÚÝW(QE$Ä$EZiC“g²ñÙH…–EÜ‚¸øè·Ì€Ï U»è;¦zÌÏÞ7_eðp‰ãm ª˜¨ãá@¡R(¤² >õ†U? -qí¥KÜy¯©’uת7 6ãe&È4PiÜEP¸ç˜ñr•SGªaá[ôd ½‡ºEU?Þ1Qº¡½u/3(p\0FBCK¼éÓ§enLÔ×°ATJâ3õ¾›5ÚC«RmÉâ«|Ó´…Õt‘ù|‡G¢Üoà ÜøÑÉÙ+Ï]ÙTyZogTe» %È•h>f¸¸Æ0ùÅ#7î[IR!‰yÛVãÛµ«6="ätf¨ ÞdF`“ù§˜~|Øð³I»„4×^ˆ¼ëñù'`}_2åÙ)ƒrÅõ6êIã•r*xòzÆ“E ïø¿ïìoËHœÒŽ8ì?Ò)mGΩã|>“hHâ/ZO£ MKWM·´uw·Þ´Téï­¬i‡¼—(uv›42å;7 .EÒ®/QÕ5#’"sÚlµÌík}ÁÈñÔßbÐ~Wò/El¸‰{tÑð½·ø?º ßpG%éxEÚÛ<è¿|¬|ƒ%h¢]D ¾ãß^V;zee¥ú?ͳvL7¼ª¸ Š'5Ì`˜zŒC @ù,viNfíP·è8Œõ*ýÁÉ5µÇzö›i›Üjc mû¦݂1³ìò˜.œòÂø_nÑq‹‰%<:ªé9_oŒg!ðü›¦½ŒF8=.g11VL𣦗±Á­O87ÿÖ„z ßMô ŠÀXL,Áݨþí£¸’æMPhÒC–¯0Ùh6s”t‹ŠXì~ÕÁóÎÈX…¾hÐáS¸ûi})*@UèÖa–ÁZ¥,&Æb~tÕ­JŠOÇÚµC_Y4™Ñ¶—|Þ'21K{î?§è”……SÏõ6–g/´ýf!‹‰±Â_YÑöèãTÃæ™Jíû+ÆjÉm,²}ù:û¤ž,Ï»iÚUÛ¦ÀÈéÝ&Æbb)Ïߺ¬Ô2ec'8®1»ßÝ%š‰±˜Q×OíJýnÖè(mÉâ¯|ã̹èÑBS— s¿J³*ÆÛA¯1½ õÉ6³,iï?£vsìÂkéaѦ¡ø»²õ4{k?lÂ…>çž>7SaV(ؼm«ñíÚ…çÞ0‘Ò=Rkîþ>…‰±˜…NY±±, ow“¿äLJ ?k´«>öÀ$ñVy¢†ªÍÛRåëíŽ0›z1ÅÄX¡þScf˜a“ÜéýøÈœÒf½çæGLŒÅÄnÍT þRNi;¢ðO¯óâl ¬b1+£½Æu#mHüÅËñ4¼-coÆbb¬×y> 6ÏÔ¿VÀí¤¡È”ïÜ@$¸Yâ5Ùa±yƒÃ0Ky²ž³MwäŸíôJÍ›S ÝÙ&vë‰wÀs_–¢ˆk[ûºÚËNWg’+åÆ:E=§žçž¥Ö…BÖêOÔYÿtüÙì4&ÆzÅÜ»'è…UYm÷ÊŽÉJr®»-rÒñ×/î¾ º`?:íßMè1@ â?KË~ðÈÿí@‘ë×GVôë)%Îþ˜•YPK !PØ´aµÉË­þ1^®i2Çæî'9å×4ÔOmú» ¯â,úmyYù½KýH ¿¯,€‚ pœÀy€s ü¬çáo¿<§0øÜA§{ %„ôÀYömœ¨Äñ‚—ÙañúL+¿3ºßD ^áíUËîMò¸º´ý[]ÏÉt56uËou¤ë´s·v¢ü‰Å<—a.ž«ûü°¡LcþOÐ@ü´ÞžŽÌ êŠR’Š(lþoê3»š?v5GNùµ õS›žl­§eýcJýH }Yí€Í:¿ôŸP뾡ê àd»›-Yœ|É{Ca4¶!$q‡»û‡µ~^}ÂÌúý’+g©0€“ç»q…§Ò~wë‘å&Æ®y°{êX€»ï]˜&Cà|»|üÜݘ‚:ºÜÐ9–Ö€ù­YìÙ×tDÖý wE :eû‰†ŠtÀK£]þ=êWÄèe°dx«u«|ë!¹ž¤a F®^íúY6§0èÜ à7ÙåšTß ÆV[ç ^ëºÿ°g\‘pC£á©×b¦µÊ£ñ°ÒÒ“’§wRr>ãÔ¤Ý9qäjpzÁèÚkÄbÛÆ o.`7ñǃòY@ ÜÑ‘Ÿdtt„CvÌ8Ã[a•®Â•ð¨ëú«¢©ñ«Ã©Èyÿ¡öóÕ¾Tù^=¥HÞ­K`Á› ƒ›þ'·ð²÷Æþ’#wÞ¾ûÆaÅô•:3è¡}Þ¾;R’ ÐÍÌ;ÜìëõYDEØö…§Nݸi!xiІÅf¹.n¦*Àømp6Ýx󵋷yös7S©z¼a¾ƒÂÉ[¡Žâ@T½´žÇ!­Ç¸KßëÉ!>zÿcàÝøEc·ëkÔc EÃͧ 77ü§âÙ†y+Š/\7W«Ú¸ÀAþ„ïsGq€êè}ó?“Ëɹiar'¯™\þrçàêÎlu*4÷ .×z/AöGã6ñ€ŠLðƒhx#{ a—Ž¥ˆ«hMŸ8X–ö;¶[°òIýýʼ÷ ü³¾öþží’œxcùnèIÿìñ#ÚE—›¼Ùñut4ÆbV2#Ïk ·ãÔŸN+ËS•]oÞ±S#ÕOTþ‡Ž¢mæ´ü™Øý…*­ÅuÑñ`2·jt,¸:Wªsü©²:øT$.Û°âZ™ÉÇúŸš*[_\ ²â4@ ¿:¼â§¶ÿ¬ú‚¬‘ooH7p oâÎÆÆÅ˜‰sçªfÞñMQœ5¿ñ=B‚à|JÊfK«É5¦a¨Ò†çž\oJ¦Ðº*u£P„ÄÀ®aÀ-ÉøD(V ˆª iüM³ z]߯OÁèJpS»|HSN5q‡gè-µ–UÁÆhŒÿ±wæñPnofÆØKö‹D–ÐæRQ²Ei/7©$EÛ´ë¦(ÝJ{(í)*Ùê¶%¥d´ ¼…l/²S"Ûk™aæ÷¢2¯åWÝ{»çû™?xß9çyÎsžsæœç=ï94Ns]3Z*sÞ±¥Gȶ½È/«.õÙ.}èò žr&ׇ‹\îðv¾{ÿÀ0<âê ×eS Lo—¶ô`ñ“ÓÙ=·Mfnì0ÒÔ7œ¶n_޽r×¾‘5MÖ> #n[OPSÙþ*'@íH⤫6z”Ö´…N1)XýÍÅÊ<À;úâå>ýOÇ Žóë¿òª.9W'§œXµ`¢–¾ñ4GçíÃÐIEÝ«aw8dÏ EúÏ¥<§–qÄÑÔjó±ôæïêâÒó®ø-7£ÚZãf-Þö8 û0_áûMN~P¹þ%ü0kÐd—û'¯/¹[Í´Øtÿ5Vuu^—ZæÓvö¿¹¨b­‘ŽªÖ@­izŽW;4"¹õŸ‚]b-¤ª%b|0ååH{ò)öáú¦…:Úæ¹•H$¹O¡ü³:¢ï2§ª+®æ´~|_ÓuU÷tíÚHQû»†÷å—®©H›E@yÕ©{•O/žv´øM_K[Yœò}d‘Üê§,™¥—”Æ{l›9Îxª•÷µ“!Nßþ'CÌÄy•cǶ+‰yy/\¶=°s6“è,±Þ^Zd`°à|î«#úzë´øåä"¹ÿE¹4 _ÆWø[Ë“?öh©-ÌÎêϯlæ4á—–MÛúÞ1,..Ò©Þuºõ¹ŒOÛOÒņJ²sï=+ªof2YlàU±q5¯õ´sò‹Ï..ÉK ñp;“ÆýÐ[^å«Ç–^<SÎâ0‹#=/浕Œ[>ܾßÏg!å±RåQ=É{ÿ¡ª¦™ Àa5Ô¶ VW,BgæÝÞãþ’ÅiÓs‘½n©·óiF^YÁSŸ?}ó[þøzŒÈE.7=šñà“IuRZÓ,—.1“i-+ªmí»ýÄÏDç~ðTÙWqw¦­Îòë9@5 }zTñœåX¯œfš¬ýíð£5›d–Ä~¾]kgªµ2ÃM]ïžõz³ö–Çؼ£ÿ¸ýlaòT×ø†ŽxÖ“óã®.ÐöÈdî“{D|ÿŒùûñîû@A-×ô Iøè»p†crGD“^x"ä’;Îß÷Úó¼²Fº¤¬pndxR ø‡èÏÆ*©h ŠXºcÛ¡Ó À#oýô¡“À•ÝÛb+¨Òc\쌊¼~µ¸Œ“÷¾šÞü¬òýÖŸŒÍ®£ŠÈ( mMºr¿„ @Ññº{neKôÎcaé5'Gs꙳öÇÖpH4lS£j­á´^3ç³!‹Y'VØï~^àiºßò³gÞvñ {Y'1i¥óΉo7˜­ö)n¥ð‹+ËIi9žñÓnk{>µZkJŠÊÙ?Ò䩸É"Qžg€Œ’´]zÆ5¿åk §E×}ò(©YgpO…³óænKm^•ÕI‘+ 7N›^Åán(înC•žç—wˆj?qé•÷lª”¹ïÛ#['Y.n%±<‰yIR}órÑ$L/G[y×õDt.]qòbûUZ%ΦVÞ…-d-…l´÷݆«5 ÇrõQyb}-cwó C7Ñ#þ»ù/™l¬<õèOžÓ‚ÊÙ_û!»ù]QÉGVw.úéI«ìÉûŒûq•Ò£åyä2bk>¯/r ¹:,ĺJ]^9ñÀËj6ßû«ÏW,0ù#²ºŸ{Ò“+ߎˆ$Uý¡"v}ïµ'x‹‚冋ÄXMuýÀîlïæÏaEû¾¨þÜ'„ …GMŒ0œ|øeSo;Xn©€*búgpèoÅN³.4™GîQ °x$¥žC%i‰©w[”['­('Ð\”rßcïQŸÔz6|sYï師ÑÚY”!‹/%;ׯ6Ý'ärà÷ÿ%{ÊWï["÷þÛï@ ˆ/afŸ¶^›µö†—ñßó` @ :èÝ~ðœ†ÒÔ ÐU• CNûb…ò£GjÐZWô¦ ¾c¤.$¯ª:’à“høÐ,®7ÛD*>¤œl: ­*MiÌJ(í˜xñiì õ™ËX£»/µ-öÕ€íSTÝ÷E*Õg.™®Ñ[vµâëIm œÊôUfÃeE©DE}+ˆé™Éó&d·o™X’ð0‚Qð4¶Lá­ŸÅÅwòi_cæI¯³½¶ŽéÞ¹s×?$Ô7§­¼BF{=WÒ®O2ÛŸØñQ=c®²)Y–LCÏ8‚žá2Ýzû§½ ÝOm æGΘw\ݱrøµÝ©M•9¹õƒ>²€õñmn^fÓßd ²T\eq¸*-ueÙuÀÓXñÕ´‘ý>|›Íœ¨ÀSkƒÌ<0ކÛE{‰Ð5áUl4"1W·icÄ™'/Ï@m¢Ï½³1­¤–ÏÌÕ¼¤õõË•7~÷Þߘ!Æs$5#®ÞpÕ™A]óå^äî›Þtîµ,dȵ\Ai%UIÞ/ö7Wæg–±”¹*Ï+6x)å57,Ã)•…-cJá×ÁéPÞÄݹ»(I-çêôä‡}äGV ‰åû§!I}5¶¾‹ÙsÑ"`¶Ý¦â‘<ÚSíf¨‡]Î ú}À"¹òý鈸§b‘”«íïdoïè:ˆŠÁj^9ïz#fc"ñ©½? ñé¦c÷&¿ØK×wDÜ•ÒЫ–{*vMÌÎi¢­îE%¥å»ÏoÑî<Ü›Ã{ƒÅ&¼é޶6¾åìŽÀúcóõ¦3Û£ŒßPVI«lí—,Q¹A@佫-~¾}Ã}ve)S±Š rhP‡@ ß NÝËã[öÞͨl>YÝ…[ƒ=tP0 @ü£àú:8]y¡³£Lñ™“ÉõŸ®Õ¥¤e`iXZFJg0 ˆ"O}“ú8:äu‡ÅL7M–¢AKeA ¦Õ±a ]jø(aøPXÃfz€oߤ ÛuÛßg¤Pù…òwц&n¸tý>[éÎ7†ZJ“S*AÍÚ´›+ϺbQ°ËB~Ôá†#×Gs=ö›ÓÊ •B!•ÍYANjªZBº‹¸™o|¾¿å4” 1÷YHê˜Ê·¿%Á7dâ$IÈL(l"Õ° Æ&# ³@M¿„ú{Ln? ¸)÷Y.JÏŸ(¬ª%ÔñQêœsš˜ *ü™zßͽúyëLÕ“¬n•0‰&€âŸïL©]gçŶ‰8:wÅ©Kj=Œ¶%ÔöÊPܪÞØO#¤ª-5ÿÊK›ö}H2$1oÏj|»r5æÄ瀤Þ,eî›Ìp-r÷!¦ï6ÝYƒ¤\¼Ã?ûôV@üçŸÈµÃøÉ”gfÞ.2Zo$Æ®-/¬i•2²™*Pv3<¿¿«ÍI*¥~Ø7~d¥ôìQlV àóî˜DC’ú¢ ±:{wYÕÊ™Žn—/»lX,;v3>c_à"Ùþn“F¦|ÿ:"î©HÊõ%ü ú¦’œô§…½r¶Flëï×Áêø±±‚Ðûªì>Eh”=#jCËÁcv¾Ûqָ핤9°k²_ƒú©ö7ðCs ÑÂùö²zÑ*û(++üA±ÐÄß'b×}(­kÕ6ÕF» Ä÷ƒ2`ÌÆó·0 ƃ࣫tÄÐ^‚âŸÏbVæ5jú%&øóœ°£« Q›í–ÑåHX]ϲŽÝ‚ ûxaâVuY9ûW¿ÄdLjÔ ‡û[Mô/kvIð2E›ÈqÞ÷ªqŒÀ“²°15½ñž ÐRrÃDÃÈ2mr@t=iθY®Ì~kMR)=:ð Ù8Fܘ-MýGUJÏÅ~wášÖæ¨:«M ð2DÚÛÔWk¡ÿÒQ[rW_'pŒÀ_‡ÌOÝ8ÛøjiK? E¦|ÿ:"î©ÈüÝP÷¢xäñ8LjÌײ¶è똄”÷²V^³¼Ì\zv»‘PjîËT!]—ð÷¾ŠîúzSüðÌ 52FÞCN=ÊÞ£=€BÖšÞxŒÐ[û`ÒÉ‚lŒÀŸcÀvc«¸úï#«çVÙ7YéÞcô·;Cœú7Ú¯õCü…‹Ùºö¶Z©ÿ„|þžúýžþÀÊ»h³Ì¯¤Ë‘§nlÍœêûó|´}üW)ý°Ÿ"2}¸úïß 'âç§wûÁ#@ €‰Ÿ^¼<ÖÌ÷z¬ X—m-Ì8¸N™ø7C6;qs篬|¿e66ÅÞ7]å`•Ç]8|êVRi¤¦¹£‹ƒ‰ HØf±·VU0ó1ÊfÉ/q"ß)/;qb…†…Ó€ß:vàÒ}¼†3@ÉÔn»“…º0••ï·Ôæb1lŸnÐ%Õ]þ\419Å0 žmµ­éÏoÃ.‘âÙVóý·Ú¸uîvZ{Иõ§ÌÿåCô©#Wb^T³h¢ÃLlœ6[hS]ºz¡ÿ°eãÞÞ‰N«…i[l3“áNCöÍ#|crj8tÅq Ýöب𑔷>~ÃŒíÉP“]n«Õ¼è.’ëÜóéÆž$ú“úv}zûžKñ%l9Ã%Sʯ†kž \¯N¯]½0Hß÷²­851k;3ò\€ƒ*/×|º-/™?”@Úêb›¬^ěʺ­wöÇwï÷O®àS2³“u5iÆßŃÛ-×JTU5€ ¨˜PoâÝéÃU.7¸ùCÚÑŠgý0KË[?}èTµÖpZt]_j…ä5VkIx”ú¡õ_WnîÊSïö¿=ðXd»çMó?T}Úàu¡a[ö«Ï»^Ôúôµcw2pò…²3ƒœM­¼ [þÍÌ{ÿÕ ößÜ¥|Ó ¿y«üW7s@˻ħïÅõôøþ1ëDëÚ³+õ¥/1Êר+ ¡6ñOUS˜_ÞøùÛëT~)Å!¢t®‡¥pê£×™E€Ü”MgÍGð§&n«¥‡ô± `~`WE¯[h[äã7„µ6\õb¶ÚôÚú¯«þn}ò©åÉ Ù»æm«Ùr#t§8n¶ø ;pk¿®¢m Ãöëõ8Üò_ÖÏþ¤¥:£tÄå3w6v^’1ÛèaÖþÍ£uóì>œ½f¯Ê­D˯ëÎ,Û ìŠ°ßnñW»l«@oJ=±Ù»ÌþzìLÉ/¢Ý–×TDXÿxƒUà·Ì.¾ë·¹åÃ5ÿîóiHêÞž‚Üô' œô¡~—I¾Þ=ÿÚ­Ý? Jæ ¯E¾¤vç^­Ý–—ÎÅÈá¼ \nØQ¯6~×V+s-/½ÛzW®^?ßKêÈõÇÇ…êwY|v6«0Øa©/›4ŠO=|7üØt‰æõ ,!„ÎúB þ9´~xà‚õ± IDAT¶|å,w‰ =®ƒ"læÍ`0.¥zí¾†7°Þ§0Å”%Ûç%T1³S÷¯µMª©<üt ÐùyyùéT 0›X­µE%M¢j m+R(Bòjâ¬Ò‚Z®bIòï<ƒ4ÇHwMݼ–ÑbÏGok˜lÆi®knóÑDdÑ(¼‚t`609À?ÚùîýÃðˆ«'\—M10q¼Ý~vK·åå¾'·|¸æß-l2{v«ÿ·©_vmaq“¨ª¼€÷—á¿t»îƒÃæôT}+/9i«K1ŒvBHCN\ê½¥2ç[z„lÛ[ü²êRŸ•‹>tyPO9“ëCæo}ð“oÝ.ÿ½xVuxJJ|\”÷.[Y§¢%çëU:×Ò×—¼ÉÂÓÚ?oK:€ÙÙ©éY)éYYØU%5=lìK•6?‹¹ýâ9Cwôú !O°øØ¨“œÎî<öHPË5ÇüáIí.¯äÒ¤žzLà"Ý–.™ªoj8iÑ¢Ùã:ŽËã¢?²îÍQ'-:w#žn×à‘·NıÔsgèÍš¿>ÈÐeª=¶ MïçØ‡  ‹õ5Çjj™N3_9E®­}QDtŽ30âѡͳô§Í^qí1F0\ŒE(=jØQ q3—ëÕoöŒo¿AÒÜ}¼ëæ0Y[W×ÌùÂC"ýâÊÁ4 ð‹«(+ ¥]t¨²’ºŠ’ºŠ‚LÛVÏ?Ð䩸É"Qžg€Ì0%uÍ9oEü5e@Wßšu®:4ªÝïxUV¿ÆÃfŠQI ÅÕmØ¥e 4a~ Š ÕøUA˜Já Ô–Tœž3¨{ròàæ“¯‰o¤! Ú+×­›k4mæÒ‹ÑÉÄËÃs$¨=ø÷[ýôyîUIÒúçØ4 SÿXݽ½fÌ2·Ù³zD¯~B¹{Y«äŸºûãäÔ*|@á¬,ÅO¥å×k9Žäººã¿sÚnúLýqúôfÏ4TmkD\½—TÃþú×JáŠÐ”ó D”ÃÔ1fÞ Œˆ\?kÂ\ßçØÛ=£ÉÕ ©eRàÚ çõ#Îs &M4°v #ðëë†ðôÛߨÈ;XP4™9ÏXoú<Çðd¬þ/+%€ïÐÌùÔßàñ~ãÛþ œ|á“¡zÕôßÖÛK‹ œÏíxŠM3q^%ÇØ±íJb^Þ‹—m$ìœÍ$¨Ü¾ßÃõ^ËýÆ×‘\$÷g–K“±ðe|…¿µ|¯ÞFáöûù?o­ÙöŽGÅÆÕ¼ÖÓÎÉ/>»¸$/5.ÄÃíLZɼÆÌÁŒä|èî›ââŒÈ£Û¯5˜ÚO—iÿY ‹ •dçÞ{VTßÌd²ØÀÛÇüû ‡ÕPÛ"0X]}°™w{ûKVgÁ4ãÁ'’ꤴ¦Y.]b&ÓZVTÛ¯¹Üòé[þäöì'½¨_ª´™ý”æ`Ïè¬âüÄË;¦µ¡¨"cÄK<Èmä´T>÷9ŸÆjŸp«G²ò~íýŒs )•*úëIÞûU5ÍlîõΫ¼È^·ÔÛù4#¯¬à©ÏŸ¾ù-ÿO»î£¿}­'7û|ïvøYéÜž*»à*îδÕY~ý#€Ocÿý€•©öJkŸ×Ódío‡e{LuyÑ6±o­+zSPß m©è;­]ï|br³Wn´Wxj7w[H9mô·Ÿ-LžjàßÐlç÷äü¸« ´= Ô¶Þzf“5gÂæ˜¶ìø4ö…úÌe¬ÑÝ—ÚÀ=¨¢º:äÕVbÞ²«_·~šÔ›-̆ˊR‰ŠzA)±²ƒ3-öf3¿xËCxâ±·~ª^3,Üqòf˧¶È=t¯éઌ;wîú‡„ÞË©o2>>6|’éþÄÆ¶™Þ(Ϙ+‹~WÙ”,Ë]Ã65F0è.Óm½r?ï¼¢#f~yrû»kKGìNmà»ëîãiŒL½hú{¬AšŠ«,àª|G¶r ±Î5_¼€C4ç\T zˆ¾™ÆÑp°}±FcKBmφêºÆºOŒýt ;òË[ž!iŽŽ™nÁá–ã/|ÐëO†ß\ï^DâåñðÊâÄß•7¦åša®wY¬~úïõû†ÝzI«L$¸­õEF*{¨Ù7Ÿtp=ÕqÒ¦š#GsWŽÜ•ÚtuÇ/WçÌž°åawYtï½\5ì§oôÔ¾¸Å³Þà"oõLëÔƒP‰=Š‹ðŒ|HyAŒº‰\kÈnqÓÇÈ+:b|”é¤}Ï¿¨eÞþZãÛ:I†_uzžù—”¦êÍRæKêóÖiÝzI«$¡»ûñʲã—Ei;§ç=øÜïÏ2Ùê[‡²z¡G÷ÞËUÃ~úFÚrw=óõ„{§I-s½Å]CfiÆ{˜9jœ$Ïó/ÔÿOKù†ÐsÕI+«¨4 å;4s€šÒJÒPãyÞÐÒ‡JA èq¤S÷òø–½w3*›OVwáÖ`ÌBü4t‰ 1« ó5ý“ üyNØÑÕ‡†¨ÍvËè² @׳ LjŽÏÇ °ªËÊÙ¿ú%&8F¤>H88ÜßÂh¢Y+°K‚—)ÚDŽó¾Wcž”}|x€©é÷l€–’&F–i“¢ã #R/[5¿ŽH®ü4B§‰^b·t½íìñb*/v+ŒšwBÜ1:öI›ï—=ŒE©u±›µc´¼¢ªpŒÀ±wõëÒSrˆ^=ÆîVM|‚Ûùü7cDöãpóŠcÞo[ØE6¢†ž¼[ƒËpŒÀÏh;Œt&•·’jø©Gi̳3Ð’\_áöìeÁQ# *»8x™ˆ®k©•wÚ+ŒÀ1"óñk»‘Ϙ©ÇWÛÞùÅ'#p¬&ᚇõ»Y£¯ô$«{åÛ#–Ë|jìCkq¬.)Ð˨}»6hÎpã¡»û„r°åÕœv·èÑP\Ü&;.°¡tðÖƒY̦7'ßüeúà’H¼±7r¥¿vi(ˆ{Q<òxcD惇kY[ôuLBÊ[É2ü?”ï{UroýslvQÐRQýö—ó31ÇʼUß¾x½YuÝ­G‘µJ²xOJ€ï;%W[-o•„¬³y3Z­8èlï6tãê½\4ì_}}ë¶L¦I-“Üâ®a ~n¾œe¨¶wtŽ÷c¶Œà°9œÿÏ{¿¥ôØGõÕ†ýjæÐZ~s²áÆhã3%8FàXÙqÕ¼—É9 ìÞ5=@ ßœÆ'Þü9gQŒÙxþöƒÁx|t•ŽÚûñÑù¾!²ÅÛø%Õ”$¾žÆ±™ïÞæ•6r‰DßT·[<ª.§ œ ˆ©mp¶ùlÛh‡èwètD@ï"@ zõ¾!â?6QhªÈL¯@v@ ߌ†L_ŸÌö¿“B#“ @ ˆoŠg!@ôVYÌ©½Þ·S+9b#æ¬Ûµ~²,:^øWÀ®ŒXc~ £ë¥á;.Fý»z“¼‹6ËüJº\™qêÆöÑüÀ©¾ï0ÏGÛÇ•ýŸ 7þ=ÄÏúa–þâp«>@’ÿÕX­%áQê‡ß{:Ü•§ 4Þí{á±ÈvOŸ7ÿùøŽµÜ—Óÿž â_ ?½xy¬™ïõX:° .Û.Z˜q>pÝÏuñS¿L½níÖøò:ñl«ùþ[íÜ:w;­Š=hÌúÓGæËÓ¹\çiÀo;pé>^àdj·ÝÉB]˜Jšw…¤­.8¨òöFyVYô©#Wb^T³h¢ÃLlœ6[hS€ýñÅÅÝûý“+ø”̬Æd]MšqÅwñàöi_+QUÕ‚¢bB½™v§W¹Üà4dß°û§¿†{dÀF¸ïvô¯'el -=±¤ƒç°ÎOPËñߤå]âÓ÷âzz|ÿ˜u¢uíÙ•úÒ— åkÔД øÑ°j óË?¦Qù¥‡ˆÒ¹æÆ!b6˜Åtü'iy!ðÓà-Õ¥#.Ÿ¹³ñËvÿåõ†¤ó¶Õl¹ºSŒ œ7[ü†¸µ_W˜<. ½ \nØþŒßµÕÊ\»ºŒÙF³ö|k­›g÷áì5{åúèõ󽤎\|\ >q—Åg¡³ ƒ–ú²És&×§{¹ÜcpM©'6{—Ù_)ÙõŒ¬š¸­–ÒÇ‚‚ø€]½n¡m‘ß2Ô"ˆ^óe\¾OI‰ÿø:>.ꤧièÓó âÓ  ¾äM^ûù¯ÙÙ©µ`pÖ¶jAIM3~ª´ùYÌM|ÿ Ýýx{Õõ‚Z®é!’ðÑwá ÇäŽ#×iÒ O„\2cÇùû^{žWÖH—”Î OªaÿýYÃX% T±Kwl["bbz ¡±}a”À•ÝÛb+¨Òc\쌊¼~µ¸Œ³HuÐô~äg•ï·þdlvUDFahkÒ•û%LŠˆŽ×Ýs+[¢w K§¨Ù89šSoÌœµ?¶†C®aG)Ä͜φ,fXa¿ûy €"¤é~ËÏžyÛÅ+ìeĤ•Î;'¾Ý`¶Ú§¸•Â/®,'5T”tÑ¡ÊJõÍÐZSRTÖÈþ‘Ö OÅM‰ò<d”¤èÒ3.ú­(ÿlÍUjÖÜSáì¼¹ÛR›€WeuRäÊÂÓæ†Wq¸Š»ÛP¥ÍϽúS|ÿ OÎu«K”imè–g³uy–<½wÚýál§”vg×FZï`‰¿|xºÝé_Ú¤{%3¢°”0o’#%¾ià@rRXDzZîWUÒ$L/G[y×õDt.]qòâ‹Å¹e@Ww¼ñr\Þ6ÿPÓJãÉ|‡7ö!@üW¡ I âC£øÔÃw§4¾Ú[ÂBèì(âÇÓúáÛr¯œ/®*¬ ð³–羉Ûú,à¤9FšÞóuvmQI“è…¶J!y5qÖó‚ÚV]ai>\êýú¬†äý 6¥™îv_>QA„—F§qšëšÙÐR™óŽ-=I¶í­@~Yu)ž·]ƒ`C—1–Ãÿ¡¹Üáí|÷þG<)âjàóa‹Ô¶ø{™Ë²ß§0Åô$Û³¦Š™ºo†ü@ôm$Æõ§¡4µ¤U%:ûßò£GjhÔЩ1ZA¸ËhMH^Uu¤º²ªŒ@Çfq½Ù&RäC9iUiJcnBiG…Ocß½'©®£?u”Ø>EU-!U“.‘Õg.™®Ñ3þçÿ{ñ1q‚‚Â:BE´r*ÓW¹†øûÝ;é`6°$õÌä;ûÞ’„‡Œ§woœXàø°AÃbbO?+™'½b*ÇØ^8¶móL ¾œ¾÷K˜BF{=WÒ®Oš±Íãn|TØEëiKÏÓæî'Ôƒ†žqD†÷ð ëA#ïzÞvCÐÐýÔ†¡À«f~äÌŇþ‡v‹]{ÇÊᜦʜܼ·YÀúø67/3'/3§ ¬‘ý£­A–Š«,îÊCK]YvN^V~Eã—BØï÷Ù<äxj­?Ÿ†ÛE{‰ÐuÖáUlRC‘¸´ª4¥1§Óٺ§¾óŒu¥ûŸâVV~€wÚ“kµ:ßaWÅ»°NÝyyíWŠº“EJ}ÒªqZR+˜c<§Ù¬#NrCõ«*… wïýb2wçñpÆÝÛWwÓE2„Æœ!‘áñIñÏž†…ÇáÐS†ñ³Áz{i‘Á‚󹬮SÅLœWÉ1vl»’˜—÷"ÀeÛ ;g3 jùüßrûyÉErf¹4 _ÆWø“³Zj ³³:Àó+›û|¦7UÚÌÁŒä|èî›ââŒÈ£Û¯5˜ÚO—ùÆqmŠòX©ò¨¿žä½ÿPUÓÌà°j[««¡3ónïqÉâð*/²×-õv>ÍÈ++xêó§o~ËÿS_ϹÈå¦'@3|2 ©NJkšåÒ%f2­eEµ­¼*6®æµžvN~ñÙÅ%y©q!ngÒš@ zמ®¼ÐÙQ¦Øó÷äúO×êŠRÒ2j»ù2Q„ã©9ð&•ñºyLüîM“¥þòWYP‡iIÐâ [€.5|”0|(¬a3=À7a¥Ë…íºÚ»ªÙ*¿°à@þ.Ñ5š¸¡µµõ¹÷ÕÄŽÃÝ[J“S*a†µ©LPPÉ]ðããY¦êÍRæKújc²>dØ5ÄÅ=Cøùà¶~¡›ët¿Ç6m+yÜ[Ü«|¾Ü~]Gr‘Üÿ‚Ü>¢Ägœ›Ñý=¡ Gî‡õò:ExìŽ0Fû?ƒwܘދ|º7™ÒŠ ¸$7vSDÿ`TTÇMóÑæ7ÄLÝ3iï––oý-fm–ìZ?ìÙ½>®r¹è |ª UÛÿž²5dʧЗæÆŒŽ×0Ë)2D??¢yçŸÌªÂ¼FM¿Ädžvtuã¡!j³Ý2ºlh¥ëY†cDÇçã…‰XÕeåì_ý“ #R$îoa4Ñ¿¬Ø%ÁËm"Çyß«Æ1OÊ>><ÀÆÔôÆ{6@KÉ  #Ë´ÉÑñŽ©—­š_G$W~z|@½ÄnézÛÙã»1B¼Ø­0jÞ qÇèØ'm:¼g\ö0¥ÔÅnÖvŒÑòŠªÂ1ÇÞ]Ô¯KOÉ!zfèVM|‚Ûùü7cDöãpóŠcÞo[ØE6¢†ž¼[ƒËpŒÀÏh;Œt&•·’jø)êИfg %¹¾ÂíÙË‚£FTvqð2]×R+ï´WcDæã×>v#;W 1S¯¶½ó‹O"FàXMÂ5êw³F_éIV÷ʷdz*",—ùÔØ‡ÖâX]R —Ñ ö[Í®s"twŸP6°¼šÓî=ªûªl)6R7˜÷ÊèJdl-ŽxR~˜‡›‰¯¤Ù©MŠ/OøDf´-‰ÊËL»¿ç\žÚæ]–’Ÿøê“ö_ÿ‚Ó ·!w°ÙÞSWÓ“_8FàÏ3½Ç†®˜:½=˜ÅÕPýªJvQÐRQýö—ó31ÇʼUß¾xlø"@ þApê^z­6Ÿl```0Ùæ<}k°‡±™@ü„P˜ÍM #:Ùâ¿íü’jJ_GfØÌwoóJ9ÈDøçgàp86°Ùv+°[8ì“þû¥~‘£?Ù@ â¿ÀËøûïËKWY;ñ™ÀiªÈL¯@v@ @ ñ‡ŠL€@ @ øâY? yëD‹2Ð÷¤!y­™“GIü+Ïÿæ®6êäÁ§³;ÏRÔrÍÇ1xR›¿3Mzá©Çþ(Òmé’©ú¦†“-š=®ã¸<þ!úó'ëNÐ5qÒ¢s÷1âév]€Ž…Q©;çÎ0Л5}†¡ËT{Œhz?Ç>mX¬¯9VSËtšùÊ)rmñ6ŠˆÎqF<:´y–þ´Ù+®=ƆKû±!¤v”BÜÌåzõ›€=ãÛoP„4÷Gcïº9LÖÖÕ5s¾ðH¿¸r0 (üâ*ÊJCEé@ª¬¤®¢¤®¢ Ó¶mû´y*n²H”ç 3LEI]sÎÅ[Méºf*5ë\ uhT»ßñª¬~'†Í£’Š»ÛP¥ÍϽúSÖk†Î‡S~ÑO£¢nÞåº÷%ÑeZº¥ÅyÁº¹ ¼šìO»îôwvm¤ÕŽæ3ñ—º[ˆÔ½‹’QXJˆ‚äÈG‰Ï’“ÂBÎo?‹Õpz0Tÿª’&aêÿ«»·wÃLƒYæ6{Vø,°Æ%Cººã¿sÚnúLýqúôfÏ4Tè9Cø¹à¼ \nÚ±VÈ.>ö×#FìÕßrÛòé¥;Ì›·æZÏŠóÞvÝgÒÃ¥FF‹ÂôÎ\wù•¹@ ˆo÷†8 ¥© «*A‡œöõ3äGÔh ´Ö½)¨omÿ®¼ªêH‚OLF áC³¸Þl©ør2©ÒªÒ”Ƭ„ÒŽŸÆ¾PŸ¹Œ5ºûR Û§¨ºï‹Tª+Î\2+\£·ìjÅ×3Ú@9•é«,̆ˊR‰ŠúVÓ3“çM舑•$<Œ`Ô<-Sxëg±@1À'†5fžôŠ1Ûk{á˜î;wýCB}sÚÊ+d´×s%íú$³ý‰õ Ñ3æJàîû*›’eÉ40ðŒ#è.Ó­ÓÉ IDAT¹ Þ ºŸÚ0Ìœ1ï¸(ºcåðk»S›*srë}dëãÛܼ̦¿Éd©¸ÊâpUZêʲ뀧±¢ñK!ì÷áÛlæDžZdæq4Ü.ÚK„®1¯bƒ ‰¡¸»´ª4¥1³Óٺ§¾óŒu¥û\ŸâÖ°ñþíÅɵצx`íÏ®ŠwaýGräeÊüS_$íN)õI«Æi­¢ ©N\ppÉâ5“Ä_žÙ¼àxbe+ª_UÉk¸{ïoÌã¹’š€Wo¸êÌ ^f97B"]u"Í@ ~2(ÒVT»Y4Î3HsŒt×g@ ÉûlJ3Ýí¾|¢‚/Nã4×5³¨<üt ?//?Jááãf‹ù>½€)¦'Ùž5UÌìÔ}³O?€ ïŠÞ7r€Â/)ÿ‹É‚`·|Ø@‘D ð ÒÙÀä@KeÎ;¶ô$Ù¶H¿¬ºÏÛÍ@W–æ  âo˧ãÎÐåAŒå½°$»"lÍüsŠ'BšüДrhþôå¶Á>óehÈÍ@üŸp,Ñ•:;ÊŸ9™Ü¹ŸB]QJZ––¥e¤t³€(ÂñÔ7©£CþXw(QÌtÓd)´TTÁÀaZÑ¥††…5,`¦ø&ðMº°]·ý}F •_Xp mhâ†K×ï³Õ‘îñ´”&§T‚šµ©Ì×ˉϺbQ°ËB~Ôá†#×G×r Ôµ²B¥PHe@sV“šª–îâÅn柯Åo9 åhÌ}–’:¦òí£H¾!'IBfBa©†m06I˜jú%Ôßûc²X[y›rŸår ôøü‰ÂªZB¥Ž §¹ ¢ÂŸ©÷ݬѺ¤êIV·ÊwŒs™DÀq¡ÏnrªC×Ùy±m"ŽÎ]qêÒ†Z£m µ½2T·UÉL¼ò‚ßäüv]Ñ/½®jw`=õÖÁd%uyˆ=wSÀæ¢ígïü¯±ÍØtëðLáÏ­Ô½ÛôD+Ç;¯ž+n|BÀþ\ðôARCõ«*sâs@Ro–r7“õ!ÃNÈ2D ˆÿ0VCm‹À`uõÁ"tfÞí=î/Y²ïóªØ¸š×zÚ9ùÅg—䥯…x¸IkŠA”VPTTTTTTø<˜Åi(ËÍú^TÓBšOwr•Ùë–z;Ÿfä•<õùÓ7¿ë«‚t±¡’ìÜ{ÏŠê›™LV/vêb½½´è‹•k\F™"êZÒ5NúÆfg3®ž‰®‘Ô!Š‚Y@ ¾]Ög1« ó§ú%&ûAsYfÂ_W QK¯î:¬Ñõ,û|?ÖqȪg¬ê²r¶©_b²4U¦¿ˆ9kaä›RË( ^¦X°ô˜÷½êáâthyŸþð¤éñçUlvÉ è1 ÖD3Rh­.zš\ùixE½Äné"ŠdRø‹;눻FùL_ák¨#'DyŠÿÎN±ëb7k;:xxEU©ˆòpšëJÓ9DkolЭ,šø×›ì&ªJòó}Öóc½ß¶@Q h¬Ñö=ÁeÆŠ¡>;6h‡‘ND)‹\ÃO£ÒÆü0;ƒ05»èg//†móÇãâàe"÷µìÿðN»¬­(ÐZ›ïg½Ö7­}•3õøj[awŸDL†ZªÒ/:981j¾“5úJO²ºW¾ÍÊìŠËe W†Ö«3/:Ùo~\Í€æ ×9¿Äœ>QYúÕœŽ½?z2T÷UÙRl¤®9ÏáJä!#%´Td2|=Hwj“âK—Õ‘ŸV¸î9·òõÖ]–7WÅt)c}Òþñë%ÒOõè6d“˜Áf;·ÛXL®0€ Ð\šwqÅÔcqÕRCõ«*ÙEAKEémÞy9²š$  ¥æí‹Hœ`÷¢¾úœ!@üTЕVÅ­èö–Є#÷Ã>¿DÑ?Õ‘ÒüpdÇêaÝCºð{P(˜‰n[ˆ¥¹ñccû·Ë)2$×G@{w£»ñ—|$çø<œóI;ÓÓMÛþ39tϤíO¥å[‹Y›%; #¬D•ž{!vîç(nù´µ·ë³€WÕ>„aß¡æª31«‹!øFP˜ÍM #:Ùâ¿íü’jJ_¯×c3ß½Í+mä !âïƒÀ‡Ãa›Ía·»…Ã>é¿_êÙ1úS}z´_ÝËã[öÞͨl>YÝ…[v,×Cˤ@üÛxÿ}yé*k' ñ s 8M™éÈ@ü„PŒÙxþöFd@ ? (ž…@ âg¦´´@ â'ƒŠLðƒà‘·Nı(³}OJ’ך9y”Ä¿òÅîÊSÿZ¸kÄÏµËø÷,×ÀÉüúº!•Çê‹Ðo¥ë»–#§ŸÏg@ Ä?€/×gÕá))ñqQÞ»leuœŠ–œg¬Wé||Z_ò& Okÿ¼-iütºQšž•’ž•õ]UPRÃî)Ä`~sûÅs†îèõBž`ñ±Q'8Ý9ˆÔrÍÇ1xR›¿ËXVzá©Çþ(Òmé’©ú¦†“-š=N¤½ üCôçOÖ 9jâ¤EçîcÄÓíºÏÒSwÎa 7kþú #B—©ö8«Ðô~Ž}Ú°X_s¬¦–é4ó•SäÚÆÝã Œxthó,ýi³W\{Œ ã¶I©†¥7s¹^ý&`Ïøö!ÍýÑØÇ»n“µuuÍœ/<$Ò/®L ¿¸Š²ÒPQ:ÐE‡*+©«(©«(È´mÛþ­AžŠ›,åyÈ SQRלsñVÄ_Sº.s JÍ:WƒGÕîw¼*«_ã‰a3Ũ¤†"sâmFF2–t7àˆ¥k ï¸3ehä–'1/Iªo^.š„©ÿ ¬îÞÞ 3 f™ÛìY=⋪á^dnÂè6\­Ñs¹ú¨X-XÙžúrrʳ|ß3Ÿ-ד“““›üžÍõû=ÀÌ8fµ‡³ãÔÙŽ£!ÑyÚʸ©!™%%%%Ù¡ó“ÖLuzÖÐÃsfáÍ-SÔåää5çºE–±€™yt¢‚ñ‰œŽHSmœÃða6á•L®ú0‹#Ûi cæí +l‚qêS/­2r°œœœâ¨I˼ӛºtóNíæ;¸èðô¸@ Ä?î/jpJS+@WU‚9í—ò£Gj´ Ð[ëŠÞÔw<_’WUIð‰É4|h×›m"RN&UZUšÒ˜•PÚ1òâÓØê3—±Fw_jÛ0®Û§¨ºï‹Tª+Î\2+\£·ìjÅ×ÃFÚ@9•é«,̆ˊR‰ŠúVÓ3“çM舑•$<Œ`Ô<-Sxëg±@1À'}ÂØ˜yÒ+Æl¯í…cºwîÜõ õÍi+¯Ñ^Ï•´ë“Ìö'6@|ÔƒDϘ+»ï«lJ–%ÓÀÀ3Ž g¸L·äþ)x'hè~jÃP0?r¦ã oݱrøµÝ©M•9¹õƒ>²€õñmn^fÓßd ²T\eq¸*-ueÙuÀÓXÑø¥öûðm6s¢O­ 2óÀ8ní%BׄW±AЈÄP\ݦgž¼<Ó6ÊOô™£w6¦¢•Ôòƒ¹š—´¾¾q¹òÆïÞû3Äxî¤&`ÄÕ®:3¨k¾Ü‹Ü}Óû‘ný–… ¹–‹"(­¤*ÉûE¤¤¹2?³Œ¥ÌUy^±Áƒ€H)¯)¸á`N©,lSÚ¿H‡ò&î~ÈÝEIj9W§'?ìk/ü+…ÄòýÓ¤¾[ßÅì¹h0ÛnSñHí©v3T‹Ã.gý>,•\ùþtDÜS±HÊÕöw²·wtDÅ`5¯œw½³1‘øÔÞŸ…øtS‚±{“_ì¥ë;¢FîJièUË=»&fç4Ñ‹V÷¢ŽÒòÝgŽ·h÷ ’æÐñ«Í;jKP”yÆãÙ=kØYU=©ÑgY¢rƒ€È{W[ü|û†ûìÊR¦bäÚ“-]ºTUUuß¾}ÇOKKÛµkׄ zp)ÊÀ1ËfK]¿y3{£ËH¾!óöÎkïM?Þ?fÊ»Ð8—‘Ã6Å—ljÂ\'ÌË<øúÆÔŸÓ»ÿ>é”MÁ׋U %»<†Ñ9ú<òäR“!.Œu Mب%H®7«¼lÔžèÌh|é¬7~·§wmÔ7¸Ü3ZvÜì‘“:½ö¡ÓšÇ†çŸÍç…îõç|Œ´ÑÝ!wíÉSWA`WÜ´˜09/2fƒ*+ÉmñŸ…. …‹~é&bM•0X¤±åP`ú–}Zü€@ ñ·Âõù:]y¡³£Lñ™“ÉõŸ®Õ¥¤e`iXZFJg0 ˆ"O}“ú8:äu‡ÅL7M–¢AKeA ¦Õ±a ]jø(aøPXÃfz€oߤ ÛuÛßg¤Pù…òwц&n¸tý>[éÎQ_KirJ%¨Y›Ê|½a€ññ¬+»,äGa8r}4×uõœV6P¨ ©,hÎ rRSÕÒ]¼øÀÍ|ãóµø-§¡<¹Ïò@RÇT¾ý- ¾!'IBfBa©†m06I˜jú%Ôßûc²X[y›rŸår ôøü‰ÂªZB¥Î¹1§¹ ¢ÂŸ©÷ݬѺ¤êIV·ÊwL[˜DÀq¡ÏnrªC×Ùy±m"ŽÎ]qêÒ†Z£m µ½2·ª€7öÇ©jKÍ¿òAÇÒFs µ‡ IÌ۳߮\9ñ9 ©7K™û‰k‘»1ýx·éÎ$åâþûÙ§·â?ÿD®ÆO¦<3ónt‘Ñz#1vmyaM«”‘ÍT²›áùMýìI*¥~Ø7~d¥ôìQlV àóî˜DC’ú¢ ±:{wYÕÊ™Žn—/»lX,;v3>c_à"Ùþn“F¦|ÿ:"î©HÊõ%ü ú¦’œô§…½r¶Flëï×Áêø±±‚Ðûªì>Eh”=#jCËÁcv¾ÛqÖ¸íµçæÀ?Üáúïâaëvܪd÷NÃ~ÈêE«ì£¬¬ðÅBŸ8ˆ]÷¡´®UTÛTû³·'L˜àã㓞ž~éÒ¥žƒYm‘¡ª’j$/ÊõO7Žbàr7«ª™ @£Ó8M5M$+®úúý¶!¯ZšZ:ƒº­e³4¬ò¶¾*)))))Iq)Yªav±°…<Â,£©(Dàü«,”g¾gÐV\9(yÖîHÚû˜Mk“f\:f<{ÌR,§YRC¦½1Q%çÝʉ۠JÔ9–šã;*-ØÛm•©ŠÜP‹+]CäVs ÐùéË{Ã@ ÜâY̪¼FM¿Ädžvtuã¡!j³Ý2ºlä ëYÖ±[0c/LÀª.+gÿê—˜Là‘ú áàp £‰þe­À. ^¦h9Îû^5ŽxRöñá6¦¦7Þ³ZJn˜hY¦MˆŽ'pŒH½lÕü:"¹òÓŽ&6z‰ÝÒõ¶³Ç‹uªH¼Ø­0jÞ qÇèØ'm:¼g\ö0¥ÔÅnÖvŒÑòŠªÂ1ÇÞ]Ô¯KOÉ!Z{cƒneÑÄ'¸Éƒ8Fd?7¯8æààý¶€]h#jèÉ»5¸ Çœñ܉¶ÃHgRPy+©†ŸÆ‚ùavZ’ë+Üž½,8j$Ae/Ñu-µòN{…8Fd>~íc×å!/3õøjÛ;¿ø$bŽÕ$\ó0¡~7kô•ždu¯|û̹"Âr™O}h-ŽÕ%zµ‡7¡9ÃuŽC„îîÊÁ–WsÚÝ¢GCu_•]âÄkOm“³J§<¶•§“fÈݼ=«ñíÊÅ. Z*ª Ñþr~&FàX™·êÛ/p‚Ýë"Éw›î¬AR®æ{¦u‰µ}\_7*ßôÆsÄ8û¸éçŠqŒÀcç'Í7Ë5ƒÙo­I*¥Gž!#0Lj³¥©ÿ¨JéÙ£Øïï.\ÀÚU‡cµ‰^†ƒH{’új-ô_:jKîêëñŽøËâù©g_-mé§¡È”ï_GÄ=™² â^<Gà‘ùàáZÖ}“ò^ÖJëc–—™KÏn7êCÍ}™Š"¤ëþÞWÑ]_oŠž´FÆÈ{È©GÙ{´Pzl‚c—Ï“¯ŠðJ¨û®²zÓ*û&+Ý{Œþ–§S¿|rëUôYÏ ÙnøBw™ððpÒ'2ÌYi/böZŽ_š0éäek9‡UWÍTüu´’oS敵ã™]VÒ¥ÔdÙÅäÕ657³Ø@þ}nð³¶™p»s*šØh=¹·öz†§¼}›å½ïf•Œž¶$yз%ßë÷ÝaiÙŸÏyæ<ŸyÎó>ŸÏÇŽóqÀ¹|<,r»Ò Õq¦“ˆe”””|#¾çWßó²Ü |*q£n¼¯Ç->=Óìà„«÷6éôE©1g§õ‚ÍwM’…ó³ |J ²>¾/Yîä+(0Ÿ@ ä[çÇÈgõMùû­˜; ”-ÖŸ<ì®'ÓM@~P:æ³D 9 @¾c¨šž÷ßyB;@ ù™€ù¬~³´šÓÃ;¾•«ÌmØÝ,J¢©ýb¡ÅM¹›QÎûîÚ-Xy’ŒÅÖÈgcÁó]ý¤½¿û²]2ÖGKî³Z*d¹àïÌýÑ.ÅÉ«7m_8a”,•Wû!óÁÙeœÉnvéG§ƒåqUÇ3hàèæó¬žôT_QynÏ;¢¾èÌ)C†@ ü”dµ}n_c…¬êxC/n`ꙚÛzøG”¢Èó†- YSTÝ®"Ø¿N´è:-LjÁäÖR1¾ ­±ºú¶ó|Ó‘ÚK 5D¢cׯaÏLÛ¶-’4Œ@,ºˆÒ.CÓÒ÷/w4Ñ7µ°]½n½ûHQèœÎÕ^²+Æêpê¥<¿†µ{µÕŸ=}›9 +Ï>¡—ý˜c ô §-üó^&ò)jÎ0JŸ ì§v}'ô›5(ª¿E¦`/N:0í¼o½@*ÏÌîàe1ƒu‘—æ—­bÑèú2ú¶Æ«Û2V—~*ð’']€EPz/ÕH’ú5ì!R~Á{ž‘¶Á„»/§bO­¾­Ž¨/ో«ø¼O«;æÎØW­º!ë¶ËèîüÒõ¬”àÛLb`ðË„q͇Á ŸÈ*ôö1kyJÈ"ºÔCY*.'n—$ÿigh1yAèÙ°_ØÉB ü´|¹f0MOO¾ºÅUÕÈ÷í¢#,OÍö5Ekßeå¡™-Çëwœ¶å{±¢—/3²óÒ³óòÊñÊ¢wÕ¸°ƒý!ÄoPÈTÆXÏ£1䤸° _¶o{$©¿©E0ôN˜A‡S)ÊóÜÃл7ü\M6µ2·œ?ºaëvyâCMçX3&èéšXÎ?| Á®gH€ˆšS*Šdlž9ÕÌxÚÏ8ÁbÓ…Žj$ôB#å缚êýª§oek¿lÒàæçnÒ£},»»Ógš©íô¥gï!k£Eó PÃÖVÈÛl¼P•å?¾å‰¦·=ùtÍÏÝÚ€Á°Ywô–}|Ù €$.¯©¡>B– ¨²#4ÔGiªÒ¦Ò¼Ôs?Zƒ¸” YÊ‹H«ŒÔT¥7ãøå¸&IwŒ ¥i‡«Ñøº-q'ª¹âšzÕNŽLh(¢°ìuNNòäZÔî¹›ÒE íT(Ä–'0/A©^oEÁ*ò)¾¹ÍËÎlš½³ÿŠ1_¸Fp“ û1lZCx»º©X–Ú¢_"¸+…Åa÷“qýç”Þ¶FÍÙ8Åi``ûÖéæ¼Fìw‡Û·ž”ݰlôÙ­œúŠüWµ?5¦O¯_äÖ%k•(‹/PyÀe—¾dNçK!øÇë:ψ>°êœM0Â×ö;Òìz%$™†6ÍŒ ð,@Mê±ƇËx„–Ï"м„þêåvŒßºmVcŒÅÌOê¬ûµæËÃv¬Wp“;¿õú3l{™f.°]$Ieuº¢è™’†ŠÂÜÒ& Ê‹Ê °ô÷ÕEÝç^'U¼áŽ+á€_†ÈPÁûzÁq(8D ¼üÊHXv·îG§X¾gø‹ÃûèÜ!júïbƒÉK¦Ò‹¯žÊÁz¼Á"±ò=鈗j"hWóç´c¡¡ l@|"R}çô‘Mפbm÷û£˜c4cmõŽH:qaC¼Î–ôº.u°‚KáÕ‰›me/¸Ÿò7¥0Ðn¼CKTˆÜ­¿Ú¢ºœ‹·ÏYd±!î.\ÞȪ¦F·eɰ‚5Å×{ÝÂ+J‡W6‚Á}ðdD’q0æ:â€_ûlÇ|ëƒ3"ήР6•&Ø}:ñyQUEväDg_m)rSa„‹óñb맘€öúM•'wþýV<¬²²HÊÊÑ„¬ûЈ\ø[’ÍÉ IšTÐTtÊuþ¼œ#Ñ£ÄÔ/«žÒZ IDATðû$)E›÷/jÈÙ;ï÷4áõ“ºy¾»õ‹É›zí3õjËÎsù½êìñùCðÞª¿%—嵡hÞ*;Ùõ9¾/ ~@ ß0ÿ_§jÌ[·Z¥8<,­ýÿFöÛôÌ$3ÉÌIoOf°·(š‘•q/!f­ÇÎT9+ok% àVU™‘ú -Ó¨J£u¥@ù›ê&Иu2EÌòèzFËûŒ$²¸”¤Œxm(òæ.ž®FÊ퓸%ié@ËÉJå¿S¤-öåv(Úâ ¦;NjŒ¹Žg‚Àm¿ù<È$¡,@CÞ9_-º>±páŽK…GjÐ˾#Dà¼zT¬ÔZÞ’jb©rSÞÔjØ Ë›©`­‘R{s­µ\s{ë_=zÅ%ûæ˜HÑõi­‡zûؘßP×$d¥>S¯Ï¬Ñ:”&«Så[‡-X=Òò´Ï.ò«b=–ìÅãþž¹ôÀ ¯š`æŸ)5]2” W²ÜLÆÑèJsN—ÍuÖ“! ©À¼ÂÕè½vqò“ó¢ñ4 Á;¯ lrç)¦þ›Î¬AÐ.ÑÑ¿zx9*ùóãÆª‘âDÊ7æ^KxKcz2åðš÷oªyJLçÉ¥—®Ö÷°g$pJâ°{ô§S„GÞTßÀçÝ1†þ¢ ]pèÚâÊev«ýNÚèµPõWtj@ô|Õž.ÛH¤|Ï:"Á¥Úõ%âÃL­ùÙßt)Ø8Èÿ~¿ìÛó«$èº+;/E¢éº±â½¸AŽã6ð¾wÈ¢ùUøí >ÚýÂïòW=6\®À»¦aduá®ì¦¬¼ë·‹i&¿› ÄÙå%lž¬•A¯R@’c?Q®ôVBa#T›5Á‘Wï°X¬¤Ø`³û«—Fu¸k4‹uûˆƒVí[ƒ"ì'Ñ{™-éMгi†{cë~ófsÏä·„…PCuîÊŽÃDìEˆÁÄCênßsU£V(ؼÂÕè½váoϹȚîà¸*ÌE0) ¥¿~úÅð.7ùKú?l:³A»žúO¢uÈ5Ã6½¨#T¾>+dŒ¡Ûý)‡‹QC“®Oy2ÃpÚ¦ŽÝW7µ&pŠÐ"C×Ä!Š`§+“¿)§(üãµy+£š|âÙ(R“µ×| aoCà/Þ›HÝ?^­¸Œ¡†>+Ž™“±fºÅ™n E¤|Ï:"Á¥ˆâ¯+ºÿ´Xgß} E°ÜÛwV5ýaj41æ}½R÷|ÏÜS.‡Ö3iÝðÜ—¥H4ÆÆëO45žæž[©Â zàîKi’ÐÛAò×ßf«UÆíMa÷©¬®Ü•Ý“•:Îô‡“v={pùy¡ /ÿòêë‡$nõ6V‘uiÛ§1†Ü}]݈@¡Rø ì‚ň¿OñÛ9+f…†°W„É4i€•sä'ïºv}Ï…†òZ ¥@£ª_à÷»YwÏw[ ¨Ì>Îb±X¬{'ÌâM÷{Æé5ýÙI>·rÊÌfšMr‹ýĵßÑÚýF9èfý@¾eH õ#Yh‹Ÿ;ĵÔ$þ;¤Ä?¼.(á𡉠0lº†˜ÆäE¾¿9/R{èb¿éòG:åÛ4ÔWmºv`BÔoiîZÞjúºTjØ·²øðŸÏçãÇù8à\>¹]iê8ÓI½¥ ·8ú·§‡mvQ­Ê½.<:OoË™ÀIФêäõóp¯“Sñ ®lYµç‘Èôð kuÄÿpå÷yGm<ô§¹²(YD”Jæ~4½>áìrwŽ8+4¥ÕTtf¹Ëié¥Þ¦äÇa—-8yÂU]D`ýŸ ÎùPø¶ªîÕÙ?·çØlÿËvMiøPY*WÀ÷›ºy¾{õ“?&î?þjÄx½J’õoDí;›=Öï\µ<¹·ôo§>s·£{–óùãsU( Ûú“@ o‰gÉ·>¾/Yîä+(0Ÿ@ ä[§òY@ o™Žù,24@ @ ä;æ³ú‹æÙãm¤»_”DSÓ·³ÖUø.×w¬t1¥/:\†¦¥ï_îh¢oja»zÝz÷‘¢Ð!!ª½dWŒÿÔáÔKy~ k÷j«>{²úXªæÂð(’up•«±­í¬µþ›Çµ-Å,¢¹4¦êáÁ¸T$cfkj¬<û4†"ØÓ )Í«ùKF i÷zž×¼‹`wwùÚ1&Nw\±c¥þÒáe@ @ú“/Gçl4==ù~|èWU#ß·‹Ž°<5Û'ÏÔ¾ËÊC3[Ž×ï8mË÷bE/_fdç¥gçå•ã•E徭,ìKV¶?„ø ™Êëy4æ’œ´ãàËöm$õ7¢†Þ 3è°=:EyÞ{z÷†ŸË¢É¦Væ–óçO7lÝ.O|¨ékÆ=]Ëù‡o!ØÃõ Z'Felž9ÕÌxÚÏ8ÁbÓ…f $ôB#å缚êýª§oek¿lÒàæ|i€Ñ>‚ÝÝé3ÍÔvúÒ³÷ŒµÑ¢93A¨ak+äm6^¨ÊŠòoÝBšDÓÛž€|ºæçnmÀ`ج;zË>¾l@—×ÔP!KTÙê£4ÕGiSi^ê¹­A\J,åE¤UFjªÒ›qürÜ?“:ÎY#+M;\ÆïÔm‰;QÍ/ÐÔ«vrdBC ²²ýáç©îj4Æý@DÂÃøøË»¶lÚö kQ^{UìÜuŽ3÷Ö» ÛïxÍ“O¹w6©ó%2¢”’ÀŠÒnÜM}”öäjÌ‘õ‡j¾CõÌ•«È§ûæ6/;³iöÎþ+ÆtTDP…PG­¾‚¡W.™bgjh:Áxº9]Bx…@ ô/‚_âוd”] ò[æÏH«ÕÑnNðØo³Šj[·'§©Ñé:˜˜œŠD]yƒ¼ñô‰JÉ1*Ó•Iœ¼”’¦–bÚ±Çf²V22êÔ!Ãé_”¢/ ?aóf¥ñâ3eÿM˜QdkNYî`3ZU–Œ•Õò€œ±šhJkŽì]Ê8€‡I¥Ã^G88 D›ˆ,ÃÉ Û›h³ÍõèÆ•+×"cbOæ7·—ÆÜ²ŒrÁÒf{*;5$ñtôÖ[šÞiªD€YÈ}Œš³qŠÓÀÀö­ÓÍxØï·o=)»aÙè³[38õù¯j~jMŸ^¿*È­ÿJÖ *%P_ ò€Ë.}É"œ2ΗBð×ÿtž}`Õ9›`„¯íwÜM!v¥ÙõJH2 %8l”éÊ$Nn{°uDlÔæp§ŠÀ™ÇŠy\å:ëiت³“‚‘–ˆÇ+“ýÆ8­M»qŠ4çÀE;“EHí“å†úË)4º‰cТ…+-埅û8îK­àCõÈ•¢æ[·ÍjŒ±˜¹ãI=€u¿Ö|yøÀ.V8ùcnÜÁ:ê@#¬@~4júØïznvÛœ´­³Ö”x^>4U¾Ï–jhÈÙ;oUoì~S©¶ŲØóΙž<å:ìÿ9}·éëèΰËOJêø ƒ«Ö­´Pi¯²!/t[žç¿a2Ðý@¾>”Q5æ­[­R–VÛvŽý6=3ÉÌA2sÒÛ“Yì-ŠfdeÜKˆYë±3UÎÊÛZ‰¸E•@f¤~ë‚@T¥ÑºR üMuhÌŽ:™"fyt=£å}FY\JRF¼ƒ6ysÏW#åöÉ7Ü’´ô  åd¥òßg:i‹}y§ж8¨éŽ“c®ã™ pÛo>$2‰D( ÐwÎW‹®Oc,\¸ãR¡Å‘ô²ï8¯E#+µ–·#ņšX*‚Ü”7õ„6Ãòf*ØDëE¤ÔÞ\k-×ÜÞúW^ñAɾ9&Rt}Zë¡Þš£€ßP×$d¥>S¯Ï¬Ñ:”&«Så[Ó±z¤åiŸ]äWÅz,Ù‹;Çý=sé^5ÁÌ?Sjºd¨N]Ù˜}ú©øÄ#ë²_F;•¾d‡'ùrPš„¦¦ú(M5tø’„óq×ÏÞùÞïçšã}y—ÔçVê}ÏÒOM÷Ýd±X¬›‡&gø-Ýù¼:@ È‘Ïj¬|SÀÑ‹HMÃÐÇùWÿ^ÁÙ9Tkº_Nû;€€RŠ"Xëñ騉4MU¥ïñ_"RÓ0Á2n§Žt`šD–òþîüâáÎ7 CoV¡†>y¹ot”³•ÕÅ8Üw'j3çfZG%$c(‚eœZÐð".­¢í‰Œ"7vÑO×éãåÚUÄžn¦;{¿üꄤÍ:|d ¶%ÀNò1X¨¿7¾E0ùpÜ”žñºbƒNeQä'ø‰)ÌB0Á^Þ»n_¶ÇÝ=ô5üm´³¬yˆèÿΗ¢†²ûR60,ϽçjØ–uà^]b¦¯èYæ÷èYÑßL2^|~ñƦ’¡™Ï E°Ü{/Ž-ÑiO4fì[ázeбTC‘ꔳÁfÈ}fî"LVçÊ·<¡—ÅÍ]|¬Ú-¶EØO¢÷2[Ò› !gÓ ÷8ÆÖýçÍæžÉo3Tç®äŸgŽ2›ýœyúFR Š`è“«Á~•Dmx¶ÿØœ‚Üü‚Üü‚ÜÌ[þ‡ ´|¶ÌUü,uUûdûxϧü.„ ¢Cl¶8“ö C }œúkìÒÉS®Uñ Õ#WâoϹȚîà¸*ÌE0) ¥¿~úÅpÐB ÈO ¿ú¾¯Ýʳíço±X¬»ýµÿqq=UÔÔ’lâþâ~éë^Լ ?"‹š^™àé°¥ÔåÌ=+á”÷˜ò²æ¯R‡»F³X·8ÈSõwÜ`±X,Ö‘¶‰`MŸÊTîùç.+é̬WÍõ´¦ÒÞœwŸ={åÙ"¡S¬ÅÇþyá˜å¦™™™sþUã𠇄@ òCjl¨Éê@[üÜ ®¨¥® ñßÌ ÞøáuA ‡M@ ¯>àóù|à8çœËÇÃ"·+ Rg:©—…uù}ÃFôÓòÔçŽÍôùègï ò«WÍ ×9å>¬è Óò'ó£9¨PàG-q¾1åÌÉ…CDþ¾a{=ônn ƒ—]]9çððý7è‰êÓwÎYëzþØ•–IÁð}C@ ßÏ’o}|_²ÜÉWPD 9 À¯/ËÍ.ƒv€@ DÐOe]髼¼ò–ÌYrÐ5MçMö·W/ñ­Ù¸Òz„ȧWOo%VجwÓoÕ˜ïÆ¸â¿î ’ßœ¡ï¯œ,äj¿J•¡ˆßºùèí/æÊ¢dQª°é¿M¯O8»œÄ#ήР\^‹<`”¾rõ…°“ƾÓ5I¯o„'T+Î#K>…@ òýçgA ùÖùÚó³ú‚Æ—Vå­º¸·e䯜Ÿ@ ä» ãü,24G?!¢æ”Š"ñ6ÒÝ/J¢©éÛYë*|—ÿ£ Vž$cñWlUFô–1p•ñ¾õ²ŒõQ ½à1Tä›­@¾)¤Œƒo_î›dŸýlï {k3333kç#ÔÿþúÉ,€˜–Ç¥;0™@ ä{¢=ŸEVu<‹¡70õLÍm=ü#JQäùFÖº)ªnWì_§ Zt–cÄ` rk©_†ÖX]}Ûy¾‰éHí¥…"ѱkã°g¦’­$ #$ˇ.¢ôE‡ËдôýËMôM-lW¯[ï>R:¤3Dµ—ìŠñŸ:œúc)ϯaí^mµÀgOvCë@Õ\þE²®rµ1¶µµÖ?`ó8ZëUÍ¥1UÆ¥"k4[/dåÙ§1ÁžMi^Í_Ò0I»ç Ðó °¸và]»»Ë׎1ÁÀpºãŠ+õ; b¾k/C ¤k¤Ç­9òïm‹Åº}þïåFrð?@ ñå蜦§'ßÝâªjäûvÑ–§fûß“µï²òÐÌ–ãõ;NÛîfXÑË—ÙyéÙyyåxeÑ»j!ûž‘•í!~ƒB¦2Æzy€$'Ňí8ø²}/EIýM…(‚¡w :l¿CQžwà†Þ½áç²h²©•¹åüùÓ [·Ëj:Çš1AO×Ärþá[öp=C€Ö‰Q›gN53ž6Ç3A°ØÅt¡Y ½ÐÇHù9¯…¦z¿êé[ÙÚ/›4¸9ßF`´…`wwúL3µ¾ôì=cmlù{•PÃÖVÈÛl¼P•å?¾å‰¦·=ùtÍÏÝÚ€Á°Ywô–}|Ù €$.¯©¡>B– ¨²#4ÔGiªÒ¦Ò¼l{?Zƒ¸” YÊ‹H«ŒÔT¥7ãøå¸&uœ³FVšv¸ß©Ûw¢š+^ ©WíäÈ„†6deûÃÏÿRÝ;ÕhŒûˆ„‡ññ—wmÙ´íÖšeZûw£ÇLǽõnǶÇ;^scÁ††ðäSîMDê·Rça# †Þ?¿nÅLy‹ýn‡ÏOH"4T\ÉÉOΊÆÓ4:Yú¥¶CT!@ @ ýN‡~c囎^Dj†>οú÷ ÎΡZÓýrÚߌRÁZOGM¤hª*}ÿ‘š†¡–q;%ht¤Ó$²”ðwçw¾az³ E0ôÉË}££œ­¬.~Äྻ8Q›97Ó:*!C,ãÔ‚†qiܶ\ÜØEK\<]§—kW{ºu˜îìýò«’4ëð‘u*ØB– ;ÉÇ`u¢þÞøJÁPäÃqSvvz>ÆëŠ :•E‘Ÿàw$¦0 ÁP{yïº}Ùw÷Ð×\ð·Ñβæ!¢ÿ;_Š"ÊzìKÙÀ4²<÷žG¨a[ÖSxu‰™¾¢g™ß£gE3ÈxñùÅ›J„f>G0Árï½8¶D§=uИ±o…ë•AÇR EªSΛ ÷™5º‹0Y+ß ^7wñ±j·Øa?‰ÞËlIo‚†œM3Üã[÷kœ7›{&¿%,„ªsWr‹Ï3G™Í~Î<}#©E0ôIáÕ`¿‰J¢Š6¼‡?ÛìFNAn~An~Anæ-ÿÃZ>[æ*~–ºª}²}¼çS~†Ñ!6ÛœÉN{†¡†>Î ý5véä)תø„†ê‘+ñ·ç\dMwpÜNæ"Š”†Ò_?}Šb8èƒ !@ éwH õ#Yh‹Ÿ;ĵÔ$þ›™Á?¼.(á𡉠òõàÀ|>Ÿçã<€sùxXäv¥AªãL'Aû@ ü {²ú4Ä•gŸÆÐË~Ì1ú†Óþy/ù5gXß%û©]ß ýf Šêo‘)Ø‹L;ï[/Ê3³;xYÌ`]ä¥ùe«˜F4º¾Œ¾­ñê3­\ú©ÀKbœhtýAé½T#Iê×°‡HùïyFÚf쾜Š= ´@ú¶:¢¾€Ç.®âó>}¬î¸ÑûáªU7dÝöoÝ_ºž•|;9¥·e]ê¡,—·K’ƒÿ´3´˜¼ ôlXŒ/ìd!@~Z¾œŸÅFÓÓ“ïLJnqU5ò}»èËS³ýïÓÚwYyhfËñú§mw3¬èåËŒì¼ôì¼¼r¼²è]5.,Å`ñ2•1ÖóhÌ$9)>,hÇÁ—í{)Jêo*D ½f ÞáYVyÞ{z÷†ŸË¢É¦Væ–óçO7lÝ.O|¨ékÆ=]Ëù‡o!ØÃõ ZÿKÏØFÊÏy-4ÕûUOßÊÖ~Ù¤ÁÍÏݤFûXvw§Ï4SÛéKÏÞC0ÖF‹æñ¡†­­·Ùx¡*+Ê|ËMo{ò隟»µƒa³îè,ûø²!I\^SC}„,PeGh¨ÒT¥9L¥yÙö~´q)A²”‘V©©>JoÆñËqÿLê8ͬ4íp5¿S·%îD5W¼@S¯ÚÉ‘ E6€½ÎÉICž\‹Ú=wSº¨¡£ …Øòæ%(Õëí¢(XE>EØ7·yÙ™M³wö_1æñ¯ à IDAT ×n² a?†@koW7•'¿'”‘³Ôö¯âY'T­±óK¿ùìÜA”Ö8Ô)5uõQšê£ÔËRÛC´óKw¥°8ì~2®ÿœÒÛ–'ìèe†Qžß¿ù4'íÑ͈„Bœ"Jý¤³ˆ•ïAGDPJ(Ë<©¾súȦ‹‰kR±¶ûýQ̱Nš€±¶zG$¸°!^gKz]—:XÁ¥ðêÄͶ²ÇÜŒOù›Rh7Þ¡%*Dˆn!NéEY•jðz$Kvð@€|¨)~¼Þë^QÒ8¼² †r@ ?)ÿ_§jÌ[·Z¥8<,­¶íûmzf’™ƒd椷'³Ø[ÍÈʸ—³Öcgªœ•·µp+Š*ÌHýÖK¨J£u¥@ù›ê&Иu2EÌòèzFËûŒ$²¸”¤Œxm(òæ.ž®FÊ퓸%ié@ËÉJå¿S¤-öåv(Úâ ¦;NjŒ¹ŽgBÀD$2‰D( ÐwÎW‹®Oc,\¸ãR¡Å‘ô²ï8¯E#+µ–·$ĆšX*‚Ü”7õ„6Ãòf*ØDëE¤ÔÞ\k-×ÜÞúW^ñAɾ9&Rt}Zë¡Þ>6æ7Ô5 Y©ÏÔë3kt…¥„ÉêTùÖaK#V€´<í³‹üªX%{q縿g.=p«&˜ùgJM— %È•€,7“q4ºÒœÓåFsõdÈB*$0¯p5z¯]œüä| h±“| V»ï¯Ô”€ßÀ.Éfåc¼®Ø SYù ›vx/1¡+Š?æ=Þãúš xí,›Ä\ï¾Ôb¸ ¨}™tnÓ(®¤‰Xö‘ §ð곫îZK=;~u͸µ÷ŠÏ/pKßmmhæ)ƒá4x5ùÉN«Nf¶Ì‹kÌØ·ÂU*ðX*¢" ¸•ÙÇ}Ý}YÕ}dî"LVçÊ7[/‹›»xØé Ø*^•{Ü×Íç^hÈÙ4Ã}PâÁýµ§L§œÉo \˜¡:weÇa"ö"Ä`biâíÛ÷vØOŒxKP!y…ªÑ{íÂßžs‘½kì³ùT¡µ–"nõë§7P 'Ž^ú?l:µ†àvqŸúO¢ù ¨K°òõY!c “<üïרÙñ'fz<¨Â{¬5S„º&öJ €[Ô¯~À¿§(üãµy+GFn‹gï ó>åœðu÷¹_E !¿ÞDºèV¬ ¹3‚þ©àñ©5ÓýãK¸ g†"R¾g‘àR<‚v‘ëŠî?-ž¿ï>&¯âE¹?LnàvÑuÏ÷Ì=żhý9ææ{èa)±áÂY LcËqVªÜŸ{ëîË–êû¥±ßÂÒ{²ºrWvGÖ3vvè8Ó¤åëw=ó“ìÒçñçþòÒÞ°ð,ù|žƒ@ ùÙ 56ÔŒdu -~î@WÔRWøï|=¼ñÃ낚ækˆiL^äû›ó"µ‡.ö›.Ä¡S¾MC}Õ¦k&Dý–æ®åý¨¦¯Kõ§†}+‹ðù|>pœóÎåãa‘Û-¦Ì†1ùy(ÊÏÖkT_WûßÐ8ä'!鯥åN¾"€óY@¾u`> @ÌgA H‡|Ú@ @¾}†iŽnN]ý÷ülˆ@ô—¥ÕœÞñ­\en›ÀîfQMí -nÊÝŒrÞw×nÁÊ“d,¶Fþ; žïêŸÕðãxº/Û%c}´4|à:«¡o¸?’5ú£]"Š“WoÚ¾pÂ(Y*¯öC想Ëþ8“Ý ìÒNË㪎gÐÀÑÍçY=驾¢òÜžwD}Ñ™S†xÄ^ ân5ûÂÛ6qÒÆ§ïwÆÑ íFpõ¬TÏø^ee#Ç™Nú¦b³zÝdøÔ@¾ ‚nÂ~ úù±é¸pjûü,²ªãY ½¸©gjnëáQŠ"Ï7¶ì?HQu»Š`ÿ:MТë´#K[KÅø2´ÆêêÛÎóMLGj/-ÔˆŽ]‡= 0mÛ¶HÒ0A²|èb J_t¸ MKß¿ÜÑDßÔÂvõºõî#áNE"ª½dWŒÿÔáÔKy~ k÷j«>{ú6s@Vž}C/û1ÇèN[øç½LäSÔœa”>ØOíúNè7kPT‹LÁ^œt`Ú9xßzTž™ÝÁËbë"/Í/[Å4¢ÑõeômW·e¬.ýTà%1N4ºþ‹ ô^ª‘$õkØC¤ü‚÷<#mƒ 3v_NÅžZ }[Q_ÀcWñyŸ>Vw̱®ZuCÖmÿ–ÑÝù¥ëY)Á·‘Sz[Ñ¥ÊRq9q»$9øO;C‹É BÏ†ÅøÂN¶[÷$Ie¶äÚk‚nغNDTèy@ oš/ß7d£ééÉ÷ãC·¸ªù¾]t„å©Ù¾5zí»¬<4³åxýŽÓ¶|/VôòeFv^zv^^9^Yô®–b°?„ø ™Êëy4æ’œ´ãàËÆ¶oHêo*D ½fÐa{tŠò¼÷0ôî ?—E“M­Ì-çÏŸn8 ¥ âCMçX3&èéšXÎ?| Á®gH€ˆšS*Šdlž9ÕÌxÚÏ8ÁbÓ…Žj$ôB#å缚êýª§oek¿lÒàæ‡<Ò£},»»Ógš©íô¥gï!k£Eóx€PÃÖVÈÛl¼P•å?¾å‰¦·=ùtÍÏÝÚ€Á°Ywô–}|Ù €$.¯©¡>B– ¨²#4ÔGiªÒ¦Ò¼Ôs?Zƒ¸” YÊ‹H«ŒÔT¥7ãøå¸&IwŒ ¥i‡«Ñøº-q'ª¹âšzÕNŽLh(¢°ìuNNòäZÔî¹›ÒE íT(Ä–'0/A©^oEÁ*ò)¾¹ÍËÎlš½³ÿŠ1_¸Fp“ û1lZCx»º©X–Ú¢_"¸+…Åa÷“qýç”Þ¶½~U[ÿ•¬ATJ ,¾@å—]ú’ D8eœ/…à¯ÿé<#>úÀªs6Á_Û︛BìJ³ë•8dJ`Ø43&üÁ³p5©ÇfJ,ãZ>gˆ@óú«—ÛU0~ë¶Y13w<©°îך/ر^ÁMîüÖëϰìeš¹Àv‘$•Õ銢_ `* sK›4*/*7d ÀÒßW]tŸ{Tñ†;®„~"CïëÇ¡à%ðò+#aqØÝ^¸B`ùžiHà/ïC¢ÿq‡¨éK¼‹uD &/™J/¾z*ëñ‹ÄÊ÷¤#\ª‰ ]ÍŸÓŽ…†&°ñ‰HõÓG6]L\“еÝïbŽuÒŒµÕ;"éÄ… ñ:[ÒëºÔÁ .…W'n¶•=¾àf|Êß”Â@»ñ-Q!Bt;qJ/ʪ$Pƒ×#Y²ƒ¬àCMñãõ^·ðŠ’Æá•`0à•w‚޾3ÛsÅÕPÍ; f{ÝšvÈ–Ü;ç§*ts±Qi¦¤JÓ‰ù (€‚ºSÃ¥—ûˆ>ñjä 8_#ø¶P˜%å½ <ÙËyÁNÕÄMü—'Þýz€Hðù]>ÿß/JP¦’ÒÊà\¾À­¦‰L\'®r£6,ÇœçuÓ>ìzü›/ý¯,Ã8^Ëá7”éÕ[vþÖêén{kD)¦K¨œ'Moßñ©¢ëE?naŸOh:õðùèi €š¢¸RÿÅy_ëSSνÙœ.'aòx-NäÕÓ[úðÈP±ß(÷¼j¯¸H»i÷¸žîé@ ?";tªÆ¼u«UŠÃÃÒÚ—d¿MÏÌA2sÌœôöd{‹¢Y÷bÖzìL•³ò¶V¢nEQ%©¯Ðò§Ui´®(Sݳ£N¦ˆY]ÏhyŸ‘D—’”ï  EÞÜÅ3ÀÕH¹ý/ nIZzÐr²Rùïi‹}y§ж8¨éŽ“c®ã™ pÛo>$2‰D( ÐwÎW‹®Oc,\¸ãR¡Å‘ô²ï8¯E#+µ–)ùbCM,AnÊ›zB ›ay3l¢õ"Rjo®µ–knoý«G¯ø dß)º>­õPoóꄬÔgêõ™5ºB‡RÂduª|ë°¥«@ZžöÙE~U¬Ç’½¸sÜß3—8áUÌü3¥¦K†äJ@–›É8Ý@iÎér£¹Îz2d!˜W¸½×.N~r>P4ž¦!&ЛÜyŠ©ÿæ3k´Ktôï‡^ŽJþü¸±j¤8‘ò¹×ÞÒ˜žL9¼æý›jžÓy²Dé¥ë…õ=ì œÒ…8ìýéá…7Õ7ðywL !¿(Cº¶¸r™Ýj¿S§6z-TýÕ=_µ§!)ß³ŽHp)‚v}‰ø0S+E~öÃ7] 6ò¿ß/€ûöü* ºîÊÎK‘hºn¬x/nã¸Í¼¯Ç²hþE%¸ºà”^“Õ…»²›²ò®ß.¦™ün2g——°y²V-¿Ã8VÎ4‰êä¿ý¶3¹Z\A Ô–a¼Þ:ßí`“':~ƒ ÕနÃRcÐHâçæRç.'#k±oñÊÞãï7ÄÿËkÝ®§·´@ÒdP˜$±üˆ´oˆ„2Ie–Ø1ç»k…p ®JVAQÕ$KQIŒ¨Së-;kõt·~Ј¿yOžð‡”Ï)i-bªT’¦Y¤õ|¥8ïsû4ÿO¥BQ¥S†ÒÉâMüÚ†ž×óÿ×Gq®Ô:~ôou™Ÿz¡]óY­#ÂÊ7½ˆÔ4 }œõïœCµ¦ûåt˜xÎ)E¬õøtÔD€¦ªÒ÷ø/©iŠ`·S‚FG:0M"Kyw~ñp熡7«PCŸ¼Ü7:ÊÙÊêâGµ™s3­£’1Á2N-hx—VѶ¨/Enì¢%.ž®ÓÇ˵«ˆ=Ý:Lwö~ùÕ IšuøÈ:l!K€äc°:Qo|%Š`(òá¸);;=¿k¡Ê¢ÈOð;S˜…`(‚½¼wݾl»{èk.øÛhgYóÑÿ/E e=ö¥l`Yž{Ï#Ô°m¤Â)¼ºÄL_ѳÌïѳ¢¿™ d¼øüâŒM% B3Ÿ#Š`¹÷^[¢Óþ ؘ±o…ë•AÇR EªSΛ ÷™5º‹0Y+ß2)‹›»øXµ[l аŸDïe¶¤7ACΦîqŒ­û5ΛÍ=“ßB Õ¹+;±!©¸}ÏUJX¡`ó W£÷Ú…¿=ç"kºƒãvª0ÁP¤4”þúéSûÜä/éÿ°éÌíjxê?‰Ö!OÔ| Ûô¢ŽPùú¬1†n÷§.F Mº>åÉ Ãi›rzüÞ ‘S„º&ÁP»8]™üM9ExDá¯Í[ÕäÏF‘šÔ¨½æ {ñÞDºèþñjÅ…d E0ôYqÌœŒ5Ó-Δp{h("å{Ö .E‡x]Ñý§Å:ûîc(‚åÞ¾³ªéS£‰1ï»è•ºç{æžjt9´žIë†ç¾,E¢16^ÿxrx ©ñ¤4÷ÜJfèÐw_úH“n‡.8¥×dué®ìž¬ìÐq¦<œ´ëÙƒËÏ…Lxù—WK$)+U8ÎÇyçòñ°ÈíJƒTÇ™NM¥‰aþûÿͬä=Ós‹ç¤ÁÍi¨Þ:ß­´ÏºÉ@dÕnC›Dªæ¥†×]½‹7?™4l–ÄŒ¹ÔÁ²€[ÎM=̹~çõ (ƒÅ¼S,©M)ëÒùÎÇ€JTkOññ†dqj ¹Ï£97’pžàóëéTP°”˜íJUW&F¼ðVÃ¥# §>ö–¿µzºW¿Y÷wIû©J-^ñ¬1c¸é›Ú{yMÝÖ“¤¾Vz…U‡dØÛú=+ʸ_Ën½£¤ž¸Ãrª¦YŒ ¸å¼ô œ«WxÄ?†}mŸ¶_ì¡^ÒnÚõ»W5VòzKñ?®÷J×ܲ¿¡È0qï#b¤èÚà^Gå¿—óMú½¶ îož%ßúø¾d¹“¯ À|@ o!ù¬o ¸Ï=ùZôV¾öc?¶!ù,24@ @ ä;îíÚo–VszxÇ·r•¹m»›EI4µ_,´¸)w3Êyß]»+O’±Øùïl,x¾«VÃO }èe룥á×Y-}Ãý6+„@ øÿ9ýôíó³ÈªŽg1ô⦞©¹­‡D)Š<ßhز5EÕí*‚ýë4A‹®ÓrŒ,An-ãËЫ«o;Ï71©½´PC :vmö,À´mÛ"IÃÉò¡‹€(}Ñá24-}ÿrG}S ÛÕëÖ»…é Qí%»bü§§þXÊókX»W[-ðÙ“Ý×É,ªæÂð(’up•«±­í¬µþ›Çµ-Å,¢¹4¦êáÁ¸T$cfë¢ÞdåÙ§1ÁžMi^Í_Ò0I»ç ÐóâÚwìî._;ÆÃéŽ+v¬Ô@ú1¼ @ @ Hòå蜦§'ßÝâªjäûvÑ–§fû¶]µï²òÐÌ–ãõ;NÛò½XÑË—ÙyéÙyyåxeÑ»j! û’•í!~ƒB¦2Æzy€$'Ňí8ø²}Û#IýM…(‚¡w :ì@BQžwà†Þ½áç²h²©•¹åüùÓ [·Ëj:Çš1AO×Ärþá[öp=CDÔœRQ$cóÌ©fÆÓæxÆ!»˜.4k ¡ú)?çµÐTïW=}+[ûe“7çÛHŒö±ìîNŸi¦¶Ó—ž½‡`¬Í™ B [[!o³ñBUV”ÿø– $šÞöäÓ5?wkÃfÝÑ;XöñeC(’¸¼¦†úY* ÊŽÐP¥©>Js˜JóRÏýh âR‚d(/"­2RS}”ÞŒã—ãþ™$Ý16”¦®Fãwê¶Ä¨æŠhêU;92¡¡‡ YÙþðó¿T÷N5ã~ "áa|üå][6m{†µ(¯½*öî:G™Ž{ëÝŽmw¼æÆ‚ áɧ܇v2±ó%2¢”’ÀŠÒnÜM}”öäjÌ‘õ‡j¾CõÌ•«È§ûæ6/;³iöÎþ+ÆtTDP…PG­¾‚¡W.™bgjh:Áxº9]Bx…@ ô/‚ß7äוd”] ò[æÏH«ÕÑnNðØo³Šj[ß‹¢©Ñé:˜˜œŠD]yƒ¼ñô‰JÉ1*Ó•Iœ¼”’Ö­WÄ´bÍd­ddÔ¨C†Ó¾(E_~ÂæÍJãÅgÊþ›0£È Öœ²ÜÁf´ª,+«å9c5Ñ”ÖÙ»”;q,6“J‡½Žppˆ6Y†“¶7Ñf›ëÑ=Œ+W®EÆÄžÌon/¹-då‚¥ÍöT 9þvjHâéè­·4½ÓT‰4³û5gã§mÉ;IóÀ^#ö»Ãí[OÊnX6úìÖ N}Eþ«ÚŸš@ӧׯ rë¿’5ˆJ ”Ũ<à²K_²§Œó¥üãõ?gÄGXuÎ&ákûwSˆ]iv½’LC eº2‰“Ûlµ9Ü©"pæ±bD9‡Îz¶êì¤`¤%âñÊd¿1NkÓnœ"Í9ðEÑÎdRûd¹¡þr nâ´háJKùgá>ŽûR+x€ÀP=r¥¨ùÖm³c,fîxR`ݯ5_>°‹NþŘw°Ž:Ð+„@ @ ¤ŸøöUcÞºÕ*ÅáaiµmçØoÓ3sÌ$3'½=™ÀÞ¢hFVƽ„˜µ;S嬼­•(€[QT dFê+´LŸ¡*Ö•åoª›@cvÔÉ1Ë£ë-ï3’ÈâR’2â´¡È›»x¸)·O¾á–¤¥W-'+•ÿN'’¶Ø—wÚ¡h‹ƒšî8©1æ:ž ·ýæóp@"“H„² yç|µèú4ÆÂ…;.Z©A/ûŽ€óêQP4²Rky;Rl¨‰¥"ÈMySO¨a3,o¦‚M´^DJí͵ÖrÍí­õè”ì›c"E×§µê­9ø u@BVê3õ|âlu IDATúÌ]¡C)a²:U¾¼«@ZžöÙE~U¬Ç’½¸sÜß3—8áUÌü3¥¦K†êÔ•ÙѧŸŠO<²ž!ûe´SéKvx’/¥IhjªÒTI‡/I8wýì?ìù®q®9Þ—wÙI}n¥ÎÃF< ½~ÝŠ™òû%ÜŸŸ2Dh¨¹’“Ÿœ§iˆÿOl´CT!@ @ ýN‡~c囎^Dj†>οú÷ ÎΡZÓýrÚߌRÁZOGM¤hª*}ÿ‘š†¡–q;%ht¤Ó$²”ðwçw¾az³ E0ôÉË}££þ¯½3‡ª{ø33fìdB‰´ÉKo”l¥´/o‹VÅÛò‹$•·TJ…vÙ’*I½-”¤MÑbÉ-diD ãÛÜùýH3×ò–¶óýÌç“îsγsïyæÜs-ÍÌ.¾' /Žh2'mlHtÎÄðÔ ùµÏ#“Ë>m.M“ºÈz±½ÕÔÒ-"âIÛUµfúÈØEÇ£ÄÃÖÖ7·€(8g)eìÉøç|1Ù±Oi›MôF‡¾åJø)ëÀ~am¤#g_âòøiÞY*ñæüI}ç¢ù¾iÏ0œ‰á™÷ŸXiIÔ¥z¯°ºÚ3 ÙXEüÙƒF’ÔofÎÒ^[¼…o„(‰œ³$ Â&¼’‰±Ïy™4¥7¡6Ãyšm¤þvŸ~çæœÎn ‹v ÅÛ• oΛ 0šùÌ$øFL%Ù‰¯#ºŒ‘gÈ™û­íóÔ'àFFNfvNfvNfÚ­Gs4×m›#÷Yêª*q×û$n†FosW¿ÓéÉOq&†3Ÿdúþ¾tüÄkå\RCuÉ•DAèb)ÃÝl› ×™ÎÄŠ}5r“’˜8ß B@ @ ºJ]m èI A¶ø½AHNSMVøËÌ Q÷.7§ˆÍE&B Ä÷ƒ À.—Ë%€ ¸ˆ.qèÌ.ùžJà Ç!û @ü<»õþmÑò…Ž@@æ@pkJ2ÓK@ @üðP‘ @ @ ?(ŸÕ](/L`bQæâ/JUÖ™=à §B,}ÿJ:´ê츃XSÄâ\/Ü|#ˆ2Û¯MQ^m‘R•¸|¸Îrš¨Æ(‹=‹¬-óÔ…wBH Õ%W2Œ·»þUf:}wb Ä>¨2^îߣƒ;ûbØ»xkDI+D @ ¢›áûô½ß\';Å7þ‡’«>c¤¤e`iXZFJK2 ð&3õEêýè° «÷&H›­+Oƒ†²¼ Ñ_§yC ºü -1(ͯ¨‡ºôSñ‚£oÒozž‘B‘j% MÆx±½›•žBË⛆¢ä”2Ð\h¦øår"qSï¬àYyÛf)k l<Ä>º’Ÿf\*…BÚÔf…:jjèˆê/X°ûÒkÓc•ÌËŽ}د瀜ž™rÓÓ‘‚*£FËAf|~ ©„Ä®5‘5?§_usÃXéF}k^=~Å…"ïÙ£Ä4tD›?jÍ9nmuK‰}&Þ7³FGhUª½¶x ßQ‡×ˆËˆ~v’[¾ÚÚ‹°Œ<0}©ßÉ5•M6ÆWvÈP<]Y—~.8IẖMúRm£®a½ÛžzyO²°ººÚueˆ9zIØò„ÕgÏüáÏö ³ÊX{yßd±Ï­Ä;lÚƒƒ3œwZ1]ÆÔGØæèù‰=(¤†ê’+ÙÙqÙ g0¥É:Qa d"@ Ñí´šá×}ÈÏak&$ãÌ'ÙV°÷ªhNuÉhyô=‹™Þüùx|”8@}yñ[âÀ„dœ‰á©·ã÷ :3ËdÔ™b…ç—ô±¼1Ü÷f9Ù‰/½…Xš™]|O4^3ÐdNÚØè8œ‰á©AókŸG&—5|ÊH]d½ØÞjêéñ¤íªZ3}dì¢c6Êð>6è ©€³N×WÔ&†3±w' Yé)Ù8§#6àÙMf¤Ë±°×/0œ‰á/ï_ŸQâakë›Û@œ³”2ödüs¾˜‰áÌØ'Ž´Í&z£CßrH%ü”u`¿Ž°6Ò‘³/qyü4,•xs~‰¤¾sÑ|ß´gÎÄðÌûϬ‡´¤êR½WX]í€áL¬"þìA#Iê7³Fgi¯-ÞÂ7B”DÎYPa^ÉÄX‰ç¼LšÒ›P›á<Í6R»O¿óFsNg7…E»†âíʆ7çMÍ|f|#¦’‰áÌÄ×]ÆÈ3äÌýÖöyêp##'3;'3;'3íÖΣ9šë¶Í‘û,uU•¸k„}·aC£·¹«ßéôä§8ÙO2}ÿ _:~âµr.©¡ºäJ¢ t±”án¶MÐëL gbž¹IILœ€oP!@ @ Ý¥®¶ô¤† [üÞ $§©&+üef†¨{—›SÄæ"!âûÁà—Ëå@\‚D—8tf—|O¥a†ã}@ ~žÆÝzÿ¶hùBG  s ¸5%™é%È@ @ ~x¨È@ @ ˆŸ”Ïê.”&0±(sñÎ¥ˆ*ëL«%Kûõæ/¾¯hý¢Ö£U«nHÙølÔ™+];¥øèÕµ¶H:É©¯ÞÈjMq ¸31œyïð0á–RUOÖÞîñ·ëÚþt@ @üî´]ŸÅb¦¤Ä=ˆòÝf¥¤çX°èX¬½zË®U…/²˜iMŸÜBö§·›áy/_¦¦g¥¤ge•ò +ˆöR 3Ž`.=='éµ?ö‹‹‰:´g÷á—-ïRÑq~ÍÄpæÝCºB­î€æúÝÇ™÷n¸,^4ÞÐÌxô¼yS‡7¿.OHÅpöXý‘ÚZ£FÏ;z ÃmÒhþ-=uëôIFSfÛGb¾D£Ý›aamß'Xi蚆Újë˜M˜±l\¯Æ»uФžw,†ßÛ»nŠá„©KÏÞÇðØ-¦“4R ›µ1ßr¡üEÈÎM'(¢Ú»¢±×\lÇêêë›;¿‹§ŸXÖ›!õ~j}¥è@—êÛOm€ºÚuUÅÆmÛ»Ñ䥸µE"¼€¸buµÚÓN\Žüw\ëeTù)G+˜Q{µšâŽ¡¾â93!b²4•ÔPda€çfd$c‰×BöÏqNa ·˜¬H#·<‰yIJ}u½h²fg’0ÖM×5“¦Ì°Ü¹bp×ðW™ß4²Ư5Ú׫“ÂSUæyøêg,°ãÍ_n'ç—;LvI±õ윞´æ8ì'#41e5µêjÔzIÑ[B”÷)’^Ù^v>×}NùÚ–'è%TË»gn&e$?¾ýš 1èÿ!E.|"’Rí¢»lõêé&&/>Œ?Ý7M¶µ5XíYwè9Þ6Ëä>÷’°Ã1‡aB`ù•"׋_) Jš¹Fái6}ŠSþ}–ü|ÃP1 v"²þõµÛ€†²´ëÎË&ÊÎ )úÂìUOü!¼|ß’!‚è@ â7‡ÿƒÜê¢ÔÐ×¥CvÓbqå¡C6Þ sX/òªš{UÖЂ J+ W—ÖÊL#ö–¬U  ;+¾¨¾é€à@·ð€é±+õÝR« së£áÖ¦”ÆRÿ“æù+ –œ.ù2aF“è¥>qù,óAJRT¼¤ŠÒæÊŒøæYaüÝÈXÀ£˜bÕÜÀY}BÜ™õd–agòºcîjuÜCÿêÕkgÂÂOe7ê+jâ까va´ù®6ÄEÝNð¼|nû-õµÉJdy>Àé[&.ìáþ)y'bìî·¦/ÌØï?£ù ÔæeƒÎnOe×”e¿ªêñ±ê?æ¾ÊɬùNÖ +Å·-._á¡Uü’ìvÛFˆ÷×7ZN‹:ç·*Ôü ÆèrÂF6|¥Ñõˆ˜ŠoØ42ØÿáS¨L˜fpäN ‡Ôò½ùš—Ô__Y¯œÛ]ÿª 3¾;±bT/÷ïѺ^þ*óîzÝ6ü½,jÌW/Šˆ‚š†£M¦¤¶ìufq}?¾Â3¤{÷<åmEÞEÛ9×)eù ÊØðGo :¼­á‡üC”Ä˯ôÚ‹ÃÎŽÂÝèËwMB±9ïîì<1+dªõÚ7CtÇ[OÒx”wùe©äÂwe â_ªžD¯Æ¿“|}£Yu«¸|Ìùâ‡üSÀC€Dæ=èòƒ´Ä 4¿¢êÒCNÅ Ž>¾I¿éyF UHLDB¨•44ãÅönVz -‹Š’SÊ@s¡™â—KÄM½³‚gåm›¥¬5Ll°ñûèJ¾‰:*…BÚÔf…:jjèˆê/X°ûÒkÓc•ÌËŽ}د瀜ž™rÓ³‚*£FËAf|~ ©„Ä®5‘5?§_usÃXéF}k^=~Å…"ïÙ£Ä4tD›?j-scnmuK‰}&Þ7³FGhUª½¶x ß<Ù©ÃkÄeD?;É-_míEXF˜¾ÔïäšÊƒ&ã+;d(~®€6£†‰jèÊÏ.Õ›c©-Am§Bó¶/Æ×Ó‹— rSúñ_ŠÀWeÞ)¦î^Ö Ñ‹1èG]‰ûüscU!2áë2¯EˆšØ›H•oó+8ò&–ã…‹/]]ÓÅ‘‘Ä)ˆÃÎÑNi?¢ˆúšz€Ï‡c IüES™äÚ’Ë&Û¹mY³@éÏuÌInçæ)uu›42á»6ñ/E¢W[„T Íä¸éò;llìŸÿ]€ùÞŠ@Ç]É·Ù˧ETË&6jMËa[ß­½yÄ´ñ:LÒ‰:п¾Z[éi®¢`òº5Ñ-@ ”Ïjœ~ÈÏak&$ãÌ'ÙV°÷ªhNuÉhyô=‹›w Æ™ØÇã£ÄêË‹ß&$ãL O½¿gЙY&£Îs€(<¿¤åá¾7Ë™ÎL|é=(ÄÒÌìâ{ ¡ðâ˜&sÒÆ†DÇáL O š_û<2¹¬áÓ$]zè"ëÅöVSGH·ˆˆ'mWÕšé#có°Q†÷±AM¥¨¬˜uºvwt¼¢>01œ‰½;aÈJOÉÆ9±϶h2#]Ž…½~áL yÿúŒ[[ßÜ¢àœ¥”±'ãŸóÅL gÆ>q¤m6Ñú–C*á§éûu„µ‘Žœ}‰Ëã§yLd©Ä›óK$õ‹æû¦=Ãp&†gÞ`ÝêaŠºTïVW{$`8«ˆ?{ÐH’úͬÑYÚk‹·ðM3ç’È9K*lÂ+™+ñœ—ISzj3œ§ÙFêo÷éwÞhÎé즰h×P¼]Ùzî‡?÷ÔsDÍïö}+e:i…üÍÛ¾_O/¢ t±”án¶MÐëL gbž¹IILœè°Êméþ°áe ½j“vŽm•'jü¨:?¯&¾æ…çàá6&}ÃÄpfÌõ‰‰Ó†Oqn=|uRj§´  â‰áL ¿8UúC9¥ýˆ"Þ_›»2¤~]‹‰U&„x÷ mHüÅÉ?³Xký«âp&†3Ÿ¾ ›ê0ÕôtQC E&|×"þ¥Èâ¨Î{ôfˆ÷œ‰á™·ï®ª_o¨7&ìm½RýÌcNPÝâ#›LD;á9>¥ÈX¥(¢ú[®¿?ÕÇÝÐ`\ 33t¥¢‰¯Šß½—;uÅ)d¨#ýëkµ ¨³9 gb¥—(A%¡pf\àˆÏyì§Ö\i˜ä4WKÝÆ!@ü¶Pêjk@Oj²ÅïBršj²Â_N)‰ºw¹9El.2…MÇì7~‘ãß–‹”-žá|ù=œòc껪>Ð=:äïd[͵+ÌRÝ©WGápËår ®€²·Ã¨Dàö‘ï©4Ìp@ ~žÆÝzÿ¶hùBG ¡|@ ˆÏóYˆ.qèÌ.”ÏB ø}hÏ¢"s @ @ ~"P>«»h|#{”¹xç‹RD•u&Õ’¥ýŒzóž"aº#¼<õܶÁhOßoëe‰±Çqæ…Õ*?l…@ @t†– )UÉâ4Ó]Ð}™ë®¢ÎØy›çk¿ \aº;±œ )Ù\¹~€s`ìÆVÓ÷>æç²AÉâ4Óî²hktµˆÒ ³¶,ÔÏÞ¯mòª1tÕÇs“Ç9Ç5¾¾[dxàÃcÃO[èdÖCc‘ï#—áÅ7üÝÎ'Ñþ¡C\ò8ü²ùä ­÷…M¸m2&µ”ó Ï­ŒÝogv¡>3½öË@W_àóhLj’[û¯`o© C † ^ÝíúoìêKC’––>©2çO¯ìZªÂÌÀœ½ZPqsö¸Í7> 2<ðáѾnæ£ÿ-íâ6?BÝo„8À-—ÿ>,&dÕu ¤÷Å*¸¿€—â{1Hgg!; @ü&÷~ïo\jü»í 3%%îãó¸Q‡<Í‹Å?Íðª _d1?ßäµq}ž÷òej¥p)ôÎ*%4ò +Ú™ñSfÁ\dvMÒßŬo<Õú":Îéa³äà㩹“ì’›_áMS˜ëvÒœxpæÔÙ'9Ålºœ’Ø«×+R1œÒ¿¾°¤š*=xñæ‹DÃÆ˜íŽgƒ€òÂGw…ƒ·oŒ)¡*üi»ÅÚ¤ÀëYAÍ-óAXÛ÷^àü×ö‡b^²¨’Šª}9‰Á· ë(’z^׎.kˆÞê‘NÑ´t´›A½8yÊ®˜ .¹„ÍZȘ; [Pï³Ôfû“ €"ªí~9Цîʯˆ§,ÙÑËœ¶ŽÊ]c¾"à ‡"$Ó¯—|_):Ð¥úöS«ªNEaA1›èNk—â׉ðâŠj Ât…I'—¾]eѯè}Æ. PØ¢2Ÿ èì.>]A»Ž\g–VpèRÒ™w0ÙíTˆ@ ?!B"bȈ߄šê*ÿêÂÄOÞ‚ÿCÜê¢ÔÐ×¥Cs>K\yèkZ8¬‚yUÍëHD•54†à‚ÒŠÂÕ¥µ2SÇÈÇ…½%kUACÂΊ/jN¢t ˜»Rß-µq-W5æÖGíM)¥þ'ÍóW,9]òeÂŒ&ÑK}âòY惔¤¨xI¤ Ì•ñÍ ¾ ãïFƲÅ«æβèâNžÂagòºcîjuÜCÿêÕkgÂÂOe7ê+jâ까va´ù®6ÄEÝNð¼|nû-õµÉJdy>Àé[&.ìáþi%šˆ±»ßš¾0c¿ÿŒæƒR›— :»=•]S–ýªªÇÇz¨ÿ˜û*'³æ;Yƒ¬ß¶¸|…‡VñK°KØm!Þ_ßh9-êœßªPóƒw Ë Ùð•F×? bBb(þa£ ¡@ag¶[klõ_Xæ>=à §B,}ÿJ:´ê츃XsFëCœËà…’oQfûµ)Ê«-Rª—×YNÕe±gÑ‚•£ežú¯³ðN(㉡ºäJ†ñv׿êÂL§ïN¬€ØUÆËý{t°B`g_ »qo-ƒ(i…ñãÀªª:tÈ/îáÃ’’R …"++c8j”Ý*q1±¯{ÿ„@üÎóº0ñ#Àwÿ,z¿¹NvŠoü%·tVAJZ––¥e¤´$³/`2S_¤ÞÛ°zo‚´ÙÚ±ò4h(Ëûýuš7¢ËÒƒÒüŠz¨K9/8úø&ýP¨Bb"B­¤¡É/¶w³ÒShÙN¨¡(9¥ 4š)Ò¿WÜÔ;+xVÞ¶YÊZÃıæû²p.‡ •B!m j³B55tDõ,Ø}éµé±JæeǾìWs@NÏL™Ñ”Q5Z2ãókH%l$v­‰¬ù9íÀøª›ÆJ7ê[óêñ+.yÏ%¦¡#ÚüQkÎÑpk«ë@XJì3ñ¾™5:B«RíµÅSøæÜU^ .#úÙInyøjk/Â2òÀô¥~'×T4Ù_Ù!Cñte]ú¹à$¡1Ç6éKµvº†õn{êå=ÉÂêêjÔ•!æè%aËV}Z›¶o˜UÆÚËû&‹}n%ÞaÓœùà¼ÓŠé2¦>Â6GÏOìA!5šõÏIDATT—\ÉÎŽË9ƒ)ýxlLÖ‰ [ «@ ~ îÞ½7yêô‚7EK¬¬¸råÊåË—Xbe]ð¦hòÔéwïÞû™æ*ÙgìæÙú?¯âp«_]÷vZ:żË&Vr»G„ÚœÐõs—ûa¬oÓ^}þ9ûÿ |ÕÑ&¸5o3žbÕ\ë?2¿€[k³O­Yl{<Ý…²u9¶ lÎäÖ+Ù^]±`ͥ†_/~^M9Z_qVŸ/¨Î»à¸ØÖ;™ÅýÖáM*IW®}­FW_—Vë³ê>äç°Ç&$Bmqfü¿Á{U4ÓË[/ýÑ÷,f¶ú~ŒÊòÇõåÅo ³À„ä@¨)KOºsd–É©”J ðü’>y‹=|o–’¡CÃûô»‡,ͼŸ| ˆÂ‹cF³Xía¢* À)/xž\öiТI]d½xE.ñzÒÕæõGxÒvU­€‰Kí¢cŒõz‰þ6åÌVǘ¬˜uºv¶½¢>¨K pkYEé±Ùx‡6"âÙMf¤óîµÖ£4äP÷>뉇íßÜ(8g)c²içùbÓ>Põ2&t³‰^dQ=¹„Ÿz&ûu„µQ„­¦uôã§'"†m¸ÿæüÉ[:6|Ó‚tûˆp*³ã®:•Ö´J¨.Õ{…•˜{@¦È€†é'mc+¾‘5:K{mñ¾ÑÊDIäœ%ªÁ{Â+wÒ‰òÌŽ6ëî—P›á<ͶçÃ>UA†Og7…Ñž¡x»²áÍy“×µgÚߨk¢&Iƒ†’ÌØSž{v§÷[Ûçé–72>­pËßytÙó¶Í¹´üN+«w°—M÷3i7lH`ô6ߺÉrÖÈAªâT€Ú¢Ô'–Ž÷xPÎ%5T—\I„.–ºg°nkÐ뱚r4€†ŠÜ¤Lœè€¿:]!@üìÙ»¯CìÛ·J¥VV~–§'<<<"""6nà3Ò}¸ílw¬n憿‹4¢Šöê§*ù^}Q_pqƒóáÛ=W Nñ•­[¯ÜqøœF÷þ¨ ¨6o¯}ãºõ'vú.À¿m+÷QÄù³á)ú.õÝ=N†ÚœªÈ½æáz±TÓlœVE9E•^R JWÅ©Í Ûï‘;Ãc¨² E|çÉËNÿô·ªú Þñ_û×?Ë´DØåE/îü™J1Út`¥Ž8åŠõÜÊÅŸûm ø8|²é YnAì¹°ÄšQN‡ì†ŠRêó.:ÿs‘m°h¡‘TatàÅÅ%^.ã[~lêìýó÷`ázöÇ¢— wnÄ¿éa²ÆeåHš ºµw°õOš‰è²M€ó.rËêà|è9cÿ~ Õæ_v‰²ûnGÓê¥'º´îÇø¡fÿÉ˨ óЋ¯¶½â(žPWÒEÑ»æ ’|Ÿ¡ñƒC©«­=©!È¿w ÉiªÉ ¹^¨{—›SÄFÉl@|Ïy¸\.—‚à ¸Ä¡3»L'΀†ÞÞÞíV²fÍš'â>¯•òÙ 7Ýîø6ý¦G)T•õùçÖ;EÊζ™>@‚¨æªü¡%CÃó°´riQ¢ôyø± ™ý×ú8éKP¿)?×nººPÕËÈ€ Xµ’É™#U„>&?]1f»÷ÿ·:ý”ÓöXÙËf—a=»xìBîNÞvºŸs+í´ñ»ãÛFJP Q€Ûê«6ÍP¦…Ñ£gOáâÐn©&ÝÇÖ-¶×ÞIò|ç\‚K¡RØ)ûÿ·§Ô²9ŸE|¼ïjï—ß³£¬¸œ#®:lÊb«©ƒ$Zî3êóÏ­wºÜ 3c†¡¦,‘vîq½™óC„+¹¯ôÁû¸M”§ñáÎV»“bk:ˆž\å–e¼~ý9P„åzÉ Õð[«,lÝÆ(ÙÙ6sue¸ßVöüS¿Z^ܱ 'ÝþÄö“ßú¼ók7^•Z}dç(ñjžÑÅ­a†lÞÑ ?wî ñ†•¢Z#‰ž[ï£ëê³@èÎ^çàŠ±Ûv,$Jác>¶Ÿ¹Uêý…/ÝG”?ñXï“ý§ÓÁ•CEyÎÍ9%7œ×œYuØy”há¿ë#T6ù;j —õxÇ _|‰÷ž r4>Ê@}ÁÅõÿ\´òÚcV¶Þ)F×Õת%ï¿™!5s—Û<5A¨Ë tpŽ7p÷YÔ—\^½Rœwx; ÎçiQü™¿ã®X£s UÊÒï…]}&l±ßcf/ê×µ Ô¤x¬tÿ8ßAõª×‹ÑûöÏQ¥QvßÕá”À’å¢!‡K­»IRx+Õ<Ô´”$Š: Ô´þÍWðògK7dvÚ £Í7U¼˜3hÓÜv-R"ó8É©v‡únëÂzå¡T¶õG®úæF‡KÊ·úµ„7íþhˆç–ä¾/–ÅÓP‚m¯}¼Ç¢št[·Ü¦)Ò8o¯mp¸ÒgÛ¡Õê­®Io3ÔÈ SÑÀÿ“yñô¬%¶7.-_è(4d·¦$3½Ù@ ?!rr²l6[RR’ä;rr²Ÿûb^Á~ÿ:'W„@eHõV–iL„ˆ¨hÿ©ýiqB«8óÞ¥G…jh" ¨{ù´¨N_¢é›½‡èhõcÀ`5HYêM 5©+I2o“7=xTP7@›ê] PzÅ×íJS…/$.Ò-Õ$MCÙ«÷\i}¡VÒ HôTQQi ¾E¢ËiÈÂSfI=ðÏgQ¨_ÎψògQœ.;Fˆ·â±«íÊ8ËÖóg)½™³Íû1†éþ9@pµËáK㼩\µò–½¿_œ¾‹‰è«+çs”çyêŠQ²€!­¤ª¢ØXC-“Ø#Ǽyöâ‰à·æ'Ž3@É,ø|÷h¾;ïdù,ïÓø'MN{úÆCst$(|¢ ^ÛÁçêµ¼õâ‰z€7·ZFÉMÝu$T­éT-¿ mÜ =y¸ÚcÄ?'F𹃭-ˆöv |3ÌáÐi}i@-«¤ ÄäÄ›ê£0¤äDàÝû*È‘¬Ë Ëjª BÚ«²3Ñ–ƒ=ùÆ’Ho­a:ý0Tg„‰þáÕ.õ½öý¬Êz^v É+¼éÙA<í3¨×e¿Ôñn{–ª3H¾º÷¬q•ÎW¶ §²à]ˆªŠî²›;8m—ôÚ {và ŽÕAgÓúðHÈÈ.­7’dðVJ‚Ç8ÙÉH謦Ä×ðrkk™Á‘u殞Ë4@{èšÂk¶zœá½DÒŽÇyžRzÝÞPßm]¸¾¼³Ê¶¾âpªy´Ã·Gæ–||Q}wU†_\ûH¯t᳡ñÓ2i¶eë[£|@ ˆŸ›³gÌÇOôððà—Òª¨¨Ø´iSôÍíT$ÜSM]üá Ö“=ö^ «Žø:õ çýõMy}Æ @-Áýô? à0d5)·SÝ.èËûé5yʵ×ïk¹j|:ïŠT_’]r¦²ôNz„*¦Ò_ nßO¯Ôד Q³9TQ:ßÄkß$¥UÑUÈÑ(RÆÿlx¾zÏ®«b#âî ÍÜ5¡' jéÂt¨eÕ³þbKMw99¸Õ§6ÌwàrØn°ÐïÞG²R>ýÍãa¥F4?[@A] uEê­©%õ½Û„‡Ôx׃ ü6[/R]²oÓx%:gÕ–¶q+ªtØ}\üÅ)G·¤AnÇÏIš£ ö1Ö}ð(&ožš† pñôèD\ÚdT/²‡åê‹o<O ±×_°õ œy Óf6ÜPò‚YESê'#ДÄ‚Ë%镼Â[@·}¸•i·Ÿ=-®SWíØÃ~]µICù›rûSŒJѶÙk»kÍêÿ5ô²Ø¿ßL–ÆeÉ‹s+ Ëëj;6Ôt!:«é×ôrc<ËT¦Ý~‘ZZ¯Ñ‹õïS^T (§4ð÷8ÿSíõÝÕ…y¤u:®ì—Ü]ÈÈiå 1j)ïªêY½ÒÑÄÄ!‘ù¶†«Èc­"Áå¥íñÓ!,*lœÕøÊgu;Ê Ýuü°ÊxB4«“E)¢Ê˜j6ÄßK-åützóž"aºýÌ•™øÁyV;_Ôþ:žþ–zIŒ=^ìßÃÉl¾o~ïdîÐK@n¼ó®#HÑ9UïÒž]¶þtzm{§~uZYžP²8Ítoº?ŠíÊHõ…oèú@ô-sZïÕá{v ˜y¡àSsâÁü†¶Ð=ÈìDpµSŠ^]k«ktg[b#¢÷>½ØØ7»Ú,­{ü0öîÝ{ŽŽŽóæÍ9rd= ¼¼üñãÇ¡¡¡n;w<~ûutÖÿgÕÉ£ûUr€!&¯i Òñç(RF;‚&]Ú¼üY>‹4qƒÅN+GÉÒZN=ëò‚Ø:Kû ~W‘ £NÅÒLwŒQ @íËc«·c†nÞ‹ÕÚŸÀ0úY:¤}1`ëß^ÅlЏšÑ¼½cU[­9£Šª éψ۱(ª@@J]Ší‘ÓÍ$RD´Ví]ºÝÞ#Ly‘ÏLe:jX¹¬¨ór[Q ÒÚó6m˜Â[l±W¡îž‘Yh’}ô,¬ýöÉ,² pW£«1lž^ rZ–\PÅA…K·¬ÙTŠ®`ºáĨ‚+Û,£ÿÚ½k~_>1ö…[íûÇîûÂ}Dy¼çßlÝþ§Õ2_e§Ús»Œ ±žvÍ}[zò®ƒKÔÙóM<teZI½ ¢î”õGWiI¶šÃRh"’"€5­d”Rîÿ‡ÁxkÿóJBhÎI@ÍK^±TPmyœ“WA0d™Í?4ª'}f,›Àôß¾¦~«×ß|{%ðæ×%Gn ˜zíô¶•‰9å â=5Gô¡Â×¶ ‡õžb¯h¢J9µ˜‹.!-DUr†)v~¨éh$tVSá¯æå¦¯KŽÜ¬™üïÉ 'Vƒhïa“¬üNÿ!õ©FÞ'9Åw\唯øçø[ãm»­5…êó.lÛ|1o÷Ö©JÀ­zvÄi¦±v¿½¾$å«tac~{ÊòÕ[…÷RÞÚI³x9‹ÜÀÇP¿ÒÑ•-öíW>ºnÑþš¨\_-uIÚçyéEG†ŸÆ§ Ù8ëߠó–ØÀ§?šâëÓþYT%‹ÓLwA÷e®¸Š:cçmž¯ý.p…éîÄr€¦dsåúαšïß>æç²AÉâ4Óî²hktµˆÒ ³¶,ÔÏÞ¯mòª1tÕÇs“Ç9Ç5®SøðØð¦»^†Æ"ßG.Ëoø»O*¢+ü1B‡¸äqøeݯêŠÿÏüsÛµûn›ŒÙ›TóÓéM&õ™/Šño¸=Uaf`Î^ñ}Ëœ#*E”Žùgó¼¡)îX^ÌûfÉÁo§×Ï—Ïê˜5¾‚^4¥¿ƒ.ûj½ðÚôt¶-–âªcu©ÙË‚ºÎá±SbÍF»=iûÂ"’S¿U>«Éò½æÆÆ8U||EìOßèãó ƒWíbÒ4æop¶í}kúXçÛÜnï_síÀ`.ù×Ù{Aõk{[ݯü,ó³++HçÔôé[Ò;q¥#-ÅW¯®´EÒ‰Hû×Wn dµ&8¬YµÖ¤'@yмI¶O{&€+¦¿5ɯà\ËÝ™µ\¢KøžqoÜ?ë—ƒ[óòôúmO†nÙ¿BK”ò}d¨Í½àìtSeƒ§Ý0q °Óެõ§ÙX>Hø›ª^[’SPÕY‘§_rÝ5W =/ˆø¡¨Ï?×¼Á…÷oîñÿ â?sãÒÿþC£ÐÚ¦ÔYÌ””¸Q¾Û¬”ô ‹µWog« _d1Óš>¹…ìOo7Ãó^¾LMÏJIÏÊ*%>äVí¥fÁ\zzNÒj<ì!uhÏîÖÉ,ç×L gÞ=¤ÛêG5šÂ\¿û8óÞ —ŋƚž7oêpÉ&„T gÕ©­5jô¼£·0üÑ&}ᦹGKÝ:}’‘Á”Ùö‘†‡/Ñh7!+¬íû+ ]³ÀPûOm³ 3–kZÃJ‘ÔóŽÅð{{×M1œ0uéÙû»Å´1…N*a³2æ[.”¿Ù9¢éET{W4öñš‹íX]}}s§ãwñôËzÓ€"$£ÞO­¯èR}û© PW ®ªØ¸]7Zƒ¼¿¶H„W쯮6@{ډˑÿŽk½d*?åh3j¯VSÜ1ÔWEÒ+Û‹ÃÎ'ãºÏ)_Ûò¤½„ê`Yx÷ìÁͤŒäÇ7£_4ý?LÌÉ…ïÂ@DRª]t—­^=ÝdÂäÅ'¢“ñ§û¦É¶¶ëá¡=ë=ÇÛ\_¹Ï½$ìpÌa˜P'X~¥ÈõâW ¨’f®QxZ€M_†€â”Ÿ%?ß0TŒ¤ˆ¬}í¶ ¡,íºó²‰²3CŠ¾È‘V=ñ°¾&ºòàÒ!‚ P)”_÷>"Ô±_èáÿ}·dö³ÿ|ÀêaÍÏ®YyÄï'³€"(×O½o¿¡Vûœõ@³}Ä]e¾OÈÑ®å/Pxÿbÿ/Á€@ Hr1¢âÏ’üA*¨üŸ7äV¥–€¾†,²›"W:d`ã :‡Uð"¯ªy‹¨²†Æ\PZQ¸º´VÆ`êù¸°·dó\  ;+¾¨y±§à@·ð€é±+õÝR×rUcn}4ÜÚ”ÒXêÒ<¥Á’Ó%_&Ìh½Ô'.Ÿe>HIŠŠ—Tq@ÚÀ\™ßœ#+Œ¿ËxS¬š8Ë¢Oˆ;³žÌ†ìÌC^wÌ]­Ž{è_½zíLXø©ìF}EM\=—Ñ.Œ6ß•À€¸¨Û žw‚Ïm¿¥¾6Y‰LB#Ï8=cËÄ…=Ü?%ïDŒÝýÖô€ûýg4”Ú¼lÐÙí©ìš²ìWU=>ÖCýÇÜW9™5ßÉd¥ø¶Åå+<4°Š_²@€]òÅ‚âýõ–Ó¢Îù­ 5?ˆqºœ°‘ _itý"&$†â6 öøÔ*¦¹SÂ!µ|Fo¾æ%õ×WÖ+gÄv׿êÂL§ïN¬€ØUÆËý{´®—¿Ê¼»^w† /‹óÕ‹"¢ ¦!Çh“)©-{Y\߯ð éÞ=Oy[‘wÑvÎuJY~ð"6üÑ[‚okøÇ!ÿ%ñò+½öâ°“t§SH,ß5 IüÅæ¼»³óĬ©Ökß Ðo=IãMDPF×W-’ ß•ˆ©z½ÿNðõf@Ô¬ânð1ç‹wðOýýqXðØíkcN^Ø5d[Ju‡X¾¥HõâßQqgë©óoFÅ ½vŸ@ ˆß …F£ðÏgÑûÍu²S|ãù¿ä–÷'° RÒ2*yÝ£0™©¹ð"5öyí°¸íkÇÊÿ{æ]YÞè¯#K‹Ëç]~–”æWÔC]zÈ©øe[ŽoÒ×Ý_NP¨Bb"B­æ4ã… Í©O|O'¼kJ›5%§”Á¤…fŠ¡¡…mflâ¦ÞYÇU=§ÌRΪQý]Ùg´ø$ê8D›_uy´µY¡Žš¡wÑBƒ–ž¬¼!ìb>ç@.ûÕ㘨g¦ÌHxY‚*£FËAf|~ ©„Ä®5ùë¥ÉáÓñUÕçfÌ?pûPóêñ+îdYŸÙs¶<¯æuÏ­­®a)±ÏÖ|3kt„V¥Úk‹§ðÍ“:¼@\F”¬ÃsËÃW[{Ý ‰<ðÊYÈiMåÁ?6ÆWtÀPü\ /lF-~ÏÕvxrqŽ¥vȽÛ Ò ù›·}1¾ž^Ôì¸lo0¥Ÿ`"¿Í§øªÌ;ÅÔýaÃËlþz1ýïÈ}˶ÏÌ—ž·èüœ¿ðu™×¢ –͵7‘~pãm>På'YŽ.ö¿þº«Ï–‘9¥ý8ìÝév»EÔ×ÔˆHQE´/!‰¿Òdç¹¶¤Ôb¤Ýõ €  -ÛF‡Ç<‡aF§‹ºôX)™ð]ˆø—"‹Ã6ÏÔ ©šÉqÓåw(ØØØ?ÿ»0ñ‚·Gød›¤êŽº’o)²–O)ЍÖÊ»–Tî±V³>öz¤ÊòÙ¶1åY'ê@ÿújmµ jR·­‹zxbÏŽèù±u–Û¸À%€Ëì3q÷F£ŠPÏc5“\fËÇó:•^M0zMp[;¢èô~Ÿç8 íÅû,åîôºðE öýkïª!™G÷a¶8YPuÚîÕCRýœÊmuPÙlój#v„pý¤­³Oøft´-†ò¤]kþHóÛ˜Ûö6á+µÅ–’‘ú´<£÷l›Y*Ig½ïå}¬á|½@ þ# €”Æ•B¡Sh ´ÊgÕ}ÈÏaLH„ÚâÌøƒ÷ªh¦—·þ1^ß³˜Ùêû1v*Ë×—¿%Ì’ ¦,=éΑY&§R* €ÂóKúä-öð½Y>H† ïÓï²4ó~ò /Ž=ÌbuH´‡‰ª(§¼àyxrÙ§;#šôÐEÖ‹çQä¯']m^€'mWÕ ˜¸Ô.:ÆX¯—àoSÎlupŒùÈŠY§kg{Ð+ꃺ” ·–U”›wh‡$žmÑdF:ï^k=JCŽuﳞxØîñÍm€‚s–R1&›vž/6í#U/cB7›èEÕ“KøiúÁ~ama«iýøé‰‡aî¿9¿Dò–ŽÍß´ Ý>¢œÊì¸À…«N¥5MÙêR½WX‰¹$`Š hø~ÂÑÖ1¶âY£³´×oá­L”DÎY¢¼'¼r'(Ï<áh³î~9µÎÓl{Þ9ìSd8ñtvSX튷+[Ïýð瞺cŠïܾ}÷Œ1$’˜·]1¾ž^DAèb©{ë¶½«)Gh¨ÈMºÁÄ òè%¡ûƧ5øëÕ´sœèN>uñ¾æ…çàá1«w}ã£. ¬ô¨“Ó†¯~XNtYj§´  â~Õ]àù65‹ˆwÄã”ö#ŠxmîÊþg\£X»©œ'm×=('‘Ä_ùgk•­ò¼ÖW€ø˜ó$ÈaêΨV3àΊLø® DüKqHô¢Vç=Hz3Ïû.À){ºÞPïö»ŽæèªŸyÌ 2ypdS¨ÉÖû8ü·Rd,RQýÍîþ•:ßÐ ¼”X©ø`zø­{/ÿ]ªã’Ìâ߉:Ò¿¾V[‚:›¯ÆY+4V»$ôÑÀ/Xš[=© … \ ;Õé¿F×}Ã'º?Ĺ@Ó^éyjtƺe.÷>§Wåð ü÷ž›å±¬ê÷÷6ï*´Xázݵ·Tç>Ž8¸ë| ‹F¥Óè=ìm¦ P’¨ý…=8íå÷ŽB¥·<T_t7€9ù¨ûÊÔ•G“ÙáÁV»›¾r^³'¶œ bŸß¡¶èšÖŽM‘nºŸò>»Øw¶ÛïL­ùêmÕV±Z–È r$úôï•^û¾ŠË¥ R¿‡^@ ÿ=¡ÕøP³[ PZï,ô{‡‡œ¦š¬ð—ûáuïrsŠØ\d" ›Ž!Øoü"Ç¿-)?Z<Ãùò{9åÇ4ÔwU} {tÈßɶškWþ˜¥ºS¯NÃ` Øqý”e²½ö? ]¹Àmuö놹 ÆÆs~óR7»<ýæoýüUÛB ø¯óœ–×f6eµàÿ¢úÖú×Ê·²IEND®B`‚python-can-3.3.2.final/doc/index.rst000066400000000000000000000033511352572415400173070ustar00rootroot00000000000000python-can ========== The **python-can** library provides Controller Area Network support for `Python `__, providing common abstractions to different hardware devices, and a suite of utilities for sending and receiving messages on a CAN bus. **python-can** runs any where Python runs; from high powered computers with commercial `CAN to usb` devices right down to low powered devices running linux such as a BeagleBone or RaspberryPi. More concretely, some example uses of the library: - Passively logging what occurs on a CAN bus. For example monitoring a commercial vehicle using its **OBD-II** port. - Testing of hardware that interacts via CAN. Modules found in modern cars, motocycles, boats, and even wheelchairs have had components tested from Python using this library. - Prototyping new hardware modules or software algorithms in-the-loop. Easily interact with an existing bus. - Creating virtual modules to prototype CAN bus communication. Brief example of the library in action: connecting to a CAN bus, creating and sending a message: .. literalinclude:: ../examples/send_one.py :language: python :linenos: Contents: .. toctree:: :maxdepth: 2 installation configuration api interfaces scripts development history Known Bugs ~~~~~~~~~~ See the project `bug tracker`_ on github. Patches and pull requests very welcome! .. admonition:: Documentation generated |today| .. _Python: http://www.python.org .. _Setuptools: http://pypi.python.org/pypi/setuptools .. _Pip: http://pip.openplans.org/ .. _easy_install: http://peak.telecommunity.com/DevCenter/EasyInstall .. _IPython: http://ipython.scipy.org .. _bug tracker: https://github.com/hardbyte/python-can/issues python-can-3.3.2.final/doc/installation.rst000066400000000000000000000050671352572415400207070ustar00rootroot00000000000000Installation ============ Install ``can`` with ``pip``: :: $ pip install python-can As most likely you will want to interface with some hardware, you may also have to install platform dependencies. Be sure to check any other specifics for your hardware in :doc:`interfaces`. GNU/Linux dependencies ---------------------- Reasonably modern Linux Kernels (2.6.25 or newer) have an implementation of ``socketcan``. This version of python-can will directly use socketcan if called with Python 3.3 or greater, otherwise that interface is used via ctypes. Windows dependencies -------------------- Kvaser ~~~~~~ To install ``python-can`` using the Kvaser CANLib SDK as the backend: 1. Install the `latest stable release of Python `__. 2. Install `Kvaser's latest Windows CANLib drivers `__. 3. Test that Kvaser's own tools work to ensure the driver is properly installed and that the hardware is working. PCAN ~~~~ Download and install the latest driver for your interface from `PEAK-System's download page `__. Note that PCANBasic API timestamps count seconds from system startup. To convert these to epoch times, the uptime library is used. If it is not available, the times are returned as number of seconds from system startup. To install the uptime library, run ``pip install uptime``. This library can take advantage of the `Python for Windows Extensions `__ library if installed. It will be used to get notified of new messages instead of the CPU intensive polling that will otherwise have be used. IXXAT ~~~~~ To install ``python-can`` using the IXXAT VCI V3 SDK as the backend: 1. Install `IXXAT's latest Windows VCI V3 SDK drivers `__. 2. Test that IXXAT's own tools (i.e. MiniMon) work to ensure the driver is properly installed and that the hardware is working. NI-CAN ~~~~~~ Download and install the NI-CAN drivers from `National Instruments `__. Currently the driver only supports 32-bit Python on Windows. neoVI ~~~~~ See :doc:`interfaces/neovi`. Installing python-can in development mode ----------------------------------------- A "development" install of this package allows you to make changes locally or pull updates from the Git repository and use them without having to reinstall. Download or clone the source repository then: :: python setup.py develop python-can-3.3.2.final/doc/interfaces.rst000066400000000000000000000021321352572415400203170ustar00rootroot00000000000000CAN Interface Modules --------------------- **python-can** hides the low-level, device-specific interfaces to controller area network adapters in interface dependant modules. However as each hardware device is different, you should carefully go through your interface's documentation. The available interfaces are: .. toctree:: :maxdepth: 1 interfaces/socketcan interfaces/kvaser interfaces/serial interfaces/slcan interfaces/ixxat interfaces/pcan interfaces/usb2can interfaces/nican interfaces/iscan interfaces/neovi interfaces/vector interfaces/virtual interfaces/canalystii interfaces/systec Additional interfaces can be added via a plugin interface. An external package can register a new interface by using the ``can.interface`` entry point in its setup.py. The format of the entry point is ``interface_name=module:classname`` where ``classname`` is a concrete :class:`can.BusABC` implementation. :: entry_points={ 'can.interface': [ "interface_name=module:classname", ] }, The *Interface Names* are listed in :doc:`configuration`. python-can-3.3.2.final/doc/interfaces/000077500000000000000000000000001352572415400175675ustar00rootroot00000000000000python-can-3.3.2.final/doc/interfaces/canalystii.rst000066400000000000000000000004371352572415400224650ustar00rootroot00000000000000CANalyst-II =========== CANalyst-II(+) is a USB to CAN Analyzer. The controlcan library is originally developed by `ZLG ZHIYUAN Electronics`_. Bus --- .. autoclass:: can.interfaces.canalystii.CANalystIIBus .. _ZLG ZHIYUAN Electronics: http://www.zlg.com/can/can/product/id/42.html python-can-3.3.2.final/doc/interfaces/iscan.rst000066400000000000000000000005031352572415400214140ustar00rootroot00000000000000isCAN ===== Interface for isCAN from `Thorsis Technologies GmbH`_, former ifak system GmbH. Bus --- .. autoclass:: can.interfaces.iscan.IscanBus .. autoexception:: can.interfaces.iscan.IscanError .. _Thorsis Technologies GmbH: https://www.thorsis.com/en/industrial-automation/usb-interfaces/can/iscan-usb-interface/ python-can-3.3.2.final/doc/interfaces/ixxat.rst000066400000000000000000000044321352572415400214610ustar00rootroot00000000000000.. _ixxatdoc: IXXAT Virtual CAN Interface =========================== Interface to `IXXAT `__ Virtual CAN Interface V3 SDK. Works on Windows. The Linux ECI SDK is currently unsupported, however on Linux some devices are supported with :doc:`socketcan`. The :meth:`~can.interfaces.ixxat.canlib.IXXATBus.send_periodic` method is supported natively through the on-board cyclic transmit list. Modifying cyclic messages is not possible. You will need to stop it, and then start a new periodic message. Bus --- .. autoclass:: can.interfaces.ixxat.IXXATBus :members: .. autoclass:: can.interfaces.ixxat.canlib.CyclicSendTask :members: Configuration file ------------------ The simplest configuration file would be:: [default] interface = ixxat channel = 0 Python-can will search for the first IXXAT device available and open the first channel. ``interface`` and ``channel`` parameters are interpreted by frontend ``can.interfaces.interface`` module, while the following parameters are optional and are interpreted by IXXAT implementation. * ``bitrate`` (default 500000) Channel bitrate * ``UniqueHardwareId`` (default first device) Unique hardware ID of the IXXAT device * ``rxFifoSize`` (default 16) Number of RX mailboxes * ``txFifoSize`` (default 16) Number of TX mailboxes * ``extended`` (default False) Allow usage of extended IDs Internals --------- The IXXAT :class:`~can.BusABC` object is a fairly straightforward interface to the IXXAT VCI library. It can open a specific device ID or use the first one found. The frame exchange *do not involve threads* in the background but is explicitly instantiated by the caller. - ``recv()`` is a blocking call with optional timeout. - ``send()`` is not blocking but may raise a VCIError if the TX FIFO is full RX and TX FIFO sizes are configurable with ``rxFifoSize`` and ``txFifoSize`` options, defaulting at 16 for both. The CAN filters act as a "whitelist" in IXXAT implementation, that is if you supply a non-empty filter list you must explicitly state EVERY frame you want to receive (including RTR field). The can_id/mask must be specified according to IXXAT behaviour, that is bit 0 of can_id/mask parameters represents the RTR field in CAN frame. See IXXAT VCI documentation, section "Message filters" for more info. python-can-3.3.2.final/doc/interfaces/kvaser.rst000066400000000000000000000024621352572415400216200ustar00rootroot00000000000000.. _kvaserdoc: Kvaser's CANLIB =============== `Kvaser `__'s CANLib SDK for Windows (also available on Linux). Bus --- .. autoclass:: can.interfaces.kvaser.canlib.KvaserBus :members: :exclude-members: get_stats Internals --------- The Kvaser :class:`~can.Bus` object with a physical CAN Bus can be operated in two modes; ``single_handle`` mode with one shared bus handle used for both reading and writing to the CAN bus, or with two separate bus handles. Two separate handles are needed if receiving and sending messages are done in different threads (see `Kvaser documentation `_). .. warning:: Any objects inheriting from `Bus`_ should *not* directly use the interface handle(/s). Message filtering ~~~~~~~~~~~~~~~~~ The Kvaser driver and hardware only supports setting one filter per handle. If one filter is requested, this is will be handled by the Kvaser driver. If more than one filter is needed, these will be handled in Python code in the ``recv`` method. If a message does not match any of the filters, ``recv()`` will return None. Custom methods ~~~~~~~~~~~~~~~~~ This section contains Kvaser driver specific methods. .. automethod:: can.interfaces.kvaser.canlib.KvaserBus.get_stats python-can-3.3.2.final/doc/interfaces/neovi.rst000066400000000000000000000015501352572415400214420ustar00rootroot00000000000000NEOVI Interface ================== .. warning:: This ``ICS NeoVI`` documentation is a work in progress. Feedback and revisions are most welcome! Interface to `Intrepid Control Systems `__ neoVI API range of devices via `python-ics `__ wrapper on Windows. Installation ------------ This neovi interface requires the installation of the ICS neoVI DLL and python-ics package. - Download and install the Intrepid Product Drivers `Intrepid Product Drivers `__ - Install python-ics .. code-block:: bash pip install python-ics Configuration ------------- An example `can.ini` file for windows 7: :: [default] interface = neovi channel = 1 Bus --- .. autoclass:: can.interfaces.ics_neovi.NeoViBus python-can-3.3.2.final/doc/interfaces/nican.rst000066400000000000000000000007741352572415400214210ustar00rootroot00000000000000NI-CAN ====== This interface adds support for CAN controllers by `National Instruments`_. .. warning:: NI-CAN only seems to support 32-bit architectures so if the driver can't be loaded on a 64-bit Python, try using a 32-bit version instead. .. warning:: CAN filtering has not been tested thoroughly and may not work as expected. Bus --- .. autoclass:: can.interfaces.nican.NicanBus .. autoexception:: can.interfaces.nican.NicanError .. _National Instruments: http://www.ni.com/can/ python-can-3.3.2.final/doc/interfaces/pcan.rst000066400000000000000000000023651352572415400212500ustar00rootroot00000000000000.. _pcandoc: PCAN Basic API ============== Interface to `Peak-System `__'s PCAN-Basic API. Windows driver: https://www.peak-system.com/Downloads.76.0.html?&L=1 Linux driver: https://www.peak-system.com/fileadmin/media/linux/index.htm#download and https://www.peak-system.com/Downloads.76.0.html?&L=1 (PCAN-Basic API (Linux)) Mac driver: http://www.mac-can.com Configuration ------------- Here is an example configuration file for using `PCAN-USB `_: :: [default] interface = pcan channel = PCAN_USBBUS1 state = can.bus.BusState.PASSIVE bitrate = 500000 ``channel``: (default PCAN_USBBUS1) CAN interface name ``state``: (default can.bus.BusState.ACTIVE) BusState of the channel ``bitrate``: (default 500000) Channel bitrate Valid ``channel`` values: :: PCAN_ISABUSx PCAN_DNGBUSx PCAN_PCIBUSx PCAN_USBBUSx PCAN_PCCBUSx PCAN_LANBUSx Where ``x`` should be replaced with the desired channel number starting at 1. Linux installation ------------------ Kernels >= 3.4 supports the PCAN adapters natively via :doc:`/interfaces/socketcan`, refer to: :ref:`socketcan-pcan`. Bus --- .. autoclass:: can.interfaces.pcan.PcanBus python-can-3.3.2.final/doc/interfaces/serial.rst000066400000000000000000000142701352572415400216040ustar00rootroot00000000000000.. _serial: CAN over Serial =============== A text based interface. For example use over serial ports like ``/dev/ttyS1`` or ``/dev/ttyUSB0`` on Linux machines or ``COM1`` on Windows. Remote ports can be also used via a special URL. Both raw TCP sockets as also RFC2217 ports are supported: ``socket://192.168.254.254:5000`` or ``rfc2217://192.168.254.254:5000``. In addition a virtual loopback can be used via ``loop://`` URL. The interface is a simple implementation that has been used for recording CAN traces. .. note:: The properties **extended_id**, **is_remote_frame** and **is_error_frame** from the class:`~can.Message` are not in use. This interface will not send or receive flags for this properties. Bus --- .. autoclass:: can.interfaces.serial.serial_can.SerialBus Internals --------- The frames that will be sent and received over the serial interface consist of six parts. The start and the stop byte for the frame, the timestamp, DLC, arbitration ID and the payload. The payload has a variable length of between 0 and 8 bytes, the other parts are fixed. Both, the timestamp and the arbitration ID will be interpreted as 4 byte unsigned integers. The DLC is also an unsigned integer with a length of 1 byte. Serial frame format ^^^^^^^^^^^^^^^^^^^ +-------------------+----------------+-----------------------------------------------+-------------------------------+-------------------------+---------+--------------+ | | Start of frame | Timestamp | DLC | Arbitration ID | Payload | End of frame | +===================+================+==============================+================+===============================+=========================+=========+==============+ | **Length (Byte)** | 1 | 4 | 1 | 4 | 0 - 8 | 1 | +-------------------+----------------+-----------------------------------------------+-------------------------------+-------------------------+---------+--------------+ | **Data type** | Byte | Unsigned 4 byte integer | Unsigned 1 byte integer | Unsigned 4 byte integer | Byte | Byte | +-------------------+----------------+-----------------------------------------------+-------------------------------+-------------------------+---------+--------------+ | **Byte order** | \- | Little-Endian | Little-Endian | Little-Endian | \- | \- | +-------------------+----------------+-----------------------------------------------+-------------------------------+-------------------------+---------+--------------+ | **Description** | Must be 0xAA | Usually s, ms or µs since start of the device | Length in byte of the payload | \- | \- | Must be 0xBB | +-------------------+----------------+-----------------------------------------------+-------------------------------+-------------------------+---------+--------------+ Examples of serial frames ^^^^^^^^^^^^^^^^^^^^^^^^^ .. rubric:: CAN message with 8 byte payload +----------------+-----------------------------------------+ | CAN message | +----------------+-----------------------------------------+ | Arbitration ID | Payload | +================+=========================================+ | 1 | 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 | +----------------+-----------------------------------------+ +----------------+---------------------+------+---------------------+-----------------------------------------+--------------+ | Serial frame | +----------------+---------------------+------+---------------------+-----------------------------------------+--------------+ | Start of frame | Timestamp | DLC | Arbitration ID | Payload | End of frame | +================+=====================+======+=====================+=========================================+==============+ | 0xAA | 0x66 0x73 0x00 0x00 | 0x08 | 0x01 0x00 0x00 0x00 | 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 | 0xBB | +----------------+---------------------+------+---------------------+-----------------------------------------+--------------+ .. rubric:: CAN message with 1 byte payload +----------------+---------+ | CAN message | +----------------+---------+ | Arbitration ID | Payload | +================+=========+ | 1 | 0x11 | +----------------+---------+ +----------------+---------------------+------+---------------------+---------+--------------+ | Serial frame | +----------------+---------------------+------+---------------------+---------+--------------+ | Start of frame | Timestamp | DLC | Arbitration ID | Payload | End of frame | +================+=====================+======+=====================+=========+==============+ | 0xAA | 0x66 0x73 0x00 0x00 | 0x01 | 0x01 0x00 0x00 0x00 | 0x11 | 0xBB | +----------------+---------------------+------+---------------------+---------+--------------+ .. rubric:: CAN message with 0 byte payload +----------------+---------+ | CAN message | +----------------+---------+ | Arbitration ID | Payload | +================+=========+ | 1 | None | +----------------+---------+ +----------------+---------------------+------+---------------------+--------------+ | Serial frame | +----------------+---------------------+------+---------------------+--------------+ | Start of frame | Timestamp | DLC | Arbitration ID | End of frame | +================+=====================+======+=====================+==============+ | 0xAA | 0x66 0x73 0x00 0x00 | 0x00 | 0x01 0x00 0x00 0x00 | 0xBBS | +----------------+---------------------+------+---------------------+--------------+ python-can-3.3.2.final/doc/interfaces/slcan.rst000077500000000000000000000020371352572415400214260ustar00rootroot00000000000000.. _slcan: CAN over Serial / SLCAN ======================== A text based interface: compatible to slcan-interfaces (slcan ASCII protocol) should also support LAWICEL direct. These interfaces can also be used with socketcan and slcand with Linux. This driver directly uses either the local or remote serial port, it makes slcan-compatible interfaces usable with Windows also. Remote serial ports will be specified via special URL. Both raw TCP sockets as also RFC2217 ports are supported. Usage: use ``port or URL[@baurate]`` to open the device. For example use ``/dev/ttyUSB0@115200`` or ``COM4@9600`` for local serial ports and ``socket://192.168.254.254:5000`` or ``rfc2217://192.168.254.254:5000`` for remote ports. .. note: An Arduino-Interface could easily be build with this: https://github.com/latonita/arduino-canbus-monitor Supported devices ----------------- .. todo:: Document this. Bus --- .. autoclass:: can.interfaces.slcan.slcanBus :members: Internals --------- .. todo:: Document the internals of slcan interface. python-can-3.3.2.final/doc/interfaces/socketcan.rst000066400000000000000000000136551352572415400223050ustar00rootroot00000000000000SocketCAN ========= The full documentation for socketcan can be found in the kernel docs at `networking/can.txt `_. .. note:: Versions before 2.2 had two different implementations named ``socketcan_ctypes`` and ``socketcan_native``. These are now deprecated and the aliases to ``socketcan`` will be removed in version 4.0. 3.x releases raise a DeprecationWarning. Socketcan Quickstart -------------------- The CAN network driver provides a generic interface to setup, configure and monitor CAN devices. To configure bit-timing parameters use the program ``ip``. The virtual CAN driver (vcan) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The virtual CAN interfaces allow the transmission and reception of CAN frames without real CAN controller hardware. Virtual CAN network devices are usually named 'vcanX', like vcan0 vcan1 vcan2. To create a virtual can interface using socketcan run the following: .. code-block:: bash sudo modprobe vcan # Create a vcan network interface with a specific name sudo ip link add dev vcan0 type vcan sudo ip link set vcan0 up Real Device ~~~~~~~~~~~ ``vcan`` should be substituted for ``can`` and ``vcan0`` should be substituted for ``can0`` if you are using real hardware. Setting the bitrate can also be done at the same time, for example to enable an existing ``can0`` interface with a bitrate of 1MB: .. code-block:: bash sudo ip link set can0 up type can bitrate 1000000 .. _socketcan-pcan: PCAN ~~~~ Kernels >= 3.4 supports the PCAN adapters natively via :doc:`/interfaces/socketcan`, so there is no need to install any drivers. The CAN interface can be brought like so: :: sudo modprobe peak_usb sudo modprobe peak_pci sudo ip link set can0 up type can bitrate 500000 Send Test Message ^^^^^^^^^^^^^^^^^ The `can-utils `_ library for linux includes a script `cansend` which is useful to send known payloads. For example to send a message on `vcan0`: .. code-block:: bash cansend vcan0 123#DEADBEEF CAN Errors ^^^^^^^^^^ A device may enter the "bus-off" state if too many errors occurred on the CAN bus. Then no more messages are received or sent. An automatic bus-off recovery can be enabled by setting the "restart-ms" to a non-zero value, e.g.: .. code-block:: bash sudo ip link set canX type can restart-ms 100 Alternatively, the application may realize the "bus-off" condition by monitoring CAN error frames and do a restart when appropriate with the command: .. code-block:: bash ip link set canX type can restart Note that a restart will also create a CAN error frame. List network interfaces ~~~~~~~~~~~~~~~~~~~~~~~ To reveal the newly created ``can0`` or a ``vcan0`` interface: .. code-block:: bash ifconfig Display CAN statistics ~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash ip -details -statistics link show vcan0 Network Interface Removal ~~~~~~~~~~~~~~~~~~~~~~~~~ To remove the network interface: .. code-block:: bash sudo ip link del vcan0 Wireshark --------- Wireshark supports socketcan and can be used to debug *python-can* messages. Fire it up and watch your new interface. To spam a bus: .. code-block:: python import time import can bustype = 'socketcan' channel = 'vcan0' def producer(id): """:param id: Spam the bus with messages including the data id.""" bus = can.interface.Bus(channel=channel, bustype=bustype) for i in range(10): msg = can.Message(arbitration_id=0xc0ffee, data=[id, i, 0, 1, 3, 1, 4, 1], is_extended_id=False) bus.send(msg) time.sleep(1) producer(10) With debugging turned right up this looks something like this: .. image:: ../images/wireshark.png :width: 100% The process to follow bus traffic is even easier: .. code-block:: python for message in Bus(can_interface): print(message) Reading and Timeouts -------------------- Reading a single CAN message off of the bus is simple with the ``bus.recv()`` function: .. code-block:: python import can can_interface = 'vcan0' bus = can.interface.Bus(can_interface, bustype='socketcan') message = bus.recv() By default, this performs a blocking read, which means ``bus.recv()`` won't return until a CAN message shows up on the socket. You can optionally perform a blocking read with a timeout like this: .. code-block:: python message = bus.recv(1.0) # Timeout in seconds. if message is None: print('Timeout occurred, no message.') If you set the timeout to ``0.0``, the read will be executed as non-blocking, which means ``bus.recv(0.0)`` will return immediately, either with a ``Message`` object or ``None``, depending on whether data was available on the socket. Filtering --------- The implementation features efficient filtering of can_id's. That filtering occurs in the kernel and is much much more efficient than filtering messages in Python. Broadcast Manager ----------------- The ``socketcan`` interface implements thin wrappers to the linux `broadcast manager` socket api. This allows the cyclic transmission of CAN messages at given intervals. The overhead for periodic message sending is extremely low as all the heavy lifting occurs within the linux kernel. send_periodic() ~~~~~~~~~~~~~~~ An example that uses the send_periodic is included in ``python-can/examples/cyclic.py`` The object returned can be used to halt, alter or cancel the periodic message task. .. autoclass:: can.interfaces.socketcan.CyclicSendTask Bus --- .. autoclass:: can.interfaces.socketcan.SocketcanBus .. method:: recv(timeout=None) Block waiting for a message from the Bus. :param float timeout: seconds to wait for a message or None to wait indefinitely :rtype: can.Message or None :return: None on timeout or a :class:`can.Message` object. :raises can.CanError: if an error occurred while reading python-can-3.3.2.final/doc/interfaces/systec.rst000066400000000000000000000047311352572415400216400ustar00rootroot00000000000000.. _systec: SYSTEC interface ================ Windows interface for the USBCAN devices supporting up to 2 channels based on the particular product. There is support for the devices also on Linux through the :doc:`socketcan` interface and for Windows using this ``systec`` interface. Installation ------------ The interface requires installation of the **USBCAN32.dll** library. Download and install the driver for specific `SYSTEC `__ device. Supported devices ----------------- The interface supports following devices: - GW-001 (obsolete), - GW-002 (obsolete), - Multiport CAN-to-USB G3, - USB-CANmodul1 G3, - USB-CANmodul2 G3, - USB-CANmodul8 G3, - USB-CANmodul16 G3, - USB-CANmodul1 G4, - USB-CANmodul2 G4. Bus --- .. autoclass:: can.interfaces.systec.ucanbus.UcanBus :members: Configuration ------------- The simplest configuration would be:: interface = systec channel = 0 Python-can will search for the first device found if not specified explicitly by the ``device_number`` parameter. The ``interface`` and ``channel`` are the only mandatory parameters. The interface supports two channels 0 and 1. The maximum number of entries in the receive and transmit buffer can be set by the parameters ``rx_buffer_entries`` and ``tx_buffer_entries``, with default value 4096 set for both. Optional parameters: * ``bitrate`` (default 500000) Channel bitrate in bit/s * ``device_number`` (default first device) The device number of the USB-CAN * ``rx_buffer_entries`` (default 4096) The maximum number of entries in the receive buffer * ``tx_buffer_entries`` (default 4096) The maximum number of entries in the transmit buffer * ``state`` (default BusState.ACTIVE) BusState of the channel * ``receive_own_messages`` (default False) If messages transmitted should also be received back Internals --------- Message filtering ~~~~~~~~~~~~~~~~~ The interface and driver supports only setting of one filter per channel. If one filter is requested, this is will be handled by the driver itself. If more than one filter is needed, these will be handled in Python code in the ``recv`` method. If a message does not match any of the filters, ``recv()`` will return None. Periodic tasks ~~~~~~~~~~~~~~ The driver supports periodic message sending but without the possibility to set the interval between messages. Therefore the handling of the periodic messages is done by the interface using the :class:`~can.broadcastmanager.ThreadBasedCyclicSendTask`. python-can-3.3.2.final/doc/interfaces/usb2can.rst000066400000000000000000000120561352572415400216620ustar00rootroot00000000000000USB2CAN Interface ================= OVERVIEW -------- The `USB2CAN `_ is a cheap CAN interface based on an ARM7 chip (STR750FV2). There is support for this device on Linux through the :doc:`socketcan` interface and for Windows using this ``usb2can`` interface. WINDOWS SUPPORT --------------- Support though windows is achieved through a DLL very similar to the way the PCAN functions. The API is called CANAL (CAN Abstraction Layer) which is a separate project designed to be used with VSCP which is a socket like messaging system that is not only cross platform but also supports other types of devices. This device can be used through one of three ways 1)Through python-can 2)CANAL API either using the DLL and C/C++ or through the python wrapper that has been added to this project 3)VSCP Using python-can is strongly suggested as with little extra work the same interface can be used on both Windows and Linux. WINDOWS INSTALL --------------- 1. To install on Windows download the USB2CAN Windows driver. It is compatible with XP, Vista, Win7, Win8/8.1. (Written against driver version v1.0.2.1) 2. Install the appropriate version of `pywin32 `_ (win32com) 3. Download the USB2CAN CANAL DLL from the USB2CAN website. Place this in either the same directory you are running usb2can.py from or your DLL folder in your python install. Note that only a 32-bit version is currently available, so this only works in a 32-bit Python environment. (Written against CANAL DLL version v1.0.6) Interface Layout ---------------- - ``usb2canabstractionlayer.py`` This file is only a wrapper for the CANAL API that the interface expects. There are also a couple of constants here to try and make dealing with the bitwise operations for flag setting a little easier. Other than that this is only the CANAL API. If a programmer wanted to work with the API directly this is the file that allows you to do this. The CANAL project does not provide this wrapper and normally must be accessed with C. - ``usb2canInterface.py`` This file provides the translation to and from the python-can library to the CANAL API. This is where all the logic is and setup code is. Most issues if they are found will be either found here or within the DLL that is provided - ``serial_selector.py`` See the section below for the reason for adding this as it is a little odd. What program does is if a serial number is not provided to the usb2canInterface file this program does WMI (Windows Management Instrumentation) calls to try and figure out what device to connect to. It then returns the serial number of the device. Currently it is not really smart enough to figure out what to do if there are multiple devices. This needs to be changed if people are using more than one interface. Interface Specific Items ------------------------ There are a few things that are kinda strange about this device and are not overly obvious about the code or things that are not done being implemented in the DLL. 1. You need the Serial Number to connect to the device under Windows. This is part of the "setup string" that configures the device. There are a few options for how to get this. 1. Use usb2canWin.py to find the serial number 2. Look on the device and enter it either through a prompt/barcode scanner/hardcode it.(Not recommended) 3. Reprogram the device serial number to something and do that for all the devices you own. (Really Not Recommended, can no longer use multiple devices on one computer) 2. In usb2canabstractionlayer.py there is a structure called CanalMsg which has a unsigned byte array of size 8. In the usb2canInterface file it passes in an unsigned byte array of size 8 also which if you pass less than 8 bytes in it stuffs it with extra zeros. So if the data "01020304" is sent the message would look like "0102030400000000". There is also a part of this structure called sizeData which is the actual length of the data that was sent not the stuffed message (in this case would be 4). What then happens is although a message of size 8 is sent to the device only the length of information so the first 4 bytes of information would be sent. This is done because the DLL expects a length of 8 and nothing else. So to make it compatible that has to be sent through the wrapper. If usb2canInterface sent an array of length 4 with sizeData of 4 as well the array would throw an incompatible data type error. There is a Wireshark file posted in Issue #36 that demonstrates that the bus is only sending the data and not the extra zeros. 3. The masking features have not been implemented currently in the CANAL interface in the version currently on the USB2CAN website. .. warning:: Currently message filtering is not implemented. Contributions are most welcome! Bus --- .. autoclass:: can.interfaces.usb2can.Usb2canBus Internals --------- .. autoclass:: can.interfaces.usb2can.Usb2CanAbstractionLayer :members: :undoc-members: python-can-3.3.2.final/doc/interfaces/vector.rst000066400000000000000000000017601352572415400216270ustar00rootroot00000000000000Vector ====== This interface adds support for CAN controllers by `Vector`_. By default this library uses the channel configuration for CANalyzer. To use a different application, open Vector Hardware Config program and create a new application and assign the channels you may want to use. Specify the application name as ``app_name='Your app name'`` when constructing the bus or in a config file. Channel should be given as a list of channels starting at 0. Here is an example configuration file connecting to CAN 1 and CAN 2 for an application named "python-can":: [default] interface = vector channel = 0, 1 app_name = python-can If you are using Python 2.7 it is recommended to install pywin32_, otherwise a slow and CPU intensive polling will be used when waiting for new messages. Bus --- .. autoclass:: can.interfaces.vector.VectorBus .. autoexception:: can.interfaces.vector.VectorError .. _Vector: https://vector.com/ .. _pywin32: https://sourceforge.net/projects/pywin32/ python-can-3.3.2.final/doc/interfaces/virtual.rst000066400000000000000000000010541352572415400220070ustar00rootroot00000000000000Virtual ======= The virtual interface can be used as a way to write OS and driver independent tests. A virtual CAN bus that can be used for automatic tests. Any Bus instances connecting to the same channel (in the same python program) will get each others messages. .. code-block:: python import can bus1 = can.interface.Bus('test', bustype='virtual') bus2 = can.interface.Bus('test', bustype='virtual') msg1 = can.Message(arbitration_id=0xabcde, data=[1,2,3]) bus1.send(msg1) msg2 = bus2.recv() assert msg1 == msg2 python-can-3.3.2.final/doc/internal-api.rst000066400000000000000000000105701352572415400205640ustar00rootroot00000000000000.. _internalapi: Internal API ============ Here we document the odds and ends that are more helpful for creating your own interfaces or listeners but generally shouldn't be required to interact with python-can. .. _businternals: Extending the ``BusABC`` class ------------------------------ Concrete implementations **must** implement the following: * :meth:`~can.BusABC.send` to send individual messages * :meth:`~can.BusABC._recv_internal` to receive individual messages (see note below!) * set the :attr:`~can.BusABC.channel_info` attribute to a string describing the underlying bus and/or channel They **might** implement the following: * :meth:`~can.BusABC.flush_tx_buffer` to allow discarding any messages yet to be sent * :meth:`~can.BusABC.shutdown` to override how the bus should shut down * :meth:`~can.BusABC._send_periodic_internal` to override the software based periodic sending and push it down to the kernel or hardware. * :meth:`~can.BusABC._apply_filters` to apply efficient filters to lower level systems like the OS kernel or hardware. * :meth:`~can.BusABC._detect_available_configs` to allow the interface to report which configurations are currently available for new connections. * :meth:`~can.BusABC.state` property to allow reading and/or changing the bus state. .. note:: *TL;DR*: Only override :meth:`~can.BusABC._recv_internal`, never :meth:`~can.BusABC.recv` directly. Previously, concrete bus classes had to override :meth:`~can.BusABC.recv` directly instead of :meth:`~can.BusABC._recv_internal`, but that has changed to allow the abstract base class to handle in-software message filtering as a fallback. All internal interfaces now implement that new behaviour. Older (custom) interfaces might still be implemented like that and thus might not provide message filtering: Concrete instances are usually created by :class:`can.Bus` which takes the users configuration into account. Bus Internals ~~~~~~~~~~~~~ Several methods are not documented in the main :class:`can.BusABC` as they are primarily useful for library developers as opposed to library users. This is the entire ABC bus class with all internal methods: .. autoclass:: can.BusABC :private-members: :special-members: :noindex: About the IO module ------------------- Handling of the different file formats is implemented in :mod:`can.io`. Each file/IO type is within a separate module and ideally implements both a *Reader* and a *Writer*. The reader usually extends :class:`can.io.generic.BaseIOHandler`, while the writer often additionally extends :class:`can.Listener`, to be able to be passed directly to a :class:`can.Notifier`. Adding support for new file formats ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This assumes that you want to add a new file format, called *canstore*. Ideally add both reading and writing support for the new file format, although this is not strictly required. 1. Create a new module: *can/io/canstore.py* (*or* simply copy some existing one like *can/io/csv.py*) 2. Implement a reader ``CanstoreReader`` (which often extends :class:`can.io.generic.BaseIOHandler`, but does not have to). Besides from a constructor, only ``__iter__(self)`` needs to be implemented. 3. Implement a writer ``CanstoreWriter`` (which often extends :class:`can.io.generic.BaseIOHandler` and :class:`can.Listener`, but does not have to). Besides from a constructor, only ``on_message_received(self, msg)`` needs to be implemented. 4. Add a case to ``can.io.player.LogReader``'s ``__new__()``. 5. Document the two new classes (and possibly additional helpers) with docstrings and comments. Please mention features and limitations of the implementation. 6. Add a short section to the bottom of *doc/listeners.rst*. 7. Add tests where appropriate, for example by simply adding a test case called `class TestCanstoreFileFormat(ReaderWriterTest)` to *test/logformats_test.py*. That should already handle all of the general testing. Just follow the way the other tests in there do it. 8. Add imports to *can/__init__py* and *can/io/__init__py* so that the new classes can be simply imported as *from can import CanstoreReader, CanstoreWriter*. IO Utilities ~~~~~~~~~~~~ .. automodule:: can.io.generic :members: Other Utilities --------------- .. automodule:: can.util :members: python-can-3.3.2.final/doc/listeners.rst000066400000000000000000000106111352572415400202050ustar00rootroot00000000000000Listeners ========= Listener -------- The Listener class is an "abstract" base class for any objects which wish to register to receive notifications of new messages on the bus. A Listener can be used in two ways; the default is to **call** the Listener with a new message, or by calling the method **on_message_received**. Listeners are registered with :ref:`notifier` object(s) which ensure they are notified whenever a new message is received. Subclasses of Listener that do not override **on_message_received** will cause :class:`NotImplementedError` to be thrown when a message is received on the CAN bus. .. autoclass:: can.Listener :members: There are some listeners that already ship together with `python-can` and are listed below. Some of them allow messages to be written to files, and the corresponding file readers are also documented here. .. note :: Please note that writing and the reading a message might not always yield a completely unchanged message again, since some properties are not (yet) supported by some file formats. BufferedReader -------------- .. autoclass:: can.BufferedReader :members: .. autoclass:: can.AsyncBufferedReader :members: Logger ------ The :class:`can.Logger` uses the following :class:`can.Listener` types to create log files with different file types of the messages received. .. autoclass:: can.Logger :members: Printer ------- .. autoclass:: can.Printer :members: CSVWriter --------- .. autoclass:: can.CSVWriter :members: .. autoclass:: can.CSVReader :members: SqliteWriter ------------ .. autoclass:: can.SqliteWriter :members: .. autoclass:: can.SqliteReader :members: Database table format ~~~~~~~~~~~~~~~~~~~~~ The messages are written to the table ``messages`` in the sqlite database by default. The table is created if it does not already exist. The entries are as follows: ============== ============== ============== Name Data type Note -------------- -------------- -------------- ts REAL The timestamp of the message arbitration_id INTEGER The arbitration id, might use the extended format extended INTEGER ``1`` if the arbitration id uses the extended format, else ``0`` remote INTEGER ``1`` if the message is a remote frame, else ``0`` error INTEGER ``1`` if the message is an error frame, else ``0`` dlc INTEGER The data length code (DLC) data BLOB The content of the message ============== ============== ============== ASC (.asc Logging format) ------------------------- ASCWriter logs CAN data to an ASCII log file compatible with other CAN tools such as Vector CANalyzer/CANoe and other. Since no official specification exists for the format, it has been reverse- engineered from existing log files. One description of the format can be found `here `_. .. note:: Channels will be converted to integers. .. autoclass:: can.ASCWriter :members: ASCReader reads CAN data from ASCII log files .asc, as further references can-utils can be used: `asc2log `_, `log2asc `_. .. autoclass:: can.ASCReader :members: Log (.log can-utils Logging format) ----------------------------------- CanutilsLogWriter logs CAN data to an ASCII log file compatible with `can-utils ` As specification following references can-utils can be used: `asc2log `_, `log2asc `_. .. autoclass:: can.CanutilsLogWriter :members: **CanutilsLogReader** reads CAN data from ASCII log files .log .. autoclass:: can.CanutilsLogReader :members: BLF (Binary Logging Format) --------------------------- Implements support for BLF (Binary Logging Format) which is a proprietary CAN log format from Vector Informatik GmbH. The data is stored in a compressed format which makes it very compact. .. note:: Channels will be converted to integers. .. autoclass:: can.BLFWriter :members: The following class can be used to read messages from BLF file: .. autoclass:: can.BLFReader :members: python-can-3.3.2.final/doc/message.rst000066400000000000000000000135161352572415400176300ustar00rootroot00000000000000Message ======= .. module:: can .. autoclass:: Message One can instantiate a :class:`~can.Message` defining data, and optional arguments for all attributes such as arbitration ID, flags, and timestamp. >>> from can import Message >>> test = Message(data=[1, 2, 3, 4, 5]) >>> test.data bytearray(b'\x01\x02\x03\x04\x05') >>> test.dlc 5 >>> print(test) Timestamp: 0.000000 ID: 00000000 010 DLC: 5 01 02 03 04 05 The :attr:`~can.Message.arbitration_id` field in a CAN message may be either 11 bits (standard addressing, CAN 2.0A) or 29 bits (extended addressing, CAN 2.0B) in length, and ``python-can`` exposes this difference with the :attr:`~can.Message.is_extended_id` attribute. .. attribute:: timestamp :type: float The timestamp field in a CAN message is a floating point number representing when the message was received since the epoch in seconds. Where possible this will be timestamped in hardware. .. attribute:: arbitration_id :type: int The frame identifier used for arbitration on the bus. The arbitration ID can take an int between 0 and the maximum value allowed depending on the ``is_extended_id`` flag (either 2\ :sup:`11` - 1 for 11-bit IDs, or 2\ :sup:`29` - 1 for 29-bit identifiers). >>> print(Message(is_extended_id=False, arbitration_id=100)) Timestamp: 0.000000 ID: 0064 S DLC: 0 .. attribute:: data :type: bytearray The data parameter of a CAN message is exposed as a **bytearray** with length between 0 and 8. >>> example_data = bytearray([1, 2, 3]) >>> print(Message(data=example_data)) Timestamp: 0.000000 ID: 00000000 X DLC: 3 01 02 03 A :class:`~can.Message` can also be created with bytes, or lists of ints: >>> m1 = Message(data=[0x64, 0x65, 0x61, 0x64, 0x62, 0x65, 0x65, 0x66]) >>> print(m1.data) bytearray(b'deadbeef') >>> m2 = Message(data=b'deadbeef') >>> m2.data bytearray(b'deadbeef') .. attribute:: dlc :type: int The :abbr:`DLC (Data Length Code)` parameter of a CAN message is an integer between 0 and 8 representing the frame payload length. In the case of a CAN FD message, this indicates the data length in number of bytes. >>> m = Message(data=[1, 2, 3]) >>> m.dlc 3 .. note:: The DLC value does not necessarily define the number of bytes of data in a message. Its purpose varies depending on the frame type - for data frames it represents the amount of data contained in the message, in remote frames it represents the amount of data being requested. .. attribute:: channel :type: str or int or None This might store the channel from which the message came. .. attribute:: is_extended_id :type: bool This flag controls the size of the :attr:`~can.Message.arbitration_id` field. Previously this was exposed as `id_type`. >>> print(Message(is_extended_id=False)) Timestamp: 0.000000 ID: 0000 S DLC: 0 >>> print(Message(is_extended_id=True)) Timestamp: 0.000000 ID: 00000000 X DLC: 0 .. note:: The initializer argument and attribute ``extended_id`` has been deprecated in favor of ``is_extended_id``, but will continue to work for the ``3.x`` release series. .. attribute:: is_error_frame :type: bool This boolean parameter indicates if the message is an error frame or not. >>> print(Message(is_error_frame=True)) Timestamp: 0.000000 ID: 00000000 X E DLC: 0 .. attribute:: is_remote_frame :type: bool This boolean attribute indicates if the message is a remote frame or a data frame, and modifies the bit in the CAN message's flags field indicating this. >>> print(Message(is_remote_frame=True)) Timestamp: 0.000000 ID: 00000000 X R DLC: 0 .. attribute:: is_fd :type: bool Indicates that this message is a CAN FD message. .. attribute:: bitrate_switch :type: bool If this is a CAN FD message, this indicates that a higher bitrate was used for the data transmission. .. attribute:: error_state_indicator :type: bool If this is a CAN FD message, this indicates an error active state. .. method:: __str__ A string representation of a CAN message: >>> from can import Message >>> test = Message() >>> print(test) Timestamp: 0.000000 ID: 00000000 X DLC: 0 >>> test2 = Message(data=[1, 2, 3, 4, 5]) >>> print(test2) Timestamp: 0.000000 ID: 00000000 X DLC: 5 01 02 03 04 05 The fields in the printed message are (in order): - timestamp, - arbitration ID, - flags, - dlc, - and data. The flags field is represented as one, two or three letters: - X if the :attr:`~can.Message.is_extended_id` attribute is set, otherwise S, - E if the :attr:`~can.Message.is_error_frame` attribute is set, - R if the :attr:`~can.Message.is_remote_frame` attribute is set. The arbitration ID field is represented as either a four or eight digit hexadecimal number depending on the length of the arbitration ID (11-bit or 29-bit). Each of the bytes in the data field (when present) are represented as two-digit hexadecimal numbers. python-can-3.3.2.final/doc/pycanlib.pml000066400000000000000000000024701352572415400177620ustar00rootroot00000000000000/* This promela model was used to verify the concurrent design of the bus object. */ bool lock = false; inline enterMon() { atomic { !lock; lock = true; } } inline leaveMon() { lock = false; } typedef Condition { bool gate; byte waiting; } #define emptyC(C) (C.waiting == 0) inline waitC(C) { atomic { C.waiting++; lock = false; C.gate; C.gate = false; C.waiting--; } } inline signalC(C) { atomic { if :: (C.waiting > 0) -> C.gate = true; !lock; lock = true; :: else fi; } } mtype = { clear, set }; mtype writing_event = clear; byte critical = 0; Condition done_writing; bool live = false; active proctype RX() { end: do :: enterMon(); if :: (writing_event == set) -> waitC(done_writing); :: else fi; critical++; assert(critical == 1); live = true; live = false; critical--; leaveMon(); od } active proctype TX() { end: do :: atomic { writing_event == clear -> writing_event = set; } enterMon(); critical++; assert(critical == 1); live = true; live = false; critical--; writing_event = clear; signalC(done_writing); leaveMon(); od } ltl {[]<> live} python-can-3.3.2.final/doc/scripts.rst000066400000000000000000000023131352572415400176640ustar00rootroot00000000000000Scripts ======= The following modules are callable from python-can. They can be called for example by ``python -m can.logger`` or ``can_logger.py`` (if installed using pip). can.logger ---------- Command line help, called with ``--help``: .. command-output:: python -m can.logger -h can.player ---------- .. command-output:: python -m can.player -h can.viewer ---------- A screenshot of the application can be seen below: .. image:: images/viewer.png :width: 100% The first column is the number of times a frame with the particular ID that has been received, next is the timestamp of the frame relative to the first received message. The third column is the time between the current frame relative to the previous one. Next is the length of the frame, the data and then the decoded data converted according to the ``-d`` argument. The top red row indicates an error frame. Command line arguments ^^^^^^^^^^^^^^^^^^^^^^ By default the ``can.viewer`` uses the :doc:`/interfaces/socketcan` interface. All interfaces are supported and can be specified using the ``-i`` argument or configured following :doc:`/configuration`. The full usage page can be seen below: .. command-output:: python -m can.viewer -h python-can-3.3.2.final/examples/000077500000000000000000000000001352572415400165155ustar00rootroot00000000000000python-can-3.3.2.final/examples/asyncio_demo.py000066400000000000000000000024051352572415400215410ustar00rootroot00000000000000import asyncio import can def print_message(msg): """Regular callback function. Can also be a coroutine.""" print(msg) async def main(): can0 = can.Bus('vcan0', bustype='virtual', receive_own_messages=True) reader = can.AsyncBufferedReader() logger = can.Logger('logfile.asc') listeners = [ print_message, # Callback function reader, # AsyncBufferedReader() listener logger # Regular Listener object ] # Create Notifier with an explicit loop to use for scheduling of callbacks loop = asyncio.get_event_loop() notifier = can.Notifier(can0, listeners, loop=loop) # Start sending first message can0.send(can.Message(arbitration_id=0)) print('Bouncing 10 messages...') for _ in range(10): # Wait for next message from AsyncBufferedReader msg = await reader.get_message() # Delay response await asyncio.sleep(0.5) msg.arbitration_id += 1 can0.send(msg) # Wait for last message to arrive await reader.get_message() print('Done!') # Clean-up notifier.stop() can0.shutdown() # Get the default event loop loop = asyncio.get_event_loop() # Run until main coroutine finishes loop.run_until_complete(main()) loop.close() python-can-3.3.2.final/examples/cyclic.py000077500000000000000000000074541352572415400203520ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This example exercises the periodic sending capabilities. Expects a vcan0 interface: python3 -m examples.cyclic """ from __future__ import print_function import logging import time import can logging.basicConfig(level=logging.INFO) def simple_periodic_send(bus): """ Sends a message every 20ms with no explicit timeout Sleeps for 2 seconds then stops the task. """ print("Starting to send a message every 200ms for 2s") msg = can.Message(arbitration_id=0x123, data=[1, 2, 3, 4, 5, 6], is_extended_id=False) task = bus.send_periodic(msg, 0.20) assert isinstance(task, can.CyclicSendTaskABC) time.sleep(2) task.stop() print("stopped cyclic send") def limited_periodic_send(bus): print("Starting to send a message every 200ms for 1s") msg = can.Message(arbitration_id=0x12345678, data=[0, 0, 0, 0, 0, 0], is_extended_id=True) task = bus.send_periodic(msg, 0.20, 1, store_task=False) if not isinstance(task, can.LimitedDurationCyclicSendTaskABC): print("This interface doesn't seem to support a ") task.stop() return time.sleep(2) print("Cyclic send should have stopped as duration expired") # Note the (finished) task will still be tracked by the Bus # unless we pass `store_task=False` to bus.send_periodic # alternatively calling stop removes the task from the bus #task.stop() def test_periodic_send_with_modifying_data(bus): print("Starting to send a message every 200ms. Initial data is ones") msg = can.Message(arbitration_id=0x0cf02200, data=[1, 1, 1, 1]) task = bus.send_periodic(msg, 0.20) if not isinstance(task, can.ModifiableCyclicTaskABC): print("This interface doesn't seem to support modification") task.stop() return time.sleep(2) print("Changing data of running task to begin with 99") msg.data[0] = 0x99 task.modify_data(msg) time.sleep(2) task.stop() print("stopped cyclic send") print("Changing data of stopped task to single ff byte") msg.data = bytearray([0xff]) msg.dlc = 1 task.modify_data(msg) time.sleep(1) print("starting again") task.start() time.sleep(1) task.stop() print("done") # Will have to consider how to expose items like this. The socketcan # interfaces will continue to support it... but the top level api won't. # def test_dual_rate_periodic_send(): # """Send a message 10 times at 1ms intervals, then continue to send every 500ms""" # msg = can.Message(arbitration_id=0x123, data=[0, 1, 2, 3, 4, 5]) # print("Creating cyclic task to send message 10 times at 1ms, then every 500ms") # task = can.interface.MultiRateCyclicSendTask('vcan0', msg, 10, 0.001, 0.50) # time.sleep(2) # # print("Changing data[0] = 0x42") # msg.data[0] = 0x42 # task.modify_data(msg) # time.sleep(2) # # task.stop() # print("stopped cyclic send") # # time.sleep(2) # # task.start() # print("starting again") # time.sleep(2) # task.stop() # print("done") if __name__ == "__main__": reset_msg = can.Message(arbitration_id=0x00, data=[0, 0, 0, 0, 0, 0], is_extended_id=False) for interface, channel in [ ('socketcan', 'vcan0'), #('ixxat', 0) ]: print("Carrying out cyclic tests with {} interface".format(interface)) bus = can.Bus(interface=interface, channel=channel, bitrate=500000) bus.send(reset_msg) simple_periodic_send(bus) bus.send(reset_msg) limited_periodic_send(bus) test_periodic_send_with_modifying_data(bus) #print("Carrying out multirate cyclic test for {} interface".format(interface)) #can.rc['interface'] = interface #test_dual_rate_periodic_send() bus.shutdown() time.sleep(2) python-can-3.3.2.final/examples/receive_all.py000077500000000000000000000012021352572415400213370ustar00rootroot00000000000000#!/usr/bin/env python from __future__ import print_function import can from can.bus import BusState def receive_all(): bus = can.interface.Bus(bustype='pcan', channel='PCAN_USBBUS1', bitrate=250000) #bus = can.interface.Bus(bustype='ixxat', channel=0, bitrate=250000) #bus = can.interface.Bus(bustype='vector', app_name='CANalyzer', channel=0, bitrate=250000) bus.state = BusState.ACTIVE # or BusState.PASSIVE try: while True: msg = bus.recv(1) if msg is not None: print(msg) except KeyboardInterrupt: pass if __name__ == "__main__": receive_all() python-can-3.3.2.final/examples/send_one.py000077500000000000000000000020751352572415400206700ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This example shows how sending a single message works. """ from __future__ import print_function import can def send_one(): # this uses the default configuration (for example from the config file) # see https://python-can.readthedocs.io/en/stable/configuration.html bus = can.interface.Bus() # Using specific buses works similar: # bus = can.interface.Bus(bustype='socketcan', channel='vcan0', bitrate=250000) # bus = can.interface.Bus(bustype='pcan', channel='PCAN_USBBUS1', bitrate=250000) # bus = can.interface.Bus(bustype='ixxat', channel=0, bitrate=250000) # bus = can.interface.Bus(bustype='vector', app_name='CANalyzer', channel=0, bitrate=250000) # ... msg = can.Message(arbitration_id=0xc0ffee, data=[0, 25, 0, 1, 3, 1, 4, 1], is_extended_id=True) try: bus.send(msg) print("Message sent on {}".format(bus.channel_info)) except can.CanError: print("Message NOT sent") if __name__ == '__main__': send_one() python-can-3.3.2.final/examples/serial_com.py000077500000000000000000000041101352572415400212030ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This example sends every second a messages over the serial interface and also receives incoming messages. python3 -m examples.serial_com Expects two serial ports (/dev/ttyS10 and /dev/ttyS11) connected to each other: Linux: To connect two ports use socat. sudo apt-get install socat sudo socat PTY,link=/dev/ttyS10 PTY,link=/dev/ttyS11 Windows: This example was not tested on Windows. To create and connect virtual ports on Windows, the following software can be used: com0com: http://com0com.sourceforge.net/ """ from __future__ import print_function import time import threading import can def send_cyclic(bus, msg, stop_event): print("Start to send a message every 1s") start_time = time.time() while not stop_event.is_set(): msg.timestamp = time.time() - start_time bus.send(msg) print("tx: {}".format(tx_msg)) time.sleep(1) print("Stopped sending messages") def receive(bus, stop_event): print("Start receiving messages") while not stop_event.is_set(): rx_msg = bus.recv(1) if rx_msg is not None: print("rx: {}".format(rx_msg)) print("Stopped receiving messages") if __name__ == "__main__": server = can.interface.Bus(bustype='serial', channel='/dev/ttyS10') client = can.interface.Bus(bustype='serial', channel='/dev/ttyS11') tx_msg = can.Message(arbitration_id=0x01, data=[0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88]) # Thread for sending and receiving messages stop_event = threading.Event() t_send_cyclic = threading.Thread(target=send_cyclic, args=(server, tx_msg, stop_event)) t_receive = threading.Thread(target=receive, args=(client, stop_event)) t_receive.start() t_send_cyclic.start() try: while True: pass except KeyboardInterrupt: pass stop_event.set() server.shutdown() client.shutdown() print("Stopped script") python-can-3.3.2.final/examples/simple_log_converter.py000077500000000000000000000005431352572415400233150ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ Use this to convert .can/.asc files to .log files. Usage: simpleLogConvert.py sourceLog.asc targetLog.log """ import sys import can.io.logger import can.io.player reader = can.io.player.LogReader(sys.argv[1]) writer = can.io.logger.Logger(sys.argv[2]) for msg in reader: writer.on_message_received(msg) python-can-3.3.2.final/examples/vcan_filtered.py000077500000000000000000000012221352572415400216740ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This shows how message filtering works. """ import time import can if __name__ == '__main__': bus = can.interface.Bus(bustype='socketcan', channel='vcan0', receive_own_messages=True) can_filters = [{"can_id": 1, "can_mask": 0xf, "extended": True}] bus.set_filters(can_filters) notifier = can.Notifier(bus, [can.Printer()]) bus.send(can.Message(arbitration_id=1, is_extended_id=True)) bus.send(can.Message(arbitration_id=2, is_extended_id=True)) bus.send(can.Message(arbitration_id=1, is_extended_id=False)) time.sleep(10) python-can-3.3.2.final/examples/virtual_can_demo.py000077500000000000000000000014521352572415400224070ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This demo creates multiple processes of producers to spam a socketcan bus. """ from time import sleep from concurrent.futures import ProcessPoolExecutor import can def producer(id, message_count=16): """Spam the bus with messages including the data id. :param int id: the id of the thread/process """ with can.Bus(bustype='socketcan', channel='vcan0') as bus: for i in range(message_count): msg = can.Message(arbitration_id=0x0cf02200+id, data=[id, i, 0, 1, 3, 1, 4, 1]) bus.send(msg) sleep(1.0) print("Producer #{} finished sending {} messages".format(id, message_count)) if __name__ == "__main__": with ProcessPoolExecutor(max_workers=4) as executor: executor.map(producer, range(5)) python-can-3.3.2.final/scripts/000077500000000000000000000000001352572415400163665ustar00rootroot00000000000000python-can-3.3.2.final/scripts/can_logger.py000066400000000000000000000002631352572415400210410ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ See :mod:`can.logger`. """ from __future__ import absolute_import from can.logger import main if __name__ == "__main__": main() python-can-3.3.2.final/scripts/can_player.py000066400000000000000000000002631352572415400210560ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ See :mod:`can.player`. """ from __future__ import absolute_import from can.player import main if __name__ == "__main__": main() python-can-3.3.2.final/scripts/can_viewer.py000066400000000000000000000002631352572415400210630ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ See :mod:`can.viewer`. """ from __future__ import absolute_import from can.viewer import main if __name__ == "__main__": main() python-can-3.3.2.final/setup.cfg000066400000000000000000000012331352572415400165170ustar00rootroot00000000000000[bdist_wheel] universal = 1 [aliases] test=pytest [metadata] license_file = LICENSE.txt [tool:pytest] addopts = -v --timeout=300 --cov=can --cov-config=setup.cfg [coverage:run] # we could also use branch coverage branch = False # already specified by call to pytest using --cov=can #source = can omit = # legacy code can/CAN.py [coverage:report] # two digits after decimal point precision = 3 show_missing = True exclude_lines = # Have to re-enable the standard pragma, see https://coverage.readthedocs.io/en/coverage-4.5.1a/config.html#syntax pragma: no cover # Don't complain if non-runnable code isn't run: if __name__ == .__main__.: python-can-3.3.2.final/setup.py000066400000000000000000000071031352572415400164120ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ python-can requires the setuptools package to be installed. """ from __future__ import absolute_import from os import listdir from os.path import isfile, join import re import logging import sys from setuptools import setup, find_packages logging.basicConfig(level=logging.WARNING) with open('can/__init__.py', 'r') as fd: version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]', fd.read(), re.MULTILINE).group(1) with open('README.rst', 'r') as f: long_description = f.read() # Dependencies extras_require = { 'serial': ['pyserial~=3.0'], 'neovi': ['python-ics>=2.12'] } tests_require = [ 'mock~=2.0', 'pytest~=4.3', 'pytest-timeout~=1.3', 'pytest-cov~=2.6', 'codecov~=2.0', 'future', 'six', 'hypothesis' ] + extras_require['serial'] extras_require['test'] = tests_require # Check for 'pytest-runner' only if setup.py was invoked with 'test'. # This optimizes setup.py for cases when pytest-runner is not needed, # using the approach that is suggested upstream. # # See https://pypi.org/project/pytest-runner/#conditional-requirement needs_pytest = {"pytest", "test", "ptr"}.intersection(sys.argv) pytest_runner = ["pytest-runner"] if needs_pytest else [] setup( # Description name="python-can", url="https://github.com/hardbyte/python-can", description="Controller Area Network interface module for Python", long_description=long_description, classifiers=[ # a list of all available ones: https://pypi.org/classifiers/ "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Operating System :: MacOS", "Operating System :: POSIX :: Linux", "Operating System :: Microsoft :: Windows", "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Information Technology", "Intended Audience :: Manufacturing", "Intended Audience :: Telecommunications Industry", "Natural Language :: English", "Topic :: System :: Logging", "Topic :: System :: Monitoring", "Topic :: System :: Networking", "Topic :: System :: Hardware :: Hardware Drivers", "Topic :: Utilities" ], # Code version=version, packages=find_packages(exclude=["test", "doc", "scripts", "examples"]), scripts=list(filter(isfile, (join("scripts/", f) for f in listdir("scripts/")))), # Author author="Brian Thorne", author_email="brian@thorne.link", # License license="LGPL v3", # Package data package_data={ "": ["README.rst", "CONTRIBUTORS.txt", "LICENSE.txt", "CHANGELOG.txt"], "doc": ["*.*"], "examples": ["*.py"] }, # Installation # see https://www.python.org/dev/peps/pep-0345/#version-specifiers python_requires=">=2.7", install_requires=[ 'wrapt~=1.10', 'aenum', 'typing;python_version<"3.5"', 'windows-curses;platform_system=="Windows"', ], setup_requires=pytest_runner, extras_require=extras_require, tests_require=tests_require ) python-can-3.3.2.final/test/000077500000000000000000000000001352572415400156565ustar00rootroot00000000000000python-can-3.3.2.final/test/__init__.py000066400000000000000000000000461352572415400177670ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 python-can-3.3.2.final/test/back2back_test.py000066400000000000000000000214401352572415400210730ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This module tests two virtual buses attached to each other. """ from __future__ import absolute_import, print_function import sys import unittest from time import sleep from multiprocessing.dummy import Pool as ThreadPool import pytest import random import can from .config import * class Back2BackTestCase(unittest.TestCase): """ Use two interfaces connected to the same CAN bus and test them against each other. """ BITRATE = 500000 TIMEOUT = 0.1 INTERFACE_1 = 'virtual' CHANNEL_1 = 'virtual_channel_0' INTERFACE_2 = 'virtual' CHANNEL_2 = 'virtual_channel_0' def setUp(self): self.bus1 = can.Bus(channel=self.CHANNEL_1, bustype=self.INTERFACE_1, bitrate=self.BITRATE, fd=TEST_CAN_FD, single_handle=True) self.bus2 = can.Bus(channel=self.CHANNEL_2, bustype=self.INTERFACE_2, bitrate=self.BITRATE, fd=TEST_CAN_FD, single_handle=True) def tearDown(self): self.bus1.shutdown() self.bus2.shutdown() def _check_received_message(self, recv_msg, sent_msg): self.assertIsNotNone(recv_msg, "No message was received on %s" % self.INTERFACE_2) self.assertEqual(recv_msg.arbitration_id, sent_msg.arbitration_id) self.assertEqual(recv_msg.is_extended_id, sent_msg.is_extended_id) self.assertEqual(recv_msg.is_remote_frame, sent_msg.is_remote_frame) self.assertEqual(recv_msg.is_error_frame, sent_msg.is_error_frame) self.assertEqual(recv_msg.is_fd, sent_msg.is_fd) self.assertEqual(recv_msg.bitrate_switch, sent_msg.bitrate_switch) self.assertEqual(recv_msg.dlc, sent_msg.dlc) if not sent_msg.is_remote_frame: self.assertSequenceEqual(recv_msg.data, sent_msg.data) def _send_and_receive(self, msg): # Send with bus 1, receive with bus 2 self.bus1.send(msg) recv_msg = self.bus2.recv(self.TIMEOUT) self._check_received_message(recv_msg, msg) # Some buses may receive their own messages. Remove it from the queue self.bus1.recv(0) # Send with bus 2, receive with bus 1 # Add 1 to arbitration ID to make it a different message msg.arbitration_id += 1 self.bus2.send(msg) recv_msg = self.bus1.recv(self.TIMEOUT) self._check_received_message(recv_msg, msg) def test_no_message(self): self.assertIsNone(self.bus1.recv(0.1)) @unittest.skipIf(IS_CI, "the timing sensitive behaviour cannot be reproduced reliably on a CI server") def test_timestamp(self): self.bus2.send(can.Message()) recv_msg1 = self.bus1.recv(self.TIMEOUT) sleep(2.0) self.bus2.send(can.Message()) recv_msg2 = self.bus1.recv(self.TIMEOUT) delta_time = recv_msg2.timestamp - recv_msg1.timestamp self.assertTrue(1.75 <= delta_time <= 2.25, 'Time difference should have been 2s +/- 250ms.' 'But measured {}'.format(delta_time)) def test_standard_message(self): msg = can.Message(is_extended_id=False, arbitration_id=0x100, data=[1, 2, 3, 4, 5, 6, 7, 8]) self._send_and_receive(msg) def test_extended_message(self): msg = can.Message(is_extended_id=True, arbitration_id=0x123456, data=[10, 11, 12, 13, 14, 15, 16, 17]) self._send_and_receive(msg) def test_remote_message(self): msg = can.Message(is_extended_id=False, arbitration_id=0x200, is_remote_frame=True, dlc=4) self._send_and_receive(msg) def test_dlc_less_than_eight(self): msg = can.Message(is_extended_id=False, arbitration_id=0x300, data=[4, 5, 6]) self._send_and_receive(msg) @unittest.skipUnless(TEST_CAN_FD, "Don't test CAN-FD") def test_fd_message(self): msg = can.Message(is_fd=True, is_extended_id=True, arbitration_id=0x56789, data=[0xff] * 64) self._send_and_receive(msg) @unittest.skipUnless(TEST_CAN_FD, "Don't test CAN-FD") def test_fd_message_with_brs(self): msg = can.Message(is_fd=True, bitrate_switch=True, is_extended_id=True, arbitration_id=0x98765, data=[0xff] * 48) self._send_and_receive(msg) @unittest.skipUnless(TEST_INTERFACE_SOCKETCAN, "skip testing of socketcan") class BasicTestSocketCan(Back2BackTestCase): INTERFACE_1 = 'socketcan' CHANNEL_1 = 'vcan0' INTERFACE_2 = 'socketcan' CHANNEL_2 = 'vcan0' @unittest.skipUnless(TEST_INTERFACE_SOCKETCAN, "skip testing of socketcan") class SocketCanBroadcastChannel(unittest.TestCase): def setUp(self): self.broadcast_bus = can.Bus(channel='', bustype='socketcan') self.regular_bus = can.Bus(channel='vcan0', bustype='socketcan') def tearDown(self): self.broadcast_bus.shutdown() self.regular_bus.shutdown() def test_broadcast_channel(self): self.broadcast_bus.send(can.Message(channel='vcan0')) recv_msg = self.regular_bus.recv(1) self.assertIsNotNone(recv_msg) self.assertEqual(recv_msg.channel, 'vcan0') self.regular_bus.send(can.Message()) recv_msg = self.broadcast_bus.recv(1) self.assertIsNotNone(recv_msg) self.assertEqual(recv_msg.channel, 'vcan0') class TestThreadSafeBus(Back2BackTestCase): def setUp(self): self.bus1 = can.ThreadSafeBus(channel=self.CHANNEL_1, bustype=self.INTERFACE_1, bitrate=self.BITRATE, fd=TEST_CAN_FD, single_handle=True) self.bus2 = can.ThreadSafeBus(channel=self.CHANNEL_2, bustype=self.INTERFACE_2, bitrate=self.BITRATE, fd=TEST_CAN_FD, single_handle=True) @pytest.mark.timeout(5.0) def test_concurrent_writes(self): sender_pool = ThreadPool(100) receiver_pool = ThreadPool(100) message = can.Message( arbitration_id=0x123, channel=self.CHANNEL_1, is_extended_id=True, timestamp=121334.365, data=[254, 255, 1, 2] ) workload = 1000 * [message] def sender(msg): self.bus1.send(msg) def receiver(_): return self.bus2.recv(timeout=2.0) sender_pool.map_async(sender, workload) for msg in receiver_pool.map(receiver, len(workload) * [None]): self.assertIsNotNone(msg) self.assertEqual(message.arbitration_id, msg.arbitration_id) self.assertTrue(message.equals(msg, timestamp_delta=None)) sender_pool.close() sender_pool.join() receiver_pool.close() receiver_pool.join() @pytest.mark.timeout(5.0) def test_filtered_bus(self): sender_pool = ThreadPool(100) receiver_pool = ThreadPool(100) included_message = can.Message( arbitration_id=0x123, channel=self.CHANNEL_1, is_extended_id=True, timestamp=121334.365, data=[254, 255, 1, 2] ) excluded_message = can.Message( arbitration_id=0x02, channel=self.CHANNEL_1, is_extended_id=True, timestamp=121334.300, data=[1, 2, 3] ) workload = 500 * [included_message] + 500 * [excluded_message] random.shuffle(workload) self.bus2.set_filters([{"can_id": 0x123, "can_mask": 0xff, "extended": True}]) def sender(msg): self.bus1.send(msg) def receiver(_): return self.bus2.recv(timeout=2.0) sender_pool.map_async(sender, workload) received_msgs = receiver_pool.map(receiver, 500 * [None]) for msg in received_msgs: self.assertIsNotNone(msg) self.assertEqual(msg.arbitration_id, included_message.arbitration_id) self.assertTrue(included_message.equals(msg, timestamp_delta=None)) self.assertEqual(len(received_msgs), 500) sender_pool.close() sender_pool.join() receiver_pool.close() receiver_pool.join() if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/config.py000066400000000000000000000031311352572415400174730ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This module contains various configuration for the tests. Some tests are skipped when run on a CI server because they are not reproducible, see #243 (https://github.com/hardbyte/python-can/issues/243). """ import platform from os import environ as environment def env(name): # type: bool return environment.get(name, '').lower() in ("yes", "true", "t", "1") # ############################## Continuos integration # see here for the environment variables that are set on the CI servers: # - https://docs.travis-ci.com/user/environment-variables/ # - https://www.appveyor.com/docs/environment-variables/ IS_TRAVIS = env('TRAVIS') IS_APPVEYOR = env('APPVEYOR') IS_CI = IS_TRAVIS or IS_APPVEYOR or env('CI') or env('CONTINUOUS_INTEGRATION') if IS_APPVEYOR and IS_TRAVIS: raise EnvironmentError("IS_APPVEYOR and IS_TRAVIS cannot be both True at the same time") # ############################## Platforms _sys = platform.system().lower() IS_WINDOWS = "windows" in _sys or ("win" in _sys and "darwin" not in _sys) IS_LINUX = "linux" in _sys IS_OSX = "darwin" in _sys IS_UNIX = IS_LINUX or IS_OSX if (IS_WINDOWS and IS_LINUX) or (IS_LINUX and IS_OSX) or (IS_WINDOWS and IS_OSX): raise EnvironmentError( "only one of IS_WINDOWS ({}), IS_LINUX ({}) and IS_OSX ({}) ".format(IS_WINDOWS, IS_LINUX, IS_OSX) + "can be True at the same time " + '(platform.system() == "{}")'.format(platform.system()) ) # ############################## What tests to run TEST_CAN_FD = True TEST_INTERFACE_SOCKETCAN = IS_LINUX and env('TEST_SOCKETCAN') python-can-3.3.2.final/test/contextmanager_test.py000066400000000000000000000021071352572415400223060ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This module tests the context manager of Bus and Notifier classes """ import unittest import can class ContextManagerTest(unittest.TestCase): def setUp(self): data = [0, 1, 2, 3, 4, 5, 6, 7] self.msg_send = can.Message(is_extended_id=False, arbitration_id=0x100, data=data) def test_open_buses(self): with can.Bus(interface='virtual') as bus_send, can.Bus(interface='virtual') as bus_recv: bus_send.send(self.msg_send) msg_recv = bus_recv.recv() # Receiving a frame with data should evaluate msg_recv to True self.assertTrue(msg_recv) def test_use_closed_bus(self): with can.Bus(interface='virtual') as bus_send, can.Bus(interface='virtual') as bus_recv: bus_send.send(self.msg_send) # Receiving a frame after bus has been closed should raise a CanException self.assertRaises(can.CanError, bus_recv.recv) self.assertRaises(can.CanError, bus_send.send, self.msg_send) if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/data/000077500000000000000000000000001352572415400165675ustar00rootroot00000000000000python-can-3.3.2.final/test/data/__init__.py000066400000000000000000000000461352572415400207000ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 python-can-3.3.2.final/test/data/example_data.py000066400000000000000000000125401352572415400215670ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This module contains some example data, like messages of different types and example comments with different challenges. """ import random from operator import attrgetter from can import Message # make tests more reproducible random.seed(13339115) def sort_messages(messages): """ Sorts the given messages by timestamps (ascending). :param Iterable[can.Message] messages: a sequence of messages to sort :rtype: list """ return list(sorted(messages, key=attrgetter('timestamp'))) # some random number TEST_TIME = 1483389946.197 # List of messages of different types that can be used in tests TEST_MESSAGES_BASE = sort_messages([ Message( # empty ), Message( # only data data=[0x00, 0x42] ), Message( # no data arbitration_id=0xAB, is_extended_id=False ), Message( # no data arbitration_id=0x42, is_extended_id=True ), Message( # no data arbitration_id=0xABCDEF, ), Message( # empty data data=[] ), Message( # empty data data=[0xFF, 0xFE, 0xFD], ), Message( # with channel as integer channel=0, ), Message( # with channel as integer channel=42, ), Message( # with channel as string channel="vcan0", ), Message( # with channel as string channel="awesome_channel", ), Message( arbitration_id=0xABCDEF, is_extended_id=True, timestamp=TEST_TIME, data=[1, 2, 3, 4, 5, 6, 7, 8] ), Message( arbitration_id=0x123, is_extended_id=False, timestamp=TEST_TIME + 42.42, data=[0xff, 0xff] ), Message( arbitration_id=0xDADADA, is_extended_id=True, timestamp=TEST_TIME + .165, data=[1, 2, 3, 4, 5, 6, 7, 8] ), Message( arbitration_id=0x123, is_extended_id=False, timestamp=TEST_TIME + .365, data=[254, 255] ), Message( arbitration_id=0x768, is_extended_id=False, timestamp=TEST_TIME + 3.165 ), ]) TEST_MESSAGES_REMOTE_FRAMES = sort_messages([ Message( arbitration_id=0xDADADA, is_extended_id=True, is_remote_frame=True, timestamp=TEST_TIME + .165, ), Message( arbitration_id=0x123, is_extended_id=False, is_remote_frame=True, timestamp=TEST_TIME + .365, ), Message( arbitration_id=0x768, is_extended_id=False, is_remote_frame=True, timestamp=TEST_TIME + 3.165 ), Message( arbitration_id=0xABCDEF, is_extended_id=True, is_remote_frame=True, timestamp=TEST_TIME + 7858.67 ), ]) TEST_MESSAGES_ERROR_FRAMES = sort_messages([ Message( is_error_frame=True ), Message( is_error_frame=True, timestamp=TEST_TIME + 0.170 ), Message( is_error_frame=True, timestamp=TEST_TIME + 17.157 ) ]) TEST_ALL_MESSAGES = sort_messages(TEST_MESSAGES_BASE + TEST_MESSAGES_REMOTE_FRAMES + \ TEST_MESSAGES_ERROR_FRAMES) TEST_COMMENTS = [ "This is the first comment", "", # empty comment "This third comment contains some strange characters: 'ä\"§$%&/()=?__::_Öüßêè and ends here.", ( "This fourth comment is quite long! " \ "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. " \ "Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. " \ "Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi." \ ), ] def generate_message(arbitration_id): """ Generates a new message with the given ID, some random data and a non-extended ID. """ data = bytearray([random.randrange(0, 2 ** 8 - 1) for _ in range(8)]) return Message(arbitration_id=arbitration_id, data=data, is_extended_id=False, timestamp=TEST_TIME) python-can-3.3.2.final/test/data/logfile.asc000066400000000000000000000017351352572415400207060ustar00rootroot00000000000000date Sam Sep 30 15:06:13.191 2017 base hex timestamps absolute internal events logged // version 9.0.0 Begin Triggerblock Sam Sep 30 15:06:13.191 2017 0.000000 Start of measurement 0.015991 CAN 1 Status:chip status error passive - TxErr: 132 RxErr: 0 0.015991 CAN 2 Status:chip status error active 1.015991 1 Statistic: D 0 R 0 XD 0 XR 0 E 0 O 0 B 0.00% 1.015991 2 Statistic: D 0 R 0 XD 0 XR 0 E 0 O 0 B 0.00% 2.015992 1 Statistic: D 0 R 0 XD 0 XR 0 E 0 O 0 B 0.00% 17.876707 CAN 1 Status:chip status error passive - TxErr: 131 RxErr: 0 17.876708 1 6F9 Rx d 8 05 0C 00 00 00 00 00 00 Length = 240015 BitCount = 124 ID = 1785 17.876976 1 6F8 Rx d 8 FF 00 0C FE 00 00 00 00 Length = 239910 BitCount = 124 ID = 1784 18.015997 1 Statistic: D 2 R 0 XD 0 XR 0 E 0 O 0 B 0.04% 113.016026 1 Statistic: D 0 R 0 XD 0 XR 0 E 0 O 0 B 0.00% 113.016026 2 Statistic: D 0 R 0 XD 0 XR 0 E 0 O 0 B 0.00% End TriggerBlock python-can-3.3.2.final/test/data/logfile.blf000066400000000000000000000012521352572415400206750ustar00rootroot00000000000000LOGGªX$LOBJ ¨xœóñwòR``d0``’ L Ppj–5XŒ‘#D31³°²±sø@Õ;ÅXÕkd¿ƒ¨¿Ä2‡*Rà Äl@œer,¦_ÈDÖŸåþ•¬Ÿ‰]²ºâ+X neBVçCVã+Ï õ“Ð"c„8¹¸yxùø®0aH­c`@6GÙµQsñšÃl „în ds>4Mƒ˜Ã„ p—DV·KöD+XŒ† õPõJÈê¯ô½bg@…LàêAñ¤‚¬>ãH"ŠzF0­ å§»BhdûT‘õÅÏEÕÏ –C?3dõs–Mâ« f`øË²èªÊå?4`i æ?Ÿ‘Ãeo 7¨úW™+/ˆy*î]€‘‘C I)àß°g™ dàPs·mÇ€äÿ75ù|H4Ä7 Hbx;ïI,œs€B®ÈúŠv {‰Á†Ab"»$fâ—”’–‘•“WPTRVQUS×ÐÔÒÖÑÕÓ70426153·°´²FλžÈvÍRþ/¶ƒ ì6XàüÍL?Þ±IF\ †û± (—ˆ¬¿kÙTPÞT2v Mcd(j÷ 8¡0æÂ”ÓÀ$N2üÀÀ€ö~Âpython-can-3.3.2.final/test/listener_test.py000066400000000000000000000122471352572415400211220ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ """ from __future__ import absolute_import, print_function from time import sleep import unittest import random import logging import tempfile import sqlite3 import os from os.path import join, dirname import can from .data.example_data import generate_message channel = 'virtual_channel_0' can.rc['interface'] = 'virtual' logging.basicConfig(level=logging.DEBUG) # makes the random number generator deterministic random.seed(13339115) class ListenerImportTest(unittest.TestCase): def testClassesImportable(self): self.assertTrue(hasattr(can, 'Listener')) self.assertTrue(hasattr(can, 'BufferedReader')) self.assertTrue(hasattr(can, 'Notifier')) self.assertTrue(hasattr(can, 'Logger')) self.assertTrue(hasattr(can, 'ASCWriter')) self.assertTrue(hasattr(can, 'ASCReader')) self.assertTrue(hasattr(can, 'BLFReader')) self.assertTrue(hasattr(can, 'BLFWriter')) self.assertTrue(hasattr(can, 'CSVReader')) self.assertTrue(hasattr(can, 'CSVWriter')) self.assertTrue(hasattr(can, 'CanutilsLogWriter')) self.assertTrue(hasattr(can, 'CanutilsLogReader')) self.assertTrue(hasattr(can, 'SqliteReader')) self.assertTrue(hasattr(can, 'SqliteWriter')) self.assertTrue(hasattr(can, 'Printer')) self.assertTrue(hasattr(can, 'LogReader')) self.assertTrue(hasattr(can, 'MessageSync')) class BusTest(unittest.TestCase): def setUp(self): self.bus = can.interface.Bus() def tearDown(self): self.bus.shutdown() class ListenerTest(BusTest): def testBasicListenerCanBeAddedToNotifier(self): a_listener = can.Printer() notifier = can.Notifier(self.bus, [a_listener], 0.1) notifier.stop() self.assertIn(a_listener, notifier.listeners) def testAddListenerToNotifier(self): a_listener = can.Printer() notifier = can.Notifier(self.bus, [], 0.1) notifier.stop() self.assertNotIn(a_listener, notifier.listeners) notifier.add_listener(a_listener) self.assertIn(a_listener, notifier.listeners) def testRemoveListenerFromNotifier(self): a_listener = can.Printer() notifier = can.Notifier(self.bus, [a_listener], 0.1) notifier.stop() self.assertIn(a_listener, notifier.listeners) notifier.remove_listener(a_listener) self.assertNotIn(a_listener, notifier.listeners) def testPlayerTypeResolution(self): def test_filetype_to_instance(extension, klass): print("testing: {}".format(extension)) try: if extension == ".blf": delete = False file_handler = open(join(dirname(__file__), "data/logfile.blf")) else: delete = True file_handler = tempfile.NamedTemporaryFile(suffix=extension, delete=False) with file_handler as my_file: filename = my_file.name with can.LogReader(filename) as reader: self.assertIsInstance(reader, klass) finally: if delete: os.remove(filename) test_filetype_to_instance(".asc", can.ASCReader) test_filetype_to_instance(".blf", can.BLFReader) test_filetype_to_instance(".csv", can.CSVReader) test_filetype_to_instance(".db" , can.SqliteReader) test_filetype_to_instance(".log", can.CanutilsLogReader) # test file extensions that are not supported with self.assertRaisesRegexp(NotImplementedError, ".xyz_42"): test_filetype_to_instance(".xyz_42", can.Printer) def testLoggerTypeResolution(self): def test_filetype_to_instance(extension, klass): print("testing: {}".format(extension)) try: with tempfile.NamedTemporaryFile(suffix=extension, delete=False) as my_file: filename = my_file.name with can.Logger(filename) as writer: self.assertIsInstance(writer, klass) finally: os.remove(filename) test_filetype_to_instance(".asc", can.ASCWriter) test_filetype_to_instance(".blf", can.BLFWriter) test_filetype_to_instance(".csv", can.CSVWriter) test_filetype_to_instance(".db" , can.SqliteWriter) test_filetype_to_instance(".log", can.CanutilsLogWriter) test_filetype_to_instance(".txt", can.Printer) # test file extensions that should use a fallback test_filetype_to_instance("", can.Printer) test_filetype_to_instance(".", can.Printer) test_filetype_to_instance(".some_unknown_extention_42", can.Printer) with can.Logger(None) as logger: self.assertIsInstance(logger, can.Printer) def testBufferedListenerReceives(self): a_listener = can.BufferedReader() a_listener(generate_message(0xDADADA)) a_listener(generate_message(0xDADADA)) self.assertIsNotNone(a_listener.get_message(0.1)) a_listener.stop() self.assertIsNotNone(a_listener.get_message(0.1)) if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/logformats_test.py000066400000000000000000000420511352572415400214460ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This test module test the separate reader/writer combinations of the can.io.* modules by writing some messages to a temporary file and reading it again. Then it checks if the messages that were read are same ones as the ones that were written. It also checks that the order of the messages is correct. The types of messages that are tested differs between the different writer/reader pairs - e.g., some don't handle error frames and comments. TODO: correctly set preserves_channel and adds_default_channel TODO: implement CAN FD support testing """ from __future__ import print_function, absolute_import, division import logging import unittest import tempfile import os from abc import abstractmethod, ABCMeta try: # Python 3 from itertools import zip_longest except ImportError: # Python 2 from itertools import izip_longest as zip_longest import can from .data.example_data import TEST_MESSAGES_BASE, TEST_MESSAGES_REMOTE_FRAMES, \ TEST_MESSAGES_ERROR_FRAMES, TEST_COMMENTS, \ sort_messages from .message_helper import ComparingMessagesTestCase logging.basicConfig(level=logging.DEBUG) class ReaderWriterTest(unittest.TestCase, ComparingMessagesTestCase): """Tests a pair of writer and reader by writing all data first and then reading all data and checking if they could be reconstructed correctly. Optionally writes some comments as well. .. note:: This class is prevented from being executed as a test case itself by a *del* statement in at the end of the file. (Source: `*Wojciech B.* on StackOverlfow `_) """ __metaclass__ = ABCMeta def __init__(self, *args, **kwargs): unittest.TestCase.__init__(self, *args, **kwargs) self._setup_instance() @abstractmethod def _setup_instance(self): """Hook for subclasses.""" raise NotImplementedError() def _setup_instance_helper(self, writer_constructor, reader_constructor, binary_file=False, check_remote_frames=True, check_error_frames=True, check_fd=True, check_comments=False, test_append=False, allowed_timestamp_delta=0.0, preserves_channel=True, adds_default_channel=None): """ :param Callable writer_constructor: the constructor of the writer class :param Callable reader_constructor: the constructor of the reader class :param bool binary_file: if True, opens files in binary and not in text mode :param bool check_remote_frames: if True, also tests remote frames :param bool check_error_frames: if True, also tests error frames :param bool check_fd: if True, also tests CAN FD frames :param bool check_comments: if True, also inserts comments at some locations and checks if they are contained anywhere literally in the resulting file. The locations as selected randomly but deterministically, which makes the test reproducible. :param bool test_append: tests the writer in append mode as well :param float or int or None allowed_timestamp_delta: directly passed to :meth:`can.Message.equals` :param bool preserves_channel: if True, checks that the channel attribute is preserved :param any adds_default_channel: sets this as the channel when not other channel was given ignored, if *preserves_channel* is True """ # get all test messages self.original_messages = TEST_MESSAGES_BASE if check_remote_frames: self.original_messages += TEST_MESSAGES_REMOTE_FRAMES if check_error_frames: self.original_messages += TEST_MESSAGES_ERROR_FRAMES if check_fd: self.original_messages += [] # TODO: add TEST_MESSAGES_CAN_FD # sort them so that for example ASCWriter does not "fix" any messages with timestamp 0.0 self.original_messages = sort_messages(self.original_messages) if check_comments: # we check this because of the lack of a common base class # we filter for not starts with '__' so we do not get all the builtin # methods when logging to the console attrs = [attr for attr in dir(writer_constructor) if not attr.startswith('__')] assert 'log_event' in attrs, \ "cannot check comments with this writer: {}".format(writer_constructor) # get all test comments self.original_comments = TEST_COMMENTS if check_comments else () self.writer_constructor = writer_constructor self.reader_constructor = reader_constructor self.binary_file = binary_file self.test_append_enabled = test_append ComparingMessagesTestCase.__init__(self, allowed_timestamp_delta=allowed_timestamp_delta, preserves_channel=preserves_channel) #adds_default_channel=adds_default_channel # TODO inlcude in tests def setUp(self): with tempfile.NamedTemporaryFile('w+', delete=False) as test_file: self.test_file_name = test_file.name def tearDown(self): os.remove(self.test_file_name) del self.test_file_name def test_path_like_explicit_stop(self): """testing with path-like and explicit stop() call""" # create writer print("writing all messages/comments") writer = self.writer_constructor(self.test_file_name) self._write_all(writer) self._ensure_fsync(writer) writer.stop() if hasattr(writer.file, 'closed'): self.assertTrue(writer.file.closed) print("reading all messages") reader = self.reader_constructor(self.test_file_name) read_messages = list(reader) # redundant, but this checks if stop() can be called multiple times reader.stop() if hasattr(writer.file, 'closed'): self.assertTrue(writer.file.closed) # check if at least the number of messages matches # could use assertCountEqual in later versions of Python and in the other methods self.assertEqual(len(read_messages), len(self.original_messages), "the number of written messages does not match the number of read messages") self.assertMessagesEqual(self.original_messages, read_messages) self.assertIncludesComments(self.test_file_name) def test_path_like_context_manager(self): """testing with path-like object and context manager""" # create writer print("writing all messages/comments") with self.writer_constructor(self.test_file_name) as writer: self._write_all(writer) self._ensure_fsync(writer) w = writer if hasattr(w.file, 'closed'): self.assertTrue(w.file.closed) # read all written messages print("reading all messages") with self.reader_constructor(self.test_file_name) as reader: read_messages = list(reader) r = reader if hasattr(r.file, 'closed'): self.assertTrue(r.file.closed) # check if at least the number of messages matches; self.assertEqual(len(read_messages), len(self.original_messages), "the number of written messages does not match the number of read messages") self.assertMessagesEqual(self.original_messages, read_messages) self.assertIncludesComments(self.test_file_name) def test_file_like_explicit_stop(self): """testing with file-like object and explicit stop() call""" # create writer print("writing all messages/comments") my_file = open(self.test_file_name, 'wb' if self.binary_file else 'w') writer = self.writer_constructor(my_file) self._write_all(writer) self._ensure_fsync(writer) writer.stop() if hasattr(my_file, 'closed'): self.assertTrue(my_file.closed) print("reading all messages") my_file = open(self.test_file_name, 'rb' if self.binary_file else 'r') reader = self.reader_constructor(my_file) read_messages = list(reader) # redundant, but this checks if stop() can be called multiple times reader.stop() if hasattr(my_file, 'closed'): self.assertTrue(my_file.closed) # check if at least the number of messages matches # could use assertCountEqual in later versions of Python and in the other methods self.assertEqual(len(read_messages), len(self.original_messages), "the number of written messages does not match the number of read messages") self.assertMessagesEqual(self.original_messages, read_messages) self.assertIncludesComments(self.test_file_name) def test_file_like_context_manager(self): """testing with file-like object and context manager""" # create writer print("writing all messages/comments") my_file = open(self.test_file_name, 'wb' if self.binary_file else 'w') with self.writer_constructor(my_file) as writer: self._write_all(writer) self._ensure_fsync(writer) w = writer if hasattr(my_file, 'closed'): self.assertTrue(my_file.closed) # read all written messages print("reading all messages") my_file = open(self.test_file_name, 'rb' if self.binary_file else 'r') with self.reader_constructor(my_file) as reader: read_messages = list(reader) r = reader if hasattr(my_file, 'closed'): self.assertTrue(my_file.closed) # check if at least the number of messages matches; self.assertEqual(len(read_messages), len(self.original_messages), "the number of written messages does not match the number of read messages") self.assertMessagesEqual(self.original_messages, read_messages) self.assertIncludesComments(self.test_file_name) def test_append_mode(self): """ testing append mode with context manager and path-like object """ if not self.test_append_enabled: raise unittest.SkipTest("do not test append mode") count = len(self.original_messages) first_part = self.original_messages[:count // 2] second_part = self.original_messages[count // 2:] # write first half with self.writer_constructor(self.test_file_name) as writer: for message in first_part: writer(message) self._ensure_fsync(writer) # use append mode for second half try: writer = self.writer_constructor(self.test_file_name, append=True) except TypeError as e: # maybe "append" is not a formal parameter (this is the case for SqliteWriter) try: writer = self.writer_constructor(self.test_file_name) except TypeError: # is the is still a problem, raise the initial error raise e with writer: for message in second_part: writer(message) self._ensure_fsync(writer) with self.reader_constructor(self.test_file_name) as reader: read_messages = list(reader) self.assertMessagesEqual(self.original_messages, read_messages) def _write_all(self, writer): """Writes messages and insert comments here and there.""" # Note: we make no assumptions about the length of original_messages and original_comments for msg, comment in zip_longest(self.original_messages, self.original_comments, fillvalue=None): # msg and comment might be None if comment is not None: print("writing comment: ", comment) writer.log_event(comment) # we already know that this method exists if msg is not None: print("writing message: ", msg) writer(msg) def _ensure_fsync(self, io_handler): if hasattr(io_handler.file, 'fileno'): io_handler.file.flush() os.fsync(io_handler.file.fileno()) def assertIncludesComments(self, filename): """ Ensures that all comments are literally contained in the given file. :param filename: the path-like object to use """ if self.original_comments: # read the entire outout file with open(filename, 'rb' if self.binary_file else 'r') as file: output_contents = file.read() # check each, if they can be found in there literally for comment in self.original_comments: self.assertIn(comment, output_contents) class TestAscFileFormat(ReaderWriterTest): """Tests can.ASCWriter and can.ASCReader""" def _setup_instance(self): super(TestAscFileFormat, self)._setup_instance_helper( can.ASCWriter, can.ASCReader, check_fd=False, check_comments=True, preserves_channel=False, adds_default_channel=0 ) class TestBlfFileFormat(ReaderWriterTest): """Tests can.BLFWriter and can.BLFReader""" def _setup_instance(self): super(TestBlfFileFormat, self)._setup_instance_helper( can.BLFWriter, can.BLFReader, binary_file=True, check_fd=False, check_comments=False, allowed_timestamp_delta=1.0e-6, preserves_channel=False, adds_default_channel=0 ) def test_read_known_file(self): logfile = os.path.join(os.path.dirname(__file__), "data", "logfile.blf") with can.BLFReader(logfile) as reader: messages = list(reader) expected = [ can.Message( timestamp=1.0, is_extended_id=False, arbitration_id=0x64, data=[0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]), can.Message( timestamp=73.0, is_extended_id=True, arbitration_id=0x1FFFFFFF, is_error_frame=True,) ] self.assertMessagesEqual(messages, expected) class TestCanutilsFileFormat(ReaderWriterTest): """Tests can.CanutilsLogWriter and can.CanutilsLogReader""" def _setup_instance(self): super(TestCanutilsFileFormat, self)._setup_instance_helper( can.CanutilsLogWriter, can.CanutilsLogReader, check_fd=False, test_append=True, check_comments=False, preserves_channel=False, adds_default_channel='vcan0' ) class TestCsvFileFormat(ReaderWriterTest): """Tests can.ASCWriter and can.ASCReader""" def _setup_instance(self): super(TestCsvFileFormat, self)._setup_instance_helper( can.CSVWriter, can.CSVReader, check_fd=False, test_append=True, check_comments=False, preserves_channel=False, adds_default_channel=None ) class TestSqliteDatabaseFormat(ReaderWriterTest): """Tests can.SqliteWriter and can.SqliteReader""" def _setup_instance(self): super(TestSqliteDatabaseFormat, self)._setup_instance_helper( can.SqliteWriter, can.SqliteReader, check_fd=False, test_append=True, check_comments=False, preserves_channel=False, adds_default_channel=None ) @unittest.skip("not implemented") def test_file_like_explicit_stop(self): pass @unittest.skip("not implemented") def test_file_like_context_manager(self): pass def test_read_all(self): """ testing :meth:`can.SqliteReader.read_all` with context manager and path-like object """ # create writer print("writing all messages/comments") with self.writer_constructor(self.test_file_name) as writer: self._write_all(writer) # read all written messages print("reading all messages") with self.reader_constructor(self.test_file_name) as reader: read_messages = list(reader.read_all()) # check if at least the number of messages matches; self.assertEqual(len(read_messages), len(self.original_messages), "the number of written messages does not match the number of read messages") self.assertMessagesEqual(self.original_messages, read_messages) class TestPrinter(unittest.TestCase): """Tests that can.Printer does not crash""" # TODO add CAN FD messages messages = TEST_MESSAGES_BASE + TEST_MESSAGES_REMOTE_FRAMES + TEST_MESSAGES_ERROR_FRAMES def test_not_crashes_with_stdout(self): with can.Printer() as printer: for message in self.messages: printer(message) def test_not_crashes_with_file(self): with tempfile.NamedTemporaryFile('w', delete=False) as temp_file: with can.Printer(temp_file) as printer: for message in self.messages: printer(message) # this excludes the base class from being executed as a test case itself del(ReaderWriterTest) if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/message_helper.py000066400000000000000000000046141352572415400212200ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This module contains a helper for writing test cases that need to compare messages. """ from __future__ import absolute_import, print_function from copy import copy class ComparingMessagesTestCase(object): """ Must be extended by a class also extending a unittest.TestCase. .. note:: This class does not extend unittest.TestCase so it does not get run as a test itself. """ def __init__(self, allowed_timestamp_delta=0.0, preserves_channel=True): """ :param float or int or None allowed_timestamp_delta: directly passed to :meth:`can.Message.equals` :param bool preserves_channel: if True, checks that the channel attribute is preserved """ self.allowed_timestamp_delta = allowed_timestamp_delta self.preserves_channel = preserves_channel def assertMessageEqual(self, message_1, message_2): """ Checks that two messages are equal, according to the given rules. """ if message_1.equals(message_2, timestamp_delta=self.allowed_timestamp_delta): return elif self.preserves_channel: print("Comparing: message 1: {!r}".format(message_1)) print(" message 2: {!r}".format(message_2)) self.fail("messages are unequal with allowed timestamp delta {}".format(self.allowed_timestamp_delta)) else: message_2 = copy(message_2) # make sure this method is pure message_2.channel = message_1.channel if message_1.equals(message_2, timestamp_delta=self.allowed_timestamp_delta): return else: print("Comparing: message 1: {!r}".format(message_1)) print(" message 2: {!r}".format(message_2)) self.fail("messages are unequal with allowed timestamp delta {} even when ignoring channels" \ .format(self.allowed_timestamp_delta)) def assertMessagesEqual(self, messages_1, messages_2): """ Checks the order and content of the individual messages pairwise. Raises an error if the lengths of the sequences are not equal. """ self.assertEqual(len(messages_1), len(messages_2), "the number of messages differs") for message_1, message_2 in zip(messages_1, messages_2): self.assertMessageEqual(message_1, message_2) python-can-3.3.2.final/test/network_test.py000066400000000000000000000072171352572415400207670ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 from __future__ import print_function import unittest import threading try: import queue except ImportError: import Queue as queue import random import logging logging.getLogger(__file__).setLevel(logging.WARNING) # make a random bool: rbool = lambda: bool(round(random.random())) import can channel = 'vcan0' can.rc['interface'] = 'virtual' @unittest.skipIf('interface' not in can.rc, "Need a CAN interface") class ControllerAreaNetworkTestCase(unittest.TestCase): """ This test ensures that what messages go in to the bus is what comes out. Requires a can interface. To ensure that hardware and/or software message priority queues don't effect the test, messages are sent one at a time. """ num_messages = 512 # TODO check if error flags are working (don't currently appear on bus) error_flags = [False for _ in range(num_messages)] remote_flags = [rbool() for _ in range(num_messages)] extended_flags = [rbool() for _ in range(num_messages)] ids = list(range(num_messages)) data = list(bytearray([random.randrange(0, 2 ** 8 - 1) for a in range(random.randrange(9))]) for b in range(num_messages)) def producer(self, ready_event, msg_read): self.client_bus = can.interface.Bus(channel=channel) ready_event.wait() for i in range(self.num_messages): m = can.Message( arbitration_id=self.ids[i], is_remote_frame=self.remote_flags[i], is_error_frame=self.error_flags[i], is_extended_id=self.extended_flags[i], data=self.data[i] ) #logging.debug("writing message: {}".format(m)) if msg_read is not None: # Don't send until the other thread is ready msg_read.wait() msg_read.clear() self.client_bus.send(m) def testProducer(self): """Verify that we can send arbitrary messages on the bus""" logging.debug("testing producer alone") ready = threading.Event() ready.set() self.producer(ready, None) logging.debug("producer test complete") def testProducerConsumer(self): logging.debug("testing producer/consumer") ready = threading.Event() msg_read = threading.Event() self.server_bus = can.interface.Bus(channel=channel) t = threading.Thread(target=self.producer, args=(ready, msg_read)) t.start() # Ensure there are no messages on the bus while True: m = self.server_bus.recv(timeout=0.5) if m is None: print("No messages... lets go") break else: self.fail("received messages before the test has started ...") ready.set() i = 0 while i < self.num_messages: msg_read.set() msg = self.server_bus.recv(timeout=0.5) self.assertIsNotNone(msg, "Didn't receive a message") #logging.debug("Received message {} with data: {}".format(i, msg.data)) self.assertEqual(msg.is_extended_id, self.extended_flags[i]) if not msg.is_remote_frame: self.assertEqual(msg.data, self.data[i]) self.assertEqual(msg.arbitration_id, self.ids[i]) self.assertEqual(msg.is_error_frame, self.error_flags[i]) self.assertEqual(msg.is_remote_frame, self.remote_flags[i]) i += 1 t.join() self.server_bus.flush_tx_buffer() self.server_bus.shutdown() if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/notifier_test.py000066400000000000000000000035501352572415400211110ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 import unittest import time try: import asyncio except ImportError: asyncio = None import can class NotifierTest(unittest.TestCase): def test_single_bus(self): bus = can.Bus('test', bustype='virtual', receive_own_messages=True) reader = can.BufferedReader() notifier = can.Notifier(bus, [reader], 0.1) msg = can.Message() bus.send(msg) self.assertIsNotNone(reader.get_message(1)) notifier.stop() bus.shutdown() def test_multiple_bus(self): bus1 = can.Bus(0, bustype='virtual', receive_own_messages=True) bus2 = can.Bus(1, bustype='virtual', receive_own_messages=True) reader = can.BufferedReader() notifier = can.Notifier([bus1, bus2], [reader], 0.1) msg = can.Message() bus1.send(msg) time.sleep(0.1) bus2.send(msg) recv_msg = reader.get_message(1) self.assertIsNotNone(recv_msg) self.assertEqual(recv_msg.channel, 0) recv_msg = reader.get_message(1) self.assertIsNotNone(recv_msg) self.assertEqual(recv_msg.channel, 1) notifier.stop() bus1.shutdown() bus2.shutdown() class AsyncNotifierTest(unittest.TestCase): @unittest.skipIf(asyncio is None, 'Test requires asyncio') def test_asyncio_notifier(self): loop = asyncio.get_event_loop() bus = can.Bus('test', bustype='virtual', receive_own_messages=True) reader = can.AsyncBufferedReader() notifier = can.Notifier(bus, [reader], 0.1, loop=loop) msg = can.Message() bus.send(msg) future = asyncio.wait_for(reader.get_message(), 1.0) recv_msg = loop.run_until_complete(future) self.assertIsNotNone(recv_msg) notifier.stop() bus.shutdown() if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/open_vcan.sh000077500000000000000000000002271352572415400201660ustar00rootroot00000000000000#!/bin/bash # Used by .travis.yml (which is executed with sudo privileges) modprobe vcan ip link add dev vcan0 type vcan ip link set up vcan0 mtu 72 python-can-3.3.2.final/test/serial_test.py000066400000000000000000000112031352572415400205430ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This module is testing the serial interface. Copyright: 2017 Boris Wenzlaff """ from __future__ import division import unittest from mock import patch import can from can.interfaces.serial.serial_can import SerialBus from .message_helper import ComparingMessagesTestCase class SerialDummy(object): """ Dummy to mock the serial communication """ msg = None def __init__(self): self.msg = bytearray() def read(self, size=1): return_value = bytearray() for i in range(size): return_value.append(self.msg.pop(0)) return bytes(return_value) def write(self, msg): self.msg = bytearray(msg) def reset(self): self.msg = None class SimpleSerialTestBase(ComparingMessagesTestCase): MAX_TIMESTAMP = 0xFFFFFFFF / 1000 def __init__(self): ComparingMessagesTestCase.__init__(self, allowed_timestamp_delta=None, preserves_channel=True) def test_rx_tx_min_max_data(self): """ Tests the transfer from 0x00 to 0xFF for a 1 byte payload """ for b in range(0, 255): msg = can.Message(data=[b]) self.bus.send(msg) msg_receive = self.bus.recv() self.assertMessageEqual(msg, msg_receive) def test_rx_tx_min_max_dlc(self): """ Tests the transfer from a 1 - 8 byte payload """ payload = bytearray() for b in range(1, 9): payload.append(0) msg = can.Message(data=payload) self.bus.send(msg) msg_receive = self.bus.recv() self.assertMessageEqual(msg, msg_receive) def test_rx_tx_data_none(self): """ Tests the transfer without payload """ msg = can.Message(data=None) self.bus.send(msg) msg_receive = self.bus.recv() self.assertMessageEqual(msg, msg_receive) def test_rx_tx_min_id(self): """ Tests the transfer with the lowest arbitration id """ msg = can.Message(arbitration_id=0) self.bus.send(msg) msg_receive = self.bus.recv() self.assertMessageEqual(msg, msg_receive) def test_rx_tx_max_id(self): """ Tests the transfer with the highest arbitration id """ msg = can.Message(arbitration_id=536870911) self.bus.send(msg) msg_receive = self.bus.recv() self.assertMessageEqual(msg, msg_receive) def test_rx_tx_max_timestamp(self): """ Tests the transfer with the highest possible timestamp """ msg = can.Message(timestamp=self.MAX_TIMESTAMP) self.bus.send(msg) msg_receive = self.bus.recv() self.assertMessageEqual(msg, msg_receive) self.assertEqual(msg.timestamp, msg_receive.timestamp) def test_rx_tx_max_timestamp_error(self): """ Tests for an exception with an out of range timestamp (max + 1) """ msg = can.Message(timestamp=self.MAX_TIMESTAMP+1) self.assertRaises(ValueError, self.bus.send, msg) def test_rx_tx_min_timestamp(self): """ Tests the transfer with the lowest possible timestamp """ msg = can.Message(timestamp=0) self.bus.send(msg) msg_receive = self.bus.recv() self.assertMessageEqual(msg, msg_receive) self.assertEqual(msg.timestamp, msg_receive.timestamp) def test_rx_tx_min_timestamp_error(self): """ Tests for an exception with an out of range timestamp (min - 1) """ msg = can.Message(timestamp=-1) self.assertRaises(ValueError, self.bus.send, msg) class SimpleSerialTest(unittest.TestCase, SimpleSerialTestBase): def __init__(self, *args, **kwargs): unittest.TestCase.__init__(self, *args, **kwargs) SimpleSerialTestBase.__init__(self) def setUp(self): self.patcher = patch('serial.Serial') self.mock_serial = self.patcher.start() self.serial_dummy = SerialDummy() self.mock_serial.return_value.write = self.serial_dummy.write self.mock_serial.return_value.read = self.serial_dummy.read self.addCleanup(self.patcher.stop) self.bus = SerialBus('bus') def tearDown(self): self.serial_dummy.reset() class SimpleSerialLoopTest(unittest.TestCase, SimpleSerialTestBase): def __init__(self, *args, **kwargs): unittest.TestCase.__init__(self, *args, **kwargs) SimpleSerialTestBase.__init__(self) def setUp(self): self.bus = SerialBus('loop://') def tearDown(self): self.bus.shutdown() if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/simplecyclic_test.py000066400000000000000000000115631352572415400217550ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This module tests cyclic send tasks. """ from __future__ import absolute_import from time import sleep import unittest import gc import can from .config import * from .message_helper import ComparingMessagesTestCase class SimpleCyclicSendTaskTest(unittest.TestCase, ComparingMessagesTestCase): def __init__(self, *args, **kwargs): unittest.TestCase.__init__(self, *args, **kwargs) ComparingMessagesTestCase.__init__(self, allowed_timestamp_delta=0.016, preserves_channel=True) @unittest.skipIf(IS_CI, "the timing sensitive behaviour cannot be reproduced reliably on a CI server") def test_cycle_time(self): msg = can.Message(is_extended_id=False, arbitration_id=0x123, data=[0, 1, 2, 3, 4, 5, 6, 7]) with can.interface.Bus(bustype='virtual') as bus1: with can.interface.Bus(bustype='virtual') as bus2: # disabling the garbage collector makes the time readings more reliable gc.disable() task = bus1.send_periodic(msg, 0.01, 1) self.assertIsInstance(task, can.broadcastmanager.CyclicSendTaskABC) sleep(2) size = bus2.queue.qsize() # About 100 messages should have been transmitted self.assertTrue(80 <= size <= 120, '100 +/- 20 messages should have been transmitted. But queue contained {}'.format(size)) last_msg = bus2.recv() next_last_msg = bus2.recv() # we need to reenable the garbage collector again gc.enable() # Check consecutive messages are spaced properly in time and have # the same id/data self.assertMessageEqual(last_msg, next_last_msg) # Check the message id/data sent is the same as message received # Set timestamp and channel to match recv'd because we don't care # and they are not initialized by the can.Message constructor. msg.timestamp = last_msg.timestamp msg.channel = last_msg.channel self.assertMessageEqual(msg, last_msg) def test_removing_bus_tasks(self): bus = can.interface.Bus(bustype='virtual') tasks = [] for task_i in range(10): msg = can.Message(is_extended_id=False, arbitration_id=0x123, data=[0, 1, 2, 3, 4, 5, 6, 7]) msg.arbitration_id = task_i task = bus.send_periodic(msg, 0.1, 1) tasks.append(task) self.assertIsInstance(task, can.broadcastmanager.CyclicSendTaskABC) assert len(bus._periodic_tasks) == 10 for task in tasks: # Note calling task.stop will remove the task from the Bus's internal task management list task.stop() assert len(bus._periodic_tasks) == 0 bus.shutdown() def test_managed_tasks(self): bus = can.interface.Bus(bustype='virtual', receive_own_messages=True) tasks = [] for task_i in range(3): msg = can.Message(is_extended_id=False, arbitration_id=0x123, data=[0, 1, 2, 3, 4, 5, 6, 7]) msg.arbitration_id = task_i task = bus.send_periodic(msg, 0.1, 10, store_task=False) tasks.append(task) self.assertIsInstance(task, can.broadcastmanager.CyclicSendTaskABC) assert len(bus._periodic_tasks) == 0 # Self managed tasks should still be sending messages for _ in range(50): received_msg = bus.recv(timeout=5.0) assert received_msg is not None assert received_msg.arbitration_id in {0, 1, 2} for task in tasks: task.stop() for task in tasks: assert task.thread.join(5.0) is None, "Task didn't stop before timeout" bus.shutdown() def test_stopping_perodic_tasks(self): bus = can.interface.Bus(bustype='virtual') tasks = [] for task_i in range(10): msg = can.Message(is_extended_id=False, arbitration_id=0x123, data=[0, 1, 2, 3, 4, 5, 6, 7]) msg.arbitration_id = task_i task = bus.send_periodic(msg, 0.1, 1) tasks.append(task) assert len(bus._periodic_tasks) == 10 # stop half the tasks using the task object for task in tasks[::2]: task.stop() assert len(bus._periodic_tasks) == 5 # stop the other half using the bus api bus.stop_all_periodic_tasks(remove_tasks=False) for task in tasks: assert task.thread.join(5.0) is None, "Task didn't stop before timeout" # Tasks stopped via `stop_all_periodic_tasks` with remove_tasks=False should # still be associated with the bus (e.g. for restarting) assert len(bus._periodic_tasks) == 5 bus.shutdown() if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/test_detect_available_configs.py000066400000000000000000000040771352572415400242570ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This module tests :meth:`can.BusABC._detect_available_configs` and :meth:`can.BusABC.detect_available_configs`. """ from __future__ import absolute_import import sys import unittest if sys.version_info.major > 2: basestring = str from can import detect_available_configs from .config import IS_LINUX, IS_CI, TEST_INTERFACE_SOCKETCAN class TestDetectAvailableConfigs(unittest.TestCase): def test_count_returned(self): # At least virtual has to always return at least one interface self.assertGreaterEqual (len(detect_available_configs() ), 1) self.assertEqual (len(detect_available_configs(interfaces=[]) ), 0) self.assertGreaterEqual (len(detect_available_configs(interfaces='virtual') ), 1) self.assertGreaterEqual (len(detect_available_configs(interfaces=['virtual']) ), 1) self.assertGreaterEqual (len(detect_available_configs(interfaces=None) ), 1) def test_general_values(self): configs = detect_available_configs() for config in configs: self.assertIn('interface', config) self.assertIn('channel', config) self.assertIsInstance(config['interface'], basestring) def test_content_virtual(self): configs = detect_available_configs(interfaces='virtual') for config in configs: self.assertEqual(config['interface'], 'virtual') def test_content_socketcan(self): configs = detect_available_configs(interfaces='socketcan') for config in configs: self.assertEqual(config['interface'], 'socketcan') @unittest.skipUnless(TEST_INTERFACE_SOCKETCAN, "socketcan is not tested") def test_socketcan_on_ci_server(self): configs = detect_available_configs(interfaces='socketcan') self.assertGreaterEqual(len(configs), 1) self.assertIn('vcan0', [config['channel'] for config in configs]) # see TestSocketCanHelpers.test_find_available_interfaces() too if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/test_kvaser.py000066400000000000000000000203421352572415400205630ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ """ import ctypes import time import logging import unittest try: from unittest.mock import Mock, patch except ImportError: from mock import patch, Mock import pytest import can from can.interfaces.kvaser import canlib from can.interfaces.kvaser import constants class KvaserTest(unittest.TestCase): def setUp(self): canlib.canGetNumberOfChannels = KvaserTest.canGetNumberOfChannels canlib.canOpenChannel = Mock(return_value=0) canlib.canIoCtl = Mock(return_value=0) canlib.kvReadTimer = Mock() canlib.canSetBusParams = Mock() canlib.canSetBusParamsFd = Mock() canlib.canBusOn = Mock() canlib.canBusOff = Mock() canlib.canClose = Mock() canlib.canSetBusOutputControl = Mock() canlib.canGetChannelData = Mock() canlib.canSetAcceptanceFilter = Mock() canlib.canWriteSync = Mock() canlib.canWrite = self.canWrite canlib.canReadWait = self.canReadWait canlib.canGetBusStatistics = Mock() canlib.canRequestBusStatistics = Mock() self.msg = {} self.msg_in_cue = None self.bus = can.Bus(channel=0, bustype='kvaser') def tearDown(self): if self.bus: self.bus.shutdown() self.bus = None def test_bus_creation(self): self.assertIsInstance(self.bus, canlib.KvaserBus) self.assertTrue(canlib.canOpenChannel.called) self.assertTrue(canlib.canBusOn.called) def test_bus_shutdown(self): self.bus.shutdown() self.assertTrue(canlib.canBusOff.called) self.assertTrue(canlib.canClose.called) def test_filter_setup(self): # No filter in constructor expected_args = [ ((0, 0, 0, 0),), # Disable filtering STD on read handle ((0, 0, 0, 1),), # Disable filtering EXT on read handle ((0, 0, 0, 0),), # Disable filtering STD on write handle ((0, 0, 0, 1),), # Disable filtering EXT on write handle ] self.assertEqual(canlib.canSetAcceptanceFilter.call_args_list, expected_args) # One filter, will be handled by canlib canlib.canSetAcceptanceFilter.reset_mock() self.bus.set_filters([ {'can_id': 0x8, 'can_mask': 0xff, 'extended': True} ]) expected_args = [ ((0, 0x8, 0xff, 1),), # Enable filtering EXT on read handle ((0, 0x8, 0xff, 1),), # Enable filtering EXT on write handle ] self.assertEqual(canlib.canSetAcceptanceFilter.call_args_list, expected_args) # Multiple filters, will be handled in Python canlib.canSetAcceptanceFilter.reset_mock() multiple_filters = [ {'can_id': 0x8, 'can_mask': 0xff}, {'can_id': 0x9, 'can_mask': 0xff} ] self.bus.set_filters(multiple_filters) expected_args = [ ((0, 0, 0, 0),), # Disable filtering STD on read handle ((0, 0, 0, 1),), # Disable filtering EXT on read handle ((0, 0, 0, 0),), # Disable filtering STD on write handle ((0, 0, 0, 1),), # Disable filtering EXT on write handle ] self.assertEqual(canlib.canSetAcceptanceFilter.call_args_list, expected_args) def test_send_extended(self): msg = can.Message( arbitration_id=0xc0ffee, data=[0, 25, 0, 1, 3, 1, 4], is_extended_id=True) self.bus.send(msg) self.assertEqual(self.msg['arb_id'], 0xc0ffee) self.assertEqual(self.msg['dlc'], 7) self.assertEqual(self.msg['flags'], constants.canMSG_EXT) self.assertSequenceEqual(self.msg['data'], [0, 25, 0, 1, 3, 1, 4]) def test_send_standard(self): msg = can.Message( arbitration_id=0x321, data=[50, 51], is_extended_id=False) self.bus.send(msg) self.assertEqual(self.msg['arb_id'], 0x321) self.assertEqual(self.msg['dlc'], 2) self.assertEqual(self.msg['flags'], constants.canMSG_STD) self.assertSequenceEqual(self.msg['data'], [50, 51]) @pytest.mark.timeout(3.0) def test_recv_no_message(self): self.assertEqual(self.bus.recv(timeout=0.5), None) def test_recv_extended(self): self.msg_in_cue = can.Message( arbitration_id=0xc0ffef, data=[1, 2, 3, 4, 5, 6, 7, 8], is_extended_id=True) now = time.time() msg = self.bus.recv() self.assertEqual(msg.arbitration_id, 0xc0ffef) self.assertEqual(msg.dlc, 8) self.assertEqual(msg.is_extended_id, True) self.assertSequenceEqual(msg.data, self.msg_in_cue.data) self.assertTrue(now - 1 < msg.timestamp < now + 1) def test_recv_standard(self): self.msg_in_cue = can.Message( arbitration_id=0x123, data=[100, 101], is_extended_id=False) msg = self.bus.recv() self.assertEqual(msg.arbitration_id, 0x123) self.assertEqual(msg.dlc, 2) self.assertEqual(msg.is_extended_id, False) self.assertSequenceEqual(msg.data, [100, 101]) def test_available_configs(self): configs = canlib.KvaserBus._detect_available_configs() expected = [ {'interface': 'kvaser', 'channel': 0}, {'interface': 'kvaser', 'channel': 1} ] self.assertListEqual(configs, expected) def test_canfd_default_data_bitrate(self): canlib.canSetBusParams.reset_mock() canlib.canSetBusParamsFd.reset_mock() can.Bus(channel=0, bustype='kvaser', fd=True) canlib.canSetBusParams.assert_called_once_with( 0, constants.canFD_BITRATE_500K_80P, 0, 0, 0, 0, 0) canlib.canSetBusParamsFd.assert_called_once_with( 0, constants.canFD_BITRATE_500K_80P, 0, 0, 0) def test_canfd_nondefault_data_bitrate(self): canlib.canSetBusParams.reset_mock() canlib.canSetBusParamsFd.reset_mock() data_bitrate = 2000000 can.Bus(channel=0, bustype='kvaser', fd=True, data_bitrate=data_bitrate) bitrate_constant = canlib.BITRATE_FD[data_bitrate] canlib.canSetBusParams.assert_called_once_with( 0, constants.canFD_BITRATE_500K_80P, 0, 0, 0, 0, 0) canlib.canSetBusParamsFd.assert_called_once_with( 0, bitrate_constant, 0, 0, 0) def test_canfd_custom_data_bitrate(self): canlib.canSetBusParams.reset_mock() canlib.canSetBusParamsFd.reset_mock() data_bitrate = 123456 can.Bus(channel=0, bustype='kvaser', fd=True, data_bitrate=data_bitrate) canlib.canSetBusParams.assert_called_once_with( 0, constants.canFD_BITRATE_500K_80P, 0, 0, 0, 0, 0) canlib.canSetBusParamsFd.assert_called_once_with( 0, data_bitrate, 0, 0, 0) def test_bus_get_stats(self): stats = self.bus.get_stats() self.assertTrue(canlib.canRequestBusStatistics.called) self.assertTrue(canlib.canGetBusStatistics.called) self.assertIsInstance(stats, canlib.structures.BusStatistics) @staticmethod def canGetNumberOfChannels(count): count._obj.value = 2 def canWrite(self, handle, arb_id, buf, dlc, flags): self.msg['arb_id'] = arb_id self.msg['dlc'] = dlc self.msg['flags'] = flags self.msg['data'] = bytearray(buf._obj) def canReadWait(self, handle, arb_id, data, dlc, flags, timestamp, timeout): if not self.msg_in_cue: return constants.canERR_NOMSG arb_id._obj.value = self.msg_in_cue.arbitration_id dlc._obj.value = self.msg_in_cue.dlc data._obj.raw = self.msg_in_cue.data flags_temp = 0 if self.msg_in_cue.is_extended_id: flags_temp |= constants.canMSG_EXT else: flags_temp |= constants.canMSG_STD if self.msg_in_cue.is_remote_frame: flags_temp |= constants.canMSG_RTR if self.msg_in_cue.is_error_frame: flags_temp |= constants.canMSG_ERROR_FRAME flags._obj.value = flags_temp timestamp._obj.value = 0 return constants.canOK if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/test_load_file_config.py000066400000000000000000000064001352572415400225320ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 import shutil import tempfile import unittest from tempfile import NamedTemporaryFile import can class LoadFileConfigTest(unittest.TestCase): configuration = { 'default': {'interface': 'virtual', 'channel': '0'}, 'one': {'interface': 'virtual', 'channel': '1'}, 'two': {'channel': '2'}, 'three': {'extra': 'extra value'}, } def setUp(self): # Create a temporary directory self.test_dir = tempfile.mkdtemp() def tearDown(self): # Remove the directory after the test shutil.rmtree(self.test_dir) def _gen_configration_file(self, sections): with NamedTemporaryFile(mode='w', dir=self.test_dir, delete=False) as tmp_config_file: content = [] for section in sections: content.append("[{}]".format(section)) for k, v in self.configuration[section].items(): content.append("{} = {}".format(k, v)) tmp_config_file.write('\n'.join(content)) return tmp_config_file.name def test_config_file_with_default(self): tmp_config = self._gen_configration_file(['default']) config = can.util.load_file_config(path=tmp_config) self.assertEqual(config, self.configuration['default']) def test_config_file_with_default_and_section(self): tmp_config = self._gen_configration_file(['default', 'one']) default = can.util.load_file_config(path=tmp_config) self.assertEqual(default, self.configuration['default']) one = can.util.load_file_config(path=tmp_config, section='one') self.assertEqual(one, self.configuration['one']) def test_config_file_with_section_only(self): tmp_config = self._gen_configration_file(['one']) config = can.util.load_file_config(path=tmp_config, section='one') self.assertEqual(config, self.configuration['one']) def test_config_file_with_section_and_key_in_default(self): expected = self.configuration['default'].copy() expected.update(self.configuration['two']) tmp_config = self._gen_configration_file(['default', 'two']) config = can.util.load_file_config(path=tmp_config, section='two') self.assertEqual(config, expected) def test_config_file_with_section_missing_interface(self): expected = self.configuration['two'].copy() tmp_config = self._gen_configration_file(['two']) config = can.util.load_file_config(path=tmp_config, section='two') self.assertEqual(config, expected) def test_config_file_extra(self): expected = self.configuration['default'].copy() expected.update(self.configuration['three']) tmp_config = self._gen_configration_file(['default', 'three']) config = can.util.load_file_config(path=tmp_config, section='three') self.assertEqual(config, expected) def test_config_file_with_non_existing_section(self): expected = {} tmp_config = self._gen_configration_file([ 'default', 'one', 'two', 'three']) config = can.util.load_file_config(path=tmp_config, section='zero') self.assertEqual(config, expected) if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/test_message_class.py000066400000000000000000000061031352572415400221000ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 import unittest import sys from math import isinf, isnan from copy import copy, deepcopy from hypothesis import given, settings, reproduce_failure import hypothesis.strategies as st from can import Message class TestMessageClass(unittest.TestCase): """ This test tries many inputs to the message class constructor and then sanity checks all methods and ensures that nothing crashes. It also checks whether Message._check() allows all valid can frames. """ @given( timestamp=st.floats(min_value=0.0), arbitration_id=st.integers(), is_extended_id=st.booleans(), is_remote_frame=st.booleans(), is_error_frame=st.booleans(), channel=st.one_of(st.text(), st.integers()), dlc=st.integers(min_value=0, max_value=8), data=st.one_of(st.binary(min_size=0, max_size=8), st.none()), is_fd=st.booleans(), bitrate_switch=st.booleans(), error_state_indicator=st.booleans() ) @settings(max_examples=2000) def test_methods(self, **kwargs): is_valid = not ( (not kwargs['is_remote_frame'] and (len(kwargs['data'] or []) != kwargs['dlc'])) or (kwargs['arbitration_id'] >= 0x800 and not kwargs['is_extended_id']) or kwargs['arbitration_id'] >= 0x20000000 or kwargs['arbitration_id'] < 0 or (kwargs['is_remote_frame'] and kwargs['is_error_frame']) or (kwargs['is_remote_frame'] and len(kwargs['data'] or []) > 0) or ((kwargs['bitrate_switch'] or kwargs['error_state_indicator']) and not kwargs['is_fd']) or isnan(kwargs['timestamp']) or isinf(kwargs['timestamp']) ) # this should return normally and not throw an exception message = Message(check=is_valid, **kwargs) if kwargs['data'] is None or kwargs['is_remote_frame']: kwargs['data'] = bytearray() if not is_valid and not kwargs['is_remote_frame']: with self.assertRaises(ValueError): Message(check=True, **kwargs) self.assertGreater(len(str(message)), 0) self.assertGreater(len(message.__repr__()), 0) if is_valid: self.assertEqual(len(message), kwargs['dlc']) self.assertTrue(bool(message)) self.assertGreater(len("{}".format(message)), 0) _ = "{}".format(message) with self.assertRaises(Exception): _ = "{somespec}".format(message) if sys.version_info.major > 2: self.assertEqual(bytearray(bytes(message)), kwargs['data']) # check copies and equalities if is_valid: self.assertEqual(message, message) normal_copy = copy(message) deep_copy = deepcopy(message) for other in (normal_copy, deep_copy, message): self.assertTrue(message.equals(other, timestamp_delta=None)) self.assertTrue(message.equals(other)) self.assertTrue(message.equals(other, timestamp_delta=0)) if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/test_message_filtering.py000066400000000000000000000031501352572415400227550ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This module tests :meth:`can.BusABC._matches_filters`. """ from __future__ import absolute_import import unittest from can import Bus, Message from .data.example_data import TEST_ALL_MESSAGES EXAMPLE_MSG = Message(arbitration_id=0x123, is_extended_id=True) HIGHEST_MSG = Message(arbitration_id=0x1FFFFFFF, is_extended_id=True) MATCH_EXAMPLE = [{ "can_id": 0x123, "can_mask": 0x1FFFFFFF, "extended": True }] MATCH_ONLY_HIGHEST = [{ "can_id": 0xFFFFFFFF, "can_mask": 0x1FFFFFFF, "extended": True }] class TestMessageFiltering(unittest.TestCase): def setUp(self): self.bus = Bus(bustype='virtual', channel='testy') def tearDown(self): self.bus.shutdown() def test_match_all(self): # explicitly self.bus.set_filters() self.assertTrue(self.bus._matches_filters(EXAMPLE_MSG)) # implicitly self.bus.set_filters(None) self.assertTrue(self.bus._matches_filters(EXAMPLE_MSG)) def test_match_filters_is_empty(self): self.bus.set_filters([]) for msg in TEST_ALL_MESSAGES: self.assertTrue(self.bus._matches_filters(msg)) def test_match_example_message(self): self.bus.set_filters(MATCH_EXAMPLE) self.assertTrue(self.bus._matches_filters(EXAMPLE_MSG)) self.assertFalse(self.bus._matches_filters(HIGHEST_MSG)) self.bus.set_filters(MATCH_ONLY_HIGHEST) self.assertFalse(self.bus._matches_filters(EXAMPLE_MSG)) self.assertTrue(self.bus._matches_filters(HIGHEST_MSG)) if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/test_message_sync.py000066400000000000000000000072621352572415400217560ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This module tests :class:`can.MessageSync`. """ from __future__ import absolute_import from copy import copy from time import time import gc import unittest import pytest from can import MessageSync, Message from .config import IS_CI, IS_APPVEYOR, IS_TRAVIS, IS_OSX from .message_helper import ComparingMessagesTestCase from .data.example_data import TEST_MESSAGES_BASE TEST_FEWER_MESSAGES = TEST_MESSAGES_BASE[::2] def inc(value): """Makes the test boundaries give some more space when run on the CI server.""" if IS_CI: return value * 1.5 else: return value @unittest.skipIf(IS_APPVEYOR or (IS_TRAVIS and IS_OSX), "this environment's timings are too unpredictable") class TestMessageSync(unittest.TestCase, ComparingMessagesTestCase): def __init__(self, *args, **kwargs): unittest.TestCase.__init__(self, *args, **kwargs) ComparingMessagesTestCase.__init__(self) def setup_method(self, _): # disabling the garbage collector makes the time readings more reliable gc.disable() def teardown_method(self, _): # we need to reenable the garbage collector again gc.enable() @pytest.mark.timeout(inc(0.2)) def test_general(self): messages = [ Message(timestamp=50.0), Message(timestamp=50.0), Message(timestamp=50.0 + 0.05), Message(timestamp=50.0 + 0.05 + 0.08), Message(timestamp=50.0) # back in time ] sync = MessageSync(messages, gap=0.0) start = time() collected = [] timings = [] for message in sync: collected.append(message) now = time() timings.append(now - start) start = now self.assertMessagesEqual(messages, collected) self.assertEqual(len(timings), len(messages), "programming error in test code") self.assertTrue(0.0 <= timings[0] < inc(0.005), str(timings[0])) self.assertTrue(0.0 <= timings[1] < inc(0.005), str(timings[1])) self.assertTrue(0.045 <= timings[2] < inc(0.055), str(timings[2])) self.assertTrue(0.075 <= timings[3] < inc(0.085), str(timings[3])) self.assertTrue(0.0 <= timings[4] < inc(0.005), str(timings[4])) @pytest.mark.timeout(inc(0.1) * len(TEST_FEWER_MESSAGES)) # very conservative def test_skip(self): messages = copy(TEST_FEWER_MESSAGES) sync = MessageSync(messages, skip=0.005, gap=0.0) before = time() collected = list(sync) after = time() took = after - before # the handling of the messages itself also takes some time: # ~0.001 s/message on a ThinkPad T560 laptop (Ubuntu 18.04, i5-6200U) assert 0 < took < inc(len(messages) * (0.005 + 0.003)), "took: {}s".format(took) self.assertMessagesEqual(messages, collected) if not IS_APPVEYOR: # this environment's timings are too unpredictable @pytest.mark.timeout(inc(0.3)) @pytest.mark.parametrize("timestamp_1,timestamp_2", [ (0.0, 0.0), (0.0, 0.01), (0.01, 0.0), ]) def test_gap(timestamp_1, timestamp_2): """This method is alone so it can be parameterized.""" messages = [ Message(arbitration_id=0x1, timestamp=timestamp_1), Message(arbitration_id=0x2, timestamp=timestamp_2) ] sync = MessageSync(messages, gap=0.1) gc.disable() before = time() collected = list(sync) after = time() gc.enable() took = after - before assert 0.1 <= took < inc(0.3) assert messages == collected if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/test_scripts.py000066400000000000000000000054701352572415400207640ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ This module tests that the scripts are all callable. """ from __future__ import absolute_import import subprocess import unittest import sys import errno from abc import ABCMeta, abstractmethod from .config import * class CanScriptTest(unittest.TestCase): __metaclass__ = ABCMeta @classmethod def setUpClass(cls): # clean up the argument list so the call to the main() functions # in test_does_not_crash() succeeds sys.argv = sys.argv[:1] def test_do_commands_exist(self): """This test calls each scripts once and verifies that the help can be read without any other errors, like the script not being found. """ for command in self._commands(): try: subprocess.check_output(command.split(), stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: return_code = e.returncode output = e.output else: return_code = 0 output = "-- NO OUTPUT --" allowed = [0, errno.EINVAL] self.assertIn(return_code, allowed, 'Calling "{}" failed (exit code was {} and not SUCCESS/0 or EINVAL/22):\n{}' .format(command, return_code, output)) def test_does_not_crash(self): # test import module = self._import() # test main method with self.assertRaises(SystemExit) as cm: module.main() self.assertEqual(cm.exception.code, errno.EINVAL) @abstractmethod def _commands(self): """Returns an Iterable of commands that should "succeed", meaning they exit normally (exit code 0) or with the exit code for invalid arguments: EINVAL/22. """ pass @abstractmethod def _import(self): """Returns the modue of the script that has a main() function. """ pass class TestLoggerScript(CanScriptTest): def _commands(self): commands = [ "python -m can.logger --help", "python scripts/can_logger.py --help" ] if IS_UNIX: commands += ["can_logger.py --help"] return commands def _import(self): import can.logger as module return module class TestPlayerScript(CanScriptTest): def _commands(self): commands = [ "python -m can.player --help", "python scripts/can_player.py --help" ] if IS_UNIX: commands += ["can_player.py --help"] return commands def _import(self): import can.player as module return module # TODO add #390 # this excludes the base class from being executed as a test case itself del(CanScriptTest) if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/test_slcan.py000066400000000000000000000074601352572415400203760ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 import unittest import can class slcanTestCase(unittest.TestCase): def setUp(self): self.bus = can.Bus('loop://', bustype='slcan', sleep_after_open=0) self.serial = self.bus.serialPortOrig self.serial.read(self.serial.in_waiting) def tearDown(self): self.bus.shutdown() def test_recv_extended(self): self.serial.write(b'T12ABCDEF2AA55\r') msg = self.bus.recv(0) self.assertIsNotNone(msg) self.assertEqual(msg.arbitration_id, 0x12ABCDEF) self.assertEqual(msg.is_extended_id, True) self.assertEqual(msg.is_remote_frame, False) self.assertEqual(msg.dlc, 2) self.assertSequenceEqual(msg.data, [0xAA, 0x55]) def test_send_extended(self): msg = can.Message(arbitration_id=0x12ABCDEF, is_extended_id=True, data=[0xAA, 0x55]) self.bus.send(msg) data = self.serial.read(self.serial.in_waiting) self.assertEqual(data, b'T12ABCDEF2AA55\r') def test_recv_standard(self): self.serial.write(b't4563112233\r') msg = self.bus.recv(0) self.assertIsNotNone(msg) self.assertEqual(msg.arbitration_id, 0x456) self.assertEqual(msg.is_extended_id, False) self.assertEqual(msg.is_remote_frame, False) self.assertEqual(msg.dlc, 3) self.assertSequenceEqual(msg.data, [0x11, 0x22, 0x33]) def test_send_standard(self): msg = can.Message(arbitration_id=0x456, is_extended_id=False, data=[0x11, 0x22, 0x33]) self.bus.send(msg) data = self.serial.read(self.serial.in_waiting) self.assertEqual(data, b't4563112233\r') def test_recv_standard_remote(self): self.serial.write(b'r1238\r') msg = self.bus.recv(0) self.assertIsNotNone(msg) self.assertEqual(msg.arbitration_id, 0x123) self.assertEqual(msg.is_extended_id, False) self.assertEqual(msg.is_remote_frame, True) self.assertEqual(msg.dlc, 8) def test_send_standard_remote(self): msg = can.Message(arbitration_id=0x123, is_extended_id=False, is_remote_frame=True, dlc=8) self.bus.send(msg) data = self.serial.read(self.serial.in_waiting) self.assertEqual(data, b'r1238\r') def test_recv_extended_remote(self): self.serial.write(b'R12ABCDEF6\r') msg = self.bus.recv(0) self.assertIsNotNone(msg) self.assertEqual(msg.arbitration_id, 0x12ABCDEF) self.assertEqual(msg.is_extended_id, True) self.assertEqual(msg.is_remote_frame, True) self.assertEqual(msg.dlc, 6) def test_send_extended_remote(self): msg = can.Message(arbitration_id=0x12ABCDEF, is_extended_id=True, is_remote_frame=True, dlc=6) self.bus.send(msg) data = self.serial.read(self.serial.in_waiting) self.assertEqual(data, b'R12ABCDEF6\r') def test_partial_recv(self): self.serial.write(b'T12ABCDEF') msg = self.bus.recv(0) self.assertIsNone(msg) self.serial.write(b'2AA55\rT12') msg = self.bus.recv(0) self.assertIsNotNone(msg) self.assertEqual(msg.arbitration_id, 0x12ABCDEF) self.assertEqual(msg.is_extended_id, True) self.assertEqual(msg.is_remote_frame, False) self.assertEqual(msg.dlc, 2) self.assertSequenceEqual(msg.data, [0xAA, 0x55]) msg = self.bus.recv(0) self.assertIsNone(msg) self.serial.write(b'ABCDEF2AA55\r') msg = self.bus.recv(0) self.assertIsNotNone(msg) if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/test_socketcan.py000066400000000000000000000171301352572415400212430ustar00rootroot00000000000000""" Test functions in `can.interfaces.socketcan.socketcan`. """ import unittest try: from unittest.mock import Mock from unittest.mock import patch from unittest.mock import call except ImportError: from mock import Mock from mock import patch from mock import call import ctypes from can.interfaces.socketcan.socketcan import bcm_header_factory class SocketCANTest(unittest.TestCase): def setUp(self): self._ctypes_sizeof = ctypes.sizeof self._ctypes_alignment = ctypes.alignment @patch("ctypes.sizeof") @patch("ctypes.alignment") def test_bcm_header_factory_32_bit_sizeof_long_4_alignof_long_4( self, ctypes_sizeof, ctypes_alignment ): """This tests a 32-bit platform (ex. Debian Stretch on i386), where: * sizeof(long) == 4 * sizeof(long long) == 8 * alignof(long) == 4 * alignof(long long) == 4 """ def side_effect_ctypes_sizeof(value): type_to_size = { ctypes.c_longlong: 8, ctypes.c_long: 4, ctypes.c_uint8: 1, ctypes.c_uint16: 2, ctypes.c_uint32: 4, ctypes.c_uint64: 8, } return type_to_size[value] def side_effect_ctypes_alignment(value): type_to_alignment = { ctypes.c_longlong: 4, ctypes.c_long: 4, ctypes.c_uint8: 1, ctypes.c_uint16: 2, ctypes.c_uint32: 4, ctypes.c_uint64: 4, } return type_to_alignment[value] ctypes_sizeof.side_effect = side_effect_ctypes_sizeof ctypes_alignment.side_effect = side_effect_ctypes_alignment fields = [ ("opcode", ctypes.c_uint32), ("flags", ctypes.c_uint32), ("count", ctypes.c_uint32), ("ival1_tv_sec", ctypes.c_long), ("ival1_tv_usec", ctypes.c_long), ("ival2_tv_sec", ctypes.c_long), ("ival2_tv_usec", ctypes.c_long), ("can_id", ctypes.c_uint32), ("nframes", ctypes.c_uint32), ] BcmMsgHead = bcm_header_factory(fields) expected_fields = [ ("opcode", ctypes.c_uint32), ("flags", ctypes.c_uint32), ("count", ctypes.c_uint32), ("ival1_tv_sec", ctypes.c_long), ("ival1_tv_usec", ctypes.c_long), ("ival2_tv_sec", ctypes.c_long), ("ival2_tv_usec", ctypes.c_long), ("can_id", ctypes.c_uint32), ("nframes", ctypes.c_uint32), # We expect 4 bytes of padding ("pad_0", ctypes.c_uint8), ("pad_1", ctypes.c_uint8), ("pad_2", ctypes.c_uint8), ("pad_3", ctypes.c_uint8), ] self.assertEqual(expected_fields, BcmMsgHead._fields_) @patch("ctypes.sizeof") @patch("ctypes.alignment") def test_bcm_header_factory_32_bit_sizeof_long_4_alignof_long_8( self, ctypes_sizeof, ctypes_alignment ): """This tests a 32-bit platform (ex. Raspbian Stretch on armv7l), where: * sizeof(long) == 4 * sizeof(long long) == 8 * alignof(long) == 4 * alignof(long long) == 8 """ def side_effect_ctypes_sizeof(value): type_to_size = { ctypes.c_longlong: 8, ctypes.c_long: 4, ctypes.c_uint8: 1, ctypes.c_uint16: 2, ctypes.c_uint32: 4, ctypes.c_uint64: 8, } return type_to_size[value] def side_effect_ctypes_alignment(value): type_to_alignment = { ctypes.c_longlong: 8, ctypes.c_long: 4, ctypes.c_uint8: 1, ctypes.c_uint16: 2, ctypes.c_uint32: 4, ctypes.c_uint64: 8, } return type_to_alignment[value] ctypes_sizeof.side_effect = side_effect_ctypes_sizeof ctypes_alignment.side_effect = side_effect_ctypes_alignment fields = [ ("opcode", ctypes.c_uint32), ("flags", ctypes.c_uint32), ("count", ctypes.c_uint32), ("ival1_tv_sec", ctypes.c_long), ("ival1_tv_usec", ctypes.c_long), ("ival2_tv_sec", ctypes.c_long), ("ival2_tv_usec", ctypes.c_long), ("can_id", ctypes.c_uint32), ("nframes", ctypes.c_uint32), ] BcmMsgHead = bcm_header_factory(fields) expected_fields = [ ("opcode", ctypes.c_uint32), ("flags", ctypes.c_uint32), ("count", ctypes.c_uint32), ("ival1_tv_sec", ctypes.c_long), ("ival1_tv_usec", ctypes.c_long), ("ival2_tv_sec", ctypes.c_long), ("ival2_tv_usec", ctypes.c_long), ("can_id", ctypes.c_uint32), ("nframes", ctypes.c_uint32), # We expect 4 bytes of padding ("pad_0", ctypes.c_uint8), ("pad_1", ctypes.c_uint8), ("pad_2", ctypes.c_uint8), ("pad_3", ctypes.c_uint8), ] self.assertEqual(expected_fields, BcmMsgHead._fields_) @patch("ctypes.sizeof") @patch("ctypes.alignment") def test_bcm_header_factory_64_bit_sizeof_long_4_alignof_long_4( self, ctypes_sizeof, ctypes_alignment ): """This tests a 64-bit platform (ex. Ubuntu 18.04 on x86_64), where: * sizeof(long) == 8 * sizeof(long long) == 8 * alignof(long) == 8 * alignof(long long) == 8 """ def side_effect_ctypes_sizeof(value): type_to_size = { ctypes.c_longlong: 8, ctypes.c_long: 8, ctypes.c_uint8: 1, ctypes.c_uint16: 2, ctypes.c_uint32: 4, ctypes.c_uint64: 8, } return type_to_size[value] def side_effect_ctypes_alignment(value): type_to_alignment = { ctypes.c_longlong: 8, ctypes.c_long: 8, ctypes.c_uint8: 1, ctypes.c_uint16: 2, ctypes.c_uint32: 4, ctypes.c_uint64: 8, } return type_to_alignment[value] ctypes_sizeof.side_effect = side_effect_ctypes_sizeof ctypes_alignment.side_effect = side_effect_ctypes_alignment fields = [ ("opcode", ctypes.c_uint32), ("flags", ctypes.c_uint32), ("count", ctypes.c_uint32), ("ival1_tv_sec", ctypes.c_long), ("ival1_tv_usec", ctypes.c_long), ("ival2_tv_sec", ctypes.c_long), ("ival2_tv_usec", ctypes.c_long), ("can_id", ctypes.c_uint32), ("nframes", ctypes.c_uint32), ] BcmMsgHead = bcm_header_factory(fields) expected_fields = [ ("opcode", ctypes.c_uint32), ("flags", ctypes.c_uint32), ("count", ctypes.c_uint32), # We expect 4 bytes of padding ("pad_0", ctypes.c_uint8), ("pad_1", ctypes.c_uint8), ("pad_2", ctypes.c_uint8), ("pad_3", ctypes.c_uint8), ("ival1_tv_sec", ctypes.c_long), ("ival1_tv_usec", ctypes.c_long), ("ival2_tv_sec", ctypes.c_long), ("ival2_tv_usec", ctypes.c_long), ("can_id", ctypes.c_uint32), ("nframes", ctypes.c_uint32), ] self.assertEqual(expected_fields, BcmMsgHead._fields_) if __name__ == "__main__": unittest.main() python-can-3.3.2.final/test/test_socketcan_helpers.py000066400000000000000000000024521352572415400227660ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 """ Tests helpers in `can.interfaces.socketcan.socketcan_common`. """ from __future__ import absolute_import import unittest from can.interfaces.socketcan.utils import \ find_available_interfaces, error_code_to_str from .config import * class TestSocketCanHelpers(unittest.TestCase): @unittest.skipUnless(IS_LINUX, "socketcan is only available on Linux") def test_error_code_to_str(self): """ Check that the function does not crash & always returns at least one character. """ # all possible & also some invalid error codes test_data = list(range(0, 256)) + [-1, 256, 5235, 346264] for error_code in test_data: string = error_code_to_str(error_code) self.assertTrue(string) # not None or empty @unittest.skipUnless(IS_LINUX, "socketcan is only available on Linux") def test_find_available_interfaces(self): result = list(find_available_interfaces()) self.assertGreaterEqual(len(result), 0) for entry in result: self.assertRegexpMatches(entry, r"v?can\d+") if TEST_INTERFACE_SOCKETCAN: self.assertGreaterEqual(len(result), 1) self.assertIn("vcan0", result) if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/test_systec.py000066400000000000000000000232601352572415400206040ustar00rootroot00000000000000#!/usr/bin/env python # coding: utf-8 import unittest try: from unittest.mock import Mock, patch except ImportError: from mock import Mock, patch import can from can.interfaces.systec import ucan, ucanbus from can.interfaces.systec.ucan import * class SystecTest(unittest.TestCase): def compare_message(self, first, second, msg): if first.arbitration_id != second.arbitration_id or first.data != second.data or \ first.is_extended_id != second.is_extended_id: raise self.failureException(msg) def setUp(self): # add equality function for can.Message self.addTypeEqualityFunc(can.Message, self.compare_message) ucan.UcanInitHwConnectControlEx = Mock() ucan.UcanInitHardwareEx = Mock() ucan.UcanInitHardwareEx2 = Mock() ucan.UcanInitCanEx2 = Mock() ucan.UcanGetHardwareInfoEx2 = Mock() ucan.UcanSetAcceptanceEx = Mock() ucan.UcanDeinitCanEx = Mock() ucan.UcanDeinitHardware = Mock() ucan.UcanWriteCanMsgEx = Mock() ucan.UcanResetCanEx = Mock() self.bus = can.Bus(bustype='systec', channel=0, bitrate=125000) def test_bus_creation(self): self.assertIsInstance(self.bus, ucanbus.UcanBus) self.assertTrue(ucan.UcanInitHwConnectControlEx.called) self.assertTrue(ucan.UcanInitHardwareEx.called or ucan.UcanInitHardwareEx2.called) self.assertTrue(ucan.UcanInitCanEx2.called) self.assertTrue(ucan.UcanGetHardwareInfoEx2.called) self.assertTrue(ucan.UcanSetAcceptanceEx.called) def test_bus_shutdown(self): self.bus.shutdown() self.assertTrue(ucan.UcanDeinitCanEx.called) self.assertTrue(ucan.UcanDeinitHardware.called) def test_filter_setup(self): # no filter in the constructor expected_args = ( (self.bus._ucan._handle, 0, AMR_ALL, ACR_ALL), ) self.assertEqual(ucan.UcanSetAcceptanceEx.call_args, expected_args) # one filter is handled by the driver ucan.UcanSetAcceptanceEx.reset_mock() can_filter = (True, 0x123, 0x123, False, False) self.bus.set_filters(ucanbus.UcanBus.create_filter(*can_filter)) expected_args = ( (self.bus._ucan._handle, 0, ucan.UcanServer.calculate_amr(*can_filter), ucan.UcanServer.calculate_acr(*can_filter) ), ) self.assertEqual(ucan.UcanSetAcceptanceEx.call_args, expected_args) # multiple filters are handled by the bus ucan.UcanSetAcceptanceEx.reset_mock() can_filter = ( (False, 0x8, 0x8, False, False), (False, 0x9, 0x9, False, False) ) self.bus.set_filters(ucanbus.UcanBus.create_filter(*can_filter[0]) + ucanbus.UcanBus.create_filter(*can_filter[1])) expected_args = ( (self.bus._ucan._handle, 0, AMR_ALL, ACR_ALL), ) self.assertEqual(ucan.UcanSetAcceptanceEx.call_args, expected_args) @patch('can.interfaces.systec.ucan.UcanServer.write_can_msg') def test_send_extended(self, mock_write_can_msg): msg = can.Message( arbitration_id=0xc0ffee, data=[0, 25, 0, 1, 3, 1, 4], is_extended_id=True) self.bus.send(msg) expected_args = ( (0, [CanMsg(msg.arbitration_id, MsgFrameFormat.MSG_FF_EXT, msg.data)]), ) self.assertEqual(mock_write_can_msg.call_args, expected_args) @patch('can.interfaces.systec.ucan.UcanServer.write_can_msg') def test_send_standard(self, mock_write_can_msg): msg = can.Message( arbitration_id=0x321, data=[50, 51], is_extended_id=False) self.bus.send(msg) expected_args = ( (0, [CanMsg(msg.arbitration_id, MsgFrameFormat.MSG_FF_STD, msg.data)]), ) self.assertEqual(mock_write_can_msg.call_args, expected_args) @patch('can.interfaces.systec.ucan.UcanServer.get_msg_pending') def test_recv_no_message(self, mock_get_msg_pending): mock_get_msg_pending.return_value = 0 self.assertEqual(self.bus.recv(timeout=0.5), None) @patch('can.interfaces.systec.ucan.UcanServer.get_msg_pending') @patch('can.interfaces.systec.ucan.UcanServer.read_can_msg') def test_recv_extended(self, mock_read_can_msg, mock_get_msg_pending): mock_read_can_msg.return_value = [CanMsg(0xc0ffef, MsgFrameFormat.MSG_FF_EXT, [1, 2, 3, 4, 5, 6, 7, 8])], 0 mock_get_msg_pending.return_value = 1 msg = can.Message( arbitration_id=0xc0ffef, data=[1, 2, 3, 4, 5, 6, 7, 8], is_extended_id=True) can_msg = self.bus.recv() self.assertEqual(can_msg, msg) @patch('can.interfaces.systec.ucan.UcanServer.get_msg_pending') @patch('can.interfaces.systec.ucan.UcanServer.read_can_msg') def test_recv_standard(self, mock_read_can_msg, mock_get_msg_pending): mock_read_can_msg.return_value = [CanMsg(0x321, MsgFrameFormat.MSG_FF_STD, [50, 51])], 0 mock_get_msg_pending.return_value = 1 msg = can.Message( arbitration_id=0x321, data=[50, 51], is_extended_id=False) can_msg = self.bus.recv() self.assertEqual(can_msg, msg) @staticmethod def test_bus_defaults(): ucan.UcanInitCanEx2.reset_mock() bus = can.Bus(bustype='systec', channel=0) ucan.UcanInitCanEx2.assert_called_once_with( bus._ucan._handle, 0, InitCanParam( Mode.MODE_NORMAL, Baudrate.BAUD_500kBit, OutputControl.OCR_DEFAULT, AMR_ALL, ACR_ALL, BaudrateEx.BAUDEX_USE_BTR01, DEFAULT_BUFFER_ENTRIES, DEFAULT_BUFFER_ENTRIES ) ) @staticmethod def test_bus_channel(): ucan.UcanInitCanEx2.reset_mock() bus = can.Bus(bustype='systec', channel=1) ucan.UcanInitCanEx2.assert_called_once_with( bus._ucan._handle, 1, InitCanParam( Mode.MODE_NORMAL, Baudrate.BAUD_500kBit, OutputControl.OCR_DEFAULT, AMR_ALL, ACR_ALL, BaudrateEx.BAUDEX_USE_BTR01, DEFAULT_BUFFER_ENTRIES, DEFAULT_BUFFER_ENTRIES ) ) @staticmethod def test_bus_bitrate(): ucan.UcanInitCanEx2.reset_mock() bus = can.Bus(bustype='systec', channel=0, bitrate=125000) ucan.UcanInitCanEx2.assert_called_once_with( bus._ucan._handle, 0, InitCanParam( Mode.MODE_NORMAL, Baudrate.BAUD_125kBit, OutputControl.OCR_DEFAULT, AMR_ALL, ACR_ALL, BaudrateEx.BAUDEX_USE_BTR01, DEFAULT_BUFFER_ENTRIES, DEFAULT_BUFFER_ENTRIES ) ) def test_bus_custom_bitrate(self): with self.assertRaises(ValueError): can.Bus(bustype='systec', channel=0, bitrate=123456) @staticmethod def test_receive_own_messages(): ucan.UcanInitCanEx2.reset_mock() bus = can.Bus(bustype='systec', channel=0, receive_own_messages=True) ucan.UcanInitCanEx2.assert_called_once_with( bus._ucan._handle, 0, InitCanParam( Mode.MODE_TX_ECHO, Baudrate.BAUD_500kBit, OutputControl.OCR_DEFAULT, AMR_ALL, ACR_ALL, BaudrateEx.BAUDEX_USE_BTR01, DEFAULT_BUFFER_ENTRIES, DEFAULT_BUFFER_ENTRIES ) ) @staticmethod def test_bus_passive_state(): ucan.UcanInitCanEx2.reset_mock() bus = can.Bus(bustype='systec', channel=0, state=can.BusState.PASSIVE) ucan.UcanInitCanEx2.assert_called_once_with( bus._ucan._handle, 0, InitCanParam( Mode.MODE_LISTEN_ONLY, Baudrate.BAUD_500kBit, OutputControl.OCR_DEFAULT, AMR_ALL, ACR_ALL, BaudrateEx.BAUDEX_USE_BTR01, DEFAULT_BUFFER_ENTRIES, DEFAULT_BUFFER_ENTRIES ) ) @staticmethod def test_rx_buffer_entries(): ucan.UcanInitCanEx2.reset_mock() bus = can.Bus(bustype='systec', channel=0, rx_buffer_entries=1024) ucan.UcanInitCanEx2.assert_called_once_with( bus._ucan._handle, 0, InitCanParam( Mode.MODE_NORMAL, Baudrate.BAUD_500kBit, OutputControl.OCR_DEFAULT, AMR_ALL, ACR_ALL, BaudrateEx.BAUDEX_USE_BTR01, 1024, DEFAULT_BUFFER_ENTRIES ) ) @staticmethod def test_tx_buffer_entries(): ucan.UcanInitCanEx2.reset_mock() bus = can.Bus(bustype='systec', channel=0, tx_buffer_entries=1024) ucan.UcanInitCanEx2.assert_called_once_with( bus._ucan._handle, 0, InitCanParam( Mode.MODE_NORMAL, Baudrate.BAUD_500kBit, OutputControl.OCR_DEFAULT, AMR_ALL, ACR_ALL, BaudrateEx.BAUDEX_USE_BTR01, DEFAULT_BUFFER_ENTRIES, 1024 ) ) def test_flush_tx_buffer(self): self.bus.flush_tx_buffer() ucan.UcanResetCanEx.assert_called_once_with(self.bus._ucan._handle, 0, ResetFlags.RESET_ONLY_TX_BUFF) if __name__ == '__main__': unittest.main() python-can-3.3.2.final/test/test_viewer.py000066400000000000000000000451001352572415400205700ustar00rootroot00000000000000#!/usr/bin/python # coding: utf-8 # # Copyright (C) 2018 Kristian Sloth Lauszus. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 3 of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # Contact information # ------------------- # Kristian Sloth Lauszus # Web : http://www.lauszus.com # e-mail : lauszus@gmail.com from __future__ import absolute_import import argparse import can import curses import math import pytest import random import struct import time import unittest import os import six from typing import Dict, Tuple, Union try: # noinspection PyCompatibility from unittest.mock import Mock, patch except ImportError: # noinspection PyPackageRequirements from mock import Mock, patch from can.viewer import KEY_ESC, KEY_SPACE, CanViewer, parse_args # noinspection SpellCheckingInspection,PyUnusedLocal class StdscrDummy: def __init__(self): self.key_counter = 0 @staticmethod def clear(): pass @staticmethod def erase(): pass @staticmethod def getmaxyx(): # Set y-value, so scrolling gets tested return 1, 1 @staticmethod def addstr(row, col, txt, *args): assert row >= 0 assert col >= 0 assert txt is not None # Raise an exception 50 % of the time, so we can make sure the code handles it if random.random() < .5: raise curses.error @staticmethod def nodelay(_bool): pass def getch(self): self.key_counter += 1 if self.key_counter == 1: # Send invalid key return -1 elif self.key_counter == 2: return ord('c') # Clear elif self.key_counter == 3: return KEY_SPACE # Pause elif self.key_counter == 4: return KEY_SPACE # Unpause elif self.key_counter == 5: return ord('s') # Sort # Keep scrolling until it exceeds the number of messages elif self.key_counter <= 100: return curses.KEY_DOWN # Scroll until the header is back as the first line and then scroll over the limit elif self.key_counter <= 200: return curses.KEY_UP return KEY_ESC class CanViewerTest(unittest.TestCase): @classmethod def setUpClass(cls): # Set seed, so the tests are not affected random.seed(0) def setUp(self): stdscr = StdscrDummy() config = {'interface': 'virtual', 'receive_own_messages': True} bus = can.Bus(**config) data_structs = None patch_curs_set = patch('curses.curs_set') patch_curs_set.start() self.addCleanup(patch_curs_set.stop) patch_use_default_colors = patch('curses.use_default_colors') patch_use_default_colors.start() self.addCleanup(patch_use_default_colors.stop) patch_init_pair = patch('curses.init_pair') patch_init_pair.start() self.addCleanup(patch_init_pair.stop) patch_color_pair = patch('curses.color_pair') patch_color_pair.start() self.addCleanup(patch_color_pair.stop) patch_is_term_resized = patch('curses.is_term_resized') mock_is_term_resized = patch_is_term_resized.start() mock_is_term_resized.return_value = True if random.random() < .5 else False self.addCleanup(patch_is_term_resized.stop) if hasattr(curses, 'resizeterm'): patch_resizeterm = patch('curses.resizeterm') patch_resizeterm.start() self.addCleanup(patch_resizeterm.stop) self.can_viewer = CanViewer(stdscr, bus, data_structs, testing=True) def tearDown(self): # Run the viewer after the test, this is done, so we can receive the CAN-Bus messages and make sure that they # are parsed correctly self.can_viewer.run() def test_send(self): # CANopen EMCY data = [1, 2, 3, 4, 5, 6, 7] # Wrong length msg = can.Message(arbitration_id=0x080 + 1, data=data, is_extended_id=False) self.can_viewer.bus.send(msg) data = [1, 2, 3, 4, 5, 6, 7, 8] msg = can.Message(arbitration_id=0x080 + 1, data=data, is_extended_id=False) self.can_viewer.bus.send(msg) # CANopen HEARTBEAT data = [0x05] # Operational msg = can.Message(arbitration_id=0x700 + 0x7F, data=data, is_extended_id=False) self.can_viewer.bus.send(msg) # Send non-CANopen message data = [1, 2, 3, 4, 5, 6, 7, 8] msg = can.Message(arbitration_id=0x101, data=data, is_extended_id=False) self.can_viewer.bus.send(msg) # Send the same command, but with another data length data = [1, 2, 3, 4, 5, 6] msg = can.Message(arbitration_id=0x101, data=data, is_extended_id=False) self.can_viewer.bus.send(msg) # Message with extended id data = [1, 2, 3, 4, 5, 6, 7, 8] msg = can.Message(arbitration_id=0x123456, data=data, is_extended_id=True) self.can_viewer.bus.send(msg) # self.assertTupleEqual(self.can_viewer.parse_canopen_message(msg), (None, None)) # Send the same message again to make sure that resending works and dt is correct time.sleep(.1) self.can_viewer.bus.send(msg) # Send error message msg = can.Message(is_error_frame=True) self.can_viewer.bus.send(msg) def test_receive(self): # Send the messages again, but this time the test code will receive it self.test_send() data_structs = { # For converting the EMCY and HEARTBEAT messages 0x080 + 0x01: struct.Struct('ff'), } # Receive the messages we just sent in 'test_canopen' while 1: msg = self.can_viewer.bus.recv(timeout=0) if msg is not None: self.can_viewer.data_structs = data_structs if msg.arbitration_id != 0x101 else None _id = self.can_viewer.draw_can_bus_message(msg) if _id['msg'].arbitration_id == 0x101: # Check if the counter is reset when the length has changed self.assertEqual(_id['count'], 1) elif _id['msg'].arbitration_id == 0x123456: # Check if the counter is incremented if _id['dt'] == 0: self.assertEqual(_id['count'], 1) else: self.assertTrue(pytest.approx(_id['dt'], 0.1)) # dt should be ~0.1 s self.assertEqual(_id['count'], 2) else: # Make sure dt is 0 if _id['count'] == 1: self.assertEqual(_id['dt'], 0) else: break # Convert it into raw integer values and then pack the data @staticmethod def pack_data(cmd, cmd_to_struct, *args): # type: (int, Dict, Union[*float, *int]) -> bytes if not cmd_to_struct or len(args) == 0: # If no arguments are given, then the message does not contain a data package return b'' for key in cmd_to_struct.keys(): if cmd == key if isinstance(key, int) else cmd in key: value = cmd_to_struct[key] if isinstance(value, tuple): # The struct is given as the fist argument struct_t = value[0] # type: struct.Struct # The conversion from SI-units to raw values are given in the rest of the tuple fmt = struct_t.format if isinstance(fmt, six.string_types): # pragma: no cover # Needed for Python 3.7 fmt = six.b(fmt) # Make sure the endian is given as the first argument assert six.byte2int(fmt) == ord('<') or six.byte2int(fmt) == ord('>') # Disable rounding if the format is a float data = [] for c, arg, val in zip(six.iterbytes(fmt[1:]), args, value[1:]): if c == ord('f'): data.append(arg * val) else: data.append(round(arg * val)) else: # No conversion from SI-units is needed struct_t = value # type: struct.Struct data = args return struct_t.pack(*data) else: raise ValueError('Unknown command: 0x{:02X}'.format(cmd)) def test_pack_unpack(self): CANOPEN_TPDO1 = 0x180 CANOPEN_TPDO2 = 0x280 CANOPEN_TPDO3 = 0x380 CANOPEN_TPDO4 = 0x480 # Dictionary used to convert between Python values and C structs represented as Python strings. # If the value is 'None' then the message does not contain any data package. # # The struct package is used to unpack the received data. # Note the data is assumed to be in little-endian byte order. # < = little-endian, > = big-endian # x = pad byte # c = char # ? = bool # b = int8_t, B = uint8_t # h = int16, H = uint16 # l = int32_t, L = uint32_t # q = int64_t, Q = uint64_t # f = float (32-bits), d = double (64-bits) # # An optional conversion from real units to integers can be given as additional arguments. # In order to convert from raw integer value the SI-units are multiplied with the values and similarly the values # are divided by the value in order to convert from real units to raw integer values. data_structs = { # CANopen node 1 CANOPEN_TPDO1 + 1: struct.Struct('lL'), (CANOPEN_TPDO3 + 2, CANOPEN_TPDO4 + 2): struct.Struct('>LL'), } # type: Dict[Union[int, Tuple[int, ...]], Union[struct.Struct, Tuple, None]] raw_data = self.pack_data(CANOPEN_TPDO1 + 1, data_structs, -7, 13, -1024, 2048, 0xFFFF) parsed_data = CanViewer.unpack_data(CANOPEN_TPDO1 + 1, data_structs, raw_data) self.assertListEqual(parsed_data, [-7, 13, -1024, 2048, 0xFFFF]) self.assertTrue(all(isinstance(d, int) for d in parsed_data)) raw_data = self.pack_data(CANOPEN_TPDO2 + 1, data_structs, 12.34, 4.5, 6) parsed_data = CanViewer.unpack_data(CANOPEN_TPDO2 + 1, data_structs, raw_data) self.assertTrue(pytest.approx(parsed_data, [12.34, 4.5, 6])) self.assertTrue(isinstance(parsed_data[0], float) and isinstance(parsed_data[1], float) and isinstance(parsed_data[2], int)) raw_data = self.pack_data(CANOPEN_TPDO3 + 1, data_structs, 123.45, 67.89) parsed_data = CanViewer.unpack_data(CANOPEN_TPDO3 + 1, data_structs, raw_data) self.assertTrue(pytest.approx(parsed_data, [123.45, 67.89])) self.assertTrue(all(isinstance(d, float) for d in parsed_data)) raw_data = self.pack_data(CANOPEN_TPDO4 + 1, data_structs, math.pi / 2., math.pi) parsed_data = CanViewer.unpack_data(CANOPEN_TPDO4 + 1, data_structs, raw_data) self.assertTrue(pytest.approx(parsed_data, [math.pi / 2., math.pi])) self.assertTrue(all(isinstance(d, float) for d in parsed_data)) raw_data = self.pack_data(CANOPEN_TPDO1 + 2, data_structs) parsed_data = CanViewer.unpack_data(CANOPEN_TPDO1 + 2, data_structs, raw_data) self.assertListEqual(parsed_data, []) self.assertIsInstance(parsed_data, list) raw_data = self.pack_data(CANOPEN_TPDO2 + 2, data_structs, -2147483648, 0xFFFFFFFF) parsed_data = CanViewer.unpack_data(CANOPEN_TPDO2 + 2, data_structs, raw_data) self.assertListEqual(parsed_data, [-2147483648, 0xFFFFFFFF]) raw_data = self.pack_data(CANOPEN_TPDO3 + 2, data_structs, 0xFF, 0xFFFF) parsed_data = CanViewer.unpack_data(CANOPEN_TPDO3 + 2, data_structs, raw_data) self.assertListEqual(parsed_data, [0xFF, 0xFFFF]) raw_data = self.pack_data(CANOPEN_TPDO4 + 2, data_structs, 0xFFFFFF, 0xFFFFFFFF) parsed_data = CanViewer.unpack_data(CANOPEN_TPDO4 + 2, data_structs, raw_data) self.assertListEqual(parsed_data, [0xFFFFFF, 0xFFFFFFFF]) # See: http://python-future.org/compatible_idioms.html#long-integers from past.builtins import long self.assertTrue(all(isinstance(d, (int, long)) for d in parsed_data)) # Make sure that the ValueError exception is raised with self.assertRaises(ValueError): self.pack_data(0x101, data_structs, 1, 2, 3, 4) with self.assertRaises(ValueError): CanViewer.unpack_data(0x102, data_structs, b'\x01\x02\x03\x04\x05\x06\x07\x08') def test_parse_args(self): parsed_args, _, _ = parse_args(['-b', '250000']) self.assertEqual(parsed_args.bitrate, 250000) parsed_args, _, _ = parse_args(['--bitrate', '500000']) self.assertEqual(parsed_args.bitrate, 500000) parsed_args, _, _ = parse_args(['-c', 'can0']) self.assertEqual(parsed_args.channel, 'can0') parsed_args, _, _ = parse_args(['--channel', 'PCAN_USBBUS1']) self.assertEqual(parsed_args.channel, 'PCAN_USBBUS1') parsed_args, _, data_structs = parse_args(['-d', '100: